@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 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,KAAK,CAAC"}
@@ -1,3 +0,0 @@
1
- export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;
2
-
3
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/constants.ts"],"sourcesContent":["export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;\n"],"names":["MODAL_PAGE_DEFAULT_PERCENT_HEIGHT"],"mappings":"AAAA,OAAO,MAAMA,oCAAoC,GAAG"}
@@ -1,19 +0,0 @@
1
- import * as React from 'react';
2
- import type { HTMLAttributesWithRootRef } from '../../types';
3
- /**
4
- * @private
5
- */
6
- export declare const PopoutRootPopout: ({ className, ...restProps }: React.HTMLAttributes<HTMLDivElement>) => React.ReactNode;
7
- /**
8
- * @private
9
- */
10
- export declare const PopoutRootModal: ({ className, ...restProps }: React.HTMLAttributes<HTMLDivElement>) => React.ReactNode;
11
- export interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {
12
- popout?: React.ReactNode;
13
- modal?: React.ReactNode;
14
- }
15
- /**
16
- * @private
17
- */
18
- export declare const PopoutRoot: ({ popout, modal, children, ...restProps }: PopoutRootProps) => React.ReactNode;
19
- //# sourceMappingURL=PopoutRoot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopoutRoot.d.ts","sourceRoot":"","sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAK7D;;GAEG;AACH,eAAO,MAAM,gBAAgB,gCAG1B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,KAAG,KAAK,CAAC,SAE/C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,gCAGzB,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,KAAG,KAAK,CAAC,SAE/C,CAAC;AAEF,MAAM,WAAW,eAAgB,SAAQ,yBAAyB,CAAC,cAAc,CAAC;IAChF,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,8CAKpB,eAAe,KAAG,KAAK,CAAC,SAU1B,CAAC"}
@@ -1,55 +0,0 @@
1
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
- import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
- import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import * as React from "react";
6
- import { classNames } from "@vkontakte/vkjs";
7
- import { AppRootPortal } from "../AppRoot/AppRootPortal.js";
8
- import { RootComponent } from "../RootComponent/RootComponent.js";
9
- /**
10
- * @private
11
- */ export const PopoutRootPopout = (_param)=>{
12
- var { className } = _param, restProps = _object_without_properties(_param, [
13
- "className"
14
- ]);
15
- return /*#__PURE__*/ _jsx("div", _object_spread({
16
- className: classNames("vkuiPopoutRoot__popout", className)
17
- }, restProps));
18
- };
19
- /**
20
- * @private
21
- */ export const PopoutRootModal = (_param)=>{
22
- var { className } = _param, restProps = _object_without_properties(_param, [
23
- "className"
24
- ]);
25
- return /*#__PURE__*/ _jsx("div", _object_spread({
26
- className: classNames("vkuiPopoutRoot__modal", className)
27
- }, restProps));
28
- };
29
- /**
30
- * @private
31
- */ export const PopoutRoot = (_param)=>{
32
- var { popout, modal, children } = _param, restProps = _object_without_properties(_param, [
33
- "popout",
34
- "modal",
35
- "children"
36
- ]);
37
- return /*#__PURE__*/ _jsxs(RootComponent, _object_spread_props(_object_spread({}, restProps), {
38
- baseClassName: "vkuiPopoutRoot__host",
39
- children: [
40
- children,
41
- /*#__PURE__*/ _jsxs(AppRootPortal, {
42
- children: [
43
- !!popout && /*#__PURE__*/ _jsx(PopoutRootPopout, {
44
- children: popout
45
- }),
46
- !!modal && /*#__PURE__*/ _jsx(PopoutRootModal, {
47
- children: modal
48
- })
49
- ]
50
- })
51
- ]
52
- }));
53
- };
54
-
55
- //# sourceMappingURL=PopoutRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutRoot.module.css';\n\n/**\n * @private\n */\nexport const PopoutRootPopout = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.popout, className)} {...restProps} />\n);\n\n/**\n * @private\n */\nexport const PopoutRootModal = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.modal, className)} {...restProps} />\n);\n\nexport interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\n/**\n * @private\n */\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n ...restProps\n}: PopoutRootProps): React.ReactNode => {\n return (\n <RootComponent {...restProps} baseClassName={styles.host}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","AppRootPortal","RootComponent","PopoutRootPopout","className","restProps","div","PopoutRootModal","PopoutRoot","popout","modal","children","baseClassName"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,aAAa,QAAQ,oCAAiC;AAG/D;;CAEC,GACD,OAAO,MAAMC,mBAAmB;QAAC,EAC/BC,SAAS,EAE4B,WADlCC;QADHD;;yBAGA,KAACE;QAAIF,WAAWJ,qCAA0BI;OAAgBC;EAC1D;AAEF;;CAEC,GACD,OAAO,MAAME,kBAAkB;QAAC,EAC9BH,SAAS,EAE4B,WADlCC;QADHD;;yBAGA,KAACE;QAAIF,WAAWJ,oCAAyBI;OAAgBC;EACzD;AAOF;;CAEC,GACD,OAAO,MAAMG,aAAa;QAAC,EACzBC,MAAM,EACNC,KAAK,EACLC,QAAQ,EAEQ,WADbN;QAHHI;QACAC;QACAC;;IAGA,qBACE,MAACT,uDAAkBG;QAAWO,aAAa;;YACxCD;0BACD,MAACV;;oBACE,CAAC,CAACQ,wBAAU,KAACN;kCAAkBM;;oBAC/B,CAAC,CAACC,uBAAS,KAACH;kCAAiBG;;;;;;AAItC,EAAE"}
@@ -1,4 +0,0 @@
1
- import * as React from "react";
2
- export const ModalPageContext = /*#__PURE__*/ React.createContext({});
3
-
4
- //# sourceMappingURL=ModalPageContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPage/ModalPageContext.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport interface ModalPageContextInterface {\n labelId?: string;\n}\n\nexport const ModalPageContext: React.Context<ModalPageContextInterface> =\n React.createContext<ModalPageContextInterface>({});\n"],"names":["React","ModalPageContext","createContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAM/B,OAAO,MAAMC,iCACXD,MAAME,aAAa,CAA4B,CAAC,GAAG"}
@@ -1,61 +0,0 @@
1
- .host {
2
- inline-size: 100%;
3
- block-size: 100%;
4
- }
5
-
6
- .mask {
7
- opacity: 1;
8
- inline-size: 100%;
9
- block-size: 100%;
10
- position: absolute;
11
- inset-inline-start: 0;
12
- inset-block-start: 0;
13
- background: rgba(0, 0, 0, 0.4);
14
- -webkit-user-select: none;
15
- -moz-user-select: none;
16
- user-select: none;
17
- transition: opacity 167ms ease-out;
18
- animation: animation-modalroot-fade-in 0.32s ease;
19
- }
20
-
21
- .touched .mask {
22
- transition: none;
23
- }
24
-
25
- .switching .mask {
26
- /** Во время автоматической анимации смены модалок с фоном взаимодействовать нельзя */
27
- pointer-events: none;
28
- }
29
-
30
- .viewport {
31
- position: absolute;
32
- inset: 0;
33
- pointer-events: none;
34
- }
35
-
36
- :not(.desktop).host .viewport {
37
- inset-block-start: var(--vkui_internal--safe_area_inset_top);
38
- }
39
-
40
- :not(.desktop).hasCustomPanelHeaderAfterSlot .viewport {
41
- inset-block-start: calc(
42
- var(--vkui_internal--safe_area_inset_top) + var(--vkui_internal--panel_header_height)
43
- );
44
- }
45
-
46
- .modal {
47
- position: absolute;
48
- inline-size: 100%;
49
- block-size: 100%;
50
- box-sizing: border-box;
51
- }
52
-
53
- @keyframes animation-modalroot-fade-in {
54
- from {
55
- opacity: 0;
56
- }
57
-
58
- to {
59
- opacity: 1;
60
- }
61
- }
@@ -1,19 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { useAdaptivityWithJSMediaQueries } from "../../hooks/useAdaptivityWithJSMediaQueries.js";
5
- import { useScrollLock } from "../AppRoot/ScrollContext.js";
6
- import { ModalRootTouch } from "./ModalRoot.js";
7
- import { ModalRootDesktop } from "./ModalRootDesktop.js";
8
- /**
9
- * @see https://vkcom.github.io/VKUI/#/ModalRoot
10
- */ export const ModalRoot = (props)=>{
11
- const { isDesktop } = useAdaptivityWithJSMediaQueries();
12
- useScrollLock(!!props.activeModal);
13
- const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;
14
- return /*#__PURE__*/ _jsx(RootComponent, {
15
- ...props
16
- });
17
- };
18
-
19
- //# sourceMappingURL=ModalRootAdaptive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport type { ModalRootProps } from './types';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps): React.ReactNode => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"names":["React","useAdaptivityWithJSMediaQueries","useScrollLock","ModalRootTouch","ModalRootDesktop","ModalRoot","props","isDesktop","activeModal","RootComponent"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,+BAA+B,QAAQ,iDAA8C;AAC9F,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,cAAc,QAAQ,iBAAc;AAC7C,SAASC,gBAAgB,QAAQ,wBAAqB;AAGtD;;CAEC,GACD,OAAO,MAAMC,YAAY,CAACC;IACxB,MAAM,EAAEC,SAAS,EAAE,GAAGN;IAEtBC,cAAc,CAAC,CAACI,MAAME,WAAW;IAEjC,MAAMC,gBAAgBF,YAAYH,mBAAmBD;IAErD,qBAAO,KAACM;QAAe,GAAGH,KAAK;;AACjC,EAAE"}
@@ -1,179 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import * as React from "react";
4
- import { classNames, noop } from "@vkontakte/vkjs";
5
- import { clamp } from "../../helpers/math.js";
6
- import { useObjectMemo } from "../../hooks/useObjectMemo.js";
7
- import { usePrevious } from "../../hooks/usePrevious.js";
8
- import { useWaitTransitionFinish } from "../../hooks/useWaitTransitionFinish.js";
9
- import { useDOM } from "../../lib/dom.js";
10
- import { getNavId } from "../../lib/getNavId.js";
11
- import { warnOnce } from "../../lib/warnOnce.js";
12
- import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
13
- import { FocusTrap } from "../FocusTrap/FocusTrap.js";
14
- import { ModalRootContext } from "./ModalRootContext.js";
15
- import { useModalManager } from "./useModalManager.js";
16
- import styles from "./ModalRoot.module.css";
17
- const warn = warnOnce('ModalRoot');
18
- export const ModalRootDesktop = ({ activeModal: activeModalProp, children, noFocusToDialog = false, onOpen, onOpened, onClose, onClosed, modalOverlayTestId })=>{
19
- const maskElementRef = React.useRef(null);
20
- const maskAnimationFrame = React.useRef(undefined);
21
- const restoreFocusTo = React.useRef(undefined);
22
- const { document } = useDOM();
23
- const { hasCustomPanelHeaderAfter, platform } = useConfigProvider();
24
- const { activeModal, exitingModal, onExit, getModalState, enteringModal, onEnter, onEntered: onEnteredProp, onExited, history, delayEnter } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);
25
- const waitTransitionFinish = useWaitTransitionFinish();
26
- const prevProps = usePrevious({
27
- exitingModal,
28
- enteringModal,
29
- activeModal
30
- });
31
- const modalRootContext = useObjectMemo({
32
- updateModalHeight: ()=>undefined,
33
- registerModal: ({ id, ...data })=>Object.assign(getModalState(id) ?? {}, data),
34
- onClose: onExit,
35
- isInsideModal: true
36
- });
37
- const timeout = platform === 'ios' ? 400 : 320;
38
- const modals = React.Children.toArray(children);
39
- /* Анимирует сдвиг модального окна */ const animateModalOpacity = (modalState, display)=>{
40
- if (modalState?.innerElement) {
41
- modalState.innerElement.style.transition = '';
42
- modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';
43
- modalState.innerElement.style.opacity = display ? '1' : '0';
44
- }
45
- };
46
- /* Устанавливает прозрачность для полупрозрачной подложки */ const setMaskOpacity = (modalState, forceOpacity = null)=>{
47
- if (forceOpacity === null && history?.[0] !== modalState.id) {
48
- return;
49
- }
50
- if (maskAnimationFrame.current) {
51
- cancelAnimationFrame(maskAnimationFrame.current);
52
- }
53
- maskAnimationFrame.current = requestAnimationFrame(()=>{
54
- if (maskElementRef.current) {
55
- const { translateY = 0, translateYCurrent = 0 } = modalState;
56
- const opacity = forceOpacity === null ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0 : forceOpacity;
57
- maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();
58
- }
59
- });
60
- };
61
- const onEntered = ({ id, modalElement })=>{
62
- if (!noFocusToDialog && modalElement && !modalElement.contains(document.activeElement)) {
63
- modalElement.focus();
64
- }
65
- onEnteredProp(id);
66
- };
67
- const openModal = ()=>{
68
- if (!enteringModal || !prevProps) {
69
- return;
70
- }
71
- const enteringState = getModalState(enteringModal);
72
- onEnter();
73
- // Анимация открытия модального окна
74
- if (!prevProps.exitingModal) {
75
- requestAnimationFrame(()=>{
76
- if (enteringModal === enteringModal && enteringState) {
77
- waitTransitionFinish(enteringState.innerElement, ()=>onEntered(enteringState), timeout);
78
- animateModalOpacity(enteringState, true);
79
- setMaskOpacity(enteringState, 1);
80
- }
81
- });
82
- return;
83
- }
84
- // Переход между модальными окнами без анимации
85
- requestAnimationFrame(()=>{
86
- if (enteringState?.innerElement) {
87
- enteringState.innerElement.style.transition = 'none';
88
- enteringState.innerElement.style.opacity = '1';
89
- setMaskOpacity(enteringState, 1);
90
- }
91
- });
92
- if (enteringState) {
93
- onEntered(enteringState);
94
- }
95
- };
96
- const closeModal = (id)=>{
97
- const prevModalState = getModalState(id);
98
- if (!prevModalState) {
99
- return;
100
- }
101
- // Анимация закрытия модального окна
102
- if (!activeModal) {
103
- requestAnimationFrame(()=>{
104
- waitTransitionFinish(prevModalState?.innerElement, (event)=>{
105
- // Исключаем дочерние элементы
106
- if (event && event.target === prevModalState?.innerElement) {
107
- onExited(id);
108
- } else if (!event) {
109
- // Вызвался по тайм-ауту
110
- onExited(id);
111
- }
112
- }, timeout);
113
- animateModalOpacity(prevModalState, false);
114
- setMaskOpacity(prevModalState, 0);
115
- });
116
- return;
117
- }
118
- // Переход между модальными окнами без анимации
119
- onExited(id);
120
- };
121
- React.useEffect(()=>{
122
- if (!prevProps) {
123
- return;
124
- }
125
- // transition phase 2: animate exiting modal
126
- if (exitingModal && exitingModal !== prevProps.exitingModal) {
127
- closeModal(exitingModal);
128
- }
129
- // transition phase 3: animate entering modal
130
- if (enteringModal && enteringModal !== prevProps.enteringModal) {
131
- openModal();
132
- }
133
- // focus restoration
134
- if (activeModal && !prevProps.activeModal) {
135
- restoreFocusTo.current = document?.activeElement ?? undefined;
136
- }
137
- if (!activeModal && !exitingModal && restoreFocusTo.current) {
138
- restoreFocusTo.current.focus();
139
- restoreFocusTo.current = undefined;
140
- }
141
- });
142
- if (!activeModal && !exitingModal) {
143
- return null;
144
- }
145
- return /*#__PURE__*/ _jsx(ModalRootContext.Provider, {
146
- value: modalRootContext,
147
- children: /*#__PURE__*/ _jsxs("div", {
148
- className: classNames(styles.host, hasCustomPanelHeaderAfter && styles.hasCustomPanelHeaderAfterSlot, styles.desktop),
149
- children: [
150
- /*#__PURE__*/ _jsx("div", {
151
- "data-testid": modalOverlayTestId,
152
- className: styles.mask,
153
- ref: maskElementRef,
154
- onClick: onExit
155
- }),
156
- /*#__PURE__*/ _jsx("div", {
157
- className: styles.viewport,
158
- children: modals.map((Modal)=>{
159
- const modalId = getNavId(Modal.props, warn);
160
- if (modalId !== activeModal && modalId !== exitingModal) {
161
- return null;
162
- }
163
- const key = `modal-${modalId}`;
164
- return /*#__PURE__*/ _jsx(FocusTrap, {
165
- autoFocus: false,
166
- restoreFocus: false,
167
- onClose: onExit,
168
- timeout: timeout,
169
- className: styles.modal,
170
- children: Modal
171
- }, key);
172
- })
173
- })
174
- ]
175
- })
176
- });
177
- };
178
-
179
- //# sourceMappingURL=ModalRootDesktop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, type ModalRootContextInterface } from './ModalRootContext';\nimport type { ModalRootWithDOMProps, ModalsStateEntry } from './types';\nimport { useModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport const ModalRootDesktop = ({\n activeModal: activeModalProp,\n children,\n noFocusToDialog = false,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n modalOverlayTestId,\n}: ModalRootWithDOMProps): React.ReactNode => {\n const maskElementRef = React.useRef<HTMLDivElement>(null);\n const maskAnimationFrame = React.useRef<number | undefined>(undefined);\n const restoreFocusTo = React.useRef<HTMLElement | undefined>(undefined);\n\n const { document } = useDOM();\n const { hasCustomPanelHeaderAfter, platform } = useConfigProvider();\n const {\n activeModal,\n exitingModal,\n onExit,\n getModalState,\n enteringModal,\n onEnter,\n onEntered: onEnteredProp,\n onExited,\n history,\n delayEnter,\n } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);\n\n const waitTransitionFinish = useWaitTransitionFinish();\n const prevProps = usePrevious({\n exitingModal,\n enteringModal,\n activeModal,\n });\n const modalRootContext: ModalRootContextInterface = useObjectMemo({\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(getModalState(id) ?? {}, data),\n onClose: onExit,\n isInsideModal: true,\n });\n\n const timeout = platform === 'ios' ? 400 : 320;\n const modals = React.Children.toArray(children) as React.ReactElement[];\n\n /* Анимирует сдвиг модального окна */\n const animateModalOpacity = (modalState: ModalsStateEntry | undefined, display: boolean) => {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n };\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n const setMaskOpacity = (modalState: ModalsStateEntry, forceOpacity: number | null = null) => {\n if (forceOpacity === null && history?.[0] !== modalState.id) {\n return;\n }\n\n if (maskAnimationFrame.current) {\n cancelAnimationFrame(maskAnimationFrame.current);\n }\n maskAnimationFrame.current = requestAnimationFrame(() => {\n if (maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n };\n\n const onEntered = ({ id, modalElement }: ModalsStateEntry) => {\n if (!noFocusToDialog && modalElement && !modalElement.contains(document!.activeElement)) {\n modalElement.focus();\n }\n\n onEnteredProp(id);\n };\n\n const openModal = () => {\n if (!enteringModal || !prevProps) {\n return;\n }\n\n const enteringState = getModalState(enteringModal);\n onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (enteringModal === enteringModal && enteringState) {\n waitTransitionFinish(enteringState.innerElement, () => onEntered(enteringState), timeout);\n animateModalOpacity(enteringState, true);\n setMaskOpacity(enteringState, 1);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n requestAnimationFrame(() => {\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n setMaskOpacity(enteringState, 1);\n }\n });\n\n if (enteringState) {\n onEntered(enteringState);\n }\n };\n\n const closeModal = (id: string) => {\n const prevModalState = getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!activeModal) {\n requestAnimationFrame(() => {\n waitTransitionFinish(\n prevModalState?.innerElement,\n (event) => {\n // Исключаем дочерние элементы\n if (event && event.target === prevModalState?.innerElement) {\n onExited(id);\n } else if (!event) {\n // Вызвался по тайм-ауту\n onExited(id);\n }\n },\n timeout,\n );\n animateModalOpacity(prevModalState, false);\n setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n onExited(id);\n };\n\n React.useEffect(() => {\n if (!prevProps) {\n return;\n }\n\n // transition phase 2: animate exiting modal\n if (exitingModal && exitingModal !== prevProps.exitingModal) {\n closeModal(exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (enteringModal && enteringModal !== prevProps.enteringModal) {\n openModal();\n }\n\n // focus restoration\n if (activeModal && !prevProps.activeModal) {\n restoreFocusTo.current = (document?.activeElement ?? undefined) as HTMLElement | undefined;\n }\n if (!activeModal && !exitingModal && restoreFocusTo.current) {\n restoreFocusTo.current.focus();\n restoreFocusTo.current = undefined;\n }\n });\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={modalRootContext}>\n <div\n className={classNames(\n styles.host,\n hasCustomPanelHeaderAfter && styles.hasCustomPanelHeaderAfterSlot,\n styles.desktop,\n )}\n >\n <div\n data-testid={modalOverlayTestId}\n className={styles.mask}\n ref={maskElementRef}\n onClick={onExit}\n />\n <div className={styles.viewport}>\n {modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n autoFocus={false}\n restoreFocus={false}\n onClose={onExit}\n timeout={timeout}\n key={key}\n className={styles.modal}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n};\n"],"names":["React","classNames","noop","clamp","useObjectMemo","usePrevious","useWaitTransitionFinish","useDOM","getNavId","warnOnce","useConfigProvider","FocusTrap","ModalRootContext","useModalManager","styles","warn","ModalRootDesktop","activeModal","activeModalProp","children","noFocusToDialog","onOpen","onOpened","onClose","onClosed","modalOverlayTestId","maskElementRef","useRef","maskAnimationFrame","undefined","restoreFocusTo","document","hasCustomPanelHeaderAfter","platform","exitingModal","onExit","getModalState","enteringModal","onEnter","onEntered","onEnteredProp","onExited","history","delayEnter","waitTransitionFinish","prevProps","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","isInsideModal","timeout","modals","Children","toArray","animateModalOpacity","modalState","display","innerElement","style","transition","transitionDelay","opacity","setMaskOpacity","forceOpacity","current","cancelAnimationFrame","requestAnimationFrame","translateY","translateYCurrent","toString","modalElement","contains","activeElement","focus","openModal","enteringState","closeModal","prevModalState","event","target","useEffect","Provider","value","div","className","host","hasCustomPanelHeaderAfterSlot","desktop","data-testid","mask","ref","onClick","viewport","map","Modal","modalId","props","key","autoFocus","restoreFocus","modal"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;
2
-
3
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/ModalRoot/constants.ts"],"sourcesContent":["export const MODAL_PAGE_DEFAULT_PERCENT_HEIGHT = 75;\n"],"names":["MODAL_PAGE_DEFAULT_PERCENT_HEIGHT"],"mappings":"AAAA,OAAO,MAAMA,oCAAoC,GAAG"}
@@ -1,41 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import * as React from "react";
3
- import { classNames } from "@vkontakte/vkjs";
4
- import { AppRootPortal } from "../AppRoot/AppRootPortal.js";
5
- import { RootComponent } from "../RootComponent/RootComponent.js";
6
- import styles from "./PopoutRoot.module.css";
7
- /**
8
- * @private
9
- */ export const PopoutRootPopout = ({ className, ...restProps })=>/*#__PURE__*/ _jsx("div", {
10
- className: classNames(styles.popout, className),
11
- ...restProps
12
- });
13
- /**
14
- * @private
15
- */ export const PopoutRootModal = ({ className, ...restProps })=>/*#__PURE__*/ _jsx("div", {
16
- className: classNames(styles.modal, className),
17
- ...restProps
18
- });
19
- /**
20
- * @private
21
- */ export const PopoutRoot = ({ popout, modal, children, ...restProps })=>{
22
- return /*#__PURE__*/ _jsxs(RootComponent, {
23
- ...restProps,
24
- baseClassName: styles.host,
25
- children: [
26
- children,
27
- /*#__PURE__*/ _jsxs(AppRootPortal, {
28
- children: [
29
- !!popout && /*#__PURE__*/ _jsx(PopoutRootPopout, {
30
- children: popout
31
- }),
32
- !!modal && /*#__PURE__*/ _jsx(PopoutRootModal, {
33
- children: modal
34
- })
35
- ]
36
- })
37
- ]
38
- });
39
- };
40
-
41
- //# sourceMappingURL=PopoutRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/components/PopoutRoot/PopoutRoot.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './PopoutRoot.module.css';\n\n/**\n * @private\n */\nexport const PopoutRootPopout = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.popout, className)} {...restProps} />\n);\n\n/**\n * @private\n */\nexport const PopoutRootModal = ({\n className,\n ...restProps\n}: React.HTMLAttributes<HTMLDivElement>): React.ReactNode => (\n <div className={classNames(styles.modal, className)} {...restProps} />\n);\n\nexport interface PopoutRootProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n popout?: React.ReactNode;\n modal?: React.ReactNode;\n}\n\n/**\n * @private\n */\nexport const PopoutRoot = ({\n popout,\n modal,\n children,\n ...restProps\n}: PopoutRootProps): React.ReactNode => {\n return (\n <RootComponent {...restProps} baseClassName={styles.host}>\n {children}\n <AppRootPortal>\n {!!popout && <PopoutRootPopout>{popout}</PopoutRootPopout>}\n {!!modal && <PopoutRootModal>{modal}</PopoutRootModal>}\n </AppRootPortal>\n </RootComponent>\n );\n};\n"],"names":["React","classNames","AppRootPortal","RootComponent","styles","PopoutRootPopout","className","restProps","div","popout","PopoutRootModal","modal","PopoutRoot","children","baseClassName","host"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,8BAA2B;AACzD,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,OAAOC,YAAY,0BAA0B;AAE7C;;CAEC,GACD,OAAO,MAAMC,mBAAmB,CAAC,EAC/BC,SAAS,EACT,GAAGC,WACkC,iBACrC,KAACC;QAAIF,WAAWL,WAAWG,OAAOK,MAAM,EAAEH;QAAa,GAAGC,SAAS;OACnE;AAEF;;CAEC,GACD,OAAO,MAAMG,kBAAkB,CAAC,EAC9BJ,SAAS,EACT,GAAGC,WACkC,iBACrC,KAACC;QAAIF,WAAWL,WAAWG,OAAOO,KAAK,EAAEL;QAAa,GAAGC,SAAS;OAClE;AAOF;;CAEC,GACD,OAAO,MAAMK,aAAa,CAAC,EACzBH,MAAM,EACNE,KAAK,EACLE,QAAQ,EACR,GAAGN,WACa;IAChB,qBACE,MAACJ;QAAe,GAAGI,SAAS;QAAEO,eAAeV,OAAOW,IAAI;;YACrDF;0BACD,MAACX;;oBACE,CAAC,CAACO,wBAAU,KAACJ;kCAAkBI;;oBAC/B,CAAC,CAACE,uBAAS,KAACD;kCAAiBC;;;;;;AAItC,EAAE"}
@@ -1,28 +0,0 @@
1
- .host {
2
- inline-size: 100%;
3
- block-size: 100%;
4
- position: relative;
5
- }
6
-
7
- .popout {
8
- position: fixed;
9
- inset-inline-start: 0;
10
- inset-block-start: 0;
11
- z-index: var(--vkui--z_index_popout);
12
- inline-size: 100%;
13
- block-size: 100%;
14
- }
15
-
16
- .modal {
17
- position: fixed;
18
- inset-inline-start: 0;
19
- inset-block-start: 0;
20
- z-index: var(--vkui--z_index_modal);
21
- inline-size: 100%;
22
- block-size: 100%;
23
- }
24
-
25
- .popout:empty,
26
- .modal:empty {
27
- display: none;
28
- }
@@ -1,40 +0,0 @@
1
- import * as React from "react";
2
- import { useDOM } from "../lib/dom.js";
3
- import { useGlobalEventListener } from "./useGlobalEventListener.js";
4
- /**
5
- Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
6
- Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
7
- */ export function getPreciseKeyboardState(window) {
8
- const { innerHeight, screen: { availHeight } } = window;
9
- const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);
10
- return coveredViewportPercentage > 24;
11
- }
12
- const eventOptions = {
13
- passive: true,
14
- capture: false
15
- };
16
- export function useKeyboard() {
17
- const { document } = useDOM();
18
- const [isOpened, setIsOpened] = React.useState(false);
19
- const onFocus = React.useCallback((event)=>{
20
- const isOpened = (event === true || event.type === 'focusin') && (document?.activeElement?.tagName === 'INPUT' || document?.activeElement?.tagName === 'TEXTAREA');
21
- setIsOpened(isOpened);
22
- }, [
23
- document?.activeElement?.tagName
24
- ]);
25
- /**
26
- У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,
27
- чтобы иметь хоть какое-то понимание происходящего.
28
- */ React.useEffect(()=>{
29
- onFocus(true);
30
- }, [
31
- onFocus
32
- ]);
33
- useGlobalEventListener(document, 'focusout', onFocus, eventOptions);
34
- useGlobalEventListener(document, 'focusin', onFocus, eventOptions);
35
- return {
36
- isOpened
37
- };
38
- }
39
-
40
- //# sourceMappingURL=useKeyboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,sBAAsB,QAAQ,8BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,WAAW,EACXC,QAAQ,EAAEC,WAAW,EAAE,EACxB,GAAGH;IAEJ,MAAMI,4BAA4BC,KAAKC,KAAK,CAAC,AAAC,CAAA,IAAIL,cAAcE,WAAU,IAAK;IAC/E,OAAOC,4BAA4B;AACrC;AAEA,MAAMG,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,SAASC;IACd,MAAM,EAAEC,QAAQ,EAAE,GAAGd;IAErB,MAAM,CAACe,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAAC;IAE/C,MAAMC,UAAUnB,MAAMoB,WAAW,CAC/B,CAACC;QACC,MAAML,WACJ,AAACK,CAAAA,UAAU,QAAQA,MAAMC,IAAI,KAAK,SAAQ,KACzCP,CAAAA,UAAUQ,eAAeC,YAAY,WACpCT,UAAUQ,eAAeC,YAAY,UAAS;QAClDP,YAAYD;IACd,GACA;QAACD,UAAUQ,eAAeC;KAAQ;IAGpC;;;GAGC,GACDxB,MAAMyB,SAAS,CAAC;QACdN,QAAQ;IACV,GAAG;QAACA;KAAQ;IAEZjB,uBAAuBa,UAAU,YAAYI,SAASR;IACtDT,uBAAuBa,UAAU,WAAWI,SAASR;IAErD,OAAO;QAAEK;IAAS;AACpB"}
@@ -1,11 +0,0 @@
1
- interface SoftwareKeyboardState {
2
- isOpened: boolean;
3
- }
4
- /**
5
- Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
6
- Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
7
- */
8
- export declare function getPreciseKeyboardState(window: any): boolean;
9
- export declare function useKeyboard(): SoftwareKeyboardState;
10
- export {};
11
- //# sourceMappingURL=useKeyboard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../src/hooks/useKeyboard.ts"],"names":[],"mappings":"AAIA,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAQ5D;AAOD,wBAAgB,WAAW,IAAI,qBAAqB,CA4BnD"}
@@ -1,42 +0,0 @@
1
- import * as React from "react";
2
- import { useDOM } from "../lib/dom.js";
3
- import { useGlobalEventListener } from "./useGlobalEventListener.js";
4
- /**
5
- Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств
6
- Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах
7
- */ export function getPreciseKeyboardState(window) {
8
- const { innerHeight, screen: { availHeight } } = window;
9
- const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);
10
- return coveredViewportPercentage > 24;
11
- }
12
- const eventOptions = {
13
- passive: true,
14
- capture: false
15
- };
16
- export function useKeyboard() {
17
- var _document_activeElement;
18
- const { document } = useDOM();
19
- const [isOpened, setIsOpened] = React.useState(false);
20
- const onFocus = React.useCallback((event)=>{
21
- var _document_activeElement, _document_activeElement1;
22
- const isOpened = (event === true || event.type === 'focusin') && ((document === null || document === void 0 ? void 0 : (_document_activeElement = document.activeElement) === null || _document_activeElement === void 0 ? void 0 : _document_activeElement.tagName) === 'INPUT' || (document === null || document === void 0 ? void 0 : (_document_activeElement1 = document.activeElement) === null || _document_activeElement1 === void 0 ? void 0 : _document_activeElement1.tagName) === 'TEXTAREA');
23
- setIsOpened(isOpened);
24
- }, [
25
- document === null || document === void 0 ? void 0 : (_document_activeElement = document.activeElement) === null || _document_activeElement === void 0 ? void 0 : _document_activeElement.tagName
26
- ]);
27
- /**
28
- У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,
29
- чтобы иметь хоть какое-то понимание происходящего.
30
- */ React.useEffect(()=>{
31
- onFocus(true);
32
- }, [
33
- onFocus
34
- ]);
35
- useGlobalEventListener(document, 'focusout', onFocus, eventOptions);
36
- useGlobalEventListener(document, 'focusin', onFocus, eventOptions);
37
- return {
38
- isOpened
39
- };
40
- }
41
-
42
- //# sourceMappingURL=useKeyboard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/hooks/useKeyboard.ts"],"sourcesContent":["import * as React from 'react';\nimport { useDOM } from '../lib/dom';\nimport { useGlobalEventListener } from './useGlobalEventListener';\n\ninterface SoftwareKeyboardState {\n isOpened: boolean;\n}\n\n/**\n Проверяет, закрыла ли клавиатура часть экрана, 24% подошло к большинству устройств\n Работает на iOS и Android, где софт-клавиатура ресайзит viewport в браузерах\n */\nexport function getPreciseKeyboardState(window: any): boolean {\n const {\n innerHeight,\n screen: { availHeight },\n } = window;\n\n const coveredViewportPercentage = Math.round((1 - innerHeight / availHeight) * 100);\n return coveredViewportPercentage > 24;\n}\n\nconst eventOptions = {\n passive: true,\n capture: false,\n};\n\nexport function useKeyboard(): SoftwareKeyboardState {\n const { document } = useDOM();\n\n const [isOpened, setIsOpened] = React.useState(false);\n\n const onFocus = React.useCallback(\n (event: FocusEvent | true) => {\n const isOpened =\n (event === true || event.type === 'focusin') &&\n (document?.activeElement?.tagName === 'INPUT' ||\n document?.activeElement?.tagName === 'TEXTAREA');\n setIsOpened(isOpened);\n },\n [document?.activeElement?.tagName],\n );\n\n /**\n У полей с autoFocus не отлавливаются события focus, для этого вызываем вручную,\n чтобы иметь хоть какое-то понимание происходящего.\n */\n React.useEffect(() => {\n onFocus(true);\n }, [onFocus]);\n\n useGlobalEventListener(document, 'focusout', onFocus, eventOptions);\n useGlobalEventListener(document, 'focusin', onFocus, eventOptions);\n\n return { isOpened };\n}\n"],"names":["React","useDOM","useGlobalEventListener","getPreciseKeyboardState","window","innerHeight","screen","availHeight","coveredViewportPercentage","Math","round","eventOptions","passive","capture","useKeyboard","document","isOpened","setIsOpened","useState","onFocus","useCallback","event","type","activeElement","tagName","useEffect"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,MAAM,QAAQ,gBAAa;AACpC,SAASC,sBAAsB,QAAQ,8BAA2B;AAMlE;;;CAGC,GACD,OAAO,SAASC,wBAAwBC,MAAW;IACjD,MAAM,EACJC,WAAW,EACXC,QAAQ,EAAEC,WAAW,EAAE,EACxB,GAAGH;IAEJ,MAAMI,4BAA4BC,KAAKC,KAAK,CAAC,AAAC,CAAA,IAAIL,cAAcE,WAAU,IAAK;IAC/E,OAAOC,4BAA4B;AACrC;AAEA,MAAMG,eAAe;IACnBC,SAAS;IACTC,SAAS;AACX;AAEA,OAAO,SAASC;QAaXC;IAZH,MAAM,EAAEA,QAAQ,EAAE,GAAGd;IAErB,MAAM,CAACe,UAAUC,YAAY,GAAGjB,MAAMkB,QAAQ,CAAC;IAE/C,MAAMC,UAAUnB,MAAMoB,WAAW,CAC/B,CAACC;YAGIN,yBACCA;QAHJ,MAAMC,WACJ,AAACK,CAAAA,UAAU,QAAQA,MAAMC,IAAI,KAAK,SAAQ,KACzCP,CAAAA,CAAAA,qBAAAA,gCAAAA,0BAAAA,SAAUQ,aAAa,cAAvBR,8CAAAA,wBAAyBS,OAAO,MAAK,WACpCT,CAAAA,qBAAAA,gCAAAA,2BAAAA,SAAUQ,aAAa,cAAvBR,+CAAAA,yBAAyBS,OAAO,MAAK,UAAS;QAClDP,YAAYD;IACd,GACA;QAACD,qBAAAA,gCAAAA,0BAAAA,SAAUQ,aAAa,cAAvBR,8CAAAA,wBAAyBS,OAAO;KAAC;IAGpC;;;GAGC,GACDxB,MAAMyB,SAAS,CAAC;QACdN,QAAQ;IACV,GAAG;QAACA;KAAQ;IAEZjB,uBAAuBa,UAAU,YAAYI,SAASR;IACtDT,uBAAuBa,UAAU,WAAWI,SAASR;IAErD,OAAO;QAAEK;IAAS;AACpB"}
@@ -1,8 +0,0 @@
1
- import * as React from 'react';
2
-
3
- export interface ModalPageContextInterface {
4
- labelId?: string;
5
- }
6
-
7
- export const ModalPageContext: React.Context<ModalPageContextInterface> =
8
- React.createContext<ModalPageContextInterface>({});