@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,205 +1,49 @@
1
- 'use client';
2
- import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
- import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- import * as React from "react";
6
- import { isFunction, noop } from "@vkontakte/vkjs";
7
- import { getNavId } from "../../lib/getNavId.js";
1
+ import { useContext, useState } from "react";
8
2
  import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect.js";
9
- import { warnOnce } from "../../lib/warnOnce.js";
10
- function getModals(children) {
11
- return React.Children.toArray(children);
12
- }
13
- const warn = warnOnce('ModalRoot');
14
- export function modalTransitionReducer(state, action) {
15
- if (action.type === 'setActive' && action.id !== state.activeModal) {
16
- const nextModal = action.id;
17
- // preserve exiting modal if switching mid-transition
18
- const prevModal = state.exitingModal || state.activeModal;
19
- let history = state.history ? [
20
- ...state.history
21
- ] : [];
22
- const isBack = Boolean(nextModal && history.includes(nextModal));
23
- if (nextModal === null) {
24
- history = [];
25
- } else if (isBack) {
26
- history = history.splice(0, history.indexOf(nextModal) + 1);
27
- } else {
28
- history.push(nextModal);
3
+ import { ModalOverlay } from "../ModalOverlay/ModalOverlay.js";
4
+ import { ModalRootContext } from "./ModalRootContext.js";
5
+ import { VisuallyHiddenModalOverlay } from "./VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay.js";
6
+ export const useModalManager = ({ id, open, keepMounted, modalOverlayTestId, noFocusToDialog, onOpen, onOpened, onClose, onClosed })=>{
7
+ const context = useContext(ModalRootContext);
8
+ const opened = context.isInsideModal ? context.activeModal === id : open;
9
+ const [unmounted, setUnmounted] = useState(keepMounted ? false : !opened);
10
+ useIsomorphicLayoutEffect(function unsetUnmounted() {
11
+ if (!keepMounted && opened) {
12
+ setUnmounted((prev)=>prev ? false : prev);
29
13
  }
14
+ }, [
15
+ opened,
16
+ keepMounted
17
+ ]);
18
+ if (unmounted) {
30
19
  return {
31
- activeModal: nextModal,
32
- // not entering yet
33
- enteringModal: null,
34
- exitingModal: prevModal,
35
- history,
36
- isBack
20
+ mounted: false
37
21
  };
38
22
  }
39
- if (action.type === 'entered' && action.id === state.enteringModal) {
40
- return _object_spread_props(_object_spread({}, state), {
41
- enteringModal: null
42
- });
43
- }
44
- if (action.type === 'exited' && action.id === state.exitingModal) {
45
- return _object_spread_props(_object_spread({}, state), {
46
- exitingModal: null
47
- });
48
- }
49
- if (action.type === 'inited' && action.id === state.activeModal) {
50
- return _object_spread_props(_object_spread({}, state), {
51
- enteringModal: action.id
52
- });
53
- }
54
- return state;
55
- }
56
- /**
57
- * Реализует переход модалок. При смене activeModal m1 -> m2:
58
- * 1. activeModal: m1, exitingModal: null, enteringModal: null, триггер перехода
59
- * 2. activeModal: m2, exitingModal: m1, enteringModal: null, рендерим m2 чтобы прошел init, начинаем анимацию выхода
60
- * одновременный переход между ModalPage:
61
- * 3a. activeModal: m2, exitingModal: m1, enteringModal: m2
62
- * 4a. exitingModal и enteringModal переходят в null в порядке завершения анимации
63
- * ИЛИ дожидаемся скрытия ModalCard
64
- * 3b. activeModal: m2, exitingModal: null, enteringModal: m2
65
- * 4b. enteringModal переходит в null после завершения анимации
66
- * 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен
67
- */ export function useModalManager(activeModal, children, onOpen = noop, onOpened = noop, onClose = noop, onClosed = noop, initModal = noop) {
68
- const modalsState = React.useRef({}).current;
69
- getModals(children).forEach((Modal)=>{
70
- const modalProps = Modal.props;
71
- const id = getNavId(modalProps, warn);
72
- const state = id !== undefined && modalsState[id] || {
73
- id: id !== null && id !== void 0 ? id : null
74
- };
75
- state.onOpen = Modal.props.onOpen;
76
- state.onOpened = Modal.props.onOpened;
77
- state.onClose = Modal.props.onClose;
78
- state.onClosed = Modal.props.onClosed;
79
- state.preventClose = Modal.props.preventClose;
80
- // ModalPage props
81
- if (typeof modalProps.settlingHeight === 'number') {
82
- state.settlingHeight = modalProps.settlingHeight;
83
- }
84
- if (state.id !== null) {
85
- modalsState[state.id] = state;
86
- }
87
- });
88
- const isMissing = activeModal && !modalsState[activeModal];
89
- const safeActiveModal = isMissing ? null : activeModal;
90
- const [transitionState, dispatchTransition] = React.useReducer(modalTransitionReducer, {
91
- activeModal: safeActiveModal,
92
- enteringModal: null,
93
- exitingModal: null,
94
- history: safeActiveModal ? [
95
- safeActiveModal
96
- ] : [],
97
- isBack: false
98
- });
99
- // Map props to state, render activeModal for init
100
- useIsomorphicLayoutEffect(()=>{
101
- // ignore non-existent activeModal
102
- if (process.env.NODE_ENV === 'development' && isMissing) {
103
- warn(`Переход невозможен - модальное окно (страница) ${activeModal} не существует`, 'error');
104
- }
105
- dispatchTransition({
106
- type: 'setActive',
107
- id: safeActiveModal !== null && safeActiveModal !== void 0 ? safeActiveModal : null
108
- });
109
- }, [
110
- activeModal
111
- ]);
112
- // Init activeModal & set enteringModal
113
- useIsomorphicLayoutEffect(()=>{
114
- if (transitionState.activeModal) {
115
- initModal(modalsState[transitionState.activeModal]);
116
- dispatchTransition({
117
- type: 'inited',
118
- id: transitionState.activeModal
119
- });
120
- }
121
- }, [
122
- transitionState.activeModal
123
- ]);
124
- const isCard = (id)=>{
125
- var _modalsState_id;
126
- return id != null && ((_modalsState_id = modalsState[id]) === null || _modalsState_id === void 0 ? void 0 : _modalsState_id.type) === 'card';
127
- };
128
- const onEntered = React.useCallback((id)=>{
129
- if (id) {
130
- const modalState = modalsState[id];
131
- if (isFunction(modalState.onOpened)) {
132
- modalState.onOpened();
133
- } else if (isFunction(onOpened)) {
134
- onOpened(id);
23
+ return {
24
+ mounted: true,
25
+ open: opened,
26
+ noFocusToDialog: noFocusToDialog || context.noFocusToDialog,
27
+ modalOverlayTestId: modalOverlayTestId || context.modalOverlayTestId,
28
+ ModalOverlay: context.isInsideModal ? VisuallyHiddenModalOverlay : ModalOverlay,
29
+ onOpen: onOpen || getContextCallback(id, context.onOpen),
30
+ onOpened: onOpened || getContextCallback(id, context.onOpened),
31
+ onClose: onClose || getContextCallback(id, context.onClose),
32
+ onClosed: function handleClosed(...args) {
33
+ if (!keepMounted) {
34
+ setUnmounted(true);
135
35
  }
136
- }
137
- dispatchTransition({
138
- type: 'entered',
139
- id
140
- });
141
- }, [
142
- modalsState,
143
- onOpened
144
- ]);
145
- const onExited = React.useCallback((id)=>{
146
- if (id) {
147
- const modalState = modalsState[id];
148
- if (isFunction(modalState.onClosed)) {
149
- modalState.onClosed();
150
- } else if (isFunction(onClosed)) {
151
- onClosed(id);
36
+ if (onClosed) {
37
+ onClosed(...args);
38
+ } else {
39
+ var _context_onClosed;
40
+ (_context_onClosed = context.onClosed) === null || _context_onClosed === void 0 ? void 0 : _context_onClosed.call(context, id);
152
41
  }
153
42
  }
154
- dispatchTransition({
155
- type: 'exited',
156
- id
157
- });
158
- }, [
159
- modalsState,
160
- onClosed
161
- ]);
162
- const delayEnter = Boolean(transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)));
163
- const getModalState = React.useCallback((id)=>id ? modalsState[id] : undefined, [
164
- modalsState
165
- ]);
166
- function onEnter() {
167
- const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];
168
- if (modalState) {
169
- if (isFunction(modalState.onOpen)) {
170
- modalState.onOpen();
171
- } else if (isFunction(onOpen) && modalState.id) {
172
- onOpen(modalState.id);
173
- }
174
- }
175
- }
176
- function onExit() {
177
- const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];
178
- if (modalState && !modalState.preventClose) {
179
- if (isFunction(modalState.onClose)) {
180
- modalState.onClose();
181
- } else if (isFunction(onClose) && modalState.id) {
182
- onClose(modalState.id);
183
- }
184
- }
185
- }
186
- return _object_spread_props(_object_spread({
187
- onEnter,
188
- onEntered,
189
- onExit,
190
- onExited
191
- }, transitionState), {
192
- delayEnter,
193
- getModalState
194
- });
195
- }
196
- export function withModalManager(initModal = noop) {
197
- return function(Wrapped) {
198
- return function WithModalManager(props) {
199
- const transitionManager = useModalManager(props.activeModal, props.children, props.onOpen, props.onOpened, props.onClose, props.onClosed, initModal);
200
- return /*#__PURE__*/ _jsx(Wrapped, _object_spread({}, props, transitionManager));
201
- };
202
43
  };
44
+ };
45
+ function getContextCallback(id, fn) {
46
+ return fn ? ()=>fn(id) : undefined;
203
47
  }
204
48
 
205
49
  //# sourceMappingURL=useModalManager.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { isFunction, noop } from '@vkontakte/vkjs';\nimport { getNavId } from '../../lib/getNavId';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasChildren } from '../../types';\nimport type { ModalsState, ModalsStateEntry } from './types';\n\ninterface ModalTransitionState {\n activeModal?: string | null;\n enteringModal?: string | null;\n exitingModal?: string | null;\n history?: string[];\n isBack?: boolean | null;\n}\n\nexport interface ModalTransitionProps extends ModalTransitionState {\n onEnter: VoidFunction;\n onEntered: (id: string | null) => void;\n onExit: VoidFunction;\n onExited: (id: string | null) => void;\n getModalState: (id: string | undefined | null) => ModalsStateEntry | undefined;\n delayEnter: boolean;\n}\n\nfunction getModals(children: React.ReactNode | React.ReactNode[]) {\n return React.Children.toArray(children) as React.ReactElement[];\n}\n\nconst warn = warnOnce('ModalRoot');\n\nexport function modalTransitionReducer(\n state: ModalTransitionState,\n action: {\n type: 'setActive' | 'entered' | 'exited' | 'inited';\n id: string | null;\n },\n): ModalTransitionState {\n if (action.type === 'setActive' && action.id !== state.activeModal) {\n const nextModal = action.id;\n // preserve exiting modal if switching mid-transition\n const prevModal = state.exitingModal || state.activeModal;\n let history = state.history ? [...state.history] : [];\n const isBack = Boolean(nextModal && history.includes(nextModal));\n\n if (nextModal === null) {\n history = [];\n } else if (isBack) {\n history = history.splice(0, history.indexOf(nextModal) + 1);\n } else {\n history.push(nextModal);\n }\n\n return {\n activeModal: nextModal,\n // not entering yet\n enteringModal: null,\n exitingModal: prevModal,\n history,\n isBack,\n };\n }\n if (action.type === 'entered' && action.id === state.enteringModal) {\n return { ...state, enteringModal: null };\n }\n if (action.type === 'exited' && action.id === state.exitingModal) {\n return { ...state, exitingModal: null };\n }\n if (action.type === 'inited' && action.id === state.activeModal) {\n return { ...state, enteringModal: action.id };\n }\n return state;\n}\n\n/**\n * Реализует переход модалок. При смене activeModal m1 -> m2:\n * 1. activeModal: m1, exitingModal: null, enteringModal: null, триггер перехода\n * 2. activeModal: m2, exitingModal: m1, enteringModal: null, рендерим m2 чтобы прошел init, начинаем анимацию выхода\n * одновременный переход между ModalPage:\n * 3a. activeModal: m2, exitingModal: m1, enteringModal: m2\n * 4a. exitingModal и enteringModal переходят в null в порядке завершения анимации\n * ИЛИ дожидаемся скрытия ModalCard\n * 3b. activeModal: m2, exitingModal: null, enteringModal: m2\n * 4b. enteringModal переходит в null после завершения анимации\n * 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен\n */\nexport function useModalManager(\n activeModal: string | null | undefined,\n children: React.ReactNode | React.ReactNode[],\n onOpen: (id: string) => void = noop,\n onOpened: (id: string) => void = noop,\n onClose: (id: string) => void = noop,\n onClosed: (id: string) => void = noop,\n initModal: (state: ModalsStateEntry) => void = noop,\n): ModalTransitionProps {\n const modalsState = React.useRef<ModalsState>({}).current;\n getModals(children).forEach((Modal) => {\n const modalProps = Modal.props;\n const id = getNavId(modalProps, warn);\n const state: ModalsStateEntry = (id !== undefined && modalsState[id]) || {\n id: id ?? null,\n };\n\n state.onOpen = Modal.props.onOpen;\n state.onOpened = Modal.props.onOpened;\n state.onClose = Modal.props.onClose;\n state.onClosed = Modal.props.onClosed;\n state.preventClose = Modal.props.preventClose;\n // ModalPage props\n if (typeof modalProps.settlingHeight === 'number') {\n state.settlingHeight = modalProps.settlingHeight;\n }\n\n if (state.id !== null) {\n modalsState[state.id] = state;\n }\n });\n\n const isMissing = activeModal && !modalsState[activeModal];\n const safeActiveModal = isMissing ? null : activeModal;\n const [transitionState, dispatchTransition] = React.useReducer(modalTransitionReducer, {\n activeModal: safeActiveModal,\n enteringModal: null,\n exitingModal: null,\n history: safeActiveModal ? [safeActiveModal] : [],\n isBack: false,\n });\n\n // Map props to state, render activeModal for init\n useIsomorphicLayoutEffect(() => {\n // ignore non-existent activeModal\n if (process.env.NODE_ENV === 'development' && isMissing) {\n warn(`Переход невозможен - модальное окно (страница) ${activeModal} не существует`, 'error');\n }\n dispatchTransition({ type: 'setActive', id: safeActiveModal ?? null });\n }, [activeModal]);\n\n // Init activeModal & set enteringModal\n useIsomorphicLayoutEffect(() => {\n if (transitionState.activeModal) {\n initModal(modalsState[transitionState.activeModal]);\n dispatchTransition({ type: 'inited', id: transitionState.activeModal });\n }\n }, [transitionState.activeModal]);\n\n const isCard = (id: string | null | undefined) => id != null && modalsState[id]?.type === 'card';\n const onEntered = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onOpened)) {\n modalState.onOpened();\n } else if (isFunction(onOpened)) {\n onOpened(id);\n }\n }\n\n dispatchTransition({ type: 'entered', id });\n },\n [modalsState, onOpened],\n );\n const onExited = React.useCallback(\n (id: string | null) => {\n if (id) {\n const modalState = modalsState[id];\n\n if (isFunction(modalState.onClosed)) {\n modalState.onClosed();\n } else if (isFunction(onClosed)) {\n onClosed(id);\n }\n }\n\n dispatchTransition({ type: 'exited', id });\n },\n [modalsState, onClosed],\n );\n const delayEnter = Boolean(\n transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)),\n );\n const getModalState = React.useCallback(\n (id: string | undefined | null) => (id ? modalsState[id] : undefined),\n [modalsState],\n );\n\n function onEnter() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState) {\n if (isFunction(modalState.onOpen)) {\n modalState.onOpen();\n } else if (isFunction(onOpen) && modalState.id) {\n onOpen(modalState.id);\n }\n }\n }\n\n function onExit() {\n const modalState = transitionState.activeModal && modalsState[transitionState.activeModal];\n if (modalState && !modalState.preventClose) {\n if (isFunction(modalState.onClose)) {\n modalState.onClose();\n } else if (isFunction(onClose) && modalState.id) {\n onClose(modalState.id);\n }\n }\n }\n\n return {\n onEnter,\n onEntered,\n onExit,\n onExited,\n ...transitionState,\n delayEnter,\n getModalState,\n };\n}\n\ntype WithModalManager<Props extends ModalTransitionProps> = HasChildren &\n Omit<Props, keyof ModalTransitionProps> & {\n activeModal?: string | null;\n };\n\nexport function withModalManager(initModal: (a: ModalsStateEntry) => void = noop) {\n return function <Props extends ModalTransitionProps>(\n Wrapped: React.ComponentType<Props>,\n ): React.ComponentType<WithModalManager<Props>> {\n return function WithModalManager(props) {\n const transitionManager = useModalManager(\n props.activeModal,\n props.children,\n (props as any).onOpen,\n (props as any).onOpened,\n (props as any).onClose,\n (props as any).onClosed,\n initModal,\n );\n return <Wrapped {...(props as any)} {...transitionManager} />;\n };\n };\n}\n"],"names":["React","isFunction","noop","getNavId","useIsomorphicLayoutEffect","warnOnce","getModals","children","Children","toArray","warn","modalTransitionReducer","state","action","type","id","activeModal","nextModal","prevModal","exitingModal","history","isBack","Boolean","includes","splice","indexOf","push","enteringModal","useModalManager","onOpen","onOpened","onClose","onClosed","initModal","modalsState","useRef","current","forEach","Modal","modalProps","props","undefined","preventClose","settlingHeight","isMissing","safeActiveModal","transitionState","dispatchTransition","useReducer","process","env","NODE_ENV","isCard","onEntered","useCallback","modalState","onExited","delayEnter","getModalState","onEnter","onExit","withModalManager","Wrapped","WithModalManager","transitionManager"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/useModalManager.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { AnyFunction } from '../../types';\nimport { ModalOverlay, type ModalOverlayProps } from '../ModalOverlay/ModalOverlay';\nimport { ModalRootContext } from './ModalRootContext';\nimport { VisuallyHiddenModalOverlay } from './VisuallyHiddenModalOverlay/VisuallyHiddenModalOverlay';\nimport type { ModalRootCallbackFunction } from './types';\n\nexport interface UseModalManager {\n id: string;\n open: boolean;\n keepMounted: boolean;\n modalOverlayTestId?: string;\n noFocusToDialog?: boolean;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport interface UseModalManagerResolvedProps {\n open: boolean;\n noFocusToDialog?: boolean;\n modalOverlayTestId?: string;\n ModalOverlay: React.ComponentType<ModalOverlayProps>;\n onOpen?: AnyFunction;\n onOpened?: AnyFunction;\n onClose?: AnyFunction;\n onClosed?: AnyFunction;\n}\n\nexport type UseModalManagerResult =\n | { mounted: false }\n | ({ mounted: true } & UseModalManagerResolvedProps);\n\nexport const useModalManager = ({\n id,\n open,\n keepMounted,\n modalOverlayTestId,\n noFocusToDialog,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: UseModalManager): UseModalManagerResult => {\n const context = useContext(ModalRootContext);\n const opened = context.isInsideModal ? context.activeModal === id : open;\n\n const [unmounted, setUnmounted] = useState(keepMounted ? false : !opened);\n\n useIsomorphicLayoutEffect(\n function unsetUnmounted() {\n if (!keepMounted && opened) {\n setUnmounted((prev) => (prev ? false : prev));\n }\n },\n [opened, keepMounted],\n );\n\n if (unmounted) {\n return { mounted: false };\n }\n\n return {\n mounted: true,\n open: opened,\n noFocusToDialog: noFocusToDialog || context.noFocusToDialog,\n modalOverlayTestId: modalOverlayTestId || context.modalOverlayTestId,\n ModalOverlay: context.isInsideModal ? VisuallyHiddenModalOverlay : ModalOverlay,\n onOpen: onOpen || getContextCallback(id, context.onOpen),\n onOpened: onOpened || getContextCallback(id, context.onOpened),\n onClose: onClose || getContextCallback(id, context.onClose),\n onClosed: function handleClosed(...args: any[]) {\n if (!keepMounted) {\n setUnmounted(true);\n }\n\n if (onClosed) {\n onClosed(...args);\n } else {\n context.onClosed?.(id);\n }\n },\n };\n};\n\nfunction getContextCallback(id: string, fn: ModalRootCallbackFunction | undefined) {\n return fn ? () => fn(id) : undefined;\n}\n"],"names":["useContext","useState","useIsomorphicLayoutEffect","ModalOverlay","ModalRootContext","VisuallyHiddenModalOverlay","useModalManager","id","open","keepMounted","modalOverlayTestId","noFocusToDialog","onOpen","onOpened","onClose","onClosed","context","opened","isInsideModal","activeModal","unmounted","setUnmounted","unsetUnmounted","prev","mounted","getContextCallback","handleClosed","args","fn","undefined"],"mappings":"AAAA,SAASA,UAAU,EAAEC,QAAQ,QAAQ,QAAQ;AAC7C,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,YAAY,QAAgC,kCAA+B;AACpF,SAASC,gBAAgB,QAAQ,wBAAqB;AACtD,SAASC,0BAA0B,QAAQ,6DAA0D;AA8BrG,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,kBAAkB,EAClBC,eAAe,EACfC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACQ;IAChB,MAAMC,UAAUhB,WAAWI;IAC3B,MAAMa,SAASD,QAAQE,aAAa,GAAGF,QAAQG,WAAW,KAAKZ,KAAKC;IAEpE,MAAM,CAACY,WAAWC,aAAa,GAAGpB,SAASQ,cAAc,QAAQ,CAACQ;IAElEf,0BACE,SAASoB;QACP,IAAI,CAACb,eAAeQ,QAAQ;YAC1BI,aAAa,CAACE,OAAUA,OAAO,QAAQA;QACzC;IACF,GACA;QAACN;QAAQR;KAAY;IAGvB,IAAIW,WAAW;QACb,OAAO;YAAEI,SAAS;QAAM;IAC1B;IAEA,OAAO;QACLA,SAAS;QACThB,MAAMS;QACNN,iBAAiBA,mBAAmBK,QAAQL,eAAe;QAC3DD,oBAAoBA,sBAAsBM,QAAQN,kBAAkB;QACpEP,cAAca,QAAQE,aAAa,GAAGb,6BAA6BF;QACnES,QAAQA,UAAUa,mBAAmBlB,IAAIS,QAAQJ,MAAM;QACvDC,UAAUA,YAAYY,mBAAmBlB,IAAIS,QAAQH,QAAQ;QAC7DC,SAASA,WAAWW,mBAAmBlB,IAAIS,QAAQF,OAAO;QAC1DC,UAAU,SAASW,aAAa,GAAGC,IAAW;YAC5C,IAAI,CAAClB,aAAa;gBAChBY,aAAa;YACf;YAEA,IAAIN,UAAU;gBACZA,YAAYY;YACd,OAAO;oBACLX;iBAAAA,oBAAAA,QAAQD,QAAQ,cAAhBC,wCAAAA,uBAAAA,SAAmBT;YACrB;QACF;IACF;AACF,EAAE;AAEF,SAASkB,mBAAmBlB,EAAU,EAAEqB,EAAyC;IAC/E,OAAOA,KAAK,IAAMA,GAAGrB,MAAMsB;AAC7B"}
@@ -1,3 +1,3 @@
1
- import { type ModalRootContextInterface } from './ModalRootContext';
2
- export declare const useModalRootContext: () => ModalRootContextInterface;
1
+ import type { UseModalRootContext } from './types';
2
+ export declare const useModalRootContext: () => UseModalRootContext;
3
3
  //# sourceMappingURL=useModalRootContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/useModalRootContext.tsx"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAEtF,eAAO,MAAM,mBAAmB,QAAO,yBACH,CAAC"}
1
+ {"version":3,"file":"useModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/useModalRootContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,eAAO,MAAM,mBAAmB,QAAO,mBAgBtC,CAAC"}
@@ -1,5 +1,21 @@
1
- import * as React from "react";
1
+ import { useCallback, useContext } from "react";
2
2
  import { ModalRootContext } from "./ModalRootContext.js";
3
- export const useModalRootContext = ()=>React.useContext(ModalRootContext);
3
+ export const useModalRootContext = ()=>{
4
+ const { activeModal, isInsideModal, onClose: onCloseContext, updateModalHeight, registerModal } = useContext(ModalRootContext);
5
+ const onClose = useCallback(()=>{
6
+ if (onCloseContext && activeModal !== null && activeModal !== undefined) {
7
+ onCloseContext(activeModal);
8
+ }
9
+ }, [
10
+ activeModal,
11
+ onCloseContext
12
+ ]);
13
+ return {
14
+ isInsideModal,
15
+ onClose,
16
+ updateModalHeight,
17
+ registerModal
18
+ };
19
+ };
4
20
 
5
21
  //# sourceMappingURL=useModalRootContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/useModalRootContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ModalRootContext, type ModalRootContextInterface } from './ModalRootContext';\n\nexport const useModalRootContext = (): ModalRootContextInterface =>\n React.useContext(ModalRootContext);\n"],"names":["React","ModalRootContext","useModalRootContext","useContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,QAAwC,wBAAqB;AAEtF,OAAO,MAAMC,sBAAsB,IACjCF,MAAMG,UAAU,CAACF,kBAAkB"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/useModalRootContext.ts"],"sourcesContent":["import { useCallback, useContext } from 'react';\nimport { ModalRootContext } from './ModalRootContext';\nimport type { UseModalRootContext } from './types';\n\nexport const useModalRootContext = (): UseModalRootContext => {\n const {\n activeModal,\n isInsideModal,\n onClose: onCloseContext,\n updateModalHeight,\n registerModal,\n } = useContext(ModalRootContext);\n\n const onClose = useCallback(() => {\n if (onCloseContext && activeModal !== null && activeModal !== undefined) {\n onCloseContext(activeModal);\n }\n }, [activeModal, onCloseContext]);\n\n return { isInsideModal, onClose, updateModalHeight, registerModal };\n};\n"],"names":["useCallback","useContext","ModalRootContext","useModalRootContext","activeModal","isInsideModal","onClose","onCloseContext","updateModalHeight","registerModal","undefined"],"mappings":"AAAA,SAASA,WAAW,EAAEC,UAAU,QAAQ,QAAQ;AAChD,SAASC,gBAAgB,QAAQ,wBAAqB;AAGtD,OAAO,MAAMC,sBAAsB;IACjC,MAAM,EACJC,WAAW,EACXC,aAAa,EACbC,SAASC,cAAc,EACvBC,iBAAiB,EACjBC,aAAa,EACd,GAAGR,WAAWC;IAEf,MAAMI,UAAUN,YAAY;QAC1B,IAAIO,kBAAkBH,gBAAgB,QAAQA,gBAAgBM,WAAW;YACvEH,eAAeH;QACjB;IACF,GAAG;QAACA;QAAaG;KAAe;IAEhC,OAAO;QAAEF;QAAeC;QAASE;QAAmBC;IAAc;AACpE,EAAE"}
@@ -1,6 +1,11 @@
1
+ /** TODO [>=8] Удалить HOC */
1
2
  import * as React from 'react';
2
- import type { ModalRootContextInterface } from './ModalRootContext';
3
+ import type { ModalRootContextInterface } from './types';
3
4
  type PickedProps = Pick<ModalRootContextInterface, 'updateModalHeight'>;
5
+ /**
6
+ * @deprecated HOC не актуален и будет удалён в **VKUI v8**, т.к. вызывать `updateModalHeight()`
7
+ * для модальных окон с `dynamicContentHeight` больше не требуется.
8
+ */
4
9
  export declare function withModalRootContext<P extends PickedProps>(Component: React.ComponentType<P>): React.ComponentType<Omit<P, keyof PickedProps>>;
5
10
  export {};
6
11
  //# sourceMappingURL=withModalRootContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/withModalRootContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGpE,KAAK,WAAW,GAAG,IAAI,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;AAExE,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EACxD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAChC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,CAOjD"}
1
+ {"version":3,"file":"withModalRootContext.d.ts","sourceRoot":"","sources":["../../../src/components/ModalRoot/withModalRootContext.tsx"],"names":[],"mappings":"AAEA,6BAA6B;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAEzD,KAAK,WAAW,GAAG,IAAI,CAAC,yBAAyB,EAAE,mBAAmB,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,WAAW,EACxD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAChC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,CAOjD"}
@@ -2,11 +2,14 @@
2
2
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
3
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
- import * as React from "react";
6
- import { useModalRootContext } from "./useModalRootContext.js";
7
- export function withModalRootContext(Component) {
5
+ /** TODO [>=8] Удалить HOC */ import * as React from "react";
6
+ import { ModalRootContext } from "./ModalRootContext.js";
7
+ /**
8
+ * @deprecated HOC не актуален и будет удалён в **VKUI v8**, т.к. вызывать `updateModalHeight()`
9
+ * для модальных окон с `dynamicContentHeight` больше не требуется.
10
+ */ export function withModalRootContext(Component) {
8
11
  function WithModalRootContext(props) {
9
- const { updateModalHeight } = useModalRootContext();
12
+ const { updateModalHeight } = React.useContext(ModalRootContext);
10
13
  return /*#__PURE__*/ _jsx(Component, _object_spread_props(_object_spread({}, props), {
11
14
  updateModalHeight: updateModalHeight
12
15
  }));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ModalRoot/withModalRootContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ModalRootContextInterface } from './ModalRootContext';\nimport { useModalRootContext } from './useModalRootContext';\n\ntype PickedProps = Pick<ModalRootContextInterface, 'updateModalHeight'>;\n\nexport function withModalRootContext<P extends PickedProps>(\n Component: React.ComponentType<P>,\n): React.ComponentType<Omit<P, keyof PickedProps>> {\n function WithModalRootContext(props: Omit<P, keyof PickedProps>) {\n const { updateModalHeight } = useModalRootContext();\n\n return <Component {...(props as P)} updateModalHeight={updateModalHeight} />;\n }\n return WithModalRootContext;\n}\n"],"names":["React","useModalRootContext","withModalRootContext","Component","WithModalRootContext","props","updateModalHeight"],"mappings":"AAAA;;;;AAEA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,mBAAmB,QAAQ,2BAAwB;AAI5D,OAAO,SAASC,qBACdC,SAAiC;IAEjC,SAASC,qBAAqBC,KAAiC;QAC7D,MAAM,EAAEC,iBAAiB,EAAE,GAAGL;QAE9B,qBAAO,KAACE,mDAAeE;YAAaC,mBAAmBA;;IACzD;IACA,OAAOF;AACT"}
1
+ {"version":3,"sources":["../../../src/components/ModalRoot/withModalRootContext.tsx"],"sourcesContent":["'use client';\n\n/** TODO [>=8] Удалить HOC */\nimport * as React from 'react';\nimport { ModalRootContext } from './ModalRootContext';\nimport type { ModalRootContextInterface } from './types';\n\ntype PickedProps = Pick<ModalRootContextInterface, 'updateModalHeight'>;\n\n/**\n * @deprecated HOC не актуален и будет удалён в **VKUI v8**, т.к. вызывать `updateModalHeight()`\n * для модальных окон с `dynamicContentHeight` больше не требуется.\n */\nexport function withModalRootContext<P extends PickedProps>(\n Component: React.ComponentType<P>,\n): React.ComponentType<Omit<P, keyof PickedProps>> {\n function WithModalRootContext(props: Omit<P, keyof PickedProps>) {\n const { updateModalHeight } = React.useContext(ModalRootContext);\n\n return <Component {...(props as P)} updateModalHeight={updateModalHeight} />;\n }\n return WithModalRootContext;\n}\n"],"names":["React","ModalRootContext","withModalRootContext","Component","WithModalRootContext","props","updateModalHeight","useContext"],"mappings":"AAAA;;;;AAEA,2BAA2B,GAC3B,YAAYA,WAAW,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ,wBAAqB;AAKtD;;;CAGC,GACD,OAAO,SAASC,qBACdC,SAAiC;IAEjC,SAASC,qBAAqBC,KAAiC;QAC7D,MAAM,EAAEC,iBAAiB,EAAE,GAAGN,MAAMO,UAAU,CAACN;QAE/C,qBAAO,KAACE,mDAAeE;YAAaC,mBAAmBA;;IACzD;IACA,OAAOF;AACT"}
@@ -1,3 +1,4 @@
1
+ import { type ChangeEvent } from 'react';
1
2
  import * as React from 'react';
2
3
  import type { HasAlign, HasRef, HasRootRef } from '../../types';
3
4
  import { type FormFieldProps } from '../FormField/FormField';
@@ -25,8 +26,11 @@ export interface NativeSelectProps extends Omit<React.SelectHTMLAttributes<HTMLS
25
26
  defaultValue?: SelectValue;
26
27
  /**
27
28
  * Коллбэк срабатывающий при изменении выбранного значения.
29
+ * Вторым параметром прокидывается новое значение
30
+ *
31
+ * > ⚠️ Лучше использовать второй параметр при работе с компонентом
28
32
  */
29
- onChange?: (newValue: SelectValue) => void;
33
+ onChange?: (e: ChangeEvent<HTMLSelectElement>, newValue: SelectValue) => void;
30
34
  placeholder?: string;
31
35
  multiline?: boolean;
32
36
  selectType?: SelectType;
@@ -35,11 +39,6 @@ export interface NativeSelectProps extends Omit<React.SelectHTMLAttributes<HTMLS
35
39
  */
36
40
  icon?: React.ReactNode;
37
41
  }
38
- export interface SelectState {
39
- value?: React.SelectHTMLAttributes<HTMLSelectElement>['value'];
40
- title?: string;
41
- notSelected?: boolean;
42
- }
43
42
  /**
44
43
  * @see https://vkcom.github.io/VKUI/#/NativeSelect
45
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"NativeSelect.d.ts","sourceRoot":"","sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EACtD,SAAS,CACV,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAE3D,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAAW,WAAW,KAAG,iBACV,CAAC;AAE9D,eAAO,MAAM,iCAAiC,UAAW,iBAAiB,KAAG,WAChB,CAAC;AAE9D,MAAM,WAAW,iBACf,SAAQ,IAAI,CACR,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CACnD,EACD,MAAM,CAAC,iBAAiB,CAAC,EACzB,UAAU,CAAC,cAAc,CAAC,EAC1B,QAAQ,EACR,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3C;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,QAAA,MAAM,YAAY,+KAkBf,iBAAiB,KAAG,KAAK,CAAC,SAiE5B,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"NativeSelect.d.ts","sourceRoot":"","sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,EACtD,SAAS,CACV,GAAG,IAAI,CAAC;AAET,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAE3D,eAAO,MAAM,YAAY;;;CAGxB,CAAC;AAEF,eAAO,MAAM,iCAAiC,UAAW,WAAW,KAAG,iBACV,CAAC;AAE9D,eAAO,MAAM,iCAAiC,UAAW,iBAAiB,KAAG,WAChB,CAAC;AAE9D,MAAM,WAAW,iBACf,SAAQ,IAAI,CACR,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,UAAU,CACnD,EACD,MAAM,CAAC,iBAAiB,CAAC,EACzB,UAAU,CAAC,cAAc,CAAC,EAC1B,QAAQ,EACR,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC3C;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED;;GAEG;AACH,QAAA,MAAM,YAAY,+KAkBf,iBAAiB,KAAG,KAAK,CAAC,SAuE5B,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -58,7 +58,13 @@ export const remapFromNativeValueToSelectValue = (value)=>value === NOT_SELECTED
58
58
  };
59
59
  const _onChange = (e)=>{
60
60
  const newValue = remapFromNativeValueToSelectValue(e.target.value);
61
- onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
61
+ if (e.target.value === NOT_SELECTED.NATIVE) {
62
+ e.target.value = '';
63
+ }
64
+ if (e.currentTarget.value === NOT_SELECTED.NATIVE) {
65
+ e.currentTarget.value = '';
66
+ }
67
+ onChange === null || onChange === void 0 ? void 0 : onChange(e, newValue);
62
68
  };
63
69
  useIsomorphicLayoutEffect(checkSelectedOption, [
64
70
  children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEventHandler } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport type SelectValue = Exclude<\n React.SelectHTMLAttributes<HTMLSelectElement>['value'],\n undefined\n> | null;\n\nexport type NativeSelectValue = Exclude<SelectValue, null>;\n\nexport const NOT_SELECTED = {\n NATIVE: '__vkui_internal_Select_not_selected__',\n CUSTOM: null,\n};\n\nexport const remapFromSelectValueToNativeValue = (value: SelectValue): NativeSelectValue =>\n value === NOT_SELECTED.CUSTOM ? NOT_SELECTED.NATIVE : value;\n\nexport const remapFromNativeValueToSelectValue = (value: NativeSelectValue): SelectValue =>\n value === NOT_SELECTED.NATIVE ? NOT_SELECTED.CUSTOM : value;\n\nexport interface NativeSelectProps\n extends Omit<\n React.SelectHTMLAttributes<HTMLSelectElement>,\n 'multiple' | 'value' | 'defaultValue' | 'onChange'\n >,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Pick<FormFieldProps, 'before' | 'status'> {\n /**\n * Выбранное значение.\n *\n * > ⚠️ Важно: При прокидывании `undefined` компонент будет считаться `Uncontrolled`.\n * >\n * > Не используйте `undefined`, чтобы показать невыбранное состояние. Вместо этого используйте `null`\n */\n value?: SelectValue;\n /**\n * см. `value`\n */\n defaultValue?: SelectValue;\n /**\n * Коллбэк срабатывающий при изменении выбранного значения.\n */\n onChange?: (newValue: SelectValue) => void;\n placeholder?: string;\n multiline?: boolean;\n selectType?: SelectType;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n}\n\nexport interface SelectState {\n value?: React.SelectHTMLAttributes<HTMLSelectElement>['value'];\n title?: string;\n notSelected?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nconst NativeSelect = ({\n style,\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n multiline,\n selectType = 'default',\n status,\n icon = <DropdownIcon />,\n before,\n onChange,\n value,\n defaultValue,\n ...restProps\n}: NativeSelectProps): React.ReactNode => {\n const [title, setTitle] = React.useState('');\n const [empty, setEmpty] = React.useState(false);\n const selectRef = useExternRef(getRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const checkSelectedOption = () => {\n const selectedOption = selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === NOT_SELECTED.NATIVE && placeholder != null);\n }\n };\n\n const _onChange: ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newValue = remapFromNativeValueToSelectValue(e.target.value);\n onChange?.(newValue);\n };\n useIsomorphicLayoutEffect(checkSelectedOption, [children]);\n\n return (\n <FormField\n Component=\"div\"\n className={classNames(\n styles.host,\n 'vkuiInternalNativeSelect',\n before && styles.hasBefore,\n empty && styles.empty,\n multiline && styles.multiline,\n align === 'center' && styles.alignCenter,\n align === 'right' && styles.alignRight,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n before={before}\n after={icon}\n status={status}\n mode={getFormFieldModeFromSelectType(selectType)}\n >\n <select\n {...restProps}\n value={value !== undefined ? remapFromSelectValueToNativeValue(value) : value}\n defaultValue={\n defaultValue !== undefined\n ? remapFromSelectValueToNativeValue(defaultValue)\n : defaultValue\n }\n disabled={disabled}\n className={styles.el}\n onChange={callMultiple(_onChange, checkSelectedOption)}\n ref={selectRef}\n >\n {placeholder && <option value={NOT_SELECTED.NATIVE}>{placeholder}</option>}\n {children}\n </select>\n <div className={styles.container} aria-hidden>\n <SelectTypography className={styles.title} selectType={selectType}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\nexport { NativeSelect };\n"],"names":["React","classNames","useAdaptivity","useExternRef","callMultiple","getFormFieldModeFromSelectType","useIsomorphicLayoutEffect","DropdownIcon","FormField","SelectTypography","sizeYClassNames","none","compact","NOT_SELECTED","NATIVE","CUSTOM","remapFromSelectValueToNativeValue","value","remapFromNativeValueToSelectValue","NativeSelect","style","align","placeholder","children","className","getRef","getRootRef","disabled","multiline","selectType","status","icon","before","onChange","defaultValue","restProps","title","setTitle","useState","empty","setEmpty","selectRef","sizeY","checkSelectedOption","selectedOption","current","options","selectedIndex","text","_onChange","e","newValue","target","Component","after","mode","select","undefined","ref","option","div","aria-hidden"],"mappings":"AAAA;;;;;AAGA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,YAAY,QAAQ,4BAAyB;AACtD,SAASC,8BAA8B,QAAQ,sBAAmB;AAClE,SAASC,yBAAyB,QAAQ,yCAAsC;AAEhF,SAASC,YAAY,QAAQ,kCAA+B;AAC5D,SAASC,SAAS,QAA6B,4BAAyB;AAExE,SAASC,gBAAgB,QAAQ,0CAAuC;AAGxE,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AASA,OAAO,MAAMC,eAAe;IAC1BC,QAAQ;IACRC,QAAQ;AACV,EAAE;AAEF,OAAO,MAAMC,oCAAoC,CAACC,QAChDA,UAAUJ,aAAaE,MAAM,GAAGF,aAAaC,MAAM,GAAGG,MAAM;AAE9D,OAAO,MAAMC,oCAAoC,CAACD,QAChDA,UAAUJ,aAAaC,MAAM,GAAGD,aAAaE,MAAM,GAAGE,MAAM;AA0C9D;;CAEC,GACD,MAAME,eAAe;QAAC,EACpBC,KAAK,EACLC,KAAK,EACLC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,UAAU,EACVC,QAAQ,EACRC,SAAS,EACTC,aAAa,SAAS,EACtBC,MAAM,EACNC,qBAAO,KAACxB,iBAAe,EACvByB,MAAM,EACNC,QAAQ,EACRhB,KAAK,EACLiB,YAAY,EAEM,WADfC;QAhBHf;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAhB;QACAiB;;IAGA,MAAM,CAACE,OAAOC,SAAS,GAAGrC,MAAMsC,QAAQ,CAAC;IACzC,MAAM,CAACC,OAAOC,SAAS,GAAGxC,MAAMsC,QAAQ,CAAC;IACzC,MAAMG,YAAYtC,aAAasB;IAC/B,MAAM,EAAEiB,QAAQ,MAAM,EAAE,GAAGxC;IAE3B,MAAMyC,sBAAsB;YACHF;QAAvB,MAAMG,kBAAiBH,qBAAAA,UAAUI,OAAO,cAAjBJ,yCAAAA,mBAAmBK,OAAO,CAACL,UAAUI,OAAO,CAACE,aAAa,CAAC;QAClF,IAAIH,gBAAgB;YAClBP,SAASO,eAAeI,IAAI;YAC5BR,SAASI,eAAe3B,KAAK,KAAKJ,aAAaC,MAAM,IAAIQ,eAAe;QAC1E;IACF;IAEA,MAAM2B,YAAmD,CAACC;QACxD,MAAMC,WAAWjC,kCAAkCgC,EAAEE,MAAM,CAACnC,KAAK;QACjEgB,qBAAAA,+BAAAA,SAAWkB;IACb;IACA7C,0BAA0BqC,qBAAqB;QAACpB;KAAS;IAEzD,qBACE,MAACf;QACC6C,WAAU;QACV7B,WAAWvB,+BAET,4BACA+B,mCACAO,8BACAX,sCACAP,UAAU,uCACVA,UAAU,qCACVqB,UAAU,aAAahC,eAAe,CAACgC,MAAM,EAC7ClB;QAEFJ,OAAOA;QACPM,YAAYA;QACZC,UAAUA;QACVK,QAAQA;QACRsB,OAAOvB;QACPD,QAAQA;QACRyB,MAAMlD,+BAA+BwB;;0BAErC,MAAC2B,kDACKrB;gBACJlB,OAAOA,UAAUwC,YAAYzC,kCAAkCC,SAASA;gBACxEiB,cACEA,iBAAiBuB,YACbzC,kCAAkCkB,gBAClCA;gBAENP,UAAUA;gBACVH,SAAS;gBACTS,UAAU7B,aAAa6C,WAAWN;gBAClCe,KAAKjB;;oBAEJnB,6BAAe,KAACqC;wBAAO1C,OAAOJ,aAAaC,MAAM;kCAAGQ;;oBACpDC;;;0BAEH,KAACqC;gBAAIpC,SAAS;gBAAoBqC,aAAW;0BAC3C,cAAA,KAACpD;oBAAiBe,SAAS;oBAAgBK,YAAYA;8BACpDO;;;;;AAKX;AAEA,SAASjB,YAAY,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/NativeSelect/NativeSelect.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent, type ChangeEventHandler } from 'react';\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { getFormFieldModeFromSelectType } from '../../lib/select';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport type { HasAlign, HasRef, HasRootRef } from '../../types';\nimport { DropdownIcon } from '../DropdownIcon/DropdownIcon';\nimport { FormField, type FormFieldProps } from '../FormField/FormField';\nimport type { SelectType } from '../Select/Select';\nimport { SelectTypography } from '../SelectTypography/SelectTypography';\nimport styles from '../Select/Select.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n};\n\nexport type SelectValue = Exclude<\n React.SelectHTMLAttributes<HTMLSelectElement>['value'],\n undefined\n> | null;\n\nexport type NativeSelectValue = Exclude<SelectValue, null>;\n\nexport const NOT_SELECTED = {\n NATIVE: '__vkui_internal_Select_not_selected__',\n CUSTOM: null,\n};\n\nexport const remapFromSelectValueToNativeValue = (value: SelectValue): NativeSelectValue =>\n value === NOT_SELECTED.CUSTOM ? NOT_SELECTED.NATIVE : value;\n\nexport const remapFromNativeValueToSelectValue = (value: NativeSelectValue): SelectValue =>\n value === NOT_SELECTED.NATIVE ? NOT_SELECTED.CUSTOM : value;\n\nexport interface NativeSelectProps\n extends Omit<\n React.SelectHTMLAttributes<HTMLSelectElement>,\n 'multiple' | 'value' | 'defaultValue' | 'onChange'\n >,\n HasRef<HTMLSelectElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n Pick<FormFieldProps, 'before' | 'status'> {\n /**\n * Выбранное значение.\n *\n * > ⚠️ Важно: При прокидывании `undefined` компонент будет считаться `Uncontrolled`.\n * >\n * > Не используйте `undefined`, чтобы показать невыбранное состояние. Вместо этого используйте `null`\n */\n value?: SelectValue;\n /**\n * см. `value`\n */\n defaultValue?: SelectValue;\n /**\n * Коллбэк срабатывающий при изменении выбранного значения.\n * Вторым параметром прокидывается новое значение\n *\n * > ⚠️ Лучше использовать второй параметр при работе с компонентом\n */\n onChange?: (e: ChangeEvent<HTMLSelectElement>, newValue: SelectValue) => void;\n placeholder?: string;\n multiline?: boolean;\n selectType?: SelectType;\n /**\n * Иконка раскрывающегося списка\n */\n icon?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/NativeSelect\n */\nconst NativeSelect = ({\n style,\n align,\n placeholder,\n children,\n className,\n getRef,\n getRootRef,\n disabled,\n multiline,\n selectType = 'default',\n status,\n icon = <DropdownIcon />,\n before,\n onChange,\n value,\n defaultValue,\n ...restProps\n}: NativeSelectProps): React.ReactNode => {\n const [title, setTitle] = React.useState('');\n const [empty, setEmpty] = React.useState(false);\n const selectRef = useExternRef(getRef);\n const { sizeY = 'none' } = useAdaptivity();\n\n const checkSelectedOption = () => {\n const selectedOption = selectRef.current?.options[selectRef.current.selectedIndex];\n if (selectedOption) {\n setTitle(selectedOption.text);\n setEmpty(selectedOption.value === NOT_SELECTED.NATIVE && placeholder != null);\n }\n };\n\n const _onChange: ChangeEventHandler<HTMLSelectElement> = (e) => {\n const newValue = remapFromNativeValueToSelectValue(e.target.value);\n if (e.target.value === NOT_SELECTED.NATIVE) {\n e.target.value = '';\n }\n if (e.currentTarget.value === NOT_SELECTED.NATIVE) {\n e.currentTarget.value = '';\n }\n onChange?.(e, newValue);\n };\n useIsomorphicLayoutEffect(checkSelectedOption, [children]);\n\n return (\n <FormField\n Component=\"div\"\n className={classNames(\n styles.host,\n 'vkuiInternalNativeSelect',\n before && styles.hasBefore,\n empty && styles.empty,\n multiline && styles.multiline,\n align === 'center' && styles.alignCenter,\n align === 'right' && styles.alignRight,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n className,\n )}\n style={style}\n getRootRef={getRootRef}\n disabled={disabled}\n before={before}\n after={icon}\n status={status}\n mode={getFormFieldModeFromSelectType(selectType)}\n >\n <select\n {...restProps}\n value={value !== undefined ? remapFromSelectValueToNativeValue(value) : value}\n defaultValue={\n defaultValue !== undefined\n ? remapFromSelectValueToNativeValue(defaultValue)\n : defaultValue\n }\n disabled={disabled}\n className={styles.el}\n onChange={callMultiple(_onChange, checkSelectedOption)}\n ref={selectRef}\n >\n {placeholder && <option value={NOT_SELECTED.NATIVE}>{placeholder}</option>}\n {children}\n </select>\n <div className={styles.container} aria-hidden>\n <SelectTypography className={styles.title} selectType={selectType}>\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\nexport { NativeSelect };\n"],"names":["React","classNames","useAdaptivity","useExternRef","callMultiple","getFormFieldModeFromSelectType","useIsomorphicLayoutEffect","DropdownIcon","FormField","SelectTypography","sizeYClassNames","none","compact","NOT_SELECTED","NATIVE","CUSTOM","remapFromSelectValueToNativeValue","value","remapFromNativeValueToSelectValue","NativeSelect","style","align","placeholder","children","className","getRef","getRootRef","disabled","multiline","selectType","status","icon","before","onChange","defaultValue","restProps","title","setTitle","useState","empty","setEmpty","selectRef","sizeY","checkSelectedOption","selectedOption","current","options","selectedIndex","text","_onChange","e","newValue","target","currentTarget","Component","after","mode","select","undefined","ref","option","div","aria-hidden"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavTransitionContext.d.ts","sourceRoot":"","sources":["../../../src/components/NavTransitionContext/NavTransitionContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,eAAO,MAAM,gBAAgB,QAAO,sBAA6D,CAAC;AAElG,eAAO,MAAM,qBAAqB,4BAG/B,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,KAAG,KAAK,CAAC,SAM1D,CAAC"}
1
+ {"version":3,"file":"NavTransitionContext.d.ts","sourceRoot":"","sources":["../../../src/components/NavTransitionContext/NavTransitionContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,eAAO,MAAM,gBAAgB,QAAO,sBAA6D,CAAC;AAElG,eAAO,MAAM,qBAAqB,4BAG/B,KAAK,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,KAAG,KAAK,CAAC,SAU1D,CAAC"}
@@ -1,16 +1,18 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
- import { useObjectMemo } from "../../hooks/useObjectMemo.js";
5
4
  const TransitionContext = /*#__PURE__*/ React.createContext({
6
5
  entering: false
7
6
  });
8
7
  export const useNavTransition = ()=>React.useContext(TransitionContext);
9
8
  export const NavTransitionProvider = ({ children, entering })=>{
10
9
  const parentContext = useNavTransition();
11
- const contextValue = useObjectMemo({
12
- entering: parentContext.entering || entering
13
- });
10
+ const contextValue = React.useMemo(()=>({
11
+ entering: parentContext.entering || entering
12
+ }), [
13
+ entering,
14
+ parentContext.entering
15
+ ]);
14
16
  return /*#__PURE__*/ _jsx(TransitionContext.Provider, {
15
17
  value: contextValue,
16
18
  children: children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/NavTransitionContext/NavTransitionContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\n\nexport interface TransitionContextProps {\n entering: boolean;\n}\nconst TransitionContext = React.createContext<TransitionContextProps>({\n entering: false,\n});\nexport const useNavTransition = (): TransitionContextProps => React.useContext(TransitionContext);\n\nexport const NavTransitionProvider = ({\n children,\n entering,\n}: React.PropsWithChildren<TransitionContextProps>): React.ReactNode => {\n const parentContext = useNavTransition();\n const contextValue = useObjectMemo({\n entering: parentContext.entering || entering,\n });\n return <TransitionContext.Provider value={contextValue}>{children}</TransitionContext.Provider>;\n};\n"],"names":["React","useObjectMemo","TransitionContext","createContext","entering","useNavTransition","useContext","NavTransitionProvider","children","parentContext","contextValue","Provider","value"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,aAAa,QAAQ,+BAA4B;AAK1D,MAAMC,kCAAoBF,MAAMG,aAAa,CAAyB;IACpEC,UAAU;AACZ;AACA,OAAO,MAAMC,mBAAmB,IAA8BL,MAAMM,UAAU,CAACJ,mBAAmB;AAElG,OAAO,MAAMK,wBAAwB,CAAC,EACpCC,QAAQ,EACRJ,QAAQ,EACwC;IAChD,MAAMK,gBAAgBJ;IACtB,MAAMK,eAAeT,cAAc;QACjCG,UAAUK,cAAcL,QAAQ,IAAIA;IACtC;IACA,qBAAO,KAACF,kBAAkBS,QAAQ;QAACC,OAAOF;kBAAeF;;AAC3D,EAAE"}
1
+ {"version":3,"sources":["../../../src/components/NavTransitionContext/NavTransitionContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nexport interface TransitionContextProps {\n entering: boolean;\n}\nconst TransitionContext = React.createContext<TransitionContextProps>({\n entering: false,\n});\nexport const useNavTransition = (): TransitionContextProps => React.useContext(TransitionContext);\n\nexport const NavTransitionProvider = ({\n children,\n entering,\n}: React.PropsWithChildren<TransitionContextProps>): React.ReactNode => {\n const parentContext = useNavTransition();\n const contextValue = React.useMemo(\n () => ({\n entering: parentContext.entering || entering,\n }),\n [entering, parentContext.entering],\n );\n\n return <TransitionContext.Provider value={contextValue}>{children}</TransitionContext.Provider>;\n};\n"],"names":["React","TransitionContext","createContext","entering","useNavTransition","useContext","NavTransitionProvider","children","parentContext","contextValue","useMemo","Provider","value"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAK/B,MAAMC,kCAAoBD,MAAME,aAAa,CAAyB;IACpEC,UAAU;AACZ;AACA,OAAO,MAAMC,mBAAmB,IAA8BJ,MAAMK,UAAU,CAACJ,mBAAmB;AAElG,OAAO,MAAMK,wBAAwB,CAAC,EACpCC,QAAQ,EACRJ,QAAQ,EACwC;IAChD,MAAMK,gBAAgBJ;IACtB,MAAMK,eAAeT,MAAMU,OAAO,CAChC,IAAO,CAAA;YACLP,UAAUK,cAAcL,QAAQ,IAAIA;QACtC,CAAA,GACA;QAACA;QAAUK,cAAcL,QAAQ;KAAC;IAGpC,qBAAO,KAACF,kBAAkBU,QAAQ;QAACC,OAAOH;kBAAeF;;AAC3D,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AA2BrB,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;CACvF;AA8CD;;GAEG;AACH,eAAO,MAAM,WAAW,iIAarB,gBAAgB,KAAG,KAAK,CAAC,SA2D3B,CAAC"}
1
+ {"version":3,"file":"PanelHeader.d.ts","sourceRoot":"","sources":["../../../src/components/PanelHeader/PanelHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,MAAM,EACN,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AA0BrB,MAAM,WAAW,gBACf,SAAQ,yBAAyB,CAAC,cAAc,CAAC,EAC/C,MAAM,CAAC,cAAc,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACtD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,gBAAgB,CAAC;CACvF;AA8CD;;GAEG;AACH,eAAO,MAAM,WAAW,iIAarB,gBAAgB,KAAG,KAAK,CAAC,SA2D3B,CAAC"}
@@ -5,12 +5,12 @@ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_
5
5
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
6
6
  import * as React from "react";
7
7
  import { classNames } from "@vkontakte/vkjs";
8
+ import { useModalContext } from "../../context/ModalContext.js";
8
9
  import { useAdaptivity } from "../../hooks/useAdaptivity.js";
9
10
  import { useAdaptivityConditionalRender } from "../../hooks/useAdaptivityConditionalRender/index.js";
10
11
  import { usePlatform } from "../../hooks/usePlatform.js";
11
12
  import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
12
13
  import { FixedLayout } from "../FixedLayout/FixedLayout.js";
13
- import { ModalRootContext } from "../ModalRoot/ModalRootContext.js";
14
14
  import { OnboardingTooltipContainer } from "../OnboardingTooltip/OnboardingTooltipContainer.js";
15
15
  import { RootComponent } from "../RootComponent/RootComponent.js";
16
16
  import { Separator } from "../Separator/Separator.js";
@@ -34,7 +34,7 @@ const PanelHeaderIn = ({ before, after, children, typographyProps = {} })=>{
34
34
  "Component"
35
35
  ]);
36
36
  const { hasCustomPanelHeaderAfter, customPanelHeaderAfterMinWidth } = useConfigProvider();
37
- const { isInsideModal } = React.useContext(ModalRootContext);
37
+ const isInsideModal = useModalContext().id !== null;
38
38
  const platform = usePlatform();
39
39
  const afterSlotProps = !hasCustomPanelHeaderAfter || isInsideModal ? {
40
40
  children: after