@vkontakte/vkui 7.0.0-dev-efd91c.0 → 7.0.0-dev-efd91c.2

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 (620) hide show
  1. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  2. package/dist/components/Accordion/Accordion.js +9 -5
  3. package/dist/components/Accordion/Accordion.js.map +1 -1
  4. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  5. package/dist/components/ActionSheet/ActionSheet.js +20 -14
  6. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  7. package/dist/components/Alert/Alert.d.ts +3 -1
  8. package/dist/components/Alert/Alert.d.ts.map +1 -1
  9. package/dist/components/Alert/Alert.js +61 -56
  10. package/dist/components/Alert/Alert.js.map +1 -1
  11. package/dist/components/AppRoot/AppRoot.d.ts +2 -1
  12. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  13. package/dist/components/AppRoot/AppRoot.js +75 -102
  14. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  15. package/dist/components/AppRoot/AppRootContext.d.ts +6 -1
  16. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  17. package/dist/components/AppRoot/AppRootContext.js +5 -1
  18. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  19. package/dist/components/AppRoot/AppRootPortal.d.ts +6 -2
  20. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  21. package/dist/components/AppRoot/AppRootPortal.js +49 -27
  22. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  23. package/dist/components/AppRoot/AppRootStyleContainer.d.ts +16 -0
  24. package/dist/components/AppRoot/AppRootStyleContainer.d.ts.map +1 -0
  25. package/dist/components/AppRoot/AppRootStyleContainer.js +57 -0
  26. package/dist/components/AppRoot/AppRootStyleContainer.js.map +1 -0
  27. package/dist/components/AppRoot/ModalPopoutPortal.d.ts +11 -0
  28. package/dist/components/AppRoot/ModalPopoutPortal.d.ts.map +1 -0
  29. package/dist/components/AppRoot/ModalPopoutPortal.js +28 -0
  30. package/dist/components/AppRoot/ModalPopoutPortal.js.map +1 -0
  31. package/dist/components/AppRoot/helpers.d.ts +2 -12
  32. package/dist/components/AppRoot/helpers.d.ts.map +1 -1
  33. package/dist/components/AppRoot/helpers.js +6 -56
  34. package/dist/components/AppRoot/helpers.js.map +1 -1
  35. package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
  36. package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts.map +1 -1
  37. package/dist/components/BaseGallery/CarouselBase/CarouselBase.js +1 -0
  38. package/dist/components/BaseGallery/CarouselBase/CarouselBase.js.map +1 -1
  39. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  40. package/dist/components/CalendarHeader/CalendarHeader.js +2 -2
  41. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  42. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  43. package/dist/components/CalendarTime/CalendarTime.js +2 -2
  44. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  45. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  46. package/dist/components/ConfigProvider/ConfigProvider.js +15 -7
  47. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  48. package/dist/components/Counter/Counter.d.ts +16 -6
  49. package/dist/components/Counter/Counter.d.ts.map +1 -1
  50. package/dist/components/Counter/Counter.js +50 -5
  51. package/dist/components/Counter/Counter.js.map +1 -1
  52. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  53. package/dist/components/CustomSelect/CustomSelect.js +7 -1
  54. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  55. package/dist/components/FormItem/FormItem.d.ts.map +1 -1
  56. package/dist/components/FormItem/FormItem.js +5 -3
  57. package/dist/components/FormItem/FormItem.js.map +1 -1
  58. package/dist/components/Gallery/Gallery.js.map +1 -1
  59. package/dist/components/Group/GroupContainer.d.ts.map +1 -1
  60. package/dist/components/Group/GroupContainer.js +2 -2
  61. package/dist/components/Group/GroupContainer.js.map +1 -1
  62. package/dist/components/Link/Link.d.ts +15 -2
  63. package/dist/components/Link/Link.d.ts.map +1 -1
  64. package/dist/components/Link/Link.js +20 -5
  65. package/dist/components/Link/Link.js.map +1 -1
  66. package/dist/components/ModalCard/ModalCard.d.ts +2 -6
  67. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  68. package/dist/components/ModalCard/ModalCard.js +40 -65
  69. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  70. package/dist/components/ModalCard/ModalCardInternal.d.ts +13 -0
  71. package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -0
  72. package/dist/components/ModalCard/ModalCardInternal.js +147 -0
  73. package/dist/components/ModalCard/ModalCardInternal.js.map +1 -0
  74. package/dist/components/ModalCard/types.d.ts +44 -0
  75. package/dist/components/ModalCard/types.d.ts.map +1 -0
  76. package/dist/components/ModalCard/types.js +3 -0
  77. package/dist/components/ModalCard/types.js.map +1 -0
  78. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  79. package/dist/components/ModalCardBase/ModalCardBase.js +1 -3
  80. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  81. package/dist/components/ModalOutlet/ModalOutlet.d.ts +9 -0
  82. package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -0
  83. package/dist/components/ModalOutlet/ModalOutlet.js +25 -0
  84. package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -0
  85. package/dist/components/ModalOverlay/ModalOverlay.d.ts +12 -0
  86. package/dist/components/ModalOverlay/ModalOverlay.d.ts.map +1 -0
  87. package/dist/components/ModalOverlay/ModalOverlay.js +47 -0
  88. package/dist/components/ModalOverlay/ModalOverlay.js.map +1 -0
  89. package/dist/components/ModalPage/ModalPage.d.ts +2 -60
  90. package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
  91. package/dist/components/ModalPage/ModalPage.js +39 -111
  92. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  93. package/dist/components/ModalPage/ModalPageInternal.d.ts +13 -0
  94. package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -0
  95. package/dist/components/ModalPage/ModalPageInternal.js +181 -0
  96. package/dist/components/ModalPage/ModalPageInternal.js.map +1 -0
  97. package/dist/components/ModalPage/types.d.ts +104 -0
  98. package/dist/components/ModalPage/types.d.ts.map +1 -0
  99. package/dist/components/ModalPage/types.js +3 -0
  100. package/dist/components/ModalPage/types.js.map +1 -0
  101. package/dist/components/ModalPageContent/ModalPageContent.d.ts +4 -0
  102. package/dist/components/ModalPageContent/ModalPageContent.d.ts.map +1 -0
  103. package/dist/components/ModalPageContent/ModalPageContent.js +22 -0
  104. package/dist/components/ModalPageContent/ModalPageContent.js.map +1 -0
  105. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts +7 -0
  106. package/dist/components/ModalPageFooter/ModalPageFooter.d.ts.map +1 -0
  107. package/dist/components/ModalPageFooter/ModalPageFooter.js +30 -0
  108. package/dist/components/ModalPageFooter/ModalPageFooter.js.map +1 -0
  109. package/dist/components/ModalPageHeader/ModalPageHeader.d.ts.map +1 -1
  110. package/dist/components/ModalPageHeader/ModalPageHeader.js +4 -4
  111. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  112. package/dist/components/ModalRoot/ModalRoot.d.ts +5 -2
  113. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  114. package/dist/components/ModalRoot/ModalRoot.js +52 -590
  115. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  116. package/dist/components/ModalRoot/ModalRootContext.d.ts +8 -18
  117. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  118. package/dist/components/ModalRoot/ModalRootContext.js +13 -40
  119. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  120. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts +13 -0
  121. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.d.ts.map +1 -0
  122. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js +33 -0
  123. package/dist/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js.map +1 -0
  124. package/dist/components/ModalRoot/types.d.ts +52 -21
  125. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  126. package/dist/components/ModalRoot/types.js +1 -1
  127. package/dist/components/ModalRoot/types.js.map +1 -1
  128. package/dist/components/ModalRoot/useModalManager.d.ts +27 -38
  129. package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
  130. package/dist/components/ModalRoot/useModalManager.js +37 -193
  131. package/dist/components/ModalRoot/useModalManager.js.map +1 -1
  132. package/dist/components/ModalRoot/useModalRootContext.d.ts +2 -2
  133. package/dist/components/ModalRoot/useModalRootContext.d.ts.map +1 -1
  134. package/dist/components/ModalRoot/useModalRootContext.js +18 -2
  135. package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
  136. package/dist/components/ModalRoot/withModalRootContext.d.ts +6 -1
  137. package/dist/components/ModalRoot/withModalRootContext.d.ts.map +1 -1
  138. package/dist/components/ModalRoot/withModalRootContext.js +7 -4
  139. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  140. package/dist/components/NativeSelect/NativeSelect.d.ts +5 -6
  141. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  142. package/dist/components/NativeSelect/NativeSelect.js +7 -1
  143. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  144. package/dist/components/NavTransitionContext/NavTransitionContext.d.ts.map +1 -1
  145. package/dist/components/NavTransitionContext/NavTransitionContext.js +6 -4
  146. package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  147. package/dist/components/PanelHeader/PanelHeader.d.ts.map +1 -1
  148. package/dist/components/PanelHeader/PanelHeader.js +2 -2
  149. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  150. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -4
  151. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts.map +1 -1
  152. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +10 -12
  153. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  154. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  155. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +6 -1
  156. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  157. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +2 -1
  158. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts.map +1 -1
  159. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +9 -13
  160. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  161. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -1
  162. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts.map +1 -1
  163. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -11
  164. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  165. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +2 -1
  166. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts.map +1 -1
  167. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +10 -14
  168. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  169. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts +5 -1
  170. package/dist/components/PopoutWrapper/PopoutWrapper.d.ts.map +1 -1
  171. package/dist/components/PopoutWrapper/PopoutWrapper.js +6 -2
  172. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  173. package/dist/components/PullToRefresh/PullToRefresh.d.ts.map +1 -1
  174. package/dist/components/PullToRefresh/PullToRefresh.js +9 -8
  175. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  176. package/dist/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
  177. package/dist/components/ScreenSpinner/ScreenSpinner.js +23 -18
  178. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  179. package/dist/components/ScreenSpinner/types.d.ts +2 -0
  180. package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
  181. package/dist/components/ScreenSpinner/types.js.map +1 -1
  182. package/dist/components/Separator/Separator.d.ts +2 -0
  183. package/dist/components/Separator/Separator.d.ts.map +1 -1
  184. package/dist/components/Separator/Separator.js +4 -5
  185. package/dist/components/Separator/Separator.js.map +1 -1
  186. package/dist/components/Skeleton/Skeleton.js +4 -4
  187. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  188. package/dist/components/Spacing/Spacing.d.ts +3 -1
  189. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  190. package/dist/components/Spacing/Spacing.js +4 -5
  191. package/dist/components/Spacing/Spacing.js.map +1 -1
  192. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  193. package/dist/components/SplitCol/SplitCol.js +7 -5
  194. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  195. package/dist/components/SplitLayout/SplitLayout.d.ts +9 -1
  196. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  197. package/dist/components/SplitLayout/SplitLayout.js +17 -12
  198. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  199. package/dist/components/Tappable/Tappable.d.ts.map +1 -1
  200. package/dist/components/Tappable/Tappable.js +1 -1
  201. package/dist/components/Tappable/Tappable.js.map +1 -1
  202. package/dist/components/View/useLayoutEffectCall.d.ts +1 -1
  203. package/dist/components/View/useLayoutEffectCall.d.ts.map +1 -1
  204. package/dist/components/View/useLayoutEffectCall.js +8 -33
  205. package/dist/components/View/useLayoutEffectCall.js.map +1 -1
  206. package/dist/components.css +1 -1
  207. package/dist/components.css.map +1 -1
  208. package/dist/context/ModalContext.d.ts +15 -0
  209. package/dist/context/ModalContext.d.ts.map +1 -0
  210. package/dist/context/ModalContext.js +13 -0
  211. package/dist/context/ModalContext.js.map +1 -0
  212. package/dist/cssm/components/Accordion/Accordion.js +9 -5
  213. package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
  214. package/dist/cssm/components/ActionSheet/ActionSheet.js +20 -14
  215. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  216. package/dist/cssm/components/Alert/Alert.js +60 -56
  217. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  218. package/dist/cssm/components/AppRoot/AppRoot.js +73 -100
  219. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  220. package/dist/cssm/components/AppRoot/AppRoot.module.css +2 -40
  221. package/dist/cssm/components/AppRoot/AppRootContext.js +5 -1
  222. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  223. package/dist/cssm/components/AppRoot/AppRootPortal.js +49 -27
  224. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  225. package/dist/cssm/components/AppRoot/AppRootStyleContainer.js +57 -0
  226. package/dist/cssm/components/AppRoot/AppRootStyleContainer.js.map +1 -0
  227. package/dist/cssm/components/AppRoot/AppRootStyleContainer.module.css +87 -0
  228. package/dist/cssm/components/AppRoot/ModalPopoutPortal.js +27 -0
  229. package/dist/cssm/components/AppRoot/ModalPopoutPortal.js.map +1 -0
  230. package/dist/cssm/components/AppRoot/helpers.js +6 -56
  231. package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
  232. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
  233. package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js +1 -0
  234. package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js.map +1 -1
  235. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +2 -2
  236. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  237. package/dist/cssm/components/CalendarTime/CalendarTime.js +2 -2
  238. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  239. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +15 -7
  240. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  241. package/dist/cssm/components/Counter/Counter.js +48 -4
  242. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  243. package/dist/cssm/components/Counter/Counter.module.css +81 -12
  244. package/dist/cssm/components/CustomSelect/CustomSelect.js +7 -1
  245. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  246. package/dist/cssm/components/FormItem/FormItem.js +5 -3
  247. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  248. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  249. package/dist/cssm/components/Group/GroupContainer.js +2 -2
  250. package/dist/cssm/components/Group/GroupContainer.js.map +1 -1
  251. package/dist/cssm/components/Link/Link.js +17 -5
  252. package/dist/cssm/components/Link/Link.js.map +1 -1
  253. package/dist/cssm/components/Link/Link.module.css +13 -4
  254. package/dist/cssm/components/ModalCard/ModalCard.js +30 -51
  255. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  256. package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -44
  257. package/dist/cssm/components/ModalCard/ModalCardInternal.js +122 -0
  258. package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -0
  259. package/dist/cssm/components/ModalCard/types.js +3 -0
  260. package/dist/cssm/components/ModalCard/types.js.map +1 -0
  261. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -3
  262. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  263. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +0 -2
  264. package/dist/cssm/components/ModalOutlet/ModalOutlet.js +17 -0
  265. package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -0
  266. package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +17 -0
  267. package/dist/cssm/components/ModalOverlay/ModalOverlay.js +40 -0
  268. package/dist/cssm/components/ModalOverlay/ModalOverlay.js.map +1 -0
  269. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +71 -0
  270. package/dist/cssm/components/ModalPage/ModalPage.js +32 -99
  271. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  272. package/dist/cssm/components/ModalPage/ModalPage.module.css +125 -123
  273. package/dist/cssm/components/ModalPage/ModalPageInternal.js +161 -0
  274. package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -0
  275. package/dist/cssm/components/ModalPage/types.js +3 -0
  276. package/dist/cssm/components/ModalPage/types.js.map +1 -0
  277. package/dist/cssm/components/ModalPageContent/ModalPageContent.js +15 -0
  278. package/dist/cssm/components/ModalPageContent/ModalPageContent.js.map +1 -0
  279. package/dist/cssm/components/ModalPageContent/ModalPageContent.module.css +4 -0
  280. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js +23 -0
  281. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.js.map +1 -0
  282. package/dist/cssm/components/ModalPageFooter/ModalPageFooter.module.css +35 -0
  283. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +4 -4
  284. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  285. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +8 -2
  286. package/dist/cssm/components/ModalRoot/ModalRoot.js +52 -571
  287. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  288. package/dist/cssm/components/ModalRoot/ModalRootContext.js +13 -40
  289. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  290. package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js +27 -0
  291. package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js.map +1 -0
  292. package/dist/cssm/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.module.css +8 -0
  293. package/dist/cssm/components/ModalRoot/types.js +1 -1
  294. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  295. package/dist/cssm/components/ModalRoot/useModalManager.js +36 -194
  296. package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
  297. package/dist/cssm/components/ModalRoot/useModalRootContext.js +18 -2
  298. package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
  299. package/dist/cssm/components/ModalRoot/withModalRootContext.js +7 -4
  300. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  301. package/dist/cssm/components/NativeSelect/NativeSelect.js +7 -1
  302. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  303. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +6 -4
  304. package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
  305. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -2
  306. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  307. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +9 -12
  308. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  309. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +6 -1
  310. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  311. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +8 -12
  312. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  313. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -11
  314. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  315. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +8 -12
  316. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  317. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +5 -1
  318. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  319. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +9 -8
  320. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  321. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +23 -19
  322. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  323. package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
  324. package/dist/cssm/components/Search/Search.module.css +2 -2
  325. package/dist/cssm/components/Separator/Separator.js +9 -8
  326. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  327. package/dist/cssm/components/Skeleton/Skeleton.js +4 -4
  328. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  329. package/dist/cssm/components/Spacing/Spacing.js +6 -7
  330. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  331. package/dist/cssm/components/SplitCol/SplitCol.js +7 -5
  332. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  333. package/dist/cssm/components/SplitLayout/SplitLayout.js +14 -9
  334. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  335. package/dist/cssm/components/Tappable/Tappable.js +1 -1
  336. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  337. package/dist/cssm/components/View/useLayoutEffectCall.js +8 -23
  338. package/dist/cssm/components/View/useLayoutEffectCall.js.map +1 -1
  339. package/dist/cssm/context/ModalContext.js +13 -0
  340. package/dist/cssm/context/ModalContext.js.map +1 -0
  341. package/dist/cssm/helpers/range.js +3 -0
  342. package/dist/cssm/helpers/range.js.map +1 -1
  343. package/dist/cssm/hooks/useObjectMemo.js +6 -2
  344. package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
  345. package/dist/cssm/hooks/usePrevious.js +9 -2
  346. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  347. package/dist/cssm/hooks/useStableCallback.js +1 -1
  348. package/dist/cssm/hooks/useStableCallback.js.map +1 -1
  349. package/dist/cssm/hooks/useStateWithPrev.js +34 -0
  350. package/dist/cssm/hooks/useStateWithPrev.js.map +1 -0
  351. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +23 -0
  352. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -0
  353. package/dist/cssm/hooks/useSyncHTMLWithTokens.js +19 -0
  354. package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -0
  355. package/dist/cssm/hooks/useVirtualKeyboardState.js +134 -0
  356. package/dist/cssm/hooks/useVirtualKeyboardState.js.map +1 -0
  357. package/dist/cssm/index.js +6 -2
  358. package/dist/cssm/index.js.map +1 -1
  359. package/dist/cssm/lib/SSR.js +1 -7
  360. package/dist/cssm/lib/SSR.js.map +1 -1
  361. package/dist/cssm/lib/adaptivity/functions.js +7 -1
  362. package/dist/cssm/lib/adaptivity/functions.js.map +1 -1
  363. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js +7 -5
  364. package/dist/cssm/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  365. package/dist/cssm/lib/animation/useCSSTransition.js +4 -4
  366. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  367. package/dist/cssm/lib/dom.js +65 -11
  368. package/dist/cssm/lib/dom.js.map +1 -1
  369. package/dist/cssm/lib/floating/usePlacementChangeCallback.js +6 -3
  370. package/dist/cssm/lib/floating/usePlacementChangeCallback.js.map +1 -1
  371. package/dist/cssm/lib/sheet/constants.js +23 -0
  372. package/dist/cssm/lib/sheet/constants.js.map +1 -0
  373. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js +252 -0
  374. package/dist/cssm/lib/sheet/controllers/BottomSheetController.js.map +1 -0
  375. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js +50 -0
  376. package/dist/cssm/lib/sheet/controllers/CSSTransitionController.js.map +1 -0
  377. package/dist/cssm/lib/sheet/index.js +4 -0
  378. package/dist/cssm/lib/sheet/index.js.map +1 -0
  379. package/dist/cssm/lib/sheet/useBottomSheet.js +116 -0
  380. package/dist/cssm/lib/sheet/useBottomSheet.js.map +1 -0
  381. package/dist/cssm/lib/spacings/sizes.js +23 -0
  382. package/dist/cssm/lib/spacings/sizes.js.map +1 -1
  383. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +10 -0
  384. package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  385. package/dist/cssm/lib/touch/index.js.map +1 -1
  386. package/dist/cssm/styles/common.css +31 -34
  387. package/dist/cssm/styles/constants.css +5 -0
  388. package/dist/helpers/range.d.ts +1 -0
  389. package/dist/helpers/range.d.ts.map +1 -1
  390. package/dist/helpers/range.js +3 -0
  391. package/dist/helpers/range.js.map +1 -1
  392. package/dist/hooks/useObjectMemo.d.ts +3 -0
  393. package/dist/hooks/useObjectMemo.d.ts.map +1 -1
  394. package/dist/hooks/useObjectMemo.js +6 -2
  395. package/dist/hooks/useObjectMemo.js.map +1 -1
  396. package/dist/hooks/usePrevious.d.ts +3 -0
  397. package/dist/hooks/usePrevious.d.ts.map +1 -1
  398. package/dist/hooks/usePrevious.js +9 -2
  399. package/dist/hooks/usePrevious.js.map +1 -1
  400. package/dist/hooks/useStableCallback.js +1 -1
  401. package/dist/hooks/useStableCallback.js.map +1 -1
  402. package/dist/hooks/useStateWithPrev.d.ts +12 -0
  403. package/dist/hooks/useStateWithPrev.d.ts.map +1 -0
  404. package/dist/hooks/useStateWithPrev.js +34 -0
  405. package/dist/hooks/useStateWithPrev.js.map +1 -0
  406. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +8 -0
  407. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -0
  408. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +24 -0
  409. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -0
  410. package/dist/hooks/useSyncHTMLWithTokens.d.ts +5 -0
  411. package/dist/hooks/useSyncHTMLWithTokens.d.ts.map +1 -0
  412. package/dist/hooks/useSyncHTMLWithTokens.js +20 -0
  413. package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -0
  414. package/dist/hooks/useVirtualKeyboardState.d.ts +32 -0
  415. package/dist/hooks/useVirtualKeyboardState.d.ts.map +1 -0
  416. package/dist/hooks/useVirtualKeyboardState.js +134 -0
  417. package/dist/hooks/useVirtualKeyboardState.js.map +1 -0
  418. package/dist/index.d.ts +13 -5
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +6 -2
  421. package/dist/index.js.map +1 -1
  422. package/dist/lib/SSR.d.ts.map +1 -1
  423. package/dist/lib/SSR.js +1 -7
  424. package/dist/lib/SSR.js.map +1 -1
  425. package/dist/lib/adaptivity/functions.d.ts +1 -0
  426. package/dist/lib/adaptivity/functions.d.ts.map +1 -1
  427. package/dist/lib/adaptivity/functions.js +7 -1
  428. package/dist/lib/adaptivity/functions.js.map +1 -1
  429. package/dist/lib/animation/useCSSKeyframesAnimationController.d.ts.map +1 -1
  430. package/dist/lib/animation/useCSSKeyframesAnimationController.js +7 -5
  431. package/dist/lib/animation/useCSSKeyframesAnimationController.js.map +1 -1
  432. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  433. package/dist/lib/animation/useCSSTransition.js +4 -4
  434. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  435. package/dist/lib/dom.d.ts +20 -5
  436. package/dist/lib/dom.d.ts.map +1 -1
  437. package/dist/lib/dom.js +65 -11
  438. package/dist/lib/dom.js.map +1 -1
  439. package/dist/lib/floating/usePlacementChangeCallback.d.ts.map +1 -1
  440. package/dist/lib/floating/usePlacementChangeCallback.js +6 -3
  441. package/dist/lib/floating/usePlacementChangeCallback.js.map +1 -1
  442. package/dist/lib/sheet/constants.d.ts +28 -0
  443. package/dist/lib/sheet/constants.d.ts.map +1 -0
  444. package/dist/lib/sheet/constants.js +23 -0
  445. package/dist/lib/sheet/constants.js.map +1 -0
  446. package/dist/lib/sheet/controllers/BottomSheetController.d.ts +51 -0
  447. package/dist/lib/sheet/controllers/BottomSheetController.d.ts.map +1 -0
  448. package/dist/lib/sheet/controllers/BottomSheetController.js +259 -0
  449. package/dist/lib/sheet/controllers/BottomSheetController.js.map +1 -0
  450. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts +14 -0
  451. package/dist/lib/sheet/controllers/CSSTransitionController.d.ts.map +1 -0
  452. package/dist/lib/sheet/controllers/CSSTransitionController.js +51 -0
  453. package/dist/lib/sheet/controllers/CSSTransitionController.js.map +1 -0
  454. package/dist/lib/sheet/index.d.ts +3 -0
  455. package/dist/lib/sheet/index.d.ts.map +1 -0
  456. package/dist/lib/sheet/index.js +4 -0
  457. package/dist/lib/sheet/index.js.map +1 -0
  458. package/dist/lib/sheet/useBottomSheet.d.ts +56 -0
  459. package/dist/lib/sheet/useBottomSheet.d.ts.map +1 -0
  460. package/dist/lib/sheet/useBottomSheet.js +116 -0
  461. package/dist/lib/sheet/useBottomSheet.js.map +1 -0
  462. package/dist/lib/spacings/sizes.d.ts +3 -2
  463. package/dist/lib/spacings/sizes.d.ts.map +1 -1
  464. package/dist/lib/spacings/sizes.js +23 -0
  465. package/dist/lib/spacings/sizes.js.map +1 -1
  466. package/dist/lib/touch/UIPanGestureRecognizer.d.ts +8 -9
  467. package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
  468. package/dist/lib/touch/UIPanGestureRecognizer.js +10 -0
  469. package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
  470. package/dist/lib/touch/index.d.ts +1 -1
  471. package/dist/lib/touch/index.d.ts.map +1 -1
  472. package/dist/lib/touch/index.js.map +1 -1
  473. package/dist/vkui.css +1 -1
  474. package/dist/vkui.css.map +1 -1
  475. package/package.json +9 -6
  476. package/src/components/Accordion/Accordion.tsx +9 -7
  477. package/src/components/ActionSheet/ActionSheet.tsx +18 -13
  478. package/src/components/Alert/Alert.tsx +65 -59
  479. package/src/components/AppRoot/AppRoot.module.css +2 -30
  480. package/src/components/AppRoot/AppRoot.tsx +90 -122
  481. package/src/components/AppRoot/AppRootContext.ts +11 -2
  482. package/src/components/AppRoot/AppRootPortal.tsx +71 -30
  483. package/src/components/AppRoot/AppRootStyleContainer.module.css +77 -0
  484. package/src/components/AppRoot/AppRootStyleContainer.tsx +72 -0
  485. package/src/components/AppRoot/ModalPopoutPortal.tsx +27 -0
  486. package/src/components/AppRoot/helpers.ts +10 -65
  487. package/src/components/BaseGallery/BaseGallery.tsx +1 -1
  488. package/src/components/BaseGallery/CarouselBase/CarouselBase.tsx +1 -0
  489. package/src/components/CalendarHeader/CalendarHeader.tsx +5 -2
  490. package/src/components/CalendarTime/CalendarTime.tsx +5 -2
  491. package/src/components/ConfigProvider/ConfigProvider.tsx +22 -11
  492. package/src/components/Counter/Counter.module.css +80 -12
  493. package/src/components/Counter/Counter.tsx +64 -7
  494. package/src/components/CustomSelect/CustomSelect.tsx +7 -1
  495. package/src/components/FormItem/FormItem.tsx +1 -2
  496. package/src/components/Gallery/Gallery.tsx +1 -1
  497. package/src/components/Group/GroupContainer.tsx +2 -2
  498. package/src/components/Link/Link.module.css +11 -3
  499. package/src/components/Link/Link.tsx +28 -2
  500. package/src/components/ModalCard/ModalCard.module.css +60 -44
  501. package/src/components/ModalCard/ModalCard.tsx +41 -74
  502. package/src/components/ModalCard/ModalCardInternal.tsx +175 -0
  503. package/src/components/ModalCard/types.ts +51 -0
  504. package/src/components/ModalCardBase/ModalCardBase.module.css +0 -1
  505. package/src/components/ModalCardBase/ModalCardBase.tsx +1 -8
  506. package/src/components/ModalOutlet/ModalOutlet.module.css +16 -0
  507. package/src/components/ModalOutlet/ModalOutlet.tsx +31 -0
  508. package/src/components/ModalOverlay/ModalOverlay.module.css +65 -0
  509. package/src/components/ModalOverlay/ModalOverlay.tsx +66 -0
  510. package/src/components/ModalPage/ModalPage.module.css +124 -123
  511. package/src/components/ModalPage/ModalPage.tsx +42 -164
  512. package/src/components/ModalPage/ModalPageInternal.tsx +229 -0
  513. package/src/components/ModalPage/types.ts +112 -0
  514. package/src/components/ModalPageContent/ModalPageContent.module.css +4 -0
  515. package/src/components/ModalPageContent/ModalPageContent.tsx +25 -0
  516. package/src/components/ModalPageFooter/ModalPageFooter.module.css +33 -0
  517. package/src/components/ModalPageFooter/ModalPageFooter.tsx +31 -0
  518. package/src/components/ModalPageHeader/ModalPageHeader.module.css +8 -2
  519. package/src/components/ModalPageHeader/ModalPageHeader.tsx +5 -5
  520. package/src/components/ModalRoot/ModalRoot.tsx +62 -716
  521. package/src/components/ModalRoot/ModalRootContext.tsx +13 -50
  522. package/src/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.module.css +6 -0
  523. package/src/components/ModalRoot/VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.tsx +37 -0
  524. package/src/components/ModalRoot/types.ts +60 -20
  525. package/src/components/ModalRoot/useModalManager.tsx +74 -228
  526. package/src/components/ModalRoot/useModalRootContext.ts +21 -0
  527. package/src/components/ModalRoot/withModalRootContext.tsx +8 -3
  528. package/src/components/NativeSelect/NativeSelect.tsx +12 -9
  529. package/src/components/NavTransitionContext/NavTransitionContext.tsx +7 -4
  530. package/src/components/PanelHeader/PanelHeader.tsx +2 -2
  531. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +14 -12
  532. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +4 -1
  533. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +10 -13
  534. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +10 -12
  535. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +11 -10
  536. package/src/components/PopoutWrapper/PopoutWrapper.tsx +9 -0
  537. package/src/components/PullToRefresh/PullToRefresh.tsx +11 -7
  538. package/src/components/ScreenSpinner/ScreenSpinner.tsx +10 -6
  539. package/src/components/ScreenSpinner/types.tsx +2 -0
  540. package/src/components/Search/Search.module.css +2 -2
  541. package/src/components/Separator/Separator.tsx +32 -20
  542. package/src/components/Skeleton/Skeleton.tsx +4 -4
  543. package/src/components/Spacing/Spacing.tsx +17 -10
  544. package/src/components/SplitCol/SplitCol.tsx +7 -5
  545. package/src/components/SplitLayout/SplitLayout.tsx +20 -10
  546. package/src/components/Tappable/Tappable.tsx +1 -0
  547. package/src/components/View/useLayoutEffectCall.tsx +7 -29
  548. package/src/context/ModalContext.tsx +18 -0
  549. package/src/helpers/range.ts +4 -0
  550. package/src/hooks/useObjectMemo.ts +6 -0
  551. package/src/hooks/usePrevious.ts +9 -0
  552. package/src/hooks/useStableCallback.ts +1 -1
  553. package/src/hooks/useStateWithPrev.ts +43 -0
  554. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +39 -0
  555. package/src/hooks/useSyncHTMLWithTokens.ts +27 -0
  556. package/src/hooks/useVirtualKeyboardState.ts +152 -0
  557. package/src/index.ts +22 -5
  558. package/src/lib/SSR.tsx +1 -7
  559. package/src/lib/adaptivity/functions.ts +8 -1
  560. package/src/lib/animation/useCSSKeyframesAnimationController.ts +10 -5
  561. package/src/lib/animation/useCSSTransition.ts +4 -10
  562. package/src/lib/dom.tsx +85 -13
  563. package/src/lib/floating/usePlacementChangeCallback.ts +9 -3
  564. package/src/lib/sheet/constants.ts +32 -0
  565. package/src/lib/sheet/controllers/BottomSheetController.ts +382 -0
  566. package/src/lib/sheet/controllers/CSSTransitionController.ts +51 -0
  567. package/src/lib/sheet/index.ts +10 -0
  568. package/src/lib/sheet/useBottomSheet.ts +175 -0
  569. package/src/lib/spacings/sizes.ts +17 -2
  570. package/src/lib/touch/UIPanGestureRecognizer.ts +12 -9
  571. package/src/lib/touch/index.ts +4 -1
  572. package/src/styles/common.css +31 -41
  573. package/src/styles/constants.css +5 -0
  574. package/dist/components/ModalPage/ModalPageContext.d.ts +0 -6
  575. package/dist/components/ModalPage/ModalPageContext.d.ts.map +0 -1
  576. package/dist/components/ModalPage/ModalPageContext.js +0 -4
  577. package/dist/components/ModalPage/ModalPageContext.js.map +0 -1
  578. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +0 -7
  579. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts.map +0 -1
  580. package/dist/components/ModalRoot/ModalRootAdaptive.js +0 -18
  581. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +0 -1
  582. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +0 -4
  583. package/dist/components/ModalRoot/ModalRootDesktop.d.ts.map +0 -1
  584. package/dist/components/ModalRoot/ModalRootDesktop.js +0 -186
  585. package/dist/components/ModalRoot/ModalRootDesktop.js.map +0 -1
  586. package/dist/components/ModalRoot/constants.d.ts +0 -2
  587. package/dist/components/ModalRoot/constants.d.ts.map +0 -1
  588. package/dist/components/ModalRoot/constants.js +0 -3
  589. package/dist/components/ModalRoot/constants.js.map +0 -1
  590. package/dist/components/PopoutRoot/PopoutRoot.d.ts +0 -19
  591. package/dist/components/PopoutRoot/PopoutRoot.d.ts.map +0 -1
  592. package/dist/components/PopoutRoot/PopoutRoot.js +0 -55
  593. package/dist/components/PopoutRoot/PopoutRoot.js.map +0 -1
  594. package/dist/cssm/components/ModalPage/ModalPageContext.js +0 -4
  595. package/dist/cssm/components/ModalPage/ModalPageContext.js.map +0 -1
  596. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +0 -61
  597. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +0 -19
  598. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +0 -1
  599. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +0 -179
  600. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +0 -1
  601. package/dist/cssm/components/ModalRoot/constants.js +0 -3
  602. package/dist/cssm/components/ModalRoot/constants.js.map +0 -1
  603. package/dist/cssm/components/PopoutRoot/PopoutRoot.js +0 -41
  604. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +0 -1
  605. package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +0 -28
  606. package/dist/cssm/hooks/useKeyboard.js +0 -40
  607. package/dist/cssm/hooks/useKeyboard.js.map +0 -1
  608. package/dist/hooks/useKeyboard.d.ts +0 -11
  609. package/dist/hooks/useKeyboard.d.ts.map +0 -1
  610. package/dist/hooks/useKeyboard.js +0 -42
  611. package/dist/hooks/useKeyboard.js.map +0 -1
  612. package/src/components/ModalPage/ModalPageContext.tsx +0 -8
  613. package/src/components/ModalRoot/ModalRoot.module.css +0 -59
  614. package/src/components/ModalRoot/ModalRootAdaptive.tsx +0 -21
  615. package/src/components/ModalRoot/ModalRootDesktop.tsx +0 -243
  616. package/src/components/ModalRoot/constants.ts +0 -1
  617. package/src/components/ModalRoot/useModalRootContext.tsx +0 -5
  618. package/src/components/PopoutRoot/PopoutRoot.module.css +0 -28
  619. package/src/components/PopoutRoot/PopoutRoot.tsx +0 -51
  620. package/src/hooks/useKeyboard.ts +0 -56
