@cube-dev/ui-kit 0.0.0-canary-c210a8c → 0.0.0-canary-60981ef

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 (462) 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.js +1 -1
  120. package/dist/components/fields/Slider/Gradation.js +1 -1
  121. package/dist/components/fields/Slider/HueSlider.js +1 -1
  122. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  123. package/dist/components/fields/Slider/Slider.js +1 -1
  124. package/dist/components/fields/Slider/SliderBase.js +1 -1
  125. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  126. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  127. package/dist/components/fields/Slider/elements.js +1 -1
  128. package/dist/components/fields/Slider/index.js +1 -1
  129. package/dist/components/fields/Switch/Switch.js +1 -1
  130. package/dist/components/fields/TextArea/TextArea.js +1 -1
  131. package/dist/components/fields/TextInput/TextInput.js +1 -1
  132. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  133. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  134. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  135. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  136. package/dist/components/form/Form/Field.js +1 -1
  137. package/dist/components/form/Form/Form.js +1 -1
  138. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  139. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  140. package/dist/components/form/Form/SubmitError.js +1 -1
  141. package/dist/components/form/Form/index.js +1 -1
  142. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  143. package/dist/components/form/Form/use-field/use-field.js +1 -1
  144. package/dist/components/form/Form/use-form.js +1 -1
  145. package/dist/components/form/Form/validation.js +1 -1
  146. package/dist/components/form/Label.js +1 -1
  147. package/dist/components/form/wrapper.js +1 -1
  148. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  149. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  150. package/dist/components/layout/Flex.js +1 -1
  151. package/dist/components/layout/Flow.js +1 -1
  152. package/dist/components/layout/Grid.js +1 -1
  153. package/dist/components/layout/Panel.js +1 -1
  154. package/dist/components/layout/Prefix.js +1 -1
  155. package/dist/components/layout/ResizablePanel.js +1 -1
  156. package/dist/components/layout/Space.js +1 -1
  157. package/dist/components/layout/Suffix.js +1 -1
  158. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  159. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  160. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  161. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  162. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  163. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  164. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  165. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  166. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  167. package/dist/components/navigation/Tabs/styled.js +1 -1
  168. package/dist/components/navigation/Tabs/types.js +1 -1
  169. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  170. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  171. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  172. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  173. package/dist/components/other/Calendar/Calendar.js +1 -1
  174. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  175. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  176. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  177. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  178. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  179. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  180. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  181. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  182. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  183. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  184. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  185. package/dist/components/overlays/Dialog/context.js +1 -1
  186. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  187. package/dist/components/overlays/Modal/Modal.js +1 -1
  188. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  189. package/dist/components/overlays/Modal/Overlay.js +1 -1
  190. package/dist/components/overlays/Modal/Popover.js +1 -1
  191. package/dist/components/overlays/Modal/Tray.js +1 -1
  192. package/dist/components/overlays/Modal/Underlay.js +1 -1
  193. package/dist/components/overlays/Notifications/Notification.js +1 -1
  194. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  195. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  196. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  198. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  199. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  200. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  201. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  202. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  203. package/dist/components/overlays/Notifications/index.js +1 -1
  204. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  205. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  206. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  207. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  208. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  209. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  210. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  211. package/dist/components/overlays/Toast/index.js +1 -1
  212. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  213. package/dist/components/overlays/Toast/useToast.js +1 -1
  214. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  215. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  216. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  217. package/dist/components/overlays/Tooltip/context.js +1 -1
  218. package/dist/components/portal/Portal.js +1 -1
  219. package/dist/components/portal/PortalProvider.js +1 -1
  220. package/dist/components/portal/usePortal.js +1 -1
  221. package/dist/components/shared/InvalidIcon.js +1 -1
  222. package/dist/components/shared/ValidIcon.js +1 -1
  223. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  224. package/dist/components/status/Spin/Cube.js +1 -1
  225. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  226. package/dist/components/status/Spin/Spin.js +1 -1
  227. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  228. package/dist/data/item-themes.js +1 -1
  229. package/dist/data/themes.js +1 -1
  230. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  231. package/dist/icons/AdjustmentsIcon.js +1 -1
  232. package/dist/icons/AiIcon.js +1 -1
  233. package/dist/icons/AreaChartIcon.js +1 -1
  234. package/dist/icons/BackwardIcon.js +1 -1
  235. package/dist/icons/BarChartIcon.js +1 -1
  236. package/dist/icons/BellFilledIcon.js +1 -1
  237. package/dist/icons/BellIcon.js +1 -1
  238. package/dist/icons/BooleanIcon.js +1 -1
  239. package/dist/icons/CalendarEditIcon.js +1 -1
  240. package/dist/icons/CalendarIcon.js +1 -1
  241. package/dist/icons/CaretDownIcon.js +1 -1
  242. package/dist/icons/CaretUpIcon.js +1 -1
  243. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  244. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  245. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  246. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  247. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  248. package/dist/icons/ChartBarLineIcon.js +1 -1
  249. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  250. package/dist/icons/ChartBarStackedIcon.js +1 -1
  251. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  253. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  254. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  255. package/dist/icons/ChartBubbleIcon.js +1 -1
  256. package/dist/icons/ChartDonut2Icon.js +1 -1
  257. package/dist/icons/ChartFunnelIcon.js +1 -1
  258. package/dist/icons/ChartHeatmapIcon.js +1 -1
  259. package/dist/icons/ChartKPIIcon.js +1 -1
  260. package/dist/icons/ChartPie2Icon.js +1 -1
  261. package/dist/icons/ChartScatterIcon.js +1 -1
  262. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  263. package/dist/icons/CheckCircleIcon.js +1 -1
  264. package/dist/icons/CheckIcon.js +1 -1
  265. package/dist/icons/CircleFilledIcon.js +1 -1
  266. package/dist/icons/ClearIcon.js +1 -1
  267. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  268. package/dist/icons/CloseCircleIcon.js +1 -1
  269. package/dist/icons/CloseIcon.js +1 -1
  270. package/dist/icons/CodeIcon.js +1 -1
  271. package/dist/icons/ColumnTotalIcon.js +1 -1
  272. package/dist/icons/CopyIcon.js +1 -1
  273. package/dist/icons/CountIcon.js +1 -1
  274. package/dist/icons/CubeIcon.js +1 -1
  275. package/dist/icons/CubePauseIcon.js +1 -1
  276. package/dist/icons/CubePlayIcon.js +1 -1
  277. package/dist/icons/CurrencyDollarIcon.js +1 -1
  278. package/dist/icons/DangerIcon.js +1 -1
  279. package/dist/icons/DashboardIcon.js +1 -1
  280. package/dist/icons/DatabaseIcon.js +1 -1
  281. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  282. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  283. package/dist/icons/DirectionIcon.js +1 -1
  284. package/dist/icons/DonutIcon.js +1 -1
  285. package/dist/icons/DownIcon.js +1 -1
  286. package/dist/icons/EditIcon.js +1 -1
  287. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  288. package/dist/icons/ExclamationCircleIcon.js +1 -1
  289. package/dist/icons/ExclamationIcon.js +1 -1
  290. package/dist/icons/EyeIcon.js +1 -1
  291. package/dist/icons/EyeInvisibleIcon.js +1 -1
  292. package/dist/icons/FilterIcon.js +1 -1
  293. package/dist/icons/FolderFilledIcon.js +1 -1
  294. package/dist/icons/FolderIcon.js +1 -1
  295. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  296. package/dist/icons/FolderOpenIcon.js +1 -1
  297. package/dist/icons/ForwardIcon.js +1 -1
  298. package/dist/icons/HierarchyIcon.js +1 -1
  299. package/dist/icons/HierarchyOpenIcon.js +1 -1
  300. package/dist/icons/Icon.js +1 -1
  301. package/dist/icons/InfoCircleIcon.js +1 -1
  302. package/dist/icons/InfoIcon.js +1 -1
  303. package/dist/icons/KeyIcon.js +1 -1
  304. package/dist/icons/LeftIcon.js +1 -1
  305. package/dist/icons/LineChartIcon.js +1 -1
  306. package/dist/icons/LoadingIcon.js +1 -1
  307. package/dist/icons/LockFilledIcon.js +1 -1
  308. package/dist/icons/LockIcon.js +1 -1
  309. package/dist/icons/MoreIcon.js +1 -1
  310. package/dist/icons/NotAllowedIcon.js +1 -1
  311. package/dist/icons/Number123Icon.js +1 -1
  312. package/dist/icons/NumberIcon.js +1 -1
  313. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  314. package/dist/icons/PauseCircleIcon.js +1 -1
  315. package/dist/icons/PauseIcon.js +1 -1
  316. package/dist/icons/PercentageIcon.js +1 -1
  317. package/dist/icons/PieChartIcon.js +1 -1
  318. package/dist/icons/PlayCircleIcon.js +1 -1
  319. package/dist/icons/PlayIcon.js +1 -1
  320. package/dist/icons/PlusIcon.js +1 -1
  321. package/dist/icons/ProgressBarIcon.js +1 -1
  322. package/dist/icons/ReloadIcon.js +1 -1
  323. package/dist/icons/ReportIcon.js +1 -1
  324. package/dist/icons/ReturnIcon.js +1 -1
  325. package/dist/icons/RightIcon.js +1 -1
  326. package/dist/icons/RowTotalsIcon.js +1 -1
  327. package/dist/icons/SchemeIcon.js +1 -1
  328. package/dist/icons/SearchIcon.js +1 -1
  329. package/dist/icons/SemanticQueryIcon.js +1 -1
  330. package/dist/icons/SettingsIcon.js +1 -1
  331. package/dist/icons/ShieldFilledIcon.js +1 -1
  332. package/dist/icons/ShieldIcon.js +1 -1
  333. package/dist/icons/SlashIcon.js +1 -1
  334. package/dist/icons/SparklesIcon.js +1 -1
  335. package/dist/icons/SqlIcon.js +1 -1
  336. package/dist/icons/StatsIcon.js +1 -1
  337. package/dist/icons/StopIcon.js +1 -1
  338. package/dist/icons/StringIcon.js +1 -1
  339. package/dist/icons/SubtotalsIcon.js +1 -1
  340. package/dist/icons/SwitchIcon.js +1 -1
  341. package/dist/icons/TableIcon.js +1 -1
  342. package/dist/icons/ThumbsDownIcon.js +1 -1
  343. package/dist/icons/ThumbsUpIcon.js +1 -1
  344. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  345. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  346. package/dist/icons/ThunderboltIcon.js +1 -1
  347. package/dist/icons/TimeIcon.js +1 -1
  348. package/dist/icons/TrashIcon.js +1 -1
  349. package/dist/icons/UnlockIcon.js +1 -1
  350. package/dist/icons/UpIcon.js +1 -1
  351. package/dist/icons/UserGroupIcon.js +1 -1
  352. package/dist/icons/UserIcon.js +1 -1
  353. package/dist/icons/UserLockIcon.js +1 -1
  354. package/dist/icons/ViewIcon.js +1 -1
  355. package/dist/icons/WarningFilledIcon.js +1 -1
  356. package/dist/icons/WarningIcon.js +1 -1
  357. package/dist/icons/wrap-icon.js +1 -1
  358. package/dist/index.js +1 -1
  359. package/dist/provider.js +1 -1
  360. package/dist/providers/TrackingProvider.js +1 -1
  361. package/dist/providers/navigationAdapter.default.js +1 -1
  362. package/dist/tokens/base.js +1 -1
  363. package/dist/tokens/colors.js +1 -1
  364. package/dist/tokens/index.js +1 -1
  365. package/dist/tokens/layout.js +1 -1
  366. package/dist/tokens/shadows.js +1 -1
  367. package/dist/tokens/sizes.js +1 -1
  368. package/dist/tokens/spacing.js +1 -1
  369. package/dist/utils/ResizeSensor.js +1 -1
  370. package/dist/utils/is-dev-env.js +1 -1
  371. package/dist/utils/modules.js +1 -1
  372. package/dist/utils/promise.js +1 -1
  373. package/dist/utils/raf.js +1 -1
  374. package/dist/utils/random.js +1 -1
  375. package/dist/utils/range.js +1 -1
  376. package/dist/utils/react/RenderCache.js +1 -1
  377. package/dist/utils/react/Slots.js +1 -1
  378. package/dist/utils/react/chain.js +1 -1
  379. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  380. package/dist/utils/react/index.js +1 -1
  381. package/dist/utils/react/interactions.js +1 -1
  382. package/dist/utils/react/isTextOnly.js +1 -1
  383. package/dist/utils/react/mapProps.js +1 -1
  384. package/dist/utils/react/mergeProps.js +1 -1
  385. package/dist/utils/react/nullableValue.js +1 -1
  386. package/dist/utils/react/resolveIcon.js +1 -1
  387. package/dist/utils/react/sharedStore.js +1 -1
  388. package/dist/utils/react/useCombinedRefs.js +1 -1
  389. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  390. package/dist/utils/react/useEventBus.js +1 -1
  391. package/dist/utils/react/useId.js +1 -1
  392. package/dist/utils/react/useIsDarwin.js +1 -1
  393. package/dist/utils/react/useKeySymbols.js +1 -1
  394. package/dist/utils/react/useLayoutEffect.js +1 -1
  395. package/dist/utils/react/useLocalStorage.js +1 -1
  396. package/dist/utils/react/useMergeStyles.js +1 -1
  397. package/dist/utils/react/useQaProps.js +1 -1
  398. package/dist/utils/react/useViewportSize.js +1 -1
  399. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  400. package/dist/utils/tree.js +1 -1
  401. package/dist/utils/warnings.js +1 -1
  402. package/dist/version.js +2 -2
  403. package/docs/ComplexLayout.md +469 -0
  404. package/docs/CreateComponent.md +410 -0
  405. package/docs/Introduction.md +122 -0
  406. package/docs/RenderCache.md +172 -0
  407. package/docs/Result.md +35 -0
  408. package/docs/SimpleLayout.md +26 -0
  409. package/docs/Typography.md +38 -0
  410. package/docs/components/CollectionItem.md +299 -0
  411. package/docs/components/actions/Banner.md +189 -0
  412. package/docs/components/actions/Button.md +183 -0
  413. package/docs/components/actions/ButtonSplit.md +189 -0
  414. package/docs/components/actions/CommandMenu.md +430 -0
  415. package/docs/components/actions/ItemButton.md +304 -0
  416. package/docs/components/actions/Link.md +325 -0
  417. package/docs/components/actions/Menu.md +509 -0
  418. package/docs/components/actions/use-anchored-menu.md +211 -0
  419. package/docs/components/actions/use-context-menu.md +220 -0
  420. package/docs/components/content/Badge.md +187 -0
  421. package/docs/components/content/Disclosure.md +177 -0
  422. package/docs/components/content/HotKeys.md +352 -0
  423. package/docs/components/content/Item.md +488 -0
  424. package/docs/components/content/ItemCard.md +125 -0
  425. package/docs/components/content/Layout.md +866 -0
  426. package/docs/components/content/Tag.md +156 -0
  427. package/docs/components/content/TextItem.md +211 -0
  428. package/docs/components/fields/Checkbox.md +180 -0
  429. package/docs/components/fields/ComboBox.md +617 -0
  430. package/docs/components/fields/DatePicker.md +231 -0
  431. package/docs/components/fields/FileInput.md +197 -0
  432. package/docs/components/fields/FilterListBox.md +703 -0
  433. package/docs/components/fields/FilterPicker.md +736 -0
  434. package/docs/components/fields/HueSlider.md +175 -0
  435. package/docs/components/fields/ListBox.md +691 -0
  436. package/docs/components/fields/NumberInput.md +184 -0
  437. package/docs/components/fields/PasswordInput.md +218 -0
  438. package/docs/components/fields/Picker.md +884 -0
  439. package/docs/components/fields/RadioGroup.md +314 -0
  440. package/docs/components/fields/SearchInput.md +227 -0
  441. package/docs/components/fields/Select.md +583 -0
  442. package/docs/components/fields/Slider.md +53 -0
  443. package/docs/components/fields/Switch.md +174 -0
  444. package/docs/components/fields/TextArea.md +61 -0
  445. package/docs/components/fields/TextInput.md +204 -0
  446. package/docs/components/fields/TextInputMapper.md +34 -0
  447. package/docs/components/form/Field.md +341 -0
  448. package/docs/components/form/Form.md +455 -0
  449. package/docs/components/form/FormInstance.md +319 -0
  450. package/docs/components/helpers/DisplayTransition.md +259 -0
  451. package/docs/components/helpers/IconSwitch.md +156 -0
  452. package/docs/components/navigation/Tabs.md +704 -0
  453. package/docs/components/overlays/Dialog.md +202 -0
  454. package/docs/components/overlays/DialogContainer.md +201 -0
  455. package/docs/components/overlays/DialogForm.md +290 -0
  456. package/docs/components/overlays/DialogTrigger.md +191 -0
  457. package/docs/components/overlays/Notifications.md +406 -0
  458. package/docs/components/overlays/Toast.md +285 -0
  459. package/docs/components/overlays/Tooltip.md +371 -0
  460. package/docs/components/overlays/UseDialogContainer.md +603 -0
  461. package/package.json +1 -1
  462. package/docs/.gitignore +0 -3
