@cube-dev/ui-kit 0.0.0-canary-9bde021 → 0.0.0-canary-22ee7cb

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 (569) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.js +1 -1
  18. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  19. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  20. package/dist/components/actions/ButtonSplit/context.js +1 -1
  21. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  22. package/dist/components/actions/CommandMenu/styled.js +1 -1
  23. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  24. package/dist/components/actions/ItemActionContext.js +1 -1
  25. package/dist/components/actions/ItemActionsWrapper.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/actions-run.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +2 -1
  48. package/dist/components/content/Content.js.map +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +1 -1
  59. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  60. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutPane.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  76. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  77. package/dist/components/content/Layout/index.js +1 -1
  78. package/dist/components/content/Layout/utils.js +1 -1
  79. package/dist/components/content/Paragraph.js +1 -1
  80. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  81. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  82. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  83. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  84. package/dist/components/content/Result/Result.js +1 -1
  85. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  86. package/dist/components/content/Tag/Tag.js +1 -1
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/Tree/Tree.js +1 -1
  91. package/dist/components/content/Tree/TreeNode.js +1 -1
  92. package/dist/components/content/Tree/styled.js +1 -1
  93. package/dist/components/content/Tree/tree-index.js +1 -1
  94. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  95. package/dist/components/content/Tree/use-load-data.js +1 -1
  96. package/dist/components/content/highlightText.js +1 -1
  97. package/dist/components/content/use-auto-tooltip.js +1 -1
  98. package/dist/components/data/DataTable/DataTable.js +1 -1
  99. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  104. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  105. package/dist/components/data/TableBase/RowCollection.js +1 -1
  106. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  107. package/dist/components/data/TableBase/TableRow.js +1 -1
  108. package/dist/components/data/TableBase/TableView.js +1 -1
  109. package/dist/components/data/TableBase/column-menu.js +1 -1
  110. package/dist/components/data/TableBase/column-tint.js +1 -1
  111. package/dist/components/data/TableBase/row-menu.js +1 -1
  112. package/dist/components/data/TableBase/styled.js +1 -1
  113. package/dist/components/data/TableBase/table-tree.js +1 -1
  114. package/dist/components/data/TableBase/types.js +1 -1
  115. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  116. package/dist/components/data/TableBase/use-column-order.js +1 -1
  117. package/dist/components/data/TableBase/use-container-width.js +1 -1
  118. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  119. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  120. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  121. package/dist/components/data/TableBase/use-table-search.js +1 -1
  122. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  123. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  124. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  125. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  126. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  127. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  128. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  129. package/dist/components/fields/Checkbox/context.js +1 -1
  130. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  131. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  132. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  133. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  134. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  135. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  136. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  137. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  138. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  139. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  140. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  141. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  142. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  145. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  146. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  147. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  148. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  149. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  150. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  151. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  152. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  154. package/dist/components/fields/DatePicker/period.js +1 -1
  155. package/dist/components/fields/DatePicker/props.js +1 -1
  156. package/dist/components/fields/DatePicker/utils.js +1 -1
  157. package/dist/components/fields/FileInput/FileInput.js +1 -1
  158. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  159. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  160. package/dist/components/fields/Input/Input.js +1 -1
  161. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  162. package/dist/components/fields/ListBox/ListBox.js +1 -1
  163. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  164. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  165. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  166. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  167. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  168. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  169. package/dist/components/fields/Picker/Picker.js +1 -1
  170. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  171. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  172. package/dist/components/fields/RadioGroup/context.js +1 -1
  173. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  174. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  175. package/dist/components/fields/Select/Select.js +1 -1
  176. package/dist/components/fields/Slider/Gradation.js +1 -1
  177. package/dist/components/fields/Slider/HueSlider.js +1 -1
  178. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  179. package/dist/components/fields/Slider/Slider.js +1 -1
  180. package/dist/components/fields/Slider/SliderBase.js +1 -1
  181. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  182. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  183. package/dist/components/fields/Slider/elements.js +1 -1
  184. package/dist/components/fields/Slider/index.js +1 -1
  185. package/dist/components/fields/Switch/Switch.js +1 -1
  186. package/dist/components/fields/TextArea/TextArea.js +1 -1
  187. package/dist/components/fields/TextInput/TextInput.js +1 -1
  188. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  189. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  190. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  191. package/dist/components/fields/TriggerActions.js +1 -1
  192. package/dist/components/fields/color/ColorPanel.js +1 -1
  193. package/dist/components/fields/color/channels.js +1 -1
  194. package/dist/components/fields/color/color.js +1 -1
  195. package/dist/components/fields/color/context.js +1 -1
  196. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  197. package/dist/components/form/Form/Field.js +1 -1
  198. package/dist/components/form/Form/Form.js +20 -5
  199. package/dist/components/form/Form/Form.js.map +1 -1
  200. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  201. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  202. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  203. package/dist/components/form/Form/SubmitError.js +1 -1
  204. package/dist/components/form/Form/backend.js +1 -1
  205. package/dist/components/form/Form/index.js +1 -1
  206. package/dist/components/form/Form/modern/actions.js +1 -1
  207. package/dist/components/form/Form/modern/context.js +1 -1
  208. package/dist/components/form/Form/modern/controller.js +1 -1
  209. package/dist/components/form/Form/modern/field-binding.js +1 -1
  210. package/dist/components/form/Form/modern/field.js +1 -1
  211. package/dist/components/form/Form/modern/react.js +1 -1
  212. package/dist/components/form/Form/modern/store.js +1 -1
  213. package/dist/components/form/Form/modern/validation.js +1 -1
  214. package/dist/components/form/Form/modern/values.js +1 -1
  215. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  216. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  217. package/dist/components/form/Form/use-field/use-field.js +1 -1
  218. package/dist/components/form/Form/use-form.js +1 -1
  219. package/dist/components/form/Form/validation.js +1 -1
  220. package/dist/components/form/Label.js +1 -1
  221. package/dist/components/form/legacy-tooltip.js +1 -1
  222. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  223. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  224. package/dist/components/form/validation/use-validation-props.js +1 -1
  225. package/dist/components/form/wrapper.js +1 -1
  226. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  227. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  228. package/dist/components/layout/Board/Board.js +1 -1
  229. package/dist/components/layout/Board/BoardProvider.js +1 -1
  230. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  231. package/dist/components/layout/Board/Widget.js +1 -1
  232. package/dist/components/layout/Board/WidgetHost.js +1 -1
  233. package/dist/components/layout/Board/board-context.js +1 -1
  234. package/dist/components/layout/Board/board-store.js +1 -1
  235. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  236. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  237. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  238. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  239. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  240. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  241. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  242. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  243. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  244. package/dist/components/layout/Board/index.js +1 -1
  245. package/dist/components/layout/Board/responsive-utils.js +1 -1
  246. package/dist/components/layout/Board/use-board-layout.js +1 -1
  247. package/dist/components/layout/Board/use-board-registry.js +1 -1
  248. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  249. package/dist/components/layout/Board/use-board-selection.js +1 -1
  250. package/dist/components/layout/Flex.js +1 -1
  251. package/dist/components/layout/Flow.js +1 -1
  252. package/dist/components/layout/Grid.js +1 -1
  253. package/dist/components/layout/Panel.js +1 -1
  254. package/dist/components/layout/Prefix.js +1 -1
  255. package/dist/components/layout/ResizablePanel.js +1 -1
  256. package/dist/components/layout/Space.js +1 -1
  257. package/dist/components/layout/Suffix.js +1 -1
  258. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  259. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  260. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  261. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  262. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  263. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  264. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  265. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  266. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  267. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  268. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  269. package/dist/components/navigation/Tabs/styled.js +1 -1
  270. package/dist/components/navigation/Tabs/types.js +1 -1
  271. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  272. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  273. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  274. package/dist/components/other/Calendar/Calendar.js +1 -1
  275. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  276. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  277. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  278. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  279. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  280. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  281. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  282. package/dist/components/other/Calendar/styled.js +1 -1
  283. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  284. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  285. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  286. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  287. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  288. package/dist/components/overlays/Dialog/Dialog.js +18 -9
  289. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  290. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  291. package/dist/components/overlays/Dialog/DialogForm.js +6 -5
  292. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  293. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  294. package/dist/components/overlays/Dialog/ModernDialogForm.js +71 -64
  295. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  296. package/dist/components/overlays/Dialog/context.js +1 -1
  297. package/dist/components/overlays/Dialog/use-content-overflow.js +68 -0
  298. package/dist/components/overlays/Dialog/use-content-overflow.js.map +1 -0
  299. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  300. package/dist/components/overlays/Modal/Modal.js +1 -1
  301. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  302. package/dist/components/overlays/Modal/Overlay.js +1 -1
  303. package/dist/components/overlays/Modal/Popover.js +1 -1
  304. package/dist/components/overlays/Modal/Tray.js +1 -1
  305. package/dist/components/overlays/Modal/Underlay.js +1 -1
  306. package/dist/components/overlays/Notifications/Notification.js +1 -1
  307. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  308. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  309. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  310. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  311. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  312. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  313. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  314. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  315. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  316. package/dist/components/overlays/Notifications/index.js +1 -1
  317. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  318. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  319. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  320. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  321. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  322. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  323. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  324. package/dist/components/overlays/Toast/index.js +1 -1
  325. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  326. package/dist/components/overlays/Toast/useToast.js +1 -1
  327. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  328. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  329. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  330. package/dist/components/overlays/Tooltip/context.js +1 -1
  331. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  332. package/dist/components/portal/Portal.js +1 -1
  333. package/dist/components/portal/PortalProvider.js +1 -1
  334. package/dist/components/portal/usePortal.js +1 -1
  335. package/dist/components/shared/DraggableCollection.js +1 -1
  336. package/dist/components/shared/InvalidIcon.js +1 -1
  337. package/dist/components/shared/ValidIcon.js +1 -1
  338. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  339. package/dist/components/status/Spin/Cube.js +1 -1
  340. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  341. package/dist/components/status/Spin/Spin.js +1 -1
  342. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  343. package/dist/data/item-themes.js +1 -1
  344. package/dist/data/themes.js +1 -1
  345. package/dist/eslint-plugin/defaults.generated.js +1 -1
  346. package/dist/eslint-plugin/index.js +1 -1
  347. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  348. package/dist/i18n/I18nProvider.js +1 -1
  349. package/dist/i18n/createFormatter.js +1 -1
  350. package/dist/i18n/index.js +1 -1
  351. package/dist/i18n/instance.js +1 -1
  352. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  353. package/dist/i18n/locales/en-US/uikit.js +1 -1
  354. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  355. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  356. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  357. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  358. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  359. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  360. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  361. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  362. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  363. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  364. package/dist/i18n/locales.js +1 -1
  365. package/dist/i18n/useFormatter.js +1 -1
  366. package/dist/i18n/useI18n.js +1 -1
  367. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  368. package/dist/icons/AdjustmentsIcon.js +1 -1
  369. package/dist/icons/AiIcon.js +1 -1
  370. package/dist/icons/AreaChartIcon.js +1 -1
  371. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  372. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  373. package/dist/icons/BackwardIcon.js +1 -1
  374. package/dist/icons/BarChartIcon.js +1 -1
  375. package/dist/icons/BellFilledIcon.js +1 -1
  376. package/dist/icons/BellIcon.js +1 -1
  377. package/dist/icons/BooleanIcon.js +1 -1
  378. package/dist/icons/CalendarEditIcon.js +1 -1
  379. package/dist/icons/CalendarIcon.js +1 -1
  380. package/dist/icons/CaretDownIcon.js +1 -1
  381. package/dist/icons/CaretUpIcon.js +1 -1
  382. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  383. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  384. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  385. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  386. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  387. package/dist/icons/ChartBarLineIcon.js +1 -1
  388. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  389. package/dist/icons/ChartBarStackedIcon.js +1 -1
  390. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  391. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  392. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  393. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  394. package/dist/icons/ChartBubbleIcon.js +1 -1
  395. package/dist/icons/ChartDonut2Icon.js +1 -1
  396. package/dist/icons/ChartFunnelIcon.js +1 -1
  397. package/dist/icons/ChartHeatmapIcon.js +1 -1
  398. package/dist/icons/ChartKPIIcon.js +1 -1
  399. package/dist/icons/ChartPie2Icon.js +1 -1
  400. package/dist/icons/ChartScatterIcon.js +1 -1
  401. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  402. package/dist/icons/CheckCircleIcon.js +1 -1
  403. package/dist/icons/CheckIcon.js +1 -1
  404. package/dist/icons/CircleFilledIcon.js +1 -1
  405. package/dist/icons/ClearIcon.js +1 -1
  406. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  407. package/dist/icons/CloseCircleIcon.js +1 -1
  408. package/dist/icons/CloseIcon.js +1 -1
  409. package/dist/icons/CodeIcon.js +1 -1
  410. package/dist/icons/ColumnTotalIcon.js +1 -1
  411. package/dist/icons/CopyIcon.js +1 -1
  412. package/dist/icons/CountIcon.js +1 -1
  413. package/dist/icons/CubeIcon.js +1 -1
  414. package/dist/icons/CubePauseIcon.js +1 -1
  415. package/dist/icons/CubePlayIcon.js +1 -1
  416. package/dist/icons/CurrencyDollarIcon.js +1 -1
  417. package/dist/icons/DangerIcon.js +1 -1
  418. package/dist/icons/DashboardIcon.js +1 -1
  419. package/dist/icons/DatabaseIcon.js +1 -1
  420. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  421. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  422. package/dist/icons/DirectionIcon.js +1 -1
  423. package/dist/icons/DonutIcon.js +1 -1
  424. package/dist/icons/DownIcon.js +1 -1
  425. package/dist/icons/EditIcon.js +1 -1
  426. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  427. package/dist/icons/ExclamationCircleIcon.js +1 -1
  428. package/dist/icons/ExclamationIcon.js +1 -1
  429. package/dist/icons/EyeIcon.js +1 -1
  430. package/dist/icons/EyeInvisibleIcon.js +1 -1
  431. package/dist/icons/FilterIcon.js +1 -1
  432. package/dist/icons/FolderFilledIcon.js +1 -1
  433. package/dist/icons/FolderIcon.js +1 -1
  434. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  435. package/dist/icons/FolderOpenIcon.js +1 -1
  436. package/dist/icons/ForwardIcon.js +1 -1
  437. package/dist/icons/GripVerticalIcon.js +1 -1
  438. package/dist/icons/HierarchyIcon.js +1 -1
  439. package/dist/icons/HierarchyOpenIcon.js +1 -1
  440. package/dist/icons/Icon.js +1 -1
  441. package/dist/icons/InfoCircleIcon.js +1 -1
  442. package/dist/icons/InfoIcon.js +1 -1
  443. package/dist/icons/KeyIcon.js +1 -1
  444. package/dist/icons/LeftIcon.js +1 -1
  445. package/dist/icons/LineChartIcon.js +1 -1
  446. package/dist/icons/LoadingIcon.js +1 -1
  447. package/dist/icons/LockFilledIcon.js +1 -1
  448. package/dist/icons/LockIcon.js +1 -1
  449. package/dist/icons/MoreIcon.js +1 -1
  450. package/dist/icons/NotAllowedIcon.js +1 -1
  451. package/dist/icons/Number123Icon.js +1 -1
  452. package/dist/icons/NumberIcon.js +1 -1
  453. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  454. package/dist/icons/PauseCircleIcon.js +1 -1
  455. package/dist/icons/PauseIcon.js +1 -1
  456. package/dist/icons/PercentageIcon.js +1 -1
  457. package/dist/icons/PieChartIcon.js +1 -1
  458. package/dist/icons/PipetteIcon.js +1 -1
  459. package/dist/icons/PlayCircleIcon.js +1 -1
  460. package/dist/icons/PlayIcon.js +1 -1
  461. package/dist/icons/PlusIcon.js +1 -1
  462. package/dist/icons/ProgressBarIcon.js +1 -1
  463. package/dist/icons/ReloadIcon.js +1 -1
  464. package/dist/icons/ReportIcon.js +1 -1
  465. package/dist/icons/ReturnIcon.js +1 -1
  466. package/dist/icons/RightIcon.js +1 -1
  467. package/dist/icons/RowTotalsIcon.js +1 -1
  468. package/dist/icons/SchemeIcon.js +1 -1
  469. package/dist/icons/SearchIcon.js +1 -1
  470. package/dist/icons/SemanticQueryIcon.js +1 -1
  471. package/dist/icons/SettingsIcon.js +1 -1
  472. package/dist/icons/ShieldFilledIcon.js +1 -1
  473. package/dist/icons/ShieldIcon.js +1 -1
  474. package/dist/icons/SlashIcon.js +1 -1
  475. package/dist/icons/SparklesIcon.js +1 -1
  476. package/dist/icons/SqlIcon.js +1 -1
  477. package/dist/icons/StatsIcon.js +1 -1
  478. package/dist/icons/StopIcon.js +1 -1
  479. package/dist/icons/StringIcon.js +1 -1
  480. package/dist/icons/SubtotalsIcon.js +1 -1
  481. package/dist/icons/SwitchIcon.js +1 -1
  482. package/dist/icons/TableIcon.js +1 -1
  483. package/dist/icons/ThumbsDownIcon.js +1 -1
  484. package/dist/icons/ThumbsUpIcon.js +1 -1
  485. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  486. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  487. package/dist/icons/ThunderboltIcon.js +1 -1
  488. package/dist/icons/TimeIcon.js +1 -1
  489. package/dist/icons/TrashIcon.js +1 -1
  490. package/dist/icons/UnlockIcon.js +1 -1
  491. package/dist/icons/UpIcon.js +1 -1
  492. package/dist/icons/UserGroupIcon.js +1 -1
  493. package/dist/icons/UserIcon.js +1 -1
  494. package/dist/icons/UserLockIcon.js +1 -1
  495. package/dist/icons/ViewIcon.js +1 -1
  496. package/dist/icons/WarningFilledIcon.js +1 -1
  497. package/dist/icons/WarningIcon.js +1 -1
  498. package/dist/icons/wrap-icon.js +1 -1
  499. package/dist/index.js +1 -1
  500. package/dist/probe/canonicalize.js +1 -1
  501. package/dist/probe/css.js +1 -1
  502. package/dist/probe/index.js +1 -1
  503. package/dist/provider.js +1 -1
  504. package/dist/providers/TrackingProvider.js +1 -1
  505. package/dist/providers/navigationAdapter.default.js +1 -1
  506. package/dist/tokens/all-tokens.js +1 -1
  507. package/dist/tokens/base.js +1 -1
  508. package/dist/tokens/color-seed.js +1 -1
  509. package/dist/tokens/color-theme.js +1 -1
  510. package/dist/tokens/colors.js +1 -1
  511. package/dist/tokens/layout.js +1 -1
  512. package/dist/tokens/lazy-styles.js +1 -1
  513. package/dist/tokens/legacy-color.js +1 -1
  514. package/dist/tokens/palette-config.js +1 -1
  515. package/dist/tokens/palette.js +1 -1
  516. package/dist/tokens/resolve.js +1 -1
  517. package/dist/tokens/shadows.js +1 -1
  518. package/dist/tokens/sizes.js +1 -1
  519. package/dist/tokens/spacing.js +1 -1
  520. package/dist/tokens/typography.js +1 -1
  521. package/dist/utils/ResizeSensor.js +1 -1
  522. package/dist/utils/colors.js +1 -1
  523. package/dist/utils/dotize.js +1 -1
  524. package/dist/utils/is-dev-env.js +1 -1
  525. package/dist/utils/modules.js +1 -1
  526. package/dist/utils/promise.js +1 -1
  527. package/dist/utils/raf.js +1 -1
  528. package/dist/utils/random.js +1 -1
  529. package/dist/utils/range.js +1 -1
  530. package/dist/utils/react/RenderCache.js +1 -1
  531. package/dist/utils/react/Slots.js +1 -1
  532. package/dist/utils/react/chain.js +1 -1
  533. package/dist/utils/react/disabledProps.js +1 -1
  534. package/dist/utils/react/escapePropagation.js +1 -1
  535. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  536. package/dist/utils/react/index.js +1 -1
  537. package/dist/utils/react/interactions.js +1 -1
  538. package/dist/utils/react/isTextOnly.js +1 -1
  539. package/dist/utils/react/mapProps.js +1 -1
  540. package/dist/utils/react/mergeProps.js +1 -1
  541. package/dist/utils/react/nullableValue.js +1 -1
  542. package/dist/utils/react/programmaticFocus.js +1 -1
  543. package/dist/utils/react/resolveIcon.js +1 -1
  544. package/dist/utils/react/sharedStore.js +1 -1
  545. package/dist/utils/react/useBufferedValue.js +1 -1
  546. package/dist/utils/react/useCombinedRefs.js +1 -1
  547. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  548. package/dist/utils/react/useEventBus.js +1 -1
  549. package/dist/utils/react/useId.js +1 -1
  550. package/dist/utils/react/useIsDarwin.js +1 -1
  551. package/dist/utils/react/useKeySymbols.js +1 -1
  552. package/dist/utils/react/useLayoutEffect.js +1 -1
  553. package/dist/utils/react/useLocalStorage.js +1 -1
  554. package/dist/utils/react/useMergeStyles.js +1 -1
  555. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  556. package/dist/utils/react/usePopoverSync.js +1 -1
  557. package/dist/utils/react/useQaProps.js +1 -1
  558. package/dist/utils/react/useScheme.js +1 -1
  559. package/dist/utils/react/useViewportSize.js +1 -1
  560. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  561. package/dist/utils/selection.js +1 -1
  562. package/dist/utils/styles.js +1 -1
  563. package/dist/utils/tree.js +1 -1
  564. package/dist/utils/warnings.js +1 -1
  565. package/dist/version.js +2 -2
  566. package/docs/components/form/Form.md +2 -0
  567. package/docs/components/overlays/Dialog.md +30 -3
  568. package/docs/components/overlays/DialogForm.md +1 -0
  569. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["createFocusManager","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","forwardRef","ReactElement","Ref","useEffect","useMemo","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","useDialogContext","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","Dialog","props","ref","$","_c","transitionContext","isEntered","transitionState","context","t0","content","shouldContainFocus","isOpen","t1","shouldRestoreFocus","t2","DialogContent","HTMLDivElement","contextProps","children","onClose","style","otherProps","toUpperCase","t","domRef","dialogProps","titleProps","dismissButton","setTimeout","current","activeElement","document","isFocusOutsideDialog","contains","isFocusOnDialogShell","priorityElement","querySelector","HTMLElement","focus","focusManager","focusFirst","tabbable","slots","title","level","preset","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","buttonGroup","dismissable"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager } from '@react-aria/focus';\nimport { useObjectRef } from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, ReactElement, Ref, useEffect, useMemo } from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n width: {\n '': '$min-dialog-size $dialog-size (100dvw - 8x)',\n 'type=fullscreen': '(100dvw - 8x) (100dvw - 8x)',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /** Whether the dialog is dismissable */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionContext = useOpenTransitionContext();\n\n const isEntered = transitionContext?.transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = useMemo(() => {\n return <DialogContent key=\"content\" {...props} ref={ref} />;\n }, [props, ref]);\n\n const shouldContainFocus =\n isEntered && !!context.isOpen && context.type !== 'panel';\n\n return (\n // This component traps the focus inside the dialog and restores it on\n // close. The restore is the one that matters for popover-type dialogs —\n // `DialogTrigger`'s own restore is a no-op there — so `shouldRestoreFocus`\n // has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n isDismissable = contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n let { dialogProps, titleProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n if (contextProps.isOpen) {\n setTimeout(() => {\n if (!domRef.current) return;\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: autofocus input or primary button\n const priorityElement = domRef.current.querySelector(\n 'input[data-autofocus], button[type=\"submit\"], button[data-type=\"primary\"]',\n ) as HTMLElement | null;\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n }, [contextProps.isOpen]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...dialogProps}\n mods={{ dismissable: isDismissable }}\n style={{\n '--dialog-size': `${sizePxMap[size] || sizePxMap.small}px`,\n ...style,\n }}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dialog.js","names":["createFocusManager","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","forwardRef","ReactElement","Ref","useEffect","useMemo","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","useDialogContext","useContentOverflow","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","Dialog","props","ref","$","_c","transitionContext","isEntered","transitionState","context","t0","content","shouldContainFocus","isOpen","t1","shouldRestoreFocus","t2","DialogContent","HTMLDivElement","contextProps","children","onClose","style","otherProps","toUpperCase","t","domRef","dialogProps","titleProps","dismissButton","setTimeout","current","activeElement","document","isFocusOutsideDialog","contains","isFocusOnDialogShell","priorityElement","querySelector","HTMLElement","focus","focusManager","focusFirst","tabbable","contentOverflows","slots","title","level","preset","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","dismissable"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager } from '@react-aria/focus';\nimport { useObjectRef } from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, ReactElement, Ref, useEffect, useMemo } from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n width: {\n '': '$min-dialog-size $dialog-size (100dvw - 8x)',\n 'type=fullscreen': '(100dvw - 8x) (100dvw - 8x)',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n\n // A `Form` placed directly here (`Dialog > Form > Content + Footer`) lays\n // itself out as this flex column — see `FormElement`. It is the form's own\n // state rather than a rule here, so the form's `styles` still win.\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /** Whether the dialog is dismissable */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionContext = useOpenTransitionContext();\n\n const isEntered = transitionContext?.transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = useMemo(() => {\n return <DialogContent key=\"content\" {...props} ref={ref} />;\n }, [props, ref]);\n\n const shouldContainFocus =\n isEntered && !!context.isOpen && context.type !== 'panel';\n\n return (\n // This component traps the focus inside the dialog and restores it on\n // close. The restore is the one that matters for popover-type dialogs —\n // `DialogTrigger`'s own restore is a no-op there — so `shouldRestoreFocus`\n // has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n isDismissable = contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n let { dialogProps, titleProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n if (contextProps.isOpen) {\n setTimeout(() => {\n if (!domRef.current) return;\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: autofocus input or primary button\n const priorityElement = domRef.current.querySelector(\n 'input[data-autofocus], button[type=\"submit\"], button[data-type=\"primary\"]',\n ) as HTMLElement | null;\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n }, [contextProps.isOpen]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n const contentOverflows = useContentOverflow(domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n mods: { 'content-overflow': contentOverflows },\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n // A line only while the body scrolls: the footer then sits over\n // content that carries on beneath it, and the line is what says so.\n // Under a body that fits, the actions simply end it and a rule there\n // reads as clutter.\n border: {\n '': false,\n 'content-overflow': 'top',\n },\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...dialogProps}\n mods={{ dismissable: isDismissable }}\n style={{\n '--dialog-size': `${sizePxMap[size] || sizePxMap.small}px`,\n ...style,\n }}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { _Modal } from "../Modal/Modal.js";
3
3
  import { DialogContext } from "./context.js";
4
4
  import { Children, isValidElement, useRef } from "react";
@@ -1,10 +1,11 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { _Title } from "../../content/Title.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { Button } from "../../actions/Button/Button.js";
5
5
  import { ButtonGroup } from "../../actions/ButtonGroup/ButtonGroup.js";
6
6
  import { useDialogContext } from "./context.js";
7
7
  import { Content } from "../../content/Content.js";
8
+ import { Footer } from "../../content/Footer.js";
8
9
  import { Header } from "../../content/Header.js";
9
10
  import { Dialog } from "./Dialog.js";
10
11
  import { isModernFormController } from "../../form/Form/backend.js";
@@ -47,7 +48,7 @@ function LegacyDialogForm(props) {
47
48
  children: [/* @__PURE__ */ jsx(Header, { children: /* @__PURE__ */ jsx(_Title, {
48
49
  ellipsis: true,
49
50
  children: title
50
- }) }), /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsxs(_Form, {
51
+ }) }), /* @__PURE__ */ jsxs(_Form, {
51
52
  qa: qa || "DialogForm",
52
53
  form,
53
54
  name,
@@ -69,7 +70,7 @@ function LegacyDialogForm(props) {
69
70
  },
70
71
  onSubmitFailed,
71
72
  onValuesChange,
72
- children: [typeof children === "function" ? children(onLocalDismiss) : children, !noActions ? /* @__PURE__ */ jsxs(ButtonGroup, { children: [/* @__PURE__ */ jsx(_SubmitButton, {
73
+ children: [/* @__PURE__ */ jsx(Content, { children: typeof children === "function" ? children(onLocalDismiss) : children }), !noActions ? /* @__PURE__ */ jsx(Footer, { children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [/* @__PURE__ */ jsx(_SubmitButton, {
73
74
  qa: `${qa || ""}SubmitButton`,
74
75
  theme: danger ? "danger" : void 0,
75
76
  label: t("dialogForm.submit", "Submit"),
@@ -79,8 +80,8 @@ function LegacyDialogForm(props) {
79
80
  label: t("dialogForm.cancel", "Cancel"),
80
81
  onPress: onLocalDismiss,
81
82
  ...cancelProps || {}
82
- })] }) : void 0]
83
- }) })]
83
+ })] }) }) : void 0]
84
+ })]
84
85
  });
