@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,7 +1,6 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { useObjectMemo } from '../../hooks/useObjectMemo';
5
4
 
6
5
  export interface TransitionContextProps {
7
6
  entering: boolean;
@@ -16,8 +15,12 @@ export const NavTransitionProvider = ({
16
15
  entering,
17
16
  }: React.PropsWithChildren<TransitionContextProps>): React.ReactNode => {
18
17
  const parentContext = useNavTransition();
19
- const contextValue = useObjectMemo({
20
- entering: parentContext.entering || entering,
21
- });
18
+ const contextValue = React.useMemo(
19
+ () => ({
20
+ entering: parentContext.entering || entering,
21
+ }),
22
+ [entering, parentContext.entering],
23
+ );
24
+
22
25
  return <TransitionContext.Provider value={contextValue}>{children}</TransitionContext.Provider>;
23
26
  };
@@ -2,6 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { classNames } from '@vkontakte/vkjs';
5
+ import { useModalContext } from '../../context/ModalContext';
5
6
  import { useAdaptivity } from '../../hooks/useAdaptivity';
6
7
  import { useAdaptivityConditionalRender } from '../../hooks/useAdaptivityConditionalRender';
7
8
  import { usePlatform } from '../../hooks/usePlatform';
@@ -13,7 +14,6 @@ import type {
13
14
  } from '../../types';
14
15
  import { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';
15
16
  import { FixedLayout } from '../FixedLayout/FixedLayout';
16
- import { ModalRootContext } from '../ModalRoot/ModalRootContext';
17
17
  import { OnboardingTooltipContainer } from '../OnboardingTooltip/OnboardingTooltipContainer';
18
18
  import { RootComponent } from '../RootComponent/RootComponent';
19
19
  import { Separator } from '../Separator/Separator';
@@ -84,7 +84,7 @@ interface PanelHeaderInProps {
84
84
  const PanelHeaderIn = ({ before, after, children, typographyProps = {} }: PanelHeaderInProps) => {
85
85
  const { Component = 'span', ...restProps } = typographyProps;
86
86
  const { hasCustomPanelHeaderAfter, customPanelHeaderAfterMinWidth } = useConfigProvider();
87
- const { isInsideModal } = React.useContext(ModalRootContext);
87
+ const isInsideModal = useModalContext().id !== null;
88
88
  const platform = usePlatform();
89
89
 
90
90
  const afterSlotProps =
@@ -25,9 +25,10 @@ const sizeXClassNames = {
25
25
  compact: styles.backSizeXCompact,
26
26
  };
27
27
 
28
- export interface PanelHeaderBackProps extends Omit<PanelHeaderButtonProps, 'children'> {
29
- children?: string;
30
- }
28
+ export type PanelHeaderBackProps = Omit<PanelHeaderButtonProps, 'children'> & {
29
+ hideLabelOnVKCom?: boolean;
30
+ hideLabelOnIOS?: boolean;
31
+ };
31
32
 
32
33
  const getBackIcon = (platform: PlatformType) => {
33
34
  switch (platform) {
@@ -54,30 +55,31 @@ const getBackIcon = (platform: PlatformType) => {
54
55
  * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
55
56
  */
56
57
  export const PanelHeaderBack = ({
57
- label,
58
+ label = 'Назад',
58
59
  className,
59
- children = 'Назад',
60
+ hideLabelOnVKCom = false,
61
+ hideLabelOnIOS = false,
60
62
  ...restProps
61
- }: PanelHeaderButtonProps): React.ReactNode => {
63
+ }: PanelHeaderBackProps): React.ReactNode => {
62
64
  const platform = usePlatform();
63
65
  const { sizeX = 'none' } = useAdaptivity();
64
66
  // также label нужно скрывать при platform === 'ios' && sizeX === regular
65
67
  // https://github.com/VKCOM/VKUI/blob/master/src/components/PanelHeaderButton/PanelHeaderButton.css#L104
66
- const showLabel = platform === 'vkcom' || platform === 'ios';
68
+ const showLabel =
69
+ (platform === 'vkcom' && !hideLabelOnVKCom) || (platform === 'ios' && !hideLabelOnIOS);
67
70
 
68
71
  return (
69
72
  <PanelHeaderButton
70
73
  {...restProps}
71
74
  className={classNames(
72
75
  sizeX !== 'regular' && sizeXClassNames[sizeX],
73
- platform === 'ios' && styles['backIos'],
74
- platform === 'vkcom' && styles['backVkcom'],
75
- showLabel && !!label && styles['backHasLabel'],
76
+ platform === 'ios' && styles.backIos,
77
+ platform === 'vkcom' && styles.backVkcom,
78
+ showLabel && !!label && styles.backHasLabel,
76
79
  className,
77
80
  )}
78
- label={showLabel && label}
81
+ label={showLabel ? label : label && <VisuallyHidden>{label}</VisuallyHidden>}
79
82
  >
80
- {children && <VisuallyHidden>{children}</VisuallyHidden>}
81
83
  {getBackIcon(platform)}
82
84
  </PanelHeaderButton>
83
85
  );
@@ -84,6 +84,9 @@ export const PanelHeaderButton = ({
84
84
  warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');
85
85
  }
86
86
  }
87
+ const elements = [label, children].filter((item) => !!item);
88
+
89
+ const onlyPrimitive = elements.length === 1 && isPrimitiveReactNode(elements[0]);
87
90
 
88
91
  return (
89
92
  <Tappable
@@ -97,7 +100,7 @@ export const PanelHeaderButton = ({
97
100
  platformClassNames.hasOwnProperty(platform)
98
101
  ? platformClassNames[platform]
99
102
  : platformClassNames.android,
100
- isPrimitive && styles.primitive,
103
+ onlyPrimitive && styles.primitive,
101
104
  !isPrimitive && !isPrimitiveLabel && styles.notPrimitive,
102
105
  className,
103
106
  )}
@@ -9,27 +9,24 @@ import {
9
9
  } from '../PanelHeaderButton/PanelHeaderButton';
10
10
  import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
11
11
 
12
+ export type PanelHeaderCloseProps = Omit<PanelHeaderButtonProps, 'children'>;
13
+
12
14
  /**
13
15
  * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
14
16
  */
15
17
  export const PanelHeaderClose = ({
16
- children = 'Отмена',
18
+ label = 'Отмена',
17
19
  ...restProps
18
- }: PanelHeaderButtonProps): React.ReactNode => {
20
+ }: PanelHeaderCloseProps): React.ReactNode => {
19
21
  const platform = usePlatform();
20
22
 
21
23
  return (
22
- <PanelHeaderButton {...restProps}>
23
- {platform === 'ios' ? (
24
- children
25
- ) : (
26
- <>
27
- <VisuallyHidden>{children}</VisuallyHidden>
28
- <AdaptiveIconRenderer
29
- IconCompact={Icon24CancelOutline}
30
- IconRegular={Icon28CancelOutline}
31
- />
32
- </>
24
+ <PanelHeaderButton
25
+ {...restProps}
26
+ label={platform === 'ios' ? label : label && <VisuallyHidden>{label}</VisuallyHidden>}
27
+ >
28
+ {platform !== 'ios' && (
29
+ <AdaptiveIconRenderer IconCompact={Icon24CancelOutline} IconRegular={Icon28CancelOutline} />
33
30
  )}
34
31
  </PanelHeaderButton>
35
32
  );
@@ -15,7 +15,7 @@ import {
15
15
  } from '../PanelHeaderButton/PanelHeaderButton';
16
16
  import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
17
17
 
18
- export interface PanelHeaderEditProps extends PanelHeaderButtonProps {
18
+ export interface PanelHeaderEditProps extends Omit<PanelHeaderButtonProps, 'label' | 'children'> {
19
19
  /**
20
20
  * Включен ли режим редактирования
21
21
  */
@@ -43,17 +43,15 @@ export const PanelHeaderEdit = ({
43
43
  const label = isActive ? doneLabel : editLabel;
44
44
 
45
45
  return (
46
- <PanelHeaderButton {...restProps}>
47
- {platform === 'ios' ? (
48
- label
49
- ) : (
50
- <>
51
- <VisuallyHidden>{label}</VisuallyHidden>
52
- <AdaptiveIconRenderer
53
- IconCompact={isActive ? Icon24DoneOutline : Icon24PenOutline}
54
- IconRegular={isActive ? Icon28DoneOutline : Icon28EditOutline}
55
- />
56
- </>
46
+ <PanelHeaderButton
47
+ {...restProps}
48
+ label={platform === 'ios' ? label : label && <VisuallyHidden>{label}</VisuallyHidden>}
49
+ >
50
+ {platform !== 'ios' && (
51
+ <AdaptiveIconRenderer
52
+ IconCompact={isActive ? Icon24DoneOutline : Icon24PenOutline}
53
+ IconRegular={isActive ? Icon28DoneOutline : Icon28EditOutline}
54
+ />
57
55
  )}
58
56
  </PanelHeaderButton>
59
57
  );
@@ -9,24 +9,25 @@ import {
9
9
  } from '../PanelHeaderButton/PanelHeaderButton';
10
10
  import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';
11
11
 
12
+ export type PanelHeaderSubmitProps = Omit<PanelHeaderButtonProps, 'children'>;
13
+
12
14
  /**
13
15
  * @see https://vkcom.github.io/VKUI/#/PanelHeaderButton
14
16
  */
15
17
  export const PanelHeaderSubmit = ({
16
- children = 'Готово',
18
+ label = 'Готово',
17
19
  ...restProps
18
- }: PanelHeaderButtonProps): React.ReactNode => {
20
+ }: PanelHeaderSubmitProps): React.ReactNode => {
19
21
  const platform = usePlatform();
20
22
 
21
23
  return (
22
- <PanelHeaderButton primary {...restProps}>
23
- {platform === 'ios' ? (
24
- children
25
- ) : (
26
- <>
27
- <VisuallyHidden>{children}</VisuallyHidden>
28
- <AdaptiveIconRenderer IconCompact={Icon24DoneOutline} IconRegular={Icon28DoneOutline} />
29
- </>
24
+ <PanelHeaderButton
25
+ primary
26
+ label={platform === 'ios' ? label : label && <VisuallyHidden>{label}</VisuallyHidden>}
27
+ {...restProps}
28
+ >
29
+ {platform !== 'ios' && (
30
+ <AdaptiveIconRenderer IconCompact={Icon24DoneOutline} IconRegular={Icon28DoneOutline} />
30
31
  )}
31
32
  </PanelHeaderButton>
32
33
  );
@@ -41,6 +41,10 @@ export interface PopoutWrapperProps extends HTMLAttributesWithRootRef<HTMLDivEle
41
41
  * Спрячет компонент через fade-out анимацию.
42
42
  */
43
43
  closing?: boolean;
44
+ /**
45
+ * Позволяет задать z-index через токен или числом
46
+ */
47
+ zIndex?: number | string;
44
48
  }
45
49
 
46
50
  /**
@@ -54,6 +58,7 @@ export const PopoutWrapper = ({
54
58
  fixed = true,
55
59
  children,
56
60
  onClick,
61
+ zIndex = 'var(--vkui--z_index_popout)',
57
62
  ...restProps
58
63
  }: PopoutWrapperProps): React.ReactNode => {
59
64
  return (
@@ -67,6 +72,10 @@ export const PopoutWrapper = ({
67
72
  fixed && styles.fixed,
68
73
  !noBackground && styles.masked,
69
74
  )}
75
+ style={{
76
+ zIndex,
77
+ ...restProps.style,
78
+ }}
70
79
  >
71
80
  <div className={styles.container}>
72
81
  <div className={styles.overlay} onClick={onClick} />
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { classNames } from '@vkontakte/vkjs';
5
5
  import { clamp } from '../../helpers/math';
6
6
  import { usePlatform } from '../../hooks/usePlatform';
7
- import { usePrevious } from '../../hooks/usePrevious';
7
+ import { useStateWithPrev } from '../../hooks/useStateWithPrev';
8
8
  import { type DOMProps, initializeBrowserGesturePreventionEffect, useDOM } from '../../lib/dom';
9
9
  import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
10
10
  import type { AnyFunction, HasChildren } from '../../types';
@@ -57,7 +57,11 @@ export const PullToRefresh = ({
57
57
  const platform = usePlatform();
58
58
  const scroll = useScroll();
59
59
  const { window } = useDOM();
60
- const prevIsFetching = usePrevious(isFetching);
60
+
61
+ const prevIsFetchingRef = React.useRef<boolean | undefined>(undefined);
62
+ React.useEffect(() => {
63
+ prevIsFetchingRef.current = isFetching;
64
+ });
61
65
 
62
66
  const initParams = React.useMemo(
63
67
  () => ({
@@ -74,8 +78,7 @@ export const PullToRefresh = ({
74
78
  const [watching, setWatching] = React.useState(false);
75
79
  const [refreshing, setRefreshing] = React.useState(false);
76
80
  const [canRefresh, setCanRefresh] = React.useState(false);
77
- const [touchDown, setTouchDown] = React.useState(false);
78
- const prevTouchDown = usePrevious(touchDown);
81
+ const [[touchDown, prevTouchDown], setTouchDown] = useStateWithPrev(false);
79
82
 
80
83
  const touchY = React.useRef(0);
81
84
  const [contentShift, setContentShift] = React.useState(0);
@@ -99,16 +102,18 @@ export const PullToRefresh = ({
99
102
  const waitFetchingTimeoutId = React.useRef<NodeJS.Timeout>();
100
103
 
101
104
  useIsomorphicLayoutEffect(() => {
105
+ const prevIsFetching = prevIsFetchingRef.current;
102
106
  if (prevIsFetching !== undefined && prevIsFetching && !isFetching) {
103
107
  onRefreshingFinish();
104
108
  }
105
- }, [prevIsFetching, isFetching, onRefreshingFinish]);
109
+ }, [isFetching, onRefreshingFinish]);
106
110
 
107
111
  useIsomorphicLayoutEffect(() => {
112
+ const prevIsFetching = prevIsFetchingRef.current;
108
113
  if (prevIsFetching !== undefined && !prevIsFetching && isFetching) {
109
114
  clearTimeout(waitFetchingTimeoutId.current);
110
115
  }
111
- }, [isFetching, prevIsFetching]);
116
+ }, [isFetching]);
112
117
 
113
118
  const runRefreshing = React.useCallback(() => {
114
119
  if (!refreshing && onRefresh) {
@@ -141,7 +146,6 @@ export const PullToRefresh = ({
141
146
  }
142
147
  }, [
143
148
  initParams,
144
- prevIsFetching,
145
149
  isFetching,
146
150
  onRefreshingFinish,
147
151
  prevTouchDown,
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
+ import { ModalPopoutPortal } from '../AppRoot/ModalPopoutPortal';
4
5
  import { useScrollLock } from '../AppRoot/ScrollContext';
5
6
  import { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';
6
7
  import { ScreenSpinnerContainer } from './ScreenSpinnerContainer';
@@ -26,17 +27,20 @@ export const ScreenSpinner: React.FC<ScreenSpinnerProps> & {
26
27
  mode,
27
28
  label,
28
29
  customIcon,
30
+ usePortal,
29
31
  ...restProps
30
32
  }: ScreenSpinnerProps): React.ReactNode => {
31
33
  useScrollLock();
32
34
 
33
35
  return (
34
- <PopoutWrapper className={className} style={style} noBackground>
35
- <ScreenSpinnerContainer state={state} mode={mode} label={label} customIcon={customIcon}>
36
- <ScreenSpinnerLoader {...restProps} />
37
- <ScreenSpinnerSwapIcon onClick={onClick} cancelLabel={cancelLabel} />
38
- </ScreenSpinnerContainer>
39
- </PopoutWrapper>
36
+ <ModalPopoutPortal usePortal={usePortal}>
37
+ <PopoutWrapper className={className} style={style} noBackground>
38
+ <ScreenSpinnerContainer state={state} mode={mode} label={label} customIcon={customIcon}>
39
+ <ScreenSpinnerLoader {...restProps} />
40
+ <ScreenSpinnerSwapIcon onClick={onClick} cancelLabel={cancelLabel} />
41
+ </ScreenSpinnerContainer>
42
+ </PopoutWrapper>
43
+ </ModalPopoutPortal>
40
44
  );
41
45
  };
42
46
 
@@ -1,4 +1,5 @@
1
1
  import type * as React from 'react';
2
+ import type { AppRootPortalProps } from '../AppRoot/AppRootPortal';
2
3
  import type { SpinnerProps } from '../Spinner/Spinner';
3
4
 
4
5
  export type ScreenSpinnerProps = Omit<SpinnerProps, 'size'> & {
@@ -13,4 +14,5 @@ export type ScreenSpinnerProps = Omit<SpinnerProps, 'size'> & {
13
14
  */
14
15
  label?: React.ReactNode;
15
16
  cancelLabel?: string;
17
+ usePortal?: AppRootPortalProps['usePortal'];
16
18
  };
@@ -201,7 +201,7 @@
201
201
  inline-size: initial;
202
202
  }
203
203
 
204
- /* FIXME поменять на `:global(.vkuiInternalGroup--mode-plain)` */
205
- .modePlain .host {
204
+ /* stylelint-disable-next-line selector-pseudo-class-disallowed-list */
205
+ :global(.vkuiInternalGroup--mode-plain) .host {
206
206
  padding-block-start: 4px;
207
207
  }
@@ -1,5 +1,5 @@
1
1
  import { classNames } from '@vkontakte/vkjs';
2
- import { spacingSizeClassNames, type SpacingSizeProp } from '../../lib/spacings/sizes';
2
+ import { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';
3
3
  import type { HTMLAttributesWithRootRef } from '../../types';
4
4
  import { RootComponent } from '../RootComponent/RootComponent';
5
5
  import styles from './Separator.module.css';
@@ -21,6 +21,8 @@ export interface SeparatorProps extends HTMLAttributesWithRootRef<HTMLDivElement
21
21
  direction?: 'horizontal' | 'vertical';
22
22
  /**
23
23
  * Размер контейнера, в который вложен разделитель
24
+ *
25
+ * Принимает значения дизайн-системы, числовые значения и css-переменные
24
26
  */
25
27
  size?: SpacingSizeProp;
26
28
  /**
@@ -56,22 +58,32 @@ export const Separator = ({
56
58
  style,
57
59
  size,
58
60
  ...restProps
59
- }: SeparatorProps): React.ReactNode => (
60
- <RootComponent
61
- {...restProps}
62
- baseClassName={classNames(
63
- padding && styles.padded,
64
- appearanceClassNames[appearance],
65
- typeof size === 'string' && spacingSizeClassNames[size],
66
- directionClassNames[direction],
67
- size !== undefined && styles.sized,
68
- align !== 'center' && alignClassNames[align],
69
- )}
70
- style={{
71
- ...(typeof size === 'number' && { [CUSTOM_CSS_TOKEN_FOR_USER_SIZE]: `${size}px` }),
72
- ...style,
73
- }}
74
- >
75
- <hr className={styles.in} />
76
- </RootComponent>
77
- );
61
+ }: SeparatorProps): React.ReactNode => {
62
+ const [spacingSizeClassName, spacingSizeStyle] = resolveSpacingSize(
63
+ CUSTOM_CSS_TOKEN_FOR_USER_SIZE,
64
+ size,
65
+ );
66
+ return (
67
+ <RootComponent
68
+ {...restProps}
69
+ baseClassName={classNames(
70
+ padding && styles.padded,
71
+ appearanceClassNames[appearance],
72
+ directionClassNames[direction],
73
+ size !== undefined && styles.sized,
74
+ align !== 'center' && alignClassNames[align],
75
+ spacingSizeClassName,
76
+ )}
77
+ style={
78
+ spacingSizeStyle
79
+ ? {
80
+ ...spacingSizeStyle,
81
+ ...style,
82
+ }
83
+ : style
84
+ }
85
+ >
86
+ <hr className={styles.in} />
87
+ </RootComponent>
88
+ );
89
+ };
@@ -5,7 +5,7 @@ import { classNames } from '@vkontakte/vkjs';
5
5
  import { millisecondsInSecond } from 'date-fns/constants';
6
6
  import { useExternRef } from '../../hooks/useExternRef';
7
7
  import { useGlobalEventListener } from '../../hooks/useGlobalEventListener';
8
- import { usePrevious } from '../../hooks/usePrevious';
8
+ import { useStateWithPrev } from '../../hooks/useStateWithPrev';
9
9
  import { useDOM } from '../../lib/dom';
10
10
  import type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';
11
11
  import { RootComponent } from '../RootComponent/RootComponent';
@@ -64,8 +64,8 @@ function useSkeletonSyncAnimation(disableAnimation: boolean, duration = 1.5) {
64
64
  */
65
65
  function useSkeletonPosition(rootRef: React.MutableRefObject<HTMLElement | null>) {
66
66
  const { document, window } = useDOM();
67
- const [skeletonGradientLeft, setSkeletonGradientLeft] = React.useState('0');
68
- const prevSkeletonGradientLeft = usePrevious(skeletonGradientLeft);
67
+ const [[skeletonGradientLeft, prevSkeletonGradientLeft], setSkeletonGradientLeft] =
68
+ useStateWithPrev('0');
69
69
 
70
70
  const updatePosition = React.useCallback(() => {
71
71
  const el = rootRef.current;
@@ -78,7 +78,7 @@ function useSkeletonPosition(rootRef: React.MutableRefObject<HTMLElement | null>
78
78
  if (prevSkeletonGradientLeft !== gradientValue) {
79
79
  setSkeletonGradientLeft(gradientValue);
80
80
  }
81
- }, [document, prevSkeletonGradientLeft, rootRef]);
81
+ }, [document, prevSkeletonGradientLeft, rootRef, setSkeletonGradientLeft]);
82
82
 
83
83
  React.useEffect(updatePosition, [updatePosition]);
84
84
  useGlobalEventListener(window, 'resize', updatePosition);
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { classNames } from '@vkontakte/vkjs';
3
- import { spacingSizeClassNames, type SpacingSizeProp } from '../../lib/spacings/sizes';
3
+ import { resolveSpacingSize, type SpacingSizeProp } from '../../lib/spacings/sizes';
4
4
  import type { HTMLAttributesWithRootRef } from '../../types';
5
5
  import { RootComponent } from '../RootComponent/RootComponent';
6
6
  import styles from './Spacing.module.css';
@@ -10,10 +10,12 @@ export const CUSTOM_CSS_TOKEN_FOR_USER_GAP = '--vkui_internal--spacing_size';
10
10
  export interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
11
11
  /**
12
12
  * Высота спэйсинга
13
+ *
14
+ * Принимает значения дизайн-системы, числовые значения и css-переменные
13
15
  */
14
16
  size?: SpacingSizeProp;
15
17
  /**
16
- * @depracated 7.0.0
18
+ * @deprecated 7.0.0
17
19
  *
18
20
  * Свойство устарело и будет удалено в v8.
19
21
  */
@@ -23,17 +25,22 @@ export interface SpacingProps extends HTMLAttributesWithRootRef<HTMLDivElement>
23
25
  * @see https://vkcom.github.io/VKUI/#/Spacing
24
26
  */
25
27
  export const Spacing = ({ size = 'm', style, ...restProps }: SpacingProps): React.ReactNode => {
28
+ const [spacingSizeClassName, spacingSizeStyle] = resolveSpacingSize(
29
+ CUSTOM_CSS_TOKEN_FOR_USER_GAP,
30
+ size,
31
+ );
26
32
  return (
27
33
  <RootComponent
28
34
  {...restProps}
29
- style={{
30
- ...(typeof size === 'number' && { [CUSTOM_CSS_TOKEN_FOR_USER_GAP]: `${size}px` }),
31
- ...style,
32
- }}
33
- baseClassName={classNames(
34
- styles.host,
35
- typeof size === 'string' && spacingSizeClassNames[size],
36
- )}
35
+ style={
36
+ spacingSizeStyle
37
+ ? {
38
+ ...spacingSizeStyle,
39
+ ...style,
40
+ }
41
+ : style
42
+ }
43
+ baseClassName={classNames(styles.host, spacingSizeClassName)}
37
44
  />
38
45
  );
39
46
  };
@@ -5,7 +5,6 @@ import { classNames } from '@vkontakte/vkjs';
5
5
  import { useAdaptivity } from '../../hooks/useAdaptivity';
6
6
  import { useExternRef } from '../../hooks/useExternRef';
7
7
  import { useMediaQueries } from '../../hooks/useMediaQueries';
8
- import { useObjectMemo } from '../../hooks/useObjectMemo';
9
8
  import { ViewWidth, viewWidthToClassName } from '../../lib/adaptivity';
10
9
  import { matchMediaListAddListener, matchMediaListRemoveListener } from '../../lib/matchMedia';
11
10
  import type { HTMLAttributesWithRootRef } from '../../types';
@@ -89,10 +88,13 @@ export const SplitCol = (props: SplitColProps): React.ReactNode => {
89
88
  const { viewWidth } = useAdaptivity();
90
89
  const animate = useTransitionAnimate(animateProp);
91
90
 
92
- const contextValue = useObjectMemo({
93
- colRef: baseRef,
94
- animate,
95
- });
91
+ const contextValue = React.useMemo(
92
+ () => ({
93
+ colRef: baseRef,
94
+ animate,
95
+ }),
96
+ [animate, baseRef],
97
+ );
96
98
 
97
99
  return (
98
100
  <RootComponent
@@ -2,9 +2,10 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { classNames } from '@vkontakte/vkjs';
5
+ import { useExternRef } from '../../hooks/useExternRef';
5
6
  import { usePlatform } from '../../hooks/usePlatform';
6
7
  import type { HasRef, HTMLAttributesWithRootRef } from '../../types';
7
- import { PopoutRoot } from '../PopoutRoot/PopoutRoot';
8
+ import { AppRootContext } from '../AppRoot/AppRootContext';
8
9
  import styles from './SplitLayout.module.css';
9
10
 
10
11
  export interface SplitLayoutProps
@@ -12,10 +13,18 @@ export interface SplitLayoutProps
12
13
  HasRef<HTMLDivElement> {
13
14
  /**
14
15
  * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.
16
+ *
17
+ * @deprecated будет удалёно в **VKUI v8**
18
+ * Начиная с **VKUI v7** компоненты можно располагать в любом
19
+ * месте приложения в пределах `AppRoot`
15
20
  */
16
21
  popout?: React.ReactNode;
17
22
  /**
18
23
  * Свойство для отрисовки `ModalRoot`.
24
+ *
25
+ * @deprecated будет удалёно в **VKUI v8**
26
+ * Начиная с **VKUI v7** `ModalRoot` можно располагать в любом
27
+ * месте приложения в пределах `AppRoot`
19
28
  */
20
29
  modal?: React.ReactNode;
21
30
  header?: React.ReactNode;
@@ -29,25 +38,24 @@ export interface SplitLayoutProps
29
38
  * @see https://vkcom.github.io/VKUI/#/SplitLayout
30
39
  */
31
40
  export const SplitLayout = ({
32
- popout,
33
- modal,
34
41
  header,
35
42
  children,
36
43
  getRootRef,
37
44
  getRef,
38
45
  className,
39
46
  center,
47
+ modal,
48
+ popout,
40
49
  ...restProps
41
50
  }: SplitLayoutProps): React.ReactNode => {
42
51
  const platform = usePlatform();
43
52
 
53
+ const { popoutModalRoot } = React.useContext(AppRootContext);
54
+
55
+ const rootRef = useExternRef<HTMLDivElement>(popoutModalRoot, getRootRef);
56
+
44
57
  return (
45
- <PopoutRoot
46
- className={classNames(styles.host, platform === 'ios' && styles.ios)}
47
- popout={popout}
48
- modal={modal}
49
- getRootRef={getRootRef}
50
- >
58
+ <div className={classNames(styles.host, platform === 'ios' && styles.ios)} ref={rootRef}>
51
59
  {header}
52
60
  <div
53
61
  {...restProps}
@@ -60,7 +68,9 @@ export const SplitLayout = ({
60
68
  )}
61
69
  >
62
70
  {children}
71
+ {modal}
72
+ {popout}
63
73
  </div>
64
- </PopoutRoot>
74
+ </div>
65
75
  );
66
76
  };
@@ -60,6 +60,7 @@ export const Tappable = ({
60
60
  return (
61
61
  <Clickable
62
62
  baseClassName={classNames(
63
+ 'vkuiInternalTappable',
63
64
  baseClassName,
64
65
  styles.host,
65
66
  sizeX !== SizeType.REGULAR && sizeXClassNames[sizeX],