@@ -0,0 +1,202 @@
1
+ # Dialog
2
+
3
+ Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface. Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.
4
+
5
+ ## When to Use
6
+
7
+ - Display important information or actions that require user attention
8
+ - Confirm or cancel user actions before proceeding
9
+ - Collect user input in a focused, contextual interface
10
+ - Show complex workflows or forms that need dedicated space
11
+ - Present alerts or notifications that require user acknowledgment
12
+
13
+ ## Component
14
+
15
+ ---
16
+
17
+ ### Properties
18
+
19
+ - **`children`** — Dialog content (Header, Content, Footer, etc.)
20
+ - **`size`** `'small' | 'medium' | 'large' | 'S' | 'M' | 'L'` (default: `S`) — Dialog size
21
+ - **`styles`** — Custom styles for the dialog root
22
+ - **`closeButtonStyles`** — Custom styles for the close button
23
+ - **`isDismissable`** `boolean` (default: `false`) — Whether the dialog is dismissable (shows close button, allows Escape key)
24
+ - **`onDismiss`** `function` — Callback fired when the dialog is dismissed
25
+ - **`closeIcon`** — Custom close icon element
26
+ - **`role`** `'dialog' | 'alertdialog'` (default: `dialog`) — ARIA role for the dialog
27
+ - **`onBlur`** `function` — Callback fired when the dialog loses focus
28
+ - **`onFocus`** `function` — Callback fired when the dialog receives focus
29
+
30
+ ### Base Properties
31
+
32
+ Supports [Base properties](../../tasty/tasty.md)
33
+
34
+ ### Styling Properties
35
+
36
+ #### styles
37
+
38
+ Customizes the root element of the dialog.
39
+
40
+ **Sub-elements:**
41
+ - `Dialog` - The main dialog container
42
+ - `Content` - The content area wrapper
43
+ - `Header` - The header section wrapper
44
+ - `Footer` - The footer section wrapper
45
+
46
+ #### closeButtonStyles
47
+
48
+ Customizes the close button appearance.
49
+
50
+ ### Style Properties
51
+
52
+ These properties allow direct style application without using the `styles` prop: `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`, `reset`, `padding`, `paddingInline`, `paddingBlock`, `shadow`, `border`, `radius`, `opacity`, `overflow`, `scrollbar`, `hide`, `outline`, `textAlign`, `resize`.
53
+
54
+ ### Modifiers
55
+
56
+ The `mods` property accepts the following modifiers you can override:
57
+
58
+ | Modifier | Type | Description |
59
+ |----------|------|-------------|
60
+ | dismissable | `boolean` | Applied when the dialog can be dismissed with close button or Escape key |
61
+
62
+ ## Variants
63
+
64
+ ### Types
65
+
66
+ - `dialog` - Standard dialog for general content (default)
67
+ - `alertdialog` - Alert dialog for critical notifications or confirmations
68
+
69
+ ### Sizes
70
+
71
+ - `small` / `S` - Compact dialog for simple content (360px width)
72
+ - `medium` / `M` - Standard dialog for moderate content (479px width)
73
+ - `large` / `L` - Large dialog for complex content (798px width)
74
+
75
+ ## Examples
76
+
77
+ ### Basic Dialog
78
+
79
+ ```jsx
80
+ <Dialog>
81
+ <Header>
82
+ <Title>Dialog Title</Title>
83
+ </Header>
84
+ <Content>
85
+ <Paragraph>Dialog content goes here.</Paragraph>
86
+ </Content>
87
+ <Footer>
88
+ <Button onPress={close}>Close</Button>
89
+ </Footer>
90
+ </Dialog>
91
+ ```
92
+
93
+ ### Dismissable Dialog
94
+
95
+ ```jsx
96
+ <Dialog isDismissable onDismiss={close}>
97
+ <Header>
98
+ <Title>Dismissable Dialog</Title>
99
+ </Header>
100
+ <Content>
101
+ <Paragraph>You can close this dialog with the close button or Escape key.</Paragraph>
102
+ </Content>
103
+ </Dialog>
104
+ ```
105
+
106
+ ### Custom Size Dialog
107
+
108
+ ```jsx
109
+ <Dialog size="large">
110
+ <Header>
111
+ <Title>Large Dialog</Title>
112
+ </Header>
113
+ <Content>
114
+ <Paragraph>This dialog uses the large size variant.</Paragraph>
115
+ </Content>
116
+ </Dialog>
117
+ ```
118
+
119
+ ### Alert Dialog
120
+
121
+ ```jsx
122
+ <Dialog role="alertdialog">
123
+ <Header>
124
+ <Title>Confirm Action</Title>
125
+ </Header>
126
+ <Content>
127
+ <Paragraph>Are you sure you want to delete this item? This action cannot be undone.</Paragraph>
128
+ </Content>
129
+ <Footer>
130
+ <Button type="danger" onPress={confirmDelete}>Delete</Button>
131
+ <Button onPress={close}>Cancel</Button>
132
+ </Footer>
133
+ </Dialog>
134
+ ```
135
+
136
+ ## Accessibility
137
+
138
+ ### Keyboard Navigation
139
+
140
+ - `Tab` - Moves focus between interactive elements within the dialog
141
+ - `Shift + Tab` - Moves focus backward between interactive elements
142
+ - `Escape` - Dismisses the dialog if `isDismissable` is true
143
+ - `Enter/Space` - Activates focused buttons or interactive elements
144
+
145
+ ### Screen Reader Support
146
+
147
+ - Dialog announces as "dialog" or "alertdialog" based on role
148
+ - Focus is trapped within the dialog when open
149
+ - Focus returns to the trigger element when dialog closes
150
+ - Dialog title and content are properly announced
151
+ - State changes and actions are communicated to screen readers
152
+
153
+ ### ARIA Properties
154
+
155
+ - `aria-labelledby` - Links dialog to its title element automatically
156
+ - `aria-describedby` - Links dialog to its description content
157
+ - `aria-modal` - Set to true for modal dialogs to indicate exclusive interaction
158
+ - `role` - Set to "dialog" or "alertdialog" based on content type
159
+
160
+ ## Best Practices
161
+
162
+ 1. **Do**: Provide clear titles and actionable buttons
163
+ ```jsx
164
+ <Dialog>
165
+ <Header>
166
+ <Title>Save Changes</Title>
167
+ </Header>
168
+ <Content>
169
+ <Paragraph>Your changes will be saved to the document.</Paragraph>
170
+ </Content>
171
+ <Footer>
172
+ <Button type="primary" onPress={save}>Save</Button>
173
+ <Button onPress={close}>Cancel</Button>
174
+ </Footer>
175
+ </Dialog>
176
+ ```
177
+
178
+ 2. **Don't**: Use dialogs for trivial notifications
179
+ ```jsx
180
+ {/* Avoid using dialogs for simple success messages */}
181
+ <Dialog>
182
+ <Content>Item saved!</Content>
183
+ </Dialog>
184
+ ```
185
+
186
+ 3. **Accessibility**: Always provide a meaningful title for screen readers
187
+ 4. **Dismissal**: Use `isDismissable` for dialogs that users can close voluntarily
188
+ 5. **Focus Management**: Ensure focus moves to the most important action when dialog opens
189
+
190
+ ## Integration with Overlays
191
+
192
+ Dialog is typically used within `DialogTrigger` or `Modal` components for proper overlay management and positioning. It should not be rendered directly without an overlay container.
193
+
194
+ ## Suggested Improvements
195
+
196
+ - Enhancement 1: Add support for custom dialog animations and transitions
197
+ - Enhancement 2: Implement automatic focus management for complex form scenarios
198
+
199
+ ## Related Components
200
+
201
+ - [DialogTrigger](./DialogTrigger.md) - Manages dialog open/close state and positioning
202
+ - AlertDialog - Specialized component for alert scenarios
@@ -0,0 +1,201 @@
1
+ # DialogContainer
2
+
3
+ A DialogContainer accepts a single Dialog as a child, and manages to show and hide it in a modal. Useful in cases where there is no trigger element or when the trigger unmounts while the dialog is open.
4
+
5
+ ## When to Use
6
+
7
+ - When you need to display a dialog without a specific trigger element
8
+ - To prevent dialog closure when the trigger component unmounts
9
+ - For programmatically controlled dialogs in complex application flows
10
+ - When managing dialog state externally from the component hierarchy
11
+ - For dialogs that need to persist across route changes or component updates
12
+
13
+ ## Component
14
+
15
+ ---
16
+
17
+ ### Properties
18
+
19
+ - **`children`** — The Dialog to display, if any
20
+ - **`type`** `'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel'` (default: `modal`) — The type of Dialog that should be rendered
21
+ - **`isDismissable`** `boolean` (default: `false`) — Whether the Dialog is dismissible
22
+ - **`isKeyboardDismissDisabled`** `boolean` (default: `false`) — Whether pressing the escape key to close the dialog should be disabled
23
+ - **`isOpen`** `boolean` — Whether the modal is open or not
24
+ - **`onDismiss`** `function` — Handler called when the x button of a dismissible Dialog is clicked
25
+ - **`hideOnClose`** `boolean` (default: `false`) — Whether the dialog should be hidden when closed
26
+
27
+ ### Base Properties
28
+
29
+ Supports [Base properties](../../tasty/tasty.md)
30
+
31
+ ### Styling Properties
32
+
33
+ DialogContainer has no styling capabilities.
34
+
35
+ ## Variants
36
+
37
+ ### Types
38
+
39
+ - `modal` - Standard modal dialog with backdrop (default)
40
+ - `fullscreen` - Takes up entire screen with padding
41
+ - `fullscreenTakeover` - Fullscreen without padding
42
+ - `panel` - Side panel overlay
43
+
44
+ ## Examples
45
+
46
+ ### Basic Usage
47
+
48
+ ```jsx
49
+ <DialogContainer isOpen={isDialogOpen} onDismiss={() => setIsDialogOpen(false)}>
50
+ <Dialog>
51
+ <Header>
52
+ <Title>Dialog Title</Title>
53
+ </Header>
54
+ <Content>
55
+ <Paragraph>Dialog content goes here.</Paragraph>
56
+ </Content>
57
+ </Dialog>
58
+ </DialogContainer>
59
+ ```
60
+
61
+ ### Controlled Dialog
62
+
63
+ ```jsx
64
+ function ControlledDialogExample() {
65
+ const [isOpen, setIsOpen] = useState(false);
66
+
67
+ return (
68
+ <>
69
+ <Button onPress={() => setIsOpen(true)}>Open Dialog</Button>
70
+ <DialogContainer
71
+ isOpen={isOpen}
72
+ isDismissable
73
+ onDismiss={() => setIsOpen(false)}
74
+ >
75
+ <Dialog>
76
+ <Header>
77
+ <Title>Controlled Dialog</Title>
78
+ </Header>
79
+ <Content>
80
+ <Paragraph>This dialog is controlled externally.</Paragraph>
81
+ </Content>
82
+ <Footer>
83
+ <Button onPress={() => setIsOpen(false)}>Close</Button>
84
+ </Footer>
85
+ </Dialog>
86
+ </DialogContainer>
87
+ </>
88
+ );
89
+ }
90
+ ```
91
+
92
+ ### Conditional Dialog
93
+
94
+ ```jsx
95
+ function ConditionalDialog() {
96
+ const [showDialog, setShowDialog] = useState(false);
97
+ const [dialogContent, setDialogContent] = useState(null);
98
+
99
+ const openDialog = (content) => {
100
+ setDialogContent(content);
101
+ setShowDialog(true);
102
+ };
103
+
104
+ return (
105
+ <DialogContainer isOpen={showDialog} onDismiss={() => setShowDialog(false)}>
106
+ {dialogContent && (
107
+ <Dialog>
108
+ <Header>
109
+ <Title>Dynamic Dialog</Title>
110
+ </Header>
111
+ <Content>
112
+ {dialogContent}
113
+ </Content>
114
+ </Dialog>
115
+ )}
116
+ </DialogContainer>
117
+ );
118
+ }
119
+ ```
120
+
121
+ ### Non-dismissable Dialog
122
+
123
+ ```jsx
124
+ <DialogContainer isOpen={isOpen} isDismissable={false}>
125
+ <Dialog>
126
+ <Header>
127
+ <Title>Important Notice</Title>
128
+ </Header>
129
+ <Content>
130
+ <Paragraph>This dialog requires user action to close.</Paragraph>
131
+ </Content>
132
+ <Footer>
133
+ <Button type="primary" onPress={handleAction}>
134
+ Take Action
135
+ </Button>
136
+ </Footer>
137
+ </Dialog>
138
+ </DialogContainer>
139
+ ```
140
+
141
+ ## Accessibility
142
+
143
+ ### Keyboard Navigation
144
+
145
+ - `Tab` - Moves focus between interactive elements within the dialog
146
+ - `Shift + Tab` - Moves focus backward between interactive elements
147
+ - `Escape` - Closes the dialog if `isDismissable` is true and `isKeyboardDismissDisabled` is false
148
+
149
+ ### Screen Reader Support
150
+
151
+ - Dialog announces as "dialog" to screen readers
152
+ - Focus is trapped within the dialog when open
153
+ - Focus management is handled automatically
154
+ - Modal state is properly communicated to assistive technologies
155
+
156
+ ### ARIA Properties
157
+
158
+ - `aria-modal` - Set to true to indicate modal behavior
159
+ - `aria-labelledby` - Links dialog to its title automatically
160
+ - `aria-describedby` - Links dialog to its description content
161
+ - `role` - Set to "dialog" for proper semantic meaning
162
+
163
+ ## Best Practices
164
+
165
+ 1. **Do**: Use DialogContainer for dialogs without specific triggers
166
+ ```jsx
167
+ <DialogContainer isOpen={showErrorDialog} onDismiss={clearError}>
168
+ <Dialog>
169
+ <Header>
170
+ <Title>Error</Title>
171
+ </Header>
172
+ <Content>
173
+ <Paragraph>{errorMessage}</Paragraph>
174
+ </Content>
175
+ </Dialog>
176
+ </DialogContainer>
177
+ ```
178
+
179
+ 2. **Don't**: Use DialogContainer when DialogTrigger is more appropriate
180
+ ```jsx
181
+ {/* Prefer DialogTrigger when you have a specific trigger */}
182
+ <DialogContainer isOpen={buttonPressed}>
183
+ <Dialog>...</Dialog>
184
+ </DialogContainer>
185
+ ```
186
+
187
+ 3. **State Management**: Always control the `isOpen` state externally
188
+ 4. **Single Child**: Only pass one Dialog as a child to DialogContainer
189
+ 5. **Cleanup**: Ensure proper cleanup of dialog state when component unmounts
190
+
191
+ ## Suggested Improvements
192
+
193
+ - Enhancement 1: Add support for dialog stacking and z-index management
194
+ - Enhancement 2: Implement automatic focus restoration after dialog closes
195
+ - Enhancement 3: Add support for custom backdrop click behavior
196
+
197
+ ## Related Components
198
+
199
+ - [DialogTrigger](./DialogTrigger.md) - Use when you have a specific trigger element
200
+ - [Dialog](./Dialog.md) - The content component used within DialogContainer
201
+ - [Button](../actions/Button.md) - Common element for dialog actions
@@ -0,0 +1,290 @@
1
+ # DialogForm
2
+
3
+ DialogForm combines [Dialog](./Dialog.md) and [Form](../form/Form.md) functionality into a single component for collecting user input in a modal context. It provides automatic form submission handling, dialog closing, and default action buttons.
4
+
5
+ **Recommended Usage:** Use the [`useDialogContainer`](./UseDialogContainer.md) hook for programmatic control over DialogForm. This provides a cleaner API and better state management compared to `DialogTrigger`.
6
+
7
+ ## When to Use
8
+
9
+ - Collect user input in a focused modal interface
10
+ - Create forms that require user attention and confirmation
11
+ - Build edit dialogs, creation modals, or settings forms
12
+ - Handle form submission with automatic dialog closing
13
+
14
+ ## Component
15
+
16
+ ---
17
+
18
+ ### Properties
19
+
20
+ ### DialogForm-specific Properties
21
+
22
+ | Property | Type | Description |
23
+ |----------|------|-------------|
24
+ | `title` | `string` | The title of the dialog |
25
+ | `danger` | `boolean` | Whether the submit button has a danger theme |
26
+ | `submitProps` | `CubeButtonProps` | Properties for submit button (use `label` to change text) |
27
+ | `cancelProps` | `CubeButtonProps` | Properties for cancel button (use `label` to change text) |
28
+ | `preserve` | `boolean` | Preserve form values after submission/dismissal (default: false) |
29
+ | `noActions` | `boolean` | Hide default action buttons to manually specify them |
30
+
31
+ ### Inherited Properties
32
+
33
+ DialogForm inherits all properties from:
34
+ - **[Dialog](./Dialog.md)**: `size`, `isDismissable`, `closeIcon`, styling properties, etc.
35
+ - **[Form](../form/Form.md)**: `name`, `defaultValues`, `onSubmit`, `onSubmitFailed`, `onValuesChange`, `labelPosition`, `requiredMark`, validation properties, etc.
36
+
37
+ See the respective component documentation for complete property lists.
38
+
39
+ ### Base Properties
40
+
41
+ Supports [Base properties](../../tasty/tasty.md)
42
+
43
+ ## Examples
44
+
45
+ ### Basic DialogForm (Recommended)
46
+
47
+ Using `useDialogContainer` for programmatic control:
48
+
49
+ ```jsx
50
+ import { useDialogContainer, DialogForm, Input, Button } from '@cube-dev/ui-kit';
51
+
52
+ function UserFormDialog({ onSubmit, initialData }) {
53
+ return (
54
+ <DialogForm
55
+ title="User Information"
56
+ defaultValues={initialData}
57
+ onSubmit={onSubmit}
58
+ >
59
+ <Input.Text
60
+ name="name"
61
+ label="Name"
62
+ rules={[{ required: true, message: 'Name is required' }]}
63
+ placeholder="Enter your name"
64
+ />
65
+ <Input.Text
66
+ name="email"
67
+ label="Email"
68
+ type="email"
69
+ rules={[
70
+ { required: true, message: 'Email is required' },
71
+ { type: 'email', message: 'Please enter a valid email' }
72
+ ]}
73
+ placeholder="Enter your email"
74
+ />
75
+ </DialogForm>
76
+ );
77
+ }
78
+
79
+ function App() {
80
+ const userDialog = useDialogContainer(UserFormDialog);
81
+
82
+ const openDialog = () => {
83
+ userDialog.open({
84
+ initialData: { name: '', email: '' },
85
+ onSubmit: async (data) => {
86
+ await saveUser(data);
87
+ userDialog.close();
88
+ }
89
+ });
90
+ };
91
+
92
+ return (
93
+ <>
94
+ <Button onPress={openDialog}>Add User</Button>
95
+ {userDialog.rendered}
96
+ </>
97
+ );
98
+ }
99
+ ```
100
+
101
+ ### With DialogTrigger (Alternative)
102
+
103
+ For simpler use cases, you can use `DialogTrigger`:
104
+
105
+ ```jsx
106
+ <DialogTrigger>
107
+ <Button>Open Form</Button>
108
+ <DialogForm
109
+ title="User Information"
110
+ onSubmit={async (data) => {
111
+ await saveUser(data);
112
+ }}
113
+ >
114
+ <Input.Text
115
+ name="name"
116
+ label="Name"
117
+ rules={[{ required: true }]}
118
+ placeholder="Enter your name"
119
+ />
120
+ <Input.Text
121
+ name="email"
122
+ label="Email"
123
+ type="email"
124
+ rules={[
125
+ { required: true },
126
+ { type: 'email', message: 'Please enter a valid email' }
127
+ ]}
128
+ placeholder="Enter your email"
129
+ />
130
+ </DialogForm>
131
+ </DialogTrigger>
132
+ ```
133
+
134
+ ### Danger DialogForm
135
+
136
+ ```jsx
137
+ <DialogForm
138
+ title="Delete Account"
139
+ danger
140
+ submitProps={{ label: 'Delete' }}
141
+ cancelProps={{ label: 'Keep Account' }}
142
+ onSubmit={async (data) => {
143
+ await deleteAccount(data.confirmation);
144
+ }}
145
+ >
146
+ <Input.Text
147
+ name="confirmation"
148
+ label="Type DELETE to confirm"
149
+ rules={[
150
+ { required: true },
151
+ { pattern: /^DELETE$/, message: 'Please type DELETE' }
152
+ ]}
153
+ />
154
+ </DialogForm>
155
+ ```
156
+
157
+ ### Custom Actions with Access to Dismiss
158
+
159
+ When you need custom action buttons, use `noActions` prop and the render function pattern:
160
+
161
+ ```jsx
162
+ <DialogForm
163
+ title="Advanced Form"
164
+ noActions
165
+ onSubmit={handleSubmit}
166
+ >
167
+ {(dismiss) => (
168
+ <>
169
+ <Input.Text name="field1" label="Field 1" />
170
+ <Input.Text name="field2" label="Field 2" />
171
+
172
+ <ButtonGroup>
173
+ <SubmitButton>Save</SubmitButton>
174
+ <Button onPress={() => {
175
+ saveAsDraft();
176
+ dismiss();
177
+ }}>
178
+ Save as Draft
179
+ </Button>
180
+ <Button onPress={dismiss}>Cancel</Button>
181
+ </ButtonGroup>
182
+ </>
183
+ )}
184
+ </DialogForm>
185
+ ```
186
+
187
+ ### Preserving Form Values
188
+
189
+ Use `preserve` prop to keep form values when reopening the dialog:
190
+
191
+ ```jsx
192
+ <DialogForm
193
+ title="Edit Draft"
194
+ preserve
195
+ defaultValues={draftData}
196
+ onSubmit={saveDraft}
197
+ >
198
+ <Input.Text name="title" label="Title" />
199
+ <TextArea name="content" label="Content" />
200
+ </DialogForm>
201
+ ```
202
+
203
+ ## Behavior
204
+
205
+ ### Form Submission
206
+
207
+ - On successful submission (`onSubmit`), the dialog automatically closes
208
+ - Form fields are automatically reset after closing (unless `preserve` is true)
209
+ - Reset happens after a 250ms delay to allow exit animations to complete
210
+
211
+ ### Dialog Dismissal
212
+
213
+ - When dismissed via cancel button or Escape key, form fields are reset (unless `preserve` is true)
214
+ - Both `onClose` (from dialog context) and `onDismiss` callbacks are triggered
215
+
216
+ ### Default Buttons
217
+
218
+ - **Submit Button**: Labeled "Submit" by default, automatically handles form submission and loading states
219
+ - **Cancel Button**: Labeled "Cancel" by default, dismisses the dialog and resets the form
220
+ - Both buttons can be customized via `submitProps` and `cancelProps`
221
+ - Hide default buttons with `noActions={true}` to provide custom actions
222
+
223
+ ## Accessibility
224
+
225
+ DialogForm combines accessibility features from both Dialog and Form:
226
+
227
+ ### Keyboard Navigation
228
+
229
+ - `Tab` / `Shift + Tab` - Navigate through form fields and buttons
230
+ - `Enter` - Submit the form (when on submit button)
231
+ - `Escape` - Dismiss the dialog (if `isDismissable` is true)
232
+
233
+ ### Screen Reader Support
234
+
235
+ - Dialog announces with proper title
236
+ - Form fields have proper label associations
237
+ - Validation errors are announced
238
+ - Submit/cancel actions are clearly communicated
239
+ - Focus management handles transitions between dialog open/close
240
+
241
+ See [Dialog Accessibility](./Dialog.md#accessibility) and [Form Accessibility](../form/Form.md#accessibility) for complete details.
242
+
243
+ ## Best Practices
244
+
245
+ 1. **Use useDialogContainer for programmatic control**: Preferred method for better state management
246
+ ```jsx
247
+ const dialog = useDialogContainer(MyFormDialog);
248
+ dialog.open({ initialData, onSubmit: handleSubmit });
249
+ ```
250
+
251
+ 2. **Provide clear titles**: Always set a descriptive `title` for context
252
+ ```jsx
253
+ <DialogForm title="Edit User Profile" onSubmit={save}>
254
+ ```
255
+
256
+ 3. **Use danger theme for destructive actions**: Apply `danger` for delete/remove operations
257
+ ```jsx
258
+ <DialogForm title="Delete Item" danger submitProps={{ label: 'Delete' }}>
259
+ ```
260
+
261
+ 4. **Customize button labels**: Make action buttons specific to the task
262
+ ```jsx
263
+ <DialogForm
264
+ title="Create Project"
265
+ submitProps={{ label: 'Create' }}
266
+ cancelProps={{ label: 'Discard' }}
267
+ >
268
+ ```
269
+
270
+ 5. **Handle submission errors**: Implement `onSubmitFailed` for error handling
271
+ ```jsx
272
+ <DialogForm
273
+ onSubmit={save}
274
+ onSubmitFailed={(error) => notify.error(error.message)}
275
+ >
276
+ ```
277
+
278
+ 6. **Use preserve for drafts**: Enable `preserve` when working with draft content
279
+ ```jsx
280
+ <DialogForm preserve title="Edit Draft" defaultValues={draft}>
281
+ ```
282
+
283
+ ## Related Components
284
+
285
+ - [useDialogContainer](./UseDialogContainer.md) - **Recommended hook for programmatic dialog control**
286
+ - [Dialog](./Dialog.md) - Base dialog component
287
+ - [Form](../form/Form.md) - Form component with validation
288
+ - [DialogTrigger](./DialogTrigger.md) - Alternative: manages dialog open/close state
289
+ - AlertDialog - For simple confirmations without forms
290
+