85
86
  }
86
87
 
@@ -1 +1 @@
1
- {"version":3,"file":"DialogForm.js","names":["useI18n","Button","ButtonGroup","Content","Header","Title","isModernFormController","Form","SubmitButton","useForm","useDialogContext","CubeDialogProps","Dialog","ModernDialogForm","ReactElement","CubeButtonProps","CubeFormProps","ModernFormProps","CubeSubmitButtonProps","FieldTypes","CubeDialogFormProps","Omit","T","danger","submitProps","cancelProps","preserve","noActions","title","children","onLocalDismiss","CubeDialogFormRef","open","close","ModernDialogFormProps","DialogForm","props","$","_c","t0","form","LegacyDialogForm","qa","name","defaultValues","onDismiss","onSubmit","onSubmitFailed","onValuesChange","labelStyles","labelPosition","requiredMark","necessityIndicator","isReadOnly","isInvalid","isValid","validateTrigger","size","closeIcon","dialogProps","t","onClose","setTimeout","resetFields","data","undefined"],"sources":["../../../../src/components/overlays/Dialog/DialogForm.tsx"],"sourcesContent":["import { useI18n } from '../../../i18n';\nimport { Button } from '../../actions/Button/Button';\nimport { ButtonGroup } from '../../actions/ButtonGroup/ButtonGroup';\nimport { Content } from '../../content/Content';\nimport { Header } from '../../content/Header';\nimport { Title } from '../../content/Title';\nimport { isModernFormController } from '../../form/Form/backend';\nimport { Form } from '../../form/Form/Form';\nimport { SubmitButton } from '../../form/Form/SubmitButton/SubmitButton';\nimport { useForm } from '../../form/Form/use-form';\n\nimport { useDialogContext } from './context';\nimport { CubeDialogProps, Dialog } from './Dialog';\nimport { ModernDialogForm } from './ModernDialogForm';\n\nimport type { ReactElement } from 'react';\nimport type { CubeButtonProps } from '../../actions/Button/Button';\nimport type { CubeFormProps } from '../../form/Form/Form';\nimport type { ModernFormProps } from '../../form/Form/ModernFormRoot';\nimport type { CubeSubmitButtonProps } from '../../form/Form/SubmitButton/SubmitButton';\nimport type { FieldTypes } from '../../form/Form/types';\n\nexport interface CubeDialogFormProps<T extends FieldTypes = FieldTypes>\n extends Omit<CubeDialogProps, 'children'>,\n Omit<CubeFormProps<T>, 'role' | 'children'> {\n /** Whether the submit button has a `danger` theme */\n danger?: boolean;\n /** Properties for submit button. Use `label` to change text. */\n submitProps?: CubeButtonProps;\n /** Properties for cancel button. Use `label` to change text. */\n cancelProps?: CubeButtonProps;\n /** Preserve form values after submission or dismissal. */\n preserve?: boolean;\n /** Whether to hide action button so developer can manually specify them */\n noActions?: boolean;\n /** The title of the dialog */\n title?: string;\n /** Children nodes or render function */\n children?:\n | CubeFormProps['children']\n | ((onLocalDismiss: () => void) => CubeFormProps['children']);\n}\n\nexport interface CubeDialogFormRef {\n open: () => void;\n close: () => void;\n}\n\n/**\n * DialogForms are a specific type of Dialog. They contain forms to fill.\n */\nexport interface ModernDialogFormProps<T extends FieldTypes = FieldTypes>\n extends Omit<CubeDialogFormProps<T>, keyof CubeFormProps<T> | 'submitProps'>,\n Omit<ModernFormProps<T>, 'role' | 'children'> {\n children?: CubeDialogFormProps<T>['children'];\n submitProps?: Omit<CubeSubmitButtonProps<T>, 'form'>;\n}\n\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: CubeDialogFormProps<T>,\n): ReactElement;\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: ModernDialogFormProps<T>,\n): ReactElement;\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: CubeDialogFormProps<T> | ModernDialogFormProps<T>,\n): ReactElement {\n return isModernFormController(props.form) ? (\n <ModernDialogForm {...(props as ModernDialogFormProps<T>)} />\n ) : (\n <LegacyDialogForm {...(props as CubeDialogFormProps<T>)} />\n );\n}\n\nfunction LegacyDialogForm<T extends FieldTypes>(props: CubeDialogFormProps<T>) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n let {\n qa,\n name,\n form,\n defaultValues,\n onDismiss,\n onSubmit,\n onSubmitFailed,\n onValuesChange,\n labelStyles,\n labelPosition,\n requiredMark,\n necessityIndicator,\n isReadOnly,\n isInvalid,\n isValid,\n validateTrigger,\n children,\n danger,\n noActions,\n submitProps,\n cancelProps,\n preserve,\n title,\n size,\n closeIcon,\n ...dialogProps\n } = props;\n\n [form] = useForm(form);\n\n const { t } = useI18n();\n const { onClose } = useDialogContext();\n\n function onLocalDismiss() {\n onClose?.();\n onDismiss?.();\n\n if (!preserve) {\n // let animations finish before resetting the form\n setTimeout(() => {\n form?.resetFields();\n }, 250);\n }\n }\n\n return (\n <Dialog\n qa={`${qa || ''}Dialog`}\n size={size}\n closeIcon={closeIcon}\n {...dialogProps}\n >\n <Header>\n <Title ellipsis>{title}</Title>\n </Header>\n <Content>\n <Form<T>\n qa={qa || 'DialogForm'}\n form={form}\n name={name}\n defaultValues={defaultValues}\n labelStyles={labelStyles}\n labelPosition={labelPosition}\n requiredMark={requiredMark}\n necessityIndicator={necessityIndicator}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n validateTrigger={validateTrigger}\n onSubmit={async (data) => {\n await onSubmit?.(data);\n\n onClose?.();\n\n if (!preserve) {\n // let animations finish before resetting the form\n setTimeout(() => {\n form.resetFields();\n }, 250);\n }\n }}\n onSubmitFailed={onSubmitFailed}\n onValuesChange={onValuesChange}\n >\n {typeof children === 'function' ? children(onLocalDismiss) : children}\n\n {!noActions ? (\n <ButtonGroup>\n <SubmitButton\n qa={`${qa || ''}SubmitButton`}\n theme={danger ? 'danger' : undefined}\n label={t('dialogForm.submit', 'Submit')}\n {...(submitProps || {})}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n label={t('dialogForm.cancel', 'Cancel')}\n onPress={onLocalDismiss}\n {...(cancelProps || {})}\n />\n </ButtonGroup>\n ) : undefined}\n </Form>\n </Content>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgEA,SAAOmC,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAD,OAAA;AAGEG,OAAAjC,uBAAuB8B,MAAKI,KAIlC,GAHC,oBAAC,oBAAgB,GAAMJ,QAGxB,GADC,oBAAC,oBAAgB,GAAMA,QACxB;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;OAAAA,MAAAF,EAAA;AAAA,QAJME;;AAOT,SAASE,iBAAuCL,OAA+B;AAC7E;CAGA,IAAI,EACFM,IACAC,MACAH,MACAI,eACAC,WACAC,UACAC,gBACAC,gBACAC,aACAC,eACAC,cACAC,oBACAC,YACAC,WACAC,SACAC,iBACA3B,UACAN,QACAI,WACAH,aACAC,aACAC,UACAE,OACA6B,MACAC,WACA,GAAGC,gBACDvB;AAEJ,EAACI,QAAQ/B,QAAQ+B,KAAK;CAEtB,MAAM,EAAEoB,MAAM5D,SAAS;CACvB,MAAM,EAAE6D,YAAYnD,kBAAkB;CAEtC,SAASoB,iBAAiB;AACxB+B,aAAW;AACXhB,eAAa;AAEb,MAAI,CAACnB,SAEHoC,kBAAiB;AACftB,SAAMuB,aAAa;KAClB,IAAI;;AAIX,QACE,qBAAC;EACC,IAAI,GAAGrB,MAAM,GAAE;EACTe;EACKC;EACX,GAAIC;aAEJ,oBAAC,oBACC,oBAAC;GAAM;aAAU/B;IAAa,GACxB,EACR,oBAAC,qBACC,qBAAC;GACC,IAAIc,MAAM;GACJF;GACAG;GACSC;GACFK;GACEC;GACDC;GACMC;GACRC;GACDC;GACFC;GACQC;GACjB,UAAU,OAAOQ,SAAS;AACxB,UAAMlB,WAAWkB,KAAK;AAEtBH,eAAW;AAEX,QAAI,CAACnC,SAEHoC,kBAAiB;AACftB,UAAKuB,aAAa;OACjB,IAAI;;GAGKhB;GACAC;cAEf,OAAOnB,aAAa,aAAaA,SAASC,eAAe,GAAGD,UAE5D,CAACF,YACA,qBAAC,0BACC,oBAAC;IACC,IAAI,GAAGe,MAAM,GAAE;IACf,OAAOnB,SAAS,WAAW0C;IAC3B,OAAOL,EAAE,qBAAqB,SAAS;IACvC,GAAKpC,eAAe,EAAG;KAAC,EAE1B,oBAAC;IACC,IAAI,GAAGkB,MAAM,GAAE;IACf,OAAOkB,EAAE,qBAAqB,SAAS;IACvC,SAAS9B;IACT,GAAKL,eAAe,EAAG;KAAC,IAEd,GACZwC;IACA,GACC;GACF"}
1
+ {"version":3,"file":"DialogForm.js","names":["useI18n","Button","ButtonGroup","Content","Footer","Header","Title","isModernFormController","Form","SubmitButton","useForm","useDialogContext","CubeDialogProps","Dialog","ModernDialogForm","ReactElement","CubeButtonProps","CubeFormProps","ModernFormProps","CubeSubmitButtonProps","FieldTypes","CubeDialogFormProps","Omit","T","danger","submitProps","cancelProps","preserve","noActions","title","children","onLocalDismiss","CubeDialogFormRef","open","close","ModernDialogFormProps","DialogForm","props","$","_c","t0","form","LegacyDialogForm","qa","name","defaultValues","onDismiss","onSubmit","onSubmitFailed","onValuesChange","labelStyles","labelPosition","requiredMark","necessityIndicator","isReadOnly","isInvalid","isValid","validateTrigger","size","closeIcon","dialogProps","t","onClose","setTimeout","resetFields","data","undefined"],"sources":["../../../../src/components/overlays/Dialog/DialogForm.tsx"],"sourcesContent":["import { useI18n } from '../../../i18n';\nimport { Button } from '../../actions/Button/Button';\nimport { ButtonGroup } from '../../actions/ButtonGroup/ButtonGroup';\nimport { Content } from '../../content/Content';\nimport { Footer } from '../../content/Footer';\nimport { Header } from '../../content/Header';\nimport { Title } from '../../content/Title';\nimport { isModernFormController } from '../../form/Form/backend';\nimport { Form } from '../../form/Form/Form';\nimport { SubmitButton } from '../../form/Form/SubmitButton/SubmitButton';\nimport { useForm } from '../../form/Form/use-form';\n\nimport { useDialogContext } from './context';\nimport { CubeDialogProps, Dialog } from './Dialog';\nimport { ModernDialogForm } from './ModernDialogForm';\n\nimport type { ReactElement } from 'react';\nimport type { CubeButtonProps } from '../../actions/Button/Button';\nimport type { CubeFormProps } from '../../form/Form/Form';\nimport type { ModernFormProps } from '../../form/Form/ModernFormRoot';\nimport type { CubeSubmitButtonProps } from '../../form/Form/SubmitButton/SubmitButton';\nimport type { FieldTypes } from '../../form/Form/types';\n\nexport interface CubeDialogFormProps<T extends FieldTypes = FieldTypes>\n extends Omit<CubeDialogProps, 'children'>,\n Omit<CubeFormProps<T>, 'role' | 'children'> {\n /** Whether the submit button has a `danger` theme */\n danger?: boolean;\n /** Properties for submit button. Use `label` to change text. */\n submitProps?: CubeButtonProps;\n /** Properties for cancel button. Use `label` to change text. */\n cancelProps?: CubeButtonProps;\n /** Preserve form values after submission or dismissal. */\n preserve?: boolean;\n /** Whether to hide action button so developer can manually specify them */\n noActions?: boolean;\n /** The title of the dialog */\n title?: string;\n /** Children nodes or render function */\n children?:\n | CubeFormProps['children']\n | ((onLocalDismiss: () => void) => CubeFormProps['children']);\n}\n\nexport interface CubeDialogFormRef {\n open: () => void;\n close: () => void;\n}\n\n/**\n * DialogForms are a specific type of Dialog. They contain forms to fill.\n */\nexport interface ModernDialogFormProps<T extends FieldTypes = FieldTypes>\n extends Omit<CubeDialogFormProps<T>, keyof CubeFormProps<T> | 'submitProps'>,\n Omit<ModernFormProps<T>, 'role' | 'children'> {\n children?: CubeDialogFormProps<T>['children'];\n submitProps?: Omit<CubeSubmitButtonProps<T>, 'form'>;\n}\n\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: CubeDialogFormProps<T>,\n): ReactElement;\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: ModernDialogFormProps<T>,\n): ReactElement;\nexport function DialogForm<T extends FieldTypes = FieldTypes>(\n props: CubeDialogFormProps<T> | ModernDialogFormProps<T>,\n): ReactElement {\n return isModernFormController(props.form) ? (\n <ModernDialogForm {...(props as ModernDialogFormProps<T>)} />\n ) : (\n <LegacyDialogForm {...(props as CubeDialogFormProps<T>)} />\n );\n}\n\nfunction LegacyDialogForm<T extends FieldTypes>(props: CubeDialogFormProps<T>) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n let {\n qa,\n name,\n form,\n defaultValues,\n onDismiss,\n onSubmit,\n onSubmitFailed,\n onValuesChange,\n labelStyles,\n labelPosition,\n requiredMark,\n necessityIndicator,\n isReadOnly,\n isInvalid,\n isValid,\n validateTrigger,\n children,\n danger,\n noActions,\n submitProps,\n cancelProps,\n preserve,\n title,\n size,\n closeIcon,\n ...dialogProps\n } = props;\n\n [form] = useForm(form);\n\n const { t } = useI18n();\n const { onClose } = useDialogContext();\n\n function onLocalDismiss() {\n onClose?.();\n onDismiss?.();\n\n if (!preserve) {\n // let animations finish before resetting the form\n setTimeout(() => {\n form?.resetFields();\n }, 250);\n }\n }\n\n return (\n <Dialog\n qa={`${qa || ''}Dialog`}\n size={size}\n closeIcon={closeIcon}\n {...dialogProps}\n >\n <Header>\n <Title ellipsis>{title}</Title>\n </Header>\n {/*\n The form wraps BOTH slots rather than sitting inside `Content`, so the\n actions can live in a pinned `Footer` while the body scrolls. They still\n have to be inside the `<form>` for submit to work, which is why the form\n is the outer one of the two (CUB-4920). A form placed directly in a\n `Dialog` lays itself out as the dialog's column (see `FormElement`).\n */}\n <Form<T>\n qa={qa || 'DialogForm'}\n form={form}\n name={name}\n defaultValues={defaultValues}\n labelStyles={labelStyles}\n labelPosition={labelPosition}\n requiredMark={requiredMark}\n necessityIndicator={necessityIndicator}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n validateTrigger={validateTrigger}\n onSubmit={async (data) => {\n await onSubmit?.(data);\n\n onClose?.();\n\n if (!preserve) {\n // let animations finish before resetting the form\n setTimeout(() => {\n form.resetFields();\n }, 250);\n }\n }}\n onSubmitFailed={onSubmitFailed}\n onValuesChange={onValuesChange}\n >\n <Content>\n {typeof children === 'function' ? children(onLocalDismiss) : children}\n </Content>\n\n {!noActions ? (\n <Footer>\n <ButtonGroup>\n <SubmitButton\n qa={`${qa || ''}SubmitButton`}\n theme={danger ? 'danger' : undefined}\n label={t('dialogForm.submit', 'Submit')}\n {...(submitProps || {})}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n label={t('dialogForm.cancel', 'Cancel')}\n onPress={onLocalDismiss}\n {...(cancelProps || {})}\n />\n </ButtonGroup>\n </Footer>\n ) : undefined}\n </Form>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiEA,SAAOoC,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAD,OAAA;AAGEG,OAAAjC,uBAAuB8B,MAAKI,KAIlC,GAHC,oBAAC,oBAAgB,GAAMJ,QAGxB,GADC,oBAAC,oBAAgB,GAAMA,QACxB;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;OAAAA,MAAAF,EAAA;AAAA,QAJME;;AAOT,SAASE,iBAAuCL,OAA+B;AAC7E;CAGA,IAAI,EACFM,IACAC,MACAH,MACAI,eACAC,WACAC,UACAC,gBACAC,gBACAC,aACAC,eACAC,cACAC,oBACAC,YACAC,WACAC,SACAC,iBACA3B,UACAN,QACAI,WACAH,aACAC,aACAC,UACAE,OACA6B,MACAC,WACA,GAAGC,gBACDvB;AAEJ,EAACI,QAAQ/B,QAAQ+B,KAAK;CAEtB,MAAM,EAAEoB,MAAM7D,SAAS;CACvB,MAAM,EAAE8D,YAAYnD,kBAAkB;CAEtC,SAASoB,iBAAiB;AACxB+B,aAAW;AACXhB,eAAa;AAEb,MAAI,CAACnB,SAEHoC,kBAAiB;AACftB,SAAMuB,aAAa;KAClB,IAAI;;AAIX,QACE,qBAAC;EACC,IAAI,GAAGrB,MAAM,GAAE;EACTe;EACKC;EACX,GAAIC;aAEJ,oBAAC,oBACC,oBAAC;GAAM;aAAU/B;IAAa,GACxB,EAQR,qBAAC;GACC,IAAIc,MAAM;GACJF;GACAG;GACSC;GACFK;GACEC;GACDC;GACMC;GACRC;GACDC;GACFC;GACQC;GACjB,UAAU,OAAOQ,SAAS;AACxB,UAAMlB,WAAWkB,KAAK;AAEtBH,eAAW;AAEX,QAAI,CAACnC,SAEHoC,kBAAiB;AACftB,UAAKuB,aAAa;OACjB,IAAI;;GAGKhB;GACAC;cAEhB,oBAAC,qBACE,OAAOnB,aAAa,aAAaA,SAASC,eAAe,GAAGD,WACtD,EAER,CAACF,YACA,oBAAC,oBACC,qBAAC,0BACC,oBAAC;IACC,IAAI,GAAGe,MAAM,GAAE;IACf,OAAOnB,SAAS,WAAW0C;IAC3B,OAAOL,EAAE,qBAAqB,SAAS;IACvC,GAAKpC,eAAe,EAAG;KAAC,EAE1B,oBAAC;IACC,IAAI,GAAGkB,MAAM,GAAE;IACf,OAAOkB,EAAE,qBAAqB,SAAS;IACvC,SAAS9B;IACT,GAAKL,eAAe,EAAG;KAAC,IAEf,GACN,GACPwC;IACA;GACC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Title } from "../../content/Title.js";
@@ -8,6 +8,7 @@ import { ButtonGroup } from "../../actions/ButtonGroup/ButtonGroup.js";
8
8
  import { useOpenTransitionContext } from "../Modal/OpenTransitionContext.js";
9
9
  import { useDialogContext } from "./context.js";
10
10
  import { Content } from "../../content/Content.js";
11
+ import { Footer } from "../../content/Footer.js";
11
12
  import { Header } from "../../content/Header.js";
12
13
  import { Dialog } from "./Dialog.js";
13
14
  import { getControllerInternals } from "../../form/Form/modern/controller.js";
@@ -26,7 +27,7 @@ function finishSession(session) {
26
27
  }
27
28
  /** Modern dialogs own the editing session, including retained/hidden roots. */
28
29
  function ModernDialogForm(props) {
29
- const $ = c(105);
30
+ const $ = c(107);
30
31
  let action;
31
32
  let autoComplete;
32
33
  let cancelProps;
@@ -238,8 +239,14 @@ function ModernDialogForm(props) {
238
239
  $[58] = t9;
239
240
  } else t9 = $[58];
240
241
  let t10;
241
- if ($[59] !== cancelProps || $[60] !== danger || $[61] !== dismiss || $[62] !== noActions || $[63] !== qa || $[64] !== submitProps || $[65] !== t) {
242
- t10 = !noActions && /* @__PURE__ */ jsxs(ButtonGroup, { children: [/* @__PURE__ */ jsx(_SubmitButton, {
242
+ if ($[59] !== t9) {
243
+ t10 = /* @__PURE__ */ jsx(Content, { children: t9 });
244
+ $[59] = t9;
245
+ $[60] = t10;
246
+ } else t10 = $[60];
247
+ let t11;
248
+ if ($[61] !== cancelProps || $[62] !== danger || $[63] !== dismiss || $[64] !== noActions || $[65] !== qa || $[66] !== submitProps || $[67] !== t) {
249
+ t11 = !noActions && /* @__PURE__ */ jsx(Footer, { children: /* @__PURE__ */ jsxs(ButtonGroup, { children: [/* @__PURE__ */ jsx(_SubmitButton, {
243
250
  qa: `${qa || ""}SubmitButton`,
244
251
  theme: danger ? "danger" : void 0,
245
252
  label: t("dialogForm.submit", "Submit"),
@@ -249,19 +256,19 @@ function ModernDialogForm(props) {
249
256
  label: t("dialogForm.cancel", "Cancel"),
250
257
  onPress: dismiss,
251
258
  ...cancelProps
252
- })] });
253
- $[59] = cancelProps;
254
- $[60] = danger;
255
- $[61] = dismiss;
256
- $[62] = noActions;
257
- $[63] = qa;
258
- $[64] = submitProps;
259
- $[65] = t;
260
- $[66] = t10;
261
- } else t10 = $[66];
262
- let t11;
263
- if ($[67] !== action || $[68] !== autoComplete || $[69] !== defaultValues || $[70] !== encType || $[71] !== form || $[72] !== isDisabled || $[73] !== isInvalid || $[74] !== isReadOnly || $[75] !== isValid || $[76] !== labelPosition || $[77] !== labelStyles || $[78] !== labelWidth || $[79] !== method || $[80] !== name || $[81] !== necessityIndicator || $[82] !== onReset || $[83] !== onResetCapture || $[84] !== onSubmit || $[85] !== onSubmitFailed || $[86] !== onValuesChange || $[87] !== orientation || $[88] !== requiredMark || $[89] !== showValid || $[90] !== submitValues || $[91] !== submitted || $[92] !== t10 || $[93] !== t8 || $[94] !== t9 || $[95] !== target || $[96] !== validateTrigger || $[97] !== validationState) {
264
- t11 = /* @__PURE__ */ jsx(Content, { children: /* @__PURE__ */ jsxs(_ModernFormRoot, {
259
+ })] }) });
260
+ $[61] = cancelProps;
261
+ $[62] = danger;
262
+ $[63] = dismiss;
263
+ $[64] = noActions;
264
+ $[65] = qa;
265
+ $[66] = submitProps;
266
+ $[67] = t;
267
+ $[68] = t11;
268
+ } else t11 = $[68];
269
+ let t12;
270
+ if ($[69] !== action || $[70] !== autoComplete || $[71] !== defaultValues || $[72] !== encType || $[73] !== form || $[74] !== isDisabled || $[75] !== isInvalid || $[76] !== isReadOnly || $[77] !== isValid || $[78] !== labelPosition || $[79] !== labelStyles || $[80] !== labelWidth || $[81] !== method || $[82] !== name || $[83] !== necessityIndicator || $[84] !== onReset || $[85] !== onResetCapture || $[86] !== onSubmit || $[87] !== onSubmitFailed || $[88] !== onValuesChange || $[89] !== orientation || $[90] !== requiredMark || $[91] !== showValid || $[92] !== submitValues || $[93] !== submitted || $[94] !== t10 || $[95] !== t11 || $[96] !== t8 || $[97] !== target || $[98] !== validateTrigger || $[99] !== validationState) {
271
+ t12 = /* @__PURE__ */ jsxs(_ModernFormRoot, {
265
272
  "data-popover-keep": true,
266
273
  form,
267
274
  qa: t8,
@@ -292,57 +299,57 @@ function ModernDialogForm(props) {
292
299
  target,
293
300
  encType,
294
301
  autoComplete,
295
- children: [t9, t10]
296
- }) });
297
- $[67] = action;
298
- $[68] = autoComplete;
299
- $[69] = defaultValues;
300
- $[70] = encType;
301
- $[71] = form;
302
- $[72] = isDisabled;
303
- $[73] = isInvalid;
304
- $[74] = isReadOnly;
305
- $[75] = isValid;
306
- $[76] = labelPosition;
307
- $[77] = labelStyles;
308
- $[78] = labelWidth;
309
- $[79] = method;
310
- $[80] = name;
311
- $[81] = necessityIndicator;
312
- $[82] = onReset;
313
- $[83] = onResetCapture;
314
- $[84] = onSubmit;
315
- $[85] = onSubmitFailed;
316
- $[86] = onValuesChange;
317
- $[87] = orientation;
318
- $[88] = requiredMark;
319
- $[89] = showValid;
320
- $[90] = submitValues;
321
- $[91] = submitted;
322
- $[92] = t10;
323
- $[93] = t8;
324
- $[94] = t9;
325
- $[95] = target;
326
- $[96] = validateTrigger;
327
- $[97] = validationState;
328
- $[98] = t11;
329
- } else t11 = $[98];
330
- let t12;
331
- if ($[99] !== dialogProps || $[100] !== dismiss || $[101] !== t11 || $[102] !== t6 || $[103] !== t7) {
332
- t12 = /* @__PURE__ */ jsxs(Dialog, {
302
+ children: [t10, t11]
303
+ });
304
+ $[69] = action;
305
+ $[70] = autoComplete;
306
+ $[71] = defaultValues;
307
+ $[72] = encType;
308
+ $[73] = form;
309
+ $[74] = isDisabled;
310
+ $[75] = isInvalid;
311
+ $[76] = isReadOnly;
312
+ $[77] = isValid;
313
+ $[78] = labelPosition;
314
+ $[79] = labelStyles;
315
+ $[80] = labelWidth;
316
+ $[81] = method;
317
+ $[82] = name;
318
+ $[83] = necessityIndicator;
319
+ $[84] = onReset;
320
+ $[85] = onResetCapture;
321
+ $[86] = onSubmit;
322
+ $[87] = onSubmitFailed;
323
+ $[88] = onValuesChange;
324
+ $[89] = orientation;
325
+ $[90] = requiredMark;
326
+ $[91] = showValid;
327
+ $[92] = submitValues;
328
+ $[93] = submitted;
329
+ $[94] = t10;
330
+ $[95] = t11;
331
+ $[96] = t8;
332
+ $[97] = target;
333
+ $[98] = validateTrigger;
334
+ $[99] = validationState;
335
+ $[100] = t12;
336
+ } else t12 = $[100];
337
+ let t13;
338
+ if ($[101] !== dialogProps || $[102] !== dismiss || $[103] !== t12 || $[104] !== t6 || $[105] !== t7) {
339
+ t13 = /* @__PURE__ */ jsxs(Dialog, {
333
340
  ...dialogProps,
334
341
  qa: t6,
335
342
  onDismiss: dismiss,
336
- children: [t7, t11]
343
+ children: [t7, t12]
337
344
  });
338
- $[99] = dialogProps;
339
- $[100] = dismiss;
340
- $[101] = t11;
341
- $[102] = t6;
342
- $[103] = t7;
343
- $[104] = t12;
344
- } else t12 = $[104];
345
- return t12;
345
+ $[101] = dialogProps;
346
+ $[102] = dismiss;
347
+ $[103] = t12;
348
+ $[104] = t6;
349
+ $[105] = t7;
350
+ $[106] = t13;
351
+ } else t13 = $[106];
352
+ return t13;
346
353
  }
347
354
 
348
355
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ModernDialogForm.js","names":["useRef","useEvent","useI18n","useLayoutEffect","Button","ButtonGroup","Content","Header","Title","getControllerInternals","ModernFormRoot","SubmitButton","useOpenTransitionContext","useDialogContext","Dialog","FormController","ModernDialogFormProps","DialogSession","form","T","preserve","ended","wasOpen","finishSession","session","store","cancelSubmission","reset","ModernDialogForm","props","$","_c","action","autoComplete","cancelProps","children","danger","defaultValues","dialogProps","encType","isDisabled","isInvalid","isReadOnly","isValid","labelPosition","labelStyles","labelWidth","method","name","necessityIndicator","noActions","onDismiss","onReset","onResetCapture","onSubmit","onSubmitFailed","onValuesChange","orientation","qa","requiredMark","showValid","submitProps","submitValues","target","title","validateTrigger","validationState","t","onClose","isOpen","t0","internals","transition","isClosing","undefined","transitionState","t1","current","dismiss","t2","submitted","t3","t4","own","queueMicrotask","getRootElement","t5","t6","t7","t8","t9","t10","t11","t12"],"sources":["../../../../src/components/overlays/Dialog/ModernDialogForm.tsx"],"sourcesContent":["import { useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\nimport { Button } from '../../actions/Button/Button';\nimport { ButtonGroup } from '../../actions/ButtonGroup/ButtonGroup';\nimport { Content } from '../../content/Content';\nimport { Header } from '../../content/Header';\nimport { Title } from '../../content/Title';\nimport { getControllerInternals } from '../../form/Form/modern/controller';\nimport { ModernFormRoot } from '../../form/Form/ModernFormRoot';\nimport { SubmitButton } from '../../form/Form/SubmitButton/SubmitButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\nimport { Dialog } from './Dialog';\n\nimport type { FormController } from '../../form/Form/modern/controller';\nimport type { ModernDialogFormProps } from './DialogForm';\n\ninterface DialogSession<T extends object> {\n form: FormController<T>;\n preserve?: boolean;\n ended: boolean;\n wasOpen: boolean;\n}\n\nfunction finishSession<T extends object>(session?: DialogSession<T>) {\n if (!session || session.ended) return;\n session.ended = true;\n getControllerInternals(session.form, '<DialogForm>').store.cancelSubmission();\n if (!session.preserve) session.form.reset();\n}\n\n/** Modern dialogs own the editing session, including retained/hidden roots. */\nexport function ModernDialogForm<T extends object>(\n props: ModernDialogFormProps<T>,\n) {\n const {\n form,\n qa,\n title,\n danger,\n submitProps,\n cancelProps,\n noActions,\n preserve,\n children,\n onDismiss,\n name,\n defaultValues,\n onSubmit,\n onSubmitFailed,\n onValuesChange,\n onReset,\n onResetCapture,\n submitValues,\n labelStyles,\n labelPosition,\n labelWidth,\n orientation,\n requiredMark,\n necessityIndicator,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n validationState,\n validateTrigger,\n showValid,\n action,\n method,\n target,\n encType,\n autoComplete,\n ...dialogProps\n } = props;\n const { t } = useI18n();\n const { onClose, isOpen } = useDialogContext();\n const internals = getControllerInternals(form, '<DialogForm>');\n const transition = useOpenTransitionContext();\n const isClosing =\n isOpen === undefined\n ? transition?.transitionState === 'exit' ||\n transition?.transitionState === 'unmounted'\n : !isOpen;\n const session = useRef<DialogSession<T> | undefined>(undefined);\n const dismiss = useEvent(() => {\n finishSession(session.current);\n onClose?.();\n onDismiss?.();\n });\n const submitted = useEvent(() => {\n finishSession(session.current);\n onClose?.();\n });\n\n // Escape, outside clicks, and controlled closing belong to the container.\n // Only an open -> closed transition ends a session; hidden initial mounts\n // must not discard a controller that the caller has already populated.\n useLayoutEffect(() => {\n if (session.current?.form !== form) {\n session.current = { form, preserve, ended: false, wasOpen: !isClosing };\n }\n const current = session.current;\n current.preserve = preserve;\n if (isClosing && current.wasOpen) finishSession(current);\n if (!isClosing && !current.wasOpen) current.ended = false;\n current.wasOpen = !isClosing;\n });\n\n // Portals may relocate (remounting this component) and Strict Mode reconnects\n // effects. A replacement root owns the same session; only a detached\n // controller should reset after real removal. Capture that controller's\n // session, so replacing it cannot apply the new controller's preserve policy.\n useLayoutEffect(() => {\n const own = session.current;\n return () => {\n queueMicrotask(() => {\n if (!internals.getRootElement()) finishSession(own);\n });\n };\n }, [form, internals]);\n\n return (\n <Dialog {...dialogProps} qa={`${qa || ''}Dialog`} onDismiss={dismiss}>\n <Header>\n <Title ellipsis>{title}</Title>\n </Header>\n <Content>\n <ModernFormRoot\n data-popover-keep\n form={form}\n qa={qa || 'DialogForm'}\n name={name}\n defaultValues={defaultValues}\n onSubmit={onSubmit}\n onSubmitted={submitted}\n onSubmitFailed={onSubmitFailed}\n onValuesChange={onValuesChange}\n onReset={onReset}\n onResetCapture={onResetCapture}\n submitValues={submitValues}\n labelStyles={labelStyles}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n orientation={orientation}\n requiredMark={requiredMark}\n necessityIndicator={necessityIndicator}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n validationState={validationState}\n validateTrigger={validateTrigger}\n showValid={showValid}\n action={action}\n method={method}\n target={target}\n encType={encType}\n autoComplete={autoComplete}\n >\n {typeof children === 'function' ? children(dismiss) : children}\n {!noActions && (\n <ButtonGroup>\n <SubmitButton\n qa={`${qa || ''}SubmitButton`}\n theme={danger ? 'danger' : undefined}\n label={t('dialogForm.submit', 'Submit')}\n {...submitProps}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n label={t('dialogForm.cancel', 'Cancel')}\n onPress={dismiss}\n {...cancelProps}\n />\n </ButtonGroup>\n )}\n </ModernFormRoot>\n </Content>\n </Dialog>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModernDialogForm.js","names":["useRef","useEvent","useI18n","useLayoutEffect","Button","ButtonGroup","Content","Footer","Header","Title","getControllerInternals","ModernFormRoot","SubmitButton","useOpenTransitionContext","useDialogContext","Dialog","FormController","ModernDialogFormProps","DialogSession","form","T","preserve","ended","wasOpen","finishSession","session","store","cancelSubmission","reset","ModernDialogForm","props","$","_c","action","autoComplete","cancelProps","children","danger","defaultValues","dialogProps","encType","isDisabled","isInvalid","isReadOnly","isValid","labelPosition","labelStyles","labelWidth","method","name","necessityIndicator","noActions","onDismiss","onReset","onResetCapture","onSubmit","onSubmitFailed","onValuesChange","orientation","qa","requiredMark","showValid","submitProps","submitValues","target","title","validateTrigger","validationState","t","onClose","isOpen","t0","internals","transition","isClosing","undefined","transitionState","t1","current","dismiss","t2","submitted","t3","t4","own","queueMicrotask","getRootElement","t5","t6","t7","t8","t9","t10","t11","t12","t13"],"sources":["../../../../src/components/overlays/Dialog/ModernDialogForm.tsx"],"sourcesContent":["import { useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\nimport { Button } from '../../actions/Button/Button';\nimport { ButtonGroup } from '../../actions/ButtonGroup/ButtonGroup';\nimport { Content } from '../../content/Content';\nimport { Footer } from '../../content/Footer';\nimport { Header } from '../../content/Header';\nimport { Title } from '../../content/Title';\nimport { getControllerInternals } from '../../form/Form/modern/controller';\nimport { ModernFormRoot } from '../../form/Form/ModernFormRoot';\nimport { SubmitButton } from '../../form/Form/SubmitButton/SubmitButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\nimport { Dialog } from './Dialog';\n\nimport type { FormController } from '../../form/Form/modern/controller';\nimport type { ModernDialogFormProps } from './DialogForm';\n\ninterface DialogSession<T extends object> {\n form: FormController<T>;\n preserve?: boolean;\n ended: boolean;\n wasOpen: boolean;\n}\n\nfunction finishSession<T extends object>(session?: DialogSession<T>) {\n if (!session || session.ended) return;\n session.ended = true;\n getControllerInternals(session.form, '<DialogForm>').store.cancelSubmission();\n if (!session.preserve) session.form.reset();\n}\n\n/** Modern dialogs own the editing session, including retained/hidden roots. */\nexport function ModernDialogForm<T extends object>(\n props: ModernDialogFormProps<T>,\n) {\n const {\n form,\n qa,\n title,\n danger,\n submitProps,\n cancelProps,\n noActions,\n preserve,\n children,\n onDismiss,\n name,\n defaultValues,\n onSubmit,\n onSubmitFailed,\n onValuesChange,\n onReset,\n onResetCapture,\n submitValues,\n labelStyles,\n labelPosition,\n labelWidth,\n orientation,\n requiredMark,\n necessityIndicator,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n validationState,\n validateTrigger,\n showValid,\n action,\n method,\n target,\n encType,\n autoComplete,\n ...dialogProps\n } = props;\n const { t } = useI18n();\n const { onClose, isOpen } = useDialogContext();\n const internals = getControllerInternals(form, '<DialogForm>');\n const transition = useOpenTransitionContext();\n const isClosing =\n isOpen === undefined\n ? transition?.transitionState === 'exit' ||\n transition?.transitionState === 'unmounted'\n : !isOpen;\n const session = useRef<DialogSession<T> | undefined>(undefined);\n const dismiss = useEvent(() => {\n finishSession(session.current);\n onClose?.();\n onDismiss?.();\n });\n const submitted = useEvent(() => {\n finishSession(session.current);\n onClose?.();\n });\n\n // Escape, outside clicks, and controlled closing belong to the container.\n // Only an open -> closed transition ends a session; hidden initial mounts\n // must not discard a controller that the caller has already populated.\n useLayoutEffect(() => {\n if (session.current?.form !== form) {\n session.current = { form, preserve, ended: false, wasOpen: !isClosing };\n }\n const current = session.current;\n current.preserve = preserve;\n if (isClosing && current.wasOpen) finishSession(current);\n if (!isClosing && !current.wasOpen) current.ended = false;\n current.wasOpen = !isClosing;\n });\n\n // Portals may relocate (remounting this component) and Strict Mode reconnects\n // effects. A replacement root owns the same session; only a detached\n // controller should reset after real removal. Capture that controller's\n // session, so replacing it cannot apply the new controller's preserve policy.\n useLayoutEffect(() => {\n const own = session.current;\n return () => {\n queueMicrotask(() => {\n if (!internals.getRootElement()) finishSession(own);\n });\n };\n }, [form, internals]);\n\n return (\n <Dialog {...dialogProps} qa={`${qa || ''}Dialog`} onDismiss={dismiss}>\n <Header>\n <Title ellipsis>{title}</Title>\n </Header>\n {/*\n The form wraps BOTH slots rather than sitting inside `Content`, so the\n actions can live in a pinned `Footer` while the body scrolls. They still\n have to be inside the `<form>` for submit to work, which is why the form\n is the outer one of the two (CUB-4920). A form placed directly in a\n `Dialog` lays itself out as the dialog's column (see `FormElement`).\n */}\n <ModernFormRoot\n data-popover-keep\n form={form}\n qa={qa || 'DialogForm'}\n name={name}\n defaultValues={defaultValues}\n onSubmit={onSubmit}\n onSubmitted={submitted}\n onSubmitFailed={onSubmitFailed}\n onValuesChange={onValuesChange}\n onReset={onReset}\n onResetCapture={onResetCapture}\n submitValues={submitValues}\n labelStyles={labelStyles}\n labelPosition={labelPosition}\n labelWidth={labelWidth}\n orientation={orientation}\n requiredMark={requiredMark}\n necessityIndicator={necessityIndicator}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n validationState={validationState}\n validateTrigger={validateTrigger}\n showValid={showValid}\n action={action}\n method={method}\n target={target}\n encType={encType}\n autoComplete={autoComplete}\n >\n <Content>\n {typeof children === 'function' ? children(dismiss) : children}\n </Content>\n\n {!noActions && (\n <Footer>\n <ButtonGroup>\n <SubmitButton\n qa={`${qa || ''}SubmitButton`}\n theme={danger ? 'danger' : undefined}\n label={t('dialogForm.submit', 'Submit')}\n {...submitProps}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n label={t('dialogForm.cancel', 'Cancel')}\n onPress={dismiss}\n {...cancelProps}\n />\n </ButtonGroup>\n </Footer>\n )}\n </ModernFormRoot>\n </Dialog>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import invariant from "tiny-invariant";
4
4
 
@@ -0,0 +1,68 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
+ import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
+ import { c } from "react-compiler-runtime";
4
+ import { useState } from "react";
5
+
6
+ //#region src/components/overlays/Dialog/use-content-overflow.ts
7
+ const OVERFLOW_THRESHOLD = 2;
8
+ const BODY_SELECTOR = ":scope > [data-id=\"Content\"], :scope > form > [data-id=\"Content\"]";
9
+ /**
10
+ * Whether the dialog's body is taller than the room it has, i.e. whether it
11
+ * scrolls. The footer draws its top line on this (see `Dialog`).
12
+ *
13
+ * The body's own box is not enough to watch. Once the dialog reaches its max
14
+ * height the box stops growing, and in a fixed-height dialog (`fullscreen`,
15
+ * `panel`) it never changes at all — there, content growing past the fold is
16
+ * visible only on the body's children. So both the body and its children are
17
+ * observed, and the set is re-synced whenever the body or its child list is
18
+ * replaced.
19
+ */
20
+ function useContentOverflow(dialogRef) {
21
+ const $ = c(3);
22
+ const [overflows, setOverflows] = useState(false);
23
+ let t0;
24
+ let t1;
25
+ if ($[0] !== dialogRef) {
26
+ t0 = () => {
27
+ const dialog = dialogRef.current;
28
+ if (!dialog || typeof ResizeObserver === "undefined") return;
29
+ let body = null;
30
+ const measure = () => {
31
+ setOverflows(!!body && body.scrollHeight > body.clientHeight + OVERFLOW_THRESHOLD);
32
+ };
33
+ const resizeObserver = new ResizeObserver(measure);
34
+ const mutationObserver = new MutationObserver(() => sync());
35
+ const sync = () => {
36
+ body = dialog.querySelector(BODY_SELECTOR);
37
+ mutationObserver.disconnect();
38
+ resizeObserver.disconnect();
39
+ mutationObserver.observe(dialog, { childList: true });
40
+ for (const form of Array.from(dialog.querySelectorAll(":scope > form"))) mutationObserver.observe(form, { childList: true });
41
+ if (body) {
42
+ mutationObserver.observe(body, { childList: true });
43
+ resizeObserver.observe(body);
44
+ for (const child of Array.from(body.children)) resizeObserver.observe(child);
45
+ }
46
+ measure();
47
+ };
48
+ sync();
49
+ return () => {
50
+ mutationObserver.disconnect();
51
+ resizeObserver.disconnect();
52
+ };
53
+ };
54
+ t1 = [dialogRef];
55
+ $[0] = dialogRef;
56
+ $[1] = t0;
57
+ $[2] = t1;
58
+ } else {
59
+ t0 = $[1];
60
+ t1 = $[2];
61
+ }
62
+ useLayoutEffect$1(t0, t1);
63
+ return overflows;
64
+ }
65
+
66
+ //#endregion
67
+ export { useContentOverflow };
68
+ //# sourceMappingURL=use-content-overflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-content-overflow.js","names":["RefObject","useState","useLayoutEffect","OVERFLOW_THRESHOLD","BODY_SELECTOR","useContentOverflow","dialogRef","$","_c","overflows","setOverflows","t0","t1","dialog","current","ResizeObserver","body","measure","scrollHeight","clientHeight","resizeObserver","mutationObserver","MutationObserver","sync","querySelector","disconnect","observe","childList","form","Array","from","querySelectorAll","child","children"],"sources":["../../../../src/components/overlays/Dialog/use-content-overflow.ts"],"sourcesContent":["import { RefObject, useState } from 'react';\n\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\n\n// Same slack as `useTinyScrollbar`: sub-pixel rounding can leave a body that\n// fits reporting a `scrollHeight` a pixel or two over its `clientHeight`.\nconst OVERFLOW_THRESHOLD = 2;\n\n// The body is the `Content` the dialog itself lays out: a direct child, or the\n// direct child of a direct-child `<form>` (a `Form` placed there lays itself\n// out as the dialog's column; see `FormElement`). Those are the two shapes in\n// which `Content` is the thing that scrolls. A `Content` nested anywhere else is\n// part of the body, not the body.\nconst BODY_SELECTOR =\n ':scope > [data-id=\"Content\"], :scope > form > [data-id=\"Content\"]';\n\n/**\n * Whether the dialog's body is taller than the room it has, i.e. whether it\n * scrolls. The footer draws its top line on this (see `Dialog`).\n *\n * The body's own box is not enough to watch. Once the dialog reaches its max\n * height the box stops growing, and in a fixed-height dialog (`fullscreen`,\n * `panel`) it never changes at all — there, content growing past the fold is\n * visible only on the body's children. So both the body and its children are\n * observed, and the set is re-synced whenever the body or its child list is\n * replaced.\n */\nexport function useContentOverflow(dialogRef: RefObject<HTMLElement | null>) {\n const [overflows, setOverflows] = useState(false);\n\n useLayoutEffect(() => {\n const dialog = dialogRef.current;\n\n if (!dialog || typeof ResizeObserver === 'undefined') return;\n\n let body: HTMLElement | null = null;\n\n const measure = () => {\n setOverflows(\n !!body && body.scrollHeight > body.clientHeight + OVERFLOW_THRESHOLD,\n );\n };\n\n const resizeObserver = new ResizeObserver(measure);\n\n // Only the child lists of the dialog, a direct-child form and the body can\n // move the body or change which children to watch, so those three are all\n // it observes — never the subtree. A picker's popover is a dialog too, and\n // a virtualized list scrolling inside it mutates on every frame. Deeper\n // mutations that matter resize a child, which the resize observer sees.\n const mutationObserver = new MutationObserver(() => sync());\n\n const sync = () => {\n body = dialog.querySelector<HTMLElement>(BODY_SELECTOR);\n\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n\n mutationObserver.observe(dialog, { childList: true });\n\n for (const form of Array.from(dialog.querySelectorAll(':scope > form'))) {\n mutationObserver.observe(form, { childList: true });\n }\n\n if (body) {\n mutationObserver.observe(body, { childList: true });\n resizeObserver.observe(body);\n\n for (const child of Array.from(body.children)) {\n resizeObserver.observe(child);\n }\n }\n\n measure();\n };\n\n sync();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n };\n }, [dialogRef]);\n\n return overflows;\n}\n"],"mappings":";;;;;;AAMA,MAAMG,qBAAqB;AAO3B,MAAMC,gBACJ;;;;;;;;;;;;AAaF,SAAOC,mBAAAC,WAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,CAAAC,WAAAC,gBAAkCT,SAAS,MAAM;CAAC,IAAAU;CAAA,IAAAC;AAAA,KAAAL,EAAA,OAAAD,WAAA;AAElCK,aAAA;GACd,MAAAE,SAAeP,UAASQ;AAExB,OAAI,CAACD,UAAU,OAAOE,mBAAmB,YAAW;GAEpD,IAAAC,OAA+B;GAE/B,MAAAC,gBAAgB;AACdP,iBACE,CAAC,CAACM,QAAQA,KAAIE,eAAgBF,KAAIG,eAAgBhB,mBACnD;;GAGH,MAAAiB,iBAAuB,IAAIL,eAAeE,QAAQ;GAOlD,MAAAI,mBAAyB,IAAIC,uBAAuBC,MAAM,CAAC;GAE3D,MAAAA,aAAa;AACXP,WAAOH,OAAMW,cAA4BpB,cAAc;AAEvDiB,qBAAgBI,YAAa;AAC7BL,mBAAcK,YAAa;AAE3BJ,qBAAgBK,QAASb,QAAQ,EAAAc,WAAa,MAAM,CAAC;AAErD,SAAK,MAAAC,QAAcC,MAAKC,KAAMjB,OAAMkB,iBAAkB,gBAAgB,CAAC,CACrEV,kBAAgBK,QAASE,MAAM,EAAAD,WAAa,MAAM,CAAC;AAGrD,QAAIX,MAAI;AACNK,sBAAgBK,QAASV,MAAM,EAAAW,WAAa,MAAM,CAAC;AACnDP,oBAAcM,QAASV,KAAK;AAE5B,UAAK,MAAAgB,SAAeH,MAAKC,KAAMd,KAAIiB,SAAU,CAC3Cb,gBAAcM,QAASM,MAAM;;AAIjCf,aAAS;;AAGXM,SAAM;AAAA,gBAEC;AACLF,qBAAgBI,YAAa;AAC7BL,mBAAcK,YAAa;;;AAE5Bb,OAAA,CAACN,UAAU;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;QAAA;AAAAD,OAAAJ,EAAA;AAAAK,OAAAL,EAAA;;AApDdL,mBAAgBS,IAoDbC,GAAY;AAAA,QAERH"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { DialogContainer } from "./DialogContainer.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { _Underlay } from "./Underlay.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/overlays/Modal/OpenTransitionContext.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { markFocusRestoreWindow } from "../../../utils/react/programmaticFocus.js";
3
3
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
4
4
  import { Provider, useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { useOverlayEscapeGuard } from "../../../utils/react/useOverlayEscapeGuard.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { _Overlay } from "./Overlay.js";
4
4
  import { _Underlay } from "./Underlay.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { useNotificationContext } from "./NotificationContext.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useEffect, useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-9bde021 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-22ee7cb | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
4
4
  import { Space } from "../../layout/Space.js";