@vkontakte/vkui 4.15.0 → 4.16.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 (349) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +391 -282
  4. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -0
  5. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  6. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +2 -2
  7. package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +4 -9
  8. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -2
  9. package/.cache/ts/src/components/Root/Root.d.ts +5 -27
  10. package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  11. package/.cache/ts/src/components/Tappable/Tappable.d.ts +12 -9
  12. package/.cache/ts/src/components/Touch/Touch.d.ts +1 -2
  13. package/.cache/ts/src/components/UsersStack/masks.d.ts +1 -1
  14. package/.cache/ts/src/hooks/useEventListener.d.ts +2 -2
  15. package/.cache/ts/src/hooks/useKeyboard.d.ts +11 -0
  16. package/.cache/ts/src/index.d.ts +1 -1
  17. package/.cache/ts/src/lib/select.d.ts +7 -0
  18. package/.cache/ts/src/lib/touch.d.ts +1 -1
  19. package/.cache/ts/src/lib/utils.d.ts +2 -3
  20. package/.cache/ts/src/types.d.ts +2 -6
  21. package/.cache/ts/src/unstable/index.d.ts +2 -0
  22. package/babel.cjs.config.js +7 -1
  23. package/babel.config.js +7 -1
  24. package/dist/cjs/components/AppRoot/AppRoot.d.ts +1 -0
  25. package/dist/cjs/components/AppRoot/AppRoot.js +29 -1
  26. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  27. package/dist/cjs/components/Banner/Banner.js +1 -1
  28. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  29. package/dist/cjs/components/Cell/Cell.js +3 -3
  30. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  31. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  32. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -6
  33. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  34. package/dist/cjs/components/ChipsSelect/useChipsSelect.js +2 -2
  35. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +1 -1
  36. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +2 -2
  37. package/dist/cjs/components/CustomSelect/CustomSelect.js +3 -3
  38. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  39. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +4 -9
  40. package/dist/cjs/components/FixedLayout/FixedLayout.js +91 -179
  41. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  42. package/dist/cjs/components/Gallery/Gallery.js +2 -2
  43. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  44. package/dist/cjs/components/Header/Header.js +1 -1
  45. package/dist/cjs/components/Header/Header.js.map +1 -1
  46. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +6 -1
  47. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  48. package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -2
  49. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  50. package/dist/cjs/components/ModalRoot/ModalRoot.js +2 -2
  51. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  52. package/dist/cjs/components/Panel/Panel.js +2 -2
  53. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  54. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  55. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  56. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -2
  57. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  58. package/dist/cjs/components/RangeSlider/UniversalSlider.js +2 -2
  59. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  60. package/dist/cjs/components/Root/Root.d.ts +5 -27
  61. package/dist/cjs/components/Root/Root.js +158 -214
  62. package/dist/cjs/components/Root/Root.js.map +1 -1
  63. package/dist/cjs/components/Search/Search.js +3 -3
  64. package/dist/cjs/components/Search/Search.js.map +1 -1
  65. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  66. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  67. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +126 -0
  68. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  69. package/dist/cjs/components/Snackbar/Snackbar.js +2 -2
  70. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  71. package/dist/cjs/components/Tappable/Tappable.d.ts +12 -9
  72. package/dist/cjs/components/Tappable/Tappable.js +47 -36
  73. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  74. package/dist/cjs/components/Touch/Touch.d.ts +1 -2
  75. package/dist/cjs/components/Touch/Touch.js +172 -283
  76. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  77. package/dist/cjs/components/UsersStack/UsersStack.js +9 -18
  78. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  79. package/dist/cjs/components/UsersStack/masks.d.ts +1 -1
  80. package/dist/cjs/components/UsersStack/masks.js +5 -8
  81. package/dist/cjs/components/UsersStack/masks.js.map +1 -1
  82. package/dist/cjs/components/View/View.js +2 -2
  83. package/dist/cjs/components/View/View.js.map +1 -1
  84. package/dist/cjs/components/View/ViewInfinite.js +2 -2
  85. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  86. package/dist/cjs/hooks/useEventListener.d.ts +2 -2
  87. package/dist/cjs/hooks/useEventListener.js +9 -4
  88. package/dist/cjs/hooks/useEventListener.js.map +1 -1
  89. package/dist/cjs/hooks/useGlobalEventListener.js +2 -4
  90. package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
  91. package/dist/cjs/hooks/useInsets.js +3 -10
  92. package/dist/cjs/hooks/useInsets.js.map +1 -1
  93. package/dist/cjs/hooks/useKeyboard.d.ts +11 -0
  94. package/dist/cjs/hooks/useKeyboard.js +78 -0
  95. package/dist/cjs/hooks/useKeyboard.js.map +1 -0
  96. package/dist/cjs/hooks/useKeyboardInputTracker.js +4 -2
  97. package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
  98. package/dist/cjs/index.d.ts +1 -1
  99. package/dist/cjs/index.js +2 -2
  100. package/dist/cjs/index.js.map +1 -1
  101. package/dist/cjs/lib/select.d.ts +7 -0
  102. package/dist/cjs/lib/select.js +73 -0
  103. package/dist/cjs/lib/select.js.map +1 -0
  104. package/dist/cjs/lib/touch.d.ts +1 -1
  105. package/dist/cjs/lib/touch.js +6 -2
  106. package/dist/cjs/lib/touch.js.map +1 -1
  107. package/dist/cjs/lib/utils.d.ts +2 -3
  108. package/dist/cjs/lib/utils.js.map +1 -1
  109. package/dist/cjs/types.d.ts +2 -6
  110. package/dist/cjs/unstable/index.d.ts +2 -0
  111. package/dist/cjs/unstable/index.js +8 -0
  112. package/dist/cjs/unstable/index.js.map +1 -1
  113. package/dist/components/AppRoot/AppRoot.d.ts +1 -0
  114. package/dist/components/AppRoot/AppRoot.js +29 -5
  115. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  116. package/dist/components/Banner/Banner.js +1 -1
  117. package/dist/components/Banner/Banner.js.map +1 -1
  118. package/dist/components/Cell/Cell.js +1 -1
  119. package/dist/components/Cell/Cell.js.map +1 -1
  120. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  121. package/dist/components/ChipsSelect/ChipsSelect.js +4 -6
  122. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  123. package/dist/components/ChipsSelect/useChipsSelect.js +2 -2
  124. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  125. package/dist/components/CustomSelect/CustomSelect.d.ts +2 -2
  126. package/dist/components/CustomSelect/CustomSelect.js +2 -3
  127. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  128. package/dist/components/FixedLayout/FixedLayout.d.ts +4 -9
  129. package/dist/components/FixedLayout/FixedLayout.js +84 -175
  130. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  131. package/dist/components/Gallery/Gallery.js +1 -1
  132. package/dist/components/Gallery/Gallery.js.map +1 -1
  133. package/dist/components/Header/Header.js +1 -1
  134. package/dist/components/Header/Header.js.map +1 -1
  135. package/dist/components/ModalCardBase/ModalCardBase.js +5 -1
  136. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  137. package/dist/components/ModalPage/ModalPage.d.ts +1 -2
  138. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  139. package/dist/components/ModalRoot/ModalRoot.js +1 -1
  140. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  141. package/dist/components/Panel/Panel.js +1 -1
  142. package/dist/components/Panel/Panel.js.map +1 -1
  143. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  144. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  145. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  146. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  147. package/dist/components/RangeSlider/UniversalSlider.js +1 -1
  148. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  149. package/dist/components/Root/Root.d.ts +5 -27
  150. package/dist/components/Root/Root.js +152 -207
  151. package/dist/components/Root/Root.js.map +1 -1
  152. package/dist/components/Search/Search.js +1 -1
  153. package/dist/components/Search/Search.js.map +1 -1
  154. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  155. package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +9 -0
  156. package/dist/components/SimpleCheckbox/SimpleCheckbox.js +97 -0
  157. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  158. package/dist/components/Snackbar/Snackbar.js +1 -1
  159. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  160. package/dist/components/Tappable/Tappable.d.ts +12 -9
  161. package/dist/components/Tappable/Tappable.js +45 -37
  162. package/dist/components/Tappable/Tappable.js.map +1 -1
  163. package/dist/components/Touch/Touch.d.ts +1 -2
  164. package/dist/components/Touch/Touch.js +163 -286
  165. package/dist/components/Touch/Touch.js.map +1 -1
  166. package/dist/components/UsersStack/UsersStack.js +7 -16
  167. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  168. package/dist/components/UsersStack/masks.d.ts +1 -1
  169. package/dist/components/UsersStack/masks.js +6 -9
  170. package/dist/components/UsersStack/masks.js.map +1 -1
  171. package/dist/components/View/View.js +1 -1
  172. package/dist/components/View/View.js.map +1 -1
  173. package/dist/components/View/ViewInfinite.js +1 -1
  174. package/dist/components/View/ViewInfinite.js.map +1 -1
  175. package/dist/components.css +1 -1
  176. package/dist/components.css.map +1 -1
  177. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  178. package/dist/cssm/components/AppRoot/AppRoot.css +1 -0
  179. package/dist/cssm/components/AppRoot/AppRoot.js +30 -2
  180. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  181. package/dist/cssm/components/Banner/Banner.css +1 -1
  182. package/dist/cssm/components/Banner/Banner.js +1 -1
  183. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  184. package/dist/cssm/components/Cell/Cell.js +1 -1
  185. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  186. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +4 -6
  187. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  188. package/dist/cssm/components/ChipsSelect/useChipsSelect.js +2 -2
  189. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  190. package/dist/cssm/components/CustomSelect/CustomSelect.js +2 -3
  191. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  192. package/dist/cssm/components/FixedLayout/FixedLayout.js +84 -175
  193. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  194. package/dist/cssm/components/Gallery/Gallery.js +1 -1
  195. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  196. package/dist/cssm/components/Header/Header.js +1 -1
  197. package/dist/cssm/components/Header/Header.js.map +1 -1
  198. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +1 -1
  199. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +5 -1
  200. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  201. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  202. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  203. package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -1
  204. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  205. package/dist/cssm/components/Panel/Panel.js +1 -1
  206. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  207. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  208. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +0 -1
  209. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  210. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  211. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  212. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -1
  213. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  214. package/dist/cssm/components/Root/Root.js +152 -207
  215. package/dist/cssm/components/Root/Root.js.map +1 -1
  216. package/dist/cssm/components/Search/Search.js +1 -1
  217. package/dist/cssm/components/Search/Search.js.map +1 -1
  218. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  219. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -0
  220. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +98 -0
  221. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -0
  222. package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
  223. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  224. package/dist/cssm/components/Tappable/Tappable.js +45 -37
  225. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  226. package/dist/cssm/components/Touch/Touch.js +163 -286
  227. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  228. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  229. package/dist/cssm/components/UsersStack/UsersStack.js +7 -16
  230. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  231. package/dist/cssm/components/UsersStack/masks.js +6 -9
  232. package/dist/cssm/components/UsersStack/masks.js.map +1 -1
  233. package/dist/cssm/components/View/View.js +1 -1
  234. package/dist/cssm/components/View/View.js.map +1 -1
  235. package/dist/cssm/components/View/ViewInfinite.js +1 -1
  236. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  237. package/dist/cssm/hooks/useEventListener.js +8 -4
  238. package/dist/cssm/hooks/useEventListener.js.map +1 -1
  239. package/dist/cssm/hooks/useGlobalEventListener.js +2 -2
  240. package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
  241. package/dist/cssm/hooks/useInsets.js +2 -10
  242. package/dist/cssm/hooks/useInsets.js.map +1 -1
  243. package/dist/cssm/hooks/useKeyboard.js +62 -0
  244. package/dist/cssm/hooks/useKeyboard.js.map +1 -0
  245. package/dist/cssm/hooks/useKeyboardInputTracker.js +4 -2
  246. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  247. package/dist/cssm/index.js +1 -1
  248. package/dist/cssm/index.js.map +1 -1
  249. package/dist/cssm/lib/select.js +62 -0
  250. package/dist/cssm/lib/select.js.map +1 -0
  251. package/dist/cssm/lib/touch.js +5 -2
  252. package/dist/cssm/lib/touch.js.map +1 -1
  253. package/dist/cssm/lib/utils.js.map +1 -1
  254. package/dist/cssm/styles/animations.css +1 -1
  255. package/dist/cssm/styles/common.css +1 -1
  256. package/dist/cssm/styles/components.css +1 -1
  257. package/dist/cssm/styles/constants.css +1 -1
  258. package/dist/cssm/styles/unstable.css +1 -1
  259. package/dist/cssm/unstable/index.js +1 -0
  260. package/dist/cssm/unstable/index.js.map +1 -1
  261. package/dist/hooks/useEventListener.d.ts +2 -2
  262. package/dist/hooks/useEventListener.js +8 -4
  263. package/dist/hooks/useEventListener.js.map +1 -1
  264. package/dist/hooks/useGlobalEventListener.js +2 -2
  265. package/dist/hooks/useGlobalEventListener.js.map +1 -1
  266. package/dist/hooks/useInsets.js +2 -10
  267. package/dist/hooks/useInsets.js.map +1 -1
  268. package/dist/hooks/useKeyboard.d.ts +11 -0
  269. package/dist/hooks/useKeyboard.js +62 -0
  270. package/dist/hooks/useKeyboard.js.map +1 -0
  271. package/dist/hooks/useKeyboardInputTracker.js +4 -2
  272. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  273. package/dist/index.d.ts +1 -1
  274. package/dist/index.js +1 -1
  275. package/dist/index.js.map +1 -1
  276. package/dist/lib/select.d.ts +7 -0
  277. package/dist/lib/select.js +62 -0
  278. package/dist/lib/select.js.map +1 -0
  279. package/dist/lib/touch.d.ts +1 -1
  280. package/dist/lib/touch.js +5 -2
  281. package/dist/lib/touch.js.map +1 -1
  282. package/dist/lib/utils.d.ts +2 -3
  283. package/dist/lib/utils.js.map +1 -1
  284. package/dist/types.d.ts +2 -6
  285. package/dist/unstable/index.d.ts +2 -0
  286. package/dist/unstable/index.js +1 -0
  287. package/dist/unstable/index.js.map +1 -1
  288. package/dist/unstable.css +1 -1
  289. package/dist/unstable.css.map +1 -1
  290. package/dist/vkui.css +1 -1
  291. package/dist/vkui.css.map +1 -1
  292. package/package.json +4 -2
  293. package/postcss.config.js +1 -1
  294. package/src/components/ActionSheetItem/ActionSheetItem.css +4 -8
  295. package/src/components/AppRoot/AppRoot.css +20 -0
  296. package/src/components/AppRoot/AppRoot.tsx +30 -0
  297. package/src/components/Banner/Banner.css +4 -0
  298. package/src/components/Banner/Banner.tsx +1 -1
  299. package/src/components/Cell/Cell.tsx +1 -1
  300. package/src/components/ChipsSelect/ChipsSelect.tsx +4 -7
  301. package/src/components/ChipsSelect/Readme.md +0 -2
  302. package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
  303. package/src/components/CustomSelect/CustomSelect.tsx +3 -2
  304. package/src/components/FixedLayout/FixedLayout.tsx +61 -147
  305. package/src/components/Gallery/Gallery.tsx +1 -1
  306. package/src/components/Header/Header.tsx +1 -1
  307. package/src/components/ModalCardBase/ModalCardBase.css +4 -0
  308. package/src/components/ModalCardBase/ModalCardBase.tsx +5 -1
  309. package/src/components/ModalPage/ModalPage.tsx +1 -2
  310. package/src/components/ModalRoot/ModalRoot.css +10 -0
  311. package/src/components/ModalRoot/ModalRoot.tsx +1 -1
  312. package/src/components/Panel/Panel.tsx +1 -1
  313. package/src/components/PanelHeaderContent/PanelHeaderContent.css +2 -1
  314. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +2 -2
  315. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  316. package/src/components/RangeSlider/UniversalSlider.tsx +1 -1
  317. package/src/components/Root/Readme.md +27 -37
  318. package/src/components/Root/Root.tsx +112 -191
  319. package/src/components/Search/Search.tsx +1 -1
  320. package/src/components/Separator/Readme.md +3 -1
  321. package/src/components/SimpleCell/SimpleCell.tsx +1 -1
  322. package/src/components/SimpleCheckbox/Readme.md +17 -0
  323. package/src/components/SimpleCheckbox/SimpleCheckbox.css +115 -0
  324. package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +105 -0
  325. package/src/components/Snackbar/Snackbar.tsx +1 -1
  326. package/src/components/Tappable/Tappable.tsx +28 -37
  327. package/src/components/Touch/Touch.tsx +100 -238
  328. package/src/components/UsersStack/UsersStack.css +5 -9
  329. package/src/components/UsersStack/UsersStack.tsx +4 -11
  330. package/src/components/UsersStack/masks.tsx +6 -9
  331. package/src/components/View/Readme.md +34 -42
  332. package/src/components/View/View.tsx +1 -1
  333. package/src/components/View/ViewInfinite.tsx +1 -1
  334. package/src/hooks/useEventListener.ts +11 -8
  335. package/src/hooks/useGlobalEventListener.ts +2 -2
  336. package/src/hooks/useInsets.ts +2 -8
  337. package/src/hooks/useKeyboard.ts +67 -0
  338. package/src/hooks/useKeyboardInputTracker.ts +4 -2
  339. package/src/index.ts +1 -1
  340. package/src/lib/select.ts +53 -0
  341. package/src/lib/touch.ts +2 -2
  342. package/src/lib/utils.ts +3 -4
  343. package/src/styles/animations.css +0 -14
  344. package/src/styles/common.css +0 -21
  345. package/src/styles/components.css +2 -0
  346. package/src/styles/constants.css +3 -0
  347. package/src/styles/unstable.css +1 -0
  348. package/src/types.ts +2 -8
  349. package/src/unstable/index.ts +3 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Gallery/Gallery.tsx"],"names":["React","getClassName","Touch","classNames","withPlatform","withDOM","setRef","withAdaptivity","HorizontalScrollArrow","clamp","useTimeout","BaseGallery","props","e","setState","animation","startT","isDraggable","isFullyVisible","originalEvent","preventDefault","isSlideX","onDragStart","state","deltaX","shiftX","dragging","targetIndex","isSlide","getTarget","slideIndex","onDragEnd","onChange","onEnd","initializeSlides","canSlideLeft","canSlideRight","id","slide","slidesStore","viewport","getRef","container","getRootRef","containerWidth","slides","duration","slideWidth","align","options","Children","map","children","_item","i","elem","coordX","offsetLeft","width","offsetWidth","layerWidth","reduce","val","min","calcMin","max","calcMax","calculateIndent","isValidShift","validateIndent","window","requestAnimationFrame","viewportWidth","isCenterWithCustomWidth","length","targetSlide","indent","Number","value","expectDeltaX","Date","now","getTime","shift","direction","item","index","previousValue","Math","abs","currentValue","addEventListener","onResize","prevProps","widthChanged","isPropUpdate","slideCountChanged","count","isCustomWidth","removeEventListener","bullets","platform","hasMouse","showArrows","document","restProps","calculateDragIndent","layerStyle","WebkitTransform","transform","WebkitTransition","transition","onStart","onMoveX","getViewportRef","getSlideRef","slideLeft","slideRight","Component","BaseGalleryAdaptive","Gallery","initialSlideIndex","timeout","useState","localSlideIndex","setSlideIndex","isControlled","Boolean","toArray","filter","childCount","handleChange","useCallback","current","autoplay","useEffect","set","clear","safeSlideIndex"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport Touch, { TouchEventHandler, TouchEvent } from '../Touch/Touch';\nimport { classNames } from '../../lib/classNames';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { HasAlign, HasPlatform, HasRef, HasRootRef } from '../../types';\nimport { withDOM, DOMProps } from '../../lib/dom';\nimport { setRef } from '../../lib/utils';\nimport { withAdaptivity, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport HorizontalScrollArrow from '../HorizontalScroll/HorizontalScrollArrow';\nimport { clamp } from '../../helpers/math';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport './Gallery.css';\n\nexport interface BaseGalleryProps extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onDragStart' | 'onDragEnd'>,\n HasPlatform,\n HasAlign,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLElement> {\n slideWidth?: string | number;\n slideIndex?: number;\n onDragStart?: TouchEventHandler;\n onDragEnd?: TouchEventHandler;\n onChange?(current: number): void;\n onEnd?({ targetIndex }: { targetIndex: number }): void;\n bullets?: 'dark' | 'light' | false;\n isDraggable?: boolean;\n showArrows?: boolean;\n}\n\nexport interface GalleryProps extends BaseGalleryProps {\n initialSlideIndex?: number;\n timeout?: number;\n}\n\nexport interface GalleryState {\n containerWidth: number;\n layerWidth?: number;\n min?: number;\n max?: number;\n startT?: Date;\n deltaX: number;\n shiftX: number;\n slides: GallerySlidesState[];\n animation: boolean;\n duration: number;\n dragging?: boolean;\n}\n\nexport interface GallerySlidesState {\n coordX: number;\n width: number;\n}\n\ntype GetSlideRef = (index: number) => React.RefCallback<HTMLElement>;\n\nclass BaseGallery extends React.Component<BaseGalleryProps & DOMProps & AdaptivityProps, GalleryState> {\n constructor(props: GalleryProps) {\n super(props);\n\n this.state = {\n containerWidth: 0,\n deltaX: 0,\n shiftX: 0,\n slides: [],\n animation: true,\n duration: 0.24,\n };\n\n this.slidesStore = {};\n }\n\n container: HTMLDivElement;\n slidesStore: {\n [index: string]: HTMLElement;\n };\n viewport: HTMLElement;\n\n static defaultProps: Partial<BaseGalleryProps> = {\n slideWidth: '100%',\n children: '',\n align: 'left',\n bullets: false,\n isDraggable: true,\n };\n\n get isCenterWithCustomWidth() {\n return this.props.slideWidth === 'custom' && this.props.align === 'center';\n }\n\n initializeSlides(options: { animation?: boolean } = {}) {\n const slides: GallerySlidesState[] = React.Children.map(\n this.props.children,\n (_item: React.ReactElement, i: number): GallerySlidesState => {\n const elem = this.slidesStore[`slide-${i}`];\n return {\n coordX: elem.offsetLeft,\n width: elem.offsetWidth,\n };\n });\n\n const containerWidth = this.container.offsetWidth;\n const layerWidth = slides.reduce((val: number, slide: GallerySlidesState) => slide.width + val, 0);\n\n const min = this.calcMin({ containerWidth, layerWidth, slides });\n const max = this.calcMax({ slides });\n\n this.setState({ min, max, layerWidth, containerWidth, slides }, () => {\n const shiftX = this.calculateIndent(this.props.slideIndex);\n if (this.state.shiftX === shiftX) {\n return;\n }\n const isValidShift = this.state.shiftX === this.validateIndent(this.state.shiftX);\n const { animation = isValidShift } = options;\n this.setState({ shiftX, animation }, () => {\n if (!this.state.animation) {\n this.props.window.requestAnimationFrame(() => this.setState({ animation: true }));\n }\n });\n });\n }\n\n calcMin({ containerWidth, layerWidth, slides }: Pick<GalleryState, 'containerWidth' | 'layerWidth' | 'slides'>) {\n const viewportWidth = this.viewport.offsetWidth;\n switch (this.props.align) {\n case 'left':\n return containerWidth - layerWidth;\n case 'right':\n return viewportWidth - layerWidth;\n case 'center':\n if (this.isCenterWithCustomWidth && slides.length) {\n const { coordX, width } = slides[slides.length - 1];\n return viewportWidth / 2 - coordX - width / 2;\n } else {\n return viewportWidth - (containerWidth - viewportWidth) / 2 - layerWidth;\n }\n }\n }\n\n calcMax({ slides }: Pick<GalleryState, 'slides'>) {\n const viewportWidth = this.viewport.offsetWidth;\n if (this.isCenterWithCustomWidth && slides.length) {\n const { width, coordX } = slides[0];\n return viewportWidth / 2 - coordX - width / 2;\n } else {\n return 0;\n }\n }\n\n /*\n * Считает отступ слоя галереи\n */\n calculateIndent(targetIndex: number) {\n const { slides } = this.state;\n\n if (this.isFullyVisible) {\n return 0;\n }\n\n const targetSlide = slides.length ? slides[targetIndex] : null;\n\n if (targetSlide) {\n const { coordX, width } = targetSlide;\n\n if (this.isCenterWithCustomWidth) {\n const viewportWidth = this.viewport.offsetWidth;\n return viewportWidth / 2 - coordX - width / 2;\n }\n\n return this.validateIndent(-1 * coordX);\n } else {\n return 0;\n }\n }\n\n /*\n * Считает отступ слоя галереи во время драга\n */\n calculateDragIndent() {\n const { shiftX, deltaX, min, max } = this.state;\n const indent = shiftX + deltaX;\n\n if (indent > max) {\n return max + Number((indent - max) / 3);\n } else if (indent < min) {\n return min + Number((indent - min) / 3);\n }\n\n return indent;\n }\n\n validateIndent(value: number) {\n const { min, max } = this.state;\n\n if (value < min) {\n return min;\n } else if (value > max) {\n return max;\n }\n\n return value;\n }\n\n get isFullyVisible() {\n return this.state.layerWidth <= this.state.containerWidth;\n }\n\n /*\n * Получает индекс слайда, к которому будет осуществлен переход\n */\n getTarget() {\n const { slides, deltaX, shiftX, startT, max } = this.state;\n const { slideIndex } = this.props;\n const expectDeltaX = deltaX / (Date.now() - startT.getTime()) * 240 * 0.6;\n const shift = shiftX + deltaX + expectDeltaX - max;\n const direction = deltaX < 0 ? 1 : -1;\n\n // Находим ближайшую границу слайда к текущему отступу\n let targetIndex = slides.reduce((val: number, item: GallerySlidesState, index: number) => {\n const previousValue = Math.abs(slides[val].coordX + shift);\n const currentValue = Math.abs(item.coordX + shift);\n\n return previousValue < currentValue ? val : index;\n }, slideIndex);\n\n if (targetIndex === slideIndex) {\n let targetSlide = slideIndex + direction;\n\n if (targetSlide >= 0 && targetSlide < slides.length) {\n if (Math.abs(deltaX) > slides[targetSlide].width * 0.05) {\n targetIndex = targetSlide;\n }\n }\n }\n\n return targetIndex;\n }\n\n onStart: TouchEventHandler = (e: TouchEvent) => {\n this.setState({\n animation: false,\n startT: e.startT,\n });\n };\n\n onMoveX: TouchEventHandler = (e: TouchEvent) => {\n if (this.props.isDraggable && !this.isFullyVisible) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n this.props.onDragStart && this.props.onDragStart(e);\n\n if (this.state.deltaX !== e.shiftX || this.state.dragging !== e.isSlideX) {\n this.setState({\n deltaX: e.shiftX,\n dragging: e.isSlideX,\n });\n }\n }\n }\n };\n\n onEnd: TouchEventHandler = (e: TouchEvent) => {\n const targetIndex = e.isSlide ? this.getTarget() : this.props.slideIndex;\n this.props.onDragEnd && this.props.onDragEnd(e);\n this.setState({ deltaX: 0, animation: true }, () => this.props.onChange(targetIndex));\n\n if (this.props.onEnd) {\n this.props.onEnd({ targetIndex });\n }\n };\n\n onResize: VoidFunction = () => this.initializeSlides({ animation: false });\n\n get canSlideLeft() {\n // shiftX is negative number <= 0, we can swipe back only if it is < 0\n return !this.isFullyVisible && this.state.shiftX < 0;\n }\n\n get canSlideRight() {\n const { containerWidth, layerWidth, shiftX, slides } = this.state;\n const { align, slideIndex } = this.props;\n return !this.isFullyVisible && (\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n align === 'left' && containerWidth - shiftX < layerWidth ||\n // otherwise we need to check current slide index (align = right or align = center)\n align !== 'left' && slideIndex < slides.length - 1\n );\n }\n\n slideLeft = () => {\n const { slideIndex, onChange } = this.props;\n if (this.canSlideLeft) {\n this.setState({ deltaX: 0, animation: true }, () => onChange(slideIndex - 1));\n }\n };\n\n slideRight = () => {\n const { slideIndex, onChange } = this.props;\n if (this.canSlideRight) {\n this.setState({ deltaX: 0, animation: true }, () => onChange(slideIndex + 1));\n }\n };\n\n getSlideRef: GetSlideRef = (id: number) => (slide) => {\n this.slidesStore[`slide-${id}`] = slide;\n };\n\n getViewportRef: React.RefCallback<HTMLElement> = (viewport) => {\n this.viewport = viewport;\n setRef(viewport, this.props.getRef);\n };\n\n getRootRef: React.RefCallback<HTMLDivElement> = (container) => {\n this.container = container;\n setRef(container, this.props.getRootRef);\n };\n\n componentDidMount() {\n this.initializeSlides({ animation: false });\n this.props.window.addEventListener('resize', this.onResize);\n }\n\n componentDidUpdate(prevProps: GalleryProps) {\n const widthChanged = this.props.slideWidth !== prevProps.slideWidth;\n const isPropUpdate = this.props !== prevProps;\n const slideCountChanged = React.Children.count(this.props.children) !== React.Children.count(prevProps.children);\n const isCustomWidth = this.props.slideWidth === 'custom';\n\n // в любом из этих случаев позиция могла поменяться\n if (widthChanged || slideCountChanged || isCustomWidth && isPropUpdate) {\n this.initializeSlides();\n } else if (this.props.slideIndex !== prevProps.slideIndex) {\n this.setState({\n animation: true,\n deltaX: 0,\n shiftX: this.calculateIndent(this.props.slideIndex),\n });\n }\n }\n\n componentWillUnmount() {\n this.props.window.removeEventListener('resize', this.onResize);\n }\n\n render() {\n const { animation, duration, dragging } = this.state;\n const {\n children,\n slideWidth,\n slideIndex,\n isDraggable,\n onDragStart,\n onDragEnd,\n onChange,\n onEnd,\n align,\n bullets,\n platform,\n hasMouse,\n showArrows,\n window,\n document,\n getRef,\n getRootRef,\n ...restProps\n } = this.props;\n\n const indent = dragging ? this.calculateDragIndent() : this.calculateIndent(slideIndex);\n\n const layerStyle = {\n WebkitTransform: `translateX(${indent}px)`,\n transform: `translateX(${indent}px)`,\n WebkitTransition: animation ? `-webkit-transform ${duration}s cubic-bezier(.1, 0, .25, 1)` : 'none',\n transition: animation ? `transform ${duration}s cubic-bezier(.1, 0, .25, 1)` : 'none',\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('Gallery', platform), `Gallery--${align}`, {\n 'Gallery--dragging': dragging,\n 'Gallery--custom-width': slideWidth === 'custom',\n })}\n ref={this.getRootRef}\n >\n <Touch\n vkuiClass=\"Gallery__viewport\"\n onStartX={this.onStart}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n noSlideClick\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n getRootRef={this.getViewportRef}\n >\n <div vkuiClass=\"Gallery__layer\" style={layerStyle}>\n {React.Children.map(children, (item: React.ReactElement, i: number) =>\n <div vkuiClass=\"Gallery__slide\" key={`slide-${i}`} ref={this.getSlideRef(i)}>{item}</div>,\n )}\n </div>\n </Touch>\n\n {bullets &&\n <div aria-hidden=\"true\" vkuiClass={classNames('Gallery__bullets', `Gallery__bullets--${bullets}`)}>\n {React.Children.map(children, (_item: React.ReactElement, index: number) =>\n <div\n vkuiClass={classNames('Gallery__bullet', { 'Gallery__bullet--active': index === slideIndex })}\n key={index}\n />,\n )}\n </div>\n }\n\n {showArrows && hasMouse && this.canSlideLeft && <HorizontalScrollArrow direction=\"left\" onClick={this.slideLeft} />}\n {showArrows && hasMouse && this.canSlideRight && <HorizontalScrollArrow direction=\"right\" onClick={this.slideRight} />}\n </div>\n );\n }\n}\n\nconst BaseGalleryAdaptive = withAdaptivity(withDOM<BaseGalleryProps>(BaseGallery), {\n hasMouse: true,\n});\n\nconst Gallery: React.FC<GalleryProps> = ({\n initialSlideIndex = 0,\n children,\n timeout,\n onChange,\n ...props\n}: GalleryProps) => {\n const [localSlideIndex, setSlideIndex] = React.useState(initialSlideIndex);\n const isControlled = typeof props.slideIndex === 'number';\n const slideIndex = isControlled ? props.slideIndex : localSlideIndex;\n const isDraggable = !isControlled || Boolean(onChange);\n const slides = React.Children.toArray(children).filter((item) => Boolean(item));\n const childCount = slides.length;\n\n const handleChange: GalleryProps['onChange'] = React.useCallback((current) => {\n if (current === slideIndex) {\n return;\n }\n !isControlled && setSlideIndex(current);\n onChange && onChange(current);\n }, [onChange, slideIndex]);\n\n const autoplay = useTimeout(() => handleChange((slideIndex + 1) % childCount), timeout);\n React.useEffect(() => timeout ? autoplay.set() : autoplay.clear(), [timeout, slideIndex]);\n\n // prevent invalid slideIndex\n // any slide index is invalid with no slides, just keep it as is\n const safeSlideIndex = childCount > 0 ? clamp(slideIndex, 0, childCount - 1) : slideIndex;\n // notify parent in controlled mode\n React.useEffect(() => {\n if (onChange && safeSlideIndex !== slideIndex) {\n onChange(safeSlideIndex);\n }\n }, [safeSlideIndex]);\n\n return (\n <BaseGalleryAdaptive\n isDraggable={isDraggable}\n {...props}\n slideIndex={safeSlideIndex}\n onChange={handleChange}\n >{slides}</BaseGalleryAdaptive>\n );\n};\n\nexport default withPlatform(Gallery);\n"],"file":"Gallery.js"}
