@vkontakte/vkui 7.0.0 → 7.1.0

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 (683) hide show
  1. package/dist/components/ActionSheet/ActionSheet.d.ts +2 -1
  2. package/dist/components/ActionSheet/ActionSheet.d.ts.map +1 -1
  3. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  4. package/dist/components/ActionSheet/types.d.ts +1 -1
  5. package/dist/components/ActionSheet/types.d.ts.map +1 -1
  6. package/dist/components/ActionSheet/types.js.map +1 -1
  7. package/dist/components/Alert/Alert.d.ts +1 -1
  8. package/dist/components/Alert/Alert.js.map +1 -1
  9. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  10. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  11. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  12. package/dist/components/AppRoot/AppRootContext.d.ts +2 -2
  13. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  14. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  15. package/dist/components/AppRoot/AppRootPortal.d.ts +1 -1
  16. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  17. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  18. package/dist/components/AppRoot/ScrollContext.d.ts +1 -1
  19. package/dist/components/AppRoot/ScrollContext.d.ts.map +1 -1
  20. package/dist/components/AppRoot/ScrollContext.js.map +1 -1
  21. package/dist/components/AspectRatio/AspectRatio.d.ts +7 -3
  22. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  23. package/dist/components/AspectRatio/AspectRatio.js +1 -1
  24. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  25. package/dist/components/Calendar/Calendar.d.ts +3 -4
  26. package/dist/components/Calendar/Calendar.d.ts.map +1 -1
  27. package/dist/components/Calendar/Calendar.js +81 -64
  28. package/dist/components/Calendar/Calendar.js.map +1 -1
  29. package/dist/components/CalendarDay/CalendarDay.d.ts +3 -0
  30. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  31. package/dist/components/CalendarDay/CalendarDay.js +3 -1
  32. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  33. package/dist/components/CalendarDays/CalendarDays.d.ts +3 -0
  34. package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
  35. package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
  36. package/dist/components/CalendarHeader/CalendarHeader.d.ts +12 -0
  37. package/dist/components/CalendarHeader/CalendarHeader.d.ts.map +1 -1
  38. package/dist/components/CalendarHeader/CalendarHeader.js +4 -2
  39. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  40. package/dist/components/CalendarRange/CalendarRange.d.ts +7 -1
  41. package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
  42. package/dist/components/CalendarRange/CalendarRange.js +108 -93
  43. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  44. package/dist/components/CalendarTime/CalendarTime.d.ts +20 -4
  45. package/dist/components/CalendarTime/CalendarTime.d.ts.map +1 -1
  46. package/dist/components/CalendarTime/CalendarTime.js +68 -9
  47. package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
  48. package/dist/components/CardScroll/CardScroll.d.ts +2 -3
  49. package/dist/components/CardScroll/CardScroll.d.ts.map +1 -1
  50. package/dist/components/CardScroll/CardScroll.js +6 -2
  51. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  52. package/dist/components/CarouselBase/Bullets.d.ts +16 -0
  53. package/dist/components/CarouselBase/Bullets.d.ts.map +1 -0
  54. package/dist/components/CarouselBase/Bullets.js +21 -0
  55. package/dist/components/CarouselBase/Bullets.js.map +1 -0
  56. package/dist/components/CarouselBase/CarouselBase.d.ts +4 -0
  57. package/dist/components/CarouselBase/CarouselBase.d.ts.map +1 -0
  58. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +175 -98
  59. package/dist/components/CarouselBase/CarouselBase.js.map +1 -0
  60. package/dist/components/CarouselBase/CarouselViewPort.d.ts +14 -0
  61. package/dist/components/CarouselBase/CarouselViewPort.d.ts.map +1 -0
  62. package/dist/components/CarouselBase/CarouselViewPort.js +29 -0
  63. package/dist/components/CarouselBase/CarouselViewPort.js.map +1 -0
  64. package/dist/components/CarouselBase/ScrollArrows.d.ts +23 -0
  65. package/dist/components/CarouselBase/ScrollArrows.d.ts.map +1 -0
  66. package/dist/components/CarouselBase/ScrollArrows.js +34 -0
  67. package/dist/components/CarouselBase/ScrollArrows.js.map +1 -0
  68. package/dist/components/CarouselBase/constants.d.ts.map +1 -0
  69. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
  70. package/dist/components/CarouselBase/constants.js.map +1 -0
  71. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.d.ts +13 -4
  72. package/dist/components/CarouselBase/helpers.d.ts.map +1 -0
  73. package/dist/{cssm/components/BaseGallery → components}/CarouselBase/helpers.js +41 -5
  74. package/dist/components/CarouselBase/helpers.js.map +1 -0
  75. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.d.ts +1 -1
  76. package/dist/components/CarouselBase/hooks.d.ts.map +1 -0
  77. package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
  78. package/dist/components/CarouselBase/hooks.js.map +1 -0
  79. package/dist/components/CarouselBase/types.d.ts +125 -0
  80. package/dist/components/CarouselBase/types.d.ts.map +1 -0
  81. package/dist/components/CarouselBase/types.js.map +1 -0
  82. package/dist/components/ChipsInput/ChipsInput.d.ts +1 -1
  83. package/dist/components/ChipsInput/ChipsInput.d.ts.map +1 -1
  84. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  85. package/dist/components/ChipsInput/useChipsInput.d.ts +1 -1
  86. package/dist/components/ChipsInput/useChipsInput.d.ts.map +1 -1
  87. package/dist/components/ChipsInput/useChipsInput.js.map +1 -1
  88. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  89. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  90. package/dist/components/ChipsSelect/useChipsSelect.d.ts +1 -1
  91. package/dist/components/ChipsSelect/useChipsSelect.d.ts.map +1 -1
  92. package/dist/components/ChipsSelect/useChipsSelect.js.map +1 -1
  93. package/dist/components/Clickable/useState.js.map +1 -1
  94. package/dist/components/Clickable/useStateWithDelay.js +1 -1
  95. package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
  96. package/dist/components/ConfigProvider/ConfigProvider.d.ts.map +1 -1
  97. package/dist/components/ConfigProvider/ConfigProvider.js +8 -23
  98. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  99. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  100. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  101. package/dist/components/ConfigProvider/ConfigProviderContext.js +22 -0
  102. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  103. package/dist/components/ConfigProvider/ConfigProviderOverride.d.ts.map +1 -1
  104. package/dist/components/ConfigProvider/ConfigProviderOverride.js +2 -3
  105. package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  106. package/dist/components/CustomScrollView/CustomScrollView.d.ts +5 -1
  107. package/dist/components/CustomScrollView/CustomScrollView.d.ts.map +1 -1
  108. package/dist/components/CustomScrollView/CustomScrollView.js +9 -4
  109. package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
  110. package/dist/components/CustomSelect/CustomSelect.d.ts +6 -2
  111. package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
  112. package/dist/components/CustomSelect/CustomSelect.js +8 -4
  113. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  114. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +1 -1
  115. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
  116. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  117. package/dist/components/DateInput/DateInput.d.ts +24 -2
  118. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  119. package/dist/components/DateInput/DateInput.js +41 -6
  120. package/dist/components/DateInput/DateInput.js.map +1 -1
  121. package/dist/components/DateRangeInput/DateRangeInput.d.ts +19 -1
  122. package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  123. package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
  124. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  125. package/dist/components/Epic/Epic.d.ts.map +1 -1
  126. package/dist/components/Epic/Epic.js.map +1 -1
  127. package/dist/components/FixedLayout/FixedLayout.d.ts.map +1 -1
  128. package/dist/components/FixedLayout/FixedLayout.js +1 -2
  129. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  130. package/dist/components/Gallery/Gallery.d.ts +2 -3
  131. package/dist/components/Gallery/Gallery.d.ts.map +1 -1
  132. package/dist/components/Gallery/Gallery.js +3 -6
  133. package/dist/components/Gallery/Gallery.js.map +1 -1
  134. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +9 -1
  135. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts.map +1 -1
  136. package/dist/components/HorizontalScroll/HorizontalScroll.js +6 -4
  137. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  138. package/dist/components/Image/Image.d.ts +1 -0
  139. package/dist/components/Image/Image.d.ts.map +1 -1
  140. package/dist/components/Image/Image.js +2 -0
  141. package/dist/components/Image/Image.js.map +1 -1
  142. package/dist/components/ImageBase/ImageBase.d.ts +8 -1
  143. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  144. package/dist/components/ImageBase/ImageBase.js +39 -11
  145. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  146. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts +29 -0
  147. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.d.ts.map +1 -0
  148. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +96 -0
  149. package/dist/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
  150. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts +4 -0
  151. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.d.ts.map +1 -0
  152. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
  153. package/dist/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
  154. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts +1 -1
  155. package/dist/components/ImageBase/ImageBaseOverlay/hooks.d.ts.map +1 -1
  156. package/dist/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  157. package/dist/components/ImageBase/context.d.ts.map +1 -1
  158. package/dist/components/ImageBase/context.js +3 -1
  159. package/dist/components/ImageBase/context.js.map +1 -1
  160. package/dist/components/ImageBase/types.d.ts +2 -0
  161. package/dist/components/ImageBase/types.d.ts.map +1 -1
  162. package/dist/components/ImageBase/types.js.map +1 -1
  163. package/dist/components/ImageBase/validators.d.ts +2 -1
  164. package/dist/components/ImageBase/validators.d.ts.map +1 -1
  165. package/dist/components/ImageBase/validators.js.map +1 -1
  166. package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
  167. package/dist/components/ModalCard/ModalCard.js +3 -2
  168. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  169. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  170. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  171. package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
  172. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  173. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  174. package/dist/components/NativeSelect/NativeSelect.d.ts +4 -2
  175. package/dist/components/NativeSelect/NativeSelect.d.ts.map +1 -1
  176. package/dist/components/NativeSelect/NativeSelect.js +4 -3
  177. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  178. package/dist/components/Pagination/Pagination.d.ts +14 -1
  179. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  180. package/dist/components/Pagination/Pagination.js +13 -4
  181. package/dist/components/Pagination/Pagination.js.map +1 -1
  182. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts +2 -0
  183. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.d.ts.map +1 -1
  184. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
  185. package/dist/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  186. package/dist/components/Popover/Popover.d.ts +2 -2
  187. package/dist/components/Popover/Popover.d.ts.map +1 -1
  188. package/dist/components/Popover/Popover.js +6 -126
  189. package/dist/components/Popover/Popover.js.map +1 -1
  190. package/dist/components/Popover/usePopover.d.ts +14 -0
  191. package/dist/components/Popover/usePopover.d.ts.map +1 -0
  192. package/dist/components/Popover/usePopover.js +138 -0
  193. package/dist/components/Popover/usePopover.js.map +1 -0
  194. package/dist/components/Popper/Popper.d.ts +2 -2
  195. package/dist/components/Popper/Popper.d.ts.map +1 -1
  196. package/dist/components/Popper/Popper.js +9 -2
  197. package/dist/components/Popper/Popper.js.map +1 -1
  198. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  199. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  200. package/dist/components/Removable/Removable.d.ts +2 -2
  201. package/dist/components/Removable/Removable.js.map +1 -1
  202. package/dist/components/RichCell/RichCell.d.ts +11 -1
  203. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  204. package/dist/components/RichCell/RichCell.js +15 -8
  205. package/dist/components/RichCell/RichCell.js.map +1 -1
  206. package/dist/components/Root/Root.d.ts.map +1 -1
  207. package/dist/components/Root/Root.js +3 -1
  208. package/dist/components/Root/Root.js.map +1 -1
  209. package/dist/components/SegmentedControl/SegmentedControl.d.ts +2 -2
  210. package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  211. package/dist/components/SegmentedControl/SegmentedControl.js +30 -10
  212. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
  213. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
  214. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts.map +1 -1
  215. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +6 -17
  216. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  217. package/dist/components/Select/Select.d.ts.map +1 -1
  218. package/dist/components/Select/Select.js +3 -2
  219. package/dist/components/Select/Select.js.map +1 -1
  220. package/dist/components/Skeleton/Skeleton.js +2 -2
  221. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  222. package/dist/components/Slider/Slider.d.ts +9 -1
  223. package/dist/components/Slider/Slider.d.ts.map +1 -1
  224. package/dist/components/Slider/Slider.js +5 -1
  225. package/dist/components/Slider/Slider.js.map +1 -1
  226. package/dist/components/Snackbar/Snackbar.js +1 -1
  227. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  228. package/dist/components/SplitCol/SplitColContext.d.ts +1 -1
  229. package/dist/components/SplitCol/SplitColContext.d.ts.map +1 -1
  230. package/dist/components/SplitCol/SplitColContext.js.map +1 -1
  231. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  232. package/dist/components/Tabs/Tabs.js +2 -82
  233. package/dist/components/Tabs/Tabs.js.map +1 -1
  234. package/dist/components/Textarea/Textarea.js +2 -2
  235. package/dist/components/Textarea/Textarea.js.map +1 -1
  236. package/dist/components/Textarea/useResizeTextarea.d.ts +1 -1
  237. package/dist/components/Textarea/useResizeTextarea.d.ts.map +1 -1
  238. package/dist/components/Textarea/useResizeTextarea.js +1 -1
  239. package/dist/components/Textarea/useResizeTextarea.js.map +1 -1
  240. package/dist/components/Tooltip/Tooltip.d.ts +3 -3
  241. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
  242. package/dist/components/Tooltip/Tooltip.js +4 -2
  243. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  244. package/dist/components/TooltipBase/TooltipBase.d.ts.map +1 -1
  245. package/dist/components/TooltipBase/TooltipBase.js +2 -0
  246. package/dist/components/TooltipBase/TooltipBase.js.map +1 -1
  247. package/dist/components/UsersStack/UsersStack.d.ts +1 -1
  248. package/dist/components/UsersStack/UsersStack.d.ts.map +1 -1
  249. package/dist/components/UsersStack/UsersStack.js +16 -5
  250. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  251. package/dist/components/View/View.d.ts.map +1 -1
  252. package/dist/components/View/View.js +3 -1
  253. package/dist/components/View/View.js.map +1 -1
  254. package/dist/components/View/ViewInfinite.d.ts.map +1 -1
  255. package/dist/components/View/ViewInfinite.js +3 -1
  256. package/dist/components/View/ViewInfinite.js.map +1 -1
  257. package/dist/components.css +1 -1
  258. package/dist/components.css.map +1 -1
  259. package/dist/context/CalendarDirectionContext.d.ts +7 -0
  260. package/dist/context/CalendarDirectionContext.d.ts.map +1 -0
  261. package/dist/context/CalendarDirectionContext.js +7 -0
  262. package/dist/context/CalendarDirectionContext.js.map +1 -0
  263. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  264. package/dist/cssm/components/ActionSheet/types.js.map +1 -1
  265. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  266. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  267. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  268. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  269. package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
  270. package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
  271. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  272. package/dist/cssm/components/Calendar/Calendar.js +79 -64
  273. package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
  274. package/dist/cssm/components/CalendarDay/CalendarDay.js +3 -1
  275. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  276. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +4 -0
  277. package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
  278. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +4 -2
  279. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  280. package/dist/cssm/components/CalendarRange/CalendarRange.js +108 -94
  281. package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
  282. package/dist/cssm/components/CalendarTime/CalendarTime.js +67 -9
  283. package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
  284. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  285. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  286. package/dist/cssm/components/CarouselBase/Bullets.js +22 -0
  287. package/dist/cssm/components/CarouselBase/Bullets.js.map +1 -0
  288. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/CarouselBase.js +164 -97
  289. package/dist/cssm/components/CarouselBase/CarouselBase.js.map +1 -0
  290. package/dist/cssm/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +21 -1
  291. package/dist/cssm/components/CarouselBase/CarouselViewPort.js +30 -0
  292. package/dist/cssm/components/CarouselBase/CarouselViewPort.js.map +1 -0
  293. package/dist/cssm/components/CarouselBase/ScrollArrows.js +35 -0
  294. package/dist/cssm/components/CarouselBase/ScrollArrows.js.map +1 -0
  295. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/constants.js +5 -1
  296. package/dist/cssm/components/CarouselBase/constants.js.map +1 -0
  297. package/dist/{components/BaseGallery → cssm/components}/CarouselBase/helpers.js +39 -5
  298. package/dist/cssm/components/CarouselBase/helpers.js.map +1 -0
  299. package/dist/cssm/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.js +2 -2
  300. package/dist/cssm/components/CarouselBase/hooks.js.map +1 -0
  301. package/dist/cssm/components/CarouselBase/types.js.map +1 -0
  302. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  303. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +1 -1
  304. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  305. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +1 -1
  306. package/dist/cssm/components/Clickable/useState.js.map +1 -1
  307. package/dist/cssm/components/Clickable/useStateWithDelay.js +1 -1
  308. package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
  309. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +8 -23
  310. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  311. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +22 -0
  312. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  313. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +2 -3
  314. package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
  315. package/dist/cssm/components/ContentCard/ContentCard.module.css +1 -0
  316. package/dist/cssm/components/CustomScrollView/CustomScrollView.js +8 -4
  317. package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
  318. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +6 -2
  319. package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -3
  320. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  321. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  322. package/dist/cssm/components/DateInput/DateInput.js +37 -5
  323. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  324. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
  325. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  326. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  327. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -2
  328. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  329. package/dist/cssm/components/FormField/FormField.module.css +11 -11
  330. package/dist/cssm/components/Gallery/Gallery.js +3 -5
  331. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  332. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -3
  333. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  334. package/dist/cssm/components/Image/Image.js +2 -0
  335. package/dist/cssm/components/Image/Image.js.map +1 -1
  336. package/dist/cssm/components/ImageBase/ImageBase.js +35 -9
  337. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  338. package/dist/cssm/components/ImageBase/ImageBase.module.css +11 -2
  339. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js +91 -0
  340. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.js.map +1 -0
  341. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
  342. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js +35 -0
  343. package/dist/cssm/components/ImageBase/ImageBaseFloatElement/helpers.js.map +1 -0
  344. package/dist/cssm/components/ImageBase/ImageBaseOverlay/hooks.js.map +1 -1
  345. package/dist/cssm/components/ImageBase/context.js +3 -1
  346. package/dist/cssm/components/ImageBase/context.js.map +1 -1
  347. package/dist/cssm/components/ImageBase/types.js.map +1 -1
  348. package/dist/cssm/components/ImageBase/validators.js.map +1 -1
  349. package/dist/cssm/components/ModalCard/ModalCard.js +1 -1
  350. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  351. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  352. package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -4
  353. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  354. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
  355. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  356. package/dist/cssm/components/Pagination/Pagination.js +10 -4
  357. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  358. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js +2 -1
  359. package/dist/cssm/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.js.map +1 -1
  360. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +5 -4
  361. package/dist/cssm/components/Popover/Popover.js +5 -93
  362. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  363. package/dist/cssm/components/Popover/usePopover.js +102 -0
  364. package/dist/cssm/components/Popover/usePopover.js.map +1 -0
  365. package/dist/cssm/components/Popper/Popper.js +6 -1
  366. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  367. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  368. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  369. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  370. package/dist/cssm/components/RichCell/RichCell.js +13 -8
  371. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  372. package/dist/cssm/components/RichCell/RichCell.module.css +17 -3
  373. package/dist/cssm/components/Root/Root.js +3 -1
  374. package/dist/cssm/components/Root/Root.js.map +1 -1
  375. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +27 -7
  376. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  377. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +5 -5
  378. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
  379. package/dist/cssm/components/Select/Select.js +1 -1
  380. package/dist/cssm/components/Select/Select.js.map +1 -1
  381. package/dist/cssm/components/Skeleton/Skeleton.js +2 -2
  382. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  383. package/dist/cssm/components/Slider/Slider.js +3 -1
  384. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  385. package/dist/cssm/components/Snackbar/Snackbar.js +1 -1
  386. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  387. package/dist/cssm/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
  388. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
  389. package/dist/cssm/components/Tabs/Tabs.js +2 -82
  390. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  391. package/dist/cssm/components/Textarea/Textarea.js +2 -2
  392. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  393. package/dist/cssm/components/Textarea/useResizeTextarea.js +1 -1
  394. package/dist/cssm/components/Textarea/useResizeTextarea.js.map +1 -1
  395. package/dist/cssm/components/Tooltip/Tooltip.js +3 -2
  396. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  397. package/dist/cssm/components/TooltipBase/TooltipBase.js +2 -0
  398. package/dist/cssm/components/TooltipBase/TooltipBase.js.map +1 -1
  399. package/dist/cssm/components/TooltipBase/TooltipBase.module.css +5 -0
  400. package/dist/cssm/components/UsersStack/UsersStack.js +15 -4
  401. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  402. package/dist/cssm/components/UsersStack/UsersStack.module.css +27 -17
  403. package/dist/cssm/components/View/View.js +3 -1
  404. package/dist/cssm/components/View/View.js.map +1 -1
  405. package/dist/cssm/components/View/ViewInfinite.js +3 -1
  406. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  407. package/dist/cssm/context/CalendarDirectionContext.js +7 -0
  408. package/dist/cssm/context/CalendarDirectionContext.js.map +1 -0
  409. package/dist/cssm/helpers/getMergedSameEventsByProps.js.map +1 -1
  410. package/dist/cssm/hooks/useDateInput.js.map +1 -1
  411. package/dist/cssm/hooks/useDirection.js.map +1 -1
  412. package/dist/cssm/hooks/useDraggableWithDomApi/types.js.map +1 -1
  413. package/dist/cssm/hooks/useEnsuredControl.js +1 -1
  414. package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
  415. package/dist/cssm/hooks/useExternRef.js.map +1 -1
  416. package/dist/cssm/hooks/useFocusTrap.js.map +1 -1
  417. package/dist/cssm/hooks/useGlobalOnClickOutside.js.map +1 -1
  418. package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
  419. package/dist/cssm/hooks/useMutationObserver.js.map +1 -1
  420. package/dist/cssm/hooks/useNativeFormResetListener.js.map +1 -1
  421. package/dist/cssm/hooks/usePatchChildren.js.map +1 -1
  422. package/dist/cssm/hooks/usePrevious.js +1 -1
  423. package/dist/cssm/hooks/usePrevious.js.map +1 -1
  424. package/dist/cssm/hooks/useResizeObserver.js +20 -4
  425. package/dist/cssm/hooks/useResizeObserver.js.map +1 -1
  426. package/dist/cssm/hooks/useStateWithPrev.js.map +1 -1
  427. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  428. package/dist/cssm/hooks/useSyncHTMLWithTokens.js.map +1 -1
  429. package/dist/cssm/hooks/useTabsNavigation.js +90 -0
  430. package/dist/cssm/hooks/useTabsNavigation.js.map +1 -0
  431. package/dist/cssm/index.js +4 -0
  432. package/dist/cssm/index.js.map +1 -1
  433. package/dist/cssm/lib/animation/useCSSTransition.js.map +1 -1
  434. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
  435. package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  436. package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  437. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
  438. package/dist/cssm/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  439. package/dist/cssm/lib/utils.js.map +1 -1
  440. package/dist/cssm/styles/constants.css +1 -0
  441. package/dist/helpers/getMergedSameEventsByProps.d.ts +1 -1
  442. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  443. package/dist/helpers/getMergedSameEventsByProps.js.map +1 -1
  444. package/dist/hooks/useDateInput.d.ts +3 -3
  445. package/dist/hooks/useDateInput.d.ts.map +1 -1
  446. package/dist/hooks/useDateInput.js.map +1 -1
  447. package/dist/hooks/useDirection.d.ts +2 -2
  448. package/dist/hooks/useDirection.d.ts.map +1 -1
  449. package/dist/hooks/useDirection.js.map +1 -1
  450. package/dist/hooks/useDraggableWithDomApi/types.d.ts +1 -1
  451. package/dist/hooks/useDraggableWithDomApi/types.d.ts.map +1 -1
  452. package/dist/hooks/useDraggableWithDomApi/types.js.map +1 -1
  453. package/dist/hooks/useEnsuredControl.js +1 -1
  454. package/dist/hooks/useEnsuredControl.js.map +1 -1
  455. package/dist/hooks/useExternRef.d.ts +1 -1
  456. package/dist/hooks/useExternRef.d.ts.map +1 -1
  457. package/dist/hooks/useExternRef.js.map +1 -1
  458. package/dist/hooks/useFocusTrap.d.ts +1 -1
  459. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  460. package/dist/hooks/useFocusTrap.js.map +1 -1
  461. package/dist/hooks/useGlobalOnClickOutside.d.ts +1 -1
  462. package/dist/hooks/useGlobalOnClickOutside.d.ts.map +1 -1
  463. package/dist/hooks/useGlobalOnClickOutside.js.map +1 -1
  464. package/dist/hooks/useKeyboardInputTracker.d.ts +1 -1
  465. package/dist/hooks/useKeyboardInputTracker.d.ts.map +1 -1
  466. package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
  467. package/dist/hooks/useMutationObserver.d.ts +1 -1
  468. package/dist/hooks/useMutationObserver.d.ts.map +1 -1
  469. package/dist/hooks/useMutationObserver.js.map +1 -1
  470. package/dist/hooks/useNativeFormResetListener.d.ts +1 -1
  471. package/dist/hooks/useNativeFormResetListener.d.ts.map +1 -1
  472. package/dist/hooks/useNativeFormResetListener.js.map +1 -1
  473. package/dist/hooks/usePatchChildren.d.ts +2 -2
  474. package/dist/hooks/usePatchChildren.d.ts.map +1 -1
  475. package/dist/hooks/usePatchChildren.js.map +1 -1
  476. package/dist/hooks/usePrevious.js +1 -1
  477. package/dist/hooks/usePrevious.js.map +1 -1
  478. package/dist/hooks/useResizeObserver.d.ts +1 -1
  479. package/dist/hooks/useResizeObserver.d.ts.map +1 -1
  480. package/dist/hooks/useResizeObserver.js +20 -4
  481. package/dist/hooks/useResizeObserver.js.map +1 -1
  482. package/dist/hooks/useStateWithPrev.d.ts.map +1 -1
  483. package/dist/hooks/useStateWithPrev.js.map +1 -1
  484. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts +1 -1
  485. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  486. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  487. package/dist/hooks/useSyncHTMLWithTokens.d.ts +1 -1
  488. package/dist/hooks/useSyncHTMLWithTokens.d.ts.map +1 -1
  489. package/dist/hooks/useSyncHTMLWithTokens.js.map +1 -1
  490. package/dist/hooks/useTabsNavigation.d.ts +5 -0
  491. package/dist/hooks/useTabsNavigation.d.ts.map +1 -0
  492. package/dist/hooks/useTabsNavigation.js +90 -0
  493. package/dist/hooks/useTabsNavigation.js.map +1 -0
  494. package/dist/index.d.ts +5 -1
  495. package/dist/index.d.ts.map +1 -1
  496. package/dist/index.js +4 -0
  497. package/dist/index.js.map +1 -1
  498. package/dist/lib/animation/useCSSTransition.d.ts +1 -1
  499. package/dist/lib/animation/useCSSTransition.d.ts.map +1 -1
  500. package/dist/lib/animation/useCSSTransition.js.map +1 -1
  501. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +1 -1
  502. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
  503. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +4 -4
  504. package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
  505. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +10 -1
  506. package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
  507. package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
  508. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts +1 -1
  509. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.d.ts.map +1 -1
  510. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js +10 -3
  511. package/dist/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.js.map +1 -1
  512. package/dist/lib/utils.d.ts +1 -1
  513. package/dist/lib/utils.d.ts.map +1 -1
  514. package/dist/lib/utils.js.map +1 -1
  515. package/dist/vkui.css +1 -1
  516. package/dist/vkui.css.map +1 -1
  517. package/package.json +6 -6
  518. package/src/components/ActionSheet/ActionSheet.tsx +3 -4
  519. package/src/components/ActionSheet/types.ts +1 -1
  520. package/src/components/Alert/Alert.tsx +1 -1
  521. package/src/components/AppRoot/AppRoot.tsx +1 -1
  522. package/src/components/AppRoot/AppRootContext.ts +2 -2
  523. package/src/components/AppRoot/AppRootPortal.tsx +1 -1
  524. package/src/components/AppRoot/ScrollContext.tsx +1 -1
  525. package/src/components/AspectRatio/AspectRatio.tsx +11 -4
  526. package/src/components/Calendar/Calendar.tsx +90 -72
  527. package/src/components/CalendarDay/CalendarDay.module.css +4 -0
  528. package/src/components/CalendarDay/CalendarDay.tsx +10 -1
  529. package/src/components/CalendarDays/CalendarDays.tsx +3 -0
  530. package/src/components/CalendarHeader/CalendarHeader.tsx +17 -2
  531. package/src/components/CalendarRange/CalendarRange.tsx +110 -84
  532. package/src/components/CalendarTime/CalendarTime.tsx +104 -16
  533. package/src/components/CardScroll/CardScroll.tsx +8 -2
  534. package/src/components/CarouselBase/Bullets.tsx +36 -0
  535. package/src/components/{BaseGallery/BaseGallery.module.css → CarouselBase/CarouselBase.module.css} +19 -1
  536. package/src/components/CarouselBase/CarouselBase.tsx +502 -0
  537. package/src/components/CarouselBase/CarouselViewPort.tsx +54 -0
  538. package/src/components/CarouselBase/ScrollArrows.tsx +80 -0
  539. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/constants.ts +4 -0
  540. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/helpers.ts +67 -7
  541. package/src/components/{BaseGallery/CarouselBase → CarouselBase}/hooks.ts +2 -2
  542. package/src/components/CarouselBase/types.ts +135 -0
  543. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  544. package/src/components/ChipsInput/useChipsInput.ts +2 -2
  545. package/src/components/ChipsSelect/ChipsSelect.tsx +1 -1
  546. package/src/components/ChipsSelect/useChipsSelect.ts +1 -1
  547. package/src/components/Clickable/useState.tsx +2 -2
  548. package/src/components/Clickable/useStateWithDelay.tsx +1 -1
  549. package/src/components/ConfigProvider/ConfigProvider.tsx +8 -35
  550. package/src/components/ConfigProvider/ConfigProviderContext.tsx +36 -0
  551. package/src/components/ConfigProvider/ConfigProviderOverride.tsx +2 -5
  552. package/src/components/ContentCard/ContentCard.module.css +1 -0
  553. package/src/components/CustomScrollView/CustomScrollView.module.css +6 -2
  554. package/src/components/CustomScrollView/CustomScrollView.tsx +13 -2
  555. package/src/components/CustomSelect/CustomSelect.tsx +12 -4
  556. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -1
  557. package/src/components/DateInput/DateInput.tsx +62 -5
  558. package/src/components/DateRangeInput/DateRangeInput.tsx +22 -2
  559. package/src/components/Epic/Epic.tsx +5 -3
  560. package/src/components/FixedLayout/FixedLayout.tsx +1 -2
  561. package/src/components/FormField/FormField.module.css +11 -11
  562. package/src/components/Gallery/Gallery.tsx +4 -10
  563. package/src/components/HorizontalScroll/HorizontalScroll.tsx +12 -2
  564. package/src/components/Image/Image.tsx +4 -0
  565. package/src/components/ImageBase/ImageBase.module.css +11 -2
  566. package/src/components/ImageBase/ImageBase.tsx +69 -10
  567. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.module.css +134 -0
  568. package/src/components/ImageBase/ImageBaseFloatElement/ImageBaseFloatElement.tsx +168 -0
  569. package/src/components/ImageBase/ImageBaseFloatElement/helpers.ts +44 -0
  570. package/src/components/ImageBase/ImageBaseOverlay/hooks.ts +1 -1
  571. package/src/components/ImageBase/context.ts +2 -0
  572. package/src/components/ImageBase/types.ts +2 -0
  573. package/src/components/ImageBase/validators.ts +5 -4
  574. package/src/components/ModalCard/ModalCard.tsx +5 -1
  575. package/src/components/ModalCardBase/ModalCardBase.tsx +1 -1
  576. package/src/components/ModalPage/ModalPage.module.css +5 -4
  577. package/src/components/ModalRoot/ModalRootContext.tsx +3 -1
  578. package/src/components/NativeSelect/NativeSelect.tsx +4 -3
  579. package/src/components/Pagination/Pagination.tsx +23 -4
  580. package/src/components/Pagination/PaginationNavigationButton/PaginationNavigationButton.tsx +4 -2
  581. package/src/components/PanelHeader/PanelHeader.module.css +5 -4
  582. package/src/components/Popover/Popover.tsx +6 -166
  583. package/src/components/Popover/usePopover.tsx +183 -0
  584. package/src/components/Popper/Popper.tsx +12 -1
  585. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  586. package/src/components/Removable/Removable.tsx +2 -2
  587. package/src/components/RichCell/RichCell.module.css +17 -3
  588. package/src/components/RichCell/RichCell.tsx +28 -8
  589. package/src/components/Root/Root.tsx +4 -2
  590. package/src/components/SegmentedControl/SegmentedControl.tsx +46 -14
  591. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +14 -10
  592. package/src/components/Select/Select.tsx +1 -0
  593. package/src/components/Skeleton/Skeleton.tsx +3 -3
  594. package/src/components/Slider/Slider.tsx +12 -0
  595. package/src/components/Snackbar/Snackbar.tsx +1 -1
  596. package/src/components/Snackbar/subcomponents/Basic/Basic.module.css +12 -6
  597. package/src/components/SplitCol/SplitColContext.tsx +1 -1
  598. package/src/components/Tabs/Tabs.tsx +2 -99
  599. package/src/components/Textarea/Textarea.tsx +2 -2
  600. package/src/components/Textarea/useResizeTextarea.ts +3 -3
  601. package/src/components/Tooltip/Tooltip.tsx +4 -1
  602. package/src/components/TooltipBase/TooltipBase.module.css +5 -0
  603. package/src/components/TooltipBase/TooltipBase.tsx +8 -2
  604. package/src/components/UsersStack/UsersStack.module.css +27 -17
  605. package/src/components/UsersStack/UsersStack.tsx +24 -3
  606. package/src/components/View/View.tsx +9 -5
  607. package/src/components/View/ViewInfinite.tsx +5 -3
  608. package/src/context/CalendarDirectionContext.ts +12 -0
  609. package/src/helpers/getMergedSameEventsByProps.ts +1 -1
  610. package/src/hooks/useDateInput.ts +5 -5
  611. package/src/hooks/useDirection.ts +3 -3
  612. package/src/hooks/useDraggableWithDomApi/types.ts +1 -1
  613. package/src/hooks/useEnsuredControl.ts +1 -1
  614. package/src/hooks/useExternRef.ts +2 -2
  615. package/src/hooks/useFocusTrap.ts +1 -1
  616. package/src/hooks/useGlobalOnClickOutside.ts +1 -1
  617. package/src/hooks/useKeyboardInputTracker.ts +1 -1
  618. package/src/hooks/useMutationObserver.ts +1 -1
  619. package/src/hooks/useNativeFormResetListener.ts +1 -1
  620. package/src/hooks/usePatchChildren.ts +2 -9
  621. package/src/hooks/usePrevious.ts +1 -1
  622. package/src/hooks/useResizeObserver.ts +30 -6
  623. package/src/hooks/useStateWithPrev.ts +1 -5
  624. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +1 -1
  625. package/src/hooks/useSyncHTMLWithTokens.ts +1 -1
  626. package/src/hooks/useTabsNavigation.ts +104 -0
  627. package/src/index.ts +7 -0
  628. package/src/lib/animation/useCSSTransition.ts +1 -1
  629. package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +9 -9
  630. package/src/lib/floating/useFloatingWithInteractions/types.ts +15 -5
  631. package/src/lib/floating/useFloatingWithInteractions/useFloatingWithInteractions.ts +7 -2
  632. package/src/lib/utils.ts +2 -2
  633. package/src/styles/constants.css +1 -0
  634. package/dist/components/BaseGallery/BaseGallery.d.ts +0 -4
  635. package/dist/components/BaseGallery/BaseGallery.d.ts.map +0 -1
  636. package/dist/components/BaseGallery/BaseGallery.js +0 -321
  637. package/dist/components/BaseGallery/BaseGallery.js.map +0 -1
  638. package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts +0 -4
  639. package/dist/components/BaseGallery/CarouselBase/CarouselBase.d.ts.map +0 -1
  640. package/dist/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
  641. package/dist/components/BaseGallery/CarouselBase/constants.d.ts.map +0 -1
  642. package/dist/components/BaseGallery/CarouselBase/constants.js.map +0 -1
  643. package/dist/components/BaseGallery/CarouselBase/helpers.d.ts.map +0 -1
  644. package/dist/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
  645. package/dist/components/BaseGallery/CarouselBase/hooks.d.ts.map +0 -1
  646. package/dist/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
  647. package/dist/components/BaseGallery/CarouselBase/types.d.ts +0 -54
  648. package/dist/components/BaseGallery/CarouselBase/types.d.ts.map +0 -1
  649. package/dist/components/BaseGallery/CarouselBase/types.js.map +0 -1
  650. package/dist/components/BaseGallery/helpers.d.ts +0 -13
  651. package/dist/components/BaseGallery/helpers.d.ts.map +0 -1
  652. package/dist/components/BaseGallery/helpers.js +0 -24
  653. package/dist/components/BaseGallery/helpers.js.map +0 -1
  654. package/dist/components/BaseGallery/types.d.ts +0 -55
  655. package/dist/components/BaseGallery/types.d.ts.map +0 -1
  656. package/dist/components/BaseGallery/types.js.map +0 -1
  657. package/dist/cssm/components/BaseGallery/BaseGallery.js +0 -293
  658. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +0 -1
  659. package/dist/cssm/components/BaseGallery/CarouselBase/CarouselBase.js.map +0 -1
  660. package/dist/cssm/components/BaseGallery/CarouselBase/constants.js.map +0 -1
  661. package/dist/cssm/components/BaseGallery/CarouselBase/helpers.js.map +0 -1
  662. package/dist/cssm/components/BaseGallery/CarouselBase/hooks.js.map +0 -1
  663. package/dist/cssm/components/BaseGallery/CarouselBase/types.js +0 -3
  664. package/dist/cssm/components/BaseGallery/CarouselBase/types.js.map +0 -1
  665. package/dist/cssm/components/BaseGallery/helpers.js +0 -24
  666. package/dist/cssm/components/BaseGallery/helpers.js.map +0 -1
  667. package/dist/cssm/components/BaseGallery/types.js +0 -3
  668. package/dist/cssm/components/BaseGallery/types.js.map +0 -1
  669. package/dist/cssm/hooks/useObjectMemo.js +0 -15
  670. package/dist/cssm/hooks/useObjectMemo.js.map +0 -1
  671. package/dist/hooks/useObjectMemo.d.ts +0 -5
  672. package/dist/hooks/useObjectMemo.d.ts.map +0 -1
  673. package/dist/hooks/useObjectMemo.js +0 -15
  674. package/dist/hooks/useObjectMemo.js.map +0 -1
  675. package/src/components/BaseGallery/BaseGallery.tsx +0 -380
  676. package/src/components/BaseGallery/CarouselBase/CarouselBase.tsx +0 -399
  677. package/src/components/BaseGallery/CarouselBase/types.ts +0 -56
  678. package/src/components/BaseGallery/helpers.ts +0 -46
  679. package/src/components/BaseGallery/types.ts +0 -61
  680. package/src/hooks/useObjectMemo.ts +0 -16
  681. /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/constants.d.ts +0 -0
  682. /package/dist/components/{BaseGallery/CarouselBase → CarouselBase}/types.js +0 -0
  683. /package/dist/{components/BaseGallery → cssm/components/CarouselBase}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWzF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAokBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAYpD,CAAC"}
