@vkontakte/vkui 4.35.2 → 4.36.1

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 (651) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +21609 -18312
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  7. package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  8. package/.cache/ts/src/components/Chip/Chip.d.ts +12 -5
  9. package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +5 -26
  10. package/.cache/ts/src/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  11. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  13. package/.cache/ts/src/components/DateInput/DateInput.d.ts +4 -2
  14. package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  15. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  16. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -1
  17. package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  18. package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +1 -0
  19. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  20. package/.cache/ts/src/components/List/List.d.ts +2 -1
  21. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +13 -1
  22. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -2
  23. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  24. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  25. package/.cache/ts/src/components/Textarea/Textarea.d.ts +3 -2
  26. package/.cache/ts/src/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  27. package/{dist/cssm/components/ChipsSelect → .cache/ts/src/hooks}/useChipsSelect.d.ts +4 -4
  28. package/.cache/ts/src/index.d.ts +3 -0
  29. package/.cache/ts/src/tokenized/index.d.ts +56 -0
  30. package/README.md +3 -2
  31. package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -4
  32. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  33. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +24 -0
  34. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  35. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +10 -8
  36. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  37. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -5
  38. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  39. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -39
  40. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  41. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  42. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  43. package/dist/cjs/components/Alert/Alert.js +11 -12
  44. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  45. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  46. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  47. package/dist/cjs/components/Avatar/Avatar.js +4 -17
  48. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  49. package/dist/cjs/components/Banner/Banner.js +41 -47
  50. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  51. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  52. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
  53. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  54. package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
  55. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  56. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  57. package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
  58. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  59. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
  60. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/CustomSelect/CustomSelect.js +32 -31
  64. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  65. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  66. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  67. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
  68. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  69. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
  70. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  71. package/dist/cjs/components/FormField/FormField.js +4 -2
  72. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  73. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
  74. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  75. package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
  76. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  77. package/dist/cjs/components/Header/Header.js +3 -11
  78. package/dist/cjs/components/Header/Header.js.map +1 -1
  79. package/dist/cjs/components/IconButton/IconButton.js +4 -3
  80. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  81. package/dist/cjs/components/Input/Input.js +4 -2
  82. package/dist/cjs/components/Input/Input.js.map +1 -1
  83. package/dist/cjs/components/List/List.js.map +1 -1
  84. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
  85. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  86. package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
  87. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  88. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
  89. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  90. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
  91. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
  93. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  94. package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
  95. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  96. package/dist/cjs/components/Panel/Panel.js +4 -10
  97. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  98. package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
  99. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  100. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
  101. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  102. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  103. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  104. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  105. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +5 -4
  107. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
  109. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  110. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  111. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  112. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  113. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  114. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
  115. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  116. package/dist/cjs/components/Search/Search.js +7 -9
  117. package/dist/cjs/components/Search/Search.js.map +1 -1
  118. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
  119. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  120. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
  121. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  122. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
  123. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  124. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
  125. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  126. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
  127. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  128. package/dist/cjs/components/Tappable/Tappable.js +8 -16
  129. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  130. package/dist/cjs/components/Textarea/Textarea.js +4 -2
  131. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  132. package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
  133. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  134. package/dist/cjs/components/View/View.js +2 -7
  135. package/dist/cjs/components/View/View.js.map +1 -1
  136. package/dist/cjs/components/View/ViewInfinite.js +1 -10
  137. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  138. package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
  139. package/dist/cjs/hooks/useChipsInput.js.map +1 -0
  140. package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  141. package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
  142. package/dist/cjs/index.js +8 -0
  143. package/dist/cjs/index.js.map +1 -1
  144. package/dist/cjs/lib/animate.js +2 -2
  145. package/dist/cjs/lib/animate.js.map +1 -1
  146. package/dist/cjs/lib/platform.js +9 -4
  147. package/dist/cjs/lib/platform.js.map +1 -1
  148. package/dist/cjs/lib/testing.js +2 -2
  149. package/dist/cjs/lib/testing.js.map +1 -1
  150. package/dist/cjs/lib/touch.js +2 -2
  151. package/dist/cjs/lib/touch.js.map +1 -1
  152. package/dist/cjs/tokenized/index.js +232 -0
  153. package/dist/cjs/tokenized/index.js.map +1 -1
  154. package/dist/components/ActionSheet/ActionSheet.js +4 -4
  155. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  156. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  157. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  158. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  159. package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
  160. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  161. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  162. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  163. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  164. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
  165. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  166. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  167. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  168. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  169. package/dist/components/Alert/Alert.js +12 -12
  170. package/dist/components/Alert/Alert.js.map +1 -1
  171. package/dist/components/AppRoot/AppRoot.js +2 -5
  172. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  173. package/dist/components/Avatar/Avatar.js +4 -17
  174. package/dist/components/Avatar/Avatar.js.map +1 -1
  175. package/dist/components/Banner/Banner.js +41 -48
  176. package/dist/components/Banner/Banner.js.map +1 -1
  177. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  178. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  179. package/dist/components/CalendarDay/CalendarDay.js +4 -21
  180. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  181. package/dist/components/CardScroll/CardScroll.js +1 -3
  182. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  183. package/dist/components/Chip/Chip.d.ts +12 -5
  184. package/dist/components/Chip/Chip.js.map +1 -1
  185. package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
  186. package/dist/components/ChipsInput/ChipsInput.js +14 -183
  187. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  188. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  189. package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
  190. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  191. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  192. package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
  193. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  194. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  195. package/dist/components/CustomSelect/CustomSelect.js +32 -31
  196. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  197. package/dist/components/DateInput/DateInput.d.ts +4 -2
  198. package/dist/components/DateInput/DateInput.js +4 -2
  199. package/dist/components/DateInput/DateInput.js.map +1 -1
  200. package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  201. package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
  202. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  203. package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  204. package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
  205. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  206. package/dist/components/FormField/FormField.d.ts +2 -1
  207. package/dist/components/FormField/FormField.js +4 -2
  208. package/dist/components/FormField/FormField.js.map +1 -1
  209. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  210. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  211. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  212. package/dist/components/FormStatus/FormStatus.d.ts +1 -0
  213. package/dist/components/FormStatus/FormStatus.js +4 -4
  214. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  215. package/dist/components/Header/Header.js +3 -10
  216. package/dist/components/Header/Header.js.map +1 -1
  217. package/dist/components/IconButton/IconButton.js +4 -3
  218. package/dist/components/IconButton/IconButton.js.map +1 -1
  219. package/dist/components/Input/Input.d.ts +1 -1
  220. package/dist/components/Input/Input.js +4 -2
  221. package/dist/components/Input/Input.js.map +1 -1
  222. package/dist/components/List/List.d.ts +2 -1
  223. package/dist/components/List/List.js.map +1 -1
  224. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
  225. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  226. package/dist/components/ModalPage/ModalPage.d.ts +13 -1
  227. package/dist/components/ModalPage/ModalPage.js +12 -10
  228. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  229. package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
  230. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  231. package/dist/components/ModalRoot/ModalRoot.js +4 -18
  232. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  233. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
  234. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  235. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
  236. package/dist/components/NativeSelect/NativeSelect.js +4 -2
  237. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  238. package/dist/components/Panel/Panel.js +4 -8
  239. package/dist/components/Panel/Panel.js.map +1 -1
  240. package/dist/components/PanelHeader/PanelHeader.js +2 -11
  241. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  242. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  243. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  244. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  245. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  246. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  247. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  248. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  249. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  250. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  251. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  252. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  253. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  254. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  255. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  256. package/dist/components/PromoBanner/PromoBanner.js +1 -4
  257. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  258. package/dist/components/Search/Search.js +6 -8
  259. package/dist/components/Search/Search.js.map +1 -1
  260. package/dist/components/Select/Select.d.ts +1 -1
  261. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  262. package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
  263. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  264. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  265. package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
  266. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  267. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
  268. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  269. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
  270. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  271. package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
  272. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  273. package/dist/components/Tappable/Tappable.js +3 -10
  274. package/dist/components/Tappable/Tappable.js.map +1 -1
  275. package/dist/components/Textarea/Textarea.d.ts +3 -2
  276. package/dist/components/Textarea/Textarea.js +4 -2
  277. package/dist/components/Textarea/Textarea.js.map +1 -1
  278. package/dist/components/UsersStack/UsersStack.js +69 -28
  279. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  280. package/dist/components/View/View.js +2 -7
  281. package/dist/components/View/View.js.map +1 -1
  282. package/dist/components/View/ViewInfinite.js +1 -10
  283. package/dist/components/View/ViewInfinite.js.map +1 -1
  284. package/dist/components.css +93 -15
  285. package/dist/components.css.map +1 -1
  286. package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
  287. package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
  288. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  289. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  290. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  291. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  292. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
  293. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  294. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  295. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  296. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
  297. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  298. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
  299. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  300. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  301. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  302. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  303. package/dist/cssm/components/Alert/Alert.css +7 -1
  304. package/dist/cssm/components/Alert/Alert.js +12 -12
  305. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  306. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  307. package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
  308. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  309. package/dist/cssm/components/Avatar/Avatar.js +4 -17
  310. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  311. package/dist/cssm/components/Banner/Banner.js +41 -48
  312. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  313. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  314. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  315. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
  316. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  317. package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
  318. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  319. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  320. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  321. package/dist/cssm/components/Chip/Chip.css +1 -1
  322. package/dist/cssm/components/Chip/Chip.d.ts +12 -5
  323. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  324. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  325. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
  326. package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
  327. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  328. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
  329. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  330. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
  331. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  332. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  333. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  334. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
  335. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  336. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  337. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  338. package/dist/cssm/components/CustomSelect/CustomSelect.js +32 -31
  339. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  340. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  341. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
  342. package/dist/cssm/components/DateInput/DateInput.js +4 -2
  343. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  344. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  345. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  346. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
  347. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  348. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  349. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
  350. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  351. package/dist/cssm/components/FormField/FormField.css +4 -4
  352. package/dist/cssm/components/FormField/FormField.d.ts +2 -1
  353. package/dist/cssm/components/FormField/FormField.js +4 -2
  354. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  355. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  356. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  357. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  358. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  359. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  360. package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
  361. package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
  362. package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
  363. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  364. package/dist/cssm/components/Header/Header.css +1 -1
  365. package/dist/cssm/components/Header/Header.js +3 -10
  366. package/dist/cssm/components/Header/Header.js.map +1 -1
  367. package/dist/cssm/components/IconButton/IconButton.js +4 -3
  368. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  369. package/dist/cssm/components/Input/Input.css +1 -1
  370. package/dist/cssm/components/Input/Input.d.ts +1 -1
  371. package/dist/cssm/components/Input/Input.js +4 -2
  372. package/dist/cssm/components/Input/Input.js.map +1 -1
  373. package/dist/cssm/components/Link/Link.css +1 -1
  374. package/dist/cssm/components/List/List.d.ts +2 -1
  375. package/dist/cssm/components/List/List.js +1 -1
  376. package/dist/cssm/components/List/List.js.map +1 -1
  377. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  378. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
  379. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  380. package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
  381. package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
  382. package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
  383. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  384. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  385. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  386. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  387. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
  388. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  389. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
  390. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  391. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
  392. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
  393. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  394. package/dist/cssm/components/Panel/Panel.css +19 -1
  395. package/dist/cssm/components/Panel/Panel.js +4 -8
  396. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  397. package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
  398. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
  399. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  400. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  401. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  402. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  403. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  404. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  405. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  406. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  407. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
  408. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  409. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  410. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  411. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  412. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  413. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  414. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  415. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  416. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  417. package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
  418. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
  419. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  420. package/dist/cssm/components/Search/Search.css +27 -1
  421. package/dist/cssm/components/Search/Search.js +6 -8
  422. package/dist/cssm/components/Search/Search.js.map +1 -1
  423. package/dist/cssm/components/Select/Select.css +1 -1
  424. package/dist/cssm/components/Select/Select.d.ts +1 -1
  425. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  426. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
  427. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  428. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  429. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
  430. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  431. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
  432. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  433. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  434. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  435. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
  436. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  437. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  438. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
  439. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  440. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  441. package/dist/cssm/components/Tappable/Tappable.js +3 -10
  442. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  443. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  444. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
  445. package/dist/cssm/components/Textarea/Textarea.js +4 -2
  446. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  447. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  448. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  449. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  450. package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
  451. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  452. package/dist/cssm/components/View/View.js +2 -7
  453. package/dist/cssm/components/View/View.js.map +1 -1
  454. package/dist/cssm/components/View/ViewInfinite.js +1 -10
  455. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  456. package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  457. package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
  458. package/dist/cssm/hooks/useChipsInput.js.map +1 -0
  459. package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
  460. package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
  461. package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
  462. package/dist/cssm/index.d.ts +3 -0
  463. package/dist/cssm/index.js +1 -0
  464. package/dist/cssm/index.js.map +1 -1
  465. package/dist/cssm/lib/animate.js +1 -1
  466. package/dist/cssm/lib/animate.js.map +1 -1
  467. package/dist/cssm/lib/platform.js +8 -3
  468. package/dist/cssm/lib/platform.js.map +1 -1
  469. package/dist/cssm/lib/testing.js +1 -1
  470. package/dist/cssm/lib/testing.js.map +1 -1
  471. package/dist/cssm/lib/touch.js +1 -1
  472. package/dist/cssm/lib/touch.js.map +1 -1
  473. package/dist/cssm/styles/components.css +93 -15
  474. package/dist/cssm/styles/themes.css +1 -1
  475. package/dist/cssm/styles/unstable.css +1 -1
  476. package/dist/cssm/tokenized/index.d.ts +56 -0
  477. package/dist/cssm/tokenized/index.js +29 -0
  478. package/dist/cssm/tokenized/index.js.map +1 -1
  479. package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  480. package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
  481. package/dist/hooks/useChipsInput.js.map +1 -0
  482. package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
  483. package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  484. package/dist/hooks/useChipsSelect.js.map +1 -0
  485. package/dist/index.d.ts +3 -0
  486. package/dist/index.js +1 -0
  487. package/dist/index.js.map +1 -1
  488. package/dist/lib/animate.js +1 -1
  489. package/dist/lib/animate.js.map +1 -1
  490. package/dist/lib/platform.js +8 -3
  491. package/dist/lib/platform.js.map +1 -1
  492. package/dist/lib/testing.js +1 -1
  493. package/dist/lib/testing.js.map +1 -1
  494. package/dist/lib/touch.js +1 -1
  495. package/dist/lib/touch.js.map +1 -1
  496. package/dist/tokenized/index.d.ts +56 -0
  497. package/dist/tokenized/index.js +29 -0
  498. package/dist/tokenized/index.js.map +1 -1
  499. package/dist/unstable.css +1 -1
  500. package/dist/unstable.css.map +1 -1
  501. package/dist/vkui.css +94 -16
  502. package/dist/vkui.css.map +1 -1
  503. package/package.json +9 -9
  504. package/src/components/ActionSheet/ActionSheet.css +31 -59
  505. package/src/components/ActionSheet/ActionSheet.tsx +4 -7
  506. package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
  507. package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
  508. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
  509. package/src/components/ActionSheet/Readme.md +6 -30
  510. package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
  511. package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
  512. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
  513. package/src/components/Alert/Alert.css +79 -79
  514. package/src/components/Alert/Alert.tsx +14 -14
  515. package/src/components/Alert/Readme.md +83 -104
  516. package/src/components/AppRoot/AppRoot.css +2 -1
  517. package/src/components/AppRoot/AppRoot.tsx +1 -4
  518. package/src/components/Avatar/Avatar.tsx +15 -17
  519. package/src/components/Avatar/Readme.md +3 -3
  520. package/src/components/Banner/Banner.tsx +58 -63
  521. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  522. package/src/components/ButtonGroup/Readme.md +13 -11
  523. package/src/components/Calendar/Readme.md +3 -0
  524. package/src/components/CalendarDay/CalendarDay.tsx +21 -20
  525. package/src/components/CalendarRange/Readme.md +3 -0
  526. package/src/components/CardScroll/CardScroll.tsx +1 -2
  527. package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
  528. package/src/components/Cell/CellDragger/CellDragger.css +1 -1
  529. package/src/components/Chip/Chip.css +1 -0
  530. package/src/components/Chip/Chip.tsx +14 -2
  531. package/src/components/ChipsInput/ChipsInput.css +0 -71
  532. package/src/components/ChipsInput/ChipsInput.tsx +20 -220
  533. package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
  534. package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
  535. package/src/components/ChipsSelect/ChipsSelect.css +8 -0
  536. package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
  537. package/src/components/CustomSelect/CustomSelect.css +1 -0
  538. package/src/components/CustomSelect/CustomSelect.tsx +2 -3
  539. package/src/components/CustomSelect/Readme.md +8 -2
  540. package/src/components/DateInput/DateInput.css +1 -1
  541. package/src/components/DateInput/DateInput.tsx +6 -3
  542. package/src/components/DateInput/Readme.md +13 -0
  543. package/src/components/DateRangeInput/DateRangeInput.css +1 -1
  544. package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
  545. package/src/components/DateRangeInput/Readme.md +13 -0
  546. package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
  547. package/src/components/Epic/Readme.md +10 -5
  548. package/src/components/FormField/FormField.css +58 -6
  549. package/src/components/FormField/FormField.tsx +3 -0
  550. package/src/components/FormItem/FormItem.css +5 -3
  551. package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
  552. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
  553. package/src/components/FormLayoutGroup/Readme.md +58 -48
  554. package/src/components/FormStatus/FormStatus.css +8 -5
  555. package/src/components/FormStatus/FormStatus.tsx +4 -8
  556. package/src/components/FormStatus/Readme.md +4 -0
  557. package/src/components/Gallery/Readme.md +64 -18
  558. package/src/components/Header/Header.css +8 -12
  559. package/src/components/Header/Header.tsx +9 -8
  560. package/src/components/HorizontalCell/Readme.md +1 -1
  561. package/src/components/IconButton/IconButton.tsx +2 -2
  562. package/src/components/Input/Input.css +1 -1
  563. package/src/components/Input/Input.tsx +2 -0
  564. package/src/components/Link/Link.css +2 -1
  565. package/src/components/List/List.tsx +3 -4
  566. package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
  567. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
  568. package/src/components/ModalDismissButton/Readme.md +1 -1
  569. package/src/components/ModalPage/ModalPage.css +69 -63
  570. package/src/components/ModalPage/ModalPage.tsx +24 -11
  571. package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
  572. package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
  573. package/src/components/ModalRoot/ModalRoot.tsx +24 -24
  574. package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
  575. package/src/components/ModalRoot/Readme.md +8 -3
  576. package/src/components/NativeSelect/NativeSelect.tsx +5 -2
  577. package/src/components/Panel/Panel.css +52 -24
  578. package/src/components/Panel/Panel.tsx +7 -9
  579. package/src/components/PanelHeader/PanelHeader.css +28 -21
  580. package/src/components/PanelHeader/PanelHeader.tsx +11 -12
  581. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
  582. package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
  583. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
  584. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
  585. package/src/components/PanelHeaderContent/PanelHeaderContent.css +17 -23
  586. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +11 -5
  587. package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
  588. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
  589. package/src/components/PanelHeaderContext/Readme.md +85 -101
  590. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
  591. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
  592. package/src/components/PromoBanner/PromoBanner.css +10 -22
  593. package/src/components/PromoBanner/PromoBanner.tsx +1 -5
  594. package/src/components/RichTooltip/Readme.md +2 -2
  595. package/src/components/Search/Search.css +134 -48
  596. package/src/components/Search/Search.tsx +13 -8
  597. package/src/components/Select/Select.css +2 -2
  598. package/src/components/SelectMimicry/Readme.md +3 -3
  599. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
  600. package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
  601. package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
  602. package/src/components/Snackbar/Readme.md +12 -3
  603. package/src/components/Spacing/Readme.md +20 -20
  604. package/src/components/Spacing/Spacing.css +5 -1
  605. package/src/components/SplitLayout/Readme.md +1 -1
  606. package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
  607. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
  608. package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
  609. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
  610. package/src/components/TabbarItem/Readme.md +6 -1
  611. package/src/components/Tabs/Readme.md +10 -2
  612. package/src/components/TabsItem/TabsItem.css +1 -1
  613. package/src/components/Tappable/Tappable.tsx +9 -11
  614. package/src/components/Textarea/Textarea.css +1 -1
  615. package/src/components/Textarea/Textarea.tsx +5 -2
  616. package/src/components/Tooltip/Readme.md +2 -2
  617. package/src/components/Touch/Readme.md +4 -4
  618. package/src/components/Typography/Headline/Headline.css +10 -0
  619. package/src/components/Typography/Text/Text.css +10 -0
  620. package/src/components/UsersStack/UsersStack.css +42 -0
  621. package/src/components/UsersStack/UsersStack.tsx +71 -15
  622. package/src/components/View/Readme.md +5 -5
  623. package/src/components/View/View.tsx +2 -9
  624. package/src/components/View/ViewInfinite.tsx +14 -14
  625. package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
  626. package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
  627. package/src/index.ts +3 -0
  628. package/src/lib/animate.ts +1 -1
  629. package/src/lib/platform.ts +12 -6
  630. package/src/lib/testing.ts +1 -1
  631. package/src/lib/touch.ts +1 -1
  632. package/src/styles/components.css +1 -0
  633. package/src/tokenized/index.ts +85 -0
  634. package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
  635. package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
  636. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
  637. package/dist/cjs/components/UsersStack/masks.js +0 -29
  638. package/dist/cjs/components/UsersStack/masks.js.map +0 -1
  639. package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
  640. package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
  641. package/dist/components/UsersStack/masks.d.ts +0 -1
  642. package/dist/components/UsersStack/masks.js +0 -20
  643. package/dist/components/UsersStack/masks.js.map +0 -1
  644. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
  645. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
  646. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
  647. package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
  648. package/dist/cssm/components/UsersStack/masks.js +0 -20
  649. package/dist/cssm/components/UsersStack/masks.js.map +0 -1
  650. package/src/components/DropdownIcon/DropdownIcon.css +0 -3
  651. package/src/components/UsersStack/masks.tsx +0 -69
