@cube-dev/ui-kit 0.198.2 → 0.199.1

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 (583) hide show
  1. package/dist/CHANGELOG.md +12 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +6 -6
  65. package/dist/components/content/Layout/Layout.js.map +1 -1
  66. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  67. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  68. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  69. package/dist/components/content/Layout/LayoutContent.js +1 -1
  70. package/dist/components/content/Layout/LayoutContext.js +1 -1
  71. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  72. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  73. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  74. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutPane.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  79. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  80. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  81. package/dist/components/content/Layout/index.js +1 -1
  82. package/dist/components/content/Layout/utils.js +1 -1
  83. package/dist/components/content/Paragraph.js +1 -1
  84. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  85. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  86. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  87. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  88. package/dist/components/content/Result/Result.js +1 -1
  89. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  90. package/dist/components/content/Tag/Tag.js +1 -1
  91. package/dist/components/content/Text.js +1 -1
  92. package/dist/components/content/TextItem/TextItem.js +1 -1
  93. package/dist/components/content/Title.js +1 -1
  94. package/dist/components/content/Tree/Tree.js +1 -1
  95. package/dist/components/content/Tree/TreeNode.js +1 -1
  96. package/dist/components/content/Tree/styled.js +1 -1
  97. package/dist/components/content/Tree/tree-index.js +1 -1
  98. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  99. package/dist/components/content/Tree/use-load-data.js +1 -1
  100. package/dist/components/content/highlightText.js +1 -1
  101. package/dist/components/content/use-auto-tooltip.js +1 -1
  102. package/dist/components/data/DataTable/DataTable.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  108. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  109. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  110. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  111. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  112. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  113. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  114. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  115. package/dist/components/data/TableBase/RowCollection.js +1 -1
  116. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  117. package/dist/components/data/TableBase/TableRow.js +1 -1
  118. package/dist/components/data/TableBase/TableView.js +1 -1
  119. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  120. package/dist/components/data/TableBase/column-header.js +1 -1
  121. package/dist/components/data/TableBase/column-menu.js +1 -1
  122. package/dist/components/data/TableBase/column-styles.js +1 -1
  123. package/dist/components/data/TableBase/column-tint.js +1 -1
  124. package/dist/components/data/TableBase/row-menu.js +1 -1
  125. package/dist/components/data/TableBase/styled.js +1 -1
  126. package/dist/components/data/TableBase/table-tree.js +1 -1
  127. package/dist/components/data/TableBase/types.js +1 -1
  128. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  129. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  130. package/dist/components/data/TableBase/use-column-order.js +1 -1
  131. package/dist/components/data/TableBase/use-column-window.js +1 -1
  132. package/dist/components/data/TableBase/use-container-width.js +1 -1
  133. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  134. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  135. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  136. package/dist/components/data/TableBase/use-table-search.js +1 -1
  137. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  138. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  139. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  140. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  141. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  142. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  143. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  144. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  145. package/dist/components/fields/Checkbox/context.js +1 -1
  146. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  147. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  148. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  149. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  150. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  151. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  152. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  153. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  154. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  155. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  156. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  157. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  158. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  159. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  160. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  161. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  162. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  163. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  165. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  166. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  167. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  168. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  169. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  170. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  171. package/dist/components/fields/DatePicker/period.js +1 -1
  172. package/dist/components/fields/DatePicker/props.js +1 -1
  173. package/dist/components/fields/DatePicker/utils.js +1 -1
  174. package/dist/components/fields/FileInput/FileInput.js +1 -1
  175. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  176. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  177. package/dist/components/fields/Input/Input.js +1 -1
  178. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  179. package/dist/components/fields/ListBox/ListBox.js +1 -1
  180. package/dist/components/fields/ListBox/optionId.js +1 -1
  181. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  182. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  183. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  184. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  185. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  186. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  187. package/dist/components/fields/Picker/Picker.js +1 -1
  188. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  189. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  190. package/dist/components/fields/RadioGroup/context.js +1 -1
  191. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  192. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  193. package/dist/components/fields/Select/Select.js +1 -1
  194. package/dist/components/fields/Slider/Gradation.js +1 -1
  195. package/dist/components/fields/Slider/HueSlider.js +1 -1
  196. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  197. package/dist/components/fields/Slider/Slider.js +1 -1
  198. package/dist/components/fields/Slider/SliderBase.js +1 -1
  199. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  200. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  201. package/dist/components/fields/Slider/elements.js +1 -1
  202. package/dist/components/fields/Slider/index.js +1 -1
  203. package/dist/components/fields/Switch/Switch.js +1 -1
  204. package/dist/components/fields/TagInput/TagInput.js +1 -1
  205. package/dist/components/fields/TagInput/TagList.js +1 -1
  206. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  207. package/dist/components/fields/TagInput/useTagError.js +1 -1
  208. package/dist/components/fields/TextArea/TextArea.js +1 -1
  209. package/dist/components/fields/TextInput/TextInput.js +1 -1
  210. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  211. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  212. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  213. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  214. package/dist/components/fields/TriggerActions.js +1 -1
  215. package/dist/components/fields/color/ColorPanel.js +1 -1
  216. package/dist/components/fields/color/channels.js +1 -1
  217. package/dist/components/fields/color/color.js +1 -1
  218. package/dist/components/fields/color/context.js +1 -1
  219. package/dist/components/fields/option-origin-press.js +1 -1
  220. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  221. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  222. package/dist/components/form/Form/Field.js +1 -1
  223. package/dist/components/form/Form/Form.js +1 -1
  224. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  225. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  226. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  227. package/dist/components/form/Form/SubmitError.js +1 -1
  228. package/dist/components/form/Form/backend.js +1 -1
  229. package/dist/components/form/Form/index.js +1 -1
  230. package/dist/components/form/Form/modern/actions.js +1 -1
  231. package/dist/components/form/Form/modern/context.js +1 -1
  232. package/dist/components/form/Form/modern/controller.js +1 -1
  233. package/dist/components/form/Form/modern/field-binding.js +1 -1
  234. package/dist/components/form/Form/modern/field.js +1 -1
  235. package/dist/components/form/Form/modern/react.js +1 -1
  236. package/dist/components/form/Form/modern/store.js +1 -1
  237. package/dist/components/form/Form/modern/validation.js +1 -1
  238. package/dist/components/form/Form/modern/values.js +1 -1
  239. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  240. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  241. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  242. package/dist/components/form/Form/use-field/use-field.js +1 -1
  243. package/dist/components/form/Form/use-form.js +1 -1
  244. package/dist/components/form/Form/validation.js +1 -1
  245. package/dist/components/form/Label.js +1 -1
  246. package/dist/components/form/field-chrome.js +1 -1
  247. package/dist/components/form/legacy-tooltip.js +1 -1
  248. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  249. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  250. package/dist/components/form/validation/use-validation-props.js +1 -1
  251. package/dist/components/form/wrapper.js +1 -1
  252. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  253. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  254. package/dist/components/layout/Flex.js +1 -1
  255. package/dist/components/layout/Flow.js +1 -1
  256. package/dist/components/layout/Grid.js +1 -1
  257. package/dist/components/layout/Panel.js +1 -1
  258. package/dist/components/layout/Prefix.js +1 -1
  259. package/dist/components/layout/ResizablePanel.js +1 -1
  260. package/dist/components/layout/Space.js +1 -1
  261. package/dist/components/layout/Suffix.js +1 -1
  262. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  263. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  264. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  265. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  266. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  267. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  268. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  269. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  270. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  271. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  272. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  273. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  274. package/dist/components/navigation/Tabs/styled.js +1 -1
  275. package/dist/components/navigation/Tabs/types.js +1 -1
  276. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  277. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  278. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  279. package/dist/components/other/Calendar/Calendar.js +1 -1
  280. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  281. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  282. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  283. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  284. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  285. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  286. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  287. package/dist/components/other/Calendar/styled.js +1 -1
  288. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  289. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  290. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  291. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  292. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  293. package/dist/components/overlays/Dialog/Dialog.d.ts +7 -1
  294. package/dist/components/overlays/Dialog/Dialog.js +19 -9
  295. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  296. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  297. package/dist/components/overlays/Dialog/DialogForm.d.ts +3 -2
  298. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  299. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  300. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  301. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  302. package/dist/components/overlays/Dialog/context.js +1 -1
  303. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  304. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  305. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  306. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  307. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  308. package/dist/components/overlays/Modal/Modal.js +2 -2
  309. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  310. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  311. package/dist/components/overlays/Modal/Overlay.js +1 -1
  312. package/dist/components/overlays/Modal/Popover.js +1 -1
  313. package/dist/components/overlays/Modal/Tray.js +1 -1
  314. package/dist/components/overlays/Modal/Underlay.js +1 -1
  315. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  316. package/dist/components/overlays/Notifications/Notification.js +1 -1
  317. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  318. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  319. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  320. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  321. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  322. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  323. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  324. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  325. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  326. package/dist/components/overlays/Notifications/index.js +1 -1
  327. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  328. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  329. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  330. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  331. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  332. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  333. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  334. package/dist/components/overlays/Toast/index.js +1 -1
  335. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  336. package/dist/components/overlays/Toast/useToast.js +1 -1
  337. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  338. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  339. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  340. package/dist/components/overlays/Tooltip/context.js +1 -1
  341. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  342. package/dist/components/portal/Portal.js +1 -1
  343. package/dist/components/portal/PortalProvider.js +1 -1
  344. package/dist/components/portal/usePortal.js +1 -1
  345. package/dist/components/shared/DraggableCollection.js +1 -1
  346. package/dist/components/shared/InvalidIcon.js +1 -1
  347. package/dist/components/shared/ValidIcon.js +1 -1
  348. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  349. package/dist/components/status/Spin/Cube.js +1 -1
  350. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  351. package/dist/components/status/Spin/Spin.js +1 -1
  352. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  353. package/dist/data/item-themes.js +1 -1
  354. package/dist/data/themes.js +1 -1
  355. package/dist/eslint-plugin/defaults.generated.js +1 -1
  356. package/dist/eslint-plugin/index.js +1 -1
  357. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  358. package/dist/i18n/I18nProvider.js +1 -1
  359. package/dist/i18n/createFormatter.js +1 -1
  360. package/dist/i18n/index.js +1 -1
  361. package/dist/i18n/instance.js +1 -1
  362. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  363. package/dist/i18n/locales/en-US/uikit.js +1 -1
  364. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  365. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  366. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  367. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  368. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  369. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  370. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  371. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  372. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  373. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  374. package/dist/i18n/locales.js +1 -1
  375. package/dist/i18n/namespace.js +1 -1
  376. package/dist/i18n/useFormatter.js +1 -1
  377. package/dist/i18n/useI18n.js +1 -1
  378. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  379. package/dist/icons/AdjustmentsIcon.js +1 -1
  380. package/dist/icons/AiIcon.js +1 -1
  381. package/dist/icons/AreaChartIcon.js +1 -1
  382. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  383. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  384. package/dist/icons/BackwardIcon.js +1 -1
  385. package/dist/icons/BarChartIcon.js +1 -1
  386. package/dist/icons/BellFilledIcon.js +1 -1
  387. package/dist/icons/BellIcon.js +1 -1
  388. package/dist/icons/BooleanIcon.js +1 -1
  389. package/dist/icons/CalendarEditIcon.js +1 -1
  390. package/dist/icons/CalendarIcon.js +1 -1
  391. package/dist/icons/CaretDownIcon.js +1 -1
  392. package/dist/icons/CaretUpIcon.js +1 -1
  393. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  394. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  395. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  396. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  397. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  398. package/dist/icons/ChartBarLineIcon.js +1 -1
  399. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  400. package/dist/icons/ChartBarStackedIcon.js +1 -1
  401. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  402. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  403. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  404. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  405. package/dist/icons/ChartBubbleIcon.js +1 -1
  406. package/dist/icons/ChartDonut2Icon.js +1 -1
  407. package/dist/icons/ChartFunnelIcon.js +1 -1
  408. package/dist/icons/ChartHeatmapIcon.js +1 -1
  409. package/dist/icons/ChartKPIIcon.js +1 -1
  410. package/dist/icons/ChartPie2Icon.js +1 -1
  411. package/dist/icons/ChartScatterIcon.js +1 -1
  412. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  413. package/dist/icons/CheckCircleIcon.js +1 -1
  414. package/dist/icons/CheckIcon.js +1 -1
  415. package/dist/icons/CircleFilledIcon.js +1 -1
  416. package/dist/icons/ClearIcon.js +1 -1
  417. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  418. package/dist/icons/CloseCircleIcon.js +1 -1
  419. package/dist/icons/CloseIcon.js +1 -1
  420. package/dist/icons/CodeIcon.js +1 -1
  421. package/dist/icons/ColumnTotalIcon.js +1 -1
  422. package/dist/icons/CopyIcon.js +1 -1
  423. package/dist/icons/CountIcon.js +1 -1
  424. package/dist/icons/CubeIcon.js +1 -1
  425. package/dist/icons/CubePauseIcon.js +1 -1
  426. package/dist/icons/CubePlayIcon.js +1 -1
  427. package/dist/icons/CurrencyDollarIcon.js +1 -1
  428. package/dist/icons/DangerIcon.js +1 -1
  429. package/dist/icons/DashboardIcon.js +1 -1
  430. package/dist/icons/DatabaseIcon.js +1 -1
  431. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  432. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  433. package/dist/icons/DirectionIcon.js +1 -1
  434. package/dist/icons/DonutIcon.js +1 -1
  435. package/dist/icons/DownIcon.js +1 -1
  436. package/dist/icons/EditIcon.js +1 -1
  437. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  438. package/dist/icons/ExclamationCircleIcon.js +1 -1
  439. package/dist/icons/ExclamationIcon.js +1 -1
  440. package/dist/icons/EyeIcon.js +1 -1
  441. package/dist/icons/EyeInvisibleIcon.js +1 -1
  442. package/dist/icons/FilterIcon.js +1 -1
  443. package/dist/icons/FolderFilledIcon.js +1 -1
  444. package/dist/icons/FolderIcon.js +1 -1
  445. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  446. package/dist/icons/FolderOpenIcon.js +1 -1
  447. package/dist/icons/ForwardIcon.js +1 -1
  448. package/dist/icons/GripVerticalIcon.js +1 -1
  449. package/dist/icons/HierarchyIcon.js +1 -1
  450. package/dist/icons/HierarchyOpenIcon.js +1 -1
  451. package/dist/icons/Icon.js +1 -1
  452. package/dist/icons/InfoCircleIcon.js +1 -1
  453. package/dist/icons/InfoIcon.js +1 -1
  454. package/dist/icons/KeyIcon.js +1 -1
  455. package/dist/icons/LeftIcon.js +1 -1
  456. package/dist/icons/LineChartIcon.js +1 -1
  457. package/dist/icons/LoadingIcon.js +1 -1
  458. package/dist/icons/LockFilledIcon.js +1 -1
  459. package/dist/icons/LockIcon.js +1 -1
  460. package/dist/icons/MoreIcon.js +1 -1
  461. package/dist/icons/NotAllowedIcon.js +1 -1
  462. package/dist/icons/Number123Icon.js +1 -1
  463. package/dist/icons/NumberIcon.js +1 -1
  464. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  465. package/dist/icons/PauseCircleIcon.js +1 -1
  466. package/dist/icons/PauseIcon.js +1 -1
  467. package/dist/icons/PercentageIcon.js +1 -1
  468. package/dist/icons/PieChartIcon.js +1 -1
  469. package/dist/icons/PipetteIcon.js +1 -1
  470. package/dist/icons/PlayCircleIcon.js +1 -1
  471. package/dist/icons/PlayIcon.js +1 -1
  472. package/dist/icons/PlusIcon.js +1 -1
  473. package/dist/icons/ProgressBarIcon.js +1 -1
  474. package/dist/icons/ReloadIcon.js +1 -1
  475. package/dist/icons/ReportIcon.js +1 -1
  476. package/dist/icons/ReturnIcon.js +1 -1
  477. package/dist/icons/RightIcon.js +1 -1
  478. package/dist/icons/RowTotalsIcon.js +1 -1
  479. package/dist/icons/SchemeIcon.js +1 -1
  480. package/dist/icons/SearchIcon.js +1 -1
  481. package/dist/icons/SemanticQueryIcon.js +1 -1
  482. package/dist/icons/SettingsIcon.js +1 -1
  483. package/dist/icons/ShieldFilledIcon.js +1 -1
  484. package/dist/icons/ShieldIcon.js +1 -1
  485. package/dist/icons/SlashIcon.js +1 -1
  486. package/dist/icons/SparklesIcon.js +1 -1
  487. package/dist/icons/SqlIcon.js +1 -1
  488. package/dist/icons/StatsIcon.js +1 -1
  489. package/dist/icons/StopIcon.js +1 -1
  490. package/dist/icons/StringIcon.js +1 -1
  491. package/dist/icons/SubtotalsIcon.js +1 -1
  492. package/dist/icons/SwitchIcon.js +1 -1
  493. package/dist/icons/TableIcon.js +1 -1
  494. package/dist/icons/ThumbsDownIcon.js +1 -1
  495. package/dist/icons/ThumbsUpIcon.js +1 -1
  496. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  497. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  498. package/dist/icons/ThunderboltIcon.js +1 -1
  499. package/dist/icons/TimeIcon.js +1 -1
  500. package/dist/icons/TrashIcon.js +1 -1
  501. package/dist/icons/UnlockIcon.js +1 -1
  502. package/dist/icons/UpIcon.js +1 -1
  503. package/dist/icons/UserGroupIcon.js +1 -1
  504. package/dist/icons/UserIcon.js +1 -1
  505. package/dist/icons/UserLockIcon.js +1 -1
  506. package/dist/icons/ViewIcon.js +1 -1
  507. package/dist/icons/WarningFilledIcon.js +1 -1
  508. package/dist/icons/WarningIcon.js +1 -1
  509. package/dist/icons/wrap-icon.js +1 -1
  510. package/dist/index.js +1 -1
  511. package/dist/probe/canonicalize.js +1 -1
  512. package/dist/probe/css.js +1 -1
  513. package/dist/probe/index.js +1 -1
  514. package/dist/provider.js +1 -1
  515. package/dist/providers/TrackingProvider.js +1 -1
  516. package/dist/providers/navigation-url.js +1 -1
  517. package/dist/providers/navigationAdapter.default.js +1 -1
  518. package/dist/providers/use-navigation.js +1 -1
  519. package/dist/tokens/all-tokens.js +1 -1
  520. package/dist/tokens/base.js +17 -8
  521. package/dist/tokens/base.js.map +1 -1
  522. package/dist/tokens/color-seed.js +1 -1
  523. package/dist/tokens/color-theme.js +1 -1
  524. package/dist/tokens/colors.js +1 -1
  525. package/dist/tokens/layout.js +1 -1
  526. package/dist/tokens/lazy-styles.js +1 -1
  527. package/dist/tokens/legacy-color.js +1 -1
  528. package/dist/tokens/palette-config.js +1 -1
  529. package/dist/tokens/palette.js +1 -1
  530. package/dist/tokens/resolve.js +1 -1
  531. package/dist/tokens/shadows.js +1 -1
  532. package/dist/tokens/sizes.js +1 -1
  533. package/dist/tokens/spacing.js +1 -1
  534. package/dist/tokens/typography.js +1 -1
  535. package/dist/utils/ResizeSensor.js +1 -1
  536. package/dist/utils/colors.js +1 -1
  537. package/dist/utils/dotize.js +1 -1
  538. package/dist/utils/is-dev-env.js +1 -1
  539. package/dist/utils/modules.js +1 -1
  540. package/dist/utils/promise.js +1 -1
  541. package/dist/utils/raf.js +1 -1
  542. package/dist/utils/random.js +1 -1
  543. package/dist/utils/range.js +1 -1
  544. package/dist/utils/react/RenderCache.js +1 -1
  545. package/dist/utils/react/Slots.js +1 -1
  546. package/dist/utils/react/chain.js +1 -1
  547. package/dist/utils/react/disabledProps.js +1 -1
  548. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  549. package/dist/utils/react/index.js +1 -1
  550. package/dist/utils/react/interactions.js +1 -1
  551. package/dist/utils/react/isTextOnly.js +1 -1
  552. package/dist/utils/react/mapProps.js +1 -1
  553. package/dist/utils/react/mergeProps.js +1 -1
  554. package/dist/utils/react/nullableValue.js +1 -1
  555. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  556. package/dist/utils/react/programmaticFocus.js +1 -1
  557. package/dist/utils/react/resolveIcon.js +1 -1
  558. package/dist/utils/react/sharedStore.js +1 -1
  559. package/dist/utils/react/useBufferedValue.js +1 -1
  560. package/dist/utils/react/useCombinedRefs.js +1 -1
  561. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  562. package/dist/utils/react/useEventBus.js +1 -1
  563. package/dist/utils/react/useId.js +1 -1
  564. package/dist/utils/react/useIsDarwin.js +1 -1
  565. package/dist/utils/react/useKeySymbols.js +1 -1
  566. package/dist/utils/react/useLayoutEffect.js +1 -1
  567. package/dist/utils/react/useLocalStorage.js +1 -1
  568. package/dist/utils/react/useMergeStyles.js +1 -1
  569. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  570. package/dist/utils/react/usePopoverSync.js +1 -1
  571. package/dist/utils/react/useQaProps.js +1 -1
  572. package/dist/utils/react/useScheme.js +1 -1
  573. package/dist/utils/react/useViewportSize.js +1 -1
  574. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  575. package/dist/utils/selection.js +1 -1
  576. package/dist/utils/styles.js +1 -1
  577. package/dist/utils/tree.js +1 -1
  578. package/dist/utils/warnings.js +1 -1
  579. package/dist/version.js +2 -2
  580. package/docs/Usage.md +2 -1
  581. package/docs/components/content/Layout.md +3 -3
  582. package/docs/components/overlays/Dialog.md +16 -0
  583. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../provider.js";
