@vkontakte/vkui 5.5.4 → 5.6.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 (1179) hide show
  1. package/README.md +2 -2
  2. package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
  4. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  5. package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
  6. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
  7. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  8. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  9. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  10. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  11. package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  12. package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  13. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  14. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  15. package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
  16. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  17. package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
  18. package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
  19. package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
  20. package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
  21. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  22. package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
  23. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  24. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  25. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  26. package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
  27. package/dist/cjs/components/Avatar/helpers.js.map +1 -1
  28. package/dist/cjs/components/Badge/Badge.js.map +1 -1
  29. package/dist/cjs/components/Banner/Banner.d.ts +5 -1
  30. package/dist/cjs/components/Banner/Banner.js +4 -3
  31. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  32. package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
  33. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
  34. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
  35. package/dist/cjs/components/Button/Button.d.ts +2 -1
  36. package/dist/cjs/components/Button/Button.js +5 -3
  37. package/dist/cjs/components/Button/Button.js.map +1 -1
  38. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  39. package/dist/cjs/components/Calendar/Calendar.js +2 -1
  40. package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
  41. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
  42. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  43. package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
  44. package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
  45. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  46. package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
  47. package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
  48. package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
  49. package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
  50. package/dist/cjs/components/Card/Card.js.map +1 -1
  51. package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
  52. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  53. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  54. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  55. package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
  56. package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
  57. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  58. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  59. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  60. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  61. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  62. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
  63. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  64. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  65. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
  66. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  67. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  68. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  69. package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  70. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  71. package/dist/cjs/components/Counter/Counter.js.map +1 -1
  72. package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
  73. package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
  74. package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  75. package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
  76. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  77. package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  78. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  79. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  80. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  81. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  82. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  83. package/dist/cjs/components/DatePicker/DatePicker.js +8 -5
  84. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  85. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
  86. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  87. package/dist/cjs/components/Div/Div.js.map +1 -1
  88. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  89. package/dist/cjs/components/Epic/Epic.d.ts +1 -0
  90. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  91. package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
  92. package/dist/cjs/components/File/File.js.map +1 -1
  93. package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
  94. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  95. package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
  96. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  97. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  98. package/dist/cjs/components/Footer/Footer.js.map +1 -1
  99. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  100. package/dist/cjs/components/FormItem/FormItem.js +2 -1
  101. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  102. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  103. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  104. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  105. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  106. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  107. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  108. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  109. package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  110. package/dist/cjs/components/Group/Group.d.ts +8 -8
  111. package/dist/cjs/components/Group/Group.js +1 -1
  112. package/dist/cjs/components/Group/Group.js.map +1 -1
  113. package/dist/cjs/components/Header/Header.js.map +1 -1
  114. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  115. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  116. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
  117. package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  118. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
  119. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  120. package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
  121. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  122. package/dist/cjs/components/Image/Image.js.map +1 -1
  123. package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  124. package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
  125. package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
  126. package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  127. package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  128. package/dist/cjs/components/ImageBase/context.js.map +1 -1
  129. package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
  130. package/dist/cjs/components/ImageBase/validators.js +3 -4
  131. package/dist/cjs/components/ImageBase/validators.js.map +1 -1
  132. package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
  133. package/dist/cjs/components/Input/Input.js.map +1 -1
  134. package/dist/cjs/components/InputLike/InputLike.js +6 -4
  135. package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
  136. package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
  137. package/dist/cjs/components/Link/Link.js.map +1 -1
  138. package/dist/cjs/components/List/List.js.map +1 -1
  139. package/dist/cjs/components/List/ListContext.js.map +1 -1
  140. package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
  141. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  142. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  143. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
  144. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  145. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  146. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  147. package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
  148. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  149. package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
  150. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  151. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  152. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  153. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
  154. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  155. package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
  156. package/dist/cjs/components/ModalRoot/types.js.map +1 -1
  157. package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
  158. package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
  159. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  160. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  161. package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  162. package/dist/cjs/components/Pagination/Pagination.js +2 -1
  163. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  164. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  165. package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  166. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  167. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  168. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  169. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  170. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  171. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  172. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  173. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  174. package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
  175. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  176. package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
  177. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  178. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  179. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  180. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  181. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  182. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  183. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  184. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
  185. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  186. package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  187. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  188. package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  189. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  190. package/dist/cjs/components/Removable/Removable.js +2 -2
  191. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  192. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  193. package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  194. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  195. package/dist/cjs/components/Root/Root.d.ts +1 -0
  196. package/dist/cjs/components/Root/Root.js.map +1 -1
  197. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  198. package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
  199. package/dist/cjs/components/Search/Search.js +2 -2
  200. package/dist/cjs/components/Search/Search.js.map +1 -1
  201. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  202. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  203. package/dist/cjs/components/Select/Select.js.map +1 -1
  204. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  205. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
  206. package/dist/cjs/components/Separator/Separator.js.map +1 -1
  207. package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  208. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
  209. package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  210. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
  211. package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
  212. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  213. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  214. package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  215. package/dist/cjs/components/Slider/helpers.js.map +1 -1
  216. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  217. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  218. package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
  219. package/dist/cjs/components/Spinner/Spinner.js +19 -4
  220. package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
  221. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  222. package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
  223. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  224. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  225. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  226. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  227. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  228. package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
  229. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  230. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  231. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  232. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  233. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  234. package/dist/cjs/components/Textarea/Textarea.js +2 -1
  235. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  236. package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
  237. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  238. package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
  239. package/dist/cjs/components/Touch/Touch.js +1 -1
  240. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  241. package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
  242. package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
  243. package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
  244. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  245. package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
  246. package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
  247. package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
  248. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  249. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  250. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  251. package/dist/cjs/components/View/View.d.ts +1 -0
  252. package/dist/cjs/components/View/View.js +16 -8
  253. package/dist/cjs/components/View/View.js.map +1 -1
  254. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  255. package/dist/cjs/components/View/utils.js +2 -2
  256. package/dist/cjs/components/View/utils.js.map +1 -1
  257. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  258. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  259. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  260. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  261. package/dist/cjs/helpers/appearance.js.map +1 -1
  262. package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
  263. package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
  264. package/dist/cjs/helpers/math.js.map +1 -1
  265. package/dist/cjs/helpers/range.js.map +1 -1
  266. package/dist/cjs/hoc/withContext.js.map +1 -1
  267. package/dist/cjs/hoc/withInsets.js.map +1 -1
  268. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  269. package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
  270. package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  271. package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  272. package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
  273. package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  274. package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
  275. package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
  276. package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  277. package/dist/cjs/hooks/useAppearance.js.map +1 -1
  278. package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
  279. package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
  280. package/dist/cjs/hooks/useBooleanState.js.map +1 -1
  281. package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
  282. package/dist/cjs/hooks/useCalendar.js +6 -3
  283. package/dist/cjs/hooks/useCalendar.js.map +1 -1
  284. package/dist/cjs/hooks/useChipsInput.js +2 -1
  285. package/dist/cjs/hooks/useChipsInput.js.map +1 -1
  286. package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
  287. package/dist/cjs/hooks/useDateInput.js +5 -3
  288. package/dist/cjs/hooks/useDateInput.js.map +1 -1
  289. package/dist/cjs/hooks/useEffectDev.js.map +1 -1
  290. package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
  291. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  292. package/dist/cjs/hooks/useExternRef.js.map +1 -1
  293. package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
  294. package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
  295. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  296. package/dist/cjs/hooks/useId.js.map +1 -1
  297. package/dist/cjs/hooks/useInsets.js.map +1 -1
  298. package/dist/cjs/hooks/useIsClient.js.map +1 -1
  299. package/dist/cjs/hooks/useKeyboard.js +4 -4
  300. package/dist/cjs/hooks/useKeyboard.js.map +1 -1
  301. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  302. package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
  303. package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
  304. package/dist/cjs/hooks/useOrientationChange.js +1 -1
  305. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  306. package/dist/cjs/hooks/usePagination.js.map +1 -1
  307. package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
  308. package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
  309. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  310. package/dist/cjs/hooks/usePrevious.js.map +1 -1
  311. package/dist/cjs/hooks/useTimeout.js +2 -1
  312. package/dist/cjs/hooks/useTimeout.js.map +1 -1
  313. package/dist/cjs/hooks/useTodayDate.js.map +1 -1
  314. package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
  315. package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
  316. package/dist/cjs/index.d.ts +3 -1
  317. package/dist/cjs/index.js +4 -0
  318. package/dist/cjs/index.js.map +1 -1
  319. package/dist/cjs/lib/SSR.js.map +1 -1
  320. package/dist/cjs/lib/accessibility.js.map +1 -1
  321. package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
  322. package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
  323. package/dist/cjs/lib/animate.js.map +1 -1
  324. package/dist/cjs/lib/browser.js.map +1 -1
  325. package/dist/cjs/lib/calendar.js.map +1 -1
  326. package/dist/cjs/lib/callMultiple.js.map +1 -1
  327. package/dist/cjs/lib/date.js.map +1 -1
  328. package/dist/cjs/lib/dom.js.map +1 -1
  329. package/dist/cjs/lib/floating/adapters.js.map +1 -1
  330. package/dist/cjs/lib/floating/functions.js.map +1 -1
  331. package/dist/cjs/lib/floating/index.js.map +1 -1
  332. package/dist/cjs/lib/fx.js.map +1 -1
  333. package/dist/cjs/lib/getNavId.js.map +1 -1
  334. package/dist/cjs/lib/isRefObject.js.map +1 -1
  335. package/dist/cjs/lib/matchMedia.js.map +1 -1
  336. package/dist/cjs/lib/offset.js +6 -5
  337. package/dist/cjs/lib/offset.js.map +1 -1
  338. package/dist/cjs/lib/platform.js.map +1 -1
  339. package/dist/cjs/lib/polyfills.js.map +1 -1
  340. package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
  341. package/dist/cjs/lib/select.js +2 -2
  342. package/dist/cjs/lib/select.js.map +1 -1
  343. package/dist/cjs/lib/styles.js.map +1 -1
  344. package/dist/cjs/lib/supportEvents.js.map +1 -1
  345. package/dist/cjs/lib/taptic.js.map +1 -1
  346. package/dist/cjs/lib/testing.js.map +1 -1
  347. package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
  348. package/dist/cjs/lib/touch.js.map +1 -1
  349. package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
  350. package/dist/cjs/lib/utils.js.map +1 -1
  351. package/dist/cjs/lib/warnOnce.js.map +1 -1
  352. package/dist/cjs/shared/breakpoints.js.map +1 -1
  353. package/dist/components/Accordion/Accordion.js.map +1 -1
  354. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  355. package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
  356. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  357. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
  358. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  359. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  360. package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  361. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  362. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  363. package/dist/components/Alert/Alert.js.map +1 -1
  364. package/dist/components/AppRoot/AppRoot.js +6 -5
  365. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  366. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  367. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  368. package/dist/components/AppRoot/ScrollContext.js +5 -3
  369. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  370. package/dist/components/Avatar/Avatar.js.map +1 -1
  371. package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  372. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  373. package/dist/components/Avatar/helpers.js.map +1 -1
  374. package/dist/components/Banner/Banner.d.ts +5 -1
  375. package/dist/components/Banner/Banner.js +4 -3
  376. package/dist/components/Banner/Banner.js.map +1 -1
  377. package/dist/components/BaseGallery/BaseGallery.js +15 -9
  378. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  379. package/dist/components/BaseGallery/helpers.js.map +1 -1
  380. package/dist/components/Button/Button.d.ts +2 -1
  381. package/dist/components/Button/Button.js +5 -3
  382. package/dist/components/Button/Button.js.map +1 -1
  383. package/dist/components/Calendar/Calendar.js +2 -1
  384. package/dist/components/Calendar/Calendar.js.map +1 -1
  385. package/dist/components/CalendarDay/CalendarDay.js +4 -2
  386. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  387. package/dist/components/CalendarDays/CalendarDays.js +6 -5
  388. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  389. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  390. package/dist/components/CalendarRange/CalendarRange.js +16 -8
  391. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  392. package/dist/components/CalendarTime/CalendarTime.js +4 -2
  393. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  394. package/dist/components/CardGrid/CardGrid.js.map +1 -1
  395. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  396. package/dist/components/Cell/Cell.js.map +1 -1
  397. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  398. package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
  399. package/dist/components/Cell/useDraggable.js.map +1 -1
  400. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  401. package/dist/components/Chip/Chip.js.map +1 -1
  402. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  403. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  404. package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
  405. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  406. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  407. package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
  408. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  409. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  410. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  411. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  412. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  413. package/dist/components/Counter/Counter.js.map +1 -1
  414. package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
  415. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  416. package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  417. package/dist/components/CustomSelect/CustomSelect.js +15 -8
  418. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  419. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
  420. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  421. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  422. package/dist/components/DateInput/DateInput.js +4 -2
  423. package/dist/components/DateInput/DateInput.js.map +1 -1
  424. package/dist/components/DatePicker/DatePicker.js +8 -5
  425. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  426. package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
  427. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  428. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  429. package/dist/components/Epic/Epic.d.ts +1 -0
  430. package/dist/components/Epic/Epic.js.map +1 -1
  431. package/dist/components/Epic/ScrollSaver.js.map +1 -1
  432. package/dist/components/File/File.js.map +1 -1
  433. package/dist/components/FixedLayout/FixedLayout.js +2 -1
  434. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  435. package/dist/components/FocusTrap/FocusTrap.js +4 -3
  436. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  437. package/dist/components/FormField/FormField.js.map +1 -1
  438. package/dist/components/FormItem/FormItem.js +2 -1
  439. package/dist/components/FormItem/FormItem.js.map +1 -1
  440. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  441. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
  442. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  443. package/dist/components/Gallery/Gallery.js.map +1 -1
  444. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  445. package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  446. package/dist/components/Group/Group.d.ts +8 -8
  447. package/dist/components/Group/Group.js +1 -1
  448. package/dist/components/Group/Group.js.map +1 -1
  449. package/dist/components/Header/Header.js.map +1 -1
  450. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  451. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
  452. package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  453. package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
  454. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  455. package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
  456. package/dist/components/IconButton/IconButton.js.map +1 -1
  457. package/dist/components/Image/Image.js.map +1 -1
  458. package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  459. package/dist/components/ImageBase/ImageBase.js +4 -2
  460. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  461. package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  462. package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  463. package/dist/components/ImageBase/context.js.map +1 -1
  464. package/dist/components/ImageBase/helpers.js.map +1 -1
  465. package/dist/components/ImageBase/validators.js +3 -4
  466. package/dist/components/ImageBase/validators.js.map +1 -1
  467. package/dist/components/Input/Input.js.map +1 -1
  468. package/dist/components/InputLike/InputLike.js +6 -4
  469. package/dist/components/InputLike/InputLike.js.map +1 -1
  470. package/dist/components/Link/Link.js.map +1 -1
  471. package/dist/components/List/List.js.map +1 -1
  472. package/dist/components/List/ListContext.js.map +1 -1
  473. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  474. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  475. package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
  476. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  477. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  478. package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
  479. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  480. package/dist/components/ModalRoot/ModalRoot.js +21 -15
  481. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  482. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  483. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  484. package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
  485. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  486. package/dist/components/ModalRoot/types.d.ts +4 -2
  487. package/dist/components/ModalRoot/types.js.map +1 -1
  488. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  489. package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
  490. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  491. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  492. package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  493. package/dist/components/Pagination/Pagination.js +2 -1
  494. package/dist/components/Pagination/Pagination.js.map +1 -1
  495. package/dist/components/Panel/Panel.js.map +1 -1
  496. package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  497. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  498. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  499. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  500. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  501. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  502. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  503. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  504. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  505. package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
  506. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  507. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  508. package/dist/components/Popover/Popover.js.map +1 -1
  509. package/dist/components/Popper/Popper.js.map +1 -1
  510. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  511. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  512. package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
  513. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  514. package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  515. package/dist/components/Radio/Radio.js.map +1 -1
  516. package/dist/components/Removable/Removable.js +2 -2
  517. package/dist/components/Removable/Removable.js.map +1 -1
  518. package/dist/components/RichCell/RichCell.js.map +1 -1
  519. package/dist/components/Root/Root.d.ts +1 -0
  520. package/dist/components/Root/Root.js.map +1 -1
  521. package/dist/components/Search/Search.js +2 -2
  522. package/dist/components/Search/Search.js.map +1 -1
  523. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  524. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  525. package/dist/components/Select/Select.js.map +1 -1
  526. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  527. package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
  528. package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  529. package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
  530. package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  531. package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
  532. package/dist/components/SimpleCell/SimpleCell.js +16 -5
  533. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  534. package/dist/components/Slider/Slider.js.map +1 -1
  535. package/dist/components/Slider/helpers.js.map +1 -1
  536. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  537. package/dist/components/Spinner/Spinner.d.ts +2 -1
  538. package/dist/components/Spinner/Spinner.js +19 -4
  539. package/dist/components/Spinner/Spinner.js.map +1 -1
  540. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  541. package/dist/components/SplitCol/SplitColContext.js.map +1 -1
  542. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  543. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  544. package/dist/components/Switch/Switch.js.map +1 -1
  545. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  546. package/dist/components/TabbarItem/TabbarItem.js +1 -1
  547. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  548. package/dist/components/Tabs/Tabs.js.map +1 -1
  549. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  550. package/dist/components/Tappable/Tappable.js.map +1 -1
  551. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  552. package/dist/components/Textarea/Textarea.js +2 -1
  553. package/dist/components/Textarea/Textarea.js.map +1 -1
  554. package/dist/components/Tooltip/Tooltip.js +4 -2
  555. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  556. package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
  557. package/dist/components/Touch/Touch.js +1 -1
  558. package/dist/components/Touch/Touch.js.map +1 -1
  559. package/dist/components/Touch/TouchContext.js.map +1 -1
  560. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  561. package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
  562. package/dist/components/Typography/Text/Text.js.map +1 -1
  563. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  564. package/dist/components/View/View.d.ts +1 -0
  565. package/dist/components/View/View.js +16 -8
  566. package/dist/components/View/View.js.map +1 -1
  567. package/dist/components/View/ViewInfinite.js.map +1 -1
  568. package/dist/components/View/utils.js +2 -2
  569. package/dist/components/View/utils.js.map +1 -1
  570. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  571. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  572. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  573. package/dist/components.css +10 -9
  574. package/dist/components.css.map +1 -1
  575. package/dist/components.js.tmp +3108 -2238
  576. package/dist/cssm/components/Accordion/Accordion.js +1 -1
  577. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  578. package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
  579. package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
  580. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
  581. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  582. package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
  583. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
  584. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  585. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
  586. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  587. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
  588. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  589. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
  590. package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
  591. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  592. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
  593. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  594. package/dist/cssm/components/Alert/Alert.js +6 -6
  595. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  596. package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
  597. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  598. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  599. package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
  600. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  601. package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
  602. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  603. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
  604. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  605. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  606. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  607. package/dist/cssm/components/Avatar/Avatar.js +1 -1
  608. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  609. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
  610. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
  611. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
  612. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  613. package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
  614. package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
  615. package/dist/cssm/components/Avatar/helpers.js.map +1 -1
  616. package/dist/cssm/components/Badge/Badge.js +1 -1
  617. package/dist/cssm/components/Badge/Badge.js.map +1 -1
  618. package/dist/cssm/components/Banner/Banner.d.ts +5 -1
  619. package/dist/cssm/components/Banner/Banner.js +2 -2
  620. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  621. package/dist/cssm/components/Banner/Banner.module.css +6 -1
  622. package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
  623. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  624. package/dist/cssm/components/BaseGallery/helpers.js +4 -4
  625. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
  626. package/dist/cssm/components/Button/Button.d.ts +2 -1
  627. package/dist/cssm/components/Button/Button.js +4 -3
  628. package/dist/cssm/components/Button/Button.js.map +1 -1
  629. package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
  630. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  631. package/dist/cssm/components/Calendar/Calendar.js +2 -2
  632. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  633. package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
  634. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  635. package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
  636. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  637. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
  638. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  639. package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
  640. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  641. package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
  642. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  643. package/dist/cssm/components/Card/Card.js +1 -1
  644. package/dist/cssm/components/Card/Card.js.map +1 -1
  645. package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
  646. package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
  647. package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
  648. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  649. package/dist/cssm/components/Cell/Cell.js +3 -3
  650. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  651. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
  652. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  653. package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
  654. package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
  655. package/dist/cssm/components/Cell/useDraggable.js +1 -1
  656. package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
  657. package/dist/cssm/components/CellButton/CellButton.js +1 -1
  658. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  659. package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
  660. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  661. package/dist/cssm/components/Chip/Chip.js +2 -2
  662. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  663. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  664. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  665. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
  666. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
  667. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
  668. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
  669. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
  670. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  671. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
  672. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  673. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  674. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
  675. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  676. package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
  677. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  678. package/dist/cssm/components/Counter/Counter.js +1 -1
  679. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  680. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
  681. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  682. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
  683. package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
  684. package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
  685. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  686. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
  687. package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
  688. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
  689. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  690. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
  691. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  692. package/dist/cssm/components/DateInput/DateInput.js +3 -3
  693. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  694. package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
  695. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  696. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
  697. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  698. package/dist/cssm/components/Div/Div.js +1 -1
  699. package/dist/cssm/components/Div/Div.js.map +1 -1
  700. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
  701. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  702. package/dist/cssm/components/Epic/Epic.d.ts +1 -0
  703. package/dist/cssm/components/Epic/Epic.js +1 -1
  704. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  705. package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
  706. package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
  707. package/dist/cssm/components/File/File.js +1 -1
  708. package/dist/cssm/components/File/File.js.map +1 -1
  709. package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
  710. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  711. package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
  712. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  713. package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
  714. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  715. package/dist/cssm/components/Footer/Footer.js +1 -1
  716. package/dist/cssm/components/Footer/Footer.js.map +1 -1
  717. package/dist/cssm/components/FormField/FormField.js +2 -2
  718. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  719. package/dist/cssm/components/FormItem/FormItem.js +2 -2
  720. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  721. package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
  722. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  723. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
  724. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  725. package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
  726. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  727. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  728. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  729. package/dist/cssm/components/Gradient/Gradient.js +1 -1
  730. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  731. package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
  732. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  733. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
  734. package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
  735. package/dist/cssm/components/Group/Group.d.ts +8 -8
  736. package/dist/cssm/components/Group/Group.js +4 -4
  737. package/dist/cssm/components/Group/Group.js.map +1 -1
  738. package/dist/cssm/components/Group/Group.module.css +2 -0
  739. package/dist/cssm/components/Header/Header.js +2 -2
  740. package/dist/cssm/components/Header/Header.js.map +1 -1
  741. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
  742. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  743. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
  744. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
  745. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
  746. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
  747. package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
  748. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
  749. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  750. package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
  751. package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
  752. package/dist/cssm/components/IconButton/IconButton.js +2 -2
  753. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  754. package/dist/cssm/components/Image/Image.js +1 -1
  755. package/dist/cssm/components/Image/Image.js.map +1 -1
  756. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
  757. package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
  758. package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
  759. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  760. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
  761. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
  762. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
  763. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
  764. package/dist/cssm/components/ImageBase/context.js.map +1 -1
  765. package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
  766. package/dist/cssm/components/ImageBase/validators.js +3 -4
  767. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  768. package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
  769. package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
  770. package/dist/cssm/components/Input/Input.js +2 -2
  771. package/dist/cssm/components/Input/Input.js.map +1 -1
  772. package/dist/cssm/components/InputLike/InputLike.js +1 -1
  773. package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
  774. package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
  775. package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
  776. package/dist/cssm/components/Link/Link.js +1 -1
  777. package/dist/cssm/components/Link/Link.js.map +1 -1
  778. package/dist/cssm/components/List/List.js +1 -1
  779. package/dist/cssm/components/List/List.js.map +1 -1
  780. package/dist/cssm/components/List/ListContext.js.map +1 -1
  781. package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
  782. package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
  783. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
  784. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  785. package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
  786. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  787. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
  788. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  789. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
  790. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
  791. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  792. package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
  793. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  794. package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
  795. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -1
  796. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  797. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  798. package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -12
  799. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  800. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
  801. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  802. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  803. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
  804. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  805. package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
  806. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  807. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  808. package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
  809. package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
  810. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  811. package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
  812. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  813. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
  814. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  815. package/dist/cssm/components/Pagination/Pagination.js +2 -2
  816. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  817. package/dist/cssm/components/Panel/Panel.js +2 -2
  818. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  819. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
  820. package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
  821. package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
  822. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  823. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
  824. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  825. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
  826. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  827. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  828. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  829. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
  830. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  831. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
  832. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  833. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  834. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  835. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  836. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  837. package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
  838. package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
  839. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  840. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  841. package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
  842. package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
  843. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
  844. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  845. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
  846. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  847. package/dist/cssm/components/Popover/Popover.js +3 -3
  848. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  849. package/dist/cssm/components/Popper/Popper.js +3 -3
  850. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  851. package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
  852. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  853. package/dist/cssm/components/Progress/Progress.js +1 -1
  854. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  855. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
  856. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  857. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
  858. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  859. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
  860. package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
  861. package/dist/cssm/components/Radio/Radio.js +2 -2
  862. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  863. package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
  864. package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
  865. package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
  866. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  867. package/dist/cssm/components/Removable/Removable.js +4 -4
  868. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  869. package/dist/cssm/components/RichCell/RichCell.js +2 -2
  870. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  871. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
  872. package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
  873. package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
  874. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  875. package/dist/cssm/components/Root/Root.d.ts +1 -0
  876. package/dist/cssm/components/Root/Root.js +5 -5
  877. package/dist/cssm/components/Root/Root.js.map +1 -1
  878. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
  879. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  880. package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
  881. package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
  882. package/dist/cssm/components/Search/Search.js +3 -3
  883. package/dist/cssm/components/Search/Search.js.map +1 -1
  884. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
  885. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  886. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
  887. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  888. package/dist/cssm/components/Select/Select.js +3 -3
  889. package/dist/cssm/components/Select/Select.js.map +1 -1
  890. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
  891. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  892. package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
  893. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
  894. package/dist/cssm/components/Separator/Separator.js +1 -1
  895. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  896. package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
  897. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
  898. package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
  899. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
  900. package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
  901. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  902. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
  903. package/dist/cssm/components/Slider/Slider.js +7 -7
  904. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  905. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
  906. package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
  907. package/dist/cssm/components/Slider/helpers.js.map +1 -1
  908. package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
  909. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  910. package/dist/cssm/components/Spacing/Spacing.js +1 -1
  911. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  912. package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
  913. package/dist/cssm/components/Spinner/Spinner.js +19 -5
  914. package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
  915. package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
  916. package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
  917. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  918. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
  919. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
  920. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  921. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
  922. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  923. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
  924. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  925. package/dist/cssm/components/Switch/Switch.js +3 -3
  926. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  927. package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
  928. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  929. package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
  930. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  931. package/dist/cssm/components/Tabs/Tabs.js +2 -2
  932. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  933. package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
  934. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  935. package/dist/cssm/components/Tappable/Tappable.js +10 -10
  936. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  937. package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
  938. package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
  939. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  940. package/dist/cssm/components/Textarea/Textarea.js +2 -2
  941. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  942. package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
  943. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  944. package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
  945. package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
  946. package/dist/cssm/components/Touch/Touch.js +4 -4
  947. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  948. package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
  949. package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
  950. package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
  951. package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
  952. package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
  953. package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
  954. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  955. package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
  956. package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
  957. package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
  958. package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
  959. package/dist/cssm/components/Typography/Text/Text.js +2 -2
  960. package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
  961. package/dist/cssm/components/Typography/Title/Title.js +1 -1
  962. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  963. package/dist/cssm/components/Typography/Typography.js +1 -1
  964. package/dist/cssm/components/Typography/Typography.js.map +1 -1
  965. package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
  966. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  967. package/dist/cssm/components/View/View.d.ts +1 -0
  968. package/dist/cssm/components/View/View.js +3 -3
  969. package/dist/cssm/components/View/View.js.map +1 -1
  970. package/dist/cssm/components/View/ViewInfinite.js +2 -2
  971. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  972. package/dist/cssm/components/View/utils.js.map +1 -1
  973. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  974. package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  975. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
  976. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
  977. package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
  978. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  979. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
  980. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  981. package/dist/cssm/helpers/appearance.js +1 -1
  982. package/dist/cssm/helpers/appearance.js.map +1 -1
  983. package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
  984. package/dist/cssm/helpers/math.js.map +1 -1
  985. package/dist/cssm/helpers/range.js.map +1 -1
  986. package/dist/cssm/hoc/withContext.js.map +1 -1
  987. package/dist/cssm/hoc/withPlatform.js +1 -1
  988. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  989. package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
  990. package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  991. package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  992. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
  993. package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  994. package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
  995. package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
  996. package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
  997. package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
  998. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
  999. package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1000. package/dist/cssm/hooks/useAppearance.js +1 -1
  1001. package/dist/cssm/hooks/useAppearance.js.map +1 -1
  1002. package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
  1003. package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
  1004. package/dist/cssm/hooks/useBooleanState.js.map +1 -1
  1005. package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
  1006. package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
  1007. package/dist/cssm/hooks/useCalendar.js +1 -1
  1008. package/dist/cssm/hooks/useCalendar.js.map +1 -1
  1009. package/dist/cssm/hooks/useChipsInput.js +1 -1
  1010. package/dist/cssm/hooks/useChipsInput.js.map +1 -1
  1011. package/dist/cssm/hooks/useChipsSelect.js +2 -2
  1012. package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
  1013. package/dist/cssm/hooks/useDateInput.js +4 -4
  1014. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  1015. package/dist/cssm/hooks/useEffectDev.js.map +1 -1
  1016. package/dist/cssm/hooks/useEnsuredControl.js +2 -2
  1017. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  1018. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  1019. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  1020. package/dist/cssm/hooks/useFocusVisible.js +1 -1
  1021. package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
  1022. package/dist/cssm/hooks/useFocusWithin.js +1 -1
  1023. package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
  1024. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  1025. package/dist/cssm/hooks/useId.js.map +1 -1
  1026. package/dist/cssm/hooks/useInsets.js +2 -2
  1027. package/dist/cssm/hooks/useInsets.js.map +1 -1
  1028. package/dist/cssm/hooks/useIsClient.js.map +1 -1
  1029. package/dist/cssm/hooks/useKeyboard.js +2 -2
  1030. package/dist/cssm/hooks/useKeyboard.js.map +1 -1
  1031. package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
  1032. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  1033. package/dist/cssm/hooks/useMediaQueries.js +1 -1
  1034. package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
  1035. package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
  1036. package/dist/cssm/hooks/useOrientationChange.js +1 -1
  1037. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  1038. package/dist/cssm/hooks/usePagination.js +1 -1
  1039. package/dist/cssm/hooks/usePagination.js.map +1 -1
  1040. package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
  1041. package/dist/cssm/hooks/usePlatform.js +1 -1
  1042. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  1043. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  1044. package/dist/cssm/hooks/useTimeout.js +1 -1
  1045. package/dist/cssm/hooks/useTimeout.js.map +1 -1
  1046. package/dist/cssm/hooks/useTodayDate.js +1 -1
  1047. package/dist/cssm/hooks/useTodayDate.js.map +1 -1
  1048. package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
  1049. package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
  1050. package/dist/cssm/index.d.ts +3 -1
  1051. package/dist/cssm/index.js +1 -0
  1052. package/dist/cssm/index.js.map +1 -1
  1053. package/dist/cssm/lib/SSR.js +1 -1
  1054. package/dist/cssm/lib/SSR.js.map +1 -1
  1055. package/dist/cssm/lib/accessibility.js +2 -2
  1056. package/dist/cssm/lib/accessibility.js.map +1 -1
  1057. package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
  1058. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  1059. package/dist/cssm/lib/animate.js +1 -1
  1060. package/dist/cssm/lib/animate.js.map +1 -1
  1061. package/dist/cssm/lib/browser.js +1 -1
  1062. package/dist/cssm/lib/browser.js.map +1 -1
  1063. package/dist/cssm/lib/calendar.js.map +1 -1
  1064. package/dist/cssm/lib/callMultiple.js.map +1 -1
  1065. package/dist/cssm/lib/date.js.map +1 -1
  1066. package/dist/cssm/lib/dom.js.map +1 -1
  1067. package/dist/cssm/lib/floating/adapters.js +1 -1
  1068. package/dist/cssm/lib/floating/adapters.js.map +1 -1
  1069. package/dist/cssm/lib/floating/functions.js.map +1 -1
  1070. package/dist/cssm/lib/fx.js.map +1 -1
  1071. package/dist/cssm/lib/getNavId.js.map +1 -1
  1072. package/dist/cssm/lib/isRefObject.js.map +1 -1
  1073. package/dist/cssm/lib/matchMedia.js.map +1 -1
  1074. package/dist/cssm/lib/platform.js.map +1 -1
  1075. package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
  1076. package/dist/cssm/lib/select.js.map +1 -1
  1077. package/dist/cssm/lib/styles.js.map +1 -1
  1078. package/dist/cssm/lib/supportEvents.js.map +1 -1
  1079. package/dist/cssm/lib/taptic.js.map +1 -1
  1080. package/dist/cssm/lib/testing.js.map +1 -1
  1081. package/dist/cssm/lib/tokensClassProvider.js +1 -1
  1082. package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
  1083. package/dist/cssm/lib/touch.js.map +1 -1
  1084. package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1085. package/dist/cssm/lib/utils.js.map +1 -1
  1086. package/dist/cssm/lib/warnOnce.js.map +1 -1
  1087. package/dist/cssm/shared/breakpoints.js.map +1 -1
  1088. package/dist/cssm/styles/constants.css +3 -0
  1089. package/dist/cssm/styles/customMedias.generated.css +23 -0
  1090. package/dist/cssm/styles/themes.css +3 -3
  1091. package/dist/helpers/appearance.js.map +1 -1
  1092. package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
  1093. package/dist/helpers/math.js.map +1 -1
  1094. package/dist/helpers/range.js.map +1 -1
  1095. package/dist/hoc/withContext.js.map +1 -1
  1096. package/dist/hooks/useAdaptivity.js.map +1 -1
  1097. package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
  1098. package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
  1099. package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
  1100. package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
  1101. package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
  1102. package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
  1103. package/dist/hooks/useAutoDetectAppearance.js +2 -1
  1104. package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
  1105. package/dist/hooks/useBooleanState.js.map +1 -1
  1106. package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
  1107. package/dist/hooks/useCalendar.js +6 -3
  1108. package/dist/hooks/useCalendar.js.map +1 -1
  1109. package/dist/hooks/useChipsInput.js +2 -1
  1110. package/dist/hooks/useChipsInput.js.map +1 -1
  1111. package/dist/hooks/useChipsSelect.js.map +1 -1
  1112. package/dist/hooks/useDateInput.js +5 -3
  1113. package/dist/hooks/useDateInput.js.map +1 -1
  1114. package/dist/hooks/useEffectDev.js.map +1 -1
  1115. package/dist/hooks/useEnsuredControl.js.map +1 -1
  1116. package/dist/hooks/useEventListener.js.map +1 -1
  1117. package/dist/hooks/useExternRef.js.map +1 -1
  1118. package/dist/hooks/useFocusVisible.js.map +1 -1
  1119. package/dist/hooks/useFocusWithin.js.map +1 -1
  1120. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  1121. package/dist/hooks/useId.js.map +1 -1
  1122. package/dist/hooks/useInsets.js.map +1 -1
  1123. package/dist/hooks/useIsClient.js.map +1 -1
  1124. package/dist/hooks/useKeyboard.js +4 -4
  1125. package/dist/hooks/useKeyboard.js.map +1 -1
  1126. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  1127. package/dist/hooks/useMediaQueries.js.map +1 -1
  1128. package/dist/hooks/useObjectMemo.js.map +1 -1
  1129. package/dist/hooks/useOrientationChange.js +1 -1
  1130. package/dist/hooks/useOrientationChange.js.map +1 -1
  1131. package/dist/hooks/usePagination.js.map +1 -1
  1132. package/dist/hooks/usePatchChildrenRef.js +2 -1
  1133. package/dist/hooks/usePatchChildrenRef.js.map +1 -1
  1134. package/dist/hooks/usePrevious.js.map +1 -1
  1135. package/dist/hooks/useTimeout.js +2 -1
  1136. package/dist/hooks/useTimeout.js.map +1 -1
  1137. package/dist/hooks/useTodayDate.js.map +1 -1
  1138. package/dist/hooks/useWaitTransitionFinish.js +4 -2
  1139. package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
  1140. package/dist/index.d.ts +3 -1
  1141. package/dist/index.js +1 -0
  1142. package/dist/index.js.map +1 -1
  1143. package/dist/lib/SSR.js.map +1 -1
  1144. package/dist/lib/accessibility.js.map +1 -1
  1145. package/dist/lib/adaptivity/constants.js.map +1 -1
  1146. package/dist/lib/adaptivity/functions.js.map +1 -1
  1147. package/dist/lib/animate.js.map +1 -1
  1148. package/dist/lib/browser.js.map +1 -1
  1149. package/dist/lib/calendar.js.map +1 -1
  1150. package/dist/lib/callMultiple.js.map +1 -1
  1151. package/dist/lib/date.js.map +1 -1
  1152. package/dist/lib/dom.js.map +1 -1
  1153. package/dist/lib/floating/adapters.js.map +1 -1
  1154. package/dist/lib/floating/functions.js.map +1 -1
  1155. package/dist/lib/fx.js.map +1 -1
  1156. package/dist/lib/getNavId.js.map +1 -1
  1157. package/dist/lib/isRefObject.js.map +1 -1
  1158. package/dist/lib/matchMedia.js.map +1 -1
  1159. package/dist/lib/offset.js +6 -5
  1160. package/dist/lib/offset.js.map +1 -1
  1161. package/dist/lib/platform.js.map +1 -1
  1162. package/dist/lib/polyfills.js.map +1 -1
  1163. package/dist/lib/removeObjectKeys.js.map +1 -1
  1164. package/dist/lib/select.js +2 -2
  1165. package/dist/lib/select.js.map +1 -1
  1166. package/dist/lib/styles.js.map +1 -1
  1167. package/dist/lib/supportEvents.js.map +1 -1
  1168. package/dist/lib/taptic.js.map +1 -1
  1169. package/dist/lib/testing.js.map +1 -1
  1170. package/dist/lib/tokensClassProvider.js.map +1 -1
  1171. package/dist/lib/touch.js.map +1 -1
  1172. package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
  1173. package/dist/lib/utils.js.map +1 -1
  1174. package/dist/lib/warnOnce.js.map +1 -1
  1175. package/dist/shared/breakpoints.js.map +1 -1
  1176. package/dist/vkui.css +11 -10
  1177. package/dist/vkui.css.map +1 -1
  1178. package/dist/vkui.js.tmp +3108 -2238
  1179. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalDismissButton/ModalDismissButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './ModalDismissButton.module.css';\n\nexport type ModalDismissButtonProps = React.HTMLAttributes<HTMLButtonElement>;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalDismissButton\n */\nexport const ModalDismissButton = ({\n 'aria-label': ariaLabel = 'Закрыть',\n className,\n ...restProps\n}: ModalDismissButtonProps) => {\n return (\n <Tappable\n className={classNames(styles['ModalDismissButton'], className)}\n {...restProps}\n aria-label={ariaLabel}\n activeMode={styles['ModalDismissButton--active']}\n hoverMode={styles['ModalDismissButton--hover']}\n >\n <Icon20Cancel />\n </Tappable>\n );\n};\n"],"names":["ModalDismissButton","ariaLabel","className","restProps","Tappable","classNames","aria-label","activeMode","hoverMode","Icon20Cancel"],"mappings":";;;;+BAWaA;;;eAAAA;;;;;;;+DAXU;qBACM;oBACF;wBACF;AAQlB,IAAMA,qBAAqB;QAClBC,aAAd,eAAcA,YAAAA,iBAAY,YAAZA,KACdC,mBAAAA,WACGC;QAFH;QACAD;;IAGA,qBACE,qBAACE;QACCF,WAAWG,IAAAA,4CAAyCH;OAChDC;QACJG,cAAYL;QACZM,UAAU;QACVC,SAAS;sBAET,qBAACC;AAGP"}
