@vkontakte/vkui 4.35.3 → 4.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (619) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +21605 -18307
  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/ButtonGroup/ButtonGroup.js.map +1 -1
  50. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
  51. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  52. package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
  53. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  54. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  55. package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
  56. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  57. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
  58. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  59. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
  60. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  61. package/dist/cjs/components/CustomSelect/CustomSelect.js +32 -31
  62. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  63. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  64. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  65. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
  66. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  67. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
  68. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  69. package/dist/cjs/components/FormField/FormField.js +4 -2
  70. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  71. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
  72. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  73. package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
  74. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  75. package/dist/cjs/components/Header/Header.js +3 -11
  76. package/dist/cjs/components/Header/Header.js.map +1 -1
  77. package/dist/cjs/components/IconButton/IconButton.js +4 -3
  78. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  79. package/dist/cjs/components/Input/Input.js +4 -2
  80. package/dist/cjs/components/Input/Input.js.map +1 -1
  81. package/dist/cjs/components/List/List.js.map +1 -1
  82. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
  83. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  84. package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
  85. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  86. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
  87. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  88. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
  89. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  90. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
  91. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  92. package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
  93. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  94. package/dist/cjs/components/Panel/Panel.js +4 -10
  95. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  96. package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
  97. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  98. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
  99. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  100. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  101. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  102. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  103. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  104. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +4 -2
  105. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
  107. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  109. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  110. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  111. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  112. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
  113. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  114. package/dist/cjs/components/Search/Search.js +7 -9
  115. package/dist/cjs/components/Search/Search.js.map +1 -1
  116. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
  117. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  118. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
  119. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  120. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
  121. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  122. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
  123. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  124. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
  125. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  126. package/dist/cjs/components/Tappable/Tappable.js +8 -16
  127. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  128. package/dist/cjs/components/Textarea/Textarea.js +4 -2
  129. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  130. package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
  131. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  132. package/dist/cjs/components/View/ViewInfinite.js +1 -10
  133. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  134. package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
  135. package/dist/cjs/hooks/useChipsInput.js.map +1 -0
  136. package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  137. package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
  138. package/dist/cjs/index.js +8 -0
  139. package/dist/cjs/index.js.map +1 -1
  140. package/dist/cjs/lib/animate.js +2 -2
  141. package/dist/cjs/lib/animate.js.map +1 -1
  142. package/dist/cjs/lib/testing.js +2 -2
  143. package/dist/cjs/lib/testing.js.map +1 -1
  144. package/dist/cjs/lib/touch.js +2 -2
  145. package/dist/cjs/lib/touch.js.map +1 -1
  146. package/dist/cjs/tokenized/index.js +232 -0
  147. package/dist/cjs/tokenized/index.js.map +1 -1
  148. package/dist/components/ActionSheet/ActionSheet.js +4 -4
  149. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  150. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  151. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  152. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  153. package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
  154. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  155. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  156. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  157. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  158. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
  159. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  160. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  161. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  162. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  163. package/dist/components/Alert/Alert.js +12 -12
  164. package/dist/components/Alert/Alert.js.map +1 -1
  165. package/dist/components/AppRoot/AppRoot.js +2 -5
  166. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  167. package/dist/components/Avatar/Avatar.js +4 -17
  168. package/dist/components/Avatar/Avatar.js.map +1 -1
  169. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  170. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  171. package/dist/components/CalendarDay/CalendarDay.js +4 -21
  172. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  173. package/dist/components/CardScroll/CardScroll.js +1 -3
  174. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  175. package/dist/components/Chip/Chip.d.ts +12 -5
  176. package/dist/components/Chip/Chip.js.map +1 -1
  177. package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
  178. package/dist/components/ChipsInput/ChipsInput.js +14 -183
  179. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  180. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  181. package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
  182. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  183. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  184. package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
  185. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  186. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  187. package/dist/components/CustomSelect/CustomSelect.js +32 -31
  188. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  189. package/dist/components/DateInput/DateInput.d.ts +4 -2
  190. package/dist/components/DateInput/DateInput.js +4 -2
  191. package/dist/components/DateInput/DateInput.js.map +1 -1
  192. package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  193. package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
  194. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  195. package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  196. package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
  197. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  198. package/dist/components/FormField/FormField.d.ts +2 -1
  199. package/dist/components/FormField/FormField.js +4 -2
  200. package/dist/components/FormField/FormField.js.map +1 -1
  201. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  202. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  203. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  204. package/dist/components/FormStatus/FormStatus.d.ts +1 -0
  205. package/dist/components/FormStatus/FormStatus.js +4 -4
  206. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  207. package/dist/components/Header/Header.js +3 -10
  208. package/dist/components/Header/Header.js.map +1 -1
  209. package/dist/components/IconButton/IconButton.js +4 -3
  210. package/dist/components/IconButton/IconButton.js.map +1 -1
  211. package/dist/components/Input/Input.d.ts +1 -1
  212. package/dist/components/Input/Input.js +4 -2
  213. package/dist/components/Input/Input.js.map +1 -1
  214. package/dist/components/List/List.d.ts +2 -1
  215. package/dist/components/List/List.js.map +1 -1
  216. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
  217. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  218. package/dist/components/ModalPage/ModalPage.d.ts +13 -1
  219. package/dist/components/ModalPage/ModalPage.js +12 -10
  220. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  221. package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
  222. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  223. package/dist/components/ModalRoot/ModalRoot.js +4 -18
  224. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  225. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
  226. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  227. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
  228. package/dist/components/NativeSelect/NativeSelect.js +4 -2
  229. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  230. package/dist/components/Panel/Panel.js +4 -8
  231. package/dist/components/Panel/Panel.js.map +1 -1
  232. package/dist/components/PanelHeader/PanelHeader.js +2 -11
  233. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  234. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  235. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  236. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  237. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  238. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  239. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  240. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +4 -3
  241. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  242. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  243. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  244. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  245. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  246. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  247. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  248. package/dist/components/PromoBanner/PromoBanner.js +1 -4
  249. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  250. package/dist/components/Search/Search.js +6 -8
  251. package/dist/components/Search/Search.js.map +1 -1
  252. package/dist/components/Select/Select.d.ts +1 -1
  253. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  254. package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
  255. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  256. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  257. package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
  258. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  259. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
  260. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  261. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
  262. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  263. package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
  264. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  265. package/dist/components/Tappable/Tappable.js +3 -10
  266. package/dist/components/Tappable/Tappable.js.map +1 -1
  267. package/dist/components/Textarea/Textarea.d.ts +3 -2
  268. package/dist/components/Textarea/Textarea.js +4 -2
  269. package/dist/components/Textarea/Textarea.js.map +1 -1
  270. package/dist/components/UsersStack/UsersStack.js +69 -28
  271. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  272. package/dist/components/View/ViewInfinite.js +1 -10
  273. package/dist/components/View/ViewInfinite.js.map +1 -1
  274. package/dist/components.css +93 -15
  275. package/dist/components.css.map +1 -1
  276. package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
  277. package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
  278. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  279. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  280. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  281. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  282. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
  283. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  284. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  285. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  286. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
  287. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  288. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
  289. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  290. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  291. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  292. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  293. package/dist/cssm/components/Alert/Alert.css +7 -1
  294. package/dist/cssm/components/Alert/Alert.js +12 -12
  295. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  296. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  297. package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
  298. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  299. package/dist/cssm/components/Avatar/Avatar.js +4 -17
  300. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  301. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  302. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  303. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
  304. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  305. package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
  306. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  307. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  308. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  309. package/dist/cssm/components/Chip/Chip.css +1 -1
  310. package/dist/cssm/components/Chip/Chip.d.ts +12 -5
  311. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  312. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  313. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
  314. package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
  315. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  316. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
  317. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  318. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
  319. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  320. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  321. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  322. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
  323. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  324. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  325. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  326. package/dist/cssm/components/CustomSelect/CustomSelect.js +32 -31
  327. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  328. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  329. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
  330. package/dist/cssm/components/DateInput/DateInput.js +4 -2
  331. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  332. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  333. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  334. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
  335. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  336. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  337. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
  338. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  339. package/dist/cssm/components/FormField/FormField.css +4 -4
  340. package/dist/cssm/components/FormField/FormField.d.ts +2 -1
  341. package/dist/cssm/components/FormField/FormField.js +4 -2
  342. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  343. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  344. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  345. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  346. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  347. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  348. package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
  349. package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
  350. package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
  351. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  352. package/dist/cssm/components/Header/Header.css +1 -1
  353. package/dist/cssm/components/Header/Header.js +3 -10
  354. package/dist/cssm/components/Header/Header.js.map +1 -1
  355. package/dist/cssm/components/IconButton/IconButton.js +4 -3
  356. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  357. package/dist/cssm/components/Input/Input.css +1 -1
  358. package/dist/cssm/components/Input/Input.d.ts +1 -1
  359. package/dist/cssm/components/Input/Input.js +4 -2
  360. package/dist/cssm/components/Input/Input.js.map +1 -1
  361. package/dist/cssm/components/List/List.d.ts +2 -1
  362. package/dist/cssm/components/List/List.js +1 -1
  363. package/dist/cssm/components/List/List.js.map +1 -1
  364. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  365. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
  366. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  367. package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
  368. package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
  369. package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
  370. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  371. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  372. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  373. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  374. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
  375. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  376. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
  377. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  378. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
  379. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
  380. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  381. package/dist/cssm/components/Panel/Panel.css +19 -1
  382. package/dist/cssm/components/Panel/Panel.js +4 -8
  383. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  384. package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
  385. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
  386. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  387. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  388. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  389. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  390. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  391. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  392. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  393. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  394. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
  395. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +4 -3
  396. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  397. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  398. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  399. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  400. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  401. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  402. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  403. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  404. package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
  405. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
  406. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  407. package/dist/cssm/components/Search/Search.css +27 -1
  408. package/dist/cssm/components/Search/Search.js +6 -8
  409. package/dist/cssm/components/Search/Search.js.map +1 -1
  410. package/dist/cssm/components/Select/Select.css +1 -1
  411. package/dist/cssm/components/Select/Select.d.ts +1 -1
  412. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  413. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
  414. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  415. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  416. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
  417. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  418. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
  419. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  420. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  421. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
  422. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  423. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  424. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
  425. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  426. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  427. package/dist/cssm/components/Tappable/Tappable.js +3 -10
  428. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  429. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  430. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
  431. package/dist/cssm/components/Textarea/Textarea.js +4 -2
  432. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  433. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  434. package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
  435. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  436. package/dist/cssm/components/View/ViewInfinite.js +1 -10
  437. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  438. package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  439. package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
  440. package/dist/cssm/hooks/useChipsInput.js.map +1 -0
  441. package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
  442. package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
  443. package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
  444. package/dist/cssm/index.d.ts +3 -0
  445. package/dist/cssm/index.js +1 -0
  446. package/dist/cssm/index.js.map +1 -1
  447. package/dist/cssm/lib/animate.js +1 -1
  448. package/dist/cssm/lib/animate.js.map +1 -1
  449. package/dist/cssm/lib/testing.js +1 -1
  450. package/dist/cssm/lib/testing.js.map +1 -1
  451. package/dist/cssm/lib/touch.js +1 -1
  452. package/dist/cssm/lib/touch.js.map +1 -1
  453. package/dist/cssm/styles/components.css +93 -15
  454. package/dist/cssm/styles/themes.css +1 -1
  455. package/dist/cssm/styles/unstable.css +1 -1
  456. package/dist/cssm/tokenized/index.d.ts +56 -0
  457. package/dist/cssm/tokenized/index.js +29 -0
  458. package/dist/cssm/tokenized/index.js.map +1 -1
  459. package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  460. package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
  461. package/dist/hooks/useChipsInput.js.map +1 -0
  462. package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
  463. package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  464. package/dist/hooks/useChipsSelect.js.map +1 -0
  465. package/dist/index.d.ts +3 -0
  466. package/dist/index.js +1 -0
  467. package/dist/index.js.map +1 -1
  468. package/dist/lib/animate.js +1 -1
  469. package/dist/lib/animate.js.map +1 -1
  470. package/dist/lib/testing.js +1 -1
  471. package/dist/lib/testing.js.map +1 -1
  472. package/dist/lib/touch.js +1 -1
  473. package/dist/lib/touch.js.map +1 -1
  474. package/dist/tokenized/index.d.ts +56 -0
  475. package/dist/tokenized/index.js +29 -0
  476. package/dist/tokenized/index.js.map +1 -1
  477. package/dist/unstable.css +1 -1
  478. package/dist/unstable.css.map +1 -1
  479. package/dist/vkui.css +94 -16
  480. package/dist/vkui.css.map +1 -1
  481. package/package.json +9 -9
  482. package/src/components/ActionSheet/ActionSheet.css +31 -59
  483. package/src/components/ActionSheet/ActionSheet.tsx +4 -7
  484. package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
  485. package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
  486. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
  487. package/src/components/ActionSheet/Readme.md +6 -30
  488. package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
  489. package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
  490. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
  491. package/src/components/Alert/Alert.css +79 -79
  492. package/src/components/Alert/Alert.tsx +14 -14
  493. package/src/components/Alert/Readme.md +83 -104
  494. package/src/components/AppRoot/AppRoot.css +2 -1
  495. package/src/components/AppRoot/AppRoot.tsx +1 -4
  496. package/src/components/Avatar/Avatar.tsx +15 -17
  497. package/src/components/Avatar/Readme.md +3 -3
  498. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  499. package/src/components/ButtonGroup/Readme.md +13 -11
  500. package/src/components/Calendar/Readme.md +3 -0
  501. package/src/components/CalendarDay/CalendarDay.tsx +21 -20
  502. package/src/components/CalendarRange/Readme.md +3 -0
  503. package/src/components/CardScroll/CardScroll.tsx +1 -2
  504. package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
  505. package/src/components/Cell/CellDragger/CellDragger.css +1 -1
  506. package/src/components/Chip/Chip.css +1 -0
  507. package/src/components/Chip/Chip.tsx +14 -2
  508. package/src/components/ChipsInput/ChipsInput.css +0 -71
  509. package/src/components/ChipsInput/ChipsInput.tsx +20 -220
  510. package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
  511. package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
  512. package/src/components/ChipsSelect/ChipsSelect.css +8 -0
  513. package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
  514. package/src/components/CustomSelect/CustomSelect.css +1 -0
  515. package/src/components/CustomSelect/CustomSelect.tsx +2 -3
  516. package/src/components/CustomSelect/Readme.md +8 -2
  517. package/src/components/DateInput/DateInput.css +1 -1
  518. package/src/components/DateInput/DateInput.tsx +6 -3
  519. package/src/components/DateInput/Readme.md +13 -0
  520. package/src/components/DateRangeInput/DateRangeInput.css +1 -1
  521. package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
  522. package/src/components/DateRangeInput/Readme.md +13 -0
  523. package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
  524. package/src/components/Epic/Readme.md +10 -5
  525. package/src/components/FormField/FormField.css +58 -6
  526. package/src/components/FormField/FormField.tsx +3 -0
  527. package/src/components/FormItem/FormItem.css +5 -3
  528. package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
  529. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
  530. package/src/components/FormLayoutGroup/Readme.md +58 -48
  531. package/src/components/FormStatus/FormStatus.css +8 -5
  532. package/src/components/FormStatus/FormStatus.tsx +4 -8
  533. package/src/components/Gallery/Readme.md +64 -18
  534. package/src/components/Header/Header.css +8 -12
  535. package/src/components/Header/Header.tsx +9 -8
  536. package/src/components/HorizontalCell/Readme.md +1 -1
  537. package/src/components/IconButton/IconButton.tsx +2 -2
  538. package/src/components/Input/Input.css +1 -1
  539. package/src/components/Input/Input.tsx +2 -0
  540. package/src/components/List/List.tsx +3 -4
  541. package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
  542. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
  543. package/src/components/ModalDismissButton/Readme.md +1 -1
  544. package/src/components/ModalPage/ModalPage.css +69 -63
  545. package/src/components/ModalPage/ModalPage.tsx +24 -11
  546. package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
  547. package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
  548. package/src/components/ModalRoot/ModalRoot.tsx +24 -24
  549. package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
  550. package/src/components/ModalRoot/Readme.md +8 -3
  551. package/src/components/NativeSelect/NativeSelect.tsx +5 -2
  552. package/src/components/Panel/Panel.css +52 -24
  553. package/src/components/Panel/Panel.tsx +7 -9
  554. package/src/components/PanelHeader/PanelHeader.css +20 -8
  555. package/src/components/PanelHeader/PanelHeader.tsx +11 -12
  556. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
  557. package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
  558. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
  559. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
  560. package/src/components/PanelHeaderContent/PanelHeaderContent.css +14 -26
  561. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +10 -3
  562. package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
  563. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
  564. package/src/components/PanelHeaderContext/Readme.md +85 -101
  565. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
  566. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
  567. package/src/components/PromoBanner/PromoBanner.css +10 -22
  568. package/src/components/PromoBanner/PromoBanner.tsx +1 -5
  569. package/src/components/RichTooltip/Readme.md +2 -2
  570. package/src/components/Search/Search.css +134 -48
  571. package/src/components/Search/Search.tsx +13 -8
  572. package/src/components/Select/Select.css +2 -2
  573. package/src/components/SelectMimicry/Readme.md +3 -3
  574. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
  575. package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
  576. package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
  577. package/src/components/Snackbar/Readme.md +12 -3
  578. package/src/components/SplitLayout/Readme.md +1 -1
  579. package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
  580. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
  581. package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
  582. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
  583. package/src/components/TabbarItem/Readme.md +6 -1
  584. package/src/components/Tabs/Readme.md +10 -2
  585. package/src/components/TabsItem/TabsItem.css +1 -1
  586. package/src/components/Tappable/Tappable.tsx +9 -11
  587. package/src/components/Textarea/Textarea.css +1 -1
  588. package/src/components/Textarea/Textarea.tsx +5 -2
  589. package/src/components/Tooltip/Readme.md +2 -2
  590. package/src/components/Touch/Readme.md +4 -4
  591. package/src/components/UsersStack/UsersStack.css +42 -0
  592. package/src/components/UsersStack/UsersStack.tsx +71 -15
  593. package/src/components/View/ViewInfinite.tsx +14 -14
  594. package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
  595. package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
  596. package/src/index.ts +3 -0
  597. package/src/lib/animate.ts +1 -1
  598. package/src/lib/testing.ts +1 -1
  599. package/src/lib/touch.ts +1 -1
  600. package/src/styles/components.css +1 -0
  601. package/src/tokenized/index.ts +85 -0
  602. package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
  603. package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
  604. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
  605. package/dist/cjs/components/UsersStack/masks.js +0 -29
  606. package/dist/cjs/components/UsersStack/masks.js.map +0 -1
  607. package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
  608. package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
  609. package/dist/components/UsersStack/masks.d.ts +0 -1
  610. package/dist/components/UsersStack/masks.js +0 -20
  611. package/dist/components/UsersStack/masks.js.map +0 -1
  612. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
  613. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
  614. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
  615. package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
  616. package/dist/cssm/components/UsersStack/masks.js +0 -20
  617. package/dist/cssm/components/UsersStack/masks.js.map +0 -1
  618. package/src/components/DropdownIcon/DropdownIcon.css +0 -3
  619. package/src/components/UsersStack/masks.tsx +0 -69
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,SAASC,IAAT;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAMf;AAAA;;AAAA,MALjBC,MAKiB,QALjBA,MAKiB;AAAA,MAJjBC,OAIiB,QAJjBA,OAIiB;AAAA,MAHjBC,QAGiB,QAHjBA,QAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACa,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE;AACA,IAAA,SAAS,EAAER,UAAU,CAACD,YAAY,CAAC,sBAAD,EAAyBU,QAAzB,CAAb,kDAClB,8BADkB,EACeL,MADf,gCAElB,6BAFkB,EAEc,CAACA,MAAD,IAAWC,OAFzB,gCAGlB,mCAHkB,EAGoBD,MAAM,IAAIC,OAH9B,gCAIlB,6BAJkB,EAIcM,KAAK,IAAI,CAACN,OAJxB,gBAHvB;AASE,IAAA,SAAS,EAAC,QATZ;AAUE,IAAA,IAAI,EAAC,QAVP;AAWE,IAAA,UAAU,EAAEE,UAXd;AAYE,oBAAcH,MAZhB;AAaE,IAAA,OAAO,EAAES,WAbX;AAcE,IAAA,MAAM,EAAEA,WAdV;AAeE,IAAA,QAAQ,EAAE,CAfZ;AAgBE,IAAA,SAAS,EAAE,KAhBb;AAiBE,IAAA,SAAS,EAAC;AAjBZ,MAmBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAkBP,QAAlB,CAnBF,CADF;AAuBD,CArCM","sourcesContent":["import * as React from \"react\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0.\n */\nexport const SliderSwitchButton = ({\n active,\n hovered,\n children,\n getRootRef,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"SliderSwitch__button\", platform), {\n [\"SliderSwitch__button--active\"]: active,\n [\"SliderSwitch__button--hover\"]: !active && hovered,\n [\"SliderSwitch__button--activeHover\"]: active && hovered,\n [\"SliderSwitch__button--focus\"]: focus && !hovered,\n })}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"2\">{children}</Text>\n </Tappable>\n );\n};\n"],"file":"SliderSwitchButton.js"}
1
+ {"version":3,"sources":["../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["React","Tappable","getClassName","classNames","usePlatform","Text","SliderSwitchButton","active","hovered","children","getRootRef","restProps","platform","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,SAASC,IAAT;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,OAMf;AAAA,MALjBC,MAKiB,QALjBA,MAKiB;AAAA,MAJjBC,OAIiB,QAJjBA,OAIiB;AAAA,MAHjBC,QAGiB,QAHjBA,QAGiB;AAAA,MAFjBC,UAEiB,QAFjBA,UAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;;AACA,wBAA0BJ,KAAK,CAACa,QAAN,CAAe,KAAf,CAA1B;AAAA;AAAA,MAAOC,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxBD,IAAAA,QAAQ,CAAC,CAACD,KAAF,CAAR;AACD,GAFD;;AAIA,SACE,oBAAC,QAAD,eACMH,SADN;AAEE,IAAA,SAAS,EAAER,UAAU,CACnBD,YAAY,CAAC,sBAAD,EAAyBU,QAAzB,CADO,EAEnBL,MAAM,IAAI,8BAFS,EAGnB,CAACA,MAAD,IAAWC,OAAX,IAAsB,6BAHH,EAInBD,MAAM,IAAIC,OAAV,IAAqB,mCAJF,EAKnBM,KAAK,IAAI,CAACN,OAAV,IAAqB,6BALF,CAFvB;AASE,IAAA,SAAS,EAAC,QATZ;AAUE,IAAA,IAAI,EAAC,QAVP;AAWE,IAAA,UAAU,EAAEE,UAXd;AAYE,oBAAcH,MAZhB;AAaE,IAAA,OAAO,EAAES,WAbX;AAcE,IAAA,MAAM,EAAEA,WAdV;AAeE,IAAA,QAAQ,EAAE,CAfZ;AAgBE,IAAA,SAAS,EAAE,KAhBb;AAiBE,IAAA,SAAS,EAAC;AAjBZ,MAmBE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAkBP,QAAlB,CAnBF,CADF;AAuBD,CArCM","sourcesContent":["import * as React from \"react\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Text } from \"../Typography/Text/Text\";\nimport \"./SliderSwitch.css\";\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement> {\n active?: boolean;\n hovered?: boolean;\n}\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0.\n */\nexport const SliderSwitchButton = ({\n active,\n hovered,\n children,\n getRootRef,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const [focus, setFocus] = React.useState(false);\n\n const toggleFocus = () => {\n setFocus(!focus);\n };\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SliderSwitch__button\", platform),\n active && \"SliderSwitch__button--active\",\n !active && hovered && \"SliderSwitch__button--hover\",\n active && hovered && \"SliderSwitch__button--activeHover\",\n focus && !hovered && \"SliderSwitch__button--focus\"\n )}\n Component=\"button\"\n type=\"button\"\n getRootRef={getRootRef}\n aria-pressed={active}\n onFocus={toggleFocus}\n onBlur={toggleFocus}\n tabIndex={0}\n hasActive={false}\n hoverMode=\"opacity\"\n >\n <Text weight=\"2\">{children}</Text>\n </Tappable>\n );\n};\n"],"file":"SliderSwitchButton.js"}
@@ -2,9 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["mode", "children", "showArrows", "getScrollToLeft", "getScrollToRight", "scrollAnimationDuration"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
- import { usePlatform } from "../../hooks/usePlatform";
6
5
  import { classNames } from "../../lib/classNames";
7
- import { getClassName } from "../../helpers/getClassName";
8
6
  import { HorizontalScroll } from "../HorizontalScroll/HorizontalScroll";
9
7
 
10
8
  var defaultScrollToLeft = function defaultScrollToLeft(x) {
@@ -32,7 +30,6 @@ export var SubnavigationBar = function SubnavigationBar(_ref) {
32
30
  scrollAnimationDuration = _ref.scrollAnimationDuration,
33
31
  restProps = _objectWithoutProperties(_ref, _excluded);
34
32
 
35
- var platform = usePlatform();
36
33
  var ScrollWrapper;
37
34
  var scrollWrapperProps = {};
38
35
 
@@ -49,7 +46,7 @@ export var SubnavigationBar = function SubnavigationBar(_ref) {
49
46
  }
50
47
 
51
48
  return createScopedElement("div", _extends({}, restProps, {
52
- vkuiClass: classNames(getClassName("SubnavigationBar", platform), "SubnavigationBar--".concat(mode))
49
+ vkuiClass: classNames("SubnavigationBar", "SubnavigationBar--".concat(mode))
53
50
  }), createScopedElement(ScrollWrapper, _extends({
54
51
  vkuiClass: "SubnavigationBar__in"
55
52
  }, scrollWrapperProps), createScopedElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":["usePlatform","classNames","getClassName","HorizontalScroll","defaultScrollToLeft","x","defaultScrollToRight","SubnavigationBar","mode","children","showArrows","getScrollToLeft","getScrollToRight","scrollAnimationDuration","restProps","platform","ScrollWrapper","scrollWrapperProps"],"mappings":";;;;AACA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SACEC,gBADF;;AAmBA,IAAMC,mBAA0C,GAAG,SAA7CA,mBAA6C,CAACC,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAAnD;;AAEA,IAAMC,oBAA2C,GAAG,SAA9CA,oBAA8C,CAACD,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAApD;AAEA;AACA;AACA;;;AACA,OAAO,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,OAQH;AAAA,uBAP3BC,IAO2B;AAAA,MAP3BA,IAO2B,0BAPpB,UAOoB;AAAA,MAN3BC,QAM2B,QAN3BA,QAM2B;AAAA,6BAL3BC,UAK2B;AAAA,MAL3BA,UAK2B,gCALd,IAKc;AAAA,kCAJ3BC,eAI2B;AAAA,MAJ3BA,eAI2B,qCAJTP,mBAIS;AAAA,mCAH3BQ,gBAG2B;AAAA,MAH3BA,gBAG2B,sCAHRN,oBAGQ;AAAA,MAF3BO,uBAE2B,QAF3BA,uBAE2B;AAAA,MADxBC,SACwB;;AAC3B,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;AAEA,MAAIgB,aAAJ;AACA,MAAIC,kBAAkB,GAAG,EAAzB;;AAEA,MAAIT,IAAI,KAAK,OAAb,EAAsB;AACpBQ,IAAAA,aAAa,GAAG,KAAhB;AACD,GAFD,MAEO;AACLA,IAAAA,aAAa,GAAGb,gBAAhB;AACAc,IAAAA,kBAAkB,GAAG;AACnBP,MAAAA,UAAU,EAAVA,UADmB;AAEnBC,MAAAA,eAAe,EAAfA,eAFmB;AAGnBC,MAAAA,gBAAgB,EAAhBA,gBAHmB;AAInBC,MAAAA,uBAAuB,EAAvBA;AAJmB,KAArB;AAMD;;AAED,SACE,wCACMC,SADN;AAEE,IAAA,SAAS,EAAEb,UAAU,CACnBC,YAAY,CAAC,kBAAD,EAAqBa,QAArB,CADO,8BAEEP,IAFF;AAFvB,MAOE,oBAAC,aAAD;AAAe,IAAA,SAAS,EAAC;AAAzB,KAAoDS,kBAApD,GACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CR,QAA7C,CADF,CAPF,CADF;AAaD,CAvCM","sourcesContent":["import * as React from \"react\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n HorizontalScroll,\n HorizontalScrollProps,\n ScrollPositionHandler,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport \"./SubnavigationBar.css\";\n\nexport interface SubnavigationBarProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<\n HorizontalScrollProps,\n | \"showArrows\"\n | \"getScrollToLeft\"\n | \"getScrollToRight\"\n | \"scrollAnimationDuration\"\n > {\n mode?: \"fixed\" | \"overflow\";\n}\n\nconst defaultScrollToLeft: ScrollPositionHandler = (x) => x - 240;\n\nconst defaultScrollToRight: ScrollPositionHandler = (x) => x + 240;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationBar\n */\nexport const SubnavigationBar = ({\n mode = \"overflow\",\n children,\n showArrows = true,\n getScrollToLeft = defaultScrollToLeft,\n getScrollToRight = defaultScrollToRight,\n scrollAnimationDuration,\n ...restProps\n}: SubnavigationBarProps) => {\n const platform = usePlatform();\n\n let ScrollWrapper: React.ElementType;\n let scrollWrapperProps = {};\n\n if (mode === \"fixed\") {\n ScrollWrapper = \"div\";\n } else {\n ScrollWrapper = HorizontalScroll;\n scrollWrapperProps = {\n showArrows,\n getScrollToLeft,\n getScrollToRight,\n scrollAnimationDuration,\n };\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SubnavigationBar\", platform),\n `SubnavigationBar--${mode}`\n )}\n >\n <ScrollWrapper vkuiClass=\"SubnavigationBar__in\" {...scrollWrapperProps}>\n <div vkuiClass=\"SubnavigationBar__scrollIn\">{children}</div>\n </ScrollWrapper>\n </div>\n );\n};\n"],"file":"SubnavigationBar.js"}
1
+ {"version":3,"sources":["../../../src/components/SubnavigationBar/SubnavigationBar.tsx"],"names":["classNames","HorizontalScroll","defaultScrollToLeft","x","defaultScrollToRight","SubnavigationBar","mode","children","showArrows","getScrollToLeft","getScrollToRight","scrollAnimationDuration","restProps","ScrollWrapper","scrollWrapperProps"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SACEC,gBADF;;AAmBA,IAAMC,mBAA0C,GAAG,SAA7CA,mBAA6C,CAACC,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAAnD;;AAEA,IAAMC,oBAA2C,GAAG,SAA9CA,oBAA8C,CAACD,CAAD;AAAA,SAAOA,CAAC,GAAG,GAAX;AAAA,CAApD;AAEA;AACA;AACA;;;AACA,OAAO,IAAME,gBAAgB,GAAG,SAAnBA,gBAAmB,OAQH;AAAA,uBAP3BC,IAO2B;AAAA,MAP3BA,IAO2B,0BAPpB,UAOoB;AAAA,MAN3BC,QAM2B,QAN3BA,QAM2B;AAAA,6BAL3BC,UAK2B;AAAA,MAL3BA,UAK2B,gCALd,IAKc;AAAA,kCAJ3BC,eAI2B;AAAA,MAJ3BA,eAI2B,qCAJTP,mBAIS;AAAA,mCAH3BQ,gBAG2B;AAAA,MAH3BA,gBAG2B,sCAHRN,oBAGQ;AAAA,MAF3BO,uBAE2B,QAF3BA,uBAE2B;AAAA,MADxBC,SACwB;;AAC3B,MAAIC,aAAJ;AACA,MAAIC,kBAAkB,GAAG,EAAzB;;AAEA,MAAIR,IAAI,KAAK,OAAb,EAAsB;AACpBO,IAAAA,aAAa,GAAG,KAAhB;AACD,GAFD,MAEO;AACLA,IAAAA,aAAa,GAAGZ,gBAAhB;AACAa,IAAAA,kBAAkB,GAAG;AACnBN,MAAAA,UAAU,EAAVA,UADmB;AAEnBC,MAAAA,eAAe,EAAfA,eAFmB;AAGnBC,MAAAA,gBAAgB,EAAhBA,gBAHmB;AAInBC,MAAAA,uBAAuB,EAAvBA;AAJmB,KAArB;AAMD;;AAED,SACE,wCACMC,SADN;AAEE,IAAA,SAAS,EAAEZ,UAAU,CAAC,kBAAD,8BAA0CM,IAA1C;AAFvB,MAIE,oBAAC,aAAD;AAAe,IAAA,SAAS,EAAC;AAAzB,KAAoDQ,kBAApD,GACE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6CP,QAA7C,CADF,CAJF,CADF;AAUD,CAlCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n HorizontalScroll,\n HorizontalScrollProps,\n ScrollPositionHandler,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport \"./SubnavigationBar.css\";\n\nexport interface SubnavigationBarProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<\n HorizontalScrollProps,\n | \"showArrows\"\n | \"getScrollToLeft\"\n | \"getScrollToRight\"\n | \"scrollAnimationDuration\"\n > {\n mode?: \"fixed\" | \"overflow\";\n}\n\nconst defaultScrollToLeft: ScrollPositionHandler = (x) => x - 240;\n\nconst defaultScrollToRight: ScrollPositionHandler = (x) => x + 240;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationBar\n */\nexport const SubnavigationBar = ({\n mode = \"overflow\",\n children,\n showArrows = true,\n getScrollToLeft = defaultScrollToLeft,\n getScrollToRight = defaultScrollToRight,\n scrollAnimationDuration,\n ...restProps\n}: SubnavigationBarProps) => {\n let ScrollWrapper: React.ElementType;\n let scrollWrapperProps = {};\n\n if (mode === \"fixed\") {\n ScrollWrapper = \"div\";\n } else {\n ScrollWrapper = HorizontalScroll;\n scrollWrapperProps = {\n showArrows,\n getScrollToLeft,\n getScrollToRight,\n scrollAnimationDuration,\n };\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\"SubnavigationBar\", `SubnavigationBar--${mode}`)}\n >\n <ScrollWrapper vkuiClass=\"SubnavigationBar__in\" {...scrollWrapperProps}>\n <div vkuiClass=\"SubnavigationBar__scrollIn\">{children}</div>\n </ScrollWrapper>\n </div>\n );\n};\n"],"file":"SubnavigationBar.js"}
@@ -44,11 +44,8 @@ export var SubnavigationButton = function SubnavigationButton(_ref2) {
44
44
  var platform = usePlatform();
45
45
  return createScopedElement(Tappable, _extends({}, restProps, {
46
46
  hasActive: false,
47
- focusVisibleMode: "outside" // eslint-disable-next-line vkui/no-object-expression-in-arguments
48
- ,
49
- vkuiClass: classNames(getClassName("SubnavigationButton", platform), "SubnavigationButton--".concat(size), {
50
- "SubnavigationButton--selected": selected
51
- }),
47
+ focusVisibleMode: "outside",
48
+ vkuiClass: classNames(getClassName("SubnavigationButton", platform), "SubnavigationButton--".concat(size), selected && "SubnavigationButton--selected"),
52
49
  "aria-label": getTitleFromChildren(children)
53
50
  }), createScopedElement("span", {
54
51
  vkuiClass: "SubnavigationButton__in"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","size","selected","before","after","expandable","children","platform"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,SAAwBC,QAAxB;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,SAASC,OAAT;AACA,SAASC,OAAT;;AAyBA,IAAMC,6BAA6B,GAAG,SAAhCA,6BAAgC,OAGH;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD,EAAaC,SAAb,CAAP;AACD;;AAED,SAAO,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB;AAAxC,KAAiDC,SAAjD,EAAP;AACD,CATD;AAWA;AACA;AACA;;;AACA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,QASH;AAAA,yBAR9BC,IAQ8B;AAAA,MAR9BA,IAQ8B,2BARvB,GAQuB;AAAA,MAP9BC,QAO8B,SAP9BA,QAO8B;AAAA,8BAN9BJ,SAM8B;AAAA,MAN9BA,SAM8B,gCANlB,CAMkB;AAAA,MAL9BK,MAK8B,SAL9BA,MAK8B;AAAA,MAJ9BC,KAI8B,SAJ9BA,KAI8B;AAAA,MAH9BC,UAG8B,SAH9BA,UAG8B;AAAA,MAF9BC,QAE8B,SAF9BA,QAE8B;AAAA,MAD3BP,SAC2B;;AAC9B,MAAMQ,QAAQ,GAAGb,WAAW,EAA5B;AAEA,SACE,oBAAC,QAAD,eACMK,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB,CAIE;AAJF;AAKE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBkB,QAAxB,CADO,iCAEKN,IAFL,GAGnB;AACE,uCAAiCC;AADnC,KAHmB,CALvB;AAYE,kBAAYZ,oBAAoB,CAACgB,QAAD;AAZlC,MAcE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGf,YAAY,CAACY,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEL,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGQ,QALH,CAJF,EAWGf,YAAY,CAACa,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAdF,CADF;AAmCD,CA/CM","sourcesContent":["import * as React from \"react\";\nimport { HasComponent, HasChildren } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === 2 ? \"1\" : \"2\"} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n size = \"m\",\n selected,\n textLevel = 1,\n before,\n after,\n expandable,\n children,\n ...restProps\n}: SubnavigationButtonProps) => {\n const platform = usePlatform();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n {\n \"SubnavigationButton--selected\": selected,\n }\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n"],"file":"SubnavigationButton.js"}
1
+ {"version":3,"sources":["../../../src/components/SubnavigationButton/SubnavigationButton.tsx"],"names":["classNames","getClassName","getTitleFromChildren","hasReactNode","Tappable","Icon16Dropdown","usePlatform","Caption","Subhead","SubnavigationButtonTypography","textLevel","restProps","SubnavigationButton","size","selected","before","after","expandable","children","platform"],"mappings":";;;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,oBAAT,EAA+BC,YAA/B;AACA,SAAwBC,QAAxB;AACA,SAASC,cAAT,QAA+B,kBAA/B;AACA,SAASC,WAAT;AACA,SAASC,OAAT;AACA,SAASC,OAAT;;AAyBA,IAAMC,6BAA6B,GAAG,SAAhCA,6BAAgC,OAGH;AAAA,MAFjCC,SAEiC,QAFjCA,SAEiC;AAAA,MAD9BC,SAC8B;;AACjC,MAAID,SAAS,KAAK,CAAlB,EAAqB;AACnB,WAAO,oBAAC,OAAD,EAAaC,SAAb,CAAP;AACD;;AAED,SAAO,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAED,SAAS,KAAK,CAAd,GAAkB,GAAlB,GAAwB;AAAxC,KAAiDC,SAAjD,EAAP;AACD,CATD;AAWA;AACA;AACA;;;AACA,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,QASH;AAAA,yBAR9BC,IAQ8B;AAAA,MAR9BA,IAQ8B,2BARvB,GAQuB;AAAA,MAP9BC,QAO8B,SAP9BA,QAO8B;AAAA,8BAN9BJ,SAM8B;AAAA,MAN9BA,SAM8B,gCANlB,CAMkB;AAAA,MAL9BK,MAK8B,SAL9BA,MAK8B;AAAA,MAJ9BC,KAI8B,SAJ9BA,KAI8B;AAAA,MAH9BC,UAG8B,SAH9BA,UAG8B;AAAA,MAF9BC,QAE8B,SAF9BA,QAE8B;AAAA,MAD3BP,SAC2B;;AAC9B,MAAMQ,QAAQ,GAAGb,WAAW,EAA5B;AAEA,SACE,oBAAC,QAAD,eACMK,SADN;AAEE,IAAA,SAAS,EAAE,KAFb;AAGE,IAAA,gBAAgB,EAAC,SAHnB;AAIE,IAAA,SAAS,EAAEX,UAAU,CACnBC,YAAY,CAAC,qBAAD,EAAwBkB,QAAxB,CADO,iCAEKN,IAFL,GAGnBC,QAAQ,IAAI,+BAHO,CAJvB;AASE,kBAAYZ,oBAAoB,CAACgB,QAAD;AATlC,MAWE;AAAM,IAAA,SAAS,EAAC;AAAhB,KACGf,YAAY,CAACY,MAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA+CA,MAA/C,CAFJ,EAIE,oBAAC,6BAAD;AACE,IAAA,SAAS,EAAEL,SADb;AAEE,IAAA,SAAS,EAAC,4BAFZ;AAGE,IAAA,SAAS,EAAC;AAHZ,KAKGQ,QALH,CAJF,EAWGf,YAAY,CAACa,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAA8CA,KAA9C,CAZJ,EAcGC,UAAU,IACT,oBAAC,cAAD;AAAgB,IAAA,SAAS,EAAC;AAA1B,IAfJ,CAXF,CADF;AAgCD,CA5CM","sourcesContent":["import * as React from \"react\";\nimport { HasComponent, HasChildren } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getTitleFromChildren, hasReactNode } from \"../../lib/utils\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon16Dropdown } from \"@vkontakte/icons\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport \"./SubnavigationButton.css\";\n\nexport interface SubnavigationButtonProps extends Omit<TappableProps, \"size\"> {\n size?: \"m\" | \"l\";\n selected?: boolean;\n /**\n * Размер шрифта. Этим свойством рекомендуется пользоваться, чтобы отрегулировать размер шрифта у кнопок в `<SubnavigationBar mode=\"fixed\" />`\n */\n textLevel?: 1 | 2 | 3;\n /**\n * Рекомендуется использовать только иконки с размером 24\n */\n before?: React.ReactNode;\n /**\n * Рекомендуется использовать только `<Counter size=\"s\" />` или `<Badge />`\n */\n after?: React.ReactNode;\n expandable?: boolean;\n}\n\ntype SubnavButtonTypographyProps = Pick<SubnavigationButtonProps, \"textLevel\"> &\n HasComponent &\n HasChildren;\n\nconst SubnavigationButtonTypography = ({\n textLevel,\n ...restProps\n}: SubnavButtonTypographyProps) => {\n if (textLevel === 1) {\n return <Subhead {...restProps} />;\n }\n\n return <Caption level={textLevel === 2 ? \"1\" : \"2\"} {...restProps} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SubnavigationButton\n */\nexport const SubnavigationButton = ({\n size = \"m\",\n selected,\n textLevel = 1,\n before,\n after,\n expandable,\n children,\n ...restProps\n}: SubnavigationButtonProps) => {\n const platform = usePlatform();\n\n return (\n <Tappable\n {...restProps}\n hasActive={false}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"SubnavigationButton\", platform),\n `SubnavigationButton--${size}`,\n selected && \"SubnavigationButton--selected\"\n )}\n aria-label={getTitleFromChildren(children)}\n >\n <span vkuiClass=\"SubnavigationButton__in\">\n {hasReactNode(before) && (\n <span vkuiClass=\"SubnavigationButton__before\">{before}</span>\n )}\n <SubnavigationButtonTypography\n textLevel={textLevel}\n vkuiClass=\"SubnavigationButton__label\"\n Component=\"span\"\n >\n {children}\n </SubnavigationButtonTypography>\n {hasReactNode(after) && (\n <span vkuiClass=\"SubnavigationButton__after\">{after}</span>\n )}\n {expandable && (\n <Icon16Dropdown vkuiClass=\"SubnavigationButton__expandableIcon\" />\n )}\n </span>\n </Tappable>\n );\n};\n"],"file":"SubnavigationButton.js"}
@@ -1,5 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
@@ -7,7 +6,7 @@ var _excluded = ["children", "Component", "onClick", "onKeyDown", "activeEffectD
7
6
  import { createScopedElement } from "../../lib/jsxRuntime";
8
7
  import * as React from "react";
9
8
  import mitt from "mitt";
10
- import { noop } from "@vkontakte/vkjs";
9
+ import { noop } from "../../lib/utils";
11
10
  import { Touch } from "../Touch/Touch";
12
11
  import TouchRootContext from "../Touch/TouchContext";
13
12
  import { classNames } from "../../lib/classNames";
@@ -113,8 +112,6 @@ function useActivity(hasActive, stopDelay) {
113
112
  }
114
113
 
115
114
  var TappableComponent = function TappableComponent(_ref) {
116
- var _classNames;
117
-
118
115
  var children = _ref.children,
119
116
  Component = _ref.Component,
120
117
  onClick = _ref.onClick,
@@ -282,13 +279,9 @@ var TappableComponent = function TappableComponent(_ref) {
282
279
 
283
280
  var activeDuration = duration - ACTIVE_DELAY;
284
281
  stop(activeDuration >= 100 ? 0 : activeEffectDelay - activeDuration);
285
- } // eslint-disable-next-line vkui/no-object-expression-in-arguments
286
-
282
+ }
287
283
 
288
- var classes = classNames("Tappable", platform === IOS && "Tappable--ios", "Tappable--sizeX-".concat(sizeX), hasHover && "Tappable--hasHover", hasActive && "Tappable--hasActive", hasHover && hovered && !isPresetHoverMode && hoverMode, hasActive && active && !isPresetActiveMode && activeMode, focusVisible && !isPresetFocusVisibleMode && focusVisibleMode, (_classNames = {
289
- "Tappable--active": hasActive && active,
290
- "Tappable--mouse": hasMouse
291
- }, _defineProperty(_classNames, "Tappable--hover-".concat(hoverMode), hasHover && hovered && isPresetHoverMode), _defineProperty(_classNames, "Tappable--active-".concat(activeMode), hasActive && active && isPresetActiveMode), _defineProperty(_classNames, "Tappable--focus-visible", focusVisible), _classNames));
284
+ var classes = classNames("Tappable", platform === IOS && "Tappable--ios", "Tappable--sizeX-".concat(sizeX), hasHover && "Tappable--hasHover", hasActive && "Tappable--hasActive", hasHover && hovered && !isPresetHoverMode && hoverMode, hasActive && active && !isPresetActiveMode && activeMode, focusVisible && !isPresetFocusVisibleMode && focusVisibleMode, hasActive && active && "Tappable--active", hasMouse && "Tappable--mouse", hasHover && hovered && isPresetHoverMode && "Tappable--hover-".concat(hoverMode), hasActive && active && isPresetActiveMode && "Tappable--active-".concat(activeMode), focusVisible && "Tappable--focus-visible");
292
285
  var handlers = {
293
286
  onStart: callMultiple(onStart, props.onStart),
294
287
  onMove: callMultiple(onMove, props.onMove),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"names":["React","mitt","noop","Touch","TouchRootContext","classNames","IOS","ANDROID","getOffsetRect","coordX","coordY","withAdaptivity","shouldTriggerClickOnEnterOrSpace","useIsomorphicLayoutEffect","FocusVisible","useTimeout","useExternRef","usePlatform","useFocusVisible","callMultiple","useBooleanState","WAVE_LIVE","ACTIVE_DELAY","ACTIVE_EFFECT_DELAY","activeBus","TapState","none","pending","active","exiting","TappableContext","createContext","onHoverChange","useActivity","hasActive","stopDelay","id","useMemo","Math","round","random","toString","useState","activity","setActivity","_stop","start","delayStart","activeTimeout","stopTimeout","set","clear","emit","onActiveChange","activeId","on","off","stop","delay","TappableComponent","children","Component","onClick","_onKeyDown","onKeyDown","activeEffectDelay","stopPropagation","getRootRef","sizeX","hasMouse","deviceHasHover","hasHover","_hasHover","hoverMode","_hasActive","activeMode","focusVisibleMode","onEnter","onLeave","props","href","useContext","insideTouchRoot","platform","focusVisible","onBlur","onFocus","clicks","setClicks","childHover","setChildHover","_hovered","value","setHoveredTrue","setTrue","setHoveredFalse","setFalse","hovered","disabled","isCustomElement","contentEditable","isPresetHoverMode","includes","isPresetActiveMode","isPresetFocusVisibleMode","containerRef","childContext","useRef","current","e","preventDefault","click","needWaves","clearClicks","addClick","x","y","dateNow","Date","now","filteredClicks","filter","onStart","originalEvent","touches","length","top","left","onMove","isSlide","onEnd","duration","activeDuration","classes","handlers","role","undefined","map","wave","Tappable","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport mitt from \"mitt\";\nimport { noop } from \"@vkontakte/vkjs\";\nimport { Touch, TouchEvent, TouchProps } from \"../Touch/Touch\";\nimport TouchRootContext from \"../Touch/TouchContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS, ANDROID } from \"../../lib/platform\";\nimport { getOffsetRect } from \"../../lib/offset\";\nimport { coordX, coordY } from \"../../lib/touch\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { shouldTriggerClickOnEnterOrSpace } from \"../../lib/accessibility\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { FocusVisible, FocusVisibleMode } from \"../FocusVisible/FocusVisible\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { useBooleanState } from \"../../hooks/useBooleanState\";\nimport \"./Tappable.css\";\n\nconst WAVE_LIVE = 225;\n\nexport interface TappableProps\n extends Omit<\n React.AllHTMLAttributes<HTMLElement>,\n | \"onTouchStart\"\n | \"onTouchMove\"\n | \"onTouchEnd\"\n | \"onTouchCancel\"\n | \"onMouseDown\"\n | \"onMouseMove\"\n | \"onMouseUp\"\n | \"onMouseLeave\"\n >,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n HasComponent,\n Pick<TouchProps, \"onStart\" | \"onEnd\" | \"onMove\"> {\n /**\n * Длительность показа active-состояния\n */\n activeEffectDelay?: number;\n stopPropagation?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n /**\n * Стиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active\n */\n activeMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover\n */\n hoverMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс во время focus-visible\n */\n focusVisibleMode?: FocusVisibleMode | string;\n children?: React.ReactNode;\n onEnter?(outputEvent: MouseEvent): void;\n onLeave?(outputEvent: MouseEvent): void;\n}\n\ninterface Wave {\n x: number;\n y: number;\n id: number;\n}\n\nexport interface RootComponentProps extends TouchProps {\n ref?: React.Ref<HTMLElement>;\n}\n\nexport const ACTIVE_DELAY = 70;\nexport const ACTIVE_EFFECT_DELAY = 600;\n\nconst activeBus = mitt<{ active: string }>();\nconst TapState = { none: 0, pending: 1, active: 2, exiting: 3 } as const;\n\ntype TappableContextInterface = { onHoverChange: (s: boolean) => void };\nconst TappableContext = React.createContext<TappableContextInterface>({\n onHoverChange: noop,\n});\n\nfunction useActivity(hasActive: boolean, stopDelay: number) {\n const id = React.useMemo(\n () => Math.round(Math.random() * 1e8).toString(16),\n []\n );\n\n const [activity, setActivity] = React.useState<\n typeof TapState[keyof typeof TapState]\n >(TapState.none);\n const _stop = () => setActivity(TapState.none);\n const start = () => hasActive && setActivity(TapState.active);\n const delayStart = () => {\n hasActive && setActivity(TapState.pending);\n };\n\n const activeTimeout = useTimeout(start, ACTIVE_DELAY);\n const stopTimeout = useTimeout(_stop, stopDelay);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.pending) {\n activeTimeout.set();\n return activeTimeout.clear;\n }\n if (activity === TapState.exiting) {\n return stopTimeout.clear;\n }\n if (activity === TapState.active) {\n activeBus.emit(\"active\", id);\n }\n return noop;\n }, [activity]);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.none) {\n return noop;\n }\n const onActiveChange = (activeId: string) => {\n activeId !== id && _stop();\n };\n activeBus.on(\"active\", onActiveChange);\n return () => activeBus.off(\"active\", onActiveChange);\n }, [activity === TapState.none]);\n\n useIsomorphicLayoutEffect(() => {\n !hasActive && _stop();\n }, [hasActive]);\n\n const stop = (delay?: number) => {\n if (delay) {\n setActivity(TapState.exiting);\n return stopTimeout.set(delay);\n }\n _stop();\n };\n\n return [activity, { delayStart, start, stop }] as const;\n}\n\nconst TappableComponent = ({\n children,\n Component,\n onClick,\n onKeyDown: _onKeyDown,\n activeEffectDelay = ACTIVE_EFFECT_DELAY,\n stopPropagation = false,\n getRootRef,\n sizeX,\n hasMouse,\n deviceHasHover,\n hasHover: _hasHover = true,\n hoverMode = \"background\",\n hasActive: _hasActive = true,\n activeMode = \"background\",\n focusVisibleMode = \"inside\",\n onEnter,\n onLeave,\n ...props\n}: TappableProps) => {\n Component = Component || ((props.href ? \"a\" : \"div\") as React.ElementType);\n\n const { onHoverChange } = React.useContext(TappableContext);\n const insideTouchRoot = React.useContext(TouchRootContext);\n const platform = usePlatform();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n const [clicks, setClicks] = React.useState<Wave[]>([]);\n const [childHover, setChildHover] = React.useState(false);\n const {\n value: _hovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const hovered = _hovered && !props.disabled;\n const hasActive = _hasActive && !childHover && !props.disabled;\n const hasHover = deviceHasHover && _hasHover && !childHover;\n const isCustomElement =\n Component !== \"a\" &&\n Component !== \"button\" &&\n Component !== \"label\" &&\n !props.contentEditable;\n const isPresetHoverMode = [\"opacity\", \"background\"].includes(hoverMode);\n const isPresetActiveMode = [\"opacity\", \"background\"].includes(activeMode);\n const isPresetFocusVisibleMode = [\"inside\", \"outside\"].includes(\n focusVisibleMode\n );\n\n const [activity, { start, stop, delayStart }] = useActivity(\n hasActive,\n activeEffectDelay\n );\n const active = activity === TapState.active || activity === TapState.exiting;\n\n const containerRef = useExternRef(getRootRef);\n\n // hover propagation\n const childContext = React.useRef({ onHoverChange: setChildHover }).current;\n useIsomorphicLayoutEffect(() => {\n if (!hovered) {\n return noop;\n }\n onHoverChange(true);\n return () => onHoverChange(false);\n }, [hovered]);\n\n /*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\n function onKeyDown(e: React.KeyboardEvent<HTMLElement>) {\n if (isCustomElement && shouldTriggerClickOnEnterOrSpace(e)) {\n e.preventDefault();\n containerRef.current?.click();\n }\n }\n\n const needWaves =\n platform === ANDROID &&\n !hasMouse &&\n hasActive &&\n activeMode === \"background\";\n\n const clearClicks = useTimeout(() => setClicks([]), WAVE_LIVE);\n\n function addClick(x: number, y: number) {\n const dateNow = Date.now();\n const filteredClicks = clicks.filter(\n (click) => click.id + WAVE_LIVE > dateNow\n );\n\n setClicks([...filteredClicks, { x, y, id: dateNow }]);\n clearClicks.set();\n }\n\n function onStart({ originalEvent }: TouchEvent) {\n if (hasActive) {\n if (originalEvent.touches && originalEvent.touches.length > 1) {\n // r сожалению я так и не понял, что это делает и можно ли упихнуть его в Touch\n return stop();\n }\n\n if (needWaves) {\n const { top, left } = getOffsetRect(containerRef.current);\n const x = coordX(originalEvent) - (left ?? 0);\n const y = coordY(originalEvent) - (top ?? 0);\n addClick(x, y);\n }\n\n delayStart();\n }\n }\n\n function onMove({ isSlide }: TouchEvent) {\n if (isSlide) {\n stop();\n }\n }\n\n function onEnd({ duration }: TouchEvent) {\n if (activity === TapState.none) {\n return;\n }\n if (activity === TapState.pending) {\n // активировать при коротком тапе\n start();\n }\n\n // отключить без задержки при длинном тапе\n const activeDuration = duration - ACTIVE_DELAY;\n stop(activeDuration >= 100 ? 0 : activeEffectDelay - activeDuration);\n }\n\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n const classes = classNames(\n \"Tappable\",\n platform === IOS && \"Tappable--ios\",\n `Tappable--sizeX-${sizeX}`,\n hasHover && `Tappable--hasHover`,\n hasActive && `Tappable--hasActive`,\n hasHover && hovered && !isPresetHoverMode && hoverMode,\n hasActive && active && !isPresetActiveMode && activeMode,\n focusVisible && !isPresetFocusVisibleMode && focusVisibleMode,\n {\n \"Tappable--active\": hasActive && active,\n \"Tappable--mouse\": hasMouse,\n [`Tappable--hover-${hoverMode}`]:\n hasHover && hovered && isPresetHoverMode,\n [`Tappable--active-${activeMode}`]:\n hasActive && active && isPresetActiveMode,\n \"Tappable--focus-visible\": focusVisible,\n }\n );\n\n const handlers: RootComponentProps = {\n onStart: callMultiple(onStart, props.onStart),\n onMove: callMultiple(onMove, props.onMove),\n onEnd: callMultiple(onEnd, props.onEnd),\n onClick,\n onKeyDown: callMultiple(onKeyDown, _onKeyDown),\n };\n const role = props.href ? \"link\" : \"button\";\n\n return (\n <Touch\n onEnter={callMultiple(setHoveredTrue, onEnter)}\n onLeave={callMultiple(setHoveredFalse, onLeave)}\n type={Component === \"button\" ? \"button\" : undefined}\n tabIndex={isCustomElement && !props.disabled ? 0 : undefined}\n role={isCustomElement ? role : undefined}\n aria-disabled={isCustomElement ? props.disabled : undefined}\n stopPropagation={stopPropagation && !insideTouchRoot && !props.disabled}\n {...props}\n slideThreshold={20}\n usePointerHover\n vkuiClass={classes}\n Component={Component}\n getRootRef={containerRef}\n onBlur={callMultiple(onBlur, props.onBlur)}\n onFocus={callMultiple(onFocus, props.onFocus)}\n {...(props.disabled ? {} : handlers)}\n >\n <TappableContext.Provider value={childContext}>\n {children}\n </TappableContext.Provider>\n {needWaves && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__waves\">\n {clicks.map((wave) => (\n <span\n key={wave.id}\n vkuiClass=\"Tappable__wave\"\n style={{ top: wave.y, left: wave.x }}\n />\n ))}\n </span>\n )}\n {hasHover && hoverMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__hoverShadow\" />\n )}\n {!props.disabled && isPresetFocusVisibleMode && (\n <FocusVisible mode={focusVisibleMode as FocusVisibleMode} />\n )}\n </Touch>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tappable\n */\nexport const Tappable = withAdaptivity(TappableComponent, {\n sizeX: true,\n hasMouse: true,\n deviceHasHover: true,\n});\n\nTappable.displayName = \"Tappable\";\n"],"file":"Tappable.js"}
1
+ {"version":3,"sources":["../../../src/components/Tappable/Tappable.tsx"],"names":["React","mitt","noop","Touch","TouchRootContext","classNames","IOS","ANDROID","getOffsetRect","coordX","coordY","withAdaptivity","shouldTriggerClickOnEnterOrSpace","useIsomorphicLayoutEffect","FocusVisible","useTimeout","useExternRef","usePlatform","useFocusVisible","callMultiple","useBooleanState","WAVE_LIVE","ACTIVE_DELAY","ACTIVE_EFFECT_DELAY","activeBus","TapState","none","pending","active","exiting","TappableContext","createContext","onHoverChange","useActivity","hasActive","stopDelay","id","useMemo","Math","round","random","toString","useState","activity","setActivity","_stop","start","delayStart","activeTimeout","stopTimeout","set","clear","emit","onActiveChange","activeId","on","off","stop","delay","TappableComponent","children","Component","onClick","_onKeyDown","onKeyDown","activeEffectDelay","stopPropagation","getRootRef","sizeX","hasMouse","deviceHasHover","hasHover","_hasHover","hoverMode","_hasActive","activeMode","focusVisibleMode","onEnter","onLeave","props","href","useContext","insideTouchRoot","platform","focusVisible","onBlur","onFocus","clicks","setClicks","childHover","setChildHover","_hovered","value","setHoveredTrue","setTrue","setHoveredFalse","setFalse","hovered","disabled","isCustomElement","contentEditable","isPresetHoverMode","includes","isPresetActiveMode","isPresetFocusVisibleMode","containerRef","childContext","useRef","current","e","preventDefault","click","needWaves","clearClicks","addClick","x","y","dateNow","Date","now","filteredClicks","filter","onStart","originalEvent","touches","length","top","left","onMove","isSlide","onEnd","duration","activeDuration","classes","handlers","role","undefined","map","wave","Tappable","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport mitt from \"mitt\";\nimport { noop } from \"../../lib/utils\";\nimport { Touch, TouchEvent, TouchProps } from \"../Touch/Touch\";\nimport TouchRootContext from \"../Touch/TouchContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS, ANDROID } from \"../../lib/platform\";\nimport { getOffsetRect } from \"../../lib/offset\";\nimport { coordX, coordY } from \"../../lib/touch\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { shouldTriggerClickOnEnterOrSpace } from \"../../lib/accessibility\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { FocusVisible, FocusVisibleMode } from \"../FocusVisible/FocusVisible\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useFocusVisible } from \"../../hooks/useFocusVisible\";\nimport { callMultiple } from \"../../lib/callMultiple\";\nimport { useBooleanState } from \"../../hooks/useBooleanState\";\nimport \"./Tappable.css\";\n\nconst WAVE_LIVE = 225;\n\nexport interface TappableProps\n extends Omit<\n React.AllHTMLAttributes<HTMLElement>,\n | \"onTouchStart\"\n | \"onTouchMove\"\n | \"onTouchEnd\"\n | \"onTouchCancel\"\n | \"onMouseDown\"\n | \"onMouseMove\"\n | \"onMouseUp\"\n | \"onMouseLeave\"\n >,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n HasComponent,\n Pick<TouchProps, \"onStart\" | \"onEnd\" | \"onMove\"> {\n /**\n * Длительность показа active-состояния\n */\n activeEffectDelay?: number;\n stopPropagation?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n /**\n * Стиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active\n */\n activeMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover\n */\n hoverMode?: \"opacity\" | \"background\" | string;\n /**\n * Стиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс во время focus-visible\n */\n focusVisibleMode?: FocusVisibleMode | string;\n children?: React.ReactNode;\n onEnter?(outputEvent: MouseEvent): void;\n onLeave?(outputEvent: MouseEvent): void;\n}\n\ninterface Wave {\n x: number;\n y: number;\n id: number;\n}\n\nexport interface RootComponentProps extends TouchProps {\n ref?: React.Ref<HTMLElement>;\n}\n\nexport const ACTIVE_DELAY = 70;\nexport const ACTIVE_EFFECT_DELAY = 600;\n\nconst activeBus = mitt<{ active: string }>();\nconst TapState = { none: 0, pending: 1, active: 2, exiting: 3 } as const;\n\ntype TappableContextInterface = { onHoverChange: (s: boolean) => void };\nconst TappableContext = React.createContext<TappableContextInterface>({\n onHoverChange: noop,\n});\n\nfunction useActivity(hasActive: boolean, stopDelay: number) {\n const id = React.useMemo(\n () => Math.round(Math.random() * 1e8).toString(16),\n []\n );\n\n const [activity, setActivity] = React.useState<\n typeof TapState[keyof typeof TapState]\n >(TapState.none);\n const _stop = () => setActivity(TapState.none);\n const start = () => hasActive && setActivity(TapState.active);\n const delayStart = () => {\n hasActive && setActivity(TapState.pending);\n };\n\n const activeTimeout = useTimeout(start, ACTIVE_DELAY);\n const stopTimeout = useTimeout(_stop, stopDelay);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.pending) {\n activeTimeout.set();\n return activeTimeout.clear;\n }\n if (activity === TapState.exiting) {\n return stopTimeout.clear;\n }\n if (activity === TapState.active) {\n activeBus.emit(\"active\", id);\n }\n return noop;\n }, [activity]);\n\n useIsomorphicLayoutEffect(() => {\n if (activity === TapState.none) {\n return noop;\n }\n const onActiveChange = (activeId: string) => {\n activeId !== id && _stop();\n };\n activeBus.on(\"active\", onActiveChange);\n return () => activeBus.off(\"active\", onActiveChange);\n }, [activity === TapState.none]);\n\n useIsomorphicLayoutEffect(() => {\n !hasActive && _stop();\n }, [hasActive]);\n\n const stop = (delay?: number) => {\n if (delay) {\n setActivity(TapState.exiting);\n return stopTimeout.set(delay);\n }\n _stop();\n };\n\n return [activity, { delayStart, start, stop }] as const;\n}\n\nconst TappableComponent = ({\n children,\n Component,\n onClick,\n onKeyDown: _onKeyDown,\n activeEffectDelay = ACTIVE_EFFECT_DELAY,\n stopPropagation = false,\n getRootRef,\n sizeX,\n hasMouse,\n deviceHasHover,\n hasHover: _hasHover = true,\n hoverMode = \"background\",\n hasActive: _hasActive = true,\n activeMode = \"background\",\n focusVisibleMode = \"inside\",\n onEnter,\n onLeave,\n ...props\n}: TappableProps) => {\n Component = Component || ((props.href ? \"a\" : \"div\") as React.ElementType);\n\n const { onHoverChange } = React.useContext(TappableContext);\n const insideTouchRoot = React.useContext(TouchRootContext);\n const platform = usePlatform();\n const { focusVisible, onBlur, onFocus } = useFocusVisible();\n\n const [clicks, setClicks] = React.useState<Wave[]>([]);\n const [childHover, setChildHover] = React.useState(false);\n const {\n value: _hovered,\n setTrue: setHoveredTrue,\n setFalse: setHoveredFalse,\n } = useBooleanState(false);\n\n const hovered = _hovered && !props.disabled;\n const hasActive = _hasActive && !childHover && !props.disabled;\n const hasHover = deviceHasHover && _hasHover && !childHover;\n const isCustomElement =\n Component !== \"a\" &&\n Component !== \"button\" &&\n Component !== \"label\" &&\n !props.contentEditable;\n const isPresetHoverMode = [\"opacity\", \"background\"].includes(hoverMode);\n const isPresetActiveMode = [\"opacity\", \"background\"].includes(activeMode);\n const isPresetFocusVisibleMode = [\"inside\", \"outside\"].includes(\n focusVisibleMode\n );\n\n const [activity, { start, stop, delayStart }] = useActivity(\n hasActive,\n activeEffectDelay\n );\n const active = activity === TapState.active || activity === TapState.exiting;\n\n const containerRef = useExternRef(getRootRef);\n\n // hover propagation\n const childContext = React.useRef({ onHoverChange: setChildHover }).current;\n useIsomorphicLayoutEffect(() => {\n if (!hovered) {\n return noop;\n }\n onHoverChange(true);\n return () => onHoverChange(false);\n }, [hovered]);\n\n /*\n * [a11y]\n * Обрабатывает событие onkeydown\n * для кастомных доступных элементов:\n * - role=\"link\" (активация по Enter)\n * - role=\"button\" (активация по Space и Enter)\n */\n function onKeyDown(e: React.KeyboardEvent<HTMLElement>) {\n if (isCustomElement && shouldTriggerClickOnEnterOrSpace(e)) {\n e.preventDefault();\n containerRef.current?.click();\n }\n }\n\n const needWaves =\n platform === ANDROID &&\n !hasMouse &&\n hasActive &&\n activeMode === \"background\";\n\n const clearClicks = useTimeout(() => setClicks([]), WAVE_LIVE);\n\n function addClick(x: number, y: number) {\n const dateNow = Date.now();\n const filteredClicks = clicks.filter(\n (click) => click.id + WAVE_LIVE > dateNow\n );\n\n setClicks([...filteredClicks, { x, y, id: dateNow }]);\n clearClicks.set();\n }\n\n function onStart({ originalEvent }: TouchEvent) {\n if (hasActive) {\n if (originalEvent.touches && originalEvent.touches.length > 1) {\n // r сожалению я так и не понял, что это делает и можно ли упихнуть его в Touch\n return stop();\n }\n\n if (needWaves) {\n const { top, left } = getOffsetRect(containerRef.current);\n const x = coordX(originalEvent) - (left ?? 0);\n const y = coordY(originalEvent) - (top ?? 0);\n addClick(x, y);\n }\n\n delayStart();\n }\n }\n\n function onMove({ isSlide }: TouchEvent) {\n if (isSlide) {\n stop();\n }\n }\n\n function onEnd({ duration }: TouchEvent) {\n if (activity === TapState.none) {\n return;\n }\n if (activity === TapState.pending) {\n // активировать при коротком тапе\n start();\n }\n\n // отключить без задержки при длинном тапе\n const activeDuration = duration - ACTIVE_DELAY;\n stop(activeDuration >= 100 ? 0 : activeEffectDelay - activeDuration);\n }\n\n const classes = classNames(\n \"Tappable\",\n platform === IOS && \"Tappable--ios\",\n `Tappable--sizeX-${sizeX}`,\n hasHover && `Tappable--hasHover`,\n hasActive && `Tappable--hasActive`,\n hasHover && hovered && !isPresetHoverMode && hoverMode,\n hasActive && active && !isPresetActiveMode && activeMode,\n focusVisible && !isPresetFocusVisibleMode && focusVisibleMode,\n hasActive && active && \"Tappable--active\",\n hasMouse && \"Tappable--mouse\",\n hasHover && hovered && isPresetHoverMode && `Tappable--hover-${hoverMode}`,\n hasActive &&\n active &&\n isPresetActiveMode &&\n `Tappable--active-${activeMode}`,\n focusVisible && \"Tappable--focus-visible\"\n );\n\n const handlers: RootComponentProps = {\n onStart: callMultiple(onStart, props.onStart),\n onMove: callMultiple(onMove, props.onMove),\n onEnd: callMultiple(onEnd, props.onEnd),\n onClick,\n onKeyDown: callMultiple(onKeyDown, _onKeyDown),\n };\n const role = props.href ? \"link\" : \"button\";\n\n return (\n <Touch\n onEnter={callMultiple(setHoveredTrue, onEnter)}\n onLeave={callMultiple(setHoveredFalse, onLeave)}\n type={Component === \"button\" ? \"button\" : undefined}\n tabIndex={isCustomElement && !props.disabled ? 0 : undefined}\n role={isCustomElement ? role : undefined}\n aria-disabled={isCustomElement ? props.disabled : undefined}\n stopPropagation={stopPropagation && !insideTouchRoot && !props.disabled}\n {...props}\n slideThreshold={20}\n usePointerHover\n vkuiClass={classes}\n Component={Component}\n getRootRef={containerRef}\n onBlur={callMultiple(onBlur, props.onBlur)}\n onFocus={callMultiple(onFocus, props.onFocus)}\n {...(props.disabled ? {} : handlers)}\n >\n <TappableContext.Provider value={childContext}>\n {children}\n </TappableContext.Provider>\n {needWaves && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__waves\">\n {clicks.map((wave) => (\n <span\n key={wave.id}\n vkuiClass=\"Tappable__wave\"\n style={{ top: wave.y, left: wave.x }}\n />\n ))}\n </span>\n )}\n {hasHover && hoverMode === \"background\" && (\n <span aria-hidden=\"true\" vkuiClass=\"Tappable__hoverShadow\" />\n )}\n {!props.disabled && isPresetFocusVisibleMode && (\n <FocusVisible mode={focusVisibleMode as FocusVisibleMode} />\n )}\n </Touch>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tappable\n */\nexport const Tappable = withAdaptivity(TappableComponent, {\n sizeX: true,\n hasMouse: true,\n deviceHasHover: true,\n});\n\nTappable.displayName = \"Tappable\";\n"],"file":"Tappable.js"}
@@ -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"}
@@ -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);