3
3
  import { CalendarPanel } from "./CalendarPanel.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  //#region src/components/other/Calendar/styled.tsx
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Icon } from "../../../icons/Icon.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { mergeStyles, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { wrapIcon } from "../../../icons/wrap-icon.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/other/NoDataIcon/NoDataIcon.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { Paragraph } from "../../content/Paragraph.js";
4
4
  import { Title as _Title } from "../../content/Title.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { AlertDialogZone } from "./AlertDialogZone.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Portal } from "../../portal/Portal.js";
3
3
  import { DialogContainer } from "../Dialog/DialogContainer.js";
4
4
  import { AlertDialog as _AlertDialog } from "./AlertDialog.js";
@@ -3,7 +3,13 @@ import { BaseProps, BaseStyleProps, BlockStyleProps, DimensionStyleProps, Styles
3
3
  import { ReactElement } from "react";
4
4
  import { AriaDialogProps } from "react-aria";
5
5
  //#region src/components/overlays/Dialog/Dialog.d.ts
6
- export interface CubeDialogProps extends Omit<BaseProps, 'role'>, AriaDialogProps, BaseStyleProps, BlockStyleProps, DimensionStyleProps {
6
+ export interface CubeDialogProps extends Omit<BaseProps, 'role'>, AriaDialogProps, BaseStyleProps, BlockStyleProps, Omit<DimensionStyleProps, 'width'> {
7
+ /**
8
+ * The dialog's preferred width, one value (`520px`, `65x`, `600`). It keeps
9
+ * the type's maximum, so the dialog still fits a phone, and replaces
10
+ * `$min-dialog-size`. To clamp the width yourself, set `styles.width`.
11
+ */
12
+ width?: string | number;
7
13
  /** The size of the dialog */
8
14
  size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';
9
15
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { SlotProvider } from "../../../utils/react/Slots.js";
@@ -36,11 +36,17 @@ const DialogElement = tasty({
36
36
  "": "relative",
37
37
  "type=panel": "absolute"
38
38
  },
39
+ "$dialog-width-limit": {
40
+ "": "$dialog-max-size",
41
+ "type=tray": "100%",
42
+ "type=fullscreenTakeover | type=panel": "100dvw"
43
+ },
39
44
  width: {
40
- "": "$min-dialog-size $dialog-size (100dvw - 8x)",
41
- "type=fullscreen": "(100dvw - 8x) (100dvw - 8x)",
45
+ "": "$min-dialog-size $dialog-size $dialog-width-limit",
46
+ "type=fullscreen": "$dialog-max-size $dialog-max-size",
42
47
  "type=fullscreenTakeover": "100dvw 100dvw",
43
- "type=panel": "auto"
48
+ "type=panel": "auto",
49
+ "custom-width": "initial $dialog-size $dialog-width-limit"
44
50
  },
45
51
  height: {
46
52
  "": "auto (100dvh - 8x)",
@@ -170,7 +176,7 @@ const Dialog = forwardRef(function Dialog(props, ref) {
170
176
  });
171
177
  const DialogContent = forwardRef(function DialogContent(props, ref) {
172
178
  let { type = "modal", ...contextProps } = useDialogContext();
173
- let { qa, children, size = "M", isDismissable = type === "popover" ? void 0 : contextProps.isDismissable, onDismiss = contextProps.onClose, closeIcon, closeButtonStyles, style, ...otherProps } = props;
179
+ let { qa, children, size = "M", isDismissable = type === "popover" ? void 0 : contextProps.isDismissable, onDismiss = contextProps.onClose, closeIcon, closeButtonStyles, width, tokens, style, ...otherProps } = props;
174
180
  size = sizeMap[size.toUpperCase()] || size;
175
181
  const styles = extractStyles(otherProps, STYLES_LIST);
176
182
  const { t } = useI18n();
@@ -296,11 +302,15 @@ const DialogContent = forwardRef(function DialogContent(props, ref) {
296
302
  if (isRefocusingRef.current) event.stopPropagation();
297
303
  }
298
304
  }),
299
- mods: { dismissable: isDismissable },
300
- style: {
301
- "--dialog-size": `${sizePxMap[size] || sizePxMap.small}px`,
302
- ...style
305
+ mods: {
306
+ dismissable: isDismissable,
307
+ "custom-width": width != null
308
+ },
309
+ tokens: {
310
+ "$dialog-size": width == null ? `${sizePxMap[size] || sizePxMap.small}px` : typeof width === "number" ? `${width}px` : width,
311
+ ...tokens
303
312
  },
313
+ style,
304
314
  "data-type": type,
305
315
  "data-size": size,
306
316
  children: [dismissButton, /* @__PURE__ */ jsxs(SlotProvider, {
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","names":["createFocusManager","getFocusableTreeWalker","focusSafely","getInteractionModality","focusWithoutScrolling","isFocusable","runAfterTransition","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","FocusEvent","forwardRef","ReactElement","Ref","useEffect","useRef","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","trapsFocus","useDialogContext","useContentOverflow","useRetainedDialogFocus","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","findPriorityFocusElement","dialog","HTMLElement","marked","querySelectorAll","element","Array","from","reverse","target","tabbable","nextNode","button","getAttribute","querySelector","Dialog","props","ref","$","_c","transitionState","isShown","context","t0","content","t1","isOpen","shouldContainFocus","t2","shouldRestoreFocus","t3","DialogContent","HTMLDivElement","contextProps","children","undefined","onClose","style","otherProps","toUpperCase","t","domRef","isFocusInTreeRef","isRetained","isTrapping","isRefocusingRef","mountedAtRef","current","Date","now","dialogProps","titleProps","contentProps","dismissButton","timer","ReturnType","setTimeout","isClosed","contains","document","activeElement","body","blur","isFocusOutsideDialog","isFocusOnDialogShell","priorityElement","focus","focused","focusManager","focusFirst","clearTimeout","contentOverflows","slots","title","level","preset","id","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","onFocus","onBlur","event","stopPropagation","dismissable","ItemButton","_c","mergeProps"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager, getFocusableTreeWalker } from '@react-aria/focus';\nimport { focusSafely, getInteractionModality } from '@react-aria/interactions';\nimport {\n focusWithoutScrolling,\n isFocusable,\n runAfterTransition,\n useObjectRef,\n} 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 {\n FocusEvent,\n forwardRef,\n ReactElement,\n Ref,\n useEffect,\n useRef,\n} 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 { trapsFocus, useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\nimport { useRetainedDialogFocus } from './use-retained-dialog-focus';\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\n 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 /**\n * Whether the dialog shows its close button. Defaults to its DialogTrigger's\n * or DialogContainer's `isDismissable`, except in a popover.\n */\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 * The control a dialog focuses when it opens: the last one marked\n * `data-autofocus` that can take focus, as kit controls mark themselves for\n * `autoFocus` (the last of several takes focus as they mount), or the first\n * control of a marked field (a date field's first segment). Otherwise a\n * submit or primary button, which in an alert dialog is never a destructive\n * (`danger`) one: a reflexive Enter would run it.\n */\nfunction findPriorityFocusElement(dialog: HTMLElement) {\n const marked = dialog.querySelectorAll<HTMLElement>('[data-autofocus]');\n\n for (const element of Array.from(marked).reverse()) {\n const target = isFocusable(element)\n ? element\n : getFocusableTreeWalker(element, { tabbable: true }).nextNode();\n\n if (target) return target as HTMLElement;\n }\n\n const button =\n dialog.getAttribute('role') === 'alertdialog'\n ? 'button:not([data-theme=\"danger\"])'\n : 'button';\n\n return dialog.querySelector<HTMLElement>(\n `${button}[type=\"submit\"], ${button}[data-type=\"primary\"]`,\n );\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 transitionState = useOpenTransitionContext()?.transitionState;\n\n // From the first frame of the enter transition, not only once it has\n // ended: a Tab pressed while the dialog animates in would otherwise land on\n // the page behind it, and nothing would pull it back. Released as soon as\n // the dialog closes, so focus can return to the trigger during the exit.\n const isShown = transitionState === 'enter' || transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = <DialogContent key=\"content\" {...props} ref={ref} />;\n\n const shouldContainFocus = isShown && !!context.isOpen && trapsFocus(context);\n\n return (\n // This component traps the focus inside the dialog and restores it when\n // it unmounts (a retained dialog never does, so `DialogContent` moves\n // focus for that one). The restore is the one that matters for popover-type dialogs\n // — `DialogTrigger`'s own restore is a no-op there — so\n // `shouldRestoreFocus` 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 // A popover shows a close button only when its `Dialog` asks for one: its\n // trigger's `isDismissable` decides whether an outside press closes it.\n isDismissable = type === 'popover' ? undefined : 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\n // Whether focus is in the dialog or in anything opened from it, portals\n // included: React focus events bubble through the component tree.\n const isFocusInTreeRef = useRef(false);\n const isRetained = useRetainedDialogFocus(domRef, isFocusInTreeRef);\n const isTrapping = trapsFocus({ ...contextProps, type });\n\n // Set while the dialog refocuses itself, so the blur in between does not\n // reach overlays that close when focus leaves them.\n const isRefocusingRef = useRef(false);\n\n // When the dialog mounted: `useDialog` refocuses it half a second later.\n const mountedAtRef = useRef(0);\n\n useEffect(() => {\n mountedAtRef.current = Date.now();\n }, []);\n\n // `contentProps` carries an id only for `role=\"alertdialog\"` without an\n // explicit `aria-describedby`: an alert is described by its message, while a\n // plain dialog links nothing, so opening a form does not read it aloud.\n let { dialogProps, titleProps, contentProps } = 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 // The pending timer: this one, then the refocus it may start.\n let timer: ReturnType<typeof setTimeout> | undefined;\n let isClosed = false;\n\n if (contextProps.isOpen) {\n timer = setTimeout(() => {\n if (!domRef.current) return;\n\n // `useDialog` focuses the dialog itself when it mounts, without\n // scrolling, unless focus is already inside. A retained dialog opens\n // without remounting, so do the same here: the rules below then run as\n // for a fresh dialog, and kept content keeps its scroll.\n if (isRetained && !domRef.current.contains(document.activeElement)) {\n focusSafely(domRef.current);\n\n // As `useDialog` does next: VoiceOver on iOS announces a dialog only\n // once it has rendered, so blur and refocus it half a second later\n // if focus is still on it or lost to `<body>`. Unless the refocus\n // `useDialog` set up when the dialog mounted is still to come.\n if (Date.now() - mountedAtRef.current >= 500) {\n timer = setTimeout(() => {\n const dialog = domRef.current;\n const activeElement = document.activeElement;\n\n if (\n !dialog ||\n (activeElement !== dialog && activeElement !== document.body)\n ) {\n return;\n }\n\n isRefocusingRef.current = true;\n dialog.blur();\n focusSafely(dialog);\n isRefocusingRef.current = false;\n }, 500);\n }\n }\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: an autofocused control, or a submit or primary button\n const priorityElement = findPriorityFocusElement(domRef.current);\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog && getInteractionModality() === 'virtual') {\n // A screen reader's cursor: the dialog itself takes focus once the\n // open transition ends, as `focusSafely` does it. Then also when\n // something moved focus meanwhile, as a closing menu returns it to\n // its trigger, unless a dialog that leaves the page usable lost it\n // to a control there.\n runAfterTransition(() => {\n const dialog = domRef.current;\n const focused = document.activeElement;\n\n if (\n isClosed ||\n !dialog ||\n dialog.contains(focused) ||\n (!isTrapping &&\n focused !== document.body &&\n focused !== activeElement)\n ) {\n return;\n }\n\n focusWithoutScrolling(dialog);\n });\n } else 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\n return () => {\n isClosed = true;\n clearTimeout(timer);\n };\n }, [contextProps.isOpen, isRetained, isTrapping]);\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 // `null` rather than `undefined` when there is none: slots reach nested\n // slot providers, and `undefined` does not override, so a dialog opened\n // inside an alert dialog would repeat the alert's message id.\n id: contentProps.id ?? null,\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 {...mergeProps(dialogProps, {\n onFocus() {\n isFocusInTreeRef.current = true;\n },\n onBlur(event: FocusEvent) {\n isFocusInTreeRef.current = false;\n\n if (isRefocusingRef.current) event.stopPropagation();\n },\n })}\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 aria-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","getFocusableTreeWalker","focusSafely","getInteractionModality","focusWithoutScrolling","isFocusable","runAfterTransition","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","FocusEvent","forwardRef","ReactElement","Ref","useEffect","useRef","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","trapsFocus","useDialogContext","useContentOverflow","useRetainedDialogFocus","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","findPriorityFocusElement","dialog","HTMLElement","marked","querySelectorAll","element","Array","from","reverse","target","tabbable","nextNode","button","getAttribute","querySelector","Dialog","props","ref","$","_c","transitionState","isShown","context","t0","content","t1","isOpen","shouldContainFocus","t2","shouldRestoreFocus","t3","DialogContent","HTMLDivElement","contextProps","children","undefined","onClose","tokens","style","otherProps","toUpperCase","t","domRef","isFocusInTreeRef","isRetained","isTrapping","isRefocusingRef","mountedAtRef","current","Date","now","dialogProps","titleProps","contentProps","dismissButton","timer","ReturnType","setTimeout","isClosed","contains","document","activeElement","body","blur","isFocusOutsideDialog","isFocusOnDialogShell","priorityElement","focus","focused","focusManager","focusFirst","clearTimeout","contentOverflows","slots","title","level","preset","id","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","onFocus","onBlur","event","stopPropagation","dismissable","ItemButton","_c","mergeProps"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager, getFocusableTreeWalker } from '@react-aria/focus';\nimport { focusSafely, getInteractionModality } from '@react-aria/interactions';\nimport {\n focusWithoutScrolling,\n isFocusable,\n runAfterTransition,\n useObjectRef,\n} 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 {\n FocusEvent,\n forwardRef,\n ReactElement,\n Ref,\n useEffect,\n useRef,\n} 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 { trapsFocus, useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\nimport { useRetainedDialogFocus } from './use-retained-dialog-focus';\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 // The widest the dialog gets, also under a `width`. A tray is held by its\n // shell, whose own `styles` widen it; a takeover and a panel may span the\n // viewport.\n '$dialog-width-limit': {\n '': '$dialog-max-size',\n 'type=tray': '100%',\n 'type=fullscreenTakeover | type=panel': '100dvw',\n },\n width: {\n '': '$min-dialog-size $dialog-size $dialog-width-limit',\n 'type=fullscreen': '$dialog-max-size $dialog-max-size',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n // A `width` is the preferred width in `$dialog-size`: it keeps the\n // limit, and replaces the floor.\n 'custom-width': 'initial $dialog-size $dialog-width-limit',\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\n Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n Omit<DimensionStyleProps, 'width'> {\n /**\n * The dialog's preferred width, one value (`520px`, `65x`, `600`). It keeps\n * the type's maximum, so the dialog still fits a phone, and replaces\n * `$min-dialog-size`. To clamp the width yourself, set `styles.width`.\n */\n width?: string | number;\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /**\n * Whether the dialog shows its close button. Defaults to its DialogTrigger's\n * or DialogContainer's `isDismissable`, except in a popover.\n */\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 * The control a dialog focuses when it opens: the last one marked\n * `data-autofocus` that can take focus, as kit controls mark themselves for\n * `autoFocus` (the last of several takes focus as they mount), or the first\n * control of a marked field (a date field's first segment). Otherwise a\n * submit or primary button, which in an alert dialog is never a destructive\n * (`danger`) one: a reflexive Enter would run it.\n */\nfunction findPriorityFocusElement(dialog: HTMLElement) {\n const marked = dialog.querySelectorAll<HTMLElement>('[data-autofocus]');\n\n for (const element of Array.from(marked).reverse()) {\n const target = isFocusable(element)\n ? element\n : getFocusableTreeWalker(element, { tabbable: true }).nextNode();\n\n if (target) return target as HTMLElement;\n }\n\n const button =\n dialog.getAttribute('role') === 'alertdialog'\n ? 'button:not([data-theme=\"danger\"])'\n : 'button';\n\n return dialog.querySelector<HTMLElement>(\n `${button}[type=\"submit\"], ${button}[data-type=\"primary\"]`,\n );\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 transitionState = useOpenTransitionContext()?.transitionState;\n\n // From the first frame of the enter transition, not only once it has\n // ended: a Tab pressed while the dialog animates in would otherwise land on\n // the page behind it, and nothing would pull it back. Released as soon as\n // the dialog closes, so focus can return to the trigger during the exit.\n const isShown = transitionState === 'enter' || transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = <DialogContent key=\"content\" {...props} ref={ref} />;\n\n const shouldContainFocus = isShown && !!context.isOpen && trapsFocus(context);\n\n return (\n // This component traps the focus inside the dialog and restores it when\n // it unmounts (a retained dialog never does, so `DialogContent` moves\n // focus for that one). The restore is the one that matters for popover-type dialogs\n // — `DialogTrigger`'s own restore is a no-op there — so\n // `shouldRestoreFocus` 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 // A popover shows a close button only when its `Dialog` asks for one: its\n // trigger's `isDismissable` decides whether an outside press closes it.\n isDismissable = type === 'popover' ? undefined : contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n width,\n tokens,\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\n // Whether focus is in the dialog or in anything opened from it, portals\n // included: React focus events bubble through the component tree.\n const isFocusInTreeRef = useRef(false);\n const isRetained = useRetainedDialogFocus(domRef, isFocusInTreeRef);\n const isTrapping = trapsFocus({ ...contextProps, type });\n\n // Set while the dialog refocuses itself, so the blur in between does not\n // reach overlays that close when focus leaves them.\n const isRefocusingRef = useRef(false);\n\n // When the dialog mounted: `useDialog` refocuses it half a second later.\n const mountedAtRef = useRef(0);\n\n useEffect(() => {\n mountedAtRef.current = Date.now();\n }, []);\n\n // `contentProps` carries an id only for `role=\"alertdialog\"` without an\n // explicit `aria-describedby`: an alert is described by its message, while a\n // plain dialog links nothing, so opening a form does not read it aloud.\n let { dialogProps, titleProps, contentProps } = 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 // The pending timer: this one, then the refocus it may start.\n let timer: ReturnType<typeof setTimeout> | undefined;\n let isClosed = false;\n\n if (contextProps.isOpen) {\n timer = setTimeout(() => {\n if (!domRef.current) return;\n\n // `useDialog` focuses the dialog itself when it mounts, without\n // scrolling, unless focus is already inside. A retained dialog opens\n // without remounting, so do the same here: the rules below then run as\n // for a fresh dialog, and kept content keeps its scroll.\n if (isRetained && !domRef.current.contains(document.activeElement)) {\n focusSafely(domRef.current);\n\n // As `useDialog` does next: VoiceOver on iOS announces a dialog only\n // once it has rendered, so blur and refocus it half a second later\n // if focus is still on it or lost to `<body>`. Unless the refocus\n // `useDialog` set up when the dialog mounted is still to come.\n if (Date.now() - mountedAtRef.current >= 500) {\n timer = setTimeout(() => {\n const dialog = domRef.current;\n const activeElement = document.activeElement;\n\n if (\n !dialog ||\n (activeElement !== dialog && activeElement !== document.body)\n ) {\n return;\n }\n\n isRefocusingRef.current = true;\n dialog.blur();\n focusSafely(dialog);\n isRefocusingRef.current = false;\n }, 500);\n }\n }\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: an autofocused control, or a submit or primary button\n const priorityElement = findPriorityFocusElement(domRef.current);\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog && getInteractionModality() === 'virtual') {\n // A screen reader's cursor: the dialog itself takes focus once the\n // open transition ends, as `focusSafely` does it. Then also when\n // something moved focus meanwhile, as a closing menu returns it to\n // its trigger, unless a dialog that leaves the page usable lost it\n // to a control there.\n runAfterTransition(() => {\n const dialog = domRef.current;\n const focused = document.activeElement;\n\n if (\n isClosed ||\n !dialog ||\n dialog.contains(focused) ||\n (!isTrapping &&\n focused !== document.body &&\n focused !== activeElement)\n ) {\n return;\n }\n\n focusWithoutScrolling(dialog);\n });\n } else 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\n return () => {\n isClosed = true;\n clearTimeout(timer);\n };\n }, [contextProps.isOpen, isRetained, isTrapping]);\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 // `null` rather than `undefined` when there is none: slots reach nested\n // slot providers, and `undefined` does not override, so a dialog opened\n // inside an alert dialog would repeat the alert's message id.\n id: contentProps.id ?? null,\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 {...mergeProps(dialogProps, {\n onFocus() {\n isFocusInTreeRef.current = true;\n },\n onBlur(event: FocusEvent) {\n isFocusInTreeRef.current = false;\n\n if (isRefocusingRef.current) event.stopPropagation();\n },\n })}\n mods={{ dismissable: isDismissable, 'custom-width': width != null }}\n tokens={{\n '$dialog-size':\n width == null\n ? `${sizePxMap[size] || sizePxMap.small}px`\n : typeof width === 'number'\n ? `${width}px`\n : width,\n ...tokens,\n }}\n style={style}\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 aria-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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Modal as _Modal } from "../Modal/Modal.js";
3
3
  import { Tray as _Tray } from "../Modal/Tray.js";
4
4
  import { DialogContext } from "./context.js";
@@ -7,7 +7,7 @@ import { CubeFormProps } from "../../form/Form/Form.js";
7
7
  import { CubeSubmitButtonProps } from "../../form/Form/SubmitButton/SubmitButton.js";
8
8
  import { ReactElement } from "react";
9
9
  //#region src/components/overlays/Dialog/DialogForm.d.ts
10
- export interface CubeDialogFormProps<T extends FieldTypes = FieldTypes> extends Omit<CubeDialogProps, 'children'>, Omit<CubeFormProps<T>, 'role' | 'children'> {
10
+ export interface CubeDialogFormProps<T extends FieldTypes = FieldTypes> extends Omit<CubeDialogProps, 'children'>, Omit<CubeFormProps<T>, 'role' | 'children' | 'width'> {
11
11
  /** Whether the submit button has a `danger` theme */
12
12
  danger?: boolean;
13
13
  /** Properties for submit button. Use `children` to change text. */
@@ -30,7 +30,8 @@ export interface CubeDialogFormRef {
30
30
  /**
31
31
  * DialogForms are a specific type of Dialog. They contain forms to fill.
32
32
  */
33
- export interface ModernDialogFormProps<T extends FieldTypes = FieldTypes> extends Omit<CubeDialogFormProps<T>, keyof CubeFormProps<T> | 'submitProps'>, Omit<ModernFormProps<T>, 'role' | 'children'> {
33
+ export interface ModernDialogFormProps<T extends FieldTypes = FieldTypes> extends Omit<CubeDialogFormProps<T>, keyof CubeFormProps<T> | 'submitProps'>, Omit<ModernFormProps<T>, 'role' | 'children' | 'width'> {
34
+ width?: CubeDialogProps['width'];
34
35
  children?: CubeDialogFormProps<T>['children'];
35
36
  submitProps?: Omit<CubeSubmitButtonProps<T>, 'form'>;
36
37
  }
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Title as _Title } from "../../content/Title.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { Button } from "../../actions/Button/Button.js";
@@ -1 +1 @@
1
- {"version":3,"file":"DialogForm.js","names":["useI18n","Button","ButtonGroup","Content","Footer","Header","Title","isModernFormController","Form","SubmitButton","useForm","useDialogContext","withDefaultButtonText","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","_c","Title","Form","SubmitButton"],"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 { withDefaultButtonText } from './default-button-text';\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\n 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 `children` to change text. */\n submitProps?: Omit<CubeButtonProps, 'form'>;\n /** Properties for cancel button. Use `children` 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\n 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 {...withDefaultButtonText(\n submitProps,\n t('dialogForm.submit', 'Submit'),\n )}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n onPress={onLocalDismiss}\n {...withDefaultButtonText(\n cancelProps,\n t('dialogForm.cancel', 'Cancel'),\n )}\n />\n </ButtonGroup>\n </Footer>\n ) : undefined}\n </Form>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoEA,SAAOqC,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,OAAA;EAGEG,KAAAlC,uBAAuB+B,MAAKI,IAInC,IAHE,oBAAC,kBAAD,EAAiB,GAAMJ,MAAiC,CAAA,IAExD,oBAAC,kBAAD,EAAiB,GAAMA,MAA+B,CAAA;EACvDC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAJME;AAIN;AAGH,SAASE,iBAAuCL,OAA+B;CAC7E;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;CAEJ,CAACI,QAAQhC,QAAQgC,IAAI;CAErB,MAAM,EAAEoB,MAAM9D,QAAQ;CACtB,MAAM,EAAE+D,YAAYpD,iBAAiB;CAErC,SAASqB,iBAAiB;EACxB+B,UAAU;EACVhB,YAAY;EAEZ,IAAI,CAACnB,UAEHoC,iBAAiB;GACftB,MAAMuB,YAAY;EACpB,GAAG,GAAG;CAEV;CAEA,OACE,qBAAC,QAAD;EACE,IAAI,GAAGrB,MAAM,GAAE;EACTe;EACKC;EACX,GAAIC;EAJN,UAAA,CAME,oBAAC,QAAD,EAAA,UACE,oBAACQ,QAAD;GAAO,UAAA;GAAUvC,UAAAA;EAAa,CAAA,EACxB,CAAA,GAQR,qBAACwC,OAAD;GACE,IAAI1B,MAAM;GACJF;GACAG;GACSC;GACFK;GACEC;GACDC;GACMC;GACRC;GACDC;GACFC;GACQC;GACjB,UAAU,OAAOQ,SAAS;IACxB,MAAMlB,WAAWkB,IAAI;IAErBH,UAAU;IAEV,IAAI,CAACnC,UAEHoC,iBAAiB;KACftB,KAAKuB,YAAY;IACnB,GAAG,GAAG;GAEV;GACgBhB;GACAC;GA1BlB,UAAA,CA4BE,oBAAC,SAAD,EAAA,UACG,OAAOnB,aAAa,aAAaA,SAASC,cAAc,IAAID,SACtD,CAAA,GAER,CAACF,YACA,oBAAC,QAAD,EAAA,UACE,qBAAC,aAAD,EAAA,UAAA,CACE,oBAAC0C,eAAD;IACE,IAAI,GAAG3B,MAAM,GAAE;IACf,OAAOnB,SAAS,WAAW0C,KAAAA;IAC3B,GAAIvD,sBACFc,aACAoC,EAAE,qBAAqB,QAAQ,CACjC;GAAE,CAAA,GAEJ,oBAAC,QAAD;IACE,IAAI,GAAGlB,MAAM,GAAE;IACf,SAASZ;IACT,GAAIpB,sBACFe,aACAmC,EAAE,qBAAqB,QAAQ,CACjC;GAAE,CAAA,CAEO,EAAA,CAAA,EACP,CAAA,IACNK,KAAAA,CACA;EACA,CAAA,CAAA;;AAEZ"}
1
+ {"version":3,"file":"DialogForm.js","names":["useI18n","Button","ButtonGroup","Content","Footer","Header","Title","isModernFormController","Form","SubmitButton","useForm","useDialogContext","withDefaultButtonText","CubeDialogProps","Dialog","ModernDialogForm","ReactElement","CubeButtonProps","CubeFormProps","ModernFormProps","CubeSubmitButtonProps","FieldTypes","CubeDialogFormProps","Omit","T","danger","submitProps","cancelProps","preserve","noActions","title","children","onLocalDismiss","CubeDialogFormRef","open","close","ModernDialogFormProps","width","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","_c","Title","Form","SubmitButton"],"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 { withDefaultButtonText } from './default-button-text';\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\n Omit<CubeDialogProps, 'children'>,\n Omit<CubeFormProps<T>, 'role' | 'children' | 'width'> {\n /** Whether the submit button has a `danger` theme */\n danger?: boolean;\n /** Properties for submit button. Use `children` to change text. */\n submitProps?: Omit<CubeButtonProps, 'form'>;\n /** Properties for cancel button. Use `children` 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\n Omit<CubeDialogFormProps<T>, keyof CubeFormProps<T> | 'submitProps'>,\n Omit<ModernFormProps<T>, 'role' | 'children' | 'width'> {\n width?: CubeDialogProps['width'];\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 {...withDefaultButtonText(\n submitProps,\n t('dialogForm.submit', 'Submit'),\n )}\n />\n <Button\n qa={`${qa || ''}CancelButton`}\n onPress={onLocalDismiss}\n {...withDefaultButtonText(\n cancelProps,\n t('dialogForm.cancel', 'Cancel'),\n )}\n />\n </ButtonGroup>\n </Footer>\n ) : undefined}\n </Form>\n </Dialog>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAqEA,SAAOsC,WAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAAA,IAAAC;CAAA,IAAAF,EAAA,OAAAD,OAAA;EAGEG,KAAAnC,uBAAuBgC,MAAKI,IAInC,IAHE,oBAAC,kBAAD,EAAiB,GAAMJ,MAAiC,CAAA,IAExD,oBAAC,kBAAD,EAAiB,GAAMA,MAA+B,CAAA;EACvDC,EAAA,KAAAD;EAAAC,EAAA,KAAAE;CAAA,OAAAA,KAAAF,EAAA;CAAA,OAJME;AAIN;AAGH,SAASE,iBAAuCL,OAA+B;CAC7E;CAGA,IAAI,EACFM,IACAC,MACAH,MACAI,eACAC,WACAC,UACAC,gBACAC,gBACAC,aACAC,eACAC,cACAC,oBACAC,YACAC,WACAC,SACAC,iBACA5B,UACAN,QACAI,WACAH,aACAC,aACAC,UACAE,OACA8B,MACAC,WACA,GAAGC,gBACDvB;CAEJ,CAACI,QAAQjC,QAAQiC,IAAI;CAErB,MAAM,EAAEoB,MAAM/D,QAAQ;CACtB,MAAM,EAAEgE,YAAYrD,iBAAiB;CAErC,SAASqB,iBAAiB;EACxBgC,UAAU;EACVhB,YAAY;EAEZ,IAAI,CAACpB,UAEHqC,iBAAiB;GACftB,MAAMuB,YAAY;EACpB,GAAG,GAAG;CAEV;CAEA,OACE,qBAAC,QAAD;EACE,IAAI,GAAGrB,MAAM,GAAE;EACTe;EACKC;EACX,GAAIC;EAJN,UAAA,CAME,oBAAC,QAAD,EAAA,UACE,oBAACQ,QAAD;GAAO,UAAA;GAAUxC,UAAAA;EAAa,CAAA,EACxB,CAAA,GAQR,qBAACyC,OAAD;GACE,IAAI1B,MAAM;GACJF;GACAG;GACSC;GACFK;GACEC;GACDC;GACMC;GACRC;GACDC;GACFC;GACQC;GACjB,UAAU,OAAOQ,SAAS;IACxB,MAAMlB,WAAWkB,IAAI;IAErBH,UAAU;IAEV,IAAI,CAACpC,UAEHqC,iBAAiB;KACftB,KAAKuB,YAAY;IACnB,GAAG,GAAG;GAEV;GACgBhB;GACAC;GA1BlB,UAAA,CA4BE,oBAAC,SAAD,EAAA,UACG,OAAOpB,aAAa,aAAaA,SAASC,cAAc,IAAID,SACtD,CAAA,GAER,CAACF,YACA,oBAAC,QAAD,EAAA,UACE,qBAAC,aAAD,EAAA,UAAA,CACE,oBAAC2C,eAAD;IACE,IAAI,GAAG3B,MAAM,GAAE;IACf,OAAOpB,SAAS,WAAW2C,KAAAA;IAC3B,GAAIxD,sBACFc,aACAqC,EAAE,qBAAqB,QAAQ,CACjC;GAAE,CAAA,GAEJ,oBAAC,QAAD;IACE,IAAI,GAAGlB,MAAM,GAAE;IACf,SAASb;IACT,GAAIpB,sBACFe,aACAoC,EAAE,qBAAqB,QAAQ,CACjC;GAAE,CAAA,CAEO,EAAA,CAAA,EACP,CAAA,IACNK,KAAAA,CACA;EACA,CAAA,CAAA;;AAEZ"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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 as _Title } from "../../content/Title.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import invariant from "tiny-invariant";
4
4
  //#region src/components/overlays/Dialog/context.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  //#region src/components/overlays/Dialog/default-button-text.ts
3
3
  /**
4
4
  * Gives a dialog's built-in button its default text without overriding the
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { useEventBus } from "../../../utils/react/useEventBus.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect, useEffectEvent } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { focusProgrammatically } from "../../../utils/react/programmaticFocus.js";
3
3
  import { useOpenTransitionContext } from "../Modal/OpenTransitionContext.js";
4
4
  import { trapsFocus, useDialogContext } from "./context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs as mergeRefs$1 } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { ModalContainmentProvider, useModalContainment } from "./modal-containment.js";
@@ -52,7 +52,7 @@ const ModalElement = tasty({ styles: {
52
52
  "type=panel": "auto"
53
53
  },
54
54
  width: {
55
- "": "$min-dialog-size (100dvw - 8x)",
55
+ "": "$min-dialog-size 100dvw",
56
56
  "type=panel": "auto"
57
57
  },
58
58
  pointerEvents: "none",
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","useModal","useOverlay","usePreventScroll","mergeProps","mergeRefs","useOverlayEscapeGuard","ModalContainmentProvider","useModalContainment","Overlay","ModalProps","TransitionState","WithCloseBehavior","Underlay","Props","OVERLAY_WRAPPER_STYLES","position","display","left","top","placeItems","boxSizing","width","height","pointerEvents","zIndex","transition","open","ModalWrapperElement","qa","styles","ModalElement","hide","exit","unmounted","transform","opacity","CubeModalProps","Omit","container","HTMLElement","onClose","action","type","shouldCloseOnInteractOutside","element","Element","Modal","props","ref","$","_c","children","otherProps","domRef","t0","overlayProps","rawOverlayProps","underlayProps","isOpen","containment","containmentRef","t1","t2","t3","t4","t5","ModalWrapperProps","placement","ModalWrapper","transitionState","isDisabled","modalProps","T0","T1","t6","t7","t8","t9","enter","entered","t10","t11","t12","_Modal","displayName","_c","Underlay","mergeRefs","Overlay","mergeProps"],"sources":["../../../../src/components/overlays/Modal/Modal.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport { useModal, useOverlay, usePreventScroll } from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport {\n ModalContainmentProvider,\n useModalContainment,\n} from './modal-containment';\nimport { Overlay } from './Overlay';\nimport { ModalProps, TransitionState, WithCloseBehavior } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nexport const OVERLAY_WRAPPER_STYLES: Styles = {\n position: 'fixed',\n display: 'grid',\n left: 0,\n top: 0,\n placeItems: {\n '': 'center',\n 'type=fullscreen': 'center',\n 'type=fullscreenTakeover | type=panel': 'stretch',\n },\n boxSizing: 'border-box',\n width: '100vw',\n height: '100dvh',\n pointerEvents: 'none',\n zIndex: 10,\n transition: {\n '': 'visibility .5s steps(2, start)',\n open: 'visibility 0s linear',\n },\n};\n\nconst ModalWrapperElement = tasty({\n qa: 'ModalWrapper',\n styles: OVERLAY_WRAPPER_STYLES,\n});\n\nconst ModalElement = tasty({\n styles: {\n display: 'grid',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: {\n '': 'max 90dvh',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=panel': 'auto',\n },\n width: {\n '': '$min-dialog-size (100dvw - 8x)',\n 'type=panel': 'auto',\n },\n pointerEvents: 'none',\n transition: 'opacity .25s linear, transform .25s ease-in-out',\n transform: {\n '': 'initial',\n 'type=modal & !open': 'translate(0, -3x) scale(1, 1)',\n '(type^=fullscreen | type=panel) & !open':\n 'translate(0, 0) scale(1.02, 1.02)',\n },\n opacity: {\n '': 0,\n open: 0.9999,\n },\n },\n});\n\nexport interface CubeModalProps\n extends\n Omit<ModalProps, 'container' | 'type' | 'nodeRef'>,\n WithCloseBehavior {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel';\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\nfunction Modal(props: CubeModalProps, ref: ForwardedRef<HTMLElement>) {\n let { qa, children, onClose, type, styles, ...otherProps } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props },\n domRef,\n );\n\n // Focus can stay in a modal while it closes, after a press on it or a close\n // that restores focus nowhere; it must not answer for `Escape` meanwhile —\n // see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // A panel leaves the page readable; every other type hides it while open.\n const { containment, ref: containmentRef } = useModalContainment(\n type !== 'panel',\n !!props.isOpen,\n );\n\n return (\n <ModalContainmentProvider value={containment}>\n <Overlay {...otherProps}>\n {type !== 'fullscreenTakeover' && type !== 'panel' && (\n <Underlay {...underlayProps} />\n )}\n <ModalWrapper\n ref={mergeRefs(domRef, containmentRef)}\n qa={qa}\n type={type}\n overlayProps={overlayProps}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </ModalWrapper>\n </Overlay>\n </ModalContainmentProvider>\n );\n}\n\ninterface ModalWrapperProps extends TransitionState {\n children?: ReactNode;\n qa?: BaseProps['qa'];\n isOpen?: boolean;\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel';\n placement?: 'top' | 'bottom';\n styles?: Styles;\n overlayProps?: Props;\n onClose?: () => void;\n}\n\nlet ModalWrapper = forwardRef(function ModalWrapper(\n props: ModalWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n type,\n placement,\n styles,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n\n usePreventScroll({ isDisabled: transitionState !== 'entered' });\n\n let { modalProps } = useModal({ isDisabled: transitionState !== 'entered' });\n\n return (\n <ModalWrapperElement data-type={type} data-placement={placement}>\n <ModalElement\n qa={qa || 'Modal'}\n styles={styles}\n mods={{\n open: isOpen,\n enter: transitionState === 'enter',\n exit: transitionState === 'exit',\n unmounted: transitionState === 'unmounted',\n entered: transitionState === 'entered',\n }}\n data-type={type}\n data-placement={placement}\n {...mergeProps(otherProps, overlayProps, modalProps)}\n ref={ref}\n >\n {children}\n </ModalElement>\n </ModalWrapperElement>\n );\n});\n\nlet _Modal = forwardRef(Modal);\n\n_Modal.displayName = 'Modal';\n\nexport { _Modal as Modal };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","useModal","useOverlay","usePreventScroll","mergeProps","mergeRefs","useOverlayEscapeGuard","ModalContainmentProvider","useModalContainment","Overlay","ModalProps","TransitionState","WithCloseBehavior","Underlay","Props","OVERLAY_WRAPPER_STYLES","position","display","left","top","placeItems","boxSizing","width","height","pointerEvents","zIndex","transition","open","ModalWrapperElement","qa","styles","ModalElement","hide","exit","unmounted","transform","opacity","CubeModalProps","Omit","container","HTMLElement","onClose","action","type","shouldCloseOnInteractOutside","element","Element","Modal","props","ref","$","_c","children","otherProps","domRef","t0","overlayProps","rawOverlayProps","underlayProps","isOpen","containment","containmentRef","t1","t2","t3","t4","t5","ModalWrapperProps","placement","ModalWrapper","transitionState","isDisabled","modalProps","T0","T1","t6","t7","t8","t9","enter","entered","t10","t11","t12","_Modal","displayName","_c","Underlay","mergeRefs","Overlay","mergeProps"],"sources":["../../../../src/components/overlays/Modal/Modal.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport { useModal, useOverlay, usePreventScroll } from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport {\n ModalContainmentProvider,\n useModalContainment,\n} from './modal-containment';\nimport { Overlay } from './Overlay';\nimport { ModalProps, TransitionState, WithCloseBehavior } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nexport const OVERLAY_WRAPPER_STYLES: Styles = {\n position: 'fixed',\n display: 'grid',\n left: 0,\n top: 0,\n placeItems: {\n '': 'center',\n 'type=fullscreen': 'center',\n 'type=fullscreenTakeover | type=panel': 'stretch',\n },\n boxSizing: 'border-box',\n width: '100vw',\n height: '100dvh',\n pointerEvents: 'none',\n zIndex: 10,\n transition: {\n '': 'visibility .5s steps(2, start)',\n open: 'visibility 0s linear',\n },\n};\n\nconst ModalWrapperElement = tasty({\n qa: 'ModalWrapper',\n styles: OVERLAY_WRAPPER_STYLES,\n});\n\nconst ModalElement = tasty({\n styles: {\n display: 'grid',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: {\n '': 'max 90dvh',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=panel': 'auto',\n },\n width: {\n // The dialog limits its own width; a cap here would also clip a width\n // that sets its own max.\n '': '$min-dialog-size 100dvw',\n 'type=panel': 'auto',\n },\n pointerEvents: 'none',\n transition: 'opacity .25s linear, transform .25s ease-in-out',\n transform: {\n '': 'initial',\n 'type=modal & !open': 'translate(0, -3x) scale(1, 1)',\n '(type^=fullscreen | type=panel) & !open':\n 'translate(0, 0) scale(1.02, 1.02)',\n },\n opacity: {\n '': 0,\n open: 0.9999,\n },\n },\n});\n\nexport interface CubeModalProps\n extends\n Omit<ModalProps, 'container' | 'type' | 'nodeRef'>,\n WithCloseBehavior {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel';\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\nfunction Modal(props: CubeModalProps, ref: ForwardedRef<HTMLElement>) {\n let { qa, children, onClose, type, styles, ...otherProps } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props },\n domRef,\n );\n\n // Focus can stay in a modal while it closes, after a press on it or a close\n // that restores focus nowhere; it must not answer for `Escape` meanwhile —\n // see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // A panel leaves the page readable; every other type hides it while open.\n const { containment, ref: containmentRef } = useModalContainment(\n type !== 'panel',\n !!props.isOpen,\n );\n\n return (\n <ModalContainmentProvider value={containment}>\n <Overlay {...otherProps}>\n {type !== 'fullscreenTakeover' && type !== 'panel' && (\n <Underlay {...underlayProps} />\n )}\n <ModalWrapper\n ref={mergeRefs(domRef, containmentRef)}\n qa={qa}\n type={type}\n overlayProps={overlayProps}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </ModalWrapper>\n </Overlay>\n </ModalContainmentProvider>\n );\n}\n\ninterface ModalWrapperProps extends TransitionState {\n children?: ReactNode;\n qa?: BaseProps['qa'];\n isOpen?: boolean;\n type?: 'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel';\n placement?: 'top' | 'bottom';\n styles?: Styles;\n overlayProps?: Props;\n onClose?: () => void;\n}\n\nlet ModalWrapper = forwardRef(function ModalWrapper(\n props: ModalWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n type,\n placement,\n styles,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n\n usePreventScroll({ isDisabled: transitionState !== 'entered' });\n\n let { modalProps } = useModal({ isDisabled: transitionState !== 'entered' });\n\n return (\n <ModalWrapperElement data-type={type} data-placement={placement}>\n <ModalElement\n qa={qa || 'Modal'}\n styles={styles}\n mods={{\n open: isOpen,\n enter: transitionState === 'enter',\n exit: transitionState === 'exit',\n unmounted: transitionState === 'unmounted',\n entered: transitionState === 'entered',\n }}\n data-type={type}\n data-placement={placement}\n {...mergeProps(otherProps, overlayProps, modalProps)}\n ref={ref}\n >\n {children}\n </ModalElement>\n </ModalWrapperElement>\n );\n});\n\nlet _Modal = forwardRef(Modal);\n\n_Modal.displayName = 'Modal';\n\nexport { _Modal as Modal };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  //#region src/components/overlays/Modal/OpenTransitionContext.tsx
4
4
  const OpenTransitionContext = createContext(null);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs as mergeRefs$1 } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useModalLayerRef } from "./modal-containment.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs as mergeRefs$1 } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { ModalContainmentProvider, useModalContainment } from "./modal-containment.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
4
4
  import { ariaHideOutside } from "react-aria/private/overlays/ariaHideOutside";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | 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.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  //#region src/components/overlays/Notifications/NotificationContext.ts
4
4
  const ToastContext = createContext(null);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { NotificationCard } from "./NotificationCard.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useViewportSize } from "../../../utils/react/useViewportSize.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { NotificationContext, PersistentNotificationsContext, ToastContext } from "./NotificationContext.js";
3
3
  import { OverlayContainer } from "./OverlayContainer.js";
4
4
  import { useNotificationState } from "./use-notification-state.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.198.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
2
2
  import { Text as _Text } from "../../content/Text.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";