@@ -1,598 +1,60 @@
1
1
  'use client';
2
- import { _ as _define_property } from "@swc/helpers/_/_define_property";
3
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
4
- import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
5
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
3
  import * as React from "react";
7
- import { classNames } from "@vkontakte/vkjs";
8
- import { clamp } from "../../helpers/math.js";
9
- import { withContext } from "../../hoc/withContext.js";
10
- import { withPlatform } from "../../hoc/withPlatform.js";
11
- import { withDOM } from "../../lib/dom.js";
12
- import { getNavId } from "../../lib/getNavId.js";
13
- import { rubber } from "../../lib/touch/index.js";
4
+ import { noop } from "@vkontakte/vkjs";
14
5
  import { warnOnce } from "../../lib/warnOnce.js";
15
- import { ConfigProviderContext } from "../ConfigProvider/ConfigProviderContext.js";
16
- import { FocusTrap } from "../FocusTrap/FocusTrap.js";
17
- import { Touch } from "../Touch/Touch.js";
18
- import TouchRootContext from "../Touch/TouchContext.js";
19
- import { ModalRootContext } from "./ModalRootContext.js";
20
- import { MODAL_PAGE_DEFAULT_PERCENT_HEIGHT } from "./constants.js";
21
- import { withModalManager } from "./useModalManager.js";
6
+ import { ModalPopoutPortal } from "../AppRoot/ModalPopoutPortal.js";
7
+ import { ModalOverlay } from "../ModalOverlay/ModalOverlay.js";
8
+ import { ModalRootContext, ModalRootOverlayContext } from "./ModalRootContext.js";
22
9
  const warn = warnOnce('ModalRoot');
