@cube-dev/ui-kit 0.195.0 → 0.196.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (701) hide show
  1. package/dist/CHANGELOG.md +174 -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.d.ts +6 -0
  16. package/dist/components/Root.js +125 -102
  17. package/dist/components/Root.js.map +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +11 -5
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +9 -4
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +27 -25
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuCollectionItem.js +7 -4
  37. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
  38. package/dist/components/actions/Menu/MenuItem.js +69 -60
  39. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  40. package/dist/components/actions/Menu/MenuSection.js +1 -1
  41. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  43. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  44. package/dist/components/actions/Menu/context.js +1 -1
  45. package/dist/components/actions/Menu/styled.js +1 -4
  46. package/dist/components/actions/Menu/styled.js.map +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +15 -14
  50. package/dist/components/actions/use-action.js.map +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +1 -1
  53. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  54. package/dist/components/content/Alert/Alert.js +1 -1
  55. package/dist/components/content/Alert/use-alert.js +1 -1
  56. package/dist/components/content/Avatar/Avatar.js +1 -1
  57. package/dist/components/content/Badge/Badge.js +1 -1
  58. package/dist/components/content/Card/Card.js +1 -1
  59. package/dist/components/content/Content.js +1 -1
  60. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  61. package/dist/components/content/CopySnippet/CopySnippet.d.ts +8 -8
  62. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  63. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  64. package/dist/components/content/Divider.js +1 -1
  65. package/dist/components/content/Footer.js +1 -1
  66. package/dist/components/content/Header.js +1 -1
  67. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  68. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  69. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  70. package/dist/components/content/Item/Item.js +16 -4
  71. package/dist/components/content/Item/Item.js.map +1 -1
  72. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  73. package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
  74. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  75. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  76. package/dist/components/content/Layout/GridLayout.js +1 -1
  77. package/dist/components/content/Layout/Layout.js +29 -15
  78. package/dist/components/content/Layout/Layout.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  80. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  81. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  82. package/dist/components/content/Layout/LayoutContent.js +1 -1
  83. package/dist/components/content/Layout/LayoutContext.js +20 -10
  84. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  85. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  86. package/dist/components/content/Layout/LayoutFooter.js +12 -9
  87. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  88. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  89. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  90. package/dist/components/content/Layout/LayoutPane.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanel.d.ts +4 -2
  92. package/dist/components/content/Layout/LayoutPanel.js +73 -2
  93. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  94. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  95. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  96. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  97. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  98. package/dist/components/content/Layout/index.js +1 -1
  99. package/dist/components/content/Layout/utils.js +1 -1
  100. package/dist/components/content/Paragraph.js +1 -1
  101. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  102. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  103. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  104. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  105. package/dist/components/content/Result/Result.js +1 -1
  106. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  107. package/dist/components/content/Tag/Tag.js +1 -1
  108. package/dist/components/content/Text.d.ts +14 -14
  109. package/dist/components/content/Text.js +1 -1
  110. package/dist/components/content/TextItem/TextItem.js +1 -1
  111. package/dist/components/content/Title.js +1 -1
  112. package/dist/components/content/Tree/Tree.js +1 -1
  113. package/dist/components/content/Tree/TreeNode.js +2 -1
  114. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  115. package/dist/components/content/Tree/styled.js +1 -1
  116. package/dist/components/content/Tree/tree-index.js +1 -1
  117. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  118. package/dist/components/content/Tree/use-load-data.js +1 -1
  119. package/dist/components/content/highlightText.js +1 -1
  120. package/dist/components/content/use-auto-tooltip.js +3 -3
  121. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  122. package/dist/components/data/DataTable/DataTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  127. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -1
  128. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  129. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  130. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  131. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  132. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  133. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  134. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  135. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  136. package/dist/components/data/TableBase/RowCollection.js +1 -1
  137. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  138. package/dist/components/data/TableBase/TableRow.js +1 -1
  139. package/dist/components/data/TableBase/TableView.js +3 -1
  140. package/dist/components/data/TableBase/TableView.js.map +1 -1
  141. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  142. package/dist/components/data/TableBase/column-header.js +1 -1
  143. package/dist/components/data/TableBase/column-menu.js +1 -1
  144. package/dist/components/data/TableBase/column-styles.js +1 -1
  145. package/dist/components/data/TableBase/column-tint.js +1 -1
  146. package/dist/components/data/TableBase/row-menu.js +1 -1
  147. package/dist/components/data/TableBase/styled.js +1 -1
  148. package/dist/components/data/TableBase/table-tree.js +1 -1
  149. package/dist/components/data/TableBase/types.js +1 -1
  150. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  151. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  152. package/dist/components/data/TableBase/use-column-order.js +1 -1
  153. package/dist/components/data/TableBase/use-column-window.js +1 -1
  154. package/dist/components/data/TableBase/use-container-width.js +1 -1
  155. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  156. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  157. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  158. package/dist/components/data/TableBase/use-table-search.js +1 -1
  159. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  160. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  161. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  162. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  163. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  164. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  165. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  166. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  167. package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
  168. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  169. package/dist/components/fields/Checkbox/context.js +1 -1
  170. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  171. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
  172. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  173. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  174. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -1
  175. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  176. package/dist/components/fields/ComboBox/ComboBox.d.ts +27 -7
  177. package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
  178. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  179. package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
  180. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
  181. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  182. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  183. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  184. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  185. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  189. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  190. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  191. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  192. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  194. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  196. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  197. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  199. package/dist/components/fields/DatePicker/parseDate.d.ts +7 -0
  200. package/dist/components/fields/DatePicker/parseDate.js +17 -3
  201. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  202. package/dist/components/fields/DatePicker/period.js +1 -1
  203. package/dist/components/fields/DatePicker/props.js +1 -1
  204. package/dist/components/fields/DatePicker/utils.js +1 -1
  205. package/dist/components/fields/FileInput/FileInput.js +1 -1
  206. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  207. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  208. package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
  209. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  210. package/dist/components/fields/Input/Input.d.ts +2 -2
  211. package/dist/components/fields/Input/Input.js +2 -2
  212. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  213. package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
  214. package/dist/components/fields/ListBox/ListBox.js +298 -146
  215. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  216. package/dist/components/fields/ListBox/optionId.js +1 -1
  217. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +150 -139
  218. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  219. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  220. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  221. package/dist/components/fields/NumberInput/NumberInput.d.ts +6 -1
  222. package/dist/components/fields/NumberInput/NumberInput.js +136 -128
  223. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  224. package/dist/components/fields/NumberInput/StepButton.js +38 -48
  225. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  226. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
  227. package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
  228. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  229. package/dist/components/fields/Picker/Picker.d.ts +1 -1
  230. package/dist/components/fields/Picker/Picker.js +22 -8
  231. package/dist/components/fields/Picker/Picker.js.map +1 -1
  232. package/dist/components/fields/RadioGroup/Radio.d.ts +12 -12
  233. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  234. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  235. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  236. package/dist/components/fields/RadioGroup/context.js +1 -1
  237. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -6
  238. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  239. package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
  240. package/dist/components/fields/SearchInput/SearchInput.js +22 -34
  241. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  242. package/dist/components/fields/Select/Select.d.ts +12 -1
  243. package/dist/components/fields/Select/Select.js +365 -207
  244. package/dist/components/fields/Select/Select.js.map +1 -1
  245. package/dist/components/fields/Slider/Gradation.js +1 -1
  246. package/dist/components/fields/Slider/HueSlider.js +1 -1
  247. package/dist/components/fields/Slider/RangeSlider.js +3 -4
  248. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  249. package/dist/components/fields/Slider/Slider.js +1 -1
  250. package/dist/components/fields/Slider/SliderBase.js +1 -1
  251. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  252. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  253. package/dist/components/fields/Slider/elements.js +1 -1
  254. package/dist/components/fields/Slider/index.js +1 -1
  255. package/dist/components/fields/Switch/Switch.js +1 -1
  256. package/dist/components/fields/TagInput/TagInput.js +2 -2
  257. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  258. package/dist/components/fields/TagInput/TagList.js +1 -1
  259. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  260. package/dist/components/fields/TagInput/useTagError.js +1 -1
  261. package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
  262. package/dist/components/fields/TextArea/TextArea.js +49 -63
  263. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  264. package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
  265. package/dist/components/fields/TextInput/TextInput.js +42 -46
  266. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  267. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
  268. package/dist/components/fields/TextInput/TextInputBase.js +32 -10
  269. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  270. package/dist/components/fields/TextInput/displayed-validation.js +50 -0
  271. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
  272. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js +20 -17
  274. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  275. package/dist/components/fields/TriggerActions.js +1 -1
  276. package/dist/components/fields/color/ColorPanel.js +3 -1
  277. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  278. package/dist/components/fields/color/channels.js +1 -1
  279. package/dist/components/fields/color/color.js +1 -1
  280. package/dist/components/fields/color/context.js +1 -1
  281. package/dist/components/fields/index.d.ts +2 -2
  282. package/dist/components/fields/option-origin-press.js +78 -0
  283. package/dist/components/fields/option-origin-press.js.map +1 -0
  284. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
  285. package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -159
  286. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  287. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  288. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  289. package/dist/components/form/FieldWrapper/types.d.ts +4 -3
  290. package/dist/components/form/Form/Field.js +1 -1
  291. package/dist/components/form/Form/Form.js +1 -1
  292. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  293. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  294. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  295. package/dist/components/form/Form/SubmitError.js +1 -1
  296. package/dist/components/form/Form/backend.js +1 -1
  297. package/dist/components/form/Form/index.js +1 -1
  298. package/dist/components/form/Form/modern/actions.js +1 -1
  299. package/dist/components/form/Form/modern/context.js +1 -1
  300. package/dist/components/form/Form/modern/controller.js +1 -1
  301. package/dist/components/form/Form/modern/field-binding.js +1 -1
  302. package/dist/components/form/Form/modern/field.js +1 -1
  303. package/dist/components/form/Form/modern/react.js +1 -1
  304. package/dist/components/form/Form/modern/store.js +1 -1
  305. package/dist/components/form/Form/modern/validation.js +1 -1
  306. package/dist/components/form/Form/modern/values.js +1 -1
  307. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  308. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  309. package/dist/components/form/Form/use-field/use-field-props.js +21 -33
  310. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  311. package/dist/components/form/Form/use-field/use-field.js +1 -1
  312. package/dist/components/form/Form/use-form.js +1 -1
  313. package/dist/components/form/Form/validation.js +1 -1
  314. package/dist/components/form/Label.js +1 -1
  315. package/dist/components/form/field-chrome.js +4 -34
  316. package/dist/components/form/field-chrome.js.map +1 -1
  317. package/dist/components/form/legacy-tooltip.js +1 -1
  318. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  319. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  320. package/dist/components/form/validation/use-validation-props.js +1 -1
  321. package/dist/components/form/wrapper.d.ts +6 -17
  322. package/dist/components/form/wrapper.js +6 -14
  323. package/dist/components/form/wrapper.js.map +1 -1
  324. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  325. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  326. package/dist/components/layout/Flex.js +1 -1
  327. package/dist/components/layout/Flow.js +1 -1
  328. package/dist/components/layout/Grid.js +1 -1
  329. package/dist/components/layout/Panel.js +1 -1
  330. package/dist/components/layout/Prefix.js +1 -1
  331. package/dist/components/layout/ResizablePanel.js +1 -1
  332. package/dist/components/layout/Space.js +1 -1
  333. package/dist/components/layout/Suffix.js +1 -1
  334. package/dist/components/navigation/Pagination/Pagination.js +3 -1
  335. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  336. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  337. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  338. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  339. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  340. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  341. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  342. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  343. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  344. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  345. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  346. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  347. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  348. package/dist/components/navigation/Tabs/styled.js +1 -1
  349. package/dist/components/navigation/Tabs/types.js +1 -1
  350. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  351. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  352. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  353. package/dist/components/other/Calendar/Calendar.js +1 -1
  354. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  355. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  356. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  357. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  358. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  359. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  360. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  361. package/dist/components/other/Calendar/styled.js +1 -1
  362. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  363. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  364. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +6 -1
  365. package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
  366. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  367. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
  368. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  369. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  370. package/dist/components/overlays/Dialog/Dialog.js +28 -14
  371. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  372. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  373. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  374. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +7 -3
  375. package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
  376. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  377. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  378. package/dist/components/overlays/Dialog/context.js +1 -1
  379. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  380. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  381. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  382. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
  383. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
  384. package/dist/components/overlays/Modal/Modal.js +1 -1
  385. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  386. package/dist/components/overlays/Modal/Overlay.js +9 -3
  387. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  388. package/dist/components/overlays/Modal/Popover.js +31 -29
  389. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  390. package/dist/components/overlays/Modal/Tray.js +2 -1
  391. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  392. package/dist/components/overlays/Modal/Underlay.js +1 -1
  393. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  394. package/dist/components/overlays/Notifications/Notification.js +1 -1
  395. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  396. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  397. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  398. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  399. package/dist/components/overlays/Notifications/OverlayContainer.js +18 -32
  400. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  401. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  402. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  403. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  404. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  405. package/dist/components/overlays/Notifications/index.js +1 -1
  406. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  407. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  408. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  409. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  410. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  411. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  412. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  413. package/dist/components/overlays/Toast/index.js +1 -1
  414. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  415. package/dist/components/overlays/Toast/useToast.js +1 -1
  416. package/dist/components/overlays/Tooltip/Tooltip.d.ts +8 -0
  417. package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
  418. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  419. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  420. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
  421. package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
  422. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  423. package/dist/components/overlays/Tooltip/context.js +1 -1
  424. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  425. package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
  426. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  427. package/dist/components/portal/Portal.js +1 -1
  428. package/dist/components/portal/PortalProvider.js +1 -1
  429. package/dist/components/portal/usePortal.js +1 -1
  430. package/dist/components/shared/DraggableCollection.js +1 -1
  431. package/dist/components/shared/InvalidIcon.js +1 -1
  432. package/dist/components/shared/ValidIcon.js +1 -1
  433. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  434. package/dist/components/status/Spin/Cube.js +1 -1
  435. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  436. package/dist/components/status/Spin/Spin.js +1 -1
  437. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  438. package/dist/data/item-themes.js +1 -1
  439. package/dist/data/themes.js +1 -1
  440. package/dist/eslint-plugin/defaults.generated.js +11 -17
  441. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  442. package/dist/eslint-plugin/index.js +1 -1
  443. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  444. package/dist/i18n/I18nProvider.js +1 -1
  445. package/dist/i18n/createFormatter.js +1 -1
  446. package/dist/i18n/index.js +1 -1
  447. package/dist/i18n/instance.js +1 -1
  448. package/dist/i18n/locales/de-DE/uikit.js +6 -4
  449. package/dist/i18n/locales/en-US/uikit.js +6 -4
  450. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
  451. package/dist/i18n/locales/es-ES/uikit.js +6 -4
  452. package/dist/i18n/locales/es-MX/uikit.js +6 -4
  453. package/dist/i18n/locales/fr-FR/uikit.js +6 -4
  454. package/dist/i18n/locales/it-IT/uikit.js +6 -4
  455. package/dist/i18n/locales/ja-JP/uikit.js +6 -4
  456. package/dist/i18n/locales/nb-NO/uikit.js +6 -4
  457. package/dist/i18n/locales/pt-BR/uikit.js +6 -4
  458. package/dist/i18n/locales/pt-PT/uikit.js +6 -4
  459. package/dist/i18n/locales/sv-SE/uikit.js +6 -4
  460. package/dist/i18n/locales/vi-VN/uikit.js +6 -4
  461. package/dist/i18n/locales.js +1 -1
  462. package/dist/i18n/namespace.js +1 -1
  463. package/dist/i18n/useFormatter.js +1 -1
  464. package/dist/i18n/useI18n.js +1 -1
  465. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  466. package/dist/icons/AdjustmentsIcon.js +1 -1
  467. package/dist/icons/AiIcon.js +1 -1
  468. package/dist/icons/AreaChartIcon.js +1 -1
  469. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  470. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  471. package/dist/icons/BackwardIcon.js +1 -1
  472. package/dist/icons/BarChartIcon.js +1 -1
  473. package/dist/icons/BellFilledIcon.js +1 -1
  474. package/dist/icons/BellIcon.js +1 -1
  475. package/dist/icons/BooleanIcon.js +1 -1
  476. package/dist/icons/CalendarEditIcon.js +1 -1
  477. package/dist/icons/CalendarIcon.js +1 -1
  478. package/dist/icons/CaretDownIcon.js +1 -1
  479. package/dist/icons/CaretUpIcon.js +1 -1
  480. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  481. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  482. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  483. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  484. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  485. package/dist/icons/ChartBarLineIcon.js +1 -1
  486. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  487. package/dist/icons/ChartBarStackedIcon.js +1 -1
  488. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  489. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  490. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  491. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  492. package/dist/icons/ChartBubbleIcon.js +1 -1
  493. package/dist/icons/ChartDonut2Icon.js +1 -1
  494. package/dist/icons/ChartFunnelIcon.js +1 -1
  495. package/dist/icons/ChartHeatmapIcon.js +1 -1
  496. package/dist/icons/ChartKPIIcon.js +1 -1
  497. package/dist/icons/ChartPie2Icon.js +1 -1
  498. package/dist/icons/ChartScatterIcon.js +1 -1
  499. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  500. package/dist/icons/CheckCircleIcon.js +1 -1
  501. package/dist/icons/CheckIcon.js +1 -1
  502. package/dist/icons/CircleFilledIcon.js +1 -1
  503. package/dist/icons/ClearIcon.js +1 -1
  504. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  505. package/dist/icons/CloseCircleIcon.js +1 -1
  506. package/dist/icons/CloseIcon.js +1 -1
  507. package/dist/icons/CodeIcon.js +1 -1
  508. package/dist/icons/ColumnTotalIcon.js +1 -1
  509. package/dist/icons/CopyIcon.js +1 -1
  510. package/dist/icons/CountIcon.js +1 -1
  511. package/dist/icons/CubeIcon.js +1 -1
  512. package/dist/icons/CubePauseIcon.js +1 -1
  513. package/dist/icons/CubePlayIcon.js +1 -1
  514. package/dist/icons/CurrencyDollarIcon.js +1 -1
  515. package/dist/icons/DangerIcon.js +1 -1
  516. package/dist/icons/DashboardIcon.js +1 -1
  517. package/dist/icons/DatabaseIcon.js +1 -1
  518. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  519. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  520. package/dist/icons/DirectionIcon.js +1 -1
  521. package/dist/icons/DonutIcon.js +1 -1
  522. package/dist/icons/DownIcon.js +1 -1
  523. package/dist/icons/EditIcon.js +1 -1
  524. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  525. package/dist/icons/ExclamationCircleIcon.js +1 -1
  526. package/dist/icons/ExclamationIcon.js +1 -1
  527. package/dist/icons/EyeIcon.js +1 -1
  528. package/dist/icons/EyeInvisibleIcon.js +1 -1
  529. package/dist/icons/FilterIcon.js +1 -1
  530. package/dist/icons/FolderFilledIcon.js +1 -1
  531. package/dist/icons/FolderIcon.js +1 -1
  532. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  533. package/dist/icons/FolderOpenIcon.js +1 -1
  534. package/dist/icons/ForwardIcon.js +1 -1
  535. package/dist/icons/GripVerticalIcon.js +1 -1
  536. package/dist/icons/HierarchyIcon.js +1 -1
  537. package/dist/icons/HierarchyOpenIcon.js +1 -1
  538. package/dist/icons/Icon.js +1 -1
  539. package/dist/icons/InfoCircleIcon.js +1 -1
  540. package/dist/icons/InfoIcon.js +1 -1
  541. package/dist/icons/KeyIcon.js +1 -1
  542. package/dist/icons/LeftIcon.js +1 -1
  543. package/dist/icons/LineChartIcon.js +1 -1
  544. package/dist/icons/LoadingIcon.js +1 -1
  545. package/dist/icons/LockFilledIcon.js +1 -1
  546. package/dist/icons/LockIcon.js +1 -1
  547. package/dist/icons/MoreIcon.js +1 -1
  548. package/dist/icons/NotAllowedIcon.js +1 -1
  549. package/dist/icons/Number123Icon.js +1 -1
  550. package/dist/icons/NumberIcon.js +1 -1
  551. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  552. package/dist/icons/PauseCircleIcon.js +1 -1
  553. package/dist/icons/PauseIcon.js +1 -1
  554. package/dist/icons/PercentageIcon.js +1 -1
  555. package/dist/icons/PieChartIcon.js +1 -1
  556. package/dist/icons/PipetteIcon.js +1 -1
  557. package/dist/icons/PlayCircleIcon.js +1 -1
  558. package/dist/icons/PlayIcon.js +1 -1
  559. package/dist/icons/PlusIcon.js +1 -1
  560. package/dist/icons/ProgressBarIcon.js +1 -1
  561. package/dist/icons/ReloadIcon.js +1 -1
  562. package/dist/icons/ReportIcon.js +1 -1
  563. package/dist/icons/ReturnIcon.js +1 -1
  564. package/dist/icons/RightIcon.js +1 -1
  565. package/dist/icons/RowTotalsIcon.js +1 -1
  566. package/dist/icons/SchemeIcon.js +1 -1
  567. package/dist/icons/SearchIcon.js +1 -1
  568. package/dist/icons/SemanticQueryIcon.js +1 -1
  569. package/dist/icons/SettingsIcon.js +1 -1
  570. package/dist/icons/ShieldFilledIcon.js +1 -1
  571. package/dist/icons/ShieldIcon.js +1 -1
  572. package/dist/icons/SlashIcon.js +1 -1
  573. package/dist/icons/SparklesIcon.js +1 -1
  574. package/dist/icons/SqlIcon.js +1 -1
  575. package/dist/icons/StatsIcon.js +1 -1
  576. package/dist/icons/StopIcon.js +1 -1
  577. package/dist/icons/StringIcon.js +1 -1
  578. package/dist/icons/SubtotalsIcon.js +1 -1
  579. package/dist/icons/SwitchIcon.js +1 -1
  580. package/dist/icons/TableIcon.js +1 -1
  581. package/dist/icons/ThumbsDownIcon.js +1 -1
  582. package/dist/icons/ThumbsUpIcon.js +1 -1
  583. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  584. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  585. package/dist/icons/ThunderboltIcon.js +1 -1
  586. package/dist/icons/TimeIcon.js +1 -1
  587. package/dist/icons/TrashIcon.js +1 -1
  588. package/dist/icons/UnlockIcon.js +1 -1
  589. package/dist/icons/UpIcon.js +1 -1
  590. package/dist/icons/UserGroupIcon.js +1 -1
  591. package/dist/icons/UserIcon.js +1 -1
  592. package/dist/icons/UserLockIcon.js +1 -1
  593. package/dist/icons/ViewIcon.js +1 -1
  594. package/dist/icons/WarningFilledIcon.js +1 -1
  595. package/dist/icons/WarningIcon.js +1 -1
  596. package/dist/icons/wrap-icon.js +1 -1
  597. package/dist/index.d.ts +1 -1
  598. package/dist/index.js +2 -2
  599. package/dist/probe/canonicalize.js +1 -1
  600. package/dist/probe/css.js +1 -1
  601. package/dist/probe/index.js +1 -1
  602. package/dist/provider.js +1 -1
  603. package/dist/providers/TrackingProvider.js +1 -1
  604. package/dist/providers/navigation-url.js +15 -3
  605. package/dist/providers/navigation-url.js.map +1 -1
  606. package/dist/providers/navigationAdapter.default.js +1 -1
  607. package/dist/providers/use-navigation.js +1 -1
  608. package/dist/shared/form.d.ts +11 -12
  609. package/dist/tokens/all-tokens.js +1 -1
  610. package/dist/tokens/base.js +1 -1
  611. package/dist/tokens/color-seed.js +1 -1
  612. package/dist/tokens/color-theme.js +1 -1
  613. package/dist/tokens/colors.js +1 -1
  614. package/dist/tokens/layout.js +1 -1
  615. package/dist/tokens/lazy-styles.js +1 -1
  616. package/dist/tokens/legacy-color.js +1 -1
  617. package/dist/tokens/palette-config.js +1 -1
  618. package/dist/tokens/palette.js +1 -1
  619. package/dist/tokens/resolve.js +1 -1
  620. package/dist/tokens/shadows.js +1 -1
  621. package/dist/tokens/sizes.js +1 -1
  622. package/dist/tokens/spacing.js +1 -1
  623. package/dist/tokens/typography.js +1 -1
  624. package/dist/utils/ResizeSensor.js +1 -1
  625. package/dist/utils/colors.js +1 -1
  626. package/dist/utils/dotize.js +1 -1
  627. package/dist/utils/is-dev-env.js +1 -1
  628. package/dist/utils/modules.js +1 -1
  629. package/dist/utils/promise.js +1 -1
  630. package/dist/utils/raf.js +1 -1
  631. package/dist/utils/random.js +1 -1
  632. package/dist/utils/range.js +1 -1
  633. package/dist/utils/react/RenderCache.js +1 -1
  634. package/dist/utils/react/Slots.js +1 -1
  635. package/dist/utils/react/chain.js +1 -1
  636. package/dist/utils/react/disabledProps.js +1 -1
  637. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  638. package/dist/utils/react/index.js +1 -1
  639. package/dist/utils/react/interactions.js +1 -1
  640. package/dist/utils/react/isTextOnly.js +1 -1
  641. package/dist/utils/react/mapProps.js +1 -1
  642. package/dist/utils/react/mergeProps.js +1 -1
  643. package/dist/utils/react/nullableValue.js +18 -9
  644. package/dist/utils/react/nullableValue.js.map +1 -1
  645. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  646. package/dist/utils/react/programmaticFocus.js +1 -1
  647. package/dist/utils/react/resolveIcon.js +1 -1
  648. package/dist/utils/react/sharedStore.js +1 -1
  649. package/dist/utils/react/useBufferedValue.js +1 -1
  650. package/dist/utils/react/useCombinedRefs.js +1 -1
  651. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  652. package/dist/utils/react/useEventBus.js +1 -1
  653. package/dist/utils/react/useId.js +1 -1
  654. package/dist/utils/react/useIsDarwin.js +1 -1
  655. package/dist/utils/react/useKeySymbols.js +1 -1
  656. package/dist/utils/react/useLayoutEffect.js +1 -1
  657. package/dist/utils/react/useLocalStorage.js +1 -1
  658. package/dist/utils/react/useMergeStyles.js +1 -1
  659. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  660. package/dist/utils/react/usePopoverSync.js +1 -1
  661. package/dist/utils/react/useQaProps.js +1 -1
  662. package/dist/utils/react/useScheme.js +1 -1
  663. package/dist/utils/react/useViewportSize.js +1 -1
  664. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  665. package/dist/utils/selection.js +1 -1
  666. package/dist/utils/styles.js +1 -1
  667. package/dist/utils/tree.js +1 -1
  668. package/dist/utils/warnings.js +1 -1
  669. package/dist/version.js +2 -2
  670. package/docs/ComplexLayout.md +1 -1
  671. package/docs/CreateComponent.md +2 -0
  672. package/docs/FieldProperties.md +31 -6
  673. package/docs/Theming.md +2 -1
  674. package/docs/Usage.md +2 -0
  675. package/docs/components/Root.md +1 -1
  676. package/docs/components/actions/Button.md +8 -2
  677. package/docs/components/actions/ButtonSplit.md +27 -1
  678. package/docs/components/actions/Link.md +1 -1
  679. package/docs/components/actions/Menu.md +4 -2
  680. package/docs/components/content/InfoBadge.md +2 -0
  681. package/docs/components/content/ItemBadge.md +4 -0
  682. package/docs/components/content/Layout.md +10 -5
  683. package/docs/components/fields/ComboBox.md +30 -19
  684. package/docs/components/fields/FilterListBox.md +2 -2
  685. package/docs/components/fields/FilterPicker.md +2 -2
  686. package/docs/components/fields/ListBox.md +14 -10
  687. package/docs/components/fields/NumberInput.md +20 -11
  688. package/docs/components/fields/PasswordInput.md +6 -7
  689. package/docs/components/fields/Picker.md +6 -5
  690. package/docs/components/fields/RadioGroup.md +1 -1
  691. package/docs/components/fields/SearchInput.md +7 -6
  692. package/docs/components/fields/Select.md +14 -8
  693. package/docs/components/fields/TagInput.md +8 -1
  694. package/docs/components/fields/TextArea.md +4 -3
  695. package/docs/components/fields/TextInput.md +13 -6
  696. package/docs/components/overlays/AlertDialog.md +7 -1
  697. package/docs/components/overlays/Dialog.md +5 -5
  698. package/docs/components/overlays/DialogTrigger.md +6 -6
  699. package/docs/components/overlays/Tooltip.md +17 -6
  700. package/docs/components/overlays/TooltipTrigger.md +2 -0
  701. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DialogTrigger.js","names":["PressResponder","useMediaQuery","Styles","Fragment","ReactElement","RefObject","useEffect","useMemo","useRef","OverlayTriggerProps","Placement","PositionProps","useOverlayPosition","useOverlayTrigger","OverlayTriggerState","useOverlayTriggerState","useEvent","generateRandomId","useCombinedRefs","useLayoutEffect","usePopoverSync","isOwnActionsPress","Modal","Popover","Tray","WithCloseBehavior","DialogContext","CubeDialogClose","close","CubeDialogTriggerProps","Omit","children","state","type","mobileType","placement","hideArrow","targetRef","HTMLElement","isDismissable","isKeyboardDismissDisabled","mobileViewport","styles","shouldCloseOnInteractOutside","element","Element","onDismiss","action","isOpen","onOpenChange","defaultOpen","shouldFlip","shouldUpdatePosition","containerPadding","shouldRestoreFocus","DialogTrigger","props","hideOnClose","positionProps","Array","isArray","length","Error","trigger","content","isMobile","wasOpen","isExiting","onExiting","current","onExited","dialogSyncId","syncTriggerRef","syncOverlayRef","isPopoverFlavored","menuId","onClose","triggerRef","containerRef","dismissOnInnerButtonPress","closeOnPeerOpen","console","warn","fromAction","renderOverlay","PopoverTrigger","allProps","$","_c","keepOpenOnScroll","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","triggerType","t14","overlayRef","offset","crossOffset","overlayProps","popoverProps","arrowProps","updatePosition","overlayTriggerState","Symbol","for","triggerProps","undefined","ref","triggerPropsWithRef","el","ownTrigger","popoverTriggerEl","closest","setTimeout","contains","resolveShouldCloseOnInteractOutside","style","overlay","DialogTriggerBase","wasOpenRef","dialogProps","context","hasFocusMovedOutsideDialog","activeElement","document","body","isConnected","focus","triggerExtraProps","toggle"],"sources":["../../../../src/components/overlays/Dialog/DialogTrigger.tsx"],"sourcesContent":["import { PressResponder } from '@react-aria/interactions';\nimport { useMediaQuery } from '@react-spectrum/utils';\nimport { Styles } from '@tenphi/tasty';\nimport {\n Fragment,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n OverlayTriggerProps,\n Placement,\n PositionProps,\n useOverlayPosition,\n useOverlayTrigger,\n} from 'react-aria';\nimport { OverlayTriggerState, useOverlayTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { useCombinedRefs, useLayoutEffect } from '../../../utils/react/index';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { isOwnActionsPress } from '../../actions/actions-run';\nimport { Modal, Popover, Tray, WithCloseBehavior } from '../Modal';\n\nimport { DialogContext } from './context';\n\nexport type CubeDialogClose = (close: () => void) => ReactElement;\n\nexport interface CubeDialogTriggerProps\n extends Omit<OverlayTriggerProps, 'type'>,\n PositionProps,\n WithCloseBehavior {\n /** The Dialog and its trigger element. See the DialogTrigger [Content section](#content) for more information on what to provide as children. */\n children: [\n ReactElement | ((state: OverlayTriggerState) => ReactElement),\n CubeDialogClose | ReactElement,\n ];\n /**\n * The type of Dialog that should be rendered. See the DialogTrigger [types section](#dialog-types) for an explanation on each.\n * @default 'modal'\n */\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n /** The type of Dialog rendered on mobile, defaulting to `type`. See DialogTrigger [types section](#dialog-types) for an explanation on each. */\n mobileType?:\n | 'modal'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel'\n | 'popover';\n placement?: Placement;\n /**\n * Whether a popover type Dialog's arrow should be hidden.\n */\n hideArrow?: boolean;\n /** The ref of the element the Dialog should visually attach itself to. Defaults to the trigger button if not defined. */\n targetRef?: RefObject<HTMLElement | null>;\n /** Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions can still close it. */\n isDismissable?: boolean;\n /** Whether pressing the escape key to close the dialog should be disabled. */\n isKeyboardDismissDisabled?: boolean;\n /** The screen breakpoint for the mobile type */\n mobileViewport?: number;\n /** The style map for the overlay **/\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n onDismiss?: (action?: string) => void;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n shouldUpdatePosition?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n /**\n * Whether focus returns to the trigger when the dialog closes. Defaults to\n * `true`.\n *\n * The restore is skipped automatically whenever the action that closed the\n * dialog has already moved focus somewhere else, so an action that opens a\n * panel/dialog/inline editor and focuses it needs nothing here. Pass `false`\n * for the remaining case: a surface that claims focus *later* than the\n * dialog's own restore (after an async load, an entry animation, or a\n * `requestAnimationFrame`), where the trigger would otherwise take focus\n * first and produce a visible flash.\n */\n shouldRestoreFocus?: boolean;\n}\n\n/**\n * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's\n * open state with the trigger's press state. Additionally, it allows you to customize the type and\n * positioning of the Dialog.\n */\nexport function DialogTrigger(props: CubeDialogTriggerProps) {\n let {\n children,\n type = 'modal',\n mobileType = type,\n hideArrow,\n targetRef,\n onDismiss,\n isDismissable = true,\n isKeyboardDismissDisabled,\n styles,\n mobileViewport = 700,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus = true,\n ...positionProps\n } = props;\n\n if (!Array.isArray(children) || children.length > 2) {\n throw new Error('DialogTrigger must have exactly 2 children');\n }\n // if a function is passed as the second child, it won't appear in toArray\n let [trigger, content] = children;\n\n // Apply the mobile type at the configured breakpoint.\n let isMobile = useMediaQuery(`(max-width: ${mobileViewport}px)`);\n if (isMobile) {\n // handle cases where desktop popovers need a close button for the mobile modal view\n if (type !== 'modal' && mobileType === 'modal') {\n isDismissable = true;\n }\n\n type = mobileType;\n }\n\n let state = useOverlayTriggerState(props);\n\n if (typeof trigger === 'function') {\n trigger = trigger(state);\n }\n\n let wasOpen = useRef(false);\n let isExiting = useRef(false);\n let onExiting = () => (isExiting.current = true);\n let onExited = () => (isExiting.current = false);\n\n wasOpen.current = state.isOpen;\n\n // Shared identity + refs for `usePopoverSync`. Allocating here (rather than\n // inside the branch-specific sub-trees) keeps a single sync registration for\n // the lifetime of the trigger, even when `type` flips between popover and\n // modal at the mobile breakpoint. The refs are then threaded into the\n // appropriate branch so existing positioning / useOverlayTrigger hooks keep\n // their original ref targets and `usePopoverSync`'s `contains()` check has a\n // real DOM node to query.\n const dialogSyncId = useMemo(() => generateRandomId(), []);\n const syncTriggerRef = useRef<HTMLElement | null>(null);\n const syncOverlayRef = useRef<HTMLElement | null>(null);\n\n // Only popover-type Dialogs participate in the \"press inside dismisses\n // me\" / \"peer popover opening dismisses me\" behaviours: modals, trays,\n // fullscreen and panel Dialogs are persistent workspaces and must not be\n // yanked closed via the EventBus (which would bypass `isDismissable` and\n // call `state.close()` directly). Non-popover types DO still EMIT\n // `popover:open`, so opening a modal correctly dismisses peer popovers.\n const isPopoverFlavored = type === 'popover';\n usePopoverSync({\n menuId: dialogSyncId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: syncTriggerRef,\n containerRef: syncOverlayRef,\n dismissOnInnerButtonPress: isPopoverFlavored,\n closeOnPeerOpen: isPopoverFlavored,\n });\n\n useEffect(() => {\n return () => {\n if (\n (wasOpen.current || isExiting.current) &&\n type !== 'popover' &&\n type !== 'tray'\n ) {\n console.warn(\n 'CubeUIKit: A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.',\n );\n }\n };\n }, []);\n\n function onClose(action, fromAction = false) {\n if (isDismissable || fromAction) {\n onDismiss && onDismiss(action);\n state.close();\n }\n }\n\n if (type === 'popover') {\n return (\n <PopoverTrigger\n {...positionProps}\n hideOnClose={hideOnClose}\n state={state}\n styles={styles}\n targetRef={targetRef}\n trigger={trigger}\n content={content}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n shouldRestoreFocus={shouldRestoreFocus}\n syncTriggerRef={syncTriggerRef}\n syncOverlayRef={syncOverlayRef}\n triggerType={type}\n onClose={onClose}\n />\n );\n }\n\n let renderOverlay = () => {\n switch (type) {\n case 'panel':\n case 'fullscreen':\n case 'fullscreenTakeover':\n case 'modal':\n return (\n <Modal\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isDismissable={isDismissable}\n type={type}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={onClose}\n onExiting={onExiting}\n onExited={onExited}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Modal>\n );\n case 'tray':\n return (\n <Tray\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Tray>\n );\n }\n };\n\n return (\n <DialogTriggerBase\n type={type}\n state={state}\n isDismissable={isDismissable}\n trigger={trigger}\n overlay={renderOverlay()}\n hideOnClose={hideOnClose}\n syncTriggerRef={syncTriggerRef}\n overlayRef={syncOverlayRef}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction PopoverTrigger(allProps) {\n let {\n state,\n styles,\n targetRef,\n trigger,\n content,\n hideArrow,\n onClose,\n isKeyboardDismissDisabled,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus,\n keepOpenOnScroll,\n syncTriggerRef,\n syncOverlayRef,\n triggerType,\n ...props\n } = allProps;\n\n let triggerRef = useRef<HTMLButtonElement>(null);\n let overlayRef = useRef<HTMLDivElement>(null);\n\n // Mirror the trigger/overlay DOM nodes into the parent-owned sync refs.\n //\n // We deliberately do NOT use `useCombinedRefs` here: that hook returns a\n // brand new internal ref and propagates to the passed refs via a regular\n // `useEffect` (post-commit). `useOverlayPosition` below reads\n // `triggerRef.current` in its own layout effect during the SAME commit, so\n // if `triggerRef` only receives the DOM node via a delayed effect, the\n // first measurement sees `null` and the popover positions at the document\n // origin until something forces a re-measure.\n //\n // Keeping `triggerRef`/`overlayRef` as the direct React refs preserves\n // synchronous assignment for `useOverlayPosition`. The sync refs are only\n // ever read inside `popover:open` handlers, which fire via setTimeout(0),\n // so a layout-effect mirror is more than fast enough.\n useLayoutEffect(() => {\n if (syncTriggerRef) {\n syncTriggerRef.current = targetRef?.current ?? triggerRef.current ?? null;\n }\n if (syncOverlayRef) {\n syncOverlayRef.current = overlayRef.current ?? null;\n }\n });\n\n let {\n overlayProps: popoverProps,\n placement,\n arrowProps,\n updatePosition,\n } = useOverlayPosition({\n targetRef: targetRef || triggerRef,\n overlayRef: overlayRef,\n placement: props.placement,\n containerPadding: props.containerPadding,\n offset: props.offset || 8,\n crossOffset: props.crossOffset,\n shouldFlip: props.shouldFlip,\n shouldUpdatePosition: props.shouldUpdatePosition,\n isOpen: state.isOpen,\n });\n\n let overlayTriggerState = state;\n\n if (keepOpenOnScroll) {\n overlayTriggerState = { ...state, close: updatePosition };\n }\n\n let { triggerProps, overlayProps } = useOverlayTrigger(\n { type: 'dialog' },\n overlayTriggerState,\n triggerRef,\n );\n\n let triggerPropsWithRef = {\n ...triggerProps,\n ref: targetRef ? undefined : triggerRef,\n };\n\n // Mirror the Select/ComboBox/MenuTrigger pattern: when an outside click lands\n // on ANOTHER popover trigger, return `false` so react-aria's `useOverlay`\n // does NOT `stopPropagation()` the click. The click then reaches that trigger,\n // its popover opens, and `usePopoverSync` closes this one via the EventBus.\n // Without this, react-aria swallows every outside click and a single click on\n // a sibling trigger can't open it while this popover is open.\n const resolveShouldCloseOnInteractOutside = useEvent(\n (el: Element): boolean => {\n // The caller's own predicate is asked FIRST, so an explicit \"keep me open\n // for this element\" wins over every automatic behaviour below (CUB-4113).\n // It used to be consulted last, which made the prop inert for every\n // `Button` / `ItemButton`: those carry `data-popover-dismiss`, so the\n // auto-dismiss branch matched and closed the popover before the predicate\n // was ever asked.\n //\n // Asked before every lookup below, not just inside the \"outside any\n // trigger\" branch: a trigger can own interactive controls of its own, and\n // those used to be decided without the predicate ever being asked.\n //\n // React Aria hands over the element the pointer landed on — for a\n // `Button` that is the label inside it, not the `<button>` — so a\n // predicate that guards an element has to use `contains()` rather than an\n // identity check.\n if (shouldCloseOnInteractOutside && !shouldCloseOnInteractOutside(el)) {\n return false;\n }\n\n const ownTrigger = targetRef?.current ?? triggerRef.current;\n\n // A press on our OWN trigger's actions run — an `ItemButton` row's\n // `actions`, a picker's clear button — is not a press outside. The run is\n // rendered as a sibling of the trigger (see `ItemActionsWrapper`), so the\n // `contains` checks below cannot recognise it and we dismissed instead,\n // which cost the action its press: the first press on `Reset` while the\n // popover was open only closed the popover and never ran.\n if (isOwnActionsPress(el, ownTrigger)) return false;\n\n const popoverTriggerEl = el.closest('[data-popover-trigger]');\n if (!popoverTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss`. Schedule the close after the click finishes so\n // the control's `onPress` runs first instead of losing the click to\n // useOverlay's stopPropagation.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return true;\n }\n // Clicking our own trigger again should dismiss us.\n if (popoverTriggerEl === ownTrigger || ownTrigger?.contains(el))\n return true;\n // Another popover's trigger: let the click through so it can open.\n return false;\n },\n );\n\n let overlay = (\n <Popover\n ref={overlayRef}\n styles={styles}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n style={popoverProps.style}\n placement={placement ?? undefined}\n arrowProps={arrowProps}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={resolveShouldCloseOnInteractOutside}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Popover>\n );\n\n return (\n <DialogTriggerBase\n type=\"popover\"\n state={state}\n triggerProps={triggerPropsWithRef}\n dialogProps={overlayProps}\n trigger={trigger}\n overlay={overlay}\n overlayRef={overlayRef}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction DialogTriggerBase(props: any) {\n const ref = useCombinedRefs<HTMLElement>(props.ref);\n const wasOpenRef = useRef(false);\n const overlayRef: RefObject<HTMLElement | null> | undefined =\n props.overlayRef;\n\n // Mirror the press-responder DOM node into the parent's sync trigger ref.\n // Done via `useLayoutEffect` rather than threading through `useCombinedRefs`\n // for consistency with `PopoverTrigger` (see comment there) — keeps the\n // sync-ref population deterministic regardless of branch.\n useLayoutEffect(() => {\n if (props.syncTriggerRef) {\n props.syncTriggerRef.current = ref.current ?? null;\n }\n });\n\n let {\n type,\n state,\n onClose,\n isDismissable,\n dialogProps = {},\n triggerProps = {},\n overlay,\n trigger,\n shouldRestoreFocus = true,\n } = props;\n\n let context = {\n type,\n // Explicit dialog actions can close even when passive dismissal is disabled.\n onClose: (action?: string) => onClose?.(action, true),\n isDismissable,\n isOpen: state.isOpen,\n // Reaches `Dialog`'s `FocusScope`, which owns the restore for\n // popover-type dialogs. `useDialog` filters it out of the DOM props.\n shouldRestoreFocus,\n ...dialogProps,\n };\n\n // Whether focus has been claimed by something outside the closing dialog —\n // the signal that an action handed focus off and the trigger must not take\n // it back. Same rule as `MenuTrigger` (see CUB-3962): an action that opens\n // a panel, another dialog or an inline editor focuses that surface, and\n // restoring here would undo the hand-off.\n //\n // Focus still inside the overlay means nobody claimed it (the pressed\n // control keeps focus while the overlay plays its ~350ms exit animation),\n // and focus on `<body>` or on a detached node means the focused element\n // went away with the dialog. Both belong back on the trigger.\n const hasFocusMovedOutsideDialog = useEvent(() => {\n const activeElement = document.activeElement;\n\n if (!activeElement || activeElement === document.body) return false;\n if (!activeElement.isConnected) return false;\n\n return !(\n overlayRef?.current?.contains(activeElement) ||\n ref.current?.contains(activeElement)\n );\n });\n\n // Restore focus manually when the dialog closes.\n //\n // Live for modal/tray/fullscreen/panel types only: in the popover branch\n // `triggerProps` carries its own `ref`, which overrides the `ref={ref}` on\n // `PressResponder` below, so `ref.current` stays null and this is a no-op.\n // Popovers get their restore from `Dialog`'s own `<FocusScope restoreFocus>`\n // instead, which already declines to restore when focus moved elsewhere.\n useEffect(() => {\n if (!state.isOpen && wasOpenRef.current) {\n wasOpenRef.current = false;\n if (!shouldRestoreFocus) return;\n if (hasFocusMovedOutsideDialog()) return;\n ref.current?.focus();\n } else if (state.isOpen) {\n wasOpenRef.current = true;\n }\n }, [state.isOpen, shouldRestoreFocus, hasFocusMovedOutsideDialog]);\n\n // Mark popover-type DialogTrigger children with `data-popover-trigger` so\n // `Button` / `ItemButton`'s default dismiss-on-press behaviour treats them\n // as popover triggers (skips the dismiss). Modal/tray/fullscreen children\n // intentionally stay UNMARKED — when a modal-type DialogTrigger lives\n // inside a popover footer, pressing it should dismiss the parent popover\n // (matching the \"modal takes over\" native UX).\n const triggerExtraProps =\n type === 'popover' ? { 'data-popover-trigger': '' } : {};\n\n return (\n <Fragment>\n <PressResponder\n ref={ref}\n {...triggerProps}\n {...triggerExtraProps}\n isPressed={\n state.isOpen &&\n type !== 'modal' &&\n type !== 'fullscreen' &&\n type !== 'fullscreenTakeover'\n }\n onPress={state.toggle}\n >\n {trigger}\n </PressResponder>\n <DialogContext.Provider value={context}>{overlay}</DialogContext.Provider>\n </Fragment>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DialogTrigger.js","names":["PressResponder","useMediaQuery","Styles","Fragment","ReactElement","RefObject","useEffect","useMemo","useRef","OverlayTriggerProps","Placement","PositionProps","useOverlayPosition","useOverlayTrigger","OverlayTriggerState","useOverlayTriggerState","useEvent","generateRandomId","useCombinedRefs","useLayoutEffect","usePopoverSync","isOwnActionsPress","Modal","Popover","Tray","WithCloseBehavior","DialogContext","useDialogOpenSync","CubeDialogClose","close","CubeDialogTriggerProps","Omit","children","state","type","mobileType","placement","hideArrow","targetRef","HTMLElement","isDismissable","isKeyboardDismissDisabled","mobileViewport","styles","shouldCloseOnInteractOutside","element","Element","onDismiss","action","isOpen","onOpenChange","defaultOpen","shouldFlip","shouldUpdatePosition","containerPadding","shouldRestoreFocus","DialogTrigger","props","hideOnClose","positionProps","Array","isArray","length","Error","trigger","content","isMobile","wasOpen","isExiting","onExiting","current","onExited","dialogSyncId","syncTriggerRef","syncOverlayRef","isPopoverFlavored","menuId","onClose","triggerRef","containerRef","dismissOnInnerButtonPress","closeOnPeerOpen","emits","closes","overlayRef","console","warn","fromAction","renderOverlay","PopoverTrigger","allProps","$","_c","keepOpenOnScroll","t0","t1","t2","t3","t4","t5","t6","t7","t8","t9","t10","t11","t12","t13","t14","triggerType","t15","anchorRef","offset","crossOffset","overlayProps","popoverProps","arrowProps","updatePosition","overlayTriggerState","Symbol","for","triggerProps","undefined","ref","triggerPropsWithRef","el","ownTrigger","popoverTriggerEl","closest","setTimeout","contains","resolveShouldCloseOnInteractOutside","style","overlay","DialogTriggerBase","wasOpenRef","dialogProps","context","hasFocusMovedOutsideDialog","activeElement","document","body","isConnected","focus","triggerExtraProps","toggle"],"sources":["../../../../src/components/overlays/Dialog/DialogTrigger.tsx"],"sourcesContent":["import { PressResponder } from '@react-aria/interactions';\nimport { useMediaQuery } from '@react-spectrum/utils';\nimport { Styles } from '@tenphi/tasty';\nimport {\n Fragment,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n OverlayTriggerProps,\n Placement,\n PositionProps,\n useOverlayPosition,\n useOverlayTrigger,\n} from 'react-aria';\nimport { OverlayTriggerState, useOverlayTriggerState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { generateRandomId } from '../../../utils/random';\nimport { useCombinedRefs, useLayoutEffect } from '../../../utils/react/index';\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { isOwnActionsPress } from '../../actions/actions-run';\nimport { Modal, Popover, Tray, WithCloseBehavior } from '../Modal';\n\nimport { DialogContext } from './context';\nimport { useDialogOpenSync } from './use-dialog-open-sync';\n\nexport type CubeDialogClose = (close: () => void) => ReactElement;\n\nexport interface CubeDialogTriggerProps\n extends Omit<OverlayTriggerProps, 'type'>,\n PositionProps,\n WithCloseBehavior {\n /** The Dialog and its trigger element. See the DialogTrigger [Content section](#content) for more information on what to provide as children. */\n children: [\n ReactElement | ((state: OverlayTriggerState) => ReactElement),\n CubeDialogClose | ReactElement,\n ];\n /**\n * The type of Dialog that should be rendered. See the DialogTrigger [types section](#dialog-types) for an explanation on each.\n * @default 'modal'\n */\n type?:\n | 'modal'\n | 'popover'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel';\n /** The type of Dialog rendered on mobile, defaulting to `type`. See DialogTrigger [types section](#dialog-types) for an explanation on each. */\n mobileType?:\n | 'modal'\n | 'tray'\n | 'fullscreen'\n | 'fullscreenTakeover'\n | 'panel'\n | 'popover';\n placement?: Placement;\n /**\n * Has no effect: popovers render no arrow.\n * @deprecated Popovers never render an arrow, so there is nothing to hide.\n */\n hideArrow?: boolean;\n /** The ref of the element the Dialog should visually attach itself to. Defaults to the trigger button if not defined. A popover closes when this element scrolls, as one attached to its trigger does. */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions can still close it.\n * A popover that is not dismissable lets an outside press through to the control it lands on, including a text field, which can take focus. It stays open when another popover opens, and closes when a modal, tray, fullscreen or panel dialog opens from another `DialogTrigger`.\n */\n isDismissable?: boolean;\n /** Whether pressing the escape key to close the dialog should be disabled. */\n isKeyboardDismissDisabled?: boolean;\n /** The screen breakpoint for the mobile type */\n mobileViewport?: number;\n /** The style map for the overlay **/\n styles?: Styles;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n onDismiss?: (action?: string) => void;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n shouldFlip?: boolean;\n shouldUpdatePosition?: boolean;\n /** Minimum padding in pixels between the popover and viewport edges */\n containerPadding?: number;\n /**\n * Whether focus returns to the trigger when the dialog closes. Defaults to\n * `true`.\n *\n * The restore is skipped automatically whenever the action that closed the\n * dialog has already moved focus somewhere else, so an action that opens a\n * panel/dialog/inline editor and focuses it needs nothing here. Pass `false`\n * for the remaining case: a surface that claims focus *later* than the\n * dialog's own restore (after an async load, an entry animation, or a\n * `requestAnimationFrame`), where the trigger would otherwise take focus\n * first and produce a visible flash.\n */\n shouldRestoreFocus?: boolean;\n}\n\n/**\n * DialogTrigger serves as a wrapper around a Dialog and its associated trigger, linking the Dialog's\n * open state with the trigger's press state. Additionally, it allows you to customize the type and\n * positioning of the Dialog.\n */\nexport function DialogTrigger(props: CubeDialogTriggerProps) {\n let {\n children,\n type = 'modal',\n mobileType = type,\n hideArrow,\n targetRef,\n onDismiss,\n isDismissable = true,\n isKeyboardDismissDisabled,\n styles,\n mobileViewport = 700,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus = true,\n ...positionProps\n } = props;\n\n if (!Array.isArray(children) || children.length > 2) {\n throw new Error('DialogTrigger must have exactly 2 children');\n }\n // if a function is passed as the second child, it won't appear in toArray\n let [trigger, content] = children;\n\n // Apply the mobile type at the configured breakpoint.\n let isMobile = useMediaQuery(`(max-width: ${mobileViewport}px)`);\n if (isMobile) {\n // handle cases where desktop popovers need a close button for the mobile modal view\n if (type !== 'modal' && mobileType === 'modal') {\n isDismissable = true;\n }\n\n type = mobileType;\n }\n\n let state = useOverlayTriggerState(props);\n\n if (typeof trigger === 'function') {\n trigger = trigger(state);\n }\n\n let wasOpen = useRef(false);\n let isExiting = useRef(false);\n let onExiting = () => (isExiting.current = true);\n let onExited = () => (isExiting.current = false);\n\n wasOpen.current = state.isOpen;\n\n // Shared identity + refs for `usePopoverSync`. Allocating here (rather than\n // inside the branch-specific sub-trees) keeps a single sync registration for\n // the lifetime of the trigger, even when `type` flips between popover and\n // modal at the mobile breakpoint. The refs are then threaded into the\n // appropriate branch so existing positioning / useOverlayTrigger hooks keep\n // their original ref targets and `usePopoverSync`'s `contains()` check has a\n // real DOM node to query.\n const dialogSyncId = useMemo(() => generateRandomId(), []);\n const syncTriggerRef = useRef<HTMLElement | null>(null);\n const syncOverlayRef = useRef<HTMLElement | null>(null);\n\n // Only popover-type Dialogs participate in the \"press inside dismisses\n // me\" / \"peer popover opening dismisses me\" behaviours: modals, trays,\n // fullscreen and panel Dialogs are persistent workspaces and must not be\n // yanked closed via the EventBus (which would bypass `isDismissable` and\n // call `state.close()` directly). Non-popover types DO still EMIT\n // `popover:open`, so opening a modal correctly dismisses peer popovers.\n //\n // A popover that is not dismissable does not listen to `popover:open`: a\n // peer popover leaves it open, as any other outside press does. A modal,\n // tray, fullscreen or panel Dialog opening still closes it, through\n // `useDialogOpenSync` below.\n const isPopoverFlavored = type === 'popover';\n usePopoverSync({\n menuId: dialogSyncId,\n isOpen: state.isOpen,\n onClose: () => state.close(),\n triggerRef: syncTriggerRef,\n containerRef: syncOverlayRef,\n dismissOnInnerButtonPress: isPopoverFlavored,\n closeOnPeerOpen: isPopoverFlavored && isDismissable,\n });\n useDialogOpenSync({\n emits: !isPopoverFlavored,\n closes: isPopoverFlavored && !isDismissable,\n state,\n triggerRef: syncTriggerRef,\n overlayRef: syncOverlayRef,\n });\n\n useEffect(() => {\n return () => {\n if (\n (wasOpen.current || isExiting.current) &&\n type !== 'popover' &&\n type !== 'tray'\n ) {\n console.warn(\n 'CubeUIKit: A DialogTrigger unmounted while open. This is likely due to being placed within a trigger that unmounts or inside a conditional. Consider using a DialogContainer instead.',\n );\n }\n };\n }, []);\n\n function onClose(action, fromAction = false) {\n if (isDismissable || fromAction) {\n onDismiss && onDismiss(action);\n state.close();\n }\n }\n\n if (type === 'popover') {\n return (\n <PopoverTrigger\n {...positionProps}\n hideOnClose={hideOnClose}\n state={state}\n styles={styles}\n targetRef={targetRef}\n trigger={trigger}\n content={content}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n shouldRestoreFocus={shouldRestoreFocus}\n syncTriggerRef={syncTriggerRef}\n syncOverlayRef={syncOverlayRef}\n triggerType={type}\n onClose={onClose}\n />\n );\n }\n\n let renderOverlay = () => {\n switch (type) {\n case 'panel':\n case 'fullscreen':\n case 'fullscreenTakeover':\n case 'modal':\n return (\n <Modal\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isDismissable={isDismissable}\n type={type}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={onClose}\n onExiting={onExiting}\n onExited={onExited}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Modal>\n );\n case 'tray':\n return (\n <Tray\n ref={syncOverlayRef}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n styles={styles}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Tray>\n );\n }\n };\n\n return (\n <DialogTriggerBase\n type={type}\n state={state}\n isDismissable={isDismissable}\n trigger={trigger}\n overlay={renderOverlay()}\n hideOnClose={hideOnClose}\n syncTriggerRef={syncTriggerRef}\n overlayRef={syncOverlayRef}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction PopoverTrigger(allProps) {\n let {\n state,\n styles,\n targetRef,\n trigger,\n content,\n hideArrow,\n onClose,\n isDismissable,\n isKeyboardDismissDisabled,\n hideOnClose,\n shouldCloseOnInteractOutside,\n shouldRestoreFocus,\n keepOpenOnScroll,\n syncTriggerRef,\n syncOverlayRef,\n triggerType,\n ...props\n } = allProps;\n\n let triggerRef = useRef<HTMLButtonElement>(null);\n let overlayRef = useRef<HTMLDivElement>(null);\n // What the popover is positioned against, and closes on scroll with.\n let anchorRef = targetRef || triggerRef;\n\n // Mirror the trigger/overlay DOM nodes into the parent-owned sync refs.\n //\n // We deliberately do NOT use `useCombinedRefs` here: that hook returns a\n // brand new internal ref and propagates to the passed refs via a regular\n // `useEffect` (post-commit). `useOverlayPosition` below reads\n // `triggerRef.current` in its own layout effect during the SAME commit, so\n // if `triggerRef` only receives the DOM node via a delayed effect, the\n // first measurement sees `null` and the popover positions at the document\n // origin until something forces a re-measure.\n //\n // Keeping `triggerRef`/`overlayRef` as the direct React refs preserves\n // synchronous assignment for `useOverlayPosition`. The sync refs are only\n // ever read inside `popover:open` handlers, which fire via setTimeout(0),\n // so a layout-effect mirror is more than fast enough.\n useLayoutEffect(() => {\n if (syncTriggerRef) {\n syncTriggerRef.current = targetRef?.current ?? triggerRef.current ?? null;\n }\n if (syncOverlayRef) {\n syncOverlayRef.current = overlayRef.current ?? null;\n }\n });\n\n let {\n overlayProps: popoverProps,\n placement,\n arrowProps,\n updatePosition,\n } = useOverlayPosition({\n targetRef: anchorRef,\n overlayRef: overlayRef,\n placement: props.placement,\n containerPadding: props.containerPadding,\n offset: props.offset ?? 8,\n crossOffset: props.crossOffset,\n shouldFlip: props.shouldFlip,\n shouldUpdatePosition: props.shouldUpdatePosition,\n isOpen: state.isOpen,\n });\n\n let overlayTriggerState = state;\n\n if (keepOpenOnScroll) {\n overlayTriggerState = { ...state, close: updatePosition };\n }\n\n // Registers the close (or, with `keepOpenOnScroll`, the reposition) that\n // `useOverlayPosition` runs when the anchor scrolls. It is looked up by the\n // anchor element, so it has to be registered there: with `targetRef` the\n // trigger ref is never attached, and the popover stayed open while its\n // anchor scrolled away.\n let { triggerProps, overlayProps } = useOverlayTrigger(\n { type: 'dialog' },\n overlayTriggerState,\n anchorRef,\n );\n\n let triggerPropsWithRef = {\n ...triggerProps,\n ref: targetRef ? undefined : triggerRef,\n };\n\n // Mirror the Select/ComboBox/MenuTrigger pattern: when an outside click lands\n // on ANOTHER popover trigger, return `false` so react-aria's `useOverlay`\n // does NOT `stopPropagation()` the click. The click then reaches that trigger,\n // its popover opens, and `usePopoverSync` closes this one via the EventBus.\n // Without this, react-aria swallows every outside click and a single click on\n // a sibling trigger can't open it while this popover is open.\n const resolveShouldCloseOnInteractOutside = useEvent(\n (el: Element): boolean => {\n // The caller's own predicate is asked FIRST, so an explicit \"keep me open\n // for this element\" wins over every automatic behaviour below (CUB-4113).\n // It used to be consulted last, which made the prop inert for every\n // `Button` / `ItemButton`: those carry `data-popover-dismiss`, so the\n // auto-dismiss branch matched and closed the popover before the predicate\n // was ever asked.\n //\n // Asked before every lookup below, not just inside the \"outside any\n // trigger\" branch: a trigger can own interactive controls of its own, and\n // those used to be decided without the predicate ever being asked.\n //\n // React Aria hands over the element the pointer landed on — for a\n // `Button` that is the label inside it, not the `<button>` — so a\n // predicate that guards an element has to use `contains()` rather than an\n // identity check.\n if (shouldCloseOnInteractOutside && !shouldCloseOnInteractOutside(el)) {\n return false;\n }\n\n const ownTrigger = targetRef?.current ?? triggerRef.current;\n\n // A press on our OWN trigger's actions run — an `ItemButton` row's\n // `actions`, a picker's clear button — is not a press outside. The run is\n // rendered as a sibling of the trigger (see `ItemActionsWrapper`), so the\n // `contains` checks below cannot recognise it and we dismissed instead,\n // which cost the action its press: the first press on `Reset` while the\n // popover was open only closed the popover and never ran.\n if (isOwnActionsPress(el, ownTrigger)) return false;\n\n const popoverTriggerEl = el.closest('[data-popover-trigger]');\n if (!popoverTriggerEl) {\n if (el.closest('[data-popover-keep]')) return false;\n // Plain interactive controls (Button, ItemButton) opt in via\n // `data-popover-dismiss`. Schedule the close after the click finishes so\n // the control's `onPress` runs first instead of losing the click to\n // useOverlay's stopPropagation.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(() => state.close(), 0);\n return false;\n }\n return true;\n }\n // Clicking our own trigger again should dismiss us.\n if (popoverTriggerEl === ownTrigger || ownTrigger?.contains(el))\n return true;\n // Another popover's trigger: let the click through so it can open.\n return false;\n },\n );\n\n let overlay = (\n <Popover\n ref={overlayRef}\n styles={styles}\n hideOnClose={hideOnClose}\n isOpen={state.isOpen}\n style={popoverProps.style}\n placement={placement ?? undefined}\n arrowProps={arrowProps}\n // Not dismissable: an outside press is left alone entirely, so it\n // reaches the control it landed on and nothing below is asked.\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n hideArrow={hideArrow}\n shouldCloseOnInteractOutside={resolveShouldCloseOnInteractOutside}\n onClose={onClose}\n >\n {typeof content === 'function' ? content(state.close) : content}\n </Popover>\n );\n\n return (\n <DialogTriggerBase\n type=\"popover\"\n state={state}\n triggerProps={triggerPropsWithRef}\n dialogProps={overlayProps}\n trigger={trigger}\n overlay={overlay}\n overlayRef={overlayRef}\n isDismissable={isDismissable}\n shouldRestoreFocus={shouldRestoreFocus}\n onClose={onClose}\n />\n );\n}\n\nfunction DialogTriggerBase(props: any) {\n const ref = useCombinedRefs<HTMLElement>(props.ref);\n const wasOpenRef = useRef(false);\n const overlayRef: RefObject<HTMLElement | null> | undefined =\n props.overlayRef;\n\n // Mirror the press-responder DOM node into the parent's sync trigger ref.\n // Done via `useLayoutEffect` rather than threading through `useCombinedRefs`\n // for consistency with `PopoverTrigger` (see comment there) — keeps the\n // sync-ref population deterministic regardless of branch.\n useLayoutEffect(() => {\n if (props.syncTriggerRef) {\n props.syncTriggerRef.current = ref.current ?? null;\n }\n });\n\n let {\n type,\n state,\n onClose,\n isDismissable,\n dialogProps = {},\n triggerProps = {},\n overlay,\n trigger,\n shouldRestoreFocus = true,\n } = props;\n\n let context = {\n type,\n // Explicit dialog actions can close even when passive dismissal is disabled.\n onClose: (action?: string) => onClose?.(action, true),\n isDismissable,\n isOpen: state.isOpen,\n // Reaches `Dialog`'s `FocusScope`, which owns the restore for\n // popover-type dialogs. `useDialog` filters it out of the DOM props.\n shouldRestoreFocus,\n ...dialogProps,\n };\n\n // Whether focus has been claimed by something outside the closing dialog —\n // the signal that an action handed focus off and the trigger must not take\n // it back. Same rule as `MenuTrigger` (see CUB-3962): an action that opens\n // a panel, another dialog or an inline editor focuses that surface, and\n // restoring here would undo the hand-off.\n //\n // Focus still inside the overlay means nobody claimed it (the pressed\n // control keeps focus while the overlay plays its ~350ms exit animation),\n // and focus on `<body>` or on a detached node means the focused element\n // went away with the dialog. Both belong back on the trigger.\n const hasFocusMovedOutsideDialog = useEvent(() => {\n const activeElement = document.activeElement;\n\n if (!activeElement || activeElement === document.body) return false;\n if (!activeElement.isConnected) return false;\n\n return !(\n overlayRef?.current?.contains(activeElement) ||\n ref.current?.contains(activeElement)\n );\n });\n\n // Restore focus manually when the dialog closes.\n //\n // Live for modal/tray/fullscreen/panel types only: in the popover branch\n // `triggerProps` carries its own `ref`, which overrides the `ref={ref}` on\n // `PressResponder` below, so `ref.current` stays null and this is a no-op.\n // Popovers get their restore from `Dialog`'s own `<FocusScope restoreFocus>`\n // instead, which already declines to restore when focus moved elsewhere.\n useEffect(() => {\n if (!state.isOpen && wasOpenRef.current) {\n wasOpenRef.current = false;\n if (!shouldRestoreFocus) return;\n if (hasFocusMovedOutsideDialog()) return;\n ref.current?.focus();\n } else if (state.isOpen) {\n wasOpenRef.current = true;\n }\n }, [state.isOpen, shouldRestoreFocus, hasFocusMovedOutsideDialog]);\n\n // Mark popover-type DialogTrigger children with `data-popover-trigger` so\n // `Button` / `ItemButton`'s default dismiss-on-press behaviour treats them\n // as popover triggers (skips the dismiss). Modal/tray/fullscreen children\n // intentionally stay UNMARKED — when a modal-type DialogTrigger lives\n // inside a popover footer, pressing it should dismiss the parent popover\n // (matching the \"modal takes over\" native UX).\n const triggerExtraProps =\n type === 'popover' ? { 'data-popover-trigger': '' } : {};\n\n return (\n <Fragment>\n <PressResponder\n ref={ref}\n {...triggerProps}\n {...triggerExtraProps}\n isPressed={\n state.isOpen &&\n type !== 'modal' &&\n type !== 'fullscreen' &&\n type !== 'fullscreenTakeover'\n }\n onPress={state.toggle}\n >\n {trigger}\n </PressResponder>\n <DialogContext.Provider value={context}>{overlay}</DialogContext.Provider>\n </Fragment>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Title } from "../../content/Title.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import invariant from "tiny-invariant";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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";
@@ -0,0 +1,83 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
2
+ import { useEventBus } from "../../../utils/react/useEventBus.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { useEffect, useEffectEvent } from "react";
5
+
6
+ //#region src/components/overlays/Dialog/use-dialog-open-sync.ts
7
+ /**
8
+ * Emitted, besides `popover:open`, when a modal, tray, fullscreen or panel
9
+ * `DialogTrigger` opens. A popover that is not dismissable ignores
10
+ * `popover:open`, but such a dialog takes over the page: left open, the popover
11
+ * would sit over it, hidden from screen readers by it, and take its focus
12
+ * restore. So it closes on this.
13
+ */
14
+ const DIALOG_OPEN_EVENT = "dialog:open";
15
+ /**
16
+ * For `DialogTrigger`: a modal, tray, fullscreen or panel dialog announces that
17
+ * it opened (`emits`), and a popover that is not dismissable closes when one
18
+ * does (`closes`), unless it opened from inside the popover.
19
+ */
20
+ function useDialogOpenSync(options) {
21
+ const $ = c(16);
22
+ const { emits, closes, state, triggerRef, overlayRef } = options;
23
+ const { emit, on } = useEventBus();
24
+ const { isOpen } = state;
25
+ let t0;
26
+ let t1;
27
+ if ($[0] !== emit || $[1] !== emits || $[2] !== isOpen || $[3] !== triggerRef) {
28
+ t0 = () => {
29
+ if (!emits || !isOpen) return;
30
+ emit(DIALOG_OPEN_EVENT, { triggerEl: triggerRef.current });
31
+ };
32
+ t1 = [
33
+ emits,
34
+ isOpen,
35
+ emit,
36
+ triggerRef
37
+ ];
38
+ $[0] = emit;
39
+ $[1] = emits;
40
+ $[2] = isOpen;
41
+ $[3] = triggerRef;
42
+ $[4] = t0;
43
+ $[5] = t1;
44
+ } else {
45
+ t0 = $[4];
46
+ t1 = $[5];
47
+ }
48
+ useEffect(t0, t1);
49
+ let t2;
50
+ if ($[6] !== overlayRef || $[7] !== state) {
51
+ t2 = (triggerEl) => {
52
+ if (!state.isOpen || overlayRef.current?.contains(triggerEl)) return;
53
+ state.close();
54
+ };
55
+ $[6] = overlayRef;
56
+ $[7] = state;
57
+ $[8] = t2;
58
+ } else t2 = $[8];
59
+ const onDialogOpen = useEffectEvent(t2);
60
+ let t3;
61
+ if ($[9] !== closes || $[10] !== on || $[11] !== onDialogOpen) {
62
+ t3 = () => {
63
+ if (!closes) return;
64
+ return on(DIALOG_OPEN_EVENT, (data) => onDialogOpen(data.triggerEl));
65
+ };
66
+ $[9] = closes;
67
+ $[10] = on;
68
+ $[11] = onDialogOpen;
69
+ $[12] = t3;
70
+ } else t3 = $[12];
71
+ let t4;
72
+ if ($[13] !== closes || $[14] !== on) {
73
+ t4 = [closes, on];
74
+ $[13] = closes;
75
+ $[14] = on;
76
+ $[15] = t4;
77
+ } else t4 = $[15];
78
+ useEffect(t3, t4);
79
+ }
80
+
81
+ //#endregion
82
+ export { useDialogOpenSync };
83
+ //# sourceMappingURL=use-dialog-open-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dialog-open-sync.js","names":["RefObject","useEffect","useEffectEvent","OverlayTriggerState","useEventBus","DIALOG_OPEN_EVENT","DialogOpenPayload","triggerEl","Element","DialogOpenSyncOptions","emits","closes","state","triggerRef","HTMLElement","overlayRef","useDialogOpenSync","options","$","_c","emit","on","isOpen","t0","t1","current","t2","contains","close","onDialogOpen","t3","data","t4"],"sources":["../../../../src/components/overlays/Dialog/use-dialog-open-sync.ts"],"sourcesContent":["import { RefObject, useEffect, useEffectEvent } from 'react';\nimport { OverlayTriggerState } from 'react-stately';\n\nimport { useEventBus } from '../../../utils/react/useEventBus';\n\n/**\n * Emitted, besides `popover:open`, when a modal, tray, fullscreen or panel\n * `DialogTrigger` opens. A popover that is not dismissable ignores\n * `popover:open`, but such a dialog takes over the page: left open, the popover\n * would sit over it, hidden from screen readers by it, and take its focus\n * restore. So it closes on this.\n */\nconst DIALOG_OPEN_EVENT = 'dialog:open';\n\ninterface DialogOpenPayload {\n triggerEl: Element | null;\n}\n\ninterface DialogOpenSyncOptions {\n /** Emits `dialog:open` on opening: a dialog that is not a popover. */\n emits: boolean;\n /** Closes on another dialog's `dialog:open`: a popover that is not dismissable. */\n closes: boolean;\n state: OverlayTriggerState;\n triggerRef: RefObject<HTMLElement | null>;\n overlayRef: RefObject<HTMLElement | null>;\n}\n\n/**\n * For `DialogTrigger`: a modal, tray, fullscreen or panel dialog announces that\n * it opened (`emits`), and a popover that is not dismissable closes when one\n * does (`closes`), unless it opened from inside the popover.\n */\nexport function useDialogOpenSync(options: DialogOpenSyncOptions) {\n const { emits, closes, state, triggerRef, overlayRef } = options;\n const { emit, on } = useEventBus();\n const { isOpen } = state;\n\n useEffect(() => {\n if (!emits || !isOpen) return;\n\n emit<DialogOpenPayload>(DIALOG_OPEN_EVENT, {\n triggerEl: triggerRef.current,\n });\n }, [emits, isOpen, emit, triggerRef]);\n\n const onDialogOpen = useEffectEvent((triggerEl: Element | null) => {\n // A dialog opened from inside this popover belongs to it, and would be\n // unmounted with it.\n if (!state.isOpen || overlayRef.current?.contains(triggerEl)) return;\n\n state.close();\n });\n\n useEffect(() => {\n if (!closes) return;\n\n return on<DialogOpenPayload>(DIALOG_OPEN_EVENT, (data) =>\n onDialogOpen(data.triggerEl),\n );\n }, [closes, on]);\n}\n"],"mappings":";;;;;;;;;;;;;AAYA,MAAMK,oBAAoB;;;;;;AAqB1B,SAAOW,kBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAT,OAAAC,QAAAC,OAAAC,YAAAE,eAAyDE;CACzD,MAAA,EAAAG,MAAAC,OAAqBjB,aAAa;CAClC,MAAA,EAAAkB,WAAmBV;CAAM,IAAAW;CAAA,IAAAC;AAAA,KAAAN,EAAA,OAAAE,QAAAF,EAAA,OAAAR,SAAAQ,EAAA,OAAAI,UAAAJ,EAAA,OAAAL,YAAA;AAEfU,aAAA;AACR,OAAI,CAACb,SAAD,CAAWY,OAAM;AAErBF,QAAwBf,mBAAmB,EAAAE,WAC9BM,WAAUY,SACtB,CAAC;;AACDD,OAAA;GAACd;GAAOY;GAAQF;GAAMP;GAAW;AAAAK,IAAA,KAAAE;AAAAF,IAAA,KAAAR;AAAAQ,IAAA,KAAAI;AAAAJ,IAAA,KAAAL;AAAAK,IAAA,KAAAK;AAAAL,IAAA,KAAAM;QAAA;AAAAD,OAAAL,EAAA;AAAAM,OAAAN,EAAA;;AANpCjB,WAAUsB,IAMPC,GAAkC;CAAA,IAAAE;AAAA,KAAAR,EAAA,OAAAH,cAAAG,EAAA,OAAAN,OAAA;AAEDc,QAAAnB,cAAA;AAGlC,OAAI,CAACK,MAAKU,UAAWP,WAAUU,SAAkBE,SAACpB,UAAU,CAAA;AAE5DK,SAAKgB,OAAQ;;AACdV,IAAA,KAAAH;AAAAG,IAAA,KAAAN;AAAAM,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAND,MAAAW,eAAqB3B,eAAewB,GAMlC;CAAC,IAAAI;AAAA,KAAAZ,EAAA,OAAAP,UAAAO,EAAA,QAAAG,MAAAH,EAAA,QAAAW,cAAA;AAEOC,aAAA;AACR,OAAI,CAACnB,OAAM;AAAS,UAEbU,GAAsBhB,oBAAmB0B,SAC9CF,aAAaE,KAAIxB,UACnB,CAAC;;AACFW,IAAA,KAAAP;AAAAO,IAAA,MAAAG;AAAAH,IAAA,MAAAW;AAAAX,IAAA,MAAAY;OAAAA,MAAAZ,EAAA;CAAA,IAAAc;AAAA,KAAAd,EAAA,QAAAP,UAAAO,EAAA,QAAAG,IAAA;AAAEW,OAAA,CAACrB,QAAQU,GAAG;AAAAH,IAAA,MAAAP;AAAAO,IAAA,MAAAG;AAAAH,IAAA,MAAAc;OAAAA,MAAAd,EAAA;AANfjB,WAAU6B,IAMPE,GAAa"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/overlays/Modal/OpenTransitionContext.tsx
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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";
5
+ import { ButtonSplitContext } from "../../actions/ButtonSplit/context.js";
5
6
  import { OpenTransitionContext } from "./OpenTransitionContext.js";
6
7
  import { TastyBatchProvider } from "@tenphi/tasty";
7
8
  import { Children, cloneElement, forwardRef, useCallback, useRef, useState } from "react";
@@ -9,6 +10,7 @@ import { jsx } from "react/jsx-runtime";
9
10
  import { createPortal } from "react-dom";
10
11
 
11
12
  //#region src/components/overlays/Modal/Overlay.tsx
13
+ /** How long a closed overlay stays mounted while it plays its exit. */
12
14
  const EXIT_DURATION = 350;
13
15
  function Overlay(props, ref) {
14
16
  let { children, isOpen, container = null, onEnter, onEntering, onEntered, onExit, onExiting, onExited, hideOnClose = false } = props;
@@ -50,7 +52,7 @@ function Overlay(props, ref) {
50
52
  if (!(isOpen || !exited)) {
51
53
  if (!hideOnClose) return null;
52
54
  }
53
- return createPortal(/* @__PURE__ */ jsx(TastyBatchProvider, { children: /* @__PURE__ */ jsx(Provider, {
55
+ let contents = /* @__PURE__ */ jsx(Provider, {
54
56
  ref,
55
57
  children: /* @__PURE__ */ jsx(DisplayTransition, {
56
58
  isShown: !!isOpen,
@@ -68,11 +70,15 @@ function Overlay(props, ref) {
68
70
  });
69
71
  }
70
72
  })
73
+ });
74
+ return createPortal(/* @__PURE__ */ jsx(TastyBatchProvider, { children: /* @__PURE__ */ jsx(ButtonSplitContext.Provider, {
75
+ value: null,
76
+ children: contents
71
77
  }) }), container || root || document.body);
72
78
  }
73
79
  let _Overlay = forwardRef(Overlay);
74
80
  _Overlay.displayName = "Overlay";
75
81
 
76
82
  //#endregion
77
- export { _Overlay };
83
+ export { EXIT_DURATION, _Overlay };
78
84
  //# sourceMappingURL=Overlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Overlay.js","names":["TastyBatchProvider","Children","cloneElement","forwardRef","ReactElement","ReactNode","useCallback","useRef","useState","createPortal","Provider","useProviderProps","markFocusRestoreWindow","DisplayTransition","OpenTransitionContext","WithCloseBehavior","Props","ReportedPhase","CubeOverlayProps","children","isOpen","container","HTMLElement","onEnter","onEntering","onEntered","onExit","onExiting","onExited","EXIT_DURATION","Overlay","props","ref","hideOnClose","exited","setExited","wasOpen","current","root","handlePhaseChange","phase","mountOverlay","contents","isShown","isExiting","transitionState","map","child","undefined","document","body","_Overlay","displayName"],"sources":["../../../../src/components/overlays/Modal/Overlay.tsx"],"sourcesContent":["import { TastyBatchProvider } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Provider, useProviderProps } from '../../../provider';\nimport { markFocusRestoreWindow } from '../../../utils/react/programmaticFocus';\nimport { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition';\n\nimport { OpenTransitionContext } from './OpenTransitionContext';\nimport { WithCloseBehavior } from './types';\n\nimport type { Props } from '../../../props';\nimport type { ReportedPhase } from '../../helpers/DisplayTransition/DisplayTransition';\n\nexport interface CubeOverlayProps extends WithCloseBehavior {\n children?: ReactNode;\n isOpen?: boolean;\n container?: HTMLElement | null;\n onEnter?: () => void;\n onEntering?: () => void;\n onEntered?: () => void;\n onExit?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n}\n\nconst EXIT_DURATION = 350;\n\nfunction Overlay(props: CubeOverlayProps, ref) {\n let {\n children,\n isOpen,\n container = null,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n hideOnClose = false,\n } = props;\n let [exited, setExited] = useState(!isOpen);\n\n if (isOpen && exited) {\n setExited(false);\n }\n\n // Our `FocusScope` restores focus to the trigger when it unmounts, from\n // inside React's own commit where nothing can wrap the call. The window has\n // to be open before that lands, or the restored trigger's tooltip opens and\n // eats the user's next `Escape` (CUB-4839).\n //\n // Keyed to `isOpen` closing rather than to the exit PHASE, because the phase\n // is not always reported: under reduced motion `DisplayTransition` collapses\n // its duration to zero, so `exit` and `unmounted` are set in one callback and\n // React batches the `exit` render — and its notification — away entirely.\n // Closing is the one signal that always arrives.\n const wasOpen = useRef(!!isOpen);\n\n if (wasOpen.current !== !!isOpen) {\n wasOpen.current = !!isOpen;\n\n if (!isOpen) markFocusRestoreWindow(EXIT_DURATION + 200);\n }\n\n let { root } = useProviderProps({} as Props);\n\n let handlePhaseChange = useCallback(\n (phase: ReportedPhase) => {\n switch (phase) {\n case 'enter':\n setExited(false);\n onEnter?.();\n onEntering?.();\n break;\n case 'entered':\n onEntered?.();\n break;\n case 'exit':\n onExit?.();\n onExiting?.();\n break;\n case 'unmounted':\n setExited(true);\n onExited?.();\n break;\n }\n },\n [onEnter, onEntering, onEntered, onExit, onExiting, onExited],\n );\n\n let mountOverlay = isOpen || !exited;\n\n if (!mountOverlay) {\n if (!hideOnClose) {\n return null;\n }\n }\n\n let contents = (\n <Provider ref={ref}>\n <DisplayTransition\n isShown={!!isOpen}\n exposeUnmounted={hideOnClose}\n duration={EXIT_DURATION}\n onPhaseChange={handlePhaseChange}\n >\n {({ phase, isShown, isExiting }) => {\n return (\n <OpenTransitionContext.Provider\n value={{ transitionState: phase as ReportedPhase }}\n >\n {Children.map(\n children,\n (child) =>\n child &&\n cloneElement(\n child as ReactElement,\n {\n isOpen: isShown,\n transitionState: phase,\n // A closed overlay leaves React Aria's stack of visible\n // overlays at once, but stays on screen, and clickable,\n // while it fades out. A press on it then counts as a\n // press outside whatever overlay is topmost again, so a\n // click on a fading list closed the Dialog under it\n // (CUB-5293). React Aria never treats a press inside a\n // top-layer element as outside.\n 'data-react-aria-top-layer': isExiting || undefined,\n } as any,\n ),\n )}\n </OpenTransitionContext.Provider>\n );\n }}\n </DisplayTransition>\n </Provider>\n );\n\n // Popover, Modal and Tray all portal through here, which makes this the\n // overlay path that matters most for batching: a dialog or menu mounts a\n // fresh subtree and react-aria positions it from a layout effect in the same\n // commit. `<Root>` does not re-render for those commits, so open a window\n // here — it flushes in `useInsertionEffect`, before any positioning effect\n // reads the DOM. Note this is a *raw* `createPortal`, not `<Portal>`, so the\n // window `<Portal>` opens does not reach these overlays.\n return createPortal(\n <TastyBatchProvider>{contents}</TastyBatchProvider>,\n container || root || document.body,\n );\n}\n\nlet _Overlay = forwardRef(Overlay);\n\n_Overlay.displayName = 'Overlay';\n\nexport { _Overlay as Overlay };\n"],"mappings":";;;;;;;;;;;AAmCA,MAAM6B,gBAAgB;AAEtB,SAASC,QAAQC,OAAyBC,KAAK;CAC7C,IAAI,EACFb,UACAC,QACAC,YAAY,MACZE,SACAC,YACAC,WACAC,QACAC,WACAC,UACAK,cAAc,UACZF;CACJ,IAAI,CAACG,QAAQC,aAAa3B,SAAS,CAACY,OAAO;AAE3C,KAAIA,UAAUc,OACZC,WAAU,MAAM;CAalB,MAAMC,UAAU7B,OAAO,CAAC,CAACa,OAAO;AAEhC,KAAIgB,QAAQC,YAAY,CAAC,CAACjB,QAAQ;AAChCgB,UAAQC,UAAU,CAAC,CAACjB;AAEpB,MAAI,CAACA,OAAQR,wBAAuBiB,gBAAgB,IAAI;;CAG1D,IAAI,EAAES,SAAS3B,iBAAiB,EAAE,CAAU;CAE5C,IAAI4B,oBAAoBjC,aACrBkC,UAAyB;AACxB,UAAQA,OAAR;GACE,KAAK;AACHL,cAAU,MAAM;AAChBZ,eAAW;AACXC,kBAAc;AACd;GACF,KAAK;AACHC,iBAAa;AACb;GACF,KAAK;AACHC,cAAU;AACVC,iBAAa;AACb;GACF,KAAK;AACHQ,cAAU,KAAK;AACfP,gBAAY;AACZ;;IAGN;EAACL;EAASC;EAAYC;EAAWC;EAAQC;EAAWC;EACtD,CAAC;AAID,KAAI,EAFeR,UAAU,CAACc,SAG5B;MAAI,CAACD,YACH,QAAO;;AAmDX,QAAOxB,aACL,oBAAC,gCA/CD,oBAAC;EAAcuB;YACb,oBAAC;GACC,SAAS,CAAC,CAACZ;GACX,iBAAiBa;GACjB,UAAUJ;GACV,eAAeU;cAEb,EAAEC,OAAAA,SAAOG,SAASC,gBAAgB;AAClC,WACE,oBAAC,sBAAsB;KACrB,OAAO,EAAEC,iBAAiBL,SAAwB;eAEjDvC,SAAS6C,IACR3B,WACC4B,UACCA,SACA7C,aACE6C,OACA;MACE3B,QAAQuB;MACRE,iBAAiBL;MAQjB,6BAA6BI,aAAaI;MAC3C,CAEP,CAAC;MAC8B;;IAGpB;GAEtB,GAUoD,EACnD3B,aAAaiB,QAAQW,SAASC,KAC/B;;AAGH,IAAIC,WAAWhD,WAAW2B,QAAQ;AAElCqB,SAASC,cAAc"}
1
+ {"version":3,"file":"Overlay.js","names":["TastyBatchProvider","Children","cloneElement","forwardRef","ReactElement","ReactNode","useCallback","useRef","useState","createPortal","Provider","useProviderProps","markFocusRestoreWindow","ButtonSplitContext","DisplayTransition","OpenTransitionContext","WithCloseBehavior","Props","ReportedPhase","CubeOverlayProps","children","isOpen","container","HTMLElement","onEnter","onEntering","onEntered","onExit","onExiting","onExited","EXIT_DURATION","Overlay","props","ref","hideOnClose","exited","setExited","wasOpen","current","root","handlePhaseChange","phase","mountOverlay","contents","isShown","isExiting","transitionState","map","child","undefined","document","body","_Overlay","displayName"],"sources":["../../../../src/components/overlays/Modal/Overlay.tsx"],"sourcesContent":["import { TastyBatchProvider } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n forwardRef,\n ReactElement,\n ReactNode,\n useCallback,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Provider, useProviderProps } from '../../../provider';\nimport { markFocusRestoreWindow } from '../../../utils/react/programmaticFocus';\nimport { ButtonSplitContext } from '../../actions/ButtonSplit/context';\nimport { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition';\n\nimport { OpenTransitionContext } from './OpenTransitionContext';\nimport { WithCloseBehavior } from './types';\n\nimport type { Props } from '../../../props';\nimport type { ReportedPhase } from '../../helpers/DisplayTransition/DisplayTransition';\n\nexport interface CubeOverlayProps extends WithCloseBehavior {\n children?: ReactNode;\n isOpen?: boolean;\n container?: HTMLElement | null;\n onEnter?: () => void;\n onEntering?: () => void;\n onEntered?: () => void;\n onExit?: () => void;\n onExiting?: () => void;\n onExited?: () => void;\n}\n\n/** How long a closed overlay stays mounted while it plays its exit. */\nexport const EXIT_DURATION = 350;\n\nfunction Overlay(props: CubeOverlayProps, ref) {\n let {\n children,\n isOpen,\n container = null,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n hideOnClose = false,\n } = props;\n let [exited, setExited] = useState(!isOpen);\n\n if (isOpen && exited) {\n setExited(false);\n }\n\n // Our `FocusScope` restores focus to the trigger when it unmounts, from\n // inside React's own commit where nothing can wrap the call. The window has\n // to be open before that lands, or the restored trigger's tooltip opens and\n // eats the user's next `Escape` (CUB-4839).\n //\n // Keyed to `isOpen` closing rather than to the exit PHASE, because the phase\n // is not always reported: under reduced motion `DisplayTransition` collapses\n // its duration to zero, so `exit` and `unmounted` are set in one callback and\n // React batches the `exit` render — and its notification — away entirely.\n // Closing is the one signal that always arrives.\n const wasOpen = useRef(!!isOpen);\n\n if (wasOpen.current !== !!isOpen) {\n wasOpen.current = !!isOpen;\n\n if (!isOpen) markFocusRestoreWindow(EXIT_DURATION + 200);\n }\n\n let { root } = useProviderProps({} as Props);\n\n let handlePhaseChange = useCallback(\n (phase: ReportedPhase) => {\n switch (phase) {\n case 'enter':\n setExited(false);\n onEnter?.();\n onEntering?.();\n break;\n case 'entered':\n onEntered?.();\n break;\n case 'exit':\n onExit?.();\n onExiting?.();\n break;\n case 'unmounted':\n setExited(true);\n onExited?.();\n break;\n }\n },\n [onEnter, onEntering, onEntered, onExit, onExiting, onExited],\n );\n\n let mountOverlay = isOpen || !exited;\n\n if (!mountOverlay) {\n if (!hideOnClose) {\n return null;\n }\n }\n\n let contents = (\n <Provider ref={ref}>\n <DisplayTransition\n isShown={!!isOpen}\n exposeUnmounted={hideOnClose}\n duration={EXIT_DURATION}\n onPhaseChange={handlePhaseChange}\n >\n {({ phase, isShown, isExiting }) => {\n return (\n <OpenTransitionContext.Provider\n value={{ transitionState: phase as ReportedPhase }}\n >\n {Children.map(\n children,\n (child) =>\n child &&\n cloneElement(\n child as ReactElement,\n {\n isOpen: isShown,\n transitionState: phase,\n // A closed overlay leaves React Aria's stack of visible\n // overlays at once, but stays on screen, and clickable,\n // while it fades out. A press on it then counts as a\n // press outside whatever overlay is topmost again, so a\n // click on a fading list closed the Dialog under it\n // (CUB-5293). React Aria never treats a press inside a\n // top-layer element as outside.\n 'data-react-aria-top-layer': isExiting || undefined,\n } as any,\n ),\n )}\n </OpenTransitionContext.Provider>\n );\n }}\n </DisplayTransition>\n </Provider>\n );\n\n // Popover, Modal and Tray all portal through here, which makes this the\n // overlay path that matters most for batching: a dialog or menu mounts a\n // fresh subtree and react-aria positions it from a layout effect in the same\n // commit. `<Root>` does not re-render for those commits, so open a window\n // here — it flushes in `useInsertionEffect`, before any positioning effect\n // reads the DOM. Note this is a *raw* `createPortal`, not `<Portal>`, so the\n // window `<Portal>` opens does not reach these overlays.\n //\n // Overlays also leave the `ButtonSplit` that opened them here: its context\n // crosses the portal and would style every Button inside (CUB-5624). A split\n // rendered inside the overlay still provides its own.\n return createPortal(\n <TastyBatchProvider>\n <ButtonSplitContext.Provider value={null}>\n {contents}\n </ButtonSplitContext.Provider>\n </TastyBatchProvider>,\n container || root || document.body,\n );\n}\n\nlet _Overlay = forwardRef(Overlay);\n\n_Overlay.displayName = 'Overlay';\n\nexport { _Overlay as Overlay };\n"],"mappings":";;;;;;;;;;;;;AAqCA,MAAa8B,gBAAgB;AAE7B,SAASC,QAAQC,OAAyBC,KAAK;CAC7C,IAAI,EACFb,UACAC,QACAC,YAAY,MACZE,SACAC,YACAC,WACAC,QACAC,WACAC,UACAK,cAAc,UACZF;CACJ,IAAI,CAACG,QAAQC,aAAa5B,SAAS,CAACa,OAAO;AAE3C,KAAIA,UAAUc,OACZC,WAAU,MAAM;CAalB,MAAMC,UAAU9B,OAAO,CAAC,CAACc,OAAO;AAEhC,KAAIgB,QAAQC,YAAY,CAAC,CAACjB,QAAQ;AAChCgB,UAAQC,UAAU,CAAC,CAACjB;AAEpB,MAAI,CAACA,OAAQT,wBAAuBkB,gBAAgB,IAAI;;CAG1D,IAAI,EAAES,SAAS5B,iBAAiB,EAAE,CAAU;CAE5C,IAAI6B,oBAAoBlC,aACrBmC,UAAyB;AACxB,UAAQA,OAAR;GACE,KAAK;AACHL,cAAU,MAAM;AAChBZ,eAAW;AACXC,kBAAc;AACd;GACF,KAAK;AACHC,iBAAa;AACb;GACF,KAAK;AACHC,cAAU;AACVC,iBAAa;AACb;GACF,KAAK;AACHQ,cAAU,KAAK;AACfP,gBAAY;AACZ;;IAGN;EAACL;EAASC;EAAYC;EAAWC;EAAQC;EAAWC;EACtD,CAAC;AAID,KAAI,EAFeR,UAAU,CAACc,SAG5B;MAAI,CAACD,YACH,QAAO;;CAIX,IAAIS,WACF,oBAAC;EAAcV;YACb,oBAAC;GACC,SAAS,CAAC,CAACZ;GACX,iBAAiBa;GACjB,UAAUJ;GACV,eAAeU;cAEb,EAAEC,OAAAA,SAAOG,SAASC,gBAAgB;AAClC,WACE,oBAAC,sBAAsB;KACrB,OAAO,EAAEC,iBAAiBL,SAAwB;eAEjDxC,SAAS8C,IACR3B,WACC4B,UACCA,SACA9C,aACE8C,OACA;MACE3B,QAAQuB;MACRE,iBAAiBL;MAQjB,6BAA6BI,aAAaI;MAC3C,CAEP,CAAC;MAC8B;;IAGpB;GAEtB;AAaD,QAAOxC,aACL,oBAAC,gCACC,oBAAC,mBAAmB;EAAS,OAAO;YACjCkC;GAC0B,GACV,EACrBrB,aAAaiB,QAAQW,SAASC,KAC/B;;AAGH,IAAIC,WAAWjD,WAAW4B,QAAQ;AAElCqB,SAASC,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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";
@@ -145,35 +145,37 @@ const PopoverWrapper = forwardRef(function PopoverWrapper(props, ref) {
145
145
  const { modalProps } = useModal(t1);
146
146
  const T0 = PopoverElement;
147
147
  const t2 = qa || "Popover";
148
- const t3 = mergeProps$1(otherProps, overlayProps, modalProps);
149
- const t4 = transitionState === "enter";
150
- const t5 = transitionState === "exit";
151
- const t6 = transitionState === "unmounted";
152
- const t7 = transitionState === "entered";
153
- let t8;
154
- if ($[2] !== isOpen || $[3] !== t4 || $[4] !== t5 || $[5] !== t6 || $[6] !== t7) {
155
- t8 = {
148
+ const t3 = "";
149
+ const t4 = mergeProps$1(otherProps, overlayProps, modalProps);
150
+ const t5 = transitionState === "enter";
151
+ const t6 = transitionState === "exit";
152
+ const t7 = transitionState === "unmounted";
153
+ const t8 = transitionState === "entered";
154
+ let t9;
155
+ if ($[2] !== isOpen || $[3] !== t5 || $[4] !== t6 || $[5] !== t7 || $[6] !== t8) {
156
+ t9 = {
156
157
  open: isOpen,
157
- enter: t4,
158
- exit: t5,
159
- unmounted: t6,
160
- entered: t7
158
+ enter: t5,
159
+ exit: t6,
160
+ unmounted: t7,
161
+ entered: t8
161
162
  };
162
163
  $[2] = isOpen;
163
- $[3] = t4;
164
- $[4] = t5;
165
- $[5] = t6;
166
- $[6] = t7;
167
- $[7] = t8;
168
- } else t8 = $[7];
169
- let t9;
170
- if ($[8] !== T0 || $[9] !== children || $[10] !== placement || $[11] !== ref || $[12] !== style || $[13] !== styles || $[14] !== t2 || $[15] !== t3 || $[16] !== t8) {
171
- t9 = /* @__PURE__ */ jsx(T0, {
164
+ $[3] = t5;
165
+ $[4] = t6;
166
+ $[5] = t7;
167
+ $[6] = t8;
168
+ $[7] = t9;
169
+ } else t9 = $[7];
170
+ let t10;
171
+ if ($[8] !== T0 || $[9] !== children || $[10] !== placement || $[11] !== ref || $[12] !== style || $[13] !== styles || $[14] !== t2 || $[15] !== t4 || $[16] !== t9) {
172
+ t10 = /* @__PURE__ */ jsx(T0, {
172
173
  qa: t2,
173
- ...t3,
174
+ "data-overlay-layer": t3,
175
+ ...t4,
174
176
  ref,
175
177
  styles,
176
- mods: t8,
178
+ mods: t9,
177
179
  "data-placement": placement,
178
180
  style,
179
181
  children
@@ -185,11 +187,11 @@ const PopoverWrapper = forwardRef(function PopoverWrapper(props, ref) {
185
187
  $[12] = style;
186
188
  $[13] = styles;
187
189
  $[14] = t2;
188
- $[15] = t3;
189
- $[16] = t8;
190
- $[17] = t9;
191
- } else t9 = $[17];
192
- return t9;
190
+ $[15] = t4;
191
+ $[16] = t9;
192
+ $[17] = t10;
193
+ } else t10 = $[17];
194
+ return t10;
193
195
  });
194
196
  const _Popover = forwardRef(Popover);
195
197
  _Popover.displayName = "Popover";
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.js","names":["useObjectRef","BaseProps","tasty","ForwardedRef","forwardRef","HTMLAttributes","AriaOverlayProps","useModal","useOverlay","PlacementAxis","mergeProps","mergeRefs","useOverlayEscapeGuard","useModalLayerRef","CubeOverlayProps","Overlay","TransitionState","Props","PopoverElement","role","styles","display","hide","exit","unmounted","pointerEvents","position","transition","transform","open","opacity","transformOrigin","CubePopoverProps","container","HTMLElement","placement","arrowProps","hideArrow","isOpen","onClose","shouldCloseOnBlur","isNonModal","isDismissable","shouldCloseOnInteractOutside","element","Element","Popover","props","ref","$","_c","children","otherProps","qa","style","t0","undefined","domRef","t1","t2","overlayProps","rawOverlayProps","layerRef","t3","t4","t5","PopoverWrapperProps","Omit","PopoverWrapper","transitionState","isDisabled","modalProps","T0","t6","t7","t8","enter","entered","t9","_Popover","displayName"],"sources":["../../../../src/components/overlays/Modal/Popover.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, HTMLAttributes } from 'react';\nimport { AriaOverlayProps, useModal, useOverlay } from 'react-aria';\n\nimport { PlacementAxis } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { useModalLayerRef } from './modal-containment';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\n\nimport type { Props } from '../../../props';\n\nconst PopoverElement = tasty({\n role: 'presentation',\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n pointerEvents: 'auto',\n position: 'absolute',\n transition:\n 'opacity $disclosure-transition linear, visibility 0ms linear, transform $disclosure-transition ease-in-out',\n transform: {\n '': 'scale(1, .9)',\n open: 'initial',\n },\n opacity: {\n '': 0,\n open: '.9999',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n },\n },\n});\n\nexport interface CubePopoverProps\n extends BaseProps,\n AriaOverlayProps,\n CubeOverlayProps,\n TransitionState {\n container?: HTMLElement;\n placement?: PlacementAxis;\n arrowProps?: HTMLAttributes<HTMLElement>;\n hideArrow?: boolean;\n isOpen?: boolean;\n onClose?: () => void;\n shouldCloseOnBlur?: boolean;\n isNonModal?: boolean;\n isDismissable?: boolean;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\nfunction Popover(props: CubePopoverProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n style,\n styles,\n children,\n placement,\n arrowProps,\n isNonModal,\n isDismissable = true,\n ...otherProps\n } = props;\n\n let domRef = useObjectRef(ref);\n\n // `useOverlay` has to run here rather than inside `PopoverWrapper`, on the\n // *logical* open state — `Overlay` hands its child an `isOpen` that only\n // turns true once the enter animation has settled. Registering the overlay\n // that late leaves it out of React Aria's visible-overlay stack for the first\n // frames, and `Escape` silently does nothing until the popover finishes\n // animating in. `Modal` and `Tray` call it from the same place for the same\n // reason.\n let { overlayProps: rawOverlayProps } = useOverlay(\n { ...props, isDismissable: isDismissable && props.isOpen },\n domRef,\n );\n\n // ...and a popover that has already closed must not answer for `Escape`\n // while it animates out — see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // Opened inside a modal, it stays readable while the modal hides the page.\n const layerRef = useModalLayerRef();\n\n return (\n <Overlay {...otherProps}>\n <PopoverWrapper\n ref={mergeRefs(domRef, layerRef)}\n qa={qa}\n style={style}\n styles={styles}\n placement={placement}\n arrowProps={arrowProps}\n isNonModal={isNonModal}\n overlayProps={overlayProps}\n >\n {children}\n </PopoverWrapper>\n </Overlay>\n );\n}\n\ninterface PopoverWrapperProps\n extends Omit<CubePopoverProps, 'isDismissable'>,\n TransitionState {\n overlayProps?: Props;\n}\n\nconst PopoverWrapper = forwardRef(function PopoverWrapper(\n props: PopoverWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n placement = 'bottom',\n arrowProps,\n // `isOpen` here is the transition's settled state, not the trigger's — it\n // drives the enter/exit styles only.\n isOpen,\n style,\n styles,\n isNonModal,\n transitionState,\n overlayProps,\n ...otherProps\n } = props;\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n return (\n <PopoverElement\n qa={qa || 'Popover'}\n {...mergeProps(otherProps, overlayProps, modalProps)}\n ref={ref}\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-placement={placement}\n style={style}\n >\n {children}\n </PopoverElement>\n );\n});\n\nconst _Popover = forwardRef(Popover);\n\n_Popover.displayName = 'Popover';\n\nexport { _Popover as Popover };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popover.js","names":["useObjectRef","BaseProps","tasty","ForwardedRef","forwardRef","HTMLAttributes","AriaOverlayProps","useModal","useOverlay","PlacementAxis","mergeProps","mergeRefs","useOverlayEscapeGuard","useModalLayerRef","CubeOverlayProps","Overlay","TransitionState","Props","PopoverElement","role","styles","display","hide","exit","unmounted","pointerEvents","position","transition","transform","open","opacity","transformOrigin","CubePopoverProps","container","HTMLElement","placement","arrowProps","hideArrow","isOpen","onClose","shouldCloseOnBlur","isNonModal","isDismissable","shouldCloseOnInteractOutside","element","Element","Popover","props","ref","$","_c","children","otherProps","qa","style","t0","undefined","domRef","t1","t2","overlayProps","rawOverlayProps","layerRef","t3","t4","t5","PopoverWrapperProps","Omit","PopoverWrapper","transitionState","isDisabled","modalProps","T0","t6","t7","t8","t9","enter","entered","t10","_Popover","displayName"],"sources":["../../../../src/components/overlays/Modal/Popover.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, HTMLAttributes } from 'react';\nimport { AriaOverlayProps, useModal, useOverlay } from 'react-aria';\n\nimport { PlacementAxis } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { useModalLayerRef } from './modal-containment';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\n\nimport type { Props } from '../../../props';\n\nconst PopoverElement = tasty({\n role: 'presentation',\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n pointerEvents: 'auto',\n position: 'absolute',\n transition:\n 'opacity $disclosure-transition linear, visibility 0ms linear, transform $disclosure-transition ease-in-out',\n transform: {\n '': 'scale(1, .9)',\n open: 'initial',\n },\n opacity: {\n '': 0,\n open: '.9999',\n },\n transformOrigin: {\n '': 'top center',\n '[data-placement=\"top\"]': 'bottom center',\n },\n },\n});\n\nexport interface CubePopoverProps\n extends BaseProps,\n AriaOverlayProps,\n CubeOverlayProps,\n TransitionState {\n container?: HTMLElement;\n placement?: PlacementAxis;\n arrowProps?: HTMLAttributes<HTMLElement>;\n /** @deprecated Has no effect: the popover renders no arrow. */\n hideArrow?: boolean;\n isOpen?: boolean;\n onClose?: () => void;\n shouldCloseOnBlur?: boolean;\n isNonModal?: boolean;\n isDismissable?: boolean;\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\nfunction Popover(props: CubePopoverProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n style,\n styles,\n children,\n placement,\n arrowProps,\n isNonModal,\n isDismissable = true,\n ...otherProps\n } = props;\n\n let domRef = useObjectRef(ref);\n\n // `useOverlay` has to run here rather than inside `PopoverWrapper`, on the\n // *logical* open state — `Overlay` hands its child an `isOpen` that only\n // turns true once the enter animation has settled. Registering the overlay\n // that late leaves it out of React Aria's visible-overlay stack for the first\n // frames, and `Escape` silently does nothing until the popover finishes\n // animating in. `Modal` and `Tray` call it from the same place for the same\n // reason.\n let { overlayProps: rawOverlayProps } = useOverlay(\n { ...props, isDismissable: isDismissable && props.isOpen },\n domRef,\n );\n\n // ...and a popover that has already closed must not answer for `Escape`\n // while it animates out — see `useOverlayEscapeGuard`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // Opened inside a modal, it stays readable while the modal hides the page.\n const layerRef = useModalLayerRef();\n\n return (\n <Overlay {...otherProps}>\n <PopoverWrapper\n ref={mergeRefs(domRef, layerRef)}\n qa={qa}\n style={style}\n styles={styles}\n placement={placement}\n arrowProps={arrowProps}\n isNonModal={isNonModal}\n overlayProps={overlayProps}\n >\n {children}\n </PopoverWrapper>\n </Overlay>\n );\n}\n\ninterface PopoverWrapperProps\n extends Omit<CubePopoverProps, 'isDismissable'>,\n TransitionState {\n overlayProps?: Props;\n}\n\nconst PopoverWrapper = forwardRef(function PopoverWrapper(\n props: PopoverWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n placement = 'bottom',\n arrowProps,\n // `isOpen` here is the transition's settled state, not the trigger's — it\n // drives the enter/exit styles only.\n isOpen,\n style,\n styles,\n isNonModal,\n transitionState,\n overlayProps,\n ...otherProps\n } = props;\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n return (\n <PopoverElement\n qa={qa || 'Popover'}\n data-overlay-layer=\"\"\n {...mergeProps(otherProps, overlayProps, modalProps)}\n ref={ref}\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-placement={placement}\n style={style}\n >\n {children}\n </PopoverElement>\n );\n});\n\nconst _Popover = forwardRef(Popover);\n\n_Popover.displayName = 'Popover';\n\nexport { _Popover as Popover };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.196.0 | 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";
@@ -189,6 +189,7 @@ let TrayWrapper = forwardRef(function TrayWrapper(props, ref) {
189
189
  if ($[11] !== children || $[12] !== domProps || $[13] !== modalProps || $[14] !== ref || $[15] !== styles || $[16] !== t2 || $[17] !== t7) {
190
190
  t8 = /* @__PURE__ */ jsx(TrayElement, {
191
191
  qa: t2,
192
+ "data-overlay-layer": "",
192
193
  styles,
193
194
  mods: t7,
194
195
  ...domProps,
@@ -1 +1 @@
1
- {"version":3,"file":"Tray.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","AriaOverlayProps","useModal","useOverlay","usePreventScroll","mergeProps","mergeRefs","useOverlayEscapeGuard","OVERLAY_WRAPPER_STYLES","ModalContainmentProvider","useModalContainment","CubeOverlayProps","Overlay","TransitionState","Underlay","Props","TrayWrapperElement","qa","styles","placeContent","placeItems","TrayElement","display","hide","exit","unmounted","zIndex","height","width","pointerEvents","transition","opacity","open","CubeTrayProps","container","HTMLElement","onClose","action","isFixedHeight","isNonModal","children","isKeyboardDismissDisabled","isOpen","onOpenChange","defaultOpen","shouldCloseOnInteractOutside","element","Element","CubeTrayWrapperProps","overlayProps","Tray","props","ref","$","_c","otherProps","domRef","t0","isDismissable","rawOverlayProps","underlayProps","containment","containmentRef","t1","t2","t3","t4","t5","TrayWrapper","transitionState","isDisabled","modalProps","domProps","t6","t7","enter","entered","t8","t9","_Tray","displayName"],"sources":["../../../../src/components/overlays/Modal/Tray.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport {\n AriaOverlayProps,\n useModal,\n useOverlay,\n usePreventScroll,\n} from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { OVERLAY_WRAPPER_STYLES } from './Modal';\nimport {\n ModalContainmentProvider,\n useModalContainment,\n} from './modal-containment';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nconst TrayWrapperElement = tasty({\n qa: 'TrayWrapper',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- overlay wrapper base shared with ModalWrapper\n ...OVERLAY_WRAPPER_STYLES,\n placeContent: 'end center',\n placeItems: 'end center',\n },\n});\n\nconst TrayElement = tasty({\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: 'max 90dvh',\n width: '$min-dialog-size 90vw',\n pointerEvents: 'auto',\n transition:\n 'transform .25s ease-in-out, opacity .25s linear, visibility 0ms linear',\n opacity: {\n '': 0,\n open: '.9999',\n },\n },\n});\n\nexport interface CubeTrayProps extends AriaOverlayProps, CubeOverlayProps {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n isFixedHeight?: boolean;\n isNonModal?: boolean;\n styles?: Styles;\n children?: ReactNode;\n isKeyboardDismissDisabled?: boolean;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n /**\n * Predicate that decides whether the overlay should close in response to an\n * interaction outside of it. When the function returns `false`, react-aria's\n * `useOverlay` no longer calls `stopPropagation`/`preventDefault` on the\n * outside event, which lets sibling triggers receive the click.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\ninterface CubeTrayWrapperProps extends CubeTrayProps, TransitionState {\n isOpen?: boolean;\n overlayProps?: Props;\n}\n\nfunction Tray(props: CubeTrayProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n children,\n onClose,\n isFixedHeight,\n isNonModal,\n styles,\n shouldCloseOnInteractOutside,\n ...otherProps\n } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props, isDismissable: true, shouldCloseOnInteractOutside },\n domRef,\n );\n\n // Same as `Modal`: a tray pressed while it closes must not take `Escape`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // Same as `Modal`: the page behind an open tray is hidden.\n const { containment, ref: containmentRef } = useModalContainment(\n !isNonModal,\n !!props.isOpen,\n );\n\n return (\n <ModalContainmentProvider value={containment}>\n <Overlay {...otherProps}>\n <Underlay {...underlayProps} />\n <TrayWrapper\n ref={mergeRefs(domRef, containmentRef)}\n qa={qa}\n overlayProps={overlayProps}\n isFixedHeight={isFixedHeight}\n isNonModal={isNonModal}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </TrayWrapper>\n </Overlay>\n </ModalContainmentProvider>\n );\n}\n\nlet TrayWrapper = forwardRef(function TrayWrapper(\n props: CubeTrayWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n styles,\n isFixedHeight,\n isNonModal,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n usePreventScroll();\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n let domProps = mergeProps(otherProps, overlayProps);\n\n return (\n <TrayWrapperElement\n mods={{\n open: isOpen,\n }}\n >\n <TrayElement\n qa={qa || 'Tray'}\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 'fixed-height': isFixedHeight,\n }}\n {...domProps}\n {...modalProps}\n ref={ref}\n >\n {children}\n </TrayElement>\n </TrayWrapperElement>\n );\n});\n\nlet _Tray = forwardRef(Tray);\n\n_Tray.displayName = 'Tray';\n\nexport { _Tray as Tray };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tray.js","names":["useObjectRef","BaseProps","Styles","tasty","ForwardedRef","forwardRef","ReactNode","AriaOverlayProps","useModal","useOverlay","usePreventScroll","mergeProps","mergeRefs","useOverlayEscapeGuard","OVERLAY_WRAPPER_STYLES","ModalContainmentProvider","useModalContainment","CubeOverlayProps","Overlay","TransitionState","Underlay","Props","TrayWrapperElement","qa","styles","placeContent","placeItems","TrayElement","display","hide","exit","unmounted","zIndex","height","width","pointerEvents","transition","opacity","open","CubeTrayProps","container","HTMLElement","onClose","action","isFixedHeight","isNonModal","children","isKeyboardDismissDisabled","isOpen","onOpenChange","defaultOpen","shouldCloseOnInteractOutside","element","Element","CubeTrayWrapperProps","overlayProps","Tray","props","ref","$","_c","otherProps","domRef","t0","isDismissable","rawOverlayProps","underlayProps","containment","containmentRef","t1","t2","t3","t4","t5","TrayWrapper","transitionState","isDisabled","modalProps","domProps","t6","t7","enter","entered","t8","t9","_Tray","displayName"],"sources":["../../../../src/components/overlays/Modal/Tray.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, ReactNode } from 'react';\nimport {\n AriaOverlayProps,\n useModal,\n useOverlay,\n usePreventScroll,\n} from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useOverlayEscapeGuard } from '../../../utils/react/useOverlayEscapeGuard';\n\nimport { OVERLAY_WRAPPER_STYLES } from './Modal';\nimport {\n ModalContainmentProvider,\n useModalContainment,\n} from './modal-containment';\nimport { CubeOverlayProps, Overlay } from './Overlay';\nimport { TransitionState } from './types';\nimport { Underlay } from './Underlay';\n\nimport type { Props } from '../../../props';\n\nconst TrayWrapperElement = tasty({\n qa: 'TrayWrapper',\n styles: {\n // eslint-disable-next-line tasty/no-style-spread -- overlay wrapper base shared with ModalWrapper\n ...OVERLAY_WRAPPER_STYLES,\n placeContent: 'end center',\n placeItems: 'end center',\n },\n});\n\nconst TrayElement = tasty({\n styles: {\n display: 'initial',\n hide: {\n '': true,\n 'enter | entered': false,\n exit: false,\n unmounted: true,\n },\n zIndex: 10,\n height: 'max 90dvh',\n width: '$min-dialog-size 90vw',\n pointerEvents: 'auto',\n transition:\n 'transform .25s ease-in-out, opacity .25s linear, visibility 0ms linear',\n opacity: {\n '': 0,\n open: '.9999',\n },\n },\n});\n\nexport interface CubeTrayProps extends AriaOverlayProps, CubeOverlayProps {\n container?: HTMLElement;\n qa?: BaseProps['qa'];\n onClose?: (action?: string) => void;\n isFixedHeight?: boolean;\n isNonModal?: boolean;\n styles?: Styles;\n children?: ReactNode;\n isKeyboardDismissDisabled?: boolean;\n isOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n defaultOpen?: boolean;\n /**\n * Predicate that decides whether the overlay should close in response to an\n * interaction outside of it. When the function returns `false`, react-aria's\n * `useOverlay` no longer calls `stopPropagation`/`preventDefault` on the\n * outside event, which lets sibling triggers receive the click.\n */\n shouldCloseOnInteractOutside?: (element: Element) => boolean;\n}\n\ninterface CubeTrayWrapperProps extends CubeTrayProps, TransitionState {\n isOpen?: boolean;\n overlayProps?: Props;\n}\n\nfunction Tray(props: CubeTrayProps, ref: ForwardedRef<HTMLElement>) {\n let {\n qa,\n children,\n onClose,\n isFixedHeight,\n isNonModal,\n styles,\n shouldCloseOnInteractOutside,\n ...otherProps\n } = props;\n let domRef = useObjectRef(ref);\n\n let { overlayProps: rawOverlayProps, underlayProps } = useOverlay(\n { ...props, isDismissable: true, shouldCloseOnInteractOutside },\n domRef,\n );\n\n // Same as `Modal`: a tray pressed while it closes must not take `Escape`.\n const overlayProps = useOverlayEscapeGuard(rawOverlayProps, props.isOpen);\n\n // Same as `Modal`: the page behind an open tray is hidden.\n const { containment, ref: containmentRef } = useModalContainment(\n !isNonModal,\n !!props.isOpen,\n );\n\n return (\n <ModalContainmentProvider value={containment}>\n <Overlay {...otherProps}>\n <Underlay {...underlayProps} />\n <TrayWrapper\n ref={mergeRefs(domRef, containmentRef)}\n qa={qa}\n overlayProps={overlayProps}\n isFixedHeight={isFixedHeight}\n isNonModal={isNonModal}\n styles={styles}\n onClose={onClose}\n >\n {children}\n </TrayWrapper>\n </Overlay>\n </ModalContainmentProvider>\n );\n}\n\nlet TrayWrapper = forwardRef(function TrayWrapper(\n props: CubeTrayWrapperProps,\n ref,\n) {\n let {\n qa,\n children,\n isOpen,\n styles,\n isFixedHeight,\n isNonModal,\n overlayProps,\n transitionState,\n ...otherProps\n } = props;\n usePreventScroll();\n let { modalProps } = useModal({\n isDisabled: isNonModal,\n });\n\n let domProps = mergeProps(otherProps, overlayProps);\n\n return (\n <TrayWrapperElement\n mods={{\n open: isOpen,\n }}\n >\n <TrayElement\n qa={qa || 'Tray'}\n data-overlay-layer=\"\"\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 'fixed-height': isFixedHeight,\n }}\n {...domProps}\n {...modalProps}\n ref={ref}\n >\n {children}\n </TrayElement>\n </TrayWrapperElement>\n );\n});\n\nlet _Tray = forwardRef(Tray);\n\n_Tray.displayName = 'Tray';\n\nexport { _Tray as Tray };\n"],"mappings":"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"}