@vkontakte/vkui 4.32.0 → 4.33.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (927) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +363 -283
  4. package/.cache/ts/src/components/Avatar/Avatar.d.ts +1 -2
  5. package/.cache/ts/src/components/Banner/Banner.d.ts +1 -2
  6. package/.cache/ts/src/components/BaseGallery/BaseGallery.d.ts +4 -0
  7. package/.cache/ts/src/components/BaseGallery/helpers.d.ts +12 -0
  8. package/.cache/ts/src/components/BaseGallery/types.d.ts +43 -0
  9. package/.cache/ts/src/components/CellButton/CellButton.d.ts +1 -2
  10. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +3 -1
  11. package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +1 -2
  12. package/.cache/ts/src/components/ContentCard/ContentCard.d.ts +1 -2
  13. package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -2
  14. package/.cache/ts/src/components/Epic/Epic.d.ts +1 -3
  15. package/.cache/ts/src/components/FixedLayout/FixedLayout.d.ts +1 -2
  16. package/.cache/ts/src/components/FocusVisible/FocusVisible.d.ts +3 -4
  17. package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +1 -2
  18. package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -2
  19. package/.cache/ts/src/components/Gallery/Gallery.d.ts +6 -43
  20. package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +4 -1
  21. package/.cache/ts/src/components/Group/Group.d.ts +4 -2
  22. package/.cache/ts/src/components/Header/Header.d.ts +1 -2
  23. package/.cache/ts/src/components/IconButton/IconButton.d.ts +5 -2
  24. package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +1 -1
  25. package/.cache/ts/src/components/Link/Link.d.ts +1 -2
  26. package/.cache/ts/src/components/List/List.d.ts +1 -2
  27. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +4 -2
  28. package/.cache/ts/src/components/ModalDismissButton/ModalDismissButton.d.ts +1 -2
  29. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +4 -2
  30. package/.cache/ts/src/components/ModalRoot/ModalRootContext.d.ts +1 -1
  31. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -2
  32. package/.cache/ts/src/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -2
  33. package/.cache/ts/src/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -2
  34. package/.cache/ts/src/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -2
  35. package/.cache/ts/src/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -2
  36. package/.cache/ts/src/components/Placeholder/Placeholder.d.ts +1 -2
  37. package/.cache/ts/src/components/PromoBanner/PromoBanner.d.ts +2 -2
  38. package/.cache/ts/src/components/RangeSlider/RangeSlider.d.ts +1 -2
  39. package/.cache/ts/src/components/RichCell/RichCell.d.ts +4 -2
  40. package/.cache/ts/src/components/Root/Root.d.ts +1 -2
  41. package/.cache/ts/src/components/ScreenSpinner/ScreenSpinner.d.ts +1 -2
  42. package/.cache/ts/src/components/Search/Search.d.ts +1 -2
  43. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +4 -2
  44. package/.cache/ts/src/components/SimpleCheckbox/SimpleCheckbox.d.ts +1 -0
  45. package/.cache/ts/src/components/Slider/Slider.d.ts +1 -2
  46. package/.cache/ts/src/components/Spacing/Spacing.d.ts +2 -1
  47. package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +1 -2
  48. package/.cache/ts/src/components/TabbarItem/TabbarItem.d.ts +1 -2
  49. package/.cache/ts/src/components/Tabs/Tabs.d.ts +4 -2
  50. package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +1 -2
  51. package/.cache/ts/src/components/Tappable/Tappable.d.ts +7 -4
  52. package/.cache/ts/src/components/Textarea/Textarea.d.ts +2 -3
  53. package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +1 -2
  54. package/.cache/ts/src/components/Typography/Title/Title.d.ts +1 -1
  55. package/.cache/ts/src/components/UsersStack/UsersStack.d.ts +4 -2
  56. package/.cache/ts/src/components/View/View.d.ts +6 -3
  57. package/.cache/ts/src/index.d.ts +44 -44
  58. package/.cache/ts/src/lib/animate.d.ts +1 -1
  59. package/.cache/ts/src/tokenized/index.d.ts +44 -0
  60. package/README.md +1 -1
  61. package/VKUI_TOKENS_MIGRATION_GUIDE.md +0 -1
  62. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +2 -2
  63. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  64. package/dist/cjs/components/Alert/Alert.js +8 -6
  65. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  66. package/dist/cjs/components/Avatar/Avatar.d.ts +1 -2
  67. package/dist/cjs/components/Avatar/Avatar.js +6 -13
  68. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  69. package/dist/cjs/components/Banner/Banner.d.ts +1 -2
  70. package/dist/cjs/components/Banner/Banner.js +27 -36
  71. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  72. package/dist/cjs/components/BaseGallery/BaseGallery.d.ts +4 -0
  73. package/dist/cjs/components/BaseGallery/BaseGallery.js +399 -0
  74. package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -0
  75. package/dist/cjs/components/BaseGallery/helpers.d.ts +12 -0
  76. package/dist/cjs/components/BaseGallery/helpers.js +62 -0
  77. package/dist/cjs/components/BaseGallery/helpers.js.map +1 -0
  78. package/dist/cjs/components/BaseGallery/types.d.ts +43 -0
  79. package/dist/cjs/components/BaseGallery/types.js +6 -0
  80. package/dist/cjs/components/BaseGallery/types.js.map +1 -0
  81. package/dist/cjs/components/Button/Button.js +3 -3
  82. package/dist/cjs/components/Button/Button.js.map +1 -1
  83. package/dist/cjs/components/CalendarDay/CalendarDay.js +2 -4
  84. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  85. package/dist/cjs/components/CalendarHeader/CalendarHeader.js +3 -5
  86. package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
  87. package/dist/cjs/components/Cell/Cell.js +2 -2
  88. package/dist/cjs/components/Cell/Cell.js.map +1 -1
  89. package/dist/cjs/components/CellButton/CellButton.d.ts +1 -2
  90. package/dist/cjs/components/CellButton/CellButton.js +4 -12
  91. package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
  92. package/dist/cjs/components/Checkbox/Checkbox.d.ts +3 -1
  93. package/dist/cjs/components/Checkbox/Checkbox.js +69 -15
  94. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  95. package/dist/cjs/components/Chip/Chip.js +2 -2
  96. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  97. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -2
  98. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +3 -5
  99. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  100. package/dist/cjs/components/ContentCard/ContentCard.d.ts +1 -2
  101. package/dist/cjs/components/ContentCard/ContentCard.js +38 -50
  102. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  103. package/dist/cjs/components/DateInput/DateInput.js +3 -3
  104. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  105. package/dist/cjs/components/DatePicker/DatePicker.d.ts +1 -2
  106. package/dist/cjs/components/DatePicker/DatePicker.js +6 -7
  107. package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
  108. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +3 -3
  109. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  110. package/dist/cjs/components/Epic/Epic.d.ts +1 -3
  111. package/dist/cjs/components/Epic/Epic.js +9 -11
  112. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  113. package/dist/cjs/components/FixedLayout/FixedLayout.d.ts +1 -2
  114. package/dist/cjs/components/FixedLayout/FixedLayout.js +6 -11
  115. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  116. package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +3 -4
  117. package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
  118. package/dist/cjs/components/FormItem/FormItem.js +3 -6
  119. package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
  120. package/dist/cjs/components/FormLayout/FormLayout.d.ts +1 -2
  121. package/dist/cjs/components/FormLayout/FormLayout.js +3 -5
  122. package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
  123. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -2
  124. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +6 -10
  125. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  126. package/dist/cjs/components/Gallery/Gallery.d.ts +6 -43
  127. package/dist/cjs/components/Gallery/Gallery.js +23 -565
  128. package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
  129. package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +4 -1
  130. package/dist/cjs/components/GridAvatar/GridAvatar.js +9 -11
  131. package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
  132. package/dist/cjs/components/Group/Group.d.ts +4 -2
  133. package/dist/cjs/components/Group/Group.js +12 -14
  134. package/dist/cjs/components/Group/Group.js.map +1 -1
  135. package/dist/cjs/components/Header/Header.d.ts +1 -2
  136. package/dist/cjs/components/Header/Header.js +4 -8
  137. package/dist/cjs/components/Header/Header.js.map +1 -1
  138. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -4
  139. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  140. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -1
  141. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  142. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +2 -4
  143. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  144. package/dist/cjs/components/IconButton/IconButton.d.ts +5 -2
  145. package/dist/cjs/components/IconButton/IconButton.js +14 -18
  146. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  147. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +1 -1
  148. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +2 -4
  149. package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  150. package/dist/cjs/components/Link/Link.d.ts +1 -2
  151. package/dist/cjs/components/Link/Link.js +5 -7
  152. package/dist/cjs/components/Link/Link.js.map +1 -1
  153. package/dist/cjs/components/List/List.d.ts +1 -2
  154. package/dist/cjs/components/List/List.js +3 -5
  155. package/dist/cjs/components/List/List.js.map +1 -1
  156. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  157. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  158. package/dist/cjs/components/ModalCard/ModalCard.d.ts +4 -2
  159. package/dist/cjs/components/ModalCard/ModalCard.js +32 -29
  160. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  161. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +2 -2
  162. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  163. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.d.ts +1 -2
  164. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +15 -12
  165. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  166. package/dist/cjs/components/ModalPage/ModalPage.d.ts +4 -2
  167. package/dist/cjs/components/ModalPage/ModalPage.js +34 -31
  168. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  169. package/dist/cjs/components/ModalRoot/ModalRoot.js +10 -4
  170. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  171. package/dist/cjs/components/ModalRoot/ModalRootContext.d.ts +1 -1
  172. package/dist/cjs/components/ModalRoot/ModalRootContext.js +2 -6
  173. package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
  174. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +2 -2
  175. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  176. package/dist/cjs/components/ModalRoot/withModalRootContext.js +2 -2
  177. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  178. package/dist/cjs/components/Pagination/Pagination.js +2 -2
  179. package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
  180. package/dist/cjs/components/PanelHeader/PanelHeader.js +5 -5
  181. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  182. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -2
  183. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +11 -11
  184. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  185. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
  186. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  187. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -2
  188. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +4 -8
  189. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  190. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -2
  191. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +5 -7
  192. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  193. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +2 -2
  194. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  195. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -2
  196. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +8 -12
  197. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  198. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -2
  199. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +4 -8
  200. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  201. package/dist/cjs/components/Placeholder/Placeholder.d.ts +1 -2
  202. package/dist/cjs/components/Placeholder/Placeholder.js +3 -5
  203. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  204. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js +1 -10
  205. package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  206. package/dist/cjs/components/Popper/Popper.js +4 -1
  207. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  208. package/dist/cjs/components/PromoBanner/PromoBanner.d.ts +2 -2
  209. package/dist/cjs/components/PromoBanner/PromoBanner.js +7 -9
  210. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  211. package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -2
  212. package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
  213. package/dist/cjs/components/Radio/Radio.js +2 -4
  214. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  215. package/dist/cjs/components/RangeSlider/RangeSlider.d.ts +1 -2
  216. package/dist/cjs/components/RangeSlider/RangeSlider.js +3 -5
  217. package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
  218. package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -6
  219. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  220. package/dist/cjs/components/Removable/Removable.js +10 -7
  221. package/dist/cjs/components/Removable/Removable.js.map +1 -1
  222. package/dist/cjs/components/RichCell/RichCell.d.ts +4 -2
  223. package/dist/cjs/components/RichCell/RichCell.js +11 -11
  224. package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
  225. package/dist/cjs/components/Root/Root.d.ts +1 -2
  226. package/dist/cjs/components/Root/Root.js +6 -20
  227. package/dist/cjs/components/Root/Root.js.map +1 -1
  228. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.d.ts +1 -2
  229. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +14 -14
  230. package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  231. package/dist/cjs/components/Search/Search.d.ts +1 -2
  232. package/dist/cjs/components/Search/Search.js +19 -18
  233. package/dist/cjs/components/Search/Search.js.map +1 -1
  234. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +4 -2
  235. package/dist/cjs/components/SimpleCell/SimpleCell.js +10 -12
  236. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  237. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.d.ts +1 -0
  238. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js +3 -2
  239. package/dist/cjs/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  240. package/dist/cjs/components/Slider/Slider.d.ts +1 -2
  241. package/dist/cjs/components/Slider/Slider.js +3 -5
  242. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  243. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -2
  244. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  245. package/dist/cjs/components/Spacing/Spacing.d.ts +2 -1
  246. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  247. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -2
  248. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  249. package/dist/cjs/components/Tabbar/Tabbar.d.ts +1 -2
  250. package/dist/cjs/components/Tabbar/Tabbar.js +8 -12
  251. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  252. package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +1 -2
  253. package/dist/cjs/components/TabbarItem/TabbarItem.js +5 -7
  254. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  255. package/dist/cjs/components/Tabs/Tabs.d.ts +4 -2
  256. package/dist/cjs/components/Tabs/Tabs.js +10 -13
  257. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  258. package/dist/cjs/components/TabsItem/TabsItem.d.ts +1 -2
  259. package/dist/cjs/components/TabsItem/TabsItem.js +6 -10
  260. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  261. package/dist/cjs/components/Tappable/Tappable.d.ts +7 -4
  262. package/dist/cjs/components/Tappable/Tappable.js +10 -9
  263. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  264. package/dist/cjs/components/Textarea/Textarea.d.ts +2 -3
  265. package/dist/cjs/components/Textarea/Textarea.js +14 -14
  266. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  267. package/dist/cjs/components/Tooltip/Tooltip.d.ts +1 -2
  268. package/dist/cjs/components/Tooltip/Tooltip.js +8 -13
  269. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  270. package/dist/cjs/components/Typography/Title/Title.d.ts +1 -1
  271. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  272. package/dist/cjs/components/UsersStack/UsersStack.d.ts +4 -2
  273. package/dist/cjs/components/UsersStack/UsersStack.js +51 -46
  274. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  275. package/dist/cjs/components/UsersStack/masks.js +1 -1
  276. package/dist/cjs/components/UsersStack/masks.js.map +1 -1
  277. package/dist/cjs/components/View/View.d.ts +6 -3
  278. package/dist/cjs/components/View/View.js +26 -43
  279. package/dist/cjs/components/View/View.js.map +1 -1
  280. package/dist/cjs/components/WriteBar/WriteBar.js +9 -29
  281. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  282. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
  283. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  284. package/dist/cjs/index.d.ts +44 -44
  285. package/dist/cjs/index.js +88 -88
  286. package/dist/cjs/index.js.map +1 -1
  287. package/dist/cjs/lib/animate.d.ts +1 -1
  288. package/dist/cjs/lib/animate.js +1 -2
  289. package/dist/cjs/lib/animate.js.map +1 -1
  290. package/dist/cjs/lib/polyfills.js +20 -0
  291. package/dist/cjs/lib/polyfills.js.map +1 -1
  292. package/dist/cjs/tokenized/index.d.ts +44 -0
  293. package/dist/cjs/tokenized/index.js +176 -0
  294. package/dist/cjs/tokenized/index.js.map +1 -1
  295. package/dist/components/ActionSheetItem/ActionSheetItem.js +1 -1
  296. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  297. package/dist/components/Alert/Alert.js +6 -4
  298. package/dist/components/Alert/Alert.js.map +1 -1
  299. package/dist/components/Avatar/Avatar.d.ts +1 -2
  300. package/dist/components/Avatar/Avatar.js +4 -11
  301. package/dist/components/Avatar/Avatar.js.map +1 -1
  302. package/dist/components/Banner/Banner.d.ts +1 -2
  303. package/dist/components/Banner/Banner.js +25 -35
  304. package/dist/components/Banner/Banner.js.map +1 -1
  305. package/dist/components/BaseGallery/BaseGallery.d.ts +4 -0
  306. package/dist/components/BaseGallery/BaseGallery.js +371 -0
  307. package/dist/components/BaseGallery/BaseGallery.js.map +1 -0
  308. package/dist/components/BaseGallery/helpers.d.ts +12 -0
  309. package/dist/components/BaseGallery/helpers.js +50 -0
  310. package/dist/components/BaseGallery/helpers.js.map +1 -0
  311. package/dist/components/BaseGallery/types.d.ts +43 -0
  312. package/dist/components/BaseGallery/types.js +2 -0
  313. package/dist/components/BaseGallery/types.js.map +1 -0
  314. package/dist/components/Button/Button.js +2 -2
  315. package/dist/components/Button/Button.js.map +1 -1
  316. package/dist/components/CalendarDay/CalendarDay.js +1 -1
  317. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  318. package/dist/components/CalendarHeader/CalendarHeader.js +1 -1
  319. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  320. package/dist/components/Cell/Cell.js +1 -1
  321. package/dist/components/Cell/Cell.js.map +1 -1
  322. package/dist/components/CellButton/CellButton.d.ts +1 -2
  323. package/dist/components/CellButton/CellButton.js +3 -10
  324. package/dist/components/CellButton/CellButton.js.map +1 -1
  325. package/dist/components/Checkbox/Checkbox.d.ts +3 -1
  326. package/dist/components/Checkbox/Checkbox.js +67 -15
  327. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  328. package/dist/components/Chip/Chip.js +1 -1
  329. package/dist/components/Chip/Chip.js.map +1 -1
  330. package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -2
  331. package/dist/components/ConfigProvider/ConfigProvider.js +2 -5
  332. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  333. package/dist/components/ContentCard/ContentCard.d.ts +1 -2
  334. package/dist/components/ContentCard/ContentCard.js +35 -46
  335. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  336. package/dist/components/DateInput/DateInput.js +1 -1
  337. package/dist/components/DateInput/DateInput.js.map +1 -1
  338. package/dist/components/DatePicker/DatePicker.d.ts +1 -2
  339. package/dist/components/DatePicker/DatePicker.js +4 -4
  340. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  341. package/dist/components/DateRangeInput/DateRangeInput.js +1 -1
  342. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  343. package/dist/components/Epic/Epic.d.ts +1 -3
  344. package/dist/components/Epic/Epic.js +8 -6
  345. package/dist/components/Epic/Epic.js.map +1 -1
  346. package/dist/components/FixedLayout/FixedLayout.d.ts +1 -2
  347. package/dist/components/FixedLayout/FixedLayout.js +5 -11
  348. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  349. package/dist/components/FocusVisible/FocusVisible.d.ts +3 -4
  350. package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
  351. package/dist/components/FormItem/FormItem.js +3 -6
  352. package/dist/components/FormItem/FormItem.js.map +1 -1
  353. package/dist/components/FormLayout/FormLayout.d.ts +1 -2
  354. package/dist/components/FormLayout/FormLayout.js +2 -5
  355. package/dist/components/FormLayout/FormLayout.js.map +1 -1
  356. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -2
  357. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +5 -10
  358. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  359. package/dist/components/Gallery/Gallery.d.ts +6 -43
  360. package/dist/components/Gallery/Gallery.js +20 -567
  361. package/dist/components/Gallery/Gallery.js.map +1 -1
  362. package/dist/components/GridAvatar/GridAvatar.d.ts +4 -1
  363. package/dist/components/GridAvatar/GridAvatar.js +8 -9
  364. package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
  365. package/dist/components/Group/Group.d.ts +4 -2
  366. package/dist/components/Group/Group.js +9 -10
  367. package/dist/components/Group/Group.js.map +1 -1
  368. package/dist/components/Header/Header.d.ts +1 -2
  369. package/dist/components/Header/Header.js +3 -8
  370. package/dist/components/Header/Header.js.map +1 -1
  371. package/dist/components/HorizontalCell/HorizontalCell.js +2 -2
  372. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  373. package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -1
  374. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  375. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
  376. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  377. package/dist/components/IconButton/IconButton.d.ts +5 -2
  378. package/dist/components/IconButton/IconButton.js +11 -13
  379. package/dist/components/IconButton/IconButton.js.map +1 -1
  380. package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +1 -1
  381. package/dist/components/InitialsAvatar/InitialsAvatar.js +1 -1
  382. package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  383. package/dist/components/Link/Link.d.ts +1 -2
  384. package/dist/components/Link/Link.js +3 -6
  385. package/dist/components/Link/Link.js.map +1 -1
  386. package/dist/components/List/List.d.ts +1 -2
  387. package/dist/components/List/List.js +2 -5
  388. package/dist/components/List/List.js.map +1 -1
  389. package/dist/components/MiniInfoCell/MiniInfoCell.js +1 -1
  390. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  391. package/dist/components/ModalCard/ModalCard.d.ts +4 -2
  392. package/dist/components/ModalCard/ModalCard.js +29 -25
  393. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  394. package/dist/components/ModalCardBase/ModalCardBase.js +1 -1
  395. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  396. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -2
  397. package/dist/components/ModalDismissButton/ModalDismissButton.js +10 -9
  398. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  399. package/dist/components/ModalPage/ModalPage.d.ts +4 -2
  400. package/dist/components/ModalPage/ModalPage.js +31 -28
  401. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  402. package/dist/components/ModalRoot/ModalRoot.js +9 -3
  403. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  404. package/dist/components/ModalRoot/ModalRootContext.d.ts +1 -1
  405. package/dist/components/ModalRoot/ModalRootContext.js +1 -3
  406. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  407. package/dist/components/ModalRoot/ModalRootDesktop.js +1 -1
  408. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  409. package/dist/components/ModalRoot/withModalRootContext.js +1 -1
  410. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  411. package/dist/components/Pagination/Pagination.js +1 -1
  412. package/dist/components/Pagination/Pagination.js.map +1 -1
  413. package/dist/components/PanelHeader/PanelHeader.js +2 -2
  414. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  415. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -2
  416. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +8 -9
  417. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  418. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  419. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  420. package/dist/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -2
  421. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +3 -8
  422. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  423. package/dist/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -2
  424. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +3 -6
  425. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  426. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
  427. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  428. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -2
  429. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -12
  430. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  431. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -2
  432. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +3 -8
  433. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  434. package/dist/components/Placeholder/Placeholder.d.ts +1 -2
  435. package/dist/components/Placeholder/Placeholder.js +2 -5
  436. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  437. package/dist/components/PopoutWrapper/PopoutWrapper.js +1 -9
  438. package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  439. package/dist/components/Popper/Popper.js +4 -1
  440. package/dist/components/Popper/Popper.js.map +1 -1
  441. package/dist/components/PromoBanner/PromoBanner.d.ts +2 -2
  442. package/dist/components/PromoBanner/PromoBanner.js +4 -7
  443. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  444. package/dist/components/PullToRefresh/PullToRefresh.js +1 -1
  445. package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
  446. package/dist/components/Radio/Radio.js +1 -1
  447. package/dist/components/Radio/Radio.js.map +1 -1
  448. package/dist/components/RangeSlider/RangeSlider.d.ts +1 -2
  449. package/dist/components/RangeSlider/RangeSlider.js +2 -5
  450. package/dist/components/RangeSlider/RangeSlider.js.map +1 -1
  451. package/dist/components/RangeSlider/UniversalSlider.js +1 -5
  452. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  453. package/dist/components/Removable/Removable.js +7 -4
  454. package/dist/components/Removable/Removable.js.map +1 -1
  455. package/dist/components/RichCell/RichCell.d.ts +4 -2
  456. package/dist/components/RichCell/RichCell.js +8 -7
  457. package/dist/components/RichCell/RichCell.js.map +1 -1
  458. package/dist/components/Root/Root.d.ts +1 -2
  459. package/dist/components/Root/Root.js +5 -19
  460. package/dist/components/Root/Root.js.map +1 -1
  461. package/dist/components/ScreenSpinner/ScreenSpinner.d.ts +1 -2
  462. package/dist/components/ScreenSpinner/ScreenSpinner.js +12 -13
  463. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  464. package/dist/components/Search/Search.d.ts +1 -2
  465. package/dist/components/Search/Search.js +17 -15
  466. package/dist/components/Search/Search.js.map +1 -1
  467. package/dist/components/SimpleCell/SimpleCell.d.ts +4 -2
  468. package/dist/components/SimpleCell/SimpleCell.js +7 -8
  469. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  470. package/dist/components/SimpleCheckbox/SimpleCheckbox.d.ts +1 -0
  471. package/dist/components/SimpleCheckbox/SimpleCheckbox.js +2 -1
  472. package/dist/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  473. package/dist/components/Slider/Slider.d.ts +1 -2
  474. package/dist/components/Slider/Slider.js +2 -5
  475. package/dist/components/Slider/Slider.js.map +1 -1
  476. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -1
  477. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  478. package/dist/components/Spacing/Spacing.d.ts +2 -1
  479. package/dist/components/Spacing/Spacing.js.map +1 -1
  480. package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
  481. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  482. package/dist/components/Tabbar/Tabbar.d.ts +1 -2
  483. package/dist/components/Tabbar/Tabbar.js +6 -11
  484. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  485. package/dist/components/TabbarItem/TabbarItem.d.ts +1 -2
  486. package/dist/components/TabbarItem/TabbarItem.js +3 -6
  487. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  488. package/dist/components/Tabs/Tabs.d.ts +4 -2
  489. package/dist/components/Tabs/Tabs.js +8 -9
  490. package/dist/components/Tabs/Tabs.js.map +1 -1
  491. package/dist/components/TabsItem/TabsItem.d.ts +1 -2
  492. package/dist/components/TabsItem/TabsItem.js +4 -9
  493. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  494. package/dist/components/Tappable/Tappable.d.ts +7 -4
  495. package/dist/components/Tappable/Tappable.js +9 -6
  496. package/dist/components/Tappable/Tappable.js.map +1 -1
  497. package/dist/components/Textarea/Textarea.d.ts +2 -3
  498. package/dist/components/Textarea/Textarea.js +12 -9
  499. package/dist/components/Textarea/Textarea.js.map +1 -1
  500. package/dist/components/Tooltip/Tooltip.d.ts +1 -2
  501. package/dist/components/Tooltip/Tooltip.js +7 -13
  502. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  503. package/dist/components/Typography/Title/Title.d.ts +1 -1
  504. package/dist/components/Typography/Title/Title.js.map +1 -1
  505. package/dist/components/UsersStack/UsersStack.d.ts +4 -2
  506. package/dist/components/UsersStack/UsersStack.js +48 -39
  507. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  508. package/dist/components/UsersStack/masks.js +1 -1
  509. package/dist/components/UsersStack/masks.js.map +1 -1
  510. package/dist/components/View/View.d.ts +6 -3
  511. package/dist/components/View/View.js +25 -39
  512. package/dist/components/View/View.js.map +1 -1
  513. package/dist/components/WriteBar/WriteBar.js +9 -28
  514. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  515. package/dist/components/WriteBarIcon/WriteBarIcon.js +1 -1
  516. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  517. package/dist/components.css +27 -9
  518. package/dist/components.css.map +1 -1
  519. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +1 -1
  520. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  521. package/dist/cssm/components/Alert/Alert.js +6 -4
  522. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  523. package/dist/cssm/components/Avatar/Avatar.css +5 -1
  524. package/dist/cssm/components/Avatar/Avatar.d.ts +1 -2
  525. package/dist/cssm/components/Avatar/Avatar.js +4 -11
  526. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  527. package/dist/cssm/components/Banner/Banner.css +5 -1
  528. package/dist/cssm/components/Banner/Banner.d.ts +1 -2
  529. package/dist/cssm/components/Banner/Banner.js +25 -35
  530. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  531. package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -0
  532. package/dist/cssm/components/BaseGallery/BaseGallery.d.ts +4 -0
  533. package/dist/cssm/components/BaseGallery/BaseGallery.js +372 -0
  534. package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -0
  535. package/dist/cssm/components/BaseGallery/helpers.d.ts +12 -0
  536. package/dist/cssm/components/BaseGallery/helpers.js +50 -0
  537. package/dist/cssm/components/BaseGallery/helpers.js.map +1 -0
  538. package/dist/cssm/components/BaseGallery/types.d.ts +43 -0
  539. package/dist/cssm/components/BaseGallery/types.js +2 -0
  540. package/dist/cssm/components/BaseGallery/types.js.map +1 -0
  541. package/dist/cssm/components/Button/Button.css +1 -1
  542. package/dist/cssm/components/Button/Button.js +2 -2
  543. package/dist/cssm/components/Button/Button.js.map +1 -1
  544. package/dist/cssm/components/CalendarDay/CalendarDay.js +1 -1
  545. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  546. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +1 -1
  547. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  548. package/dist/cssm/components/Cell/Cell.js +1 -1
  549. package/dist/cssm/components/Cell/Cell.js.map +1 -1
  550. package/dist/cssm/components/CellButton/CellButton.css +1 -1
  551. package/dist/cssm/components/CellButton/CellButton.d.ts +1 -2
  552. package/dist/cssm/components/CellButton/CellButton.js +3 -10
  553. package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
  554. package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
  555. package/dist/cssm/components/Checkbox/Checkbox.d.ts +3 -1
  556. package/dist/cssm/components/Checkbox/Checkbox.js +67 -15
  557. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  558. package/dist/cssm/components/Chip/Chip.js +1 -1
  559. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  560. package/dist/cssm/components/ConfigProvider/ConfigProvider.d.ts +1 -2
  561. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -5
  562. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  563. package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
  564. package/dist/cssm/components/ContentCard/ContentCard.d.ts +1 -2
  565. package/dist/cssm/components/ContentCard/ContentCard.js +35 -46
  566. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  567. package/dist/cssm/components/DateInput/DateInput.js +1 -1
  568. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  569. package/dist/cssm/components/DatePicker/DatePicker.d.ts +1 -2
  570. package/dist/cssm/components/DatePicker/DatePicker.js +4 -4
  571. package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
  572. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +1 -1
  573. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  574. package/dist/cssm/components/Epic/Epic.d.ts +1 -3
  575. package/dist/cssm/components/Epic/Epic.js +8 -6
  576. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  577. package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
  578. package/dist/cssm/components/FixedLayout/FixedLayout.d.ts +1 -2
  579. package/dist/cssm/components/FixedLayout/FixedLayout.js +5 -11
  580. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  581. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  582. package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +3 -4
  583. package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
  584. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  585. package/dist/cssm/components/FormItem/FormItem.js +3 -6
  586. package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
  587. package/dist/cssm/components/FormLayout/FormLayout.d.ts +1 -2
  588. package/dist/cssm/components/FormLayout/FormLayout.js +2 -5
  589. package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
  590. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  591. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +1 -2
  592. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +5 -10
  593. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  594. package/dist/cssm/components/Gallery/Gallery.d.ts +6 -43
  595. package/dist/cssm/components/Gallery/Gallery.js +20 -568
  596. package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
  597. package/dist/cssm/components/GridAvatar/GridAvatar.d.ts +4 -1
  598. package/dist/cssm/components/GridAvatar/GridAvatar.js +8 -9
  599. package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
  600. package/dist/cssm/components/Group/Group.css +1 -1
  601. package/dist/cssm/components/Group/Group.d.ts +4 -2
  602. package/dist/cssm/components/Group/Group.js +9 -10
  603. package/dist/cssm/components/Group/Group.js.map +1 -1
  604. package/dist/cssm/components/Header/Header.d.ts +1 -2
  605. package/dist/cssm/components/Header/Header.js +3 -8
  606. package/dist/cssm/components/Header/Header.js.map +1 -1
  607. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +2 -2
  608. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  609. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -1
  610. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  611. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
  612. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  613. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  614. package/dist/cssm/components/IconButton/IconButton.d.ts +5 -2
  615. package/dist/cssm/components/IconButton/IconButton.js +11 -13
  616. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  617. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
  618. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.d.ts +1 -1
  619. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +1 -1
  620. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -1
  621. package/dist/cssm/components/Link/Link.d.ts +1 -2
  622. package/dist/cssm/components/Link/Link.js +3 -6
  623. package/dist/cssm/components/Link/Link.js.map +1 -1
  624. package/dist/cssm/components/List/List.d.ts +1 -2
  625. package/dist/cssm/components/List/List.js +2 -5
  626. package/dist/cssm/components/List/List.js.map +1 -1
  627. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
  628. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  629. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  630. package/dist/cssm/components/ModalCard/ModalCard.d.ts +4 -2
  631. package/dist/cssm/components/ModalCard/ModalCard.js +29 -25
  632. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  633. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -1
  634. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  635. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.d.ts +1 -2
  636. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +10 -9
  637. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  638. package/dist/cssm/components/ModalPage/ModalPage.d.ts +4 -2
  639. package/dist/cssm/components/ModalPage/ModalPage.js +31 -28
  640. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  641. package/dist/cssm/components/ModalRoot/ModalRoot.js +9 -3
  642. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  643. package/dist/cssm/components/ModalRoot/ModalRootContext.d.ts +1 -1
  644. package/dist/cssm/components/ModalRoot/ModalRootContext.js +1 -3
  645. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  646. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +1 -1
  647. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  648. package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
  649. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  650. package/dist/cssm/components/Pagination/Pagination.js +1 -1
  651. package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
  652. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  653. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -2
  654. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  655. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +5 -2
  656. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +8 -9
  657. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  658. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
  659. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  660. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.d.ts +1 -2
  661. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +3 -8
  662. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  663. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.d.ts +1 -2
  664. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +3 -6
  665. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  666. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +1 -1
  667. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  668. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.d.ts +1 -2
  669. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +7 -12
  670. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  671. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.d.ts +1 -2
  672. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +3 -8
  673. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  674. package/dist/cssm/components/Placeholder/Placeholder.d.ts +1 -2
  675. package/dist/cssm/components/Placeholder/Placeholder.js +2 -5
  676. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  677. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
  678. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -9
  679. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
  680. package/dist/cssm/components/Popper/Popper.js +4 -1
  681. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  682. package/dist/cssm/components/PromoBanner/PromoBanner.d.ts +2 -2
  683. package/dist/cssm/components/PromoBanner/PromoBanner.js +4 -7
  684. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  685. package/dist/cssm/components/PullToRefresh/PullToRefresh.css +1 -1
  686. package/dist/cssm/components/PullToRefresh/PullToRefresh.js +1 -1
  687. package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
  688. package/dist/cssm/components/Radio/Radio.js +1 -1
  689. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  690. package/dist/cssm/components/RangeSlider/RangeSlider.d.ts +1 -2
  691. package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -5
  692. package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
  693. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -5
  694. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  695. package/dist/cssm/components/Removable/Removable.css +1 -1
  696. package/dist/cssm/components/Removable/Removable.js +7 -4
  697. package/dist/cssm/components/Removable/Removable.js.map +1 -1
  698. package/dist/cssm/components/RichCell/RichCell.d.ts +4 -2
  699. package/dist/cssm/components/RichCell/RichCell.js +8 -7
  700. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  701. package/dist/cssm/components/Root/Root.css +1 -1
  702. package/dist/cssm/components/Root/Root.d.ts +1 -2
  703. package/dist/cssm/components/Root/Root.js +5 -19
  704. package/dist/cssm/components/Root/Root.js.map +1 -1
  705. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts +1 -2
  706. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +12 -13
  707. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  708. package/dist/cssm/components/Search/Search.d.ts +1 -2
  709. package/dist/cssm/components/Search/Search.js +17 -15
  710. package/dist/cssm/components/Search/Search.js.map +1 -1
  711. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  712. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +4 -2
  713. package/dist/cssm/components/SimpleCell/SimpleCell.js +7 -8
  714. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  715. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.d.ts +1 -0
  716. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js +2 -1
  717. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.js.map +1 -1
  718. package/dist/cssm/components/Slider/Slider.css +3 -1
  719. package/dist/cssm/components/Slider/Slider.d.ts +1 -2
  720. package/dist/cssm/components/Slider/Slider.js +2 -5
  721. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  722. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -1
  723. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  724. package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
  725. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  726. package/dist/cssm/components/Spacing/Spacing.d.ts +2 -1
  727. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  728. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
  729. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  730. package/dist/cssm/components/Tabbar/Tabbar.d.ts +1 -2
  731. package/dist/cssm/components/Tabbar/Tabbar.js +6 -11
  732. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  733. package/dist/cssm/components/TabbarItem/TabbarItem.d.ts +1 -2
  734. package/dist/cssm/components/TabbarItem/TabbarItem.js +3 -6
  735. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  736. package/dist/cssm/components/Tabs/Tabs.d.ts +4 -2
  737. package/dist/cssm/components/Tabs/Tabs.js +8 -9
  738. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  739. package/dist/cssm/components/TabsItem/TabsItem.d.ts +1 -2
  740. package/dist/cssm/components/TabsItem/TabsItem.js +4 -9
  741. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  742. package/dist/cssm/components/Tappable/Tappable.css +5 -1
  743. package/dist/cssm/components/Tappable/Tappable.d.ts +7 -4
  744. package/dist/cssm/components/Tappable/Tappable.js +9 -6
  745. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  746. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  747. package/dist/cssm/components/Textarea/Textarea.d.ts +2 -3
  748. package/dist/cssm/components/Textarea/Textarea.js +12 -9
  749. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  750. package/dist/cssm/components/Tooltip/Tooltip.d.ts +1 -2
  751. package/dist/cssm/components/Tooltip/Tooltip.js +7 -13
  752. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  753. package/dist/cssm/components/Typography/Title/Title.d.ts +1 -1
  754. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  755. package/dist/cssm/components/UsersStack/UsersStack.css +5 -1
  756. package/dist/cssm/components/UsersStack/UsersStack.d.ts +4 -2
  757. package/dist/cssm/components/UsersStack/UsersStack.js +48 -39
  758. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  759. package/dist/cssm/components/UsersStack/masks.js +1 -1
  760. package/dist/cssm/components/UsersStack/masks.js.map +1 -1
  761. package/dist/cssm/components/View/View.css +1 -1
  762. package/dist/cssm/components/View/View.d.ts +6 -3
  763. package/dist/cssm/components/View/View.js +25 -39
  764. package/dist/cssm/components/View/View.js.map +1 -1
  765. package/dist/cssm/components/WriteBar/WriteBar.js +9 -28
  766. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  767. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
  768. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  769. package/dist/cssm/index.d.ts +44 -44
  770. package/dist/cssm/index.js +44 -44
  771. package/dist/cssm/index.js.map +1 -1
  772. package/dist/cssm/lib/animate.d.ts +1 -1
  773. package/dist/cssm/lib/animate.js +1 -2
  774. package/dist/cssm/lib/animate.js.map +1 -1
  775. package/dist/cssm/lib/polyfills.js +20 -0
  776. package/dist/cssm/lib/polyfills.js.map +1 -1
  777. package/dist/cssm/styles/components.css +27 -9
  778. package/dist/cssm/tokenized/index.d.ts +44 -0
  779. package/dist/cssm/tokenized/index.js +22 -0
  780. package/dist/cssm/tokenized/index.js.map +1 -1
  781. package/dist/default_scheme.css.map +1 -1
  782. package/dist/index.d.ts +44 -44
  783. package/dist/index.js +44 -44
  784. package/dist/index.js.map +1 -1
  785. package/dist/lib/animate.d.ts +1 -1
  786. package/dist/lib/animate.js +1 -2
  787. package/dist/lib/animate.js.map +1 -1
  788. package/dist/lib/polyfills.js +20 -0
  789. package/dist/lib/polyfills.js.map +1 -1
  790. package/dist/tokenized/index.d.ts +44 -0
  791. package/dist/tokenized/index.js +22 -0
  792. package/dist/tokenized/index.js.map +1 -1
  793. package/dist/vkui.css +27 -9
  794. package/dist/vkui.css.map +1 -1
  795. package/package.json +3 -3
  796. package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -1
  797. package/src/components/Alert/Alert.tsx +6 -4
  798. package/src/components/Avatar/Avatar.css +27 -20
  799. package/src/components/Avatar/Avatar.tsx +3 -9
  800. package/src/components/Avatar/Readme.md +43 -304
  801. package/src/components/Banner/Banner.css +24 -25
  802. package/src/components/Banner/Banner.tsx +28 -42
  803. package/src/components/{Gallery/Gallery.css → BaseGallery/BaseGallery.css} +7 -3
  804. package/src/components/BaseGallery/BaseGallery.tsx +394 -0
  805. package/src/components/BaseGallery/helpers.ts +51 -0
  806. package/src/components/BaseGallery/types.ts +52 -0
  807. package/src/components/Button/Button.css +4 -0
  808. package/src/components/Button/Button.tsx +3 -2
  809. package/src/components/CalendarDay/CalendarDay.tsx +1 -1
  810. package/src/components/CalendarHeader/CalendarHeader.tsx +1 -1
  811. package/src/components/Cell/Cell.tsx +1 -1
  812. package/src/components/CellButton/CellButton.css +10 -4
  813. package/src/components/CellButton/CellButton.tsx +4 -13
  814. package/src/components/Checkbox/Checkbox.css +41 -55
  815. package/src/components/Checkbox/Checkbox.tsx +89 -30
  816. package/src/components/Checkbox/Readme.md +19 -0
  817. package/src/components/Chip/Chip.tsx +1 -1
  818. package/src/components/ConfigProvider/ConfigProvider.tsx +1 -4
  819. package/src/components/ContentCard/ContentCard.css +10 -18
  820. package/src/components/ContentCard/ContentCard.tsx +44 -49
  821. package/src/components/ContentCard/Readme.md +6 -0
  822. package/src/components/DateInput/DateInput.tsx +1 -1
  823. package/src/components/DatePicker/DatePicker.tsx +4 -3
  824. package/src/components/DateRangeInput/DateRangeInput.tsx +1 -1
  825. package/src/components/Epic/Epic.tsx +7 -6
  826. package/src/components/FixedLayout/FixedLayout.css +1 -1
  827. package/src/components/FixedLayout/FixedLayout.tsx +5 -10
  828. package/src/components/FocusVisible/FocusVisible.css +1 -1
  829. package/src/components/FocusVisible/FocusVisible.tsx +2 -5
  830. package/src/components/FormItem/FormItem.css +22 -13
  831. package/src/components/FormItem/FormItem.tsx +3 -6
  832. package/src/components/FormLayout/FormLayout.tsx +3 -4
  833. package/src/components/FormLayoutGroup/FormLayoutGroup.css +2 -1
  834. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +3 -9
  835. package/src/components/Gallery/Gallery.tsx +10 -512
  836. package/src/components/GridAvatar/GridAvatar.tsx +17 -15
  837. package/src/components/Group/Group.css +12 -0
  838. package/src/components/Group/Group.tsx +8 -11
  839. package/src/components/Group/Readme.md +129 -134
  840. package/src/components/Header/Header.tsx +2 -9
  841. package/src/components/HorizontalCell/HorizontalCell.tsx +2 -2
  842. package/src/components/HorizontalScroll/HorizontalScroll.tsx +4 -1
  843. package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +1 -1
  844. package/src/components/IconButton/IconButton.css +14 -19
  845. package/src/components/IconButton/IconButton.tsx +14 -16
  846. package/src/components/IconButton/Readme.md +51 -0
  847. package/src/components/InitialsAvatar/InitialsAvatar.css +26 -29
  848. package/src/components/InitialsAvatar/InitialsAvatar.tsx +2 -2
  849. package/src/components/Link/Link.tsx +5 -5
  850. package/src/components/List/List.tsx +3 -7
  851. package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -1
  852. package/src/components/ModalCard/ModalCard.css +1 -1
  853. package/src/components/ModalCard/ModalCard.tsx +31 -30
  854. package/src/components/ModalCardBase/ModalCardBase.tsx +1 -1
  855. package/src/components/ModalDismissButton/ModalDismissButton.tsx +7 -12
  856. package/src/components/ModalPage/ModalPage.tsx +32 -32
  857. package/src/components/ModalRoot/ModalRoot.tsx +9 -2
  858. package/src/components/ModalRoot/ModalRootContext.tsx +0 -3
  859. package/src/components/ModalRoot/ModalRootDesktop.tsx +2 -1
  860. package/src/components/ModalRoot/withModalRootContext.tsx +2 -1
  861. package/src/components/Pagination/Pagination.tsx +1 -1
  862. package/src/components/PanelHeader/PanelHeader.css +9 -0
  863. package/src/components/PanelHeader/PanelHeader.tsx +2 -2
  864. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +9 -8
  865. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
  866. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +3 -11
  867. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +4 -5
  868. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +1 -1
  869. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +4 -13
  870. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +3 -11
  871. package/src/components/Placeholder/Placeholder.tsx +3 -4
  872. package/src/components/PopoutWrapper/PopoutWrapper.css +4 -15
  873. package/src/components/PopoutWrapper/PopoutWrapper.tsx +5 -11
  874. package/src/components/Popper/Popper.tsx +3 -0
  875. package/src/components/PromoBanner/PromoBanner.tsx +3 -6
  876. package/src/components/PullToRefresh/PullToRefresh.css +1 -1
  877. package/src/components/PullToRefresh/PullToRefresh.tsx +1 -1
  878. package/src/components/Radio/Radio.tsx +1 -1
  879. package/src/components/RangeSlider/RangeSlider.tsx +1 -4
  880. package/src/components/RangeSlider/Readme.md +19 -27
  881. package/src/components/RangeSlider/UniversalSlider.tsx +1 -4
  882. package/src/components/Removable/Removable.css +15 -19
  883. package/src/components/Removable/Removable.tsx +5 -3
  884. package/src/components/RichCell/RichCell.tsx +8 -7
  885. package/src/components/Root/Root.css +9 -14
  886. package/src/components/Root/Root.tsx +26 -21
  887. package/src/components/ScreenSpinner/ScreenSpinner.tsx +13 -13
  888. package/src/components/Search/Search.tsx +9 -14
  889. package/src/components/SimpleCell/SimpleCell.css +3 -52
  890. package/src/components/SimpleCell/SimpleCell.tsx +6 -7
  891. package/src/components/SimpleCheckbox/Readme.md +4 -0
  892. package/src/components/SimpleCheckbox/SimpleCheckbox.tsx +2 -1
  893. package/src/components/Slider/Readme.md +68 -76
  894. package/src/components/Slider/Slider.css +9 -49
  895. package/src/components/Slider/Slider.tsx +1 -4
  896. package/src/components/SliderSwitch/SliderSwitchButton.tsx +1 -1
  897. package/src/components/Snackbar/Snackbar.css +6 -2
  898. package/src/components/Spacing/Spacing.css +1 -1
  899. package/src/components/Spacing/Spacing.tsx +2 -1
  900. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
  901. package/src/components/Tabbar/Tabbar.tsx +6 -9
  902. package/src/components/TabbarItem/TabbarItem.tsx +2 -5
  903. package/src/components/Tabs/Tabs.tsx +7 -10
  904. package/src/components/TabsItem/TabsItem.tsx +3 -10
  905. package/src/components/Tappable/Readme.md +53 -0
  906. package/src/components/Tappable/Tappable.css +12 -27
  907. package/src/components/Tappable/Tappable.tsx +13 -8
  908. package/src/components/Textarea/Readme.md +1 -2
  909. package/src/components/Textarea/Textarea.css +12 -8
  910. package/src/components/Textarea/Textarea.tsx +54 -55
  911. package/src/components/Tooltip/Tooltip.tsx +4 -12
  912. package/src/components/Typography/Title/Title.tsx +1 -1
  913. package/src/components/UsersStack/Readme.md +0 -1
  914. package/src/components/UsersStack/UsersStack.css +12 -30
  915. package/src/components/UsersStack/UsersStack.tsx +49 -43
  916. package/src/components/UsersStack/masks.tsx +28 -5
  917. package/src/components/View/View.css +1 -13
  918. package/src/components/View/View.tsx +39 -43
  919. package/src/components/WriteBar/WriteBar.tsx +13 -27
  920. package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -1
  921. package/src/index.ts +44 -44
  922. package/src/lib/animate.ts +1 -2
  923. package/src/lib/polyfills.ts +17 -0
  924. package/src/styles/components.css +1 -1
  925. package/src/tokenized/index.ts +66 -0
  926. package/tasks/postcss-restructure-variable.js +11 -4
  927. package/dist/cssm/components/Gallery/Gallery.css +0 -1