23
- function numberInRange(number, range) {
24
- if (!range) {
25
- return false;
26
- }
27
- return number >= range[0] && number <= range[1];
28
- }
29
- function rangeTranslate(number) {
30
- return clamp(number, 0, 98);
31
- }
32
- class ModalRootTouchComponent extends React.Component {
33
- get timeout() {
34
- return this.props.platform === 'ios' ? 400 : 320;
35
- }
36
- get document() {
37
- return this.props.document;
38
- }
39
- get window() {
40
- return this.props.window;
41
- }
42
- getModals() {
43
- return React.Children.toArray(this.props.children);
44
- }
45
- componentDidMount() {
46
- var // Отслеживаем изменение размеров viewport
47
- _this_window;
48
- (_this_window = this.window) === null || _this_window === void 0 ? void 0 : _this_window.addEventListener('resize', this.updateModalHeight, false);
49
- }
50
- componentWillUnmount() {
51
- this.toggleDocumentScrolling(true);
52
- this.window.removeEventListener('resize', this.updateModalHeight, false);
53
- }
54
- componentDidUpdate(prevProps) {
55
- // transition phase 2: animate exiting modal
56
- if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {
57
- this.closeModal(this.props.exitingModal);
58
- }
59
- // transition phase 3: animate entering modal
60
- if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {
61
- const enteringState = this.props.getModalState(this.props.enteringModal);
62
- this.props.onEnter();
63
- this.waitTransitionFinish(enteringState, ()=>{
64
- if (enteringState) {
65
- if (enteringState.innerElement) {
66
- enteringState.innerElement.style.transitionDelay = '';
67
- }
68
- this.onEntered(enteringState);
69
- }
70
- });
71
- if (enteringState === null || enteringState === void 0 ? void 0 : enteringState.innerElement) {
72
- enteringState.innerElement.style.transitionDelay = this.props.delayEnter ? `${this.timeout}ms` : '';
73
- this.animateTranslate(enteringState, enteringState.translateY);
74
- this.setMaskOpacity(enteringState, 1);
75
- }
76
- }
77
- // focus restoration
78
- if (this.props.activeModal && !prevProps.activeModal) {
79
- this.restoreFocusTo = this.document.activeElement;
80
- }
81
- if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {
82
- this.restoreFocusTo.focus();
83
- this.restoreFocusTo = null;
84
- }
85
- this.toggleDocumentScrolling(!this.props.activeModal && !this.props.exitingModal);
86
- }
87
- /* Отключает скролл документа */ toggleDocumentScrolling(enabled) {
88
- if (enabled) {
89
- // восстанавливаем значение overscroll behavior
90
- // eslint-disable-next-line no-restricted-properties
91
- this.document.documentElement.classList.remove('vkui--disable-overscroll-behavior');
92
- } else {
93
- // отключаем нативный pull-to-refresh при открытом модальном окне
94
- // чтобы он не срабатывал при закрытии модалки смахиванием вниз
95
- // eslint-disable-next-line no-restricted-properties
96
- this.document.documentElement.classList.add('vkui--disable-overscroll-behavior');
97
- }
98
- }
99
- checkPageContentHeight() {
100
- const modalState = this.props.getModalState(this.props.activeModal);
101
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === 'page' && (modalState === null || modalState === void 0 ? void 0 : modalState.modalElement)) {
102
- const prevModalState = _object_spread({}, modalState);
103
- initPageModal(modalState);
104
- const currentModalState = _object_spread({}, modalState);
105
- let needAnimate = false;
106
- if (prevModalState.expandable === currentModalState.expandable) {
107
- if (prevModalState.translateYFrom !== currentModalState.translateYFrom) {
108
- needAnimate = true;
109
- }
110
- } else {
111
- needAnimate = true;
112
- }
113
- if (needAnimate) {
114
- this.animateTranslate(modalState, modalState.translateY);
115
- }
116
- }
117
- }
118
- onEntered({ id, modalElement }) {
119
- if (!this.props.noFocusToDialog && modalElement && !modalElement.contains(this.document.activeElement)) {
120
- modalElement.focus();
121
- }
122
- this.props.onEntered(id);
123
- }
124
- closeModal(id) {
125
- // Сбрасываем состояния, которые могут помешать закрытию модального окна
126
- this.setState({
127
- touchDown: false
128
- });
129
- const prevModalState = this.props.getModalState(id);
130
- if (!prevModalState) {
131
- id && warn(`closeActiveModal: модальное окно (страница) ${id} не существует`, 'error');
132
- return;
133
- }
134
- if (!this.state.modalOpenedLog.length) {
135
- this.setState((prevState)=>({
136
- modalOpenedLog: [
137
- ...prevState.modalOpenedLog,
138
- id
139
- ]
140
- }));
141
- }
142
- const nextModalState = this.props.getModalState(this.props.activeModal);
143
- const nextIsPage = !!nextModalState && nextModalState.type === 'page';
144
- const prevIsPage = !!prevModalState && prevModalState.type === 'page';
145
- this.waitTransitionFinish(prevModalState, ()=>this.props.onExited(id));
146
- var _prevModalState_translateY, _nextModalState_translateYFrom, _nextModalState_translateYFrom1;
147
- const 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;
148
- this.animateTranslate(prevModalState, exitTranslate);
149
- if (!nextModalState) {
150
- // NOTE: was only for clean exit
151
- this.setMaskOpacity(prevModalState, 0);
152
- this.setState({
153
- modalOpenedLog: []
154
- });
155
- prevModalState.translateY = undefined;
156
- prevModalState.expandable = undefined;
157
- } else if (nextModalState.id && !this.state.modalOpenedLog.includes(nextModalState.id)) {
158
- nextModalState.translateY = undefined;
159
- this.setState((prevState)=>({
160
- modalOpenedLog: [
161
- ...prevState.modalOpenedLog,
162
- nextModalState.id
163
- ]
164
- }));
165
- }
166
- }
167
- onPageTouchMove(event, modalState) {
168
- var _modalState_innerElement, _modalState_headerElement;
169
- const { shiftY, originalEvent } = event;
170
- const target = originalEvent.target;
171
- if (!event.isY) {
172
- var _this_viewportRef_current;
173
- if ((_this_viewportRef_current = this.viewportRef.current) === null || _this_viewportRef_current === void 0 ? void 0 : _this_viewportRef_current.contains(target)) {
174
- originalEvent.preventDefault();
175
- }
176
- return;
177
- }
178
- if (!((_modalState_innerElement = modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.contains(target))) {
179
- return originalEvent.preventDefault();
180
- }
181
- originalEvent.stopPropagation();
182
- const { expandable, contentScrolled, collapsed, expanded } = modalState;
183
- if (!this.state.touchDown) {
184
- var _modalState_contentElement;
185
- var _modalState_contentElement_scrollTop;
186
- modalState.touchStartContentScrollTop = (_modalState_contentElement_scrollTop = (_modalState_contentElement = modalState.contentElement) === null || _modalState_contentElement === void 0 ? void 0 : _modalState_contentElement.scrollTop) !== null && _modalState_contentElement_scrollTop !== void 0 ? _modalState_contentElement_scrollTop : 0;
187
- this.setState({
188
- touchDown: true
189
- });
190
- }
191
- if (contentScrolled) {
192
- return;
193
- }
194
- if (modalState.touchMovePositive === null) {
195
- modalState.touchMovePositive = shiftY > 0;
196
- }
197
- if (!modalState.expandable || collapsed || expanded && modalState.touchMovePositive && modalState.touchStartContentScrollTop === 0 || ((_modalState_headerElement = modalState.headerElement) === null || _modalState_headerElement === void 0 ? void 0 : _modalState_headerElement.contains(target))) {
198
- originalEvent.preventDefault();
199
- if (!expandable && shiftY < 0 || !this.window) {
200
- return;
201
- }
202
- !this.state.dragging && this.setState({
203
- dragging: true
204
- });
205
- const shiftYPercent = shiftY / this.window.innerHeight * 100;
206
- const shiftYCurrent = rubber(shiftYPercent, 72, 0.8, this.props.platform !== 'ios');
207
- modalState.touchShiftYPercent = shiftYPercent;
208
- var _modalState_translateY;
209
- modalState.translateYCurrent = rangeTranslate(((_modalState_translateY = modalState.translateY) !== null && _modalState_translateY !== void 0 ? _modalState_translateY : 0) + shiftYCurrent);
210
- this.animateTranslate(modalState, modalState.translateYCurrent);
211
- this.setMaskOpacity(modalState);
212
- }
213
- }
214
- onCardTouchMove(event, modalState) {
215
- var _modalState_innerElement;
216
- const { originalEvent, shiftY } = event;
217
- const target = originalEvent.target;
218
- if ((_modalState_innerElement = modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : _modalState_innerElement.contains(target)) {
219
- if (!this.state.touchDown) {
220
- this.setState({
221
- touchDown: true,
222
- dragging: true
223
- });
224
- }
225
- const shiftYPercent = shiftY / modalState.innerElement.offsetHeight * 100;
226
- const shiftYCurrent = rubber(shiftYPercent, 72, 1.2, this.props.platform !== 'ios');
227
- modalState.touchShiftYPercent = shiftYPercent;
228
- var _modalState_translateY;
229
- modalState.translateYCurrent = Math.max(0, ((_modalState_translateY = modalState.translateY) !== null && _modalState_translateY !== void 0 ? _modalState_translateY : 0) + shiftYCurrent);
230
- this.animateTranslate(modalState, modalState.translateYCurrent);
231
- this.setMaskOpacity(modalState);
232
- }
233
- }
234
- onPageTouchEnd(event, modalState) {
235
- const { startY, shiftY } = event;
236
- modalState.contentScrolled = false;
237
- modalState.touchMovePositive = null;
238
- let setStateCallback;
239
- if (this.state.dragging && this.window) {
240
- const shiftYEndPercent = (startY + shiftY) / this.window.innerHeight * 100;
241
- var _modalState_translateYCurrent;
242
- let translateY = (_modalState_translateYCurrent = modalState.translateYCurrent) !== null && _modalState_translateYCurrent !== void 0 ? _modalState_translateYCurrent : 0;
243
- var _modalState_touchShiftYPercent;
244
- const expectTranslateY = translateY / event.duration * 240 * 0.6 * (((_modalState_touchShiftYPercent = modalState.touchShiftYPercent) !== null && _modalState_touchShiftYPercent !== void 0 ? _modalState_touchShiftYPercent : 0) < 0 ? -1 : 1);
245
- translateY = rangeTranslate(translateY + expectTranslateY);
246
- if (modalState.settlingHeight !== 100) {
247
- if (numberInRange(translateY, modalState.expandedRange)) {
248
- var _modalState_expandedRange;
249
- var _modalState_expandedRange_;
250
- translateY = (_modalState_expandedRange_ = (_modalState_expandedRange = modalState.expandedRange) === null || _modalState_expandedRange === void 0 ? void 0 : _modalState_expandedRange[0]) !== null && _modalState_expandedRange_ !== void 0 ? _modalState_expandedRange_ : 0;
251
- } else if (numberInRange(translateY, modalState.collapsedRange)) {
252
- var _modalState_translateYFrom;
253
- translateY = (_modalState_translateYFrom = modalState.translateYFrom) !== null && _modalState_translateYFrom !== void 0 ? _modalState_translateYFrom : 0;
254
- } else if (numberInRange(translateY, modalState.hiddenRange)) {
255
- var _modalState_translateYFrom1;
256
- translateY = modalState.preventClose ? (_modalState_translateYFrom1 = modalState.translateYFrom) !== null && _modalState_translateYFrom1 !== void 0 ? _modalState_translateYFrom1 : 0 : 100;
257
- } else {
258
- var _modalState_translateYFrom2;
259
- translateY = (_modalState_translateYFrom2 = modalState.translateYFrom) !== null && _modalState_translateYFrom2 !== void 0 ? _modalState_translateYFrom2 : 0;
260
- }
261
- } else {
262
- if (numberInRange(translateY, [
263
- 0,
264
- 25
265
- ])) {
266
- translateY = 0;
267
- } else {
268
- var _modalState_translateYFrom3;
269
- translateY = modalState.preventClose ? (_modalState_translateYFrom3 = modalState.translateYFrom) !== null && _modalState_translateYFrom3 !== void 0 ? _modalState_translateYFrom3 : 0 : 100;
270
- }
271
- }
272
- if (translateY !== 100 && shiftYEndPercent >= 75 && !modalState.preventClose) {
273
- translateY = 100;
274
- }
275
- modalState.translateY = translateY;
276
- modalState.translateYCurrent = translateY;
277
- modalState.collapsed = numberInRange(translateY, modalState.collapsedRange);
278
- modalState.expanded = translateY === 0;
279
- modalState.hidden = translateY === 100;
280
- if (modalState.hidden) {
281
- this.props.onExit();
282
- }
283
- setStateCallback = ()=>{
284
- if (!modalState.hidden) {
285
- this.animateTranslate(modalState, modalState.translateY);
286
- }
287
- this.setMaskOpacity(modalState);
288
- };
289
- }
290
- this.setState({
291
- touchDown: false,
292
- dragging: false
293
- }, setStateCallback);
294
- }
295
- onCardTouchEnd({ duration }, modalState) {
296
- let setStateCallback;
297
- if (this.state.dragging) {
298
- var _modalState_translateYCurrent;
299
- let translateY = (_modalState_translateYCurrent = modalState.translateYCurrent) !== null && _modalState_translateYCurrent !== void 0 ? _modalState_translateYCurrent : 0;
300
- var _modalState_touchShiftYPercent;
301
- const expectTranslateY = translateY / duration * 240 * 0.6 * (((_modalState_touchShiftYPercent = modalState.touchShiftYPercent) !== null && _modalState_touchShiftYPercent !== void 0 ? _modalState_touchShiftYPercent : 0) < 0 ? -1 : 1);
302
- translateY = Math.max(0, translateY + expectTranslateY);
303
- if (translateY >= 30) {
304
- translateY = 100;
305
- } else {
306
- translateY = 0;
307
- }
308
- modalState.translateY = translateY;
309
- modalState.hidden = translateY === 100;
310
- if (modalState.hidden) {
311
- this.props.onExit();
312
- }
313
- setStateCallback = ()=>{
314
- if (!modalState.hidden) {
315
- this.animateTranslate(modalState, modalState.translateY);
316
- }
317
- this.setMaskOpacity(modalState);
318
- };
319
- }
320
- this.setState({
321
- touchDown: false,
322
- dragging: false
323
- }, setStateCallback);
324
- }
325
- waitTransitionFinish(modalState, eventHandler) {
326
- const el = modalState ? modalState.innerElement : null;
327
- if (el) {
328
- el.addEventListener('transitionend', eventHandler, {
329
- once: true
330
- });
331
- } else {
332
- setTimeout(eventHandler, this.timeout);
333
- }
334
- }
335
- /**
336
- * Анимирует сдвиг модалки
337
- *
338
- * @param {ModalsStateEntry} modalState
339
- * @param {number} percent Процент сдвига: 0 – полностью открыта, 100 – полностью закрыта
340
- */ animateTranslate(modalState, percent) {
341
- const frameId = `animateTranslateFrame${modalState.id}`;
342
- cancelAnimationFrame(this.frameIds[frameId]);
343
- this.frameIds[frameId] = requestAnimationFrame(()=>{
344
- if (!modalState.innerElement) {
345
- return;
346
- }
347
- modalState.innerElement.style.transform = `translate3d(0, ${percent}%, 0)`;
348
- });
349
- }
350
- /* Устанавливает прозрачность для полупрозрачной подложки */ setMaskOpacity(modalState, forceOpacity = null) {
351
- var _this_props_history;
352
- if (forceOpacity === null && ((_this_props_history = this.props.history) === null || _this_props_history === void 0 ? void 0 : _this_props_history[0]) !== modalState.id) {
353
- return;
354
- }
355
- if (this.maskAnimationFrame) {
356
- cancelAnimationFrame(this.maskAnimationFrame);
357
- }
358
- this.maskAnimationFrame = requestAnimationFrame(()=>{
359
- if (this.maskElementRef.current) {
360
- const { translateY = 0, translateYCurrent = 0 } = modalState;
361
- const opacity = forceOpacity === null ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0 : forceOpacity;
362
- this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();
363
- this.maskElementRef.current.style.transitionDelay = opacity && this.props.delayEnter ? `${this.timeout}ms` : '';
364
- }
365
- });
366
- }
367
- render() {
368
- var _this_props_configProvider;
369
- const { activeModal, exitingModal, enteringModal, modalOverlayTestId } = this.props;
370
- const { touchDown, dragging } = this.state;
371
- if (!activeModal && !exitingModal) {
372
- return null;
373
- }
374
- return /*#__PURE__*/ _jsx(TouchRootContext.Provider, {
375
- value: true,
376
- children: /*#__PURE__*/ _jsx(ModalRootContext.Provider, {
377
- value: this.modalRootContext,
378
- children: /*#__PURE__*/ _jsxs(Touch, {
379
- className: classNames("vkuiModalRoot__host", ((_this_props_configProvider = this.props.configProvider) === null || _this_props_configProvider === void 0 ? void 0 : _this_props_configProvider.hasCustomPanelHeaderAfter) && "vkuiModalRoot__hasCustomPanelHeaderAfterSlot", touchDown && classNames("vkuiModalRoot__touched", 'vkuiInternalModalRoot--touched'), !!(enteringModal || exitingModal) && classNames("vkuiModalRoot__switching", 'vkuiInternalModalRoot--switching')),
380
- onMove: this.onTouchMove,
381
- onEnd: this.onTouchEnd,
382
- onScroll: this.onScroll,
383
- children: [
384
- /*#__PURE__*/ _jsx("div", {
385
- "data-testid": modalOverlayTestId,
386
- className: "vkuiModalRoot__mask",
387
- onClick: this.props.onExit,
388
- ref: this.maskElementRef
389
- }),
390
- /*#__PURE__*/ _jsx("div", {
391
- className: "vkuiModalRoot__viewport",
392
- ref: this.viewportRef,
393
- children: this.getModals().map((Modal)=>{
394
- const modalId = getNavId(Modal.props, warn);
395
- const _modalState = this.props.getModalState(modalId);
396
- if (modalId !== activeModal && modalId !== exitingModal || !_modalState) {
397
- return null;
398
- }
399
- const modalState = _object_spread({}, _modalState);
400
- const isPage = modalState.type === 'page';
401
- const key = `modal-${modalId}`;
402
- return /*#__PURE__*/ _jsx(FocusTrap, {
403
- onClose: this.props.onExit,
404
- timeout: this.timeout,
405
- className: classNames("vkuiModalRoot__modal", dragging && 'vkuiInternalModalRoot__modal--dragging', isPage && modalState.expandable && 'vkuiInternalModalRoot__modal--expandable', isPage && modalState.collapsed && 'vkuiInternalModalRoot__modal--collapsed'),
406
- autoFocus: false,
407
- restoreFocus: false,
408
- children: Modal
409
- }, key);
410
- })
411
- })
412
- ]
413
- })
414
- })
415
- });
416
- }
417
- constructor(props){
418
- super(props), _define_property(this, "maskElementRef", void 0), _define_property(this, "viewportRef", /*#__PURE__*/ React.createRef()), _define_property(this, "maskAnimationFrame", undefined), _define_property(this, "modalRootContext", void 0), _define_property(this, "frameIds", void 0), _define_property(this, "restoreFocusTo", undefined), _define_property(this, "updateModalHeight", ()=>{
419
- const modalState = this.props.getModalState(this.props.activeModal);
420
- if (modalState && modalState.type === 'page') {
421
- if (this.props.enteringModal) {
422
- this.waitTransitionFinish(modalState, ()=>{
423
- requestAnimationFrame(()=>this.checkPageContentHeight());
424
- });
425
- } else {
426
- requestAnimationFrame(()=>this.checkPageContentHeight());
427
- }
428
- }
429
- }), _define_property(this, "onTouchMove", (e)=>{
430
- if (this.props.exitingModal) {
431
- return;
432
- }
433
- const modalState = this.props.getModalState(this.props.activeModal);
434
- if (!modalState) {
435
- return;
436
- }
437
- if (modalState.type === 'page') {
438
- return this.onPageTouchMove(e, modalState);
439
- }
440
- if (modalState.type === 'card') {
441
- return this.onCardTouchMove(e, modalState);
442
- }
443
- }), _define_property(this, "onTouchEnd", (e)=>{
444
- const modalState = this.props.getModalState(this.props.activeModal);
445
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === 'page') {
446
- return this.onPageTouchEnd(e, modalState);
447
- }
448
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === 'card') {
449
- return this.onCardTouchEnd(e, modalState);
450
- }
451
- }), _define_property(this, "onScroll", (e)=>{
452
- var _modalState_contentElement;
453
- const activeModal = this.props.activeModal;
454
- const target = e.target;
455
- if (!activeModal) {
456
- return;
457
- }
458
- const modalState = this.props.getModalState(activeModal);
459
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.type) === 'page' && (modalState === null || modalState === void 0 ? void 0 : (_modalState_contentElement = modalState.contentElement) === null || _modalState_contentElement === void 0 ? void 0 : _modalState_contentElement.contains(target))) {
460
- modalState.contentScrolled = true;
461
- if (modalState.contentScrollStopTimeout) {
462
- clearTimeout(modalState.contentScrollStopTimeout);
463
- }
464
- modalState.contentScrollStopTimeout = setTimeout(()=>{
465
- if (modalState.contentScrolled) {
466
- modalState.contentScrolled = false;
467
- }
468
- }, 250);
469
- }
470
- });
471
- this.state = {
472
- touchDown: false,
473
- dragging: false,
474
- modalOpenedLog: []
475
- };
476
- this.maskElementRef = /*#__PURE__*/ React.createRef();
477
- this.modalRootContext = {
478
- updateModalHeight: this.updateModalHeight,
479
- registerModal: (_param)=>{
480
- var { id } = _param, data = _object_without_properties(_param, [
481
- "id"
482
- ]);
483
- var _this_props_getModalState;
484
- return Object.assign((_this_props_getModalState = this.props.getModalState(id)) !== null && _this_props_getModalState !== void 0 ? _this_props_getModalState : {}, data);
485
- },
486
- onClose: ()=>this.props.onExit(),
487
- isInsideModal: true
488
- };
489
- this.frameIds = {};
490
- }
491
- }
492
- export const ModalRootTouch = withContext(withPlatform(withDOM(withModalManager(initModal)(ModalRootTouchComponent))), ConfigProviderContext, 'configProvider');
493
10
  /**
494
- * Инициализирует модалку перед анимацией открытия
495
- */ function initModal(modalState) {
496
- switch(modalState.type){
497
- case 'page':
498
- modalState.settlingHeight = modalState.settlingHeight || MODAL_PAGE_DEFAULT_PERCENT_HEIGHT;
499
- return initPageModal(modalState);
500
- case 'card':
501
- return initCardModal(modalState);
502
- default:
503
- process.env.NODE_ENV === 'development' && warn(`initActiveModal: modalState.type="${modalState.type}" не поддерживается`, 'error');
504
- }
505
- }
506
- function initPageModal(modalState) {
507
- const { contentElement, bottomInset } = modalState;
508
- const contentElementHeight = calculateModalContentHeight(contentElement === null || contentElement === void 0 ? void 0 : contentElement.firstElementChild, modalState.expandable);
509
- const bottomInsetHeight = (bottomInset === null || bottomInset === void 0 ? void 0 : bottomInset.offsetHeight) || 0;
510
- const contentHeight = contentElementHeight + bottomInsetHeight;
511
- let prevTranslateY = modalState.translateY;
512
- let prevExpandable = modalState.expandable;
513
- var _contentElement_clientHeight;
514
- 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;
515
- let collapsed = false;
516
- let expanded = false;
517
- let translateYFrom;
518
- let translateY;
519
- let expandedRange;
520
- let collapsedRange;
521
- let hiddenRange;
522
- const hasCollapsedState = Boolean(modalState.expandable && modalState.settlingHeight !== 100);
523
- if (modalState.expandable) {
524
- var _modalState_settlingHeight;
525
- translateYFrom = 100 - ((_modalState_settlingHeight = modalState.settlingHeight) !== null && _modalState_settlingHeight !== void 0 ? _modalState_settlingHeight : 0);
526
- const shiftHalf = translateYFrom / 2;
527
- const visiblePart = 100 - translateYFrom;
528
- expandedRange = [
529
- 0,
530
- shiftHalf
531
- ];
532
- collapsedRange = hasCollapsedState ? [
533
- shiftHalf,
534
- translateYFrom + visiblePart / 4
535
- ] : undefined;
536
- hiddenRange = [
537
- translateYFrom + visiblePart / 4,
538
- 100
539
- ];
540
- collapsed = hasCollapsedState && translateYFrom > 0;
541
- expanded = translateYFrom <= 0;
542
- translateY = translateYFrom;
543
- } else {
544
- var _modalState_headerElement, _modalState_innerElement_parentElement, _modalState_innerElement;
545
- var _modalState_headerElement_offsetHeight;
546
- const 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;
547
- const height = contentHeight + headerHeight;
548
- var _modalState_innerElement_parentElement_offsetHeight;
549
- translateYFrom = 100 - height / ((_modalState_innerElement_parentElement_offsetHeight = (_modalState_innerElement = modalState.innerElement) === null || _modalState_innerElement === void 0 ? void 0 : (_modalState_innerElement_parentElement = _modalState_innerElement.parentElement) === null || _modalState_innerElement_parentElement === void 0 ? void 0 : _modalState_innerElement_parentElement.offsetHeight) !== null && _modalState_innerElement_parentElement_offsetHeight !== void 0 ? _modalState_innerElement_parentElement_offsetHeight : 0) * 100;
550
- translateY = translateYFrom;
551
- expandedRange = [
552
- translateY,
553
- translateY + 25
554
- ];
555
- collapsedRange = undefined;
556
- hiddenRange = [
557
- translateY + 25,
558
- translateY + 100
559
- ];
560
- }
561
- // Свойство expandable может измениться из-за высоты контента, в таком случае на всю высоту не разворачиваем
562
- const shouldExpand = prevExpandable && modalState.expandable;
563
- // Если модалка может открываться на весь экран, и новый сдвиг больше предыдущего, то откроем её на весь экран
564
- if (shouldExpand && translateY > (prevTranslateY !== null && prevTranslateY !== void 0 ? prevTranslateY : 100) || modalState.settlingHeight === 100) {
565
- translateY = 0;
566
- }
567
- // Если модалка уже раскрыта обновляем состояния
568
- if (translateY === 0) {
569
- expanded = true;
570
- collapsed = false;
571
- }
572
- modalState.expandedRange = expandedRange;
573
- modalState.collapsedRange = collapsedRange;
574
- modalState.hiddenRange = hiddenRange;
575
- modalState.translateY = translateY;
576
- modalState.translateYFrom = translateYFrom;
577
- modalState.collapsed = collapsed;
578
- modalState.expanded = expanded;
579
- }
580
- function initCardModal(modalState) {
581
- modalState.translateY = 0;
582
- }
583
- function calculateModalContentHeight(element, isExpandable) {
584
- if (!isExpandable) {
585
- return element.scrollHeight;
586
- }
587
- /*
588
- * В режиме expandable мы назначаем контейнеру контента высоту 100%, что не даёт
589
- * получить реальную высоту контента.
590
- * Поэтому мы пересчитываем высоту, временно устанавливая height: auto;
591
- * */ const currentHeightStyle = element.style.height;
592
- element.style.height = 'auto';
593
- const elementHeight = element.scrollHeight;
594
- element.style.height = currentHeightStyle;
595
- return elementHeight;
596
- }
11
+ * @see https://vkcom.github.io/VKUI/#/ModalRoot
12
+ */ export const ModalRoot = ({ activeModal, children, modalOverlayTestId, noFocusToDialog, usePortal, onOpen, onOpened, onClose, onClosed })=>{
13
+ const contextValue = React.useMemo(()=>({
14
+ isInsideModal: true,
15
+ // base props
16
+ activeModal,
17
+ modalOverlayTestId,
18
+ noFocusToDialog,
19
+ // callbacks
20
+ onOpen,
21
+ onOpened,
22
+ onClose,
23
+ onClosed,
24
+ // TODO [>=8] Удалить метод
25
+ updateModalHeight: /* istanbul ignore next: deprecated */ process.env.NODE_ENV === 'development' ? ()=>{
26
+ warn('Метод updateModalHeight() устарел и будет удалён в VKUI v8');
27
+ } : noop,
28
+ // TODO [>=8] Удалить метод
29
+ registerModal: /* istanbul ignore next: deprecated */ process.env.NODE_ENV === 'development' ? ()=>{
30
+ warn('Метод registerModal() устарел и будет удалён в VKUI v8');
31
+ } : noop
32
+ }), [
33
+ activeModal,
34
+ modalOverlayTestId,
35
+ noFocusToDialog,
36
+ onClose,
37
+ onClosed,
38
+ onOpen,
39
+ onOpened
40
+ ]);
41
+ const modalOverlayRef = React.useRef(null);
42
+ return /*#__PURE__*/ _jsx(ModalPopoutPortal, {
43
+ usePortal: usePortal,
44
+ children: /*#__PURE__*/ _jsx(ModalRootContext.Provider, {
45
+ value: contextValue,
46
+ children: /*#__PURE__*/ _jsxs(ModalRootOverlayContext.Provider, {
47
+ value: modalOverlayRef,
48
+ children: [
49
+ /*#__PURE__*/ _jsx(ModalOverlay, {
50
+ visible: typeof activeModal === 'string',
51
+ getRootRef: modalOverlayRef
52
+ }),
53
+ children
54
+ ]
55
+ })
56
+ })
57
+ });
58
+ };
597
59
 
598
60
  //# sourceMappingURL=ModalRoot.js.map