1
+ {"version":3,"sources":["../../../../src/components/Gallery/Gallery.tsx"],"names":["React","getClassName","Touch","classNames","withPlatform","withDOM","setRef","withAdaptivity","HorizontalScrollArrow","clamp","useTimeout","BaseGallery","props","e","setState","animation","startT","isDraggable","isFullyVisible","originalEvent","preventDefault","isSlideX","onDragStart","state","deltaX","shiftX","dragging","targetIndex","isSlide","getTarget","slideIndex","onDragEnd","onChange","onEnd","initializeSlides","canSlideLeft","canSlideRight","id","slide","slidesStore","viewport","getRef","container","getRootRef","containerWidth","slides","duration","slideWidth","align","options","Children","map","children","_item","i","elem","coordX","offsetLeft","width","offsetWidth","layerWidth","reduce","val","min","calcMin","max","calcMax","calculateIndent","isValidShift","validateIndent","window","requestAnimationFrame","viewportWidth","isCenterWithCustomWidth","length","targetSlide","indent","Number","value","expectDeltaX","Date","now","getTime","shift","direction","item","index","previousValue","Math","abs","currentValue","addEventListener","onResize","prevProps","widthChanged","isPropUpdate","slideCountChanged","count","isCustomWidth","removeEventListener","bullets","platform","hasMouse","showArrows","document","restProps","calculateDragIndent","layerStyle","WebkitTransform","transform","WebkitTransition","transition","onStart","onMoveX","getViewportRef","getSlideRef","slideLeft","slideRight","Component","BaseGalleryAdaptive","Gallery","initialSlideIndex","timeout","useState","localSlideIndex","setSlideIndex","isControlled","Boolean","toArray","filter","childCount","handleChange","useCallback","current","autoplay","useEffect","set","clear","safeSlideIndex"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { Touch, TouchEventHandler, TouchEvent } from '../Touch/Touch';\nimport { classNames } from '../../lib/classNames';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { HasAlign, HasPlatform, HasRef, HasRootRef } from '../../types';\nimport { withDOM, DOMProps } from '../../lib/dom';\nimport { setRef } from '../../lib/utils';\nimport { withAdaptivity, AdaptivityProps } from '../../hoc/withAdaptivity';\nimport HorizontalScrollArrow from '../HorizontalScroll/HorizontalScrollArrow';\nimport { clamp } from '../../helpers/math';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport './Gallery.css';\n\nexport interface BaseGalleryProps extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onDragStart' | 'onDragEnd'>,\n HasPlatform,\n HasAlign,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLElement> {\n slideWidth?: string | number;\n slideIndex?: number;\n onDragStart?: TouchEventHandler;\n onDragEnd?: TouchEventHandler;\n onChange?(current: number): void;\n onEnd?({ targetIndex }: { targetIndex: number }): void;\n bullets?: 'dark' | 'light' | false;\n isDraggable?: boolean;\n showArrows?: boolean;\n}\n\nexport interface GalleryProps extends BaseGalleryProps {\n initialSlideIndex?: number;\n timeout?: number;\n}\n\nexport interface GalleryState {\n containerWidth: number;\n layerWidth?: number;\n min?: number;\n max?: number;\n startT?: Date;\n deltaX: number;\n shiftX: number;\n slides: GallerySlidesState[];\n animation: boolean;\n duration: number;\n dragging?: boolean;\n}\n\nexport interface GallerySlidesState {\n coordX: number;\n width: number;\n}\n\ntype GetSlideRef = (index: number) => React.RefCallback<HTMLElement>;\n\nclass BaseGallery extends React.Component<BaseGalleryProps & DOMProps & AdaptivityProps, GalleryState> {\n constructor(props: GalleryProps) {\n super(props);\n\n this.state = {\n containerWidth: 0,\n deltaX: 0,\n shiftX: 0,\n slides: [],\n animation: true,\n duration: 0.24,\n };\n\n this.slidesStore = {};\n }\n\n container: HTMLDivElement;\n slidesStore: {\n [index: string]: HTMLElement;\n };\n viewport: HTMLElement;\n\n static defaultProps: Partial<BaseGalleryProps> = {\n slideWidth: '100%',\n children: '',\n align: 'left',\n bullets: false,\n isDraggable: true,\n };\n\n get isCenterWithCustomWidth() {\n return this.props.slideWidth === 'custom' && this.props.align === 'center';\n }\n\n initializeSlides(options: { animation?: boolean } = {}) {\n const slides: GallerySlidesState[] = React.Children.map(\n this.props.children,\n (_item: React.ReactElement, i: number): GallerySlidesState => {\n const elem = this.slidesStore[`slide-${i}`];\n return {\n coordX: elem.offsetLeft,\n width: elem.offsetWidth,\n };\n });\n\n const containerWidth = this.container.offsetWidth;\n const layerWidth = slides.reduce((val: number, slide: GallerySlidesState) => slide.width + val, 0);\n\n const min = this.calcMin({ containerWidth, layerWidth, slides });\n const max = this.calcMax({ slides });\n\n this.setState({ min, max, layerWidth, containerWidth, slides }, () => {\n const shiftX = this.calculateIndent(this.props.slideIndex);\n if (this.state.shiftX === shiftX) {\n return;\n }\n const isValidShift = this.state.shiftX === this.validateIndent(this.state.shiftX);\n const { animation = isValidShift } = options;\n this.setState({ shiftX, animation }, () => {\n if (!this.state.animation) {\n this.props.window.requestAnimationFrame(() => this.setState({ animation: true }));\n }\n });\n });\n }\n\n calcMin({ containerWidth, layerWidth, slides }: Pick<GalleryState, 'containerWidth' | 'layerWidth' | 'slides'>) {\n const viewportWidth = this.viewport.offsetWidth;\n switch (this.props.align) {\n case 'left':\n return containerWidth - layerWidth;\n case 'right':\n return viewportWidth - layerWidth;\n case 'center':\n if (this.isCenterWithCustomWidth && slides.length) {\n const { coordX, width } = slides[slides.length - 1];\n return viewportWidth / 2 - coordX - width / 2;\n } else {\n return viewportWidth - (containerWidth - viewportWidth) / 2 - layerWidth;\n }\n }\n }\n\n calcMax({ slides }: Pick<GalleryState, 'slides'>) {\n const viewportWidth = this.viewport.offsetWidth;\n if (this.isCenterWithCustomWidth && slides.length) {\n const { width, coordX } = slides[0];\n return viewportWidth / 2 - coordX - width / 2;\n } else {\n return 0;\n }\n }\n\n /*\n * Считает отступ слоя галереи\n */\n calculateIndent(targetIndex: number) {\n const { slides } = this.state;\n\n if (this.isFullyVisible) {\n return 0;\n }\n\n const targetSlide = slides.length ? slides[targetIndex] : null;\n\n if (targetSlide) {\n const { coordX, width } = targetSlide;\n\n if (this.isCenterWithCustomWidth) {\n const viewportWidth = this.viewport.offsetWidth;\n return viewportWidth / 2 - coordX - width / 2;\n }\n\n return this.validateIndent(-1 * coordX);\n } else {\n return 0;\n }\n }\n\n /*\n * Считает отступ слоя галереи во время драга\n */\n calculateDragIndent() {\n const { shiftX, deltaX, min, max } = this.state;\n const indent = shiftX + deltaX;\n\n if (indent > max) {\n return max + Number((indent - max) / 3);\n } else if (indent < min) {\n return min + Number((indent - min) / 3);\n }\n\n return indent;\n }\n\n validateIndent(value: number) {\n const { min, max } = this.state;\n\n if (value < min) {\n return min;\n } else if (value > max) {\n return max;\n }\n\n return value;\n }\n\n get isFullyVisible() {\n return this.state.layerWidth <= this.state.containerWidth;\n }\n\n /*\n * Получает индекс слайда, к которому будет осуществлен переход\n */\n getTarget() {\n const { slides, deltaX, shiftX, startT, max } = this.state;\n const { slideIndex } = this.props;\n const expectDeltaX = deltaX / (Date.now() - startT.getTime()) * 240 * 0.6;\n const shift = shiftX + deltaX + expectDeltaX - max;\n const direction = deltaX < 0 ? 1 : -1;\n\n // Находим ближайшую границу слайда к текущему отступу\n let targetIndex = slides.reduce((val: number, item: GallerySlidesState, index: number) => {\n const previousValue = Math.abs(slides[val].coordX + shift);\n const currentValue = Math.abs(item.coordX + shift);\n\n return previousValue < currentValue ? val : index;\n }, slideIndex);\n\n if (targetIndex === slideIndex) {\n let targetSlide = slideIndex + direction;\n\n if (targetSlide >= 0 && targetSlide < slides.length) {\n if (Math.abs(deltaX) > slides[targetSlide].width * 0.05) {\n targetIndex = targetSlide;\n }\n }\n }\n\n return targetIndex;\n }\n\n onStart: TouchEventHandler = (e: TouchEvent) => {\n this.setState({\n animation: false,\n startT: e.startT,\n });\n };\n\n onMoveX: TouchEventHandler = (e: TouchEvent) => {\n if (this.props.isDraggable && !this.isFullyVisible) {\n e.originalEvent.preventDefault();\n\n if (e.isSlideX) {\n this.props.onDragStart && this.props.onDragStart(e);\n\n if (this.state.deltaX !== e.shiftX || this.state.dragging !== e.isSlideX) {\n this.setState({\n deltaX: e.shiftX,\n dragging: e.isSlideX,\n });\n }\n }\n }\n };\n\n onEnd: TouchEventHandler = (e: TouchEvent) => {\n const targetIndex = e.isSlide ? this.getTarget() : this.props.slideIndex;\n this.props.onDragEnd && this.props.onDragEnd(e);\n this.setState({ deltaX: 0, animation: true }, () => this.props.onChange(targetIndex));\n\n if (this.props.onEnd) {\n this.props.onEnd({ targetIndex });\n }\n };\n\n onResize: VoidFunction = () => this.initializeSlides({ animation: false });\n\n get canSlideLeft() {\n // shiftX is negative number <= 0, we can swipe back only if it is < 0\n return !this.isFullyVisible && this.state.shiftX < 0;\n }\n\n get canSlideRight() {\n const { containerWidth, layerWidth, shiftX, slides } = this.state;\n const { align, slideIndex } = this.props;\n return !this.isFullyVisible && (\n // we can't move right when gallery layer fully scrolled right, if gallery aligned by left side\n align === 'left' && containerWidth - shiftX < layerWidth ||\n // otherwise we need to check current slide index (align = right or align = center)\n align !== 'left' && slideIndex < slides.length - 1\n );\n }\n\n slideLeft = () => {\n const { slideIndex, onChange } = this.props;\n if (this.canSlideLeft) {\n this.setState({ deltaX: 0, animation: true }, () => onChange(slideIndex - 1));\n }\n };\n\n slideRight = () => {\n const { slideIndex, onChange } = this.props;\n if (this.canSlideRight) {\n this.setState({ deltaX: 0, animation: true }, () => onChange(slideIndex + 1));\n }\n };\n\n getSlideRef: GetSlideRef = (id: number) => (slide) => {\n this.slidesStore[`slide-${id}`] = slide;\n };\n\n getViewportRef: React.RefCallback<HTMLElement> = (viewport) => {\n this.viewport = viewport;\n setRef(viewport, this.props.getRef);\n };\n\n getRootRef: React.RefCallback<HTMLDivElement> = (container) => {\n this.container = container;\n setRef(container, this.props.getRootRef);\n };\n\n componentDidMount() {\n this.initializeSlides({ animation: false });\n this.props.window.addEventListener('resize', this.onResize);\n }\n\n componentDidUpdate(prevProps: GalleryProps) {\n const widthChanged = this.props.slideWidth !== prevProps.slideWidth;\n const isPropUpdate = this.props !== prevProps;\n const slideCountChanged = React.Children.count(this.props.children) !== React.Children.count(prevProps.children);\n const isCustomWidth = this.props.slideWidth === 'custom';\n\n // в любом из этих случаев позиция могла поменяться\n if (widthChanged || slideCountChanged || isCustomWidth && isPropUpdate) {\n this.initializeSlides();\n } else if (this.props.slideIndex !== prevProps.slideIndex) {\n this.setState({\n animation: true,\n deltaX: 0,\n shiftX: this.calculateIndent(this.props.slideIndex),\n });\n }\n }\n\n componentWillUnmount() {\n this.props.window.removeEventListener('resize', this.onResize);\n }\n\n render() {\n const { animation, duration, dragging } = this.state;\n const {\n children,\n slideWidth,\n slideIndex,\n isDraggable,\n onDragStart,\n onDragEnd,\n onChange,\n onEnd,\n align,\n bullets,\n platform,\n hasMouse,\n showArrows,\n window,\n document,\n getRef,\n getRootRef,\n ...restProps\n } = this.props;\n\n const indent = dragging ? this.calculateDragIndent() : this.calculateIndent(slideIndex);\n\n const layerStyle = {\n WebkitTransform: `translateX(${indent}px)`,\n transform: `translateX(${indent}px)`,\n WebkitTransition: animation ? `-webkit-transform ${duration}s cubic-bezier(.1, 0, .25, 1)` : 'none',\n transition: animation ? `transform ${duration}s cubic-bezier(.1, 0, .25, 1)` : 'none',\n };\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('Gallery', platform), `Gallery--${align}`, {\n 'Gallery--dragging': dragging,\n 'Gallery--custom-width': slideWidth === 'custom',\n })}\n ref={this.getRootRef}\n >\n <Touch\n vkuiClass=\"Gallery__viewport\"\n onStartX={this.onStart}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n noSlideClick\n style={{ width: slideWidth === 'custom' ? '100%' : slideWidth }}\n getRootRef={this.getViewportRef}\n >\n <div vkuiClass=\"Gallery__layer\" style={layerStyle}>\n {React.Children.map(children, (item: React.ReactElement, i: number) =>\n <div vkuiClass=\"Gallery__slide\" key={`slide-${i}`} ref={this.getSlideRef(i)}>{item}</div>,\n )}\n </div>\n </Touch>\n\n {bullets &&\n <div aria-hidden=\"true\" vkuiClass={classNames('Gallery__bullets', `Gallery__bullets--${bullets}`)}>\n {React.Children.map(children, (_item: React.ReactElement, index: number) =>\n <div\n vkuiClass={classNames('Gallery__bullet', { 'Gallery__bullet--active': index === slideIndex })}\n key={index}\n />,\n )}\n </div>\n }\n\n {showArrows && hasMouse && this.canSlideLeft && <HorizontalScrollArrow direction=\"left\" onClick={this.slideLeft} />}\n {showArrows && hasMouse && this.canSlideRight && <HorizontalScrollArrow direction=\"right\" onClick={this.slideRight} />}\n </div>\n );\n }\n}\n\nconst BaseGalleryAdaptive = withAdaptivity(withDOM<BaseGalleryProps>(BaseGallery), {\n hasMouse: true,\n});\n\nconst Gallery: React.FC<GalleryProps> = ({\n initialSlideIndex = 0,\n children,\n timeout,\n onChange,\n ...props\n}: GalleryProps) => {\n const [localSlideIndex, setSlideIndex] = React.useState(initialSlideIndex);\n const isControlled = typeof props.slideIndex === 'number';\n const slideIndex = isControlled ? props.slideIndex : localSlideIndex;\n const isDraggable = !isControlled || Boolean(onChange);\n const slides = React.Children.toArray(children).filter((item) => Boolean(item));\n const childCount = slides.length;\n\n const handleChange: GalleryProps['onChange'] = React.useCallback((current) => {\n if (current === slideIndex) {\n return;\n }\n !isControlled && setSlideIndex(current);\n onChange && onChange(current);\n }, [onChange, slideIndex]);\n\n const autoplay = useTimeout(() => handleChange((slideIndex + 1) % childCount), timeout);\n React.useEffect(() => timeout ? autoplay.set() : autoplay.clear(), [timeout, slideIndex]);\n\n // prevent invalid slideIndex\n // any slide index is invalid with no slides, just keep it as is\n const safeSlideIndex = childCount > 0 ? clamp(slideIndex, 0, childCount - 1) : slideIndex;\n // notify parent in controlled mode\n React.useEffect(() => {\n if (onChange && safeSlideIndex !== slideIndex) {\n onChange(safeSlideIndex);\n }\n }, [safeSlideIndex]);\n\n return (\n <BaseGalleryAdaptive\n isDraggable={isDraggable}\n {...props}\n slideIndex={safeSlideIndex}\n onChange={handleChange}\n >{slides}</BaseGalleryAdaptive>\n );\n};\n\nexport default withPlatform(Gallery);\n"],"file":"Gallery.js"}
@@ -115,7 +115,7 @@ var Header = function Header(_ref4) {
115
115
  vkuiClass: "Header__main"
116
116
  }, createScopedElement(HeaderContent, {
117
117
  vkuiClass: "Header__content",
118
- Component: "h3",
118
+ Component: "span",
119
119
  mode: mode,
120
120
  platform: platform
121
121
  }, createScopedElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Header/Header.tsx"],"names":["getClassName","classNames","usePlatform","hasReactNode","isPrimitiveReactNode","Platform","Headline","Caption","Title","Text","Subhead","HeaderContent","platform","mode","restProps","IOS","VKCOM","HeaderAside","HeaderSubtitle","Header","children","subtitle","indicator","aside","getRootRef","multiline","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { HasPlatform, HasRootRef } from '../../types';\nimport { hasReactNode, isPrimitiveReactNode } from '../../lib/utils';\nimport { Platform } from '../../lib/platform';\nimport Headline from '../Typography/Headline/Headline';\nimport Caption from '../Typography/Caption/Caption';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport './Header.css';\n\nexport interface HeaderProps extends React.HTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {\n mode?: 'primary' | 'secondary' | 'tertiary';\n subtitle?: React.ReactNode;\n /**\n * Допускаются иконки, текст, Link\n */\n aside?: React.ReactNode;\n /**\n * Допускаются текст, Indicator\n */\n indicator?: React.ReactNode;\n multiline?: boolean;\n}\n\ntype HeaderContentProps = Pick<HeaderProps, 'children' | 'mode'> & HasPlatform & { Component: React.ElementType };\n\nconst HeaderContent: React.FC<HeaderContentProps> = ({ platform, mode, ...restProps }) => {\n if (platform === Platform.IOS) {\n switch (mode) {\n case 'primary':\n case 'tertiary':\n return <Title weight=\"semibold\" level=\"3\" {...restProps} />;\n case 'secondary':\n return <Caption level=\"1\" weight=\"semibold\" caps {...restProps} />;\n }\n }\n\n if (platform === Platform.VKCOM) {\n switch (mode) {\n case 'primary':\n return <Headline weight=\"regular\" {...restProps} />;\n case 'secondary':\n case 'tertiary':\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n }\n\n switch (mode) {\n case 'primary':\n case 'tertiary':\n return <Headline weight=\"medium\" {...restProps} />;\n case 'secondary':\n return <Caption level=\"1\" weight=\"medium\" caps {...restProps} />;\n }\n};\n\ntype HeaderAsideProps = Pick<HeaderProps, 'aside'> & HasPlatform & { Component: React.ElementType };\n\nconst HeaderAside: React.FC<HeaderAsideProps> = ({ platform, ...restProps }) => {\n return platform === Platform.VKCOM\n ? <Subhead weight=\"regular\" {...restProps} />\n : <Text weight=\"regular\" {...restProps} />;\n};\n\ntype HeaderSubtitleProps = Pick<HeaderProps, 'subtitle' | 'mode'> & { Component: React.ElementType };\n\nconst HeaderSubtitle: React.FC<HeaderSubtitleProps> = ({ mode, ...restProps }) => {\n return mode === 'secondary'\n ? <Subhead weight=\"regular\" {...restProps} />\n : <Caption weight=\"regular\" level=\"1\" {...restProps} />;\n};\n\nconst Header: React.FC<HeaderProps> = ({\n mode,\n children,\n subtitle,\n indicator,\n aside,\n getRootRef,\n multiline,\n ...restProps\n}: HeaderProps) => {\n const platform = usePlatform();\n\n return (\n <header\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Header', platform), `Header--mode-${mode}`, { 'Header--pi': isPrimitiveReactNode(indicator) })}\n >\n <div vkuiClass=\"Header__main\">\n <HeaderContent vkuiClass=\"Header__content\" Component=\"h3\" mode={mode} platform={platform}>\n <span vkuiClass={classNames('Header__content-in', { 'Header__content-in--multiline': multiline })}>{children}</span>\n {hasReactNode(indicator) && (\n <Caption\n vkuiClass=\"Header__indicator\"\n weight={mode === 'primary' || mode === 'secondary' ? 'medium' : 'regular'}\n level=\"1\"\n >\n {indicator}\n </Caption>\n )}\n </HeaderContent>\n\n {hasReactNode(subtitle) && <HeaderSubtitle vkuiClass=\"Header__subtitle\" Component=\"span\">{subtitle}</HeaderSubtitle>}\n </div>\n\n {hasReactNode(aside) && <HeaderAside vkuiClass=\"Header__aside\" Component=\"span\" platform={platform}>{aside}</HeaderAside>}\n </header>\n );\n};\n\nHeader.defaultProps = {\n mode: 'primary',\n};\n\nexport default Header;\n"],"file":"Header.js"}
1
+ {"version":3,"sources":["../../../../src/components/Header/Header.tsx"],"names":["getClassName","classNames","usePlatform","hasReactNode","isPrimitiveReactNode","Platform","Headline","Caption","Title","Text","Subhead","HeaderContent","platform","mode","restProps","IOS","VKCOM","HeaderAside","HeaderSubtitle","Header","children","subtitle","indicator","aside","getRootRef","multiline","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { HasPlatform, HasRootRef } from '../../types';\nimport { hasReactNode, isPrimitiveReactNode } from '../../lib/utils';\nimport { Platform } from '../../lib/platform';\nimport Headline from '../Typography/Headline/Headline';\nimport Caption from '../Typography/Caption/Caption';\nimport Title from '../Typography/Title/Title';\nimport Text from '../Typography/Text/Text';\nimport Subhead from '../Typography/Subhead/Subhead';\nimport './Header.css';\n\nexport interface HeaderProps extends React.HTMLAttributes<HTMLElement>, HasRootRef<HTMLElement> {\n mode?: 'primary' | 'secondary' | 'tertiary';\n subtitle?: React.ReactNode;\n /**\n * Допускаются иконки, текст, Link\n */\n aside?: React.ReactNode;\n /**\n * Допускаются текст, Indicator\n */\n indicator?: React.ReactNode;\n multiline?: boolean;\n}\n\ntype HeaderContentProps = Pick<HeaderProps, 'children' | 'mode'> & HasPlatform & { Component: React.ElementType };\n\nconst HeaderContent: React.FC<HeaderContentProps> = ({ platform, mode, ...restProps }) => {\n if (platform === Platform.IOS) {\n switch (mode) {\n case 'primary':\n case 'tertiary':\n return <Title weight=\"semibold\" level=\"3\" {...restProps} />;\n case 'secondary':\n return <Caption level=\"1\" weight=\"semibold\" caps {...restProps} />;\n }\n }\n\n if (platform === Platform.VKCOM) {\n switch (mode) {\n case 'primary':\n return <Headline weight=\"regular\" {...restProps} />;\n case 'secondary':\n case 'tertiary':\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n }\n\n switch (mode) {\n case 'primary':\n case 'tertiary':\n return <Headline weight=\"medium\" {...restProps} />;\n case 'secondary':\n return <Caption level=\"1\" weight=\"medium\" caps {...restProps} />;\n }\n};\n\ntype HeaderAsideProps = Pick<HeaderProps, 'aside'> & HasPlatform & { Component: React.ElementType };\n\nconst HeaderAside: React.FC<HeaderAsideProps> = ({ platform, ...restProps }) => {\n return platform === Platform.VKCOM\n ? <Subhead weight=\"regular\" {...restProps} />\n : <Text weight=\"regular\" {...restProps} />;\n};\n\ntype HeaderSubtitleProps = Pick<HeaderProps, 'subtitle' | 'mode'> & { Component: React.ElementType };\n\nconst HeaderSubtitle: React.FC<HeaderSubtitleProps> = ({ mode, ...restProps }) => {\n return mode === 'secondary'\n ? <Subhead weight=\"regular\" {...restProps} />\n : <Caption weight=\"regular\" level=\"1\" {...restProps} />;\n};\n\nconst Header: React.FC<HeaderProps> = ({\n mode,\n children,\n subtitle,\n indicator,\n aside,\n getRootRef,\n multiline,\n ...restProps\n}: HeaderProps) => {\n const platform = usePlatform();\n\n return (\n <header\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName('Header', platform), `Header--mode-${mode}`, { 'Header--pi': isPrimitiveReactNode(indicator) })}\n >\n <div vkuiClass=\"Header__main\">\n <HeaderContent vkuiClass=\"Header__content\" Component=\"span\" mode={mode} platform={platform}>\n <span vkuiClass={classNames('Header__content-in', { 'Header__content-in--multiline': multiline })}>{children}</span>\n {hasReactNode(indicator) && (\n <Caption\n vkuiClass=\"Header__indicator\"\n weight={mode === 'primary' || mode === 'secondary' ? 'medium' : 'regular'}\n level=\"1\"\n >\n {indicator}\n </Caption>\n )}\n </HeaderContent>\n\n {hasReactNode(subtitle) && <HeaderSubtitle vkuiClass=\"Header__subtitle\" Component=\"span\">{subtitle}</HeaderSubtitle>}\n </div>\n\n {hasReactNode(aside) && <HeaderAside vkuiClass=\"Header__aside\" Component=\"span\" platform={platform}>{aside}</HeaderAside>}\n </header>\n );\n};\n\nHeader.defaultProps = {\n mode: 'primary',\n};\n\nexport default Header;\n"],"file":"Header.js"}
@@ -1 +1 @@
1
- .vkuiModalCardBase__container{box-sizing:border-box;position:relative;background:#fff;background:var(--modal_card_background);border-radius:18px;padding:16px;margin-bottom:0;margin-bottom:var(--safe-area-inset-bottom);display:flex;flex-direction:column;justify-content:center;pointer-events:initial}.vkuiModalCardBase__header,.vkuiModalCardBase__subheader{text-align:center;margin:0;padding:0 8px;word-break:break-word}.vkuiModalCardBase__header{color:#000;color:var(--text_primary)}.vkuiModalCardBase__subheader{color:#818c99;color:var(--text_secondary)}.vkuiModalCardBase__header+.vkuiModalCardBase__subheader{margin-top:8px}.vkuiModalCardBase__icon{margin:8px auto 16px;color:#3f8ae0;color:var(--accent)}.vkuiModalCardBase__actions{display:flex;margin-left:-6px;margin-right:-6px;margin-top:16px}.vkuiModalCardBase .vkuiUsersStack+.vkuiModalCardBase__actions{margin-top:32px}.vkuiModalCardBase__header+.vkuiModalCardBase__actions,.vkuiModalCardBase__subheader+.vkuiModalCardBase__actions{margin-top:32px}.vkuiModalCardBase__actions--v{flex-direction:column;margin-left:0;margin-right:0}.vkuiModalCardBase--ios .vkuiModalCardBase__header:first-child{padding-left:36px;padding-right:36px}.vkuiModalCardBase--android .vkuiModalCardBase__container,.vkuiModalCardBase--vkcom .vkuiModalCardBase__container{border-radius:12px;box-shadow:0 8px 8px 0 rgba(0,0,0,.16),0 0 4px 0 rgba(0,0,0,.08)}.vkuiModalCardBase--desktop .vkuiModalCardBase__container{border-radius:8px;box-shadow:0 16px 16px rgba(0,0,0,.16),0 0 8px rgba(0,0,0,.12)}
1
+ .vkuiModalCardBase__container{box-sizing:border-box;position:relative;background:#fff;background:var(--modal_card_background);border-radius:18px;padding:16px;margin-bottom:0;margin-bottom:var(--safe-area-inset-bottom);display:flex;flex-direction:column;justify-content:center;pointer-events:initial}.vkuiModalCardBase__container--softwareKeyboardOpened{margin-bottom:0}.vkuiModalCardBase__header,.vkuiModalCardBase__subheader{text-align:center;margin:0;padding:0 8px;word-break:break-word}.vkuiModalCardBase__header{color:#000;color:var(--text_primary)}.vkuiModalCardBase__subheader{color:#818c99;color:var(--text_secondary)}.vkuiModalCardBase__header+.vkuiModalCardBase__subheader{margin-top:8px}.vkuiModalCardBase__icon{margin:8px auto 16px;color:#3f8ae0;color:var(--accent)}.vkuiModalCardBase__actions{display:flex;margin-left:-6px;margin-right:-6px;margin-top:16px}.vkuiModalCardBase .vkuiUsersStack+.vkuiModalCardBase__actions{margin-top:32px}.vkuiModalCardBase__header+.vkuiModalCardBase__actions,.vkuiModalCardBase__subheader+.vkuiModalCardBase__actions{margin-top:32px}.vkuiModalCardBase__actions--v{flex-direction:column;margin-left:0;margin-right:0}.vkuiModalCardBase--ios .vkuiModalCardBase__header:first-child{padding-left:36px;padding-right:36px}.vkuiModalCardBase--android .vkuiModalCardBase__container,.vkuiModalCardBase--vkcom .vkuiModalCardBase__container{border-radius:12px;box-shadow:0 8px 8px 0 rgba(0,0,0,.16),0 0 4px 0 rgba(0,0,0,.08)}.vkuiModalCardBase--desktop .vkuiModalCardBase__container{border-radius:8px;box-shadow:0 16px 16px rgba(0,0,0,.16),0 0 8px rgba(0,0,0,.12)}
@@ -13,6 +13,7 @@ import { PanelHeaderButton } from "../PanelHeaderButton/PanelHeaderButton";
13
13
  import { IOS } from "../../lib/platform";
14
14
  import ModalDismissButton from "../ModalDismissButton/ModalDismissButton";
15
15
  import { Icon24Dismiss } from '@vkontakte/icons';
16
+ import { useKeyboard } from "../../hooks/useKeyboard";
16
17
  import "./ModalCardBase.css";
17
18
  export var ModalCardBase = withAdaptivity(function (_ref) {
18
19
  var getRootRef = _ref.getRootRef,
@@ -30,6 +31,7 @@ export var ModalCardBase = withAdaptivity(function (_ref) {
30
31
 
31
32
  var platform = usePlatform();
32
33
  var isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);
34
+ var isSoftwareKeyboardOpened = useKeyboard().isOpened;
33
35
  var canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;
34
36
  var canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;
35
37
  return createScopedElement("div", _extends({}, restProps, {
@@ -38,7 +40,9 @@ export var ModalCardBase = withAdaptivity(function (_ref) {
38
40
  }),
39
41
  ref: getRootRef
40
42
  }), createScopedElement("div", {
41
- vkuiClass: "ModalCardBase__container"
43
+ vkuiClass: classNames('ModalCardBase__container', {
44
+ 'ModalCardBase__container--softwareKeyboardOpened': isSoftwareKeyboardOpened
45
+ })
42
46
  }, hasReactNode(icon) && createScopedElement("div", {
43
47
  vkuiClass: "ModalCardBase__icon"
44
48
  }, icon), hasReactNode(header) && createScopedElement(Title, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Headline","classNames","getClassName","usePlatform","ViewHeight","ViewWidth","withAdaptivity","PanelHeaderButton","IOS","ModalDismissButton","Icon24Dismiss","ModalCardBase","getRootRef","icon","header","subheader","children","actions","actionsLayout","viewWidth","hasMouse","viewHeight","onClose","restProps","platform","isDesktop","SMALL_TABLET","MEDIUM","canShowCloseBtn","canShowCloseBtnIos"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,KAAP;AACA,OAAOC,QAAP;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAA0BC,UAA1B,EAAsCC,SAAtC,EAAiDC,cAAjD;AAEA,SAASC,iBAAT;AACA,SAASC,GAAT;AACA,OAAOC,kBAAP;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA;AAkCA,OAAO,IAAMC,aAA2C,GAAGL,cAAc,CAAC,gBAa9B;AAAA,MAZ1CM,UAY0C,QAZ1CA,UAY0C;AAAA,MAX1CC,IAW0C,QAX1CA,IAW0C;AAAA,MAV1CC,MAU0C,QAV1CA,MAU0C;AAAA,MAT1CC,SAS0C,QAT1CA,SAS0C;AAAA,MAR1CC,QAQ0C,QAR1CA,QAQ0C;AAAA,MAP1CC,OAO0C,QAP1CA,OAO0C;AAAA,MAN1CC,aAM0C,QAN1CA,aAM0C;AAAA,MAL1CC,SAK0C,QAL1CA,SAK0C;AAAA,MAJ1CC,QAI0C,QAJ1CA,QAI0C;AAAA,MAH1CC,UAG0C,QAH1CA,UAG0C;AAAA,MAF1CC,OAE0C,QAF1CA,OAE0C;AAAA,MADvCC,SACuC;;AAC1C,MAAMC,QAAQ,GAAGrB,WAAW,EAA5B;AACA,MAAMsB,SAAS,GAAGN,SAAS,IAAId,SAAS,CAACqB,YAAvB,KAAwCN,QAAQ,IAAIC,UAAU,IAAIjB,UAAU,CAACuB,MAA7E,CAAlB;AAEA,MAAMC,eAAe,GAAGT,SAAS,IAAId,SAAS,CAACqB,YAA/C;AACA,MAAMG,kBAAkB,GAAGL,QAAQ,KAAKhB,GAAb,IAAoB,CAACoB,eAAhD;AAEA,SACE,wCACML,SADN;AAEE,IAAA,SAAS,EAAEtB,UAAU,CAACC,YAAY,CAAC,eAAD,EAAkBsB,QAAlB,CAAb,EAA0C;AAC7D,gCAA0BC;AADmC,KAA1C,CAFvB;AAKE,IAAA,GAAG,EAAEb;AALP,MAOE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGd,YAAY,CAACe,IAAD,CAAZ,IAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,IAAtC,CADzB,EAEGf,YAAY,CAACgB,MAAD,CAAZ,IAAwB,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,UAAxB;AAAmC,IAAA,SAAS,EAAC;AAA7C,KAAsEA,MAAtE,CAF3B,EAGGhB,YAAY,CAACiB,SAAD,CAAZ,IAA2B,oBAAC,QAAD;AAAU,IAAA,MAAM,EAAC,SAAjB;AAA2B,IAAA,SAAS,EAAC;AAArC,KAAiEA,SAAjE,CAH9B,EAKGC,QALH,EAOGlB,YAAY,CAACmB,OAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAEhB,UAAU,CAAC,wBAAD,EAA2B;AACnD,mCAA6BiB,aAAa,KAAK;AADI,KAA3B;AAA1B,KAGGD,OAHH,CARJ,EAeGW,eAAe,IAAI,oBAAC,kBAAD;AAAoB,IAAA,OAAO,EAAEN;AAA7B,IAftB,EAgBGO,kBAAkB,IACjB,oBAAC,iBAAD;AAAmB,IAAA,SAAS,EAAC,oBAA7B;AAAkD,IAAA,OAAO,EAAEP;AAA3D,KACE,oBAAC,aAAD,OADF,CAjBJ,CAPF,CADF;AAgCD,CApDwE,EAoDtE;AACDH,EAAAA,SAAS,EAAE,IADV;AAEDE,EAAAA,UAAU,EAAE,IAFX;AAGDD,EAAAA,QAAQ,EAAE;AAHT,CApDsE,CAAlE","sourcesContent":["import * as React from 'react';\nimport { hasReactNode } from '../../lib/utils';\nimport Title from '../Typography/Title/Title';\nimport Headline from '../Typography/Headline/Headline';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { AdaptivityProps, ViewHeight, ViewWidth, withAdaptivity } from '../../hoc/withAdaptivity';\nimport { HasRootRef } from '../../types';\nimport { PanelHeaderButton } from '../PanelHeaderButton/PanelHeaderButton';\nimport { IOS } from '../../lib/platform';\nimport ModalDismissButton from '../ModalDismissButton/ModalDismissButton';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport './ModalCardBase.css';\n\nexport interface ModalCardBaseProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия.\n *\n * Рекомендуется использовать `<Button size=\"l\" mode=\"primary\" />` или `<Button size=\"l\" mode=\"secondary\" />`\n */\n actions?: React.ReactNode;\n\n /**\n * Тип отображения кнопок: вертикальный или горизонтальный\n */\n actionsLayout?: 'vertical' | 'horizontal';\n onClose?: VoidFunction;\n}\n\nexport const ModalCardBase: React.FC<ModalCardBaseProps> = withAdaptivity(({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n viewWidth,\n hasMouse,\n viewHeight,\n onClose,\n ...restProps\n}: ModalCardBaseProps & AdaptivityProps) => {\n const platform = usePlatform();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;\n const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('ModalCardBase', platform), {\n 'ModalCardBase--desktop': isDesktop,\n })}\n ref={getRootRef}\n >\n <div vkuiClass=\"ModalCardBase__container\">\n {hasReactNode(icon) && <div vkuiClass=\"ModalCardBase__icon\">{icon}</div>}\n {hasReactNode(header) && <Title level=\"2\" weight=\"semibold\" vkuiClass=\"ModalCardBase__header\">{header}</Title>}\n {hasReactNode(subheader) && <Headline weight=\"regular\" vkuiClass=\"ModalCardBase__subheader\">{subheader}</Headline>}\n\n {children}\n\n {hasReactNode(actions) &&\n <div vkuiClass={classNames('ModalCardBase__actions', {\n 'ModalCardBase__actions--v': actionsLayout === 'vertical',\n })}>\n {actions}\n </div>\n }\n\n {canShowCloseBtn && <ModalDismissButton onClick={onClose} />}\n {canShowCloseBtnIos &&\n <PanelHeaderButton vkuiClass=\"ModalCard__dismiss\" onClick={onClose}>\n <Icon24Dismiss />\n </PanelHeaderButton>\n }\n </div>\n </div>\n );\n}, {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n});\n\n"],"file":"ModalCardBase.js"}
1
+ {"version":3,"sources":["../../../../src/components/ModalCardBase/ModalCardBase.tsx"],"names":["hasReactNode","Title","Headline","classNames","getClassName","usePlatform","ViewHeight","ViewWidth","withAdaptivity","PanelHeaderButton","IOS","ModalDismissButton","Icon24Dismiss","useKeyboard","ModalCardBase","getRootRef","icon","header","subheader","children","actions","actionsLayout","viewWidth","hasMouse","viewHeight","onClose","restProps","platform","isDesktop","SMALL_TABLET","MEDIUM","isSoftwareKeyboardOpened","isOpened","canShowCloseBtn","canShowCloseBtnIos"],"mappings":";;;;AACA,SAASA,YAAT;AACA,OAAOC,KAAP;AACA,OAAOC,QAAP;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAA0BC,UAA1B,EAAsCC,SAAtC,EAAiDC,cAAjD;AAEA,SAASC,iBAAT;AACA,SAASC,GAAT;AACA,OAAOC,kBAAP;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,WAAT;AACA;AAkCA,OAAO,IAAMC,aAA2C,GAAGN,cAAc,CAAC,gBAa9B;AAAA,MAZ1CO,UAY0C,QAZ1CA,UAY0C;AAAA,MAX1CC,IAW0C,QAX1CA,IAW0C;AAAA,MAV1CC,MAU0C,QAV1CA,MAU0C;AAAA,MAT1CC,SAS0C,QAT1CA,SAS0C;AAAA,MAR1CC,QAQ0C,QAR1CA,QAQ0C;AAAA,MAP1CC,OAO0C,QAP1CA,OAO0C;AAAA,MAN1CC,aAM0C,QAN1CA,aAM0C;AAAA,MAL1CC,SAK0C,QAL1CA,SAK0C;AAAA,MAJ1CC,QAI0C,QAJ1CA,QAI0C;AAAA,MAH1CC,UAG0C,QAH1CA,UAG0C;AAAA,MAF1CC,OAE0C,QAF1CA,OAE0C;AAAA,MADvCC,SACuC;;AAC1C,MAAMC,QAAQ,GAAGtB,WAAW,EAA5B;AACA,MAAMuB,SAAS,GAAGN,SAAS,IAAIf,SAAS,CAACsB,YAAvB,KAAwCN,QAAQ,IAAIC,UAAU,IAAIlB,UAAU,CAACwB,MAA7E,CAAlB;AACA,MAAMC,wBAAwB,GAAGlB,WAAW,GAAGmB,QAA/C;AAEA,MAAMC,eAAe,GAAGX,SAAS,IAAIf,SAAS,CAACsB,YAA/C;AACA,MAAMK,kBAAkB,GAAGP,QAAQ,KAAKjB,GAAb,IAAoB,CAACuB,eAAhD;AAEA,SACE,wCACMP,SADN;AAEE,IAAA,SAAS,EAAEvB,UAAU,CAACC,YAAY,CAAC,eAAD,EAAkBuB,QAAlB,CAAb,EAA0C;AAC7D,gCAA0BC;AADmC,KAA1C,CAFvB;AAKE,IAAA,GAAG,EAAEb;AALP,MAOE;AAAK,IAAA,SAAS,EAAEZ,UAAU,CAAC,0BAAD,EAA6B;AACrD,0DAAoD4B;AADC,KAA7B;AAA1B,KAGG/B,YAAY,CAACgB,IAAD,CAAZ,IAAsB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,IAAtC,CAHzB,EAIGhB,YAAY,CAACiB,MAAD,CAAZ,IAAwB,oBAAC,KAAD;AAAO,IAAA,KAAK,EAAC,GAAb;AAAiB,IAAA,MAAM,EAAC,UAAxB;AAAmC,IAAA,SAAS,EAAC;AAA7C,KAAsEA,MAAtE,CAJ3B,EAKGjB,YAAY,CAACkB,SAAD,CAAZ,IAA2B,oBAAC,QAAD;AAAU,IAAA,MAAM,EAAC,SAAjB;AAA2B,IAAA,SAAS,EAAC;AAArC,KAAiEA,SAAjE,CAL9B,EAOGC,QAPH,EASGnB,YAAY,CAACoB,OAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAEjB,UAAU,CAAC,wBAAD,EAA2B;AACnD,mCAA6BkB,aAAa,KAAK;AADI,KAA3B;AAA1B,KAGGD,OAHH,CAVJ,EAiBGa,eAAe,IAAI,oBAAC,kBAAD;AAAoB,IAAA,OAAO,EAAER;AAA7B,IAjBtB,EAkBGS,kBAAkB,IACjB,oBAAC,iBAAD;AAAmB,IAAA,SAAS,EAAC,oBAA7B;AAAkD,IAAA,OAAO,EAAET;AAA3D,KACE,oBAAC,aAAD,OADF,CAnBJ,CAPF,CADF;AAkCD,CAvDwE,EAuDtE;AACDH,EAAAA,SAAS,EAAE,IADV;AAEDE,EAAAA,UAAU,EAAE,IAFX;AAGDD,EAAAA,QAAQ,EAAE;AAHT,CAvDsE,CAAlE","sourcesContent":["import * as React from 'react';\nimport { hasReactNode } from '../../lib/utils';\nimport Title from '../Typography/Title/Title';\nimport Headline from '../Typography/Headline/Headline';\nimport { classNames } from '../../lib/classNames';\nimport { getClassName } from '../../helpers/getClassName';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { AdaptivityProps, ViewHeight, ViewWidth, withAdaptivity } from '../../hoc/withAdaptivity';\nimport { HasRootRef } from '../../types';\nimport { PanelHeaderButton } from '../PanelHeaderButton/PanelHeaderButton';\nimport { IOS } from '../../lib/platform';\nimport ModalDismissButton from '../ModalDismissButton/ModalDismissButton';\nimport { Icon24Dismiss } from '@vkontakte/icons';\nimport { useKeyboard } from '../../hooks/useKeyboard';\nimport './ModalCardBase.css';\n\nexport interface ModalCardBaseProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement> {\n /**\n * Иконка.\n *\n * Может быть компонентом иконки, например, `<Icon56MoneyTransferOutline />`, или `<Avatar size={72} src=\"\" />`\n */\n icon?: React.ReactNode;\n\n /**\n * Заголовок карточки\n */\n header?: React.ReactNode;\n\n /**\n * Подзаголовок\n */\n subheader?: React.ReactNode;\n\n /**\n * Кнопки-действия.\n *\n * Рекомендуется использовать `<Button size=\"l\" mode=\"primary\" />` или `<Button size=\"l\" mode=\"secondary\" />`\n */\n actions?: React.ReactNode;\n\n /**\n * Тип отображения кнопок: вертикальный или горизонтальный\n */\n actionsLayout?: 'vertical' | 'horizontal';\n onClose?: VoidFunction;\n}\n\nexport const ModalCardBase: React.FC<ModalCardBaseProps> = withAdaptivity(({\n getRootRef,\n icon,\n header,\n subheader,\n children,\n actions,\n actionsLayout,\n viewWidth,\n hasMouse,\n viewHeight,\n onClose,\n ...restProps\n}: ModalCardBaseProps & AdaptivityProps) => {\n const platform = usePlatform();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n const isSoftwareKeyboardOpened = useKeyboard().isOpened;\n\n const canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;\n const canShowCloseBtnIos = platform === IOS && !canShowCloseBtn;\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('ModalCardBase', platform), {\n 'ModalCardBase--desktop': isDesktop,\n })}\n ref={getRootRef}\n >\n <div vkuiClass={classNames('ModalCardBase__container', {\n 'ModalCardBase__container--softwareKeyboardOpened': isSoftwareKeyboardOpened,\n })}>\n {hasReactNode(icon) && <div vkuiClass=\"ModalCardBase__icon\">{icon}</div>}\n {hasReactNode(header) && <Title level=\"2\" weight=\"semibold\" vkuiClass=\"ModalCardBase__header\">{header}</Title>}\n {hasReactNode(subheader) && <Headline weight=\"regular\" vkuiClass=\"ModalCardBase__subheader\">{subheader}</Headline>}\n\n {children}\n\n {hasReactNode(actions) &&\n <div vkuiClass={classNames('ModalCardBase__actions', {\n 'ModalCardBase__actions--v': actionsLayout === 'vertical',\n })}>\n {actions}\n </div>\n }\n\n {canShowCloseBtn && <ModalDismissButton onClick={onClose} />}\n {canShowCloseBtnIos &&\n <PanelHeaderButton vkuiClass=\"ModalCard__dismiss\" onClick={onClose}>\n <Icon24Dismiss />\n </PanelHeaderButton>\n }\n </div>\n </div>\n );\n}, {\n viewWidth: true,\n viewHeight: true,\n hasMouse: true,\n});\n\n"],"file":"ModalCardBase.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"names":["React","getClassName","classNames","ModalRootContext","useModalRegistry","usePlatform","withAdaptivity","ViewHeight","ViewWidth","ModalDismissButton","multiRef","ModalType","getNavId","warnOnce","warn","ModalPage","props","platform","useContext","updateModalHeight","children","header","viewWidth","viewHeight","sizeX","hasMouse","onClose","settlingHeight","dynamicContentHeight","getModalContentRef","nav","restProps","useEffect","isDesktop","SMALL_TABLET","MEDIUM","canShowCloseBtn","modalContext","PAGE","refs","innerElement","headerElement","contentElement","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { withAdaptivity, AdaptivityProps, ViewHeight, ViewWidth } from '../../hoc/withAdaptivity';\nimport ModalDismissButton from '../ModalDismissButton/ModalDismissButton';\nimport { Ref } from '../../types';\nimport { multiRef } from '../../lib/utils';\nimport { ModalType } from '../ModalRoot/types';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport './ModalPage.css';\n\nexport interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, AdaptivityProps, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n onClose?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: Ref<HTMLDivElement>;\n}\n\nconst warn = warnOnce('ModalPage');\nconst ModalPage: React.FC<ModalPageProps> = (props: ModalPageProps) => {\n const platform = usePlatform();\n const { updateModalHeight } = React.useContext(ModalRootContext);\n const {\n children,\n header,\n viewWidth,\n viewHeight,\n sizeX,\n hasMouse,\n onClose,\n settlingHeight,\n dynamicContentHeight,\n getModalContentRef,\n nav,\n ...restProps\n } = props;\n\n React.useEffect(() => {\n updateModalHeight();\n }, [children]);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n const canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId(props, warn), ModalType.PAGE);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('ModalPage', platform), `ModalPage--sizeX-${sizeX}`, {\n 'ModalPage--desktop': isDesktop,\n })}\n >\n <div vkuiClass=\"ModalPage__in-wrap\" ref={refs.innerElement}>\n <div vkuiClass=\"ModalPage__in\">\n <div vkuiClass=\"ModalPage__header\" ref={refs.headerElement}>\n {header}\n </div>\n\n <div vkuiClass=\"ModalPage__content-wrap\">\n <div vkuiClass=\"ModalPage__content\" ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}>\n <div vkuiClass=\"ModalPage__content-in\">\n {children}\n </div>\n </div>\n </div>\n {canShowCloseBtn && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </div>\n );\n};\n\nModalPage.defaultProps = {\n settlingHeight: 75,\n};\n\nexport default withAdaptivity(ModalPage, {\n viewWidth: true,\n viewHeight: true,\n sizeX: true,\n hasMouse: true,\n});\n"],"file":"ModalPage.js"}
1
+ {"version":3,"sources":["../../../../src/components/ModalPage/ModalPage.tsx"],"names":["React","getClassName","classNames","ModalRootContext","useModalRegistry","usePlatform","withAdaptivity","ViewHeight","ViewWidth","ModalDismissButton","multiRef","ModalType","getNavId","warnOnce","warn","ModalPage","props","platform","useContext","updateModalHeight","children","header","viewWidth","viewHeight","sizeX","hasMouse","onClose","settlingHeight","dynamicContentHeight","getModalContentRef","nav","restProps","useEffect","isDesktop","SMALL_TABLET","MEDIUM","canShowCloseBtn","modalContext","PAGE","refs","innerElement","headerElement","contentElement","defaultProps"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { ModalRootContext, useModalRegistry } from '../ModalRoot/ModalRootContext';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { withAdaptivity, AdaptivityProps, ViewHeight, ViewWidth } from '../../hoc/withAdaptivity';\nimport ModalDismissButton from '../ModalDismissButton/ModalDismissButton';\nimport { multiRef } from '../../lib/utils';\nimport { ModalType } from '../ModalRoot/types';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport './ModalPage.css';\n\nexport interface ModalPageProps extends React.HTMLAttributes<HTMLDivElement>, AdaptivityProps, NavIdProps {\n /**\n * Шапка модальной страницы, `<ModalPageHeader />`\n */\n header?: React.ReactNode;\n onClose?: VoidFunction;\n /**\n * Процент, на который изначально будет открыта модальная страница. При `settlingHeight={100}` модальная страница раскрывается на всю высоту.\n */\n settlingHeight?: number;\n /**\n * Если высота контента в модальной странице может поменяться, нужно установить это свойство\n */\n dynamicContentHeight?: boolean;\n getModalContentRef?: React.Ref<HTMLDivElement>;\n}\n\nconst warn = warnOnce('ModalPage');\nconst ModalPage: React.FC<ModalPageProps> = (props: ModalPageProps) => {\n const platform = usePlatform();\n const { updateModalHeight } = React.useContext(ModalRootContext);\n const {\n children,\n header,\n viewWidth,\n viewHeight,\n sizeX,\n hasMouse,\n onClose,\n settlingHeight,\n dynamicContentHeight,\n getModalContentRef,\n nav,\n ...restProps\n } = props;\n\n React.useEffect(() => {\n updateModalHeight();\n }, [children]);\n\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n const canShowCloseBtn = viewWidth >= ViewWidth.SMALL_TABLET;\n\n const modalContext = React.useContext(ModalRootContext);\n const { refs } = useModalRegistry(getNavId(props, warn), ModalType.PAGE);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(getClassName('ModalPage', platform), `ModalPage--sizeX-${sizeX}`, {\n 'ModalPage--desktop': isDesktop,\n })}\n >\n <div vkuiClass=\"ModalPage__in-wrap\" ref={refs.innerElement}>\n <div vkuiClass=\"ModalPage__in\">\n <div vkuiClass=\"ModalPage__header\" ref={refs.headerElement}>\n {header}\n </div>\n\n <div vkuiClass=\"ModalPage__content-wrap\">\n <div vkuiClass=\"ModalPage__content\" ref={multiRef<HTMLDivElement>(refs.contentElement, getModalContentRef)}>\n <div vkuiClass=\"ModalPage__content-in\">\n {children}\n </div>\n </div>\n </div>\n {canShowCloseBtn && <ModalDismissButton onClick={onClose || modalContext.onClose} />}\n </div>\n </div>\n </div>\n );\n};\n\nModalPage.defaultProps = {\n settlingHeight: 75,\n};\n\nexport default withAdaptivity(ModalPage, {\n viewWidth: true,\n viewHeight: true,\n sizeX: true,\n hasMouse: true,\n});\n"],"file":"ModalPage.js"}
@@ -1 +1 @@
1
- .vkuiModalRoot{width:100%;height:100%}.vkuiModalRoot__mask{opacity:1;width:100%;height:100%;position:absolute;left:0;top:0;background:rgba(0,0,0,.4);-webkit-user-select:none;user-select:none;transition:opacity 167ms ease-out;-webkit-animation:vkui-animation-fadeIn .32s ease;animation:vkui-animation-fadeIn .32s ease}.vkuiModalRoot--touched .vkuiModalRoot__mask{transition:none}.vkuiModalRoot--switching .vkuiModalRoot__mask{pointer-events:none}.vkuiModalRoot__viewport{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:not(.vkuiModalRoot--desktop).vkuiModalRoot--ios .vkuiModalRoot__viewport{top:20px;top:var(--safe-area-inset-top)}:not(.vkuiModalRoot--desktop).vkuiModalRoot--vkapps.vkuiModalRoot--android .vkuiModalRoot__viewport{top:56px;top:var(--panelheader_height_android)}:not(.vkuiModalRoot--desktop).vkuiModalRoot--vkapps.vkuiModalRoot--ios .vkuiModalRoot__viewport{top:calc(20px + 52px);top:calc(var(--safe-area-inset-top) + var(--panelheader_height_ios))}.vkuiModalRoot__modal{position:absolute;width:100%;height:100%;box-sizing:border-box;z-index:1}
1
+ .vkuiModalRoot{width:100%;height:100%}.vkuiModalRoot__mask{opacity:1;width:100%;height:100%;position:absolute;left:0;top:0;background:rgba(0,0,0,.4);-webkit-user-select:none;user-select:none;transition:opacity 167ms ease-out;-webkit-animation:vkui-animation-fadeIn .32s ease;animation:vkui-animation-fadeIn .32s ease}.vkuiModalRoot--touched .vkuiModalRoot__mask{transition:none}.vkuiModalRoot--switching .vkuiModalRoot__mask{pointer-events:none}.vkuiModalRoot__viewport{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:not(.vkuiModalRoot--desktop).vkuiModalRoot--ios .vkuiModalRoot__viewport{top:20px;top:var(--safe-area-inset-top)}:not(.vkuiModalRoot--desktop).vkuiModalRoot--vkapps.vkuiModalRoot--android .vkuiModalRoot__viewport{top:56px;top:var(--panelheader_height_android)}:not(.vkuiModalRoot--desktop).vkuiModalRoot--vkapps.vkuiModalRoot--ios .vkuiModalRoot__viewport{top:calc(20px + 52px);top:calc(var(--safe-area-inset-top) + var(--panelheader_height_ios))}.vkuiModalRoot__modal{position:absolute;width:100%;height:100%;box-sizing:border-box;z-index:1}@-webkit-keyframes vkui-animation-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes vkui-animation-fadeIn{0%{opacity:0}to{opacity:1}}
@@ -10,7 +10,7 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
10
  var _excluded = ["id"];
11
11
  import { createScopedElement } from "../../lib/jsxRuntime";
12
12
  import * as React from 'react';
13
- import Touch from "../Touch/Touch";
13
+ import { Touch } from "../Touch/Touch";
14
14
  import TouchRootContext from "../Touch/TouchContext";
15
15
  import { getClassName } from "../../helpers/getClassName";
16
16
  import { classNames } from "../../lib/classNames";