1
+ {"version":3,"sources":["../../../../src/components/ModalDismissButton/ModalDismissButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Icon20Cancel } from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { Tappable } from '../Tappable/Tappable';\nimport styles from './ModalDismissButton.module.css';\n\nexport type ModalDismissButtonProps = React.HTMLAttributes<HTMLButtonElement>;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalDismissButton\n */\nexport const ModalDismissButton = ({\n 'aria-label': ariaLabel = 'Закрыть',\n className,\n ...restProps\n}: ModalDismissButtonProps) => {\n return (\n <Tappable\n className={classNames(styles['ModalDismissButton'], className)}\n {...restProps}\n aria-label={ariaLabel}\n activeMode={styles['ModalDismissButton--active']}\n hoverMode={styles['ModalDismissButton--hover']}\n >\n <Icon20Cancel />\n </Tappable>\n );\n};\n"],"names":["ModalDismissButton","ariaLabel","className","restProps","Tappable","classNames","aria-label","activeMode","hoverMode","Icon20Cancel"],"mappings":";;;;+BAWaA;;;eAAAA;;;;;;;+DAXU;qBACM;oBACF;wBACF;AAQlB,IAAMA,qBAAqB;QAClBC,aAAd,eAAcA,YAAAA,iBAAY,YAAZA,KACdC,mBAAAA,WACGC;QAFH;QACAD;;IAGA,qBACE,qBAACE,kBAAQ;QACPF,WAAWG,IAAAA,gBAAU,4BAA+BH;OAChDC;QACJG,cAAYL;QACZM,UAAU;QACVC,SAAS;sBAET,qBAACC,mBAAY;AAGnB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useId } from '../../hooks/useId';\nimport { useOrientationChange } from '../../hooks/useOrientationChange';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { multiRef } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport { ModalPageContext } from './ModalPageContext';\nimport styles from './ModalPage.module.css';\n\nconst sizeClassName = {\n s: styles['ModalPage--size-s'],\n m: styles['ModalPage--size-m'],\n l: styles['ModalPage--size-l'],\n};\n\nexport interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: 's' | 'm' | 'l' | number;\n /**\n * Будет вызвано при начале открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Будет вызвано при окончательном открытии модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Будет вызвано при начале закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Будет вызвано при окончательном закрытии модалки.\n */\n onClosed?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: React.Ref<HTMLDivElement>;\n /**\n * Скрывает кнопку закрытия (актуально для iOS, т.к. можно отрисовать кнопку закрытия внутри модалки)\n */\n hideCloseButton?: boolean;\n}\n\nconst warn = warnOnce('ModalPage');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPage\n */\nexport const ModalPage = ({\n children,\n header,\n size: sizeProp = 's',\n onOpen,\n onOpened,\n onClose,\n onClosed,\n settlingHeight, // 75\n dynamicContentHeight,\n getModalContentRef,\n nav,\n id: idProp,\n hideCloseButton = false,\n className,\n ...restProps\n}: ModalPageProps) => {\n const generatingId = useId();\n const id = idProp || generatingId;\n\n const { updateModalHeight } = React.useContext(ModalRootContext);\n\n const platform = usePlatform();\n const orientation = useOrientationChange();\n const { sizeX, isDesktop } = useAdaptivityWithJSMediaQueries();\n\n React.useEffect(() => {\n if (dynamicContentHeight) {\n updateModalHeight();\n }\n }, [children, dynamicContentHeight, orientation, updateModalHeight]);\n\n const isCloseButtonShown = !hideCloseButton && isDesktop;\n const size = isDesktop ? sizeProp : 's';\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.PAGE);\n\n const contextValue = React.useMemo(() => ({ labelId: `${id}-label` }), [id]);\n\n return (\n <ModalPageContext.Provider value={contextValue}>\n <div\n {...restProps}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={contextValue.labelId}\n id={id}\n className={classNames(\n styles['ModalPage'],\n platform === Platform.IOS && styles['ModalPage--ios'],\n isDesktop && styles['ModalPage--desktop'],\n sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular',\n typeof size === 'string' && sizeClassName[size],\n className,\n )}\n >\n <div\n className={styles['ModalPage__in-wrap']}\n style={{\n maxWidth: typeof size === 'number' ? size : undefined,\n }}\n ref={refs.innerElement}\n >\n <div className={styles['ModalPage__in']}>\n <div className={styles['ModalPage__header']} ref={refs.headerElement}>\n {header}\n </div>\n\n <div className={styles['ModalPage__content-wrap']}>\n <div\n className={styles['ModalPage__content']}\n ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}\n >\n <div className={styles['ModalPage__content-in']}>{children}</div>\n </div>\n </div>\n {isCloseButtonShown && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </div>\n </ModalPageContext.Provider>\n );\n};\n"],"names":["ModalPage","sizeClassName","s","m","l","warn","warnOnce","children","header","sizeProp","size","onOpen","onOpened","onClose","onClosed","settlingHeight","dynamicContentHeight","getModalContentRef","nav","id","idProp","hideCloseButton","className","restProps","generatingId","useId","updateModalHeight","React","useContext","ModalRootContext","platform","usePlatform","orientation","useOrientationChange","useAdaptivityWithJSMediaQueries","sizeX","isDesktop","useEffect","isCloseButtonShown","modalContext","refs","useModalRegistry","getNavId","ModalType","PAGE","contextValue","useMemo","labelId","ModalPageContext","Provider","value","div","role","aria-modal","aria-labelledby","classNames","Platform","IOS","SizeType","REGULAR","style","maxWidth","undefined","ref","innerElement","headerElement","multiRef","contentElement","ModalDismissButton","onClick"],"mappings":";;;;+BAoEaA;;;eAAAA;;;;;;;+DApEU;oBACI;+CACqB;qBAC1B;oCACe;2BACT;0BACH;wBACY;wBACZ;qBACA;wBACA;kCACU;gCACgB;qBACzB;gCACO;AAGjC,IAAMC,gBAAgB;IACpBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AA0CA,IAAMC,OAAOC,IAAAA,oBAAS;AAKf,IAAMN,YAAY;QACvBO,kBAAAA,UACAC,gBAAAA,QACMC,aAANC,MAAMD,WAAAA,iBAAW,MAAXA,KACNE,gBAAAA,QACAC,kBAAAA,UACAC,iBAAAA,SACAC,kBAAAA,UACAC,wBAAAA,gBACAC,8BAAAA,sBACAC,4BAAAA,oBACAC,aAAAA,KACAC,AAAIC,gBAAJD,oCACAE,iBAAAA,sDAAkB,gCAClBC,mBAAAA,WACGC;QAdHhB;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,IAAME,eAAeC,IAAAA;IACrB,IAAMN,KAAKC,UAAUI;IAErB,IAAM,AAAEE,oBAAsBC,OAAMC,WAAWC,oCAAvCH;IAER,IAAMI,WAAWC,IAAAA;IACjB,IAAMC,cAAcC,IAAAA;IACpB,IAA6BC,oCAAAA,IAAAA,qEAArBC,QAAqBD,kCAArBC,OAAOC,YAAcF,kCAAdE;IAEfT,OAAMU,UAAU;QACd,IAAIrB,sBAAsB;YACxBU;QACF;IACF,GAAG;QAACnB;QAAUS;QAAsBgB;QAAaN;KAAkB;IAEnE,IAAMY,qBAAqB,CAACjB,mBAAmBe;IAC/C,IAAM1B,OAAO0B,YAAY3B,WAAW;IAEpC,IAAM8B,eAAeZ,OAAMC,WAAWC;IACtC,IAAM,AAAEW,OAASC,IAAAA,oCAAiBC,IAAAA,oBAAS;QAAExB,KAAAA;QAAKC,IAAAA;IAAG,GAAGd,OAAOsC,iBAAUC,MAAjEJ;IAER,IAAMK,eAAelB,OAAMmB,QAAQ;eAAO;YAAEC,SAAS,AAAC,GAAK,OAAH5B,IAAG;QAAQ;OAAI;QAACA;KAAG;IAE3E,qBACE,qBAAC6B,mCAAiBC;QAASC,OAAOL;qBAChC,qBAACM,mDACK5B;QACJ6B,MAAK;QACLC,cAAW;QACXC,mBAAiBT,aAAaE;QAC9B5B,IAAIA;QACJG,WAAWiC,IAAAA,mCAETzB,aAAa0B,mBAASC,6BACtBrB,uCACAD,UAAUuB,qBAASC,WAAW,wCAC9B,OAAOjD,SAAS,YAAYT,aAAa,CAACS,KAAK,EAC/CY;sBAGF,qBAAC6B;QACC7B,SAAS;QACTsC,OAAO;YACLC,UAAU,OAAOnD,SAAS,WAAWA,OAAOoD;QAC9C;QACAC,KAAKvB,KAAKwB;qBAEV,qBAACb;QAAI7B,SAAS;qBACZ,qBAAC6B;QAAI7B,SAAS;QAA+ByC,KAAKvB,KAAKyB;OACpDzD,uBAGH,qBAAC2C;QAAI7B,SAAS;qBACZ,qBAAC6B;QACC7B,SAAS;QACTyC,KAAKG,IAAAA,iBAAyB1B,KAAK2B,gBAAgBlD;qBAEnD,qBAACkC;QAAI7B,SAAS;OAAoCf,aAGrD+B,oCAAsB,qBAAC8B;QAAmBC,SAASxD,WAAW0B,aAAa1B;;AAMxF"}
1
+ {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useId } from '../../hooks/useId';\nimport { useOrientationChange } from '../../hooks/useOrientationChange';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { SizeType } from '../../lib/adaptivity';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { multiRef } from '../../lib/utils';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ModalDismissButton } from '../ModalDismissButton/ModalDismissButton';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { ModalType } from '../ModalRoot/types';\nimport { ModalPageContext } from './ModalPageContext';\nimport styles from './ModalPage.module.css';\n\nconst sizeClassName = {\n s: styles['ModalPage--size-s'],\n m: styles['ModalPage--size-m'],\n l: styles['ModalPage--size-l'],\n};\n\nexport interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n /**\n * Задаёт контенту максимальную ширину для десктопной версии.\n */\n size?: 's' | 'm' | 'l' | number;\n /**\n * Будет вызвано при начале открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Будет вызвано при окончательном открытии модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Будет вызвано при начале закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Будет вызвано при окончательном закрытии модалки.\n */\n onClosed?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: React.Ref<HTMLDivElement>;\n /**\n * Скрывает кнопку закрытия (актуально для iOS, т.к. можно отрисовать кнопку закрытия внутри модалки)\n */\n hideCloseButton?: boolean;\n}\n\nconst warn = warnOnce('ModalPage');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPage\n */\nexport const ModalPage = ({\n children,\n header,\n size: sizeProp = 's',\n onOpen,\n onOpened,\n onClose,\n onClosed,\n settlingHeight, // 75\n dynamicContentHeight,\n getModalContentRef,\n nav,\n id: idProp,\n hideCloseButton = false,\n className,\n ...restProps\n}: ModalPageProps) => {\n const generatingId = useId();\n const id = idProp || generatingId;\n\n const { updateModalHeight } = React.useContext(ModalRootContext);\n\n const platform = usePlatform();\n const orientation = useOrientationChange();\n const { sizeX, isDesktop } = useAdaptivityWithJSMediaQueries();\n\n React.useEffect(() => {\n if (dynamicContentHeight) {\n updateModalHeight();\n }\n }, [children, dynamicContentHeight, orientation, updateModalHeight]);\n\n const isCloseButtonShown = !hideCloseButton && isDesktop;\n const size = isDesktop ? sizeProp : 's';\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId({ nav, id }, warn), ModalType.PAGE);\n\n const contextValue = React.useMemo(() => ({ labelId: `${id}-label` }), [id]);\n\n return (\n <ModalPageContext.Provider value={contextValue}>\n <div\n {...restProps}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={contextValue.labelId}\n id={id}\n className={classNames(\n styles['ModalPage'],\n platform === Platform.IOS && styles['ModalPage--ios'],\n isDesktop && styles['ModalPage--desktop'],\n sizeX === SizeType.REGULAR && 'vkuiInternalModalPage--sizeX-regular',\n typeof size === 'string' && sizeClassName[size],\n className,\n )}\n >\n <div\n className={styles['ModalPage__in-wrap']}\n style={{\n maxWidth: typeof size === 'number' ? size : undefined,\n }}\n ref={refs.innerElement}\n >\n <div className={styles['ModalPage__in']}>\n <div className={styles['ModalPage__header']} ref={refs.headerElement}>\n {header}\n </div>\n\n <div className={styles['ModalPage__content-wrap']}>\n <div\n className={styles['ModalPage__content']}\n ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}\n >\n <div className={styles['ModalPage__content-in']}>{children}</div>\n </div>\n </div>\n {isCloseButtonShown && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </div>\n </ModalPageContext.Provider>\n );\n};\n"],"names":["ModalPage","sizeClassName","s","m","l","warn","warnOnce","children","header","sizeProp","size","onOpen","onOpened","onClose","onClosed","settlingHeight","dynamicContentHeight","getModalContentRef","nav","id","idProp","hideCloseButton","className","restProps","generatingId","useId","updateModalHeight","React","useContext","ModalRootContext","platform","usePlatform","orientation","useOrientationChange","useAdaptivityWithJSMediaQueries","sizeX","isDesktop","useEffect","isCloseButtonShown","modalContext","refs","useModalRegistry","getNavId","ModalType","PAGE","contextValue","useMemo","labelId","ModalPageContext","Provider","value","div","role","aria-modal","aria-labelledby","classNames","Platform","IOS","SizeType","REGULAR","style","maxWidth","undefined","ref","innerElement","headerElement","multiRef","contentElement","ModalDismissButton","onClick"],"mappings":";;;;+BAoEaA;;;eAAAA;;;;;;;+DApEU;oBACI;+CACqB;qBAC1B;oCACe;2BACT;0BACH;wBACY;wBACZ;qBACA;wBACA;kCACU;gCACgB;qBACzB;gCACO;AAGjC,IAAMC,gBAAgB;IACpBC,CAAC;IACDC,CAAC;IACDC,CAAC;AACH;AA0CA,IAAMC,OAAOC,IAAAA,kBAAQ,EAAC;AAKf,IAAMN,YAAY;QACvBO,kBAAAA,UACAC,gBAAAA,QACMC,aAANC,MAAMD,WAAAA,iBAAW,MAAXA,KACNE,gBAAAA,QACAC,kBAAAA,UACAC,iBAAAA,SACAC,kBAAAA,UACAC,wBAAAA,gBACAC,8BAAAA,sBACAC,4BAAAA,oBACAC,aAAAA,KACAC,AAAIC,gBAAJD,oCACAE,iBAAAA,sDAAkB,gCAClBC,mBAAAA,WACGC;QAdHhB;QACAC;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,IAAME,eAAeC,IAAAA,YAAK;IAC1B,IAAMN,KAAKC,UAAUI;IAErB,IAAM,AAAEE,oBAAsBC,OAAMC,UAAU,CAACC,kCAAgB,EAAvDH;IAER,IAAMI,WAAWC,IAAAA,wBAAW;IAC5B,IAAMC,cAAcC,IAAAA,0CAAoB;IACxC,IAA6BC,oCAAAA,IAAAA,gEAA+B,KAApDC,QAAqBD,kCAArBC,OAAOC,YAAcF,kCAAdE;IAEfT,OAAMU,SAAS,CAAC;QACd,IAAIrB,sBAAsB;YACxBU;QACF;IACF,GAAG;QAACnB;QAAUS;QAAsBgB;QAAaN;KAAkB;IAEnE,IAAMY,qBAAqB,CAACjB,mBAAmBe;IAC/C,IAAM1B,OAAO0B,YAAY3B,WAAW;IAEpC,IAAM8B,eAAeZ,OAAMC,UAAU,CAACC,kCAAgB;IACtD,IAAM,AAAEW,OAASC,IAAAA,kCAAgB,EAACC,IAAAA,kBAAQ,EAAC;QAAExB,KAAAA;QAAKC,IAAAA;IAAG,GAAGd,OAAOsC,gBAAS,CAACC,IAAI,EAArEJ;IAER,IAAMK,eAAelB,OAAMmB,OAAO,CAAC;eAAO;YAAEC,SAAS,AAAC,GAAK,OAAH5B,IAAG;QAAQ;OAAI;QAACA;KAAG;IAE3E,qBACE,qBAAC6B,kCAAgB,CAACC,QAAQ;QAACC,OAAOL;qBAChC,qBAACM,mDACK5B;QACJ6B,MAAK;QACLC,cAAW;QACXC,mBAAiBT,aAAaE,OAAO;QACrC5B,IAAIA;QACJG,WAAWiC,IAAAA,gBAAU,mBAEnBzB,aAAa0B,kBAAQ,CAACC,GAAG,0BACzBrB,uCACAD,UAAUuB,oBAAQ,CAACC,OAAO,IAAI,wCAC9B,OAAOjD,SAAS,YAAYT,aAAa,CAACS,KAAK,EAC/CY;sBAGF,qBAAC6B;QACC7B,SAAS;QACTsC,OAAO;YACLC,UAAU,OAAOnD,SAAS,WAAWA,OAAOoD;QAC9C;QACAC,KAAKvB,KAAKwB,YAAY;qBAEtB,qBAACb;QAAI7B,SAAS;qBACZ,qBAAC6B;QAAI7B,SAAS;QAA+ByC,KAAKvB,KAAKyB,aAAa;OACjEzD,uBAGH,qBAAC2C;QAAI7B,SAAS;qBACZ,qBAAC6B;QACC7B,SAAS;QACTyC,KAAKG,IAAAA,eAAQ,EAAiB1B,KAAK2B,cAAc,EAAElD;qBAEnD,qBAACkC;QAAI7B,SAAS;OAAoCf,aAGrD+B,oCAAsB,qBAAC8B,sCAAkB;QAACC,SAASxD,WAAW0B,aAAa1B,OAAO;;AAM/F"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPage/ModalPageContext.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport interface ModalPageContextInterface {\n labelId?: string;\n}\n\nexport const ModalPageContext = React.createContext<ModalPageContextInterface>({});\n"],"names":["ModalPageContext","React","createContext"],"mappings":";;;;+BAMaA;;;eAAAA;;;;+DANU;AAMhB,IAAMA,iCAAmBC,OAAMC,cAAyC,CAAC"}
1
+ {"version":3,"sources":["../../../../src/components/ModalPage/ModalPageContext.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport interface ModalPageContextInterface {\n labelId?: string;\n}\n\nexport const ModalPageContext = React.createContext<ModalPageContextInterface>({});\n"],"names":["ModalPageContext","React","createContext"],"mappings":";;;;+BAMaA;;;eAAAA;;;;+DANU;AAMhB,IAAMA,iCAAmBC,OAAMC,aAAa,CAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPageHeader/ModalPageHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef } from '../../types';\nimport { ModalPageContext } from '../ModalPage/ModalPageContext';\nimport { PanelHeader, PanelHeaderProps } from '../PanelHeader/PanelHeader';\nimport { Separator } from '../Separator/Separator';\nimport styles from './ModalPageHeader.module.css';\n\nexport interface ModalPageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<PanelHeaderProps, 'fixed' | 'shadow'>,\n HasRef<HTMLDivElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPageHeader\n */\nexport const ModalPageHeader = ({\n children,\n separator = true,\n getRef,\n className,\n ...restProps\n}: ModalPageHeaderProps) => {\n const platform = usePlatform();\n const hasSeparator = separator && platform === Platform.VKCOM;\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const { labelId } = React.useContext(ModalPageContext);\n\n return (\n <div\n className={classNames(\n styles['ModalPageHeader'],\n platform !== Platform.VKCOM && styles['ModalPageHeader--withGaps'],\n isDesktop && styles['ModalPageHeader--desktop'],\n )}\n ref={getRef}\n >\n <PanelHeader\n className={classNames('vkuiInternalModalPageHeader__in', className)}\n {...restProps}\n fixed={false}\n separator={false}\n transparent\n typographyProps={{\n Component: 'h2',\n id: labelId,\n }}\n >\n {children}\n </PanelHeader>\n {hasSeparator && <Separator wide />}\n </div>\n );\n};\n"],"names":["ModalPageHeader","children","separator","getRef","className","restProps","platform","usePlatform","hasSeparator","Platform","VKCOM","isDesktop","useAdaptivityWithJSMediaQueries","labelId","React","useContext","ModalPageContext","div","classNames","ref","PanelHeader","fixed","transparent","typographyProps","Component","id","Separator","wide"],"mappings":";;;;+BAmBaA;;;eAAAA;;;;;;;+DAnBU;oBACI;+CACqB;2BACpB;wBACH;gCAEQ;2BACa;yBACpB;AAWnB,IAAMA,kBAAkB;QAC7BC,kBAAAA,oCACAC,WAAAA,0CAAY,yBACZC,gBAAAA,QACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA;IACjB,IAAMC,eAAeN,aAAaI,aAAaG,mBAASC;IACxD,IAAM,AAAEC,YAAcC,IAAAA,oEAAdD;IACR,IAAM,AAAEE,UAAYC,OAAMC,WAAWC,oCAA7BH;IAER,qBACE,qBAACI;QACCb,WAAWc,IAAAA,yCAETZ,aAAaG,mBAASC,0CACtBC;QAEFQ,KAAKhB;qBAEL,qBAACiB;QACChB,WAAWc,IAAAA,kBAAW,mCAAmCd;OACrDC;QACJgB,OAAO;QACPnB,WAAW;QACXoB,aAAAA;QACAC,iBAAiB;YACfC,WAAW;YACXC,IAAIZ;QACN;QAECZ,WAEFO,8BAAgB,qBAACkB;QAAUC,MAAAA;;AAGlC"}
1
+ {"version":3,"sources":["../../../../src/components/ModalPageHeader/ModalPageHeader.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef } from '../../types';\nimport { ModalPageContext } from '../ModalPage/ModalPageContext';\nimport { PanelHeader, PanelHeaderProps } from '../PanelHeader/PanelHeader';\nimport { Separator } from '../Separator/Separator';\nimport styles from './ModalPageHeader.module.css';\n\nexport interface ModalPageHeaderProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Omit<PanelHeaderProps, 'fixed' | 'shadow'>,\n HasRef<HTMLDivElement> {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalPageHeader\n */\nexport const ModalPageHeader = ({\n children,\n separator = true,\n getRef,\n className,\n ...restProps\n}: ModalPageHeaderProps) => {\n const platform = usePlatform();\n const hasSeparator = separator && platform === Platform.VKCOM;\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n const { labelId } = React.useContext(ModalPageContext);\n\n return (\n <div\n className={classNames(\n styles['ModalPageHeader'],\n platform !== Platform.VKCOM && styles['ModalPageHeader--withGaps'],\n isDesktop && styles['ModalPageHeader--desktop'],\n )}\n ref={getRef}\n >\n <PanelHeader\n className={classNames('vkuiInternalModalPageHeader__in', className)}\n {...restProps}\n fixed={false}\n separator={false}\n transparent\n typographyProps={{\n Component: 'h2',\n id: labelId,\n }}\n >\n {children}\n </PanelHeader>\n {hasSeparator && <Separator wide />}\n </div>\n );\n};\n"],"names":["ModalPageHeader","children","separator","getRef","className","restProps","platform","usePlatform","hasSeparator","Platform","VKCOM","isDesktop","useAdaptivityWithJSMediaQueries","labelId","React","useContext","ModalPageContext","div","classNames","ref","PanelHeader","fixed","transparent","typographyProps","Component","id","Separator","wide"],"mappings":";;;;+BAmBaA;;;eAAAA;;;;;;;+DAnBU;oBACI;+CACqB;2BACpB;wBACH;gCAEQ;2BACa;yBACpB;AAWnB,IAAMA,kBAAkB;QAC7BC,kBAAAA,oCACAC,WAAAA,0CAAY,yBACZC,gBAAAA,QACAC,mBAAAA,WACGC;QAJHJ;QACAC;QACAC;QACAC;;IAGA,IAAME,WAAWC,IAAAA,wBAAW;IAC5B,IAAMC,eAAeN,aAAaI,aAAaG,kBAAQ,CAACC,KAAK;IAC7D,IAAM,AAAEC,YAAcC,IAAAA,gEAA+B,IAA7CD;IACR,IAAM,AAAEE,UAAYC,OAAMC,UAAU,CAACC,kCAAgB,EAA7CH;IAER,qBACE,qBAACI;QACCb,WAAWc,IAAAA,gBAAU,yBAEnBZ,aAAaG,kBAAQ,CAACC,KAAK,qCAC3BC;QAEFQ,KAAKhB;qBAEL,qBAACiB,wBAAW;QACVhB,WAAWc,IAAAA,gBAAU,EAAC,mCAAmCd;OACrDC;QACJgB,OAAO;QACPnB,WAAW;QACXoB,aAAAA;QACAC,iBAAiB;YACfC,WAAW;YACXC,IAAIZ;QACN;QAECZ,WAEFO,8BAAgB,qBAACkB,oBAAS;QAACC,MAAAA;;AAGlC"}
@@ -108,23 +108,24 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
108
108
  }