@@ -1 +1 @@
1
- .vkuiView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiView--ios .vkuiPanel__in{padding:0 0 0 0;padding:0 var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left)}.vkuiView--ios .vkuiView__panel--swipe-back-prev{box-shadow:-2px 0 12px rgba(0,0,0,.3)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.vkuiView--ios .vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-prev-forward .6s var(--ios-easing);animation:vkui-animation-ios-prev-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-back .6s var(--ios-easing);animation:vkui-animation-ios-next-back .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-forward .6s var(--ios-easing);animation:vkui-animation-ios-next-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards;animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{position:absolute;width:100%;height:100%;left:0;top:0;z-index:10;background:#000;pointer-events:none}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-fade-in .6s var(--ios-easing);animation:vkui-animation-ios-fade-in .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards;animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiPanel__fade{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiPanel__in{-webkit-animation:none;animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiPanel__fade{display:none}@-webkit-keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}@keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}.vkuiView{position:relative;height:100%;width:100%;word-wrap:break-word}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView__header{z-index:2;position:fixed;width:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--animated .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header{pointer-events:none}.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{position:relative;width:100%;height:100%;box-sizing:border-box;z-index:1}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{position:fixed;top:0;left:0;overflow:hidden}.vkuiView__popout{position:fixed;left:0;top:0;z-index:100;width:100%;height:100%}.vkuiView__modal{position:fixed;left:0;top:0;z-index:99;width:100%;height:100%}.vkuiView__modal:empty{display:none}.vkuiView--vkcom,.vkuiView--android{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common)}.vkuiView--vkcom .vkuiView__panel--active::before,.vkuiView--android .vkuiView__panel--active::before{content:none}.vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards;animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-view-next-forward .3s var(--android-easing);animation:vkui-animation-view-next-forward .3s var(--android-easing)}.vkuiView--no-motion .vkuiView__panel{-webkit-animation:none;animation:none}@-webkit-keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@-webkit-keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
1
+ .vkuiView--ios .vkuiPanel__in{padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom)}.vkuiView--ios .vkuiPanel__in{padding:0 0 0 0;padding:0 var(--safe-area-inset-right) var(--safe-area-inset-bottom) var(--safe-area-inset-left)}.vkuiView--ios .vkuiView__panel--swipe-back-prev{box-shadow:-2px 0 12px rgba(0,0,0,.3)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-success{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-success{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-prev.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.vkuiView--ios .vkuiView__panel--swipe-back-next.vkuiView__panel--swipe-back-failed{transition:-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1);transition:transform .3s cubic-bezier(.36,.66,.04,1),-webkit-transform .3s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing);transition:transform .3s var(--ios-easing),-webkit-transform .3s var(--ios-easing);-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}.vkuiView--ios .vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-prev-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-prev-forward .6s var(--ios-easing);animation:vkui-animation-ios-prev-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-back .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-back .6s var(--ios-easing);animation:vkui-animation-ios-next-back .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-next-forward .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-next-forward .6s var(--ios-easing);animation:vkui-animation-ios-next-forward .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-prev-back .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards;animation:vkui-animation-ios-prev-back .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{position:absolute;width:100%;height:100%;left:0;top:0;z-index:10;background:#000;pointer-events:none}.vkuiView--ios .vkuiView__panel--prev .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);animation:vkui-animation-ios-fade-in .6s cubic-bezier(.36,.66,.04,1);-webkit-animation:vkui-animation-ios-fade-in .6s var(--ios-easing);animation:vkui-animation-ios-fade-in .6s var(--ios-easing)}.vkuiView--ios .vkuiView__panel--next .vkuiPanel__fade{-webkit-animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;animation:vkui-animation-ios-fade-out .6s cubic-bezier(.36,.66,.04,1) forwards;-webkit-animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards;animation:vkui-animation-ios-fade-out .6s var(--ios-easing) forwards}.vkuiView--ios .vkuiView__panel--prev~.vkuiView__panel--next .vkuiPanel__fade,.vkuiView--ios .vkuiView__panel--next~.vkuiView__panel--prev .vkuiPanel__fade{display:none}.vkuiView--ios.vkuiView--no-motion .vkuiView__panel,.vkuiView--ios.vkuiView--no-motion .vkuiView__panel .vkuiPanel__in{-webkit-animation:none;animation:none}.vkuiView--ios .vkuiView__panel--active .vkuiPanel__fade{display:none}@-webkit-keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes vkui-animation-ios-next-forward{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes vkui-animation-ios-next-back{0%{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@keyframes vkui-animation-ios-prev-forward{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0)}}@-webkit-keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes vkui-animation-ios-prev-back{0%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@-webkit-keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@keyframes vkui-animation-ios-fade-in{0%{opacity:0}to{opacity:.3}}@-webkit-keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}@keyframes vkui-animation-ios-fade-out{0%{opacity:.3}to{opacity:0}}.vkuiView{position:relative;height:100%;width:100%;word-wrap:break-word;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common)}.vkuiView--animated,.vkuiView--swiping-back{overflow:hidden}.vkuiView__header{z-index:2;position:fixed;width:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--animated .vkuiView__header,.vkuiView--swiping-back .vkuiView__panel,.vkuiView--swiping-back .vkuiView__header{pointer-events:none}.vkuiView__panels{height:100%;width:100%}.vkuiView__panel{position:relative;width:100%;height:100%;box-sizing:border-box;z-index:1}.vkuiView__panel-in{height:100%}.vkuiView--animated .vkuiView__panel,.vkuiView--swiping-back .vkuiView__panel{position:fixed;top:0;left:0;overflow:hidden}.vkuiView__popout{position:fixed;left:0;top:0;z-index:100;width:100%;height:100%}.vkuiView__modal{position:fixed;left:0;top:0;z-index:99;width:100%;height:100%}.vkuiView__modal:empty{display:none}.vkuiView__panel--next~.vkuiView__panel--prev{-webkit-animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;animation:vkui-animation-view-prev-back .3s cubic-bezier(.4,0,.2,1) forwards;-webkit-animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards;animation:vkui-animation-view-prev-back .3s var(--android-easing) forwards}.vkuiView__panel--prev~.vkuiView__panel--next{-webkit-animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);animation:vkui-animation-view-next-forward .3s cubic-bezier(.4,0,.2,1);-webkit-animation:vkui-animation-view-next-forward .3s var(--android-easing);animation:vkui-animation-view-next-forward .3s var(--android-easing)}.vkuiView--no-motion .vkuiView__panel{-webkit-animation:none;animation:none}@-webkit-keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@keyframes vkui-animation-view-prev-back{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}to{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}}@-webkit-keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes vkui-animation-view-next-forward{0%{opacity:0;-webkit-transform:translateY(80px);transform:translateY(80px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
@@ -69,12 +69,15 @@ export interface ViewState {
69
69
  prevPanel: string | null;
70
70
  nextPanel: string | null;
71
71
  swipingBack: boolean;
72
- swipebackStartX: number;
72
+ swipeBackStartX: number;
73
73
  swipeBackShift: number;
74
74
  swipeBackNextPanel: string | null;
75
75
  swipeBackPrevPanel: string | null;
76
76
  swipeBackResult: SwipeBackResults | null;
77
77
  browserSwipe: boolean;
78
78
  }
79
- declare const _default: React.FC<Pick<ViewProps, "hidden" | "dir" | "nav" | "slot" | "style" | "title" | "scroll" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "popout" | "modal" | "onTransition" | "activePanel" | "onSwipeBack" | "onSwipeBackStart" | "onSwipeBackCancel" | "history" | "splitCol" | "configProvider">>;
80
- export default _default;
79
+ /**
80
+ * @see https://vkcom.github.io/VKUI/#/View
81
+ */
82
+ export declare const View: React.FC<Pick<ViewProps, "hidden" | "dir" | "nav" | "slot" | "style" | "title" | "scroll" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "popout" | "modal" | "onTransition" | "activePanel" | "onSwipeBack" | "onSwipeBackStart" | "onSwipeBackCancel" | "history" | "splitCol" | "configProvider">>;
83
+ export {};
@@ -11,8 +11,7 @@ import { createScopedElement } from "../../lib/jsxRuntime";
11
11
  import * as React from "react";
12
12
  import { classNames } from "../../lib/classNames";
13
13
  import { transitionEvent, animationEvent } from "../../lib/supportEvents";
14
- import { getClassName } from "../../helpers/getClassName";
15
- import { IOS, ANDROID, VKCOM } from "../../lib/platform";
14
+ import { IOS } from "../../lib/platform";
16
15
  import { Touch } from "../Touch/Touch";
17
16
  import { withPlatform } from "../../hoc/withPlatform";
18
17
  import { withContext } from "../../hoc/withContext";
@@ -35,19 +34,16 @@ var SwipeBackResults;
35
34
 
36
35
  export var scrollsCache = {};
37
36
  var warn = warnOnce("View");
38
- /**
39
- * @see https://vkcom.github.io/VKUI/#/View
40
- */
41
37
 
42
- var View = /*#__PURE__*/function (_React$Component) {
43
- _inherits(View, _React$Component);
38
+ var ViewComponent = /*#__PURE__*/function (_React$Component) {
39
+ _inherits(ViewComponent, _React$Component);
44
40
 
45
- var _super = _createSuper(View);
41
+ var _super = _createSuper(ViewComponent);
46
42
 
47
- function View(props) {
43
+ function ViewComponent(props) {
48
44
  var _this;
49
45
 
50
- _classCallCheck(this, View);
46
+ _classCallCheck(this, ViewComponent);
51
47
 
52
48
  _this = _super.call(this, props);
53
49
 
@@ -112,7 +108,7 @@ var View = /*#__PURE__*/function (_React$Component) {
112
108
 
113
109
  _this.setState({
114
110
  swipingBack: true,
115
- swipebackStartX: e.startX,
111
+ swipeBackStartX: e.startX,
116
112
  swipeBackPrevPanel: _this.state.activePanel,
117
113
  swipeBackNextPanel: _this.props.history.slice(-2)[0]
118
114
  });
@@ -123,7 +119,7 @@ var View = /*#__PURE__*/function (_React$Component) {
123
119
 
124
120
  if (e.shiftX < 0) {
125
121
  swipeBackShift = 0;
126
- } else if (e.shiftX > _this.window.innerWidth - _this.state.swipebackStartX) {
122
+ } else if (e.shiftX > _this.window.innerWidth - _this.state.swipeBackStartX) {
127
123
  var _this$window;
128
124
 
129
125
  swipeBackShift = (_this$window = _this.window) === null || _this$window === void 0 ? void 0 : _this$window.innerWidth;
@@ -148,7 +144,7 @@ var View = /*#__PURE__*/function (_React$Component) {
148
144
  _this.onSwipeBackCancel();
149
145
  } else if (_this.state.swipeBackShift >= ((_this$window$innerWid = (_this$window2 = _this.window) === null || _this$window2 === void 0 ? void 0 : _this$window2.innerWidth) !== null && _this$window$innerWid !== void 0 ? _this$window$innerWid : 0)) {
150
146
  _this.onSwipeBackSuccess();
151
- } else if (speed > 250 || _this.state.swipebackStartX + _this.state.swipeBackShift > _this.window.innerWidth / 2) {
147
+ } else if (speed > 250 || _this.state.swipeBackStartX + _this.state.swipeBackShift > _this.window.innerWidth / 2) {
152
148
  _this.setState({
153
149
  swipeBackResult: SwipeBackResults.success
154
150
  });
@@ -168,7 +164,7 @@ var View = /*#__PURE__*/function (_React$Component) {
168
164
  prevPanel: null,
169
165
  nextPanel: null,
170
166
  swipingBack: false,
171
- swipebackStartX: 0,
167
+ swipeBackStartX: 0,
172
168
  swipeBackShift: 0,
173
169
  swipeBackNextPanel: null,
174
170
  swipeBackPrevPanel: null,
@@ -178,7 +174,7 @@ var View = /*#__PURE__*/function (_React$Component) {
178
174
  return _this;
179
175
  }
180
176
 
181
- _createClass(View, [{
177
+ _createClass(ViewComponent, [{
182
178
  key: "document",
183
179
  get: function get() {
184
180
  return this.props.document;
@@ -254,7 +250,7 @@ var View = /*#__PURE__*/function (_React$Component) {
254
250
  clearTimeout(this.animationFinishTimeout);
255
251
  }
256
252
 
257
- this.animationFinishTimeout = setTimeout(this.transitionEndHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);
253
+ this.animationFinishTimeout = setTimeout(this.transitionEndHandler, this.props.platform === IOS ? 600 : 300);
258
254
  }
259
255
  }
260
256
  } // Закончилась анимация свайпа назад
@@ -273,7 +269,7 @@ var View = /*#__PURE__*/function (_React$Component) {
273
269
  swipeBackNextPanel: null,
274
270
  swipingBack: false,
275
271
  swipeBackResult: null,
276
- swipebackStartX: 0,
272
+ swipeBackStartX: 0,
277
273
  swipeBackShift: 0,
278
274
  activePanel: nextPanel,
279
275
  visiblePanels: [nextPanel]
@@ -339,7 +335,7 @@ var View = /*#__PURE__*/function (_React$Component) {
339
335
  clearTimeout(this.transitionFinishTimeout);
340
336
  }
341
337
 
342
- this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === ANDROID || this.props.platform === VKCOM ? 300 : 600);
338
+ this.transitionFinishTimeout = setTimeout(eventHandler, this.props.platform === IOS ? 600 : 300);
343
339
  }
344
340
  }
345
341
  }, {
@@ -403,7 +399,7 @@ var View = /*#__PURE__*/function (_React$Component) {
403
399
  swipeBackNextPanel: null,
404
400
  swipingBack: false,
405
401
  swipeBackResult: null,
406
- swipebackStartX: 0,
402
+ swipeBackStartX: 0,
407
403
  swipeBackShift: 0
408
404
  });
409
405
  }
@@ -487,15 +483,10 @@ var View = /*#__PURE__*/function (_React$Component) {
487
483
  return panelId !== undefined && _this4.state.visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
488
484
  });
489
485
  var disableAnimation = this.shouldDisableTransitionMotion();
490
- var modifiers = {
491
- "View--animated": !disableAnimation && animated,
492
- "View--swiping-back": !disableAnimation && this.state.swipingBack,
493
- "View--no-motion": disableAnimation
494
- };
495
486
  return createScopedElement(Touch, _extends({
496
487
  Component: "section"
497
488
  }, restProps, {
498
- vkuiClass: classNames(getClassName("View", platform), modifiers),
489
+ vkuiClass: classNames("View", platform === IOS && "View--ios", !disableAnimation && animated && "View--animated", !disableAnimation && this.state.swipingBack && "View--swiping-back", disableAnimation && "View--no-motion"),
499
490
  onMoveX: this.onMoveX,
500
491
  onEnd: this.onEnd
501
492
  }), createScopedElement("div", {
@@ -508,16 +499,7 @@ var View = /*#__PURE__*/function (_React$Component) {
508
499
  var isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);
509
500
  var compensateScroll = isPrev || panelId === swipeBackNextPanel || panelId === nextPanel && isBack;
510
501
  return createScopedElement("div", {
511
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
512
- vkuiClass: classNames("View__panel", {
513
- "View__panel--active": panelId === activePanel,
514
- "View__panel--prev": panelId === prevPanel,
515
- "View__panel--next": panelId === nextPanel,
516
- "View__panel--swipe-back-prev": panelId === swipeBackPrevPanel,
517
- "View__panel--swipe-back-next": panelId === swipeBackNextPanel,
518
- "View__panel--swipe-back-success": swipeBackResult === SwipeBackResults.success,
519
- "View__panel--swipe-back-failed": swipeBackResult === SwipeBackResults.fail
520
- }),
502
+ vkuiClass: classNames("View__panel", panelId === activePanel && "View__panel--active", panelId === prevPanel && "View__panel--prev", panelId === nextPanel && "View__panel--next", panelId === swipeBackPrevPanel && "View__panel--swipe-back-prev", panelId === swipeBackNextPanel && "View__panel--swipe-back-next", swipeBackResult === SwipeBackResults.success && "View__panel--swipe-back-success", swipeBackResult === SwipeBackResults.fail && "View__panel--swipe-back-failed"),
521
503
  onAnimationEnd: isTransitionTarget ? _this4.transitionEndHandler : undefined,
522
504
  ref: function ref(el) {
523
505
  return panelId !== undefined && (_this4.panelNodes[panelId] = el);
@@ -540,13 +522,17 @@ var View = /*#__PURE__*/function (_React$Component) {
540
522
  }
541
523
  }]);
542
524
 
543
- return View;
544
- }(React.Component); // eslint-disable-next-line import/no-default-export
525
+ return ViewComponent;
526
+ }(React.Component);
527
+ /**
528
+ * @see https://vkcom.github.io/VKUI/#/View
529
+ */
545
530
 
546
531
 
547
- _defineProperty(View, "defaultProps", {
532
+ _defineProperty(ViewComponent, "defaultProps", {
548
533
  history: []
549
534
  });
550
535
 
551
- export default withContext(withContext(withContext(withPlatform(withDOM(View)), SplitColContext, "splitCol"), ConfigProviderContext, "configProvider"), ScrollContext, "scroll");
536
+ export var View = withContext(withContext(withContext(withPlatform(withDOM(ViewComponent)), SplitColContext, "splitCol"), ConfigProviderContext, "configProvider"), ScrollContext, "scroll");
537
+ View.displayName = "View";
552
538
  //# sourceMappingURL=View.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/View/View.tsx"],"names":["React","classNames","transitionEvent","animationEvent","getClassName","IOS","ANDROID","VKCOM","Touch","withPlatform","withContext","ConfigProviderContext","SplitColContext","AppRootPortal","canUseDOM","withDOM","ScrollContext","NavTransitionProvider","getNavId","warnOnce","swipeBackExcluded","SwipeBackResults","scrollsCache","warn","View","props","undefined","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","platform","configProvider","isWebView","startX","window","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","activePanel","scrolls","scroll","getScroll","y","swipebackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","speed","duration","visiblePanels","nextPanel","document","Children","toArray","children","process","env","NODE_ENV","popout","modal","id","animationFinishTimeout","clearTimeout","prevProps","prevState","blurActiveElement","firstLayerId","panels","map","panel","find","shouldDisableTransitionMotion","supported","setTimeout","transitionEndHandler","scrollTo","onTransition","from","to","onSwipeBackStart","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","transitionFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","restProps","hasPopout","hasModal","filter","disableAnimation","modifiers","onMoveX","onEnd","isTransitionTarget","compensateScroll","el","calcPanelSwipeStyles","marginTop","Component"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { transitionEvent, animationEvent } from \"../../lib/supportEvents\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS, ANDROID, VKCOM } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { HasPlatform } from \"../../types\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { withContext } from \"../../hoc/withContext\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext, SplitColContextProps } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, withDOM, DOMProps } from \"../../lib/dom\";\nimport {\n ScrollContext,\n ScrollContextInterface,\n} from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { swipeBackExcluded } from \"./utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\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 ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\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: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nclass View extends React.Component<ViewProps & DOMProps, ViewState> {\n constructor(props: ViewProps) {\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: false,\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<ViewProps> = {\n history: [],\n };\n\n private readonly scrolls = scrollsCache[getNavId(this.props) as string] || {};\n private transitionFinishTimeout: number | undefined = undefined;\n private animationFinishTimeout: number | 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 componentDidMount() {\n if (process.env.NODE_ENV === \"development\") {\n const { popout, modal } = this.props;\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n }\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: ViewProps, prevState: ViewState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find(\n (id) => id === prevProps.activePanel || id === this.props.activePanel\n );\n\n const isBack = firstLayerId === this.props.activePanel;\n this.scrolls[prevProps.activePanel] = this.props.scroll?.getScroll().y;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.blurActiveElement();\n\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 if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === ANDROID || this.props.platform === VKCOM\n ? 300\n : 600\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevProps.activePanel !== this.props.activePanel &&\n prevState.swipingBack\n ) {\n const nextPanel = this.props.activePanel;\n const prevPanel = prevProps.activePanel;\n if (prevState.swipeBackPrevPanel !== null) {\n this.scrolls[prevState.swipeBackPrevPanel] = 0;\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 if (this.state.activePanel !== null) {\n this.props.scroll?.scrollTo(\n 0,\n this.scrolls[this.state.activePanel]\n );\n }\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n }\n );\n }\n\n // Начался свайп назад\n if (!prevState.swipingBack && this.state.swipingBack) {\n this.props.onSwipeBackStart && this.props.onSwipeBackStart();\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 === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n this.props.scroll?.scrollTo(0, this.scrolls[this.state.activePanel]);\n }\n\n // Закончился Safari свайп\n if (\n prevProps.activePanel !== this.props.activePanel &&\n this.state.browserSwipe\n ) {\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 );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener\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\n ? 300\n : 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 if (isBack) {\n this.scrolls[prevPanel] = 0;\n }\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? this.scrolls[activePanel] : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n }\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\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 SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.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 onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n const { platform, configProvider } = this.props;\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= this.window!.innerWidth - 70) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n if (\n platform === IOS &&\n configProvider?.isWebView &&\n this.props.onSwipeBack\n ) {\n if ((this.state.animated && e.startX <= 70) || !this.window) {\n return;\n }\n\n if (\n e.startX <= 70 &&\n !this.state.swipingBack &&\n (this.props.history?.length ?? 0) > 1\n ) {\n if (this.state.activePanel !== null) {\n this.scrolls[this.state.activePanel] =\n this.props.scroll?.getScroll().y;\n }\n this.setState({\n swipingBack: true,\n swipebackStartX: e.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history!.slice(-2)[0],\n });\n }\n if (this.state.swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (\n e.shiftX >\n this.window.innerWidth - this.state.swipebackStartX\n ) {\n swipeBackShift = this.window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n }\n };\n\n onEnd = (e: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / e.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= (this.window?.innerWidth ?? 0)) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipebackStartX + this.state.swipeBackShift >\n this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.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)) /\n this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `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 popout,\n modal,\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n isBack,\n animated,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels.filter((panel: React.ReactElement) => {\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\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n const modifiers = {\n \"View--animated\": !disableAnimation && animated,\n \"View--swiping-back\": !disableAnimation && this.state.swipingBack,\n \"View--no-motion\": disableAnimation,\n };\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(getClassName(\"View\", platform), modifiers)}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"View__panel\", {\n \"View__panel--active\": panelId === activePanel,\n \"View__panel--prev\": panelId === prevPanel,\n \"View__panel--next\": panelId === nextPanel,\n \"View__panel--swipe-back-prev\":\n panelId === swipeBackPrevPanel,\n \"View__panel--swipe-back-next\":\n panelId === swipeBackNextPanel,\n \"View__panel--swipe-back-success\":\n swipeBackResult === SwipeBackResults.success,\n \"View__panel--swipe-back-failed\":\n swipeBackResult === SwipeBackResults.fail,\n })}\n onAnimationEnd={\n isTransitionTarget ? this.transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (this.panelNodes[panelId] = el)\n }\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(this.scrolls[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewProps>(View)),\n SplitColContext,\n \"splitCol\"\n ),\n ConfigProviderContext,\n \"configProvider\"\n ),\n ScrollContext,\n \"scroll\"\n);\n"],"file":"View.js"}
1
+ {"version":3,"sources":["../../../../src/components/View/View.tsx"],"names":["React","classNames","transitionEvent","animationEvent","IOS","Touch","withPlatform","withContext","ConfigProviderContext","SplitColContext","AppRootPortal","canUseDOM","withDOM","ScrollContext","NavTransitionProvider","getNavId","warnOnce","swipeBackExcluded","SwipeBackResults","scrollsCache","warn","ViewComponent","props","undefined","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","fail","onSwipeBackCancel","success","onSwipeBackSuccess","platform","configProvider","isWebView","startX","window","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","activePanel","scrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","speed","duration","visiblePanels","nextPanel","document","Children","toArray","children","process","env","NODE_ENV","popout","modal","id","animationFinishTimeout","clearTimeout","prevProps","prevState","blurActiveElement","firstLayerId","panels","map","panel","find","shouldDisableTransitionMotion","supported","setTimeout","transitionEndHandler","scrollTo","onTransition","from","to","onSwipeBackStart","waitTransitionFinish","swipingBackTransitionEndHandler","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","transitionFinishTimeout","activeElement","blur","panelNodes","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","_1","nav","restProps","hasPopout","hasModal","filter","disableAnimation","onMoveX","onEnd","isTransitionTarget","compensateScroll","el","calcPanelSwipeStyles","marginTop","Component","View","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { transitionEvent, animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { HasPlatform } from \"../../types\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { withContext } from \"../../hoc/withContext\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from \"../ConfigProvider/ConfigProviderContext\";\nimport { SplitColContext, SplitColContextProps } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, withDOM, DOMProps } from \"../../lib/dom\";\nimport {\n ScrollContext,\n ScrollContextInterface,\n} from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { swipeBackExcluded } from \"./utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\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 ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\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: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\nclass ViewComponent extends React.Component<ViewProps & DOMProps, ViewState> {\n constructor(props: ViewProps) {\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: false,\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<ViewProps> = {\n history: [],\n };\n\n private readonly scrolls = scrollsCache[getNavId(this.props) as string] || {};\n private transitionFinishTimeout: number | undefined = undefined;\n private animationFinishTimeout: number | 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 componentDidMount() {\n if (process.env.NODE_ENV === \"development\") {\n const { popout, modal } = this.props;\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n }\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: ViewProps, prevState: ViewState) {\n this.props.popout && !prevProps.popout && this.blurActiveElement();\n this.props.modal && !prevProps.modal && this.blurActiveElement();\n\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find(\n (id) => id === prevProps.activePanel || id === this.props.activePanel\n );\n\n const isBack = firstLayerId === this.props.activePanel;\n this.scrolls[prevProps.activePanel] = this.props.scroll?.getScroll().y;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.blurActiveElement();\n\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 if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === IOS ? 600 : 300\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevProps.activePanel !== this.props.activePanel &&\n prevState.swipingBack\n ) {\n const nextPanel = this.props.activePanel;\n const prevPanel = prevProps.activePanel;\n if (prevState.swipeBackPrevPanel !== null) {\n this.scrolls[prevState.swipeBackPrevPanel] = 0;\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 if (this.state.activePanel !== null) {\n this.props.scroll?.scrollTo(\n 0,\n this.scrolls[this.state.activePanel]\n );\n }\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n }\n );\n }\n\n // Начался свайп назад\n if (!prevState.swipingBack && this.state.swipingBack) {\n this.props.onSwipeBackStart && this.props.onSwipeBackStart();\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 === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n this.props.scroll?.scrollTo(0, this.scrolls[this.state.activePanel]);\n }\n\n // Закончился Safari свайп\n if (\n prevProps.activePanel !== this.props.activePanel &&\n this.state.browserSwipe\n ) {\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 );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === IOS ? 600 : 300\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 if (isBack) {\n this.scrolls[prevPanel] = 0;\n }\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? this.scrolls[activePanel] : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n }\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\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 SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.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 onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n const { platform, configProvider } = this.props;\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= this.window!.innerWidth - 70) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n if (\n platform === IOS &&\n configProvider?.isWebView &&\n this.props.onSwipeBack\n ) {\n if ((this.state.animated && e.startX <= 70) || !this.window) {\n return;\n }\n\n if (\n e.startX <= 70 &&\n !this.state.swipingBack &&\n (this.props.history?.length ?? 0) > 1\n ) {\n if (this.state.activePanel !== null) {\n this.scrolls[this.state.activePanel] =\n this.props.scroll?.getScroll().y;\n }\n this.setState({\n swipingBack: true,\n swipeBackStartX: e.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history!.slice(-2)[0],\n });\n }\n if (this.state.swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (\n e.shiftX >\n this.window.innerWidth - this.state.swipeBackStartX\n ) {\n swipeBackShift = this.window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n }\n };\n\n onEnd = (e: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / e.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= (this.window?.innerWidth ?? 0)) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift >\n this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.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)) /\n this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `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 popout,\n modal,\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n isBack,\n animated,\n } = this.state;\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = this.panels.filter((panel: React.ReactElement) => {\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\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && this.state.swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? this.transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (this.panelNodes[panelId] = el)\n }\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(this.scrolls[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewProps>(ViewComponent)),\n SplitColContext,\n \"splitCol\"\n ),\n ConfigProviderContext,\n \"configProvider\"\n ),\n ScrollContext,\n \"scroll\"\n);\n\nView.displayName = \"View\";\n"],"file":"View.js"}
@@ -6,7 +6,6 @@ import * as React from "react";
6
6
  import { usePlatform } from "../../hooks/usePlatform";
7
7
  import { useExternRef } from "../../hooks/useExternRef";
8
8
  import { hasReactNode, isFunction } from "../../lib/utils";
9
- import { useDOM } from "../../lib/dom";
10
9
  import { getClassName } from "../../helpers/getClassName";
11
10
  import "./WriteBar.css";
12
11
 
@@ -29,12 +28,8 @@ export var WriteBar = function WriteBar(props) {
29
28
  restProps = _objectWithoutProperties(props, _excluded);
30
29
 
31
30
  var isControlledOutside = value != null;
32
-
33
- var _useDOM = useDOM(),
34
- window = _useDOM.window;
35
-
36
31
  var textareaRef = useExternRef(getRef);
37
- var textareaMinHeightRef = React.useRef(null);
32
+ var currentScrollHeight = React.useRef();
38
33
  var resize = React.useCallback(function () {
39
34
  var textareaEl = textareaRef.current;
40
35
 
@@ -42,30 +37,16 @@ export var WriteBar = function WriteBar(props) {
42
37
  return;
43
38
  }
44
39
 
45
- var offsetHeight = textareaEl.offsetHeight,
46
- scrollHeight = textareaEl.scrollHeight;
47
- var style = window.getComputedStyle(textareaEl);
48
- var paddingTop = parseInt(style.paddingTop);
49
- var paddingBottom = parseInt(style.paddingBottom);
50
-
51
- if (textareaMinHeightRef.current === null) {
52
- textareaMinHeightRef.current = offsetHeight;
53
- }
54
-
55
- var diff = paddingTop + paddingBottom + 10;
56
-
57
- if (scrollHeight + diff <= offsetHeight) {
58
- diff = 0;
59
- }
60
-
61
- textareaEl.style.height = "0px";
62
- var height = textareaEl.scrollHeight - diff / 4;
63
- textareaEl.style.height = String(Math.max(height, textareaMinHeightRef.current)) + "px";
40
+ if (textareaEl.offsetParent) {
41
+ textareaEl.style.height = "";
42
+ textareaEl.style.height = "".concat(textareaEl.scrollHeight, "px");
64
43
 
65
- if (isFunction(onHeightChange)) {
66
- onHeightChange();
44
+ if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {
45
+ onHeightChange();
46
+ currentScrollHeight.current = textareaEl.scrollHeight;
47
+ }
67
48
  }
68
- }, [onHeightChange, textareaRef, window]);
49
+ }, [onHeightChange, textareaRef]);
69
50
 
70
51
  var onTextareaChange = function onTextareaChange(event) {
71
52
  if (isFunction(onChange)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"names":["React","usePlatform","useExternRef","hasReactNode","isFunction","useDOM","getClassName","WriteBar","props","platform","className","style","before","inlineAfter","after","value","onChange","getRootRef","getRef","onHeightChange","restProps","isControlledOutside","window","textareaRef","textareaMinHeightRef","useRef","resize","useCallback","textareaEl","current","offsetHeight","scrollHeight","getComputedStyle","paddingTop","parseInt","paddingBottom","diff","height","String","Math","max","onTextareaChange","event","useEffect","e","preventDefault"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,YAAT,EAAuBC,UAAvB;AACA,SAASC,MAAT;AACA,SAASC,YAAT;AAEA;;AA0BA;AACA;AACA;AACA,OAAO,IAAMC,QAAiC,GAAG,SAApCA,QAAoC,CAACC,KAAD,EAA0B;AACzE,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,MACES,SADF,GAeIF,KAfJ,CACEE,SADF;AAAA,MAEEC,KAFF,GAeIH,KAfJ,CAEEG,KAFF;AAAA,MAIEC,MAJF,GAeIJ,KAfJ,CAIEI,MAJF;AAAA,MAKEC,WALF,GAeIL,KAfJ,CAKEK,WALF;AAAA,MAMEC,KANF,GAeIN,KAfJ,CAMEM,KANF;AAAA,MAQEC,KARF,GAeIP,KAfJ,CAQEO,KARF;AAAA,MASEC,QATF,GAeIR,KAfJ,CASEQ,QATF;AAAA,MAWEC,UAXF,GAeIT,KAfJ,CAWES,UAXF;AAAA,MAYEC,MAZF,GAeIV,KAfJ,CAYEU,MAZF;AAAA,MAaEC,cAbF,GAeIX,KAfJ,CAaEW,cAbF;AAAA,MAcKC,SAdL,4BAeIZ,KAfJ;;AAiBA,MAAMa,mBAAmB,GAAGN,KAAK,IAAI,IAArC;;AAEA,gBAAmBV,MAAM,EAAzB;AAAA,MAAQiB,MAAR,WAAQA,MAAR;;AACA,MAAMC,WAAW,GAAGrB,YAAY,CAACgB,MAAD,CAAhC;AACA,MAAMM,oBAAoB,GAAGxB,KAAK,CAACyB,MAAN,CAA4B,IAA5B,CAA7B;AAEA,MAAMC,MAAM,GAAG1B,KAAK,CAAC2B,WAAN,CAAkB,YAAM;AACrC,QAAMC,UAAU,GAAGL,WAAW,CAACM,OAA/B;;AACA,QAAI,CAACD,UAAL,EAAiB;AACf;AACD;;AAED,QAAQE,YAAR,GAAuCF,UAAvC,CAAQE,YAAR;AAAA,QAAsBC,YAAtB,GAAuCH,UAAvC,CAAsBG,YAAtB;AACA,QAAMpB,KAAK,GAAGW,MAAM,CAAEU,gBAAR,CAAyBJ,UAAzB,CAAd;AACA,QAAMK,UAAU,GAAGC,QAAQ,CAACvB,KAAK,CAACsB,UAAP,CAA3B;AACA,QAAME,aAAa,GAAGD,QAAQ,CAACvB,KAAK,CAACwB,aAAP,CAA9B;;AAEA,QAAIX,oBAAoB,CAACK,OAArB,KAAiC,IAArC,EAA2C;AACzCL,MAAAA,oBAAoB,CAACK,OAArB,GAA+BC,YAA/B;AACD;;AAED,QAAIM,IAAI,GAAGH,UAAU,GAAGE,aAAb,GAA6B,EAAxC;;AAEA,QAAIJ,YAAY,GAAGK,IAAf,IAAuBN,YAA3B,EAAyC;AACvCM,MAAAA,IAAI,GAAG,CAAP;AACD;;AAEDR,IAAAA,UAAU,CAACjB,KAAX,CAAiB0B,MAAjB,GAA0B,KAA1B;AAEA,QAAMA,MAAM,GAAGT,UAAU,CAACG,YAAX,GAA0BK,IAAI,GAAG,CAAhD;AACAR,IAAAA,UAAU,CAACjB,KAAX,CAAiB0B,MAAjB,GACEC,MAAM,CAACC,IAAI,CAACC,GAAL,CAASH,MAAT,EAAiBb,oBAAoB,CAACK,OAAtC,CAAD,CAAN,GAAyD,IAD3D;;AAGA,QAAIzB,UAAU,CAACe,cAAD,CAAd,EAAgC;AAC9BA,MAAAA,cAAc;AACf;AACF,GA9Bc,EA8BZ,CAACA,cAAD,EAAiBI,WAAjB,EAA8BD,MAA9B,CA9BY,CAAf;;AAgCA,MAAMmB,gBAA+D,GAAG,SAAlEA,gBAAkE,CACtEC,KADsE,EAEnE;AACH,QAAItC,UAAU,CAACY,QAAD,CAAd,EAA0B;AACxBA,MAAAA,QAAQ,CAAC0B,KAAD,CAAR;AACD;;AAED,QAAI,CAACrB,mBAAL,EAA0B;AACxBK,MAAAA,MAAM;AACP;AACF,GAVD;;AAYA1B,EAAAA,KAAK,CAAC2C,SAAN,CAAgB,YAAM;AACpBjB,IAAAA,MAAM;AACP,GAFD,EAEG,CAACA,MAAD,EAASX,KAAT,CAFH;AAIA,SACE;AACE,IAAA,GAAG,EAAEE,UADP;AAEE,IAAA,SAAS,EAAEX,YAAY,CAAC,UAAD,EAAaG,QAAb,CAFzB;AAGE,IAAA,SAAS,EAAEC,SAHb;AAIE,IAAA,KAAK,EAAEC;AAJT,KAME;AAAM,IAAA,SAAS,EAAC,gBAAhB;AAAiC,IAAA,QAAQ,EAAE,kBAACiC,CAAD;AAAA,aAAOA,CAAC,CAACC,cAAF,EAAP;AAAA;AAA3C,KACG1C,YAAY,CAACS,MAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,MAAnC,CAFJ,EAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,6CACMQ,SADN;AAEE,IAAA,SAAS,EAAC,oBAFZ;AAGE,IAAA,QAAQ,EAAEqB,gBAHZ;AAIE,IAAA,GAAG,EAAElB,WAJP;AAKE,IAAA,KAAK,EAAER;AALT,KADF,EASGZ,YAAY,CAACU,WAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwCA,WAAxC,CAVJ,CALF,EAmBGV,YAAY,CAACW,KAAD,CAAZ,IAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAnB1B,CANF,CADF;AA8BD,CAvGM","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { hasReactNode, isFunction } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport \"./WriteBar.css\";\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n\n children?: never;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar: React.FC<WriteBarProps> = (props: WriteBarProps) => {\n const platform = usePlatform();\n const {\n className,\n style,\n\n before,\n inlineAfter,\n after,\n\n value,\n onChange,\n\n getRootRef,\n getRef,\n onHeightChange,\n ...restProps\n } = props;\n\n const isControlledOutside = value != null;\n\n const { window } = useDOM();\n const textareaRef = useExternRef(getRef);\n const textareaMinHeightRef = React.useRef<number | null>(null);\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n const { offsetHeight, scrollHeight } = textareaEl;\n const style = window!.getComputedStyle(textareaEl);\n const paddingTop = parseInt(style.paddingTop);\n const paddingBottom = parseInt(style.paddingBottom);\n\n if (textareaMinHeightRef.current === null) {\n textareaMinHeightRef.current = offsetHeight;\n }\n\n let diff = paddingTop + paddingBottom + 10;\n\n if (scrollHeight + diff <= offsetHeight) {\n diff = 0;\n }\n\n textareaEl.style.height = \"0px\";\n\n const height = textareaEl.scrollHeight - diff / 4;\n textareaEl.style.height =\n String(Math.max(height, textareaMinHeightRef.current)) + \"px\";\n\n if (isFunction(onHeightChange)) {\n onHeightChange();\n }\n }, [onHeightChange, textareaRef, window]);\n\n const onTextareaChange: React.ChangeEventHandler<HTMLTextAreaElement> = (\n event\n ) => {\n if (isFunction(onChange)) {\n onChange(event);\n }\n\n if (!isControlledOutside) {\n resize();\n }\n };\n\n React.useEffect(() => {\n resize();\n }, [resize, value]);\n\n return (\n <div\n ref={getRootRef}\n vkuiClass={getClassName(\"WriteBar\", platform)}\n className={className}\n style={style}\n >\n <form vkuiClass=\"WriteBar__form\" onSubmit={(e) => e.preventDefault()}>\n {hasReactNode(before) && (\n <div vkuiClass=\"WriteBar__before\">{before}</div>\n )}\n\n <div vkuiClass=\"WriteBar__formIn\">\n <textarea\n {...restProps}\n vkuiClass=\"WriteBar__textarea\"\n onChange={onTextareaChange}\n ref={textareaRef}\n value={value}\n />\n\n {hasReactNode(inlineAfter) && (\n <div vkuiClass=\"WriteBar__inlineAfter\">{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div vkuiClass=\"WriteBar__after\">{after}</div>}\n </form>\n </div>\n );\n};\n"],"file":"WriteBar.js"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBar/WriteBar.tsx"],"names":["React","usePlatform","useExternRef","hasReactNode","isFunction","getClassName","WriteBar","props","platform","className","style","before","inlineAfter","after","value","onChange","getRootRef","getRef","onHeightChange","restProps","isControlledOutside","textareaRef","currentScrollHeight","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","onTextareaChange","event","useEffect","e","preventDefault"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { hasReactNode, isFunction } from \"../../lib/utils\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport \"./WriteBar.css\";\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n\n children?: never;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar: React.FC<WriteBarProps> = (props: WriteBarProps) => {\n const platform = usePlatform();\n const {\n className,\n style,\n\n before,\n inlineAfter,\n after,\n\n value,\n onChange,\n\n getRootRef,\n getRef,\n onHeightChange,\n ...restProps\n } = props;\n\n const isControlledOutside = value != null;\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = \"\";\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (\n textareaEl.scrollHeight !== currentScrollHeight.current &&\n onHeightChange\n ) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n const onTextareaChange: React.ChangeEventHandler<HTMLTextAreaElement> = (\n event\n ) => {\n if (isFunction(onChange)) {\n onChange(event);\n }\n\n if (!isControlledOutside) {\n resize();\n }\n };\n\n React.useEffect(() => {\n resize();\n }, [resize, value]);\n\n return (\n <div\n ref={getRootRef}\n vkuiClass={getClassName(\"WriteBar\", platform)}\n className={className}\n style={style}\n >\n <form vkuiClass=\"WriteBar__form\" onSubmit={(e) => e.preventDefault()}>\n {hasReactNode(before) && (\n <div vkuiClass=\"WriteBar__before\">{before}</div>\n )}\n\n <div vkuiClass=\"WriteBar__formIn\">\n <textarea\n {...restProps}\n vkuiClass=\"WriteBar__textarea\"\n onChange={onTextareaChange}\n ref={textareaRef}\n value={value}\n />\n\n {hasReactNode(inlineAfter) && (\n <div vkuiClass=\"WriteBar__inlineAfter\">{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div vkuiClass=\"WriteBar__after\">{after}</div>}\n </form>\n </div>\n );\n};\n"],"file":"WriteBar.js"}
@@ -9,7 +9,7 @@ import { classNames } from "../../lib/classNames";
9
9
  import { getClassName } from "../../helpers/getClassName";
10
10
  import { IOS } from "../../lib/platform";
11
11
  import { Counter } from "../Counter/Counter";
12
- import Tappable from "../Tappable/Tappable";
12
+ import { Tappable } from "../Tappable/Tappable";
13
13
  import { warnOnce } from "../../lib/warnOnce";
14
14
  import { hasReactNode } from "../../lib/utils";
15
15
  import "./WriteBarIcon.css";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"names":["Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon48WritebarDone","Icon48WritebarSend","usePlatform","classNames","getClassName","IOS","Counter","Tappable","warnOnce","hasReactNode","warn","IS_DEV","process","env","NODE_ENV","WriteBarIcon","mode","children","count","restProps","platform","icon","ariaLabel","undefined"],"mappings":";;;;;AACA,SACEA,UADF,EAEEC,sBAFF,EAGEC,mBAHF,EAIEC,wBAJF,EAKEC,kBALF,EAMEC,kBANF,QAOO,kBAPP;AAQA,SAASC,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,GAAT;AACA,SAASC,OAAT;AACA,OAAOC,QAAP;AACA,SAASC,QAAT;AACA,SAASC,YAAT;AACA;AAmBA,IAAMC,IAAI,GAAGF,QAAQ,CAAC,cAAD,CAArB;AACA,IAAMG,MAAM,GAAGC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAxC;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,OAKhC;AAAA,MAJvBC,IAIuB,QAJvBA,IAIuB;AAAA,MAHvBC,QAGuB,QAHvBA,QAGuB;AAAA,MAFvBC,KAEuB,QAFvBA,KAEuB;AAAA,MADpBC,SACoB;;AACvB,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,MAAImB,IAAJ;AACA,MAAIC,SAA6B,GAAGC,SAApC;;AAEA,UAAQP,IAAR;AACE,SAAK,QAAL;AACEK,MAAAA,IAAI,GACFD,QAAQ,KAAKf,GAAb,GAAmB,oBAAC,sBAAD,OAAnB,GAAgD,oBAAC,mBAAD,OADlD;AAEAiB,MAAAA,SAAS,GAAG,iBAAZ;AACA;;AAEF,SAAK,MAAL;AACED,MAAAA,IAAI,GAAGD,QAAQ,KAAKf,GAAb,GAAmB,oBAAC,kBAAD,OAAnB,GAA4C,oBAAC,UAAD,OAAnD;AACAiB,MAAAA,SAAS,GAAG,WAAZ;AACA;;AAEF,SAAK,MAAL;AACED,MAAAA,IAAI,GACFD,QAAQ,KAAKf,GAAb,GACE,oBAAC,kBAAD,OADF,GAGE,oBAAC,wBAAD,OAJJ;AAMAiB,MAAAA,SAAS,GAAG,QAAZ;AACA;;AAEF;AACE;AAvBJ;;AA0BA,MAAIX,MAAM,IAAI,CAACQ,SAAS,CAAC,YAAD,CAApB,IAAsC,CAACG,SAA3C,EAAsD;AACpDZ,IAAAA,IAAI,CACF,wFADE,EAEF,OAFE,CAAJ;AAID;;AAED,SACE,oBAAC,QAAD;AACE,kBAAYY;AADd,KAEMH,SAFN;AAGE,IAAA,SAAS,EAAC,QAHZ;AAIE,IAAA,QAAQ,EAAE,KAJZ;AAKE,IAAA,UAAU,EAAC,sBALb,CAME;AANF;AAOE,IAAA,SAAS,EAAEhB,UAAU,CAACC,YAAY,CAAC,cAAD,EAAiBgB,QAAjB,CAAb,8CACDJ,IADC,GACQ,CAAC,CAACA,IADV;AAPvB,MAWE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGK,IAAI,IAAIJ,QADX,EAEGR,YAAY,CAACS,KAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC,uBAAnB;AAA2C,IAAA,IAAI,EAAC;AAAhD,KACGA,KADH,CAHJ,CAXF,CADF;AAsBD,CAlEM","sourcesContent":["import * as React from \"react\";\nimport {\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { Counter } from \"../Counter/Counter\";\nimport Tappable from \"../Tappable/Tappable\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./WriteBarIcon.css\";\n\nexport interface WriteBarIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: \"attach\" | \"send\" | \"done\";\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce(\"WriteBarIcon\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon: React.FC<WriteBarIconProps> = ({\n mode,\n children,\n count,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n\n let icon: React.ReactNode;\n let ariaLabel: string | undefined = undefined;\n\n switch (mode) {\n case \"attach\":\n icon =\n platform === IOS ? <Icon28AddCircleOutline /> : <Icon28AttachOutline />;\n ariaLabel = \"Прикрепить файл\";\n break;\n\n case \"send\":\n icon = platform === IOS ? <Icon48WritebarSend /> : <Icon24Send />;\n ariaLabel = \"Отправить\";\n break;\n\n case \"done\":\n icon =\n platform === IOS ? (\n <Icon48WritebarDone />\n ) : (\n <Icon28CheckCircleOutline />\n );\n ariaLabel = \"Готово\";\n break;\n\n default:\n break;\n }\n\n if (IS_DEV && !restProps[\"aria-label\"] && !ariaLabel) {\n warn(\n \"a11y: У WriteBarIcon нет aria-label. Кнопка будет недоступной для части пользователей.\",\n \"error\"\n );\n }\n\n return (\n <Tappable\n aria-label={ariaLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode=\"WriteBarIcon__active\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"WriteBarIcon\", platform), {\n [`WriteBarIcon--${mode}`]: !!mode,\n })}\n >\n <span vkuiClass=\"WriteBarIcon__in\">\n {icon || children}\n {hasReactNode(count) && (\n <Counter vkuiClass=\"WriteBarIcon__counter\" size=\"s\">\n {count}\n </Counter>\n )}\n </span>\n </Tappable>\n );\n};\n"],"file":"WriteBarIcon.js"}
1
+ {"version":3,"sources":["../../../../src/components/WriteBarIcon/WriteBarIcon.tsx"],"names":["Icon24Send","Icon28AddCircleOutline","Icon28AttachOutline","Icon28CheckCircleOutline","Icon48WritebarDone","Icon48WritebarSend","usePlatform","classNames","getClassName","IOS","Counter","Tappable","warnOnce","hasReactNode","warn","IS_DEV","process","env","NODE_ENV","WriteBarIcon","mode","children","count","restProps","platform","icon","ariaLabel","undefined"],"mappings":";;;;;AACA,SACEA,UADF,EAEEC,sBAFF,EAGEC,mBAHF,EAIEC,wBAJF,EAKEC,kBALF,EAMEC,kBANF,QAOO,kBAPP;AAQA,SAASC,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,GAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AACA,SAASC,YAAT;AACA;AAmBA,IAAMC,IAAI,GAAGF,QAAQ,CAAC,cAAD,CAArB;AACA,IAAMG,MAAM,GAAGC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAxC;AAEA;AACA;AACA;;AACA,OAAO,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,OAKhC;AAAA,MAJvBC,IAIuB,QAJvBA,IAIuB;AAAA,MAHvBC,QAGuB,QAHvBA,QAGuB;AAAA,MAFvBC,KAEuB,QAFvBA,KAEuB;AAAA,MADpBC,SACoB;;AACvB,MAAMC,QAAQ,GAAGlB,WAAW,EAA5B;AAEA,MAAImB,IAAJ;AACA,MAAIC,SAA6B,GAAGC,SAApC;;AAEA,UAAQP,IAAR;AACE,SAAK,QAAL;AACEK,MAAAA,IAAI,GACFD,QAAQ,KAAKf,GAAb,GAAmB,oBAAC,sBAAD,OAAnB,GAAgD,oBAAC,mBAAD,OADlD;AAEAiB,MAAAA,SAAS,GAAG,iBAAZ;AACA;;AAEF,SAAK,MAAL;AACED,MAAAA,IAAI,GAAGD,QAAQ,KAAKf,GAAb,GAAmB,oBAAC,kBAAD,OAAnB,GAA4C,oBAAC,UAAD,OAAnD;AACAiB,MAAAA,SAAS,GAAG,WAAZ;AACA;;AAEF,SAAK,MAAL;AACED,MAAAA,IAAI,GACFD,QAAQ,KAAKf,GAAb,GACE,oBAAC,kBAAD,OADF,GAGE,oBAAC,wBAAD,OAJJ;AAMAiB,MAAAA,SAAS,GAAG,QAAZ;AACA;;AAEF;AACE;AAvBJ;;AA0BA,MAAIX,MAAM,IAAI,CAACQ,SAAS,CAAC,YAAD,CAApB,IAAsC,CAACG,SAA3C,EAAsD;AACpDZ,IAAAA,IAAI,CACF,wFADE,EAEF,OAFE,CAAJ;AAID;;AAED,SACE,oBAAC,QAAD;AACE,kBAAYY;AADd,KAEMH,SAFN;AAGE,IAAA,SAAS,EAAC,QAHZ;AAIE,IAAA,QAAQ,EAAE,KAJZ;AAKE,IAAA,UAAU,EAAC,sBALb,CAME;AANF;AAOE,IAAA,SAAS,EAAEhB,UAAU,CAACC,YAAY,CAAC,cAAD,EAAiBgB,QAAjB,CAAb,8CACDJ,IADC,GACQ,CAAC,CAACA,IADV;AAPvB,MAWE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGK,IAAI,IAAIJ,QADX,EAEGR,YAAY,CAACS,KAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC,uBAAnB;AAA2C,IAAA,IAAI,EAAC;AAAhD,KACGA,KADH,CAHJ,CAXF,CADF;AAsBD,CAlEM","sourcesContent":["import * as React from \"react\";\nimport {\n Icon24Send,\n Icon28AddCircleOutline,\n Icon28AttachOutline,\n Icon28CheckCircleOutline,\n Icon48WritebarDone,\n Icon48WritebarSend,\n} from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { IOS } from \"../../lib/platform\";\nimport { Counter } from \"../Counter/Counter\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./WriteBarIcon.css\";\n\nexport interface WriteBarIconProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /**\n * Предустановленные типы кнопок в WriteBar для отрисовки иконки в зависимости от платформы.\n * Если передать валидное значение для этого свойства, `children` игнорируется.\n *\n * - `attach` – иконка прикрепления.\n * - `send` – иконка отправки.\n * - `done` – иконка отправки в режиме редактирования.\n */\n mode?: \"attach\" | \"send\" | \"done\";\n /**\n * Значение счётчика для кнопки. Например, для количества прикреплённых файлов.\n */\n count?: number;\n}\n\nconst warn = warnOnce(\"WriteBarIcon\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBarIcon\n */\nexport const WriteBarIcon: React.FC<WriteBarIconProps> = ({\n mode,\n children,\n count,\n ...restProps\n}: WriteBarIconProps) => {\n const platform = usePlatform();\n\n let icon: React.ReactNode;\n let ariaLabel: string | undefined = undefined;\n\n switch (mode) {\n case \"attach\":\n icon =\n platform === IOS ? <Icon28AddCircleOutline /> : <Icon28AttachOutline />;\n ariaLabel = \"Прикрепить файл\";\n break;\n\n case \"send\":\n icon = platform === IOS ? <Icon48WritebarSend /> : <Icon24Send />;\n ariaLabel = \"Отправить\";\n break;\n\n case \"done\":\n icon =\n platform === IOS ? (\n <Icon48WritebarDone />\n ) : (\n <Icon28CheckCircleOutline />\n );\n ariaLabel = \"Готово\";\n break;\n\n default:\n break;\n }\n\n if (IS_DEV && !restProps[\"aria-label\"] && !ariaLabel) {\n warn(\n \"a11y: У WriteBarIcon нет aria-label. Кнопка будет недоступной для части пользователей.\",\n \"error\"\n );\n }\n\n return (\n <Tappable\n aria-label={ariaLabel}\n {...restProps}\n Component=\"button\"\n hasHover={false}\n activeMode=\"WriteBarIcon__active\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"WriteBarIcon\", platform), {\n [`WriteBarIcon--${mode}`]: !!mode,\n })}\n >\n <span vkuiClass=\"WriteBarIcon__in\">\n {icon || children}\n {hasReactNode(count) && (\n <Counter vkuiClass=\"WriteBarIcon__counter\" size=\"s\">\n {count}\n </Counter>\n )}\n </span>\n </Tappable>\n );\n};\n"],"file":"WriteBarIcon.js"}