1
+ {"version":3,"file":"ViewInfinite.d.ts","sourceRoot":"","sources":["../../../src/components/View/ViewInfinite.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAiB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,yCAAyC,CAAC;AAIjD,OAAO,EAAmB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAWzF,UAAU,OAAO;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5C;AAED,UAAU,YAAY;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAID,eAAO,IAAI,YAAY,EAAE,YAAiB,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE1E,MAAM,WAAW,iBACf,SAAQ,yBAAyB,CAAC,WAAW,CAAC,EAC5C,WAAW,EACX,UAAU;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,SAAS,CAAC;IACpE;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACpD;;OAEG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC;;OAEG;IACH,cAAc,CAAC,EAAE,8BAA8B,CAAC;IAChD;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAElB,aAAa,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IAE3C,YAAY,EAAE,OAAO,CAAC;CACvB;AAskBD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAYpD,CAAC"}
@@ -324,7 +324,9 @@ class ViewInfiniteComponent extends (_React_Component = React.Component) {
324
324
  return /*#__PURE__*/ _jsx("div", {
325
325
  className: classNames("vkuiView__panel", panelId === activePanel && "vkuiView__panelActive", panelId === prevPanel && "vkuiView__panelPrev", panelId === nextPanel && "vkuiView__panelNext", panelId === swipeBackPrevPanel && "vkuiView__panelSwipeBackPrev", panelId === swipeBackNextPanel && "vkuiView__panelSwipeBackNext", swipeBackResult === 'success' && "vkuiView__panelSwipeBackSuccess", swipeBackResult === 'fail' && "vkuiView__panelSwipeBackFailed"),
326
326
  onAnimationEnd: isTransitionTarget ? this.transitionEndHandler : undefined,
327
- ref: (el)=>panelId !== undefined && (this.panelNodes[panelId] = el),
327
+ ref: (el)=>{
328
+ panelId !== undefined && (this.panelNodes[panelId] = el);
329
+ },
328
330
  style: this.calcPanelSwipeStyles(panelId),
329
331
  children: /*#__PURE__*/ _jsx("div", {
330
332
  className: "vkuiView__panelIn",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, type DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasPlatform, HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext, type ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { SplitColContext, type SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?: (params: TransitionParams & { isBack: boolean }) => void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?: () => void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?: () => void;\n history?: string[];\n isBackCheck?: (params: TransitionParams) => boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack?: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: 'success' | 'fail' | null;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: undefined,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private swipeBackPrevented = false;\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private readonly animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [\n ...prevScrolls,\n this.props.scroll?.getScroll({ compensateKeyboardHeight: false }).y,\n ],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === 'fail' &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === 'vkcom'\n );\n }\n\n private transitionDisposer = noop;\n\n private disposeTransition() {\n this.transitionDisposer();\n this.transitionDisposer = noop;\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (this.shouldDisableTransitionMotion()) {\n this.disposeTransition();\n this.transitionFinishTimeout = setTimeout(eventHandler);\n } else if (elem) {\n this.disposeTransition();\n elem.addEventListener('transitionend', eventHandler);\n this.transitionDisposer = () => {\n elem.removeEventListener('transitionend', eventHandler);\n };\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === 'android' || this.props.platform === 'vkcom' ? 300 : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (): void => {\n if (this.state.prevPanel !== null) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case 'fail':\n this.onSwipeBackCancel();\n break;\n case 'success':\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (this.state.browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n this.setState({ browserSwipe: true });\n }\n };\n\n handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (this.swipeBackPrevented || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if (this.state.animated && swipeBackTriggered) {\n return;\n }\n\n if (!this.state.swipingBack && this.props.history && this.props.history.length > 1) {\n if (swipedToOpposite) {\n this.swipeBackPrevented = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n this.swipeBackPrevented = true;\n return;\n }\n // Начался свайп назад\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.swipeBackPrevented = true;\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n if (event.shiftX < 0) {\n this.setState({ swipeBackShift: 0 });\n } else if (event.shiftX > this.window!.innerWidth - this.state.swipeBackStartX) {\n this.setState({ swipeBackShift: this.window!.innerWidth });\n } else {\n this.setState({ swipeBackShift: event.shiftX });\n }\n }\n };\n\n handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n this.swipeBackPrevented = false;\n\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipeBackShift >= this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: 'success' });\n } else {\n this.setState({ swipeBackResult: 'fail' });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider?.isWebView && Boolean(onSwipeBack);\n\n return (\n <NavViewIdContext.Provider value={id || nav}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles.animated,\n !disableAnimation && this.state.swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? this.handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={\n iOSSwipeBackSimulationEnabled ? this.handleTouchEndForIOSSwipeBackSimulation : undefined\n }\n >\n <div className={styles.panels}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles.panel,\n panelId === activePanel && styles.panelActive,\n panelId === prevPanel && styles.panelPrev,\n panelId === nextPanel && styles.panelNext,\n panelId === swipeBackPrevPanel && styles.panelSwipeBackPrev,\n panelId === swipeBackNextPanel && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles.panelIn}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n }\n}\n\nexport const ViewInfinite: React.FC<ViewInfiniteProps> = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","noop","withContext","withPlatform","canUseDOM","withDOM","getNavId","warnOnce","ScrollContext","ConfigProviderContext","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","SplitColContext","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","warn","scrollsCache","ViewInfiniteComponent","Component","document","props","window","panels","Children","toArray","children","componentWillUnmount","id","scrolls","animationFinishTimeout","clearTimeout","componentDidUpdate","prevProps","prevState","activePanel","swipingBack","browserSwipe","isBack","isBackCheck","from","to","firstLayerId","map","panel","find","blurActiveElement","prevScrolls","scroll","getScroll","compensateKeyboardHeight","y","shouldDisableTransitionMotion","flushTransition","setState","visiblePanels","prevPanel","nextPanel","animated","state","swipeBackNextPanel","swipeBackPrevPanel","scrollPosition","undefined","prevPanelScrolls","slice","newPanelScrolls","pop","swipeBackResult","swipeBackStartX","swipeBackShift","scrollTo","onTransition","waitTransitionFinish","pickPanel","swipingBackTransitionEndHandler","configProvider","transitionMotionEnabled","splitCol","animate","platform","disposeTransition","transitionDisposer","elem","eventHandler","transitionFinishTimeout","setTimeout","addEventListener","removeEventListener","activeElement","blur","panelNodes","onSwipeBackSuccess","onSwipeBack","onSwipeBackCancel","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","innerWidth","prevPanelShadow","boxShadow","transform","render","_1","history","nav","onSwipeBackStart","className","restProps","filter","includes","sort","isPrevPanel","isNextPanel","disableAnimation","iOSSwipeBackSimulationEnabled","isWebView","Boolean","Provider","value","onMoveX","handleTouchMoveXForIOSSwipeBackSimulation","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","onEnd","handleTouchEndForIOSSwipeBackSimulation","div","compensateScroll","isTransitionTarget","scrollList","length","onAnimationEnd","transitionEndHandler","ref","el","style","marginTop","entering","constructor","swipeBackPrevented","e","propertyName","target","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","swipedToOpposite","originalEvent","payload","speed","duration","defaultProps","ViewInfinite"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, type DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, type NavIdProps } from '../../lib/getNavId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport type { HasPlatform, HTMLAttributesWithRootRef } from '../../types';\nimport { ScrollContext, type ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n type ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavViewIdContext } from '../NavIdContext/NavIdContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { NavTransitionDirectionProvider } from '../NavTransitionDirectionContext/NavTransitionDirectionContext';\nimport { SplitColContext, type SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { type CustomTouchEvent, Touch } from '../Touch/Touch';\nimport {\n getSwipeBackPredicates,\n hasHorizontalScrollableElementWithScrolledToLeft,\n swipeBackExcluded,\n} from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends HTMLAttributesWithRootRef<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?: (params: TransitionParams & { isBack: boolean }) => void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?: () => void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?: (activePanel: string | null) => void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?: () => void;\n history?: string[];\n isBackCheck?: (params: TransitionParams) => boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack?: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: 'success' | 'fail' | null;\n\n browserSwipe: boolean;\n}\n\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: undefined,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private swipeBackPrevented = false;\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private readonly animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as Array<React.ReactElement<NavIdProps>>;\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [\n ...prevScrolls,\n this.props.scroll?.getScroll({ compensateKeyboardHeight: false }).y,\n ],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === 'fail' &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === 'vkcom'\n );\n }\n\n private transitionDisposer = noop;\n\n private disposeTransition() {\n this.transitionDisposer();\n this.transitionDisposer = noop;\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (this.shouldDisableTransitionMotion()) {\n this.disposeTransition();\n this.transitionFinishTimeout = setTimeout(eventHandler);\n } else if (elem) {\n this.disposeTransition();\n elem.addEventListener('transitionend', eventHandler);\n this.transitionDisposer = () => {\n elem.removeEventListener('transitionend', eventHandler);\n };\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === 'android' || this.props.platform === 'vkcom' ? 300 : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (): void => {\n if (this.state.prevPanel !== null) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case 'fail':\n this.onSwipeBackCancel();\n break;\n case 'success':\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext = (event: CustomTouchEvent) => {\n if (this.state.browserSwipe) {\n return;\n }\n const { swipeBackTriggered, viewportStartEdgeTouched, viewportEndEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if ((viewportStartEdgeTouched || viewportEndEdgeTouched) && swipeBackTriggered) {\n this.setState({ browserSwipe: true });\n }\n };\n\n handleTouchMoveXForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n if (this.swipeBackPrevented || swipeBackExcluded(event)) {\n return;\n }\n\n const { swipedToOpposite, swipeBackTriggered, viewportStartEdgeTouched } =\n getSwipeBackPredicates(event.startX, event.shiftX, this.window!.innerWidth);\n\n if (this.state.animated && swipeBackTriggered) {\n return;\n }\n\n if (!this.state.swipingBack && this.props.history && this.props.history.length > 1) {\n if (swipedToOpposite) {\n this.swipeBackPrevented = true;\n return;\n }\n\n if (!swipeBackTriggered) {\n return;\n }\n\n if (\n !viewportStartEdgeTouched &&\n hasHorizontalScrollableElementWithScrolledToLeft(event.originalEvent.target as HTMLElement)\n ) {\n this.swipeBackPrevented = true;\n return;\n }\n // Начался свайп назад\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.swipeBackPrevented = true;\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n if (event.shiftX < 0) {\n this.setState({ swipeBackShift: 0 });\n } else if (event.shiftX > this.window!.innerWidth - this.state.swipeBackStartX) {\n this.setState({ swipeBackShift: this.window!.innerWidth });\n } else {\n this.setState({ swipeBackShift: event.shiftX });\n }\n }\n };\n\n handleTouchEndForIOSSwipeBackSimulation = (event: CustomTouchEvent) => {\n this.swipeBackPrevented = false;\n\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (speed > 250 || this.state.swipeBackShift >= this.window.innerWidth / 2) {\n this.setState({ swipeBackResult: 'success' });\n } else {\n this.setState({ swipeBackResult: 'fail' });\n }\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n }\n\n render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n const iOSSwipeBackSimulationEnabled =\n !disableAnimation && platform === 'ios' && configProvider?.isWebView && Boolean(onSwipeBack);\n\n return (\n <NavViewIdContext.Provider value={id || nav}>\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles.host,\n platform === 'ios' && classNames(styles.ios, 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles.animated,\n !disableAnimation && this.state.swipingBack && styles.swipingBack,\n disableAnimation && styles.noMotion,\n className,\n )}\n onMoveX={\n iOSSwipeBackSimulationEnabled\n ? this.handleTouchMoveXForIOSSwipeBackSimulation\n : platform === 'ios'\n ? this.handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext\n : undefined\n }\n onEnd={\n iOSSwipeBackSimulationEnabled ? this.handleTouchEndForIOSSwipeBackSimulation : undefined\n }\n >\n <div className={styles.panels}>\n {panels.map((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles.panel,\n panelId === activePanel && styles.panelActive,\n panelId === prevPanel && styles.panelPrev,\n panelId === nextPanel && styles.panelNext,\n panelId === swipeBackPrevPanel && styles.panelSwipeBackPrev,\n panelId === swipeBackNextPanel && styles.panelSwipeBackNext,\n swipeBackResult === 'success' && styles.panelSwipeBackSuccess,\n swipeBackResult === 'fail' && styles.panelSwipeBackFailed,\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => {\n panelId !== undefined && (this.panelNodes[panelId] = el);\n }}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles.panelIn}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionDirectionProvider isBack={swipingBack || isBack}>\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </NavTransitionDirectionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n </NavViewIdContext.Provider>\n );\n }\n}\n\nexport const ViewInfinite: React.FC<ViewInfiniteProps> = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","noop","withContext","withPlatform","canUseDOM","withDOM","getNavId","warnOnce","ScrollContext","ConfigProviderContext","NavViewIdContext","NavTransitionProvider","NavTransitionDirectionProvider","SplitColContext","Touch","getSwipeBackPredicates","hasHorizontalScrollableElementWithScrolledToLeft","swipeBackExcluded","warn","scrollsCache","ViewInfiniteComponent","Component","document","props","window","panels","Children","toArray","children","componentWillUnmount","id","scrolls","animationFinishTimeout","clearTimeout","componentDidUpdate","prevProps","prevState","activePanel","swipingBack","browserSwipe","isBack","isBackCheck","from","to","firstLayerId","map","panel","find","blurActiveElement","prevScrolls","scroll","getScroll","compensateKeyboardHeight","y","shouldDisableTransitionMotion","flushTransition","setState","visiblePanels","prevPanel","nextPanel","animated","state","swipeBackNextPanel","swipeBackPrevPanel","scrollPosition","undefined","prevPanelScrolls","slice","newPanelScrolls","pop","swipeBackResult","swipeBackStartX","swipeBackShift","scrollTo","onTransition","waitTransitionFinish","pickPanel","swipingBackTransitionEndHandler","configProvider","transitionMotionEnabled","splitCol","animate","platform","disposeTransition","transitionDisposer","elem","eventHandler","transitionFinishTimeout","setTimeout","addEventListener","removeEventListener","activeElement","blur","panelNodes","onSwipeBackSuccess","onSwipeBack","onSwipeBackCancel","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","innerWidth","prevPanelShadow","boxShadow","transform","render","_1","history","nav","onSwipeBackStart","className","restProps","filter","includes","sort","isPrevPanel","isNextPanel","disableAnimation","iOSSwipeBackSimulationEnabled","isWebView","Boolean","Provider","value","onMoveX","handleTouchMoveXForIOSSwipeBackSimulation","handleTouchMoveXForNativeIOSSwipeBackOrSwipeNext","onEnd","handleTouchEndForIOSSwipeBackSimulation","div","compensateScroll","isTransitionTarget","scrollList","length","onAnimationEnd","transitionEndHandler","ref","el","style","marginTop","entering","constructor","swipeBackPrevented","e","propertyName","target","event","swipeBackTriggered","viewportStartEdgeTouched","viewportEndEdgeTouched","startX","shiftX","swipedToOpposite","originalEvent","payload","speed","duration","defaultProps","ViewInfinite"],"mappings":"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"}