109
109
  });
110
110
  _define_property._(_assert_this_initialized._(_this), "onTouchEnd", function(e) {
111
+ var _modalState, _modalState1;
111
112
  var modalState = _this.props.getModalState(_this.props.activeModal);
112
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === _types.ModalType.PAGE) {
113
+ if (((_modalState = modalState) === null || _modalState === void 0 ? void 0 : _modalState.type) === _types.ModalType.PAGE) {
113
114
  return _this.onPageTouchEnd(e, modalState);
114
115
  }
115
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === _types.ModalType.CARD) {
116
+ if (((_modalState1 = modalState) === null || _modalState1 === void 0 ? void 0 : _modalState1.type) === _types.ModalType.CARD) {
116
117
  return _this.onCardTouchEnd(e, modalState);
117
118
  }
118
119
  });
119
120
  _define_property._(_assert_this_initialized._(_this), "onScroll", function(e) {
120
- var _modalState_contentElement;
121
+ var _modalState, _modalState_contentElement, _modalState1;
121
122
  var activeModal = _this.props.activeModal;
122
123
  var target = e.target;
123
124
  if (!activeModal) {
124
125
  return;
125
126
  }
126
127
  var modalState = _this.props.getModalState(activeModal);
127
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === _types.ModalType.PAGE && (modalState === null || modalState === void 0 ? void 0 : (_modalState_contentElement = modalState.contentElement) === null || _modalState_contentElement === void 0 ? void 0 : _modalState_contentElement.contains(target))) {
128
+ if (((_modalState = modalState) === null || _modalState === void 0 ? void 0 : _modalState.type) === _types.ModalType.PAGE && ((_modalState1 = modalState) === null || _modalState1 === void 0 ? void 0 : (_modalState_contentElement = _modalState1.contentElement) === null || _modalState_contentElement === void 0 ? void 0 : _modalState_contentElement.contains(target))) {
128
129
  modalState.contentScrolled = true;
129
130
  if (modalState.contentScrollStopTimeout) {
130
131
  clearTimeout(modalState.contentScrollStopTimeout);
@@ -209,16 +210,18 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
209
210
  }
210
211
  // transition phase 3: animate entering modal
211
212
  if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {
213
+ var _enteringState;
212
214
  var enteringModal = this.props.enteringModal;
213
215
  var enteringState = this.props.getModalState(enteringModal);
214
216
  this.props.onEnter();
215
217
  this.waitTransitionFinish(enteringState, function() {
216
- if (enteringState === null || enteringState === void 0 ? void 0 : enteringState.innerElement) {
218
+ var _enteringState;
219
+ if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
217
220
  enteringState.innerElement.style.transitionDelay = "";
218
221
  }
219
222
  _this.props.onEntered(enteringModal);
220
223
  });
221
- if (enteringState === null || enteringState === void 0 ? void 0 : enteringState.innerElement) {
224
+ if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
222
225
  enteringState.innerElement.style.transitionDelay = this.props.delayEnter ? "".concat(this.timeout, "ms") : "";
223
226
  this.animateTranslate(enteringState, enteringState.translateY);
224
227
  }
@@ -259,8 +262,9 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
259
262
  {
260
263
  key: "checkPageContentHeight",
261
264
  value: function checkPageContentHeight() {
265
+ var _modalState, _modalState1;
262
266
  var modalState = this.props.getModalState(this.props.activeModal);
263
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === _types.ModalType.PAGE && (modalState === null || modalState === void 0 ? void 0 : modalState.modalElement)) {
267
+ if (((_modalState = modalState) === null || _modalState === void 0 ? void 0 : _modalState.type) === _types.ModalType.PAGE && ((_modalState1 = modalState) === null || _modalState1 === void 0 ? void 0 : _modalState1.modalElement)) {
264
268
  var prevModalState = _object_spread._({}, modalState);
265
269
  initPageModal(modalState);
266
270
  var currentModalState = _object_spread._({}, modalState);
@@ -282,6 +286,7 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
282
286
  key: "closeModal",
283
287
  value: function closeModal(id) {
284
288
  var _this = this;
289
+ var _nextModalState, _nextModalState1;
285
290
  // Сбрасываем состояния, которые могут помешать закрытию модального окна
286
291
  this.setState({
287
292
  touchDown: false
@@ -307,7 +312,7 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
307
312
  return _this.props.onExited(id);
308
313
  });
309
314
  var _prevModalState_translateY, _nextModalState_translateYFrom, _nextModalState_translateYFrom1;
310
- var exitTranslate = prevIsPage && nextIsPage && ((_prevModalState_translateY = prevModalState.translateY) !== null && _prevModalState_translateY !== void 0 ? _prevModalState_translateY : 0) <= ((_nextModalState_translateYFrom = nextModalState === null || nextModalState === void 0 ? void 0 : nextModalState.translateYFrom) !== null && _nextModalState_translateYFrom !== void 0 ? _nextModalState_translateYFrom : 0) && !this.props.isBack ? ((_nextModalState_translateYFrom1 = nextModalState === null || nextModalState === void 0 ? void 0 : nextModalState.translateYFrom) !== null && _nextModalState_translateYFrom1 !== void 0 ? _nextModalState_translateYFrom1 : 0) + 10 : 100;
315
+ var exitTranslate = prevIsPage && nextIsPage && ((_prevModalState_translateY = prevModalState.translateY) !== null && _prevModalState_translateY !== void 0 ? _prevModalState_translateY : 0) <= ((_nextModalState_translateYFrom = (_nextModalState = nextModalState) === null || _nextModalState === void 0 ? void 0 : _nextModalState.translateYFrom) !== null && _nextModalState_translateYFrom !== void 0 ? _nextModalState_translateYFrom : 0) && !this.props.isBack ? ((_nextModalState_translateYFrom1 = (_nextModalState1 = nextModalState) === null || _nextModalState1 === void 0 ? void 0 : _nextModalState1.translateYFrom) !== null && _nextModalState_translateYFrom1 !== void 0 ? _nextModalState_translateYFrom1 : 0) + 10 : 100;
311
316
  this.animateTranslate(prevModalState, exitTranslate);
312
317
  if (!nextModalState) {
313
318
  // NOTE: was only for clean exit
@@ -503,13 +508,13 @@ var ModalRootTouchComponent = /*#__PURE__*/ function(_React_Component) {
503
508
  key: "waitTransitionFinish",
504
509
  value: function waitTransitionFinish(modalState, eventHandler) {
505
510
  if (_supportEvents.transitionEvent.supported) {
506
- var _modalState_innerElement;
511
+ var _modalState_innerElement, _modalState;
507
512
  var onceHandler = function() {
508
- var _modalState_innerElement;
509
- modalState === null || modalState === void 0 ? void 0 : (_modalState_innerElement = modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.removeEventListener(_supportEvents.transitionEvent.name, onceHandler);
513
+ var _modalState_innerElement, _modalState;
514
+ (_modalState = modalState) === null || _modalState === void 0 ? void 0 : (_modalState_innerElement = _modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.removeEventListener(_supportEvents.transitionEvent.name, onceHandler);
510
515
  eventHandler();
511
516
  };
512
- modalState === null || modalState === void 0 ? void 0 : (_modalState_innerElement = modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.addEventListener(_supportEvents.transitionEvent.name, onceHandler);
517
+ (_modalState = modalState) === null || _modalState === void 0 ? void 0 : (_modalState_innerElement = _modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.addEventListener(_supportEvents.transitionEvent.name, onceHandler);
513
518
  } else {
514
519
  setTimeout(eventHandler, this.timeout);
515
520
  }
@@ -620,11 +625,12 @@ var ModalRootTouch = (0, _withContext.withContext)((0, _withPlatform.withPlatfor
620
625
  }
621
626
  }
622
627
  function initPageModal(modalState) {
628
+ var _contentElement, _contentElement1;
623
629
  var contentElement = modalState.contentElement;
624
- var contentHeight = (contentElement === null || contentElement === void 0 ? void 0 : contentElement.firstElementChild).offsetHeight;
630
+ var contentHeight = ((_contentElement = contentElement) === null || _contentElement === void 0 ? void 0 : _contentElement.firstElementChild).offsetHeight;
625
631
  var prevTranslateY = modalState.translateY;
626
632
  var _contentElement_clientHeight;
627
- modalState.expandable = contentHeight > ((_contentElement_clientHeight = contentElement === null || contentElement === void 0 ? void 0 : contentElement.clientHeight) !== null && _contentElement_clientHeight !== void 0 ? _contentElement_clientHeight : 0) || modalState.settlingHeight === 100;
633
+ modalState.expandable = contentHeight > ((_contentElement_clientHeight = (_contentElement1 = contentElement) === null || _contentElement1 === void 0 ? void 0 : _contentElement1.clientHeight) !== null && _contentElement_clientHeight !== void 0 ? _contentElement_clientHeight : 0) || modalState.settlingHeight === 100 || modalState.expanded;
628
634
  var collapsed = false;
629
635
  var expanded = false;
630
636
  var translateYFrom;
@@ -653,7 +659,7 @@ function initPageModal(modalState) {
653
659
  expanded = translateYFrom <= 0;
654
660
  translateY = translateYFrom;
655
661
  } else {
656
- var _modalState_headerElement, _modalState_innerElement, _modalState_innerElement_parentElement;
662
+ var _modalState_headerElement, _modalState_innerElement_parentElement, _modalState_innerElement;
657
663
  var _modalState_headerElement_offsetHeight;
658
664
  var headerHeight = (_modalState_headerElement_offsetHeight = (_modalState_headerElement = modalState.headerElement) === null || _modalState_headerElement === void 0 ? void 0 : _modalState_headerElement.offsetHeight) !== null && _modalState_headerElement_offsetHeight !== void 0 ? _modalState_headerElement_offsetHeight : 0;
659
665
  var height = contentHeight + headerHeight;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalRootWithDOMProps, ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.props.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n checkPageContentHeight() {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.props.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.props.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.props.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) || modalState.settlingHeight === 100;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["ModalRootTouch","warn","warnOnce","numberInRange","number","range","rangeTranslate","clamp","ModalRootTouchComponent","props","documentScrolling","maskElementRef","viewportRef","React","createRef","maskAnimationFrame","undefined","modalRootContext","frameIds","restoreFocusTo","preventTouch","event","originalEvent","preventDefault","updateModalHeight","modalState","getModalState","activeModal","type","ModalType","PAGE","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","onTouchMove","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onTouchEnd","onPageTouchEnd","onCardTouchEnd","onScroll","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","modalOpenedLog","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","timeout","platform","Platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeElement","focus","enabled","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","setState","length","prevState","nextModalState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","includes","shiftY","isY","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","rubber","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","transitionEvent","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","setTransformStyle","forceOpacity","history","opacity","toString","render","TouchRootContext","Provider","value","ModalRootContext","Touch","className","classNames","configProvider","webviewType","WebviewType","VKAPPS","onMove","onEnd","div","onClick","ref","map","Modal","modalId","getNavId","_modalState","isPage","key","FocusTrap","getRootRef","restoreFocus","Component","withContext","withPlatform","withDOM","withModalManager","initModal","ConfigProviderContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { setTransformStyle } from '../../lib/styles';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { rubber } from '../../lib/touch';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { ConfigProviderContext, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport TouchRootContext from '../Touch/TouchContext';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from './constants';\nimport { ModalRootWithDOMProps, ModalsStateEntry, ModalType, TranslateRange } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nfunction numberInRange(number: number, range: TranslateRange | undefined) {\n if (!range) {\n return false;\n }\n return number >= range[0] && number <= range[1];\n}\n\nfunction rangeTranslate(number: number) {\n return clamp(number, 0, 98);\n}\n\ninterface ModalRootState {\n touchDown?: boolean;\n dragging?: boolean;\n modalOpenedLog: string[];\n}\n\nclass ModalRootTouchComponent extends React.Component<\n ModalRootWithDOMProps & DOMProps & ModalTransitionProps,\n ModalRootState\n> {\n constructor(props: ModalRootWithDOMProps & ModalTransitionProps) {\n super(props);\n this.state = {\n touchDown: false,\n dragging: false,\n modalOpenedLog: [],\n };\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: this.updateModalHeight,\n registerModal: ({ id, ...data }) => Object.assign(this.props.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n\n this.frameIds = {};\n }\n\n private documentScrolling = false;\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private readonly viewportRef = React.createRef<HTMLDivElement>();\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private readonly frameIds: {\n [index: string]: number;\n };\n private restoreFocusTo: HTMLElement | undefined | null = undefined;\n\n get timeout(): number {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n get document(): Document {\n return this.props.document as Document;\n }\n\n get window(): Window {\n return this.props.window as Window;\n }\n\n getModals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n componentDidMount() {\n // Отслеживаем изменение размеров viewport\n this.window?.addEventListener('resize', this.updateModalHeight, false);\n }\n\n componentWillUnmount() {\n this.toggleDocumentScrolling(true);\n this.window.removeEventListener('resize', this.updateModalHeight, false);\n }\n\n componentDidUpdate(prevProps: ModalRootWithDOMProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n const { enteringModal } = this.props;\n const enteringState = this.props.getModalState(enteringModal);\n this.props.onEnter();\n this.waitTransitionFinish(enteringState, () => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = '';\n }\n this.props.onEntered(enteringModal);\n });\n\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transitionDelay = this.props.delayEnter\n ? `${this.timeout}ms`\n : '';\n this.animateTranslate(enteringState, enteringState.translateY);\n }\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = this.document.activeElement as HTMLElement;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = null;\n }\n\n this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);\n }\n\n /* Отключает скролл документа */\n toggleDocumentScrolling(enabled: boolean) {\n if (this.documentScrolling === enabled) {\n return;\n }\n this.documentScrolling = enabled;\n\n if (enabled) {\n // Здесь нужен последний аргумент с такими же параметрами, потому что\n // некоторые браузеры на странных вендорах типа Meizu не удаляют обработчик.\n // https://github.com/VKCOM/VKUI/issues/444\n this.window.removeEventListener('touchmove', this.preventTouch, {\n // @ts-expect-error: TS2769 В интерфейсе EventListenerOptions нет поля passive\n passive: false,\n });\n } else {\n this.window.addEventListener('touchmove', this.preventTouch, {\n passive: false,\n });\n }\n }\n\n preventTouch = (event: any) => {\n if (!event) {\n return false;\n }\n while (event.originalEvent) {\n event = event.originalEvent;\n }\n if (event.preventDefault) {\n event.preventDefault();\n }\n return false;\n };\n\n checkPageContentHeight() {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE && modalState?.modalElement) {\n const prevModalState = { ...modalState };\n initPageModal(modalState);\n const currentModalState = { ...modalState };\n\n let needAnimate = false;\n\n if (prevModalState.expandable === currentModalState.expandable) {\n if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {\n needAnimate = true;\n }\n } else {\n needAnimate = true;\n }\n\n if (needAnimate) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n }\n }\n\n updateModalHeight = () => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState && modalState.type === ModalType.PAGE) {\n if (this.props.enteringModal) {\n this.waitTransitionFinish(modalState, () => {\n requestAnimationFrame(() => this.checkPageContentHeight());\n });\n } else {\n requestAnimationFrame(() => this.checkPageContentHeight());\n }\n }\n };\n\n closeModal(id: string) {\n // Сбрасываем состояния, которые могут помешать закрытию модального окна\n this.setState({ touchDown: false });\n\n const prevModalState = this.props.getModalState(id);\n\n if (!prevModalState) {\n id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');\n return;\n }\n if (!this.state.modalOpenedLog.length) {\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, id],\n }));\n }\n const nextModalState = this.props.getModalState(this.props.activeModal);\n const nextIsPage = !!nextModalState && nextModalState.type === ModalType.PAGE;\n\n const prevIsPage = !!prevModalState && prevModalState.type === ModalType.PAGE;\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n const exitTranslate =\n prevIsPage &&\n nextIsPage &&\n (prevModalState.translateY ?? 0) <= (nextModalState?.translateYFrom ?? 0) &&\n !this.props.isBack\n ? (nextModalState?.translateYFrom ?? 0) + 10\n : 100;\n this.animateTranslate(prevModalState, exitTranslate);\n\n if (!nextModalState) {\n // NOTE: was only for clean exit\n this.setMaskOpacity(prevModalState, 0);\n this.setState({ modalOpenedLog: [] });\n prevModalState.translateY = undefined;\n } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {\n nextModalState.translateY = undefined;\n this.setState((prevState) => ({\n modalOpenedLog: [...prevState.modalOpenedLog, nextModalState.id!],\n }));\n }\n }\n\n onTouchMove = (e: TouchEvent) => {\n if (this.props.exitingModal) {\n return;\n }\n const modalState = this.props.getModalState(this.props.activeModal);\n if (!modalState) {\n return;\n }\n\n if (modalState.type === ModalType.PAGE) {\n return this.onPageTouchMove(e, modalState);\n }\n\n if (modalState.type === ModalType.CARD) {\n return this.onCardTouchMove(e, modalState);\n }\n };\n\n onPageTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { shiftY, originalEvent } = event;\n const target = originalEvent.target as HTMLElement;\n\n if (!event.isY) {\n if (this.viewportRef.current?.contains(target)) {\n originalEvent.preventDefault();\n }\n return;\n }\n\n if (!modalState.innerElement?.contains(target)) {\n return originalEvent.preventDefault();\n }\n\n originalEvent.stopPropagation();\n\n const { expandable, contentScrolled, collapsed, expanded } = modalState;\n\n if (!this.state.touchDown) {\n modalState.touchStartContentScrollTop = modalState.contentElement?.scrollTop ?? 0;\n this.setState({ touchDown: true });\n }\n\n if (contentScrolled) {\n return;\n }\n\n if (modalState.touchMovePositive === null) {\n modalState.touchMovePositive = shiftY > 0;\n }\n\n if (\n !modalState.expandable ||\n collapsed ||\n (expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0) ||\n modalState.headerElement?.contains(target)\n ) {\n originalEvent.preventDefault();\n\n if ((!expandable && shiftY < 0) || !this.window) {\n return;\n }\n\n !this.state.dragging && this.setState({ dragging: true });\n\n const shiftYPercent = (shiftY / this.window.innerHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = rangeTranslate((modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onCardTouchMove(event: TouchEvent, modalState: ModalsStateEntry) {\n const { originalEvent, shiftY } = event;\n const target = originalEvent.target as HTMLElement;\n if (modalState.innerElement?.contains(target)) {\n if (!this.state.touchDown) {\n this.setState({ touchDown: true, dragging: true });\n }\n\n const shiftYPercent = (shiftY / modalState.innerElement.offsetHeight) * 100;\n const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== Platform.IOS);\n\n modalState.touchShiftYPercent = shiftYPercent;\n modalState.translateYCurrent = Math.max(0, (modalState.translateY ?? 0) + shiftYCurrent);\n\n this.animateTranslate(modalState, modalState.translateYCurrent);\n this.setMaskOpacity(modalState);\n }\n }\n\n onTouchEnd = (e: TouchEvent) => {\n const modalState = this.props.getModalState(this.props.activeModal);\n\n if (modalState?.type === ModalType.PAGE) {\n return this.onPageTouchEnd(e, modalState);\n }\n\n if (modalState?.type === ModalType.CARD) {\n return this.onCardTouchEnd(e, modalState);\n }\n };\n\n onPageTouchEnd(event: TouchEvent, modalState: ModalsStateEntry) {\n const { startY, shiftY } = event;\n\n modalState.contentScrolled = false;\n modalState.touchMovePositive = null;\n\n let setStateCallback;\n\n if (this.state.dragging && this.window) {\n const shiftYEndPercent = ((startY + shiftY) / this.window.innerHeight) * 100;\n\n let translateY = modalState.translateYCurrent ?? 0;\n const expectTranslateY =\n (translateY / event.duration) *\n 240 *\n 0.6 *\n ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = rangeTranslate(translateY + expectTranslateY);\n\n if (modalState.settlingHeight !== 100) {\n if (numberInRange(translateY, modalState.expandedRange)) {\n translateY = modalState.expandedRange?.[0] ?? 0;\n } else if (numberInRange(translateY, modalState.collapsedRange)) {\n translateY = modalState.translateYFrom ?? 0;\n } else if (numberInRange(translateY, modalState.hiddenRange)) {\n translateY = 100;\n } else {\n translateY = modalState.translateYFrom ?? 0;\n }\n } else {\n if (numberInRange(translateY, [0, 25])) {\n translateY = 0;\n } else {\n translateY = 100;\n }\n }\n\n if (translateY !== 100 && shiftYEndPercent >= 75) {\n translateY = 100;\n }\n\n modalState.translateY = translateY;\n modalState.translateYCurrent = translateY;\n modalState.collapsed = translateY > 0 && translateY < shiftYEndPercent;\n modalState.expanded = translateY === 0;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onCardTouchEnd({ duration }: TouchEvent, modalState: ModalsStateEntry) {\n let setStateCallback;\n\n if (this.state.dragging) {\n let translateY = modalState.translateYCurrent ?? 0;\n\n const expectTranslateY =\n (translateY / duration) * 240 * 0.6 * ((modalState.touchShiftYPercent ?? 0) < 0 ? -1 : 1);\n translateY = Math.max(0, translateY + expectTranslateY);\n\n if (translateY >= 30) {\n translateY = 100;\n } else {\n translateY = 0;\n }\n\n modalState.translateY = translateY;\n modalState.hidden = translateY === 100;\n\n if (modalState.hidden) {\n this.props.onExit();\n }\n\n setStateCallback = () => {\n if (!modalState.hidden) {\n this.animateTranslate(modalState, modalState.translateY);\n }\n\n this.setMaskOpacity(modalState);\n };\n }\n\n this.setState(\n {\n touchDown: false,\n dragging: false,\n },\n setStateCallback,\n );\n }\n\n onScroll = (e: React.SyntheticEvent) => {\n const activeModal = this.props.activeModal;\n\n const target = e.target as HTMLElement;\n\n if (!activeModal) {\n return;\n }\n const modalState = this.props.getModalState(activeModal);\n if (modalState?.type === ModalType.PAGE && modalState?.contentElement?.contains(target)) {\n modalState.contentScrolled = true;\n\n if (modalState.contentScrollStopTimeout) {\n clearTimeout(modalState.contentScrollStopTimeout);\n }\n\n modalState.contentScrollStopTimeout = setTimeout(() => {\n if (modalState.contentScrolled) {\n modalState.contentScrolled = false;\n }\n }, 250);\n }\n };\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /**\n * Анимирует сдвиг модалки\n *\n * @param {ModalsStateEntry} modalState\n * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта\n */\n animateTranslate(modalState: ModalsStateEntry, percent: number | undefined) {\n const frameId = `animateTranslateFrame${modalState.id}`;\n\n cancelAnimationFrame(this.frameIds[frameId]);\n\n this.frameIds[frameId] = requestAnimationFrame(() => {\n setTransformStyle(modalState.innerElement, `translate3d(0, ${percent}%, 0)`);\n });\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { activeModal, exitingModal, enteringModal } = this.props;\n const { touchDown, dragging } = this.state;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <TouchRootContext.Provider value={true}>\n <ModalRootContext.Provider value={this.modalRootContext}>\n <Touch\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n touchDown &&\n classNames(styles['ModalRoot--touched'], 'vkuiInternalModalRoot--touched'),\n !!(enteringModal || exitingModal) &&\n classNames(styles['ModalRoot--switching'], 'vkuiInternalModalRoot--switching'),\n )}\n onMove={this.onTouchMove}\n onEnd={this.onTouchEnd}\n onScroll={this.onScroll}\n >\n <div\n className={styles['ModalRoot__mask']}\n onClick={this.props.onExit}\n ref={this.maskElementRef}\n />\n <div className={styles['ModalRoot__viewport']} ref={this.viewportRef}>\n {this.getModals().map((Modal) => {\n const modalId = getNavId(Modal.props, warn);\n const _modalState = this.props.getModalState(modalId);\n if ((modalId !== activeModal && modalId !== exitingModal) || !_modalState) {\n return null;\n }\n const modalState = { ..._modalState };\n\n const isPage = modalState.type === ModalType.PAGE;\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n key={key}\n getRootRef={(e) => {\n const modalState = this.props.getModalState(modalId);\n if (modalState) {\n modalState.modalElement = e;\n }\n }}\n onClose={this.props.onExit}\n timeout={this.timeout}\n className={classNames(\n styles['ModalRoot__modal'],\n\n dragging && 'vkuiInternalModalRoot__modal--dragging',\n\n isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable',\n isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed',\n )}\n restoreFocus={false}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </Touch>\n </ModalRootContext.Provider>\n </TouchRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootTouch = withContext(\n withPlatform(\n withDOM<ModalRootWithDOMProps>(withModalManager(initModal)(ModalRootTouchComponent)),\n ),\n ConfigProviderContext,\n 'configProvider',\n);\n\n/**\n * Инициализирует модалку перед анимацией открытия\n */\nfunction initModal(modalState: ModalsStateEntry) {\n switch (modalState.type) {\n case ModalType.PAGE:\n modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;\n return initPageModal(modalState);\n case ModalType.CARD:\n return initCardModal(modalState);\n default:\n process.env.NODE_ENV === 'development' &&\n warn(`initActiveModal: modalState.type=\"${modalState.type}\" не поддерживается`, 'error');\n }\n}\n\nfunction initPageModal(modalState: ModalsStateEntry) {\n const { contentElement } = modalState;\n const contentHeight = (contentElement?.firstElementChild as HTMLElement).offsetHeight;\n\n let prevTranslateY = modalState.translateY;\n\n modalState.expandable =\n contentHeight > (contentElement?.clientHeight ?? 0) ||\n modalState.settlingHeight === 100 ||\n modalState.expanded;\n\n let collapsed = false;\n let expanded = false;\n let translateYFrom;\n let translateY;\n let expandedRange: TranslateRange;\n let collapsedRange: TranslateRange;\n let hiddenRange: TranslateRange;\n\n if (modalState.expandable) {\n translateYFrom = 100 - (modalState.settlingHeight ?? 0);\n\n const shiftHalf = translateYFrom / 2;\n const visiblePart = 100 - translateYFrom;\n\n expandedRange = [0, shiftHalf];\n collapsedRange = [shiftHalf, translateYFrom + visiblePart / 4];\n hiddenRange = [translateYFrom + visiblePart / 4, 100];\n\n collapsed = translateYFrom > 0;\n expanded = translateYFrom <= 0;\n translateY = translateYFrom;\n } else {\n const headerHeight = modalState.headerElement?.offsetHeight ?? 0;\n const height = contentHeight + headerHeight;\n\n translateYFrom =\n 100 - (height / (modalState.innerElement?.parentElement?.offsetHeight ?? 0)) * 100;\n translateY = translateYFrom;\n\n expandedRange = [translateY, translateY + 25];\n collapsedRange = [translateY + 25, translateY + 25];\n hiddenRange = [translateY + 25, translateY + 100];\n }\n\n // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран\n if (\n (modalState.expandable && translateY > (prevTranslateY ?? 100)) ||\n modalState.settlingHeight === 100\n ) {\n translateY = 0;\n }\n\n // Если модалка уже раскрыта обновляем состояния\n if (translateY === 0) {\n expanded = true;\n collapsed = false;\n }\n\n modalState.expandedRange = expandedRange;\n modalState.collapsedRange = collapsedRange;\n modalState.hiddenRange = hiddenRange;\n modalState.translateY = translateY;\n modalState.translateYFrom = translateYFrom;\n modalState.collapsed = collapsed;\n modalState.expanded = expanded;\n}\n\nfunction initCardModal(modalState: ModalsStateEntry) {\n modalState.translateY = 0;\n}\n"],"names":["ModalRootTouch","warn","warnOnce","numberInRange","number","range","rangeTranslate","clamp","ModalRootTouchComponent","props","documentScrolling","maskElementRef","viewportRef","React","createRef","maskAnimationFrame","undefined","modalRootContext","frameIds","restoreFocusTo","preventTouch","event","originalEvent","preventDefault","updateModalHeight","modalState","getModalState","activeModal","type","ModalType","PAGE","enteringModal","waitTransitionFinish","requestAnimationFrame","checkPageContentHeight","onTouchMove","e","exitingModal","onPageTouchMove","CARD","onCardTouchMove","onTouchEnd","onPageTouchEnd","onCardTouchEnd","onScroll","target","contentElement","contains","contentScrolled","contentScrollStopTimeout","clearTimeout","setTimeout","state","touchDown","dragging","modalOpenedLog","registerModal","id","data","Object","assign","onClose","onExit","isInsideModal","timeout","platform","Platform","IOS","document","window","getModals","Children","toArray","children","componentDidMount","addEventListener","componentWillUnmount","toggleDocumentScrolling","removeEventListener","componentDidUpdate","prevProps","closeModal","enteringState","onEnter","innerElement","style","transitionDelay","onEntered","delayEnter","animateTranslate","translateY","activeElement","focus","enabled","passive","modalElement","prevModalState","initPageModal","currentModalState","needAnimate","expandable","translateYFrom","nextModalState","setState","length","prevState","nextIsPage","prevIsPage","onExited","exitTranslate","isBack","setMaskOpacity","includes","shiftY","isY","current","stopPropagation","collapsed","expanded","touchStartContentScrollTop","scrollTop","touchMovePositive","headerElement","shiftYPercent","innerHeight","shiftYCurrent","rubber","touchShiftYPercent","translateYCurrent","offsetHeight","Math","max","startY","setStateCallback","shiftYEndPercent","expectTranslateY","duration","settlingHeight","expandedRange","collapsedRange","hiddenRange","hidden","eventHandler","transitionEvent","supported","onceHandler","name","percent","frameId","cancelAnimationFrame","setTransformStyle","forceOpacity","history","opacity","toString","render","TouchRootContext","Provider","value","ModalRootContext","Touch","className","classNames","configProvider","webviewType","WebviewType","VKAPPS","onMove","onEnd","div","onClick","ref","map","Modal","modalId","getNavId","_modalState","isPage","key","FocusTrap","getRootRef","restoreFocus","Component","withContext","withPlatform","withDOM","withModalManager","initModal","ConfigProviderContext","MODAL_PAGE_DEFAULT_PERCENT_HEIGHT","initCardModal","process","env","NODE_ENV","contentHeight","firstElementChild","prevTranslateY","clientHeight","shiftHalf","visiblePart","headerHeight","height","parentElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport { ModalRootProps } from './types';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"names":["ModalRoot","props","isDesktop","useAdaptivityWithJSMediaQueries","useScrollLock","activeModal","RootComponent","ModalRootDesktop","ModalRootTouch"],"mappings":";;;;+BAUaA;;;eAAAA;;;;+DAVU;+CACyB;6BAClB;yBACC;gCACE;AAM1B,IAAMA,YAAY,SAACC;IACxB,IAAM,AAAEC,YAAcC,IAAAA,oEAAdD;IAERE,IAAAA,8BAAc,CAAC,CAACH,MAAMI;IAEtB,IAAMC,gBAAgBJ,YAAYK,qCAAmBC;IAErD,qBAAO,qBAACF,eAAkBL;AAC5B"}
1
+ {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport { ModalRootProps } from './types';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"names":["ModalRoot","props","isDesktop","useAdaptivityWithJSMediaQueries","useScrollLock","activeModal","RootComponent","ModalRootDesktop","ModalRootTouch"],"mappings":";;;;+BAUaA;;;eAAAA;;;;+DAVU;+CACyB;6BAClB;yBACC;gCACE;AAM1B,IAAMA,YAAY,SAACC;IACxB,IAAM,AAAEC,YAAcC,IAAAA,gEAA+B,IAA7CD;IAERE,IAAAA,4BAAa,EAAC,CAAC,CAACH,MAAMI,WAAW;IAEjC,IAAMC,gBAAgBJ,YAAYK,kCAAgB,GAAGC,yBAAc;IAEnE,qBAAO,qBAACF,eAAkBL;AAC5B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { ModalElements, ModalsStateEntry, ModalType } from './types';\n\nexport type ModalRegistryEntry = ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>;\ntype ModalRefs = { [k in keyof ModalElements]: (e: ModalElements[k]) => void };\n\nexport interface ModalRootContextInterface {\n updateModalHeight: VoidFunction;\n registerModal(data: ModalRegistryEntry): void;\n onClose?: VoidFunction;\n isInsideModal: boolean;\n}\n\nexport const ModalRootContext = React.createContext<ModalRootContextInterface>({\n updateModalHeight: () => undefined,\n registerModal: () => undefined,\n isInsideModal: false,\n});\n\n/**\n * All referenced elements must be static\n */\nexport function useModalRegistry(id: string | undefined, type: ModalType) {\n const modalContext = React.useContext(ModalRootContext);\n const elements = React.useRef<ModalElements>({}).current;\n useIsomorphicLayoutEffect(() => {\n if (id !== undefined) {\n modalContext.registerModal({ ...elements, type, id });\n // unset refs on unmount to prevent leak\n const reset = Object.keys(elements).reduce<ModalRegistryEntry>(\n (acc, k) => ({ ...acc, [k]: null }),\n { type, id },\n );\n return () => modalContext.registerModal(reset);\n }\n return undefined;\n }, []);\n\n const refs = React.useRef<Required<ModalRefs>>({\n modalElement: (e) => (elements.modalElement = e),\n innerElement: (e) => (elements.innerElement = e),\n headerElement: (e) => (elements.headerElement = e),\n contentElement: (e) => (elements.contentElement = e),\n }).current;\n return { refs };\n}\n"],"names":["ModalRootContext","useModalRegistry","React","createContext","updateModalHeight","undefined","registerModal","isInsideModal","id","type","modalContext","useContext","elements","useRef","current","useIsomorphicLayoutEffect","reset","Object","keys","reduce","acc","k","refs","modalElement","e","innerElement","headerElement","contentElement"],"mappings":";;;;;;;;;;;IAcaA,gBAAgB;eAAhBA;;IASGC,gBAAgB;eAAhBA;;;;;;;+DAvBO;yCACmB;AAanC,IAAMD,iCAAmBE,OAAMC,cAAyC;IAC7EC,mBAAmB;eAAMC;;IACzBC,eAAe;eAAMD;;IACrBE,eAAe;AACjB;AAKO,SAASN,iBAAiBO,EAAsB,EAAEC,IAAe;IACtE,IAAMC,eAAeR,OAAMS,WAAWX;IACtC,IAAMY,WAAWV,OAAMW,OAAsB,CAAC,GAAGC;IACjDC,IAAAA,sDAA0B;QACxB,IAAIP,OAAOH,WAAW;YACpBK,aAAaJ,cAAc,4CAAKM;gBAAUH,MAAAA;gBAAMD,IAAAA;;YAChD,yCAAyC;YACzC,IAAMQ,QAAQC,OAAOC,KAAKN,UAAUO,OAClC,SAACC,KAAKC;uBAAO,4CAAKD,MAAK,uBAACC,GAAI;eAC5B;gBAAEZ,MAAAA;gBAAMD,IAAAA;YAAG;YAEb,OAAO;uBAAME,aAAaJ,cAAcU;;QAC1C;QACA,OAAOX;IACT,GAAG,EAAE;IAEL,IAAMiB,OAAOpB,OAAMW,OAA4B;QAC7CU,cAAc,SAACC;mBAAOZ,SAASW,eAAeC;;QAC9CC,cAAc,SAACD;mBAAOZ,SAASa,eAAeD;;QAC9CE,eAAe,SAACF;mBAAOZ,SAASc,gBAAgBF;;QAChDG,gBAAgB,SAACH;mBAAOZ,SAASe,iBAAiBH;;IACpD,GAAGV;IACH,OAAO;QAAEQ,MAAAA;IAAK;AAChB"}
1
+ {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { ModalElements, ModalsStateEntry, ModalType } from './types';\n\nexport type ModalRegistryEntry = ModalElements & Required<Pick<ModalsStateEntry, 'type' | 'id'>>;\ntype ModalRefs = { [k in keyof ModalElements]: (e: ModalElements[k]) => void };\n\nexport interface ModalRootContextInterface {\n updateModalHeight: VoidFunction;\n registerModal(data: ModalRegistryEntry): void;\n onClose?: VoidFunction;\n isInsideModal: boolean;\n}\n\nexport const ModalRootContext = React.createContext<ModalRootContextInterface>({\n updateModalHeight: () => undefined,\n registerModal: () => undefined,\n isInsideModal: false,\n});\n\n/**\n * All referenced elements must be static\n */\nexport function useModalRegistry(id: string | undefined, type: ModalType) {\n const modalContext = React.useContext(ModalRootContext);\n const elements = React.useRef<ModalElements>({}).current;\n useIsomorphicLayoutEffect(() => {\n if (id !== undefined) {\n modalContext.registerModal({ ...elements, type, id });\n // unset refs on unmount to prevent leak\n const reset = Object.keys(elements).reduce<ModalRegistryEntry>(\n (acc, k) => ({ ...acc, [k]: null }),\n { type, id },\n );\n return () => modalContext.registerModal(reset);\n }\n return undefined;\n }, []);\n\n const refs = React.useRef<Required<ModalRefs>>({\n modalElement: (e) => (elements.modalElement = e),\n innerElement: (e) => (elements.innerElement = e),\n headerElement: (e) => (elements.headerElement = e),\n contentElement: (e) => (elements.contentElement = e),\n }).current;\n return { refs };\n}\n"],"names":["ModalRootContext","useModalRegistry","React","createContext","updateModalHeight","undefined","registerModal","isInsideModal","id","type","modalContext","useContext","elements","useRef","current","useIsomorphicLayoutEffect","reset","Object","keys","reduce","acc","k","refs","modalElement","e","innerElement","headerElement","contentElement"],"mappings":";;;;;;;;;;;IAcaA,gBAAgB;eAAhBA;;IASGC,gBAAgB;eAAhBA;;;;;;;+DAvBO;yCACmB;AAanC,IAAMD,iCAAmBE,OAAMC,aAAa,CAA4B;IAC7EC,mBAAmB;eAAMC;;IACzBC,eAAe;eAAMD;;IACrBE,eAAe;AACjB;AAKO,SAASN,iBAAiBO,EAAsB,EAAEC,IAAe;IACtE,IAAMC,eAAeR,OAAMS,UAAU,CAACX;IACtC,IAAMY,WAAWV,OAAMW,MAAM,CAAgB,CAAC,GAAGC,OAAO;IACxDC,IAAAA,oDAAyB,EAAC;QACxB,IAAIP,OAAOH,WAAW;YACpBK,aAAaJ,aAAa,CAAC,4CAAKM;gBAAUH,MAAAA;gBAAMD,IAAAA;;YAChD,yCAAyC;YACzC,IAAMQ,QAAQC,OAAOC,IAAI,CAACN,UAAUO,MAAM,CACxC,SAACC,KAAKC;uBAAO,4CAAKD,MAAK,uBAACC,GAAI;eAC5B;gBAAEZ,MAAAA;gBAAMD,IAAAA;YAAG;YAEb,OAAO;uBAAME,aAAaJ,aAAa,CAACU;;QAC1C;QACA,OAAOX;IACT,GAAG,EAAE;IAEL,IAAMiB,OAAOpB,OAAMW,MAAM,CAAsB;QAC7CU,cAAc,SAACC;mBAAOZ,SAASW,YAAY,GAAGC;;QAC9CC,cAAc,SAACD;mBAAOZ,SAASa,YAAY,GAAGD;;QAC9CE,eAAe,SAACF;mBAAOZ,SAASc,aAAa,GAAGF;;QAChDG,gBAAgB,SAACH;mBAAOZ,SAASe,cAAc,GAAGH;;IACpD,GAAGV,OAAO;IACV,OAAO;QAAEQ,MAAAA;IAAK;AAChB"}
@@ -56,7 +56,8 @@ var ModalRootDesktop = function(param) {
56
56
  var timeout = platform === _platform.Platform.IOS ? 400 : 320;
57
57
  var modals = _react.Children.toArray(children);
58
58
  /* Анимирует сдвиг модального окна */ var animateModalOpacity = function(modalState, display) {
59
- if (modalState === null || modalState === void 0 ? void 0 : modalState.innerElement) {
59
+ var _modalState;
60
+ if ((_modalState = modalState) === null || _modalState === void 0 ? void 0 : _modalState.innerElement) {
60
61
  modalState.innerElement.style.transition = "";
61
62
  modalState.innerElement.style.transitionDelay = display && delayEnter ? "".concat(timeout, "ms") : "";
62
63
  modalState.innerElement.style.opacity = display ? "1" : "0";
@@ -64,7 +65,8 @@ var ModalRootDesktop = function(param) {
64
65
  };
65
66
  /* Устанавливает прозрачность для полупрозрачной подложки */ var setMaskOpacity = function(modalState) {
66
67
  var forceOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
67
- if (forceOpacity === null && (history === null || history === void 0 ? void 0 : history[0]) !== modalState.id) {
68
+ var _history;
69
+ if (forceOpacity === null && ((_history = history) === null || _history === void 0 ? void 0 : _history[0]) !== modalState.id) {
68
70
  return;
69
71
  }
70
72
  if (maskAnimationFrame.current) {
@@ -79,6 +81,7 @@ var ModalRootDesktop = function(param) {
79
81
  });
80
82
  };
81
83
  var openModal = function() {
84
+ var _enteringState;
82
85
  if (!enteringModal || !prevProps) {
83
86
  return;
84
87
  }
@@ -88,7 +91,8 @@ var ModalRootDesktop = function(param) {
88
91
  if (!prevProps.exitingModal) {
89
92
  requestAnimationFrame(function() {
90
93
  if (enteringModal === enteringModal) {
91
- waitTransitionFinish(enteringState === null || enteringState === void 0 ? void 0 : enteringState.innerElement, function() {
94
+ var _enteringState;
95
+ waitTransitionFinish((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement, function() {
92
96
  return onEntered(enteringModal);
93
97
  }, timeout);
94
98
  animateModalOpacity(enteringState, true);
@@ -97,7 +101,7 @@ var ModalRootDesktop = function(param) {
97
101
  return;
98
102
  }
99
103
  // Переход между модальными окнами без анимации
100
- if (enteringState === null || enteringState === void 0 ? void 0 : enteringState.innerElement) {
104
+ if ((_enteringState = enteringState) === null || _enteringState === void 0 ? void 0 : _enteringState.innerElement) {
101
105
  enteringState.innerElement.style.transition = "none";
102
106
  enteringState.innerElement.style.opacity = "1";
103
107
  }
@@ -111,7 +115,8 @@ var ModalRootDesktop = function(param) {
111
115
  // Анимация закрытия модального окна
112
116
  if (!activeModal) {
113
117
  requestAnimationFrame(function() {
114
- waitTransitionFinish(prevModalState === null || prevModalState === void 0 ? void 0 : prevModalState.innerElement, function() {
118
+ var _prevModalState;
119
+ waitTransitionFinish((_prevModalState = prevModalState) === null || _prevModalState === void 0 ? void 0 : _prevModalState.innerElement, function() {
115
120
  return onExited(id);
116
121
  }, timeout);
117
122
  animateModalOpacity(prevModalState, false);
@@ -136,8 +141,9 @@ var ModalRootDesktop = function(param) {
136
141
  }
137
142
  // focus restoration
138
143
  if (activeModal && !prevProps.activeModal) {
144
+ var _document;
139
145
  var _document_activeElement;
140
- restoreFocusTo.current = (_document_activeElement = document === null || document === void 0 ? void 0 : document.activeElement) !== null && _document_activeElement !== void 0 ? _document_activeElement : undefined;
146
+ restoreFocusTo.current = (_document_activeElement = (_document = document) === null || _document === void 0 ? void 0 : _document.activeElement) !== null && _document_activeElement !== void 0 ? _document_activeElement : undefined;
141
147
  }
142
148
  if (!activeModal && !exitingModal && restoreFocusTo.current) {
143
149
  restoreFocusTo.current.focus();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { ModalRootWithDOMProps, ModalsStateEntry } from './types';\nimport { useModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport const ModalRootDesktop = ({\n activeModal: activeModalProp,\n children,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: ModalRootWithDOMProps) => {\n const maskElementRef = React.useRef<HTMLDivElement>(null);\n const maskAnimationFrame = React.useRef<number | undefined>(undefined);\n const restoreFocusTo = React.useRef<HTMLElement | undefined>(undefined);\n\n const { document } = useDOM();\n const { webviewType, platform } = useConfigProvider();\n const {\n activeModal,\n exitingModal,\n onExit,\n getModalState,\n enteringModal,\n onEnter,\n onEntered,\n onExited,\n history,\n delayEnter,\n } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const prevProps = usePrevious({\n exitingModal,\n enteringModal,\n activeModal,\n });\n const modalRootContext: ModalRootContextInterface = useObjectMemo({\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(getModalState(id) ?? {}, data),\n onClose: onExit,\n isInsideModal: true,\n });\n\n const timeout = platform === Platform.IOS ? 400 : 320;\n const modals = React.Children.toArray(children) as React.ReactElement[];\n\n /* Анимирует сдвиг модального окна */\n const animateModalOpacity = (modalState: ModalsStateEntry | undefined, display: boolean) => {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n };\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n const setMaskOpacity = (modalState: ModalsStateEntry, forceOpacity: number | null = null) => {\n if (forceOpacity === null && history?.[0] !== modalState.id) {\n return;\n }\n\n if (maskAnimationFrame.current) {\n cancelAnimationFrame(maskAnimationFrame.current);\n }\n maskAnimationFrame.current = requestAnimationFrame(() => {\n if (maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n };\n\n const openModal = () => {\n if (!enteringModal || !prevProps) {\n return;\n }\n\n const enteringState = getModalState(enteringModal);\n onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (enteringModal === enteringModal) {\n waitTransitionFinish(\n enteringState?.innerElement,\n () => onEntered(enteringModal),\n timeout,\n );\n animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n onEntered(enteringModal);\n };\n\n const closeModal = (id: string) => {\n const prevModalState = getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!activeModal) {\n requestAnimationFrame(() => {\n waitTransitionFinish(prevModalState?.innerElement, () => onExited(id), timeout);\n animateModalOpacity(prevModalState, false);\n setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n onExited(id);\n };\n\n React.useEffect(() => {\n if (!prevProps) {\n return;\n }\n\n // transition phase 2: animate exiting modal\n if (exitingModal && exitingModal !== prevProps.exitingModal) {\n closeModal(exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (enteringModal && enteringModal !== prevProps.enteringModal) {\n openModal();\n }\n\n // focus restoration\n if (activeModal && !prevProps.activeModal) {\n restoreFocusTo.current = (document?.activeElement ?? undefined) as HTMLElement | undefined;\n }\n if (!activeModal && !exitingModal && restoreFocusTo.current) {\n restoreFocusTo.current.focus();\n restoreFocusTo.current = undefined;\n }\n });\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n webviewType === WebviewType.VKAPPS && styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div className={styles['ModalRoot__mask']} ref={maskElementRef} onClick={onExit} />\n <div className={styles['ModalRoot__viewport']}>\n {modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={onExit}\n timeout={timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n};\n"],"names":["ModalRootDesktop","warn","warnOnce","activeModal","activeModalProp","children","onOpen","onOpened","onClose","onClosed","maskElementRef","React","useRef","maskAnimationFrame","undefined","restoreFocusTo","document","useDOM","useConfigProvider","webviewType","platform","useModalManager","noop","exitingModal","onExit","getModalState","enteringModal","onEnter","onEntered","onExited","history","delayEnter","waitTransitionFinish","useWaitTransitionFinish","prevProps","usePrevious","modalRootContext","useObjectMemo","updateModalHeight","registerModal","id","data","Object","assign","isInsideModal","timeout","Platform","IOS","modals","Children","toArray","animateModalOpacity","modalState","display","innerElement","style","transition","transitionDelay","opacity","setMaskOpacity","forceOpacity","current","cancelAnimationFrame","requestAnimationFrame","translateY","translateYCurrent","clamp","toString","openModal","enteringState","closeModal","prevModalState","useEffect","activeElement","focus","ModalRootContext","Provider","value","div","className","classNames","WebviewType","VKAPPS","ref","onClick","map","Modal","modalId","getNavId","props","key","FocusTrap","restoreFocus"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { ModalRootWithDOMProps, ModalsStateEntry } from './types';\nimport { useModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport const ModalRootDesktop = ({\n activeModal: activeModalProp,\n children,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: ModalRootWithDOMProps) => {\n const maskElementRef = React.useRef<HTMLDivElement>(null);\n const maskAnimationFrame = React.useRef<number | undefined>(undefined);\n const restoreFocusTo = React.useRef<HTMLElement | undefined>(undefined);\n\n const { document } = useDOM();\n const { webviewType, platform } = useConfigProvider();\n const {\n activeModal,\n exitingModal,\n onExit,\n getModalState,\n enteringModal,\n onEnter,\n onEntered,\n onExited,\n history,\n delayEnter,\n } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const prevProps = usePrevious({\n exitingModal,\n enteringModal,\n activeModal,\n });\n const modalRootContext: ModalRootContextInterface = useObjectMemo({\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(getModalState(id) ?? {}, data),\n onClose: onExit,\n isInsideModal: true,\n });\n\n const timeout = platform === Platform.IOS ? 400 : 320;\n const modals = React.Children.toArray(children) as React.ReactElement[];\n\n /* Анимирует сдвиг модального окна */\n const animateModalOpacity = (modalState: ModalsStateEntry | undefined, display: boolean) => {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n };\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n const setMaskOpacity = (modalState: ModalsStateEntry, forceOpacity: number | null = null) => {\n if (forceOpacity === null && history?.[0] !== modalState.id) {\n return;\n }\n\n if (maskAnimationFrame.current) {\n cancelAnimationFrame(maskAnimationFrame.current);\n }\n maskAnimationFrame.current = requestAnimationFrame(() => {\n if (maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n };\n\n const openModal = () => {\n if (!enteringModal || !prevProps) {\n return;\n }\n\n const enteringState = getModalState(enteringModal);\n onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (enteringModal === enteringModal) {\n waitTransitionFinish(\n enteringState?.innerElement,\n () => onEntered(enteringModal),\n timeout,\n );\n animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n onEntered(enteringModal);\n };\n\n const closeModal = (id: string) => {\n const prevModalState = getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!activeModal) {\n requestAnimationFrame(() => {\n waitTransitionFinish(prevModalState?.innerElement, () => onExited(id), timeout);\n animateModalOpacity(prevModalState, false);\n setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n onExited(id);\n };\n\n React.useEffect(() => {\n if (!prevProps) {\n return;\n }\n\n // transition phase 2: animate exiting modal\n if (exitingModal && exitingModal !== prevProps.exitingModal) {\n closeModal(exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (enteringModal && enteringModal !== prevProps.enteringModal) {\n openModal();\n }\n\n // focus restoration\n if (activeModal && !prevProps.activeModal) {\n restoreFocusTo.current = (document?.activeElement ?? undefined) as HTMLElement | undefined;\n }\n if (!activeModal && !exitingModal && restoreFocusTo.current) {\n restoreFocusTo.current.focus();\n restoreFocusTo.current = undefined;\n }\n });\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n webviewType === WebviewType.VKAPPS && styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div className={styles['ModalRoot__mask']} ref={maskElementRef} onClick={onExit} />\n <div className={styles['ModalRoot__viewport']}>\n {modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={onExit}\n timeout={timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n};\n"],"names":["ModalRootDesktop","warn","warnOnce","activeModal","activeModalProp","children","onOpen","onOpened","onClose","onClosed","maskElementRef","React","useRef","maskAnimationFrame","undefined","restoreFocusTo","document","useDOM","useConfigProvider","webviewType","platform","useModalManager","noop","exitingModal","onExit","getModalState","enteringModal","onEnter","onEntered","onExited","history","delayEnter","waitTransitionFinish","useWaitTransitionFinish","prevProps","usePrevious","modalRootContext","useObjectMemo","updateModalHeight","registerModal","id","data","Object","assign","isInsideModal","timeout","Platform","IOS","modals","Children","toArray","animateModalOpacity","modalState","display","innerElement","style","transition","transitionDelay","opacity","setMaskOpacity","forceOpacity","current","cancelAnimationFrame","requestAnimationFrame","translateY","translateYCurrent","clamp","toString","openModal","enteringState","closeModal","prevModalState","useEffect","activeElement","focus","ModalRootContext","Provider","value","div","className","classNames","WebviewType","VKAPPS","ref","onClick","map","Modal","modalId","getNavId","props","key","FocusTrap","restoreFocus"],"mappings":"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"}