@@ -1,8 +1,9 @@
1
1
  import * as React from "react";
2
+ import { FormFieldProps } from "../FormField/FormField";
2
3
  import { HasRef, HasRootRef } from "../../types";
3
4
  import { AdaptivityProps } from "../../hoc/withAdaptivity";
4
5
  import "./Textarea.css";
5
- export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, HasRef<HTMLTextAreaElement>, HasRootRef<HTMLElement>, AdaptivityProps, Pick<React.CSSProperties, "maxHeight"> {
6
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, HasRef<HTMLTextAreaElement>, HasRootRef<HTMLElement>, AdaptivityProps, Pick<React.CSSProperties, "maxHeight">, Pick<FormFieldProps, "status"> {
6
7
  grow?: boolean;
7
8
  onResize?(el: HTMLTextAreaElement): void;
8
9
  defaultValue?: string;
@@ -10,4 +11,4 @@ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextArea
10
11
  /**
11
12
  * @see https://vkcom.github.io/VKUI/#/Textarea
12
13
  */
13
- export declare const Textarea: React.FC<Pick<TextareaProps, "required" | "disabled" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "color" | "wrap" | "maxHeight" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "name" | "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" | "value" | "autoFocus" | "autoComplete" | "maxLength" | "minLength" | "readOnly" | "cols" | "dirName" | "rows" | "getRootRef" | "getRef" | "grow" | "onResize"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
14
+ export declare const Textarea: React.FC<Pick<TextareaProps, "required" | "disabled" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "color" | "wrap" | "maxHeight" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "name" | "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" | "status" | "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" | "value" | "autoFocus" | "autoComplete" | "maxLength" | "minLength" | "readOnly" | "cols" | "dirName" | "rows" | "getRootRef" | "getRef" | "grow" | "onResize"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["defaultValue", "grow", "style", "onResize", "className", "getRootRef", "getRef", "sizeY", "rows", "maxHeight"];
4
+ var _excluded = ["defaultValue", "grow", "style", "onResize", "className", "getRootRef", "getRef", "sizeY", "rows", "maxHeight", "status"];
5
5
  import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import * as React from "react";
7
7
  import { classNames } from "../../lib/classNames";
@@ -24,6 +24,7 @@ var TextareaComponent = function TextareaComponent(_ref) {
24
24
  _ref$rows = _ref.rows,
25
25
  rows = _ref$rows === void 0 ? 2 : _ref$rows,
26
26
  maxHeight = _ref.maxHeight,
27
+ status = _ref.status,
27
28
  restProps = _objectWithoutProperties(_ref, _excluded);
28
29
 
29
30
  var _useEnsuredControl = useEnsuredControl(restProps, {
@@ -55,7 +56,8 @@ var TextareaComponent = function TextareaComponent(_ref) {
55
56
  className: className,
56
57
  style: style,
57
58
  getRootRef: getRootRef,
58
- disabled: restProps.disabled
59
+ disabled: restProps.disabled,
60
+ status: status
59
61
  }, createScopedElement("textarea", _extends({}, restProps, {
60
62
  style: {
61
63
  maxHeight: maxHeight
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAYL;AAAA,+BAXnBC,YAWmB;AAAA,MAXnBA,YAWmB,kCAXJ,EAWI;AAAA,uBAVnBC,IAUmB;AAAA,MAVnBA,IAUmB,0BAVZ,IAUY;AAAA,MATnBC,KASmB,QATnBA,KASmB;AAAA,MARnBC,QAQmB,QARnBA,QAQmB;AAAA,MAPnBC,SAOmB,QAPnBA,SAOmB;AAAA,MANnBC,UAMmB,QANnBA,UAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,MAJnBC,KAImB,QAJnBA,KAImB;AAAA,uBAHnBC,IAGmB;AAAA,MAHnBA,IAGmB,0BAHZ,CAGY;AAAA,MAFnBC,SAEmB,QAFnBA,SAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bb,iBAAiB,CAACa,SAAD,EAAY;AAAEV,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOW,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGpB,KAAK,CAACqB,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAGjB,YAAY,CAACQ,MAAD,CAA/B,CAHmB,CAKnB;;AACAb,EAAAA,KAAK,CAACuB,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIjB,IAAI,IAAIgB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAACf,KAAH,CAASkB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBR,mBAAmB,CAACK,OAAxC,IAAmDf,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACc,EAAD,CAAR;AACAJ,QAAAA,mBAAmB,CAACK,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACpB,IAAD,EAAOU,KAAP,EAAcJ,KAAd,EAAqBQ,UAArB,EAAiCZ,QAAjC,CAZH;AAcA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAET,UAAU,CACnB,UADmB,EAEnB;AAFmB,8BAGAa,KAHA,EADvB;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEK,SAAS,CAACY;AATtB,KAWE,6CACMZ,SADN;AAEE,IAAA,KAAK,EAAE;AAAED,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEG,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEG;AAPP,KAXF,CADF;AAuBD,CAvDD;AAyDA;AACA;AACA;;;AACA,OAAO,IAAMQ,QAAQ,GAAG3B,cAAc,CAACG,iBAAD,EAAoB;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAApB,CAA/B;AAEPgB,QAAQ,CAACC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n\nTextarea.displayName = \"Textarea\";\n"],"file":"Textarea.js"}
1
+ {"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","status","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;;AAeA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAaL;AAAA,+BAZnBC,YAYmB;AAAA,MAZnBA,YAYmB,kCAZJ,EAYI;AAAA,uBAXnBC,IAWmB;AAAA,MAXnBA,IAWmB,0BAXZ,IAWY;AAAA,MAVnBC,KAUmB,QAVnBA,KAUmB;AAAA,MATnBC,QASmB,QATnBA,QASmB;AAAA,MARnBC,SAQmB,QARnBA,SAQmB;AAAA,MAPnBC,UAOmB,QAPnBA,UAOmB;AAAA,MANnBC,MAMmB,QANnBA,MAMmB;AAAA,MALnBC,KAKmB,QALnBA,KAKmB;AAAA,uBAJnBC,IAImB;AAAA,MAJnBA,IAImB,0BAJZ,CAIY;AAAA,MAHnBC,SAGmB,QAHnBA,SAGmB;AAAA,MAFnBC,MAEmB,QAFnBA,MAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bd,iBAAiB,CAACc,SAAD,EAAY;AAAEX,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOY,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGrB,KAAK,CAACsB,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAGlB,YAAY,CAACQ,MAAD,CAA/B,CAHmB,CAKnB;;AACAb,EAAAA,KAAK,CAACwB,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIlB,IAAI,IAAIiB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBR,mBAAmB,CAACK,OAAxC,IAAmDhB,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACe,EAAD,CAAR;AACAJ,QAAAA,mBAAmB,CAACK,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACrB,IAAD,EAAOW,KAAP,EAAcL,KAAd,EAAqBS,UAArB,EAAiCb,QAAjC,CAZH;AAcA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAET,UAAU,CACnB,UADmB,EAEnB;AAFmB,8BAGAa,KAHA,EADvB;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEM,SAAS,CAACY,QATtB;AAUE,IAAA,MAAM,EAAEb;AAVV,KAYE,6CACMC,SADN;AAEE,IAAA,KAAK,EAAE;AAAEF,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEI,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEG;AAPP,KAZF,CADF;AAwBD,CAzDD;AA2DA;AACA;AACA;;;AACA,OAAO,IAAMQ,QAAQ,GAAG5B,cAAc,CAACG,iBAAD,EAAoB;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAApB,CAA/B;AAEPiB,QAAQ,CAACC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\">,\n Pick<FormFieldProps, \"status\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n status,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n status={status}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n\nTextarea.displayName = \"Textarea\";\n"],"file":"Textarea.js"}
@@ -1,36 +1,77 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["photos", "visibleCount", "size", "layout", "children"];
3
+ var _excluded = ["photoSize", "direction"],
4
+ _excluded2 = ["photos", "visibleCount", "size", "layout", "children"];
4
5
  import { createScopedElement } from "../../lib/jsxRuntime";
5
6
  import { hasReactNode } from "../../lib/utils";
6
7
  import { classNames } from "../../lib/classNames";
7
- import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
8
8
  import { Footnote } from "../Typography/Footnote/Footnote";
9
9
  import { Caption } from "../Typography/Caption/Caption";
10
- import { createMasks } from "./masks";
11
- import { useDOM } from "../../lib/dom";
12
10
 
11
+ function PathElement(_ref) {
12
+ var photoSize = _ref.photoSize,
13
+ direction = _ref.direction,
14
+ props = _objectWithoutProperties(_ref, _excluded);
15
+
16
+ switch (direction) {
17
+ case "circle":
18
+ var radius = photoSize / 2;
19
+ return createScopedElement("circle", _extends({
20
+ cx: radius,
21
+ cy: radius,
22
+ r: radius
23
+ }, props));
24
+
25
+ case "right":
26
+ switch (photoSize) {
27
+ case 24:
28
+ return createScopedElement("path", _extends({
29
+ d: "M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625"
30
+ }, props));
31
+
32
+ default:
33
+ return createScopedElement("path", _extends({
34
+ d: "M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75"
35
+ }, props));
36
+ }
37
+
38
+ default:
39
+ switch (photoSize) {
40
+ case 16:
41
+ return createScopedElement("path", _extends({
42
+ d: "M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285"
43
+ }, props));
44
+
45
+ case 24:
46
+ return createScopedElement("path", _extends({
47
+ d: "M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625"
48
+ }, props));
49
+
50
+ default:
51
+ return createScopedElement("path", _extends({
52
+ d: "M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75"
53
+ }, props));
54
+ }
55
+
56
+ }
57
+ }
13
58
  /**
14
59
  * @see https://vkcom.github.io/VKUI/#/UsersStack
15
60
  */
16
- export var UsersStack = function UsersStack(_ref) {
17
- var _ref$photos = _ref.photos,
18
- photos = _ref$photos === void 0 ? [] : _ref$photos,
19
- _ref$visibleCount = _ref.visibleCount,
20
- visibleCount = _ref$visibleCount === void 0 ? 3 : _ref$visibleCount,
21
- _ref$size = _ref.size,
22
- size = _ref$size === void 0 ? "s" : _ref$size,
23
- _ref$layout = _ref.layout,
24
- layout = _ref$layout === void 0 ? "horizontal" : _ref$layout,
25
- children = _ref.children,
26
- restProps = _objectWithoutProperties(_ref, _excluded);
27
61
 
28
- var _useDOM = useDOM(),
29
- document = _useDOM.document;
30
62
 
31
- useIsomorphicLayoutEffect(function () {
32
- createMasks(document);
33
- }, [document]);
63
+ export var UsersStack = function UsersStack(_ref2) {
64
+ var _ref2$photos = _ref2.photos,
65
+ photos = _ref2$photos === void 0 ? [] : _ref2$photos,
66
+ _ref2$visibleCount = _ref2.visibleCount,
67
+ visibleCount = _ref2$visibleCount === void 0 ? 3 : _ref2$visibleCount,
68
+ _ref2$size = _ref2.size,
69
+ size = _ref2$size === void 0 ? "s" : _ref2$size,
70
+ _ref2$layout = _ref2.layout,
71
+ layout = _ref2$layout === void 0 ? "horizontal" : _ref2$layout,
72
+ children = _ref2.children,
73
+ restProps = _objectWithoutProperties(_ref2, _excluded2);
74
+
34
75
  var othersCount = Math.max(0, photos.length - visibleCount);
35
76
  var canShowOthers = othersCount > 0 && size !== "xs";
36
77
  var CounterTypography = size === "m" ? Footnote : Caption;
@@ -48,24 +89,24 @@ export var UsersStack = function UsersStack(_ref) {
48
89
  role: "presentation"
49
90
  }, photosShown.map(function (photo, i) {
50
91
  var direction = i === 0 && !canShowOthers ? "circle" : directionClip;
51
- var pathHref = "#users_stack_".concat(photoSize, "_").concat(direction);
52
- var clipPathHref = "url(#users_stack_mask_".concat(photoSize, "_").concat(direction, ")");
53
92
  return createScopedElement("svg", {
54
93
  xmlns: "http://www.w3.org/2000/svg",
55
94
  vkuiClass: "UsersStack__photo",
56
95
  key: i,
57
96
  "aria-hidden": true
58
97
  }, createScopedElement("g", {
59
- clipPath: clipPathHref
60
- }, createScopedElement("use", {
61
- vkuiClass: "UsersStack__fill",
62
- href: pathHref
98
+ vkuiClass: "UsersStack__mask--".concat(photoSize, "-").concat(direction)
99
+ }, createScopedElement(PathElement, {
100
+ direction: direction,
101
+ photoSize: photoSize,
102
+ vkuiClass: "UsersStack__fill"
63
103
  }), createScopedElement("image", {
64
104
  href: photo,
65
105
  width: photoSize,
66
106
  height: photoSize
67
- }), createScopedElement("use", {
68
- href: pathHref,
107
+ }), createScopedElement(PathElement, {
108
+ direction: direction,
109
+ photoSize: photoSize,
69
110
  fill: "none",
70
111
  stroke: "rgba(0, 0, 0, 0.08)"
71
112
  })));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["hasReactNode","classNames","useIsomorphicLayoutEffect","Footnote","Caption","createMasks","useDOM","UsersStack","photos","visibleCount","size","layout","children","restProps","document","othersCount","Math","max","length","canShowOthers","CounterTypography","photoSize","xs","s","m","directionClip","photosShown","slice","map","photo","i","direction","pathHref","clipPathHref"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { createMasks } from \"./masks\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\"; // TODO: \"s\" | \"m\" | \"l\"\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n size = \"s\",\n layout = \"horizontal\",\n children,\n ...restProps\n}: UsersStackProps) => {\n const { document } = useDOM();\n\n useIsomorphicLayoutEffect(() => {\n createMasks(document);\n }, [document]);\n\n const othersCount = Math.max(0, photos.length - visibleCount);\n const canShowOthers = othersCount > 0 && size !== \"xs\";\n const CounterTypography = size === \"m\" ? Footnote : Caption;\n\n const photoSize = {\n xs: 16,\n s: 24,\n m: 32,\n }[size];\n const directionClip = canShowOthers ? \"right\" : \"left\";\n\n const photosShown = photos.slice(0, visibleCount);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"UsersStack\",\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n canShowOthers && \"UsersStack--others\"\n )}\n >\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosShown.map((photo, i) => {\n const direction =\n i === 0 && !canShowOthers ? \"circle\" : directionClip;\n\n const pathHref = `#users_stack_${photoSize}_${direction}`;\n const clipPathHref = `url(#users_stack_mask_${photoSize}_${direction})`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n vkuiClass=\"UsersStack__photo\"\n key={i}\n aria-hidden\n >\n <g clipPath={clipPathHref}>\n <use vkuiClass=\"UsersStack__fill\" href={pathHref} />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={pathHref} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n })}\n\n {canShowOthers && (\n <CounterTypography\n caps\n weight=\"1\"\n level=\"2\" // TODO: remove only level in #2343\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden\n >\n <span>+{othersCount}</span>\n </CounterTypography>\n )}\n </div>\n {hasReactNode(children) && (\n <Footnote vkuiClass=\"UsersStack__text\">{children}</Footnote>\n )}\n </div>\n );\n};\n"],"file":"UsersStack.js"}
1
+ {"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["hasReactNode","classNames","Footnote","Caption","PathElement","photoSize","direction","props","radius","UsersStack","photos","visibleCount","size","layout","children","restProps","othersCount","Math","max","length","canShowOthers","CounterTypography","xs","s","m","directionClip","photosShown","slice","map","photo","i"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\"; // TODO: \"s\" | \"m\" | \"l\"\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: \"circle\" | \"right\" | \"left\";\n}\n\nfunction PathElement({ photoSize, direction, ...props }: PathElementProps) {\n switch (direction) {\n case \"circle\":\n const radius = photoSize / 2;\n\n return <circle cx={radius} cy={radius} r={radius} {...props} />;\n\n case \"right\":\n switch (photoSize) {\n case 24:\n return (\n <path\n d=\"M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75\"\n {...props}\n />\n );\n }\n\n default:\n switch (photoSize) {\n case 16:\n return (\n <path\n d=\"M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285\"\n {...props}\n />\n );\n case 24:\n return (\n <path\n d=\"M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75\"\n {...props}\n />\n );\n }\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n size = \"s\",\n layout = \"horizontal\",\n children,\n ...restProps\n}: UsersStackProps) => {\n const othersCount = Math.max(0, photos.length - visibleCount);\n const canShowOthers = othersCount > 0 && size !== \"xs\";\n const CounterTypography = size === \"m\" ? Footnote : Caption;\n\n const photoSize = {\n xs: 16,\n s: 24,\n m: 32,\n }[size];\n const directionClip = canShowOthers ? \"right\" : \"left\";\n\n const photosShown = photos.slice(0, visibleCount);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"UsersStack\",\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n canShowOthers && \"UsersStack--others\"\n )}\n >\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosShown.map((photo, i) => {\n const direction =\n i === 0 && !canShowOthers ? \"circle\" : directionClip;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n vkuiClass=\"UsersStack__photo\"\n key={i}\n aria-hidden\n >\n <g vkuiClass={`UsersStack__mask--${photoSize}-${direction}`}>\n <PathElement\n direction={direction}\n photoSize={photoSize}\n vkuiClass=\"UsersStack__fill\"\n />\n <image href={photo} width={photoSize} height={photoSize} />\n <PathElement\n direction={direction}\n photoSize={photoSize}\n fill=\"none\"\n stroke=\"rgba(0, 0, 0, 0.08)\"\n />\n </g>\n </svg>\n );\n })}\n\n {canShowOthers && (\n <CounterTypography\n caps\n weight=\"1\"\n level=\"2\" // TODO: remove only level in #2343\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden\n >\n <span>+{othersCount}</span>\n </CounterTypography>\n )}\n </div>\n {hasReactNode(children) && (\n <Footnote vkuiClass=\"UsersStack__text\">{children}</Footnote>\n )}\n </div>\n );\n};\n"],"file":"UsersStack.js"}
@@ -153,8 +153,6 @@ export var View = function View(_ref) {
153
153
  var prevSwipeBackResult = usePrevious(swipeBackResult);
154
154
  var prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);
155
155
  var prevOnTransition = usePrevious(onTransition);
156
- var hasPopout = !!popout;
157
- var hasModal = !!modal;
158
156
  var panels = React.Children.toArray(children).filter(function (panel) {
159
157
  var panelId = getNavId(panel.props, warn);
160
158
  return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
@@ -332,9 +330,6 @@ export var View = function View(_ref) {
332
330
  React.useEffect(function () {
333
331
  popout && blurActiveElement(document);
334
332
  }, [document, popout]);
335
- React.useEffect(function () {
336
- modal && blurActiveElement(document);
337
- }, [document, modal]);
338
333
  React.useEffect(function () {
339
334
  // Нужен переход
340
335
  if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
@@ -450,9 +445,9 @@ export var View = function View(_ref) {
450
445
  }, createScopedElement(NavTransitionProvider, {
451
446
  entering: panelId === nextPanel || panelId === swipeBackNextPanel
452
447
  }, panel)));
453
- })), createScopedElement(AppRootPortal, null, hasPopout && createScopedElement("div", {
448
+ })), createScopedElement(AppRootPortal, null, !!popout && createScopedElement("div", {
454
449
  vkuiClass: "View__popout"
455
- }, popout), hasModal && createScopedElement("div", {
450
+ }, popout), !!modal && createScopedElement("div", {
456
451
  vkuiClass: "View__modal"
457
452
  }, modal)));
458
453
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","hasPopout","hasModal","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/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\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\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\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 */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\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 const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (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 prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (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 React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n modal && blurActiveElement(document);\n }, [document, modal]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\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 && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={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 ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[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"],"file":"View.js"}
1
+ {"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/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\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\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\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 */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\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 const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (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 prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (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 React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\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 && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={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 ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[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 {!!popout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
@@ -544,16 +544,7 @@ var ViewInfiniteComponent = /*#__PURE__*/function (_React$Component) {
544
544
  var scrollList = panelId && _this4.scrolls[panelId] || [];
545
545
  var scroll = scrollList[scrollList.length - 1] || 0;
546
546
  return createScopedElement("div", {
547
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
548
- vkuiClass: classNames("View__panel", {
549
- "View__panel--active": panelId === activePanel,
550
- "View__panel--prev": panelId === prevPanel,
551
- "View__panel--next": panelId === nextPanel,
552
- "View__panel--swipe-back-prev": panelId === swipeBackPrevPanel,
553
- "View__panel--swipe-back-next": panelId === swipeBackNextPanel,
554
- "View__panel--swipe-back-success": swipeBackResult === SwipeBackResults.success,
555
- "View__panel--swipe-back-failed": swipeBackResult === SwipeBackResults.fail
556
- }),
547
+ 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"),
557
548
  onAnimationEnd: isTransitionTarget ? _this4.transitionEndHandler : undefined,
558
549
  ref: function ref(el) {
559
550
  return panelId !== undefined && (_this4.panelNodes[panelId] = el);