@vkontakte/vkui 4.35.1 → 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 (654) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +21609 -18311
  4. package/.cache/ts/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  6. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  7. package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  8. package/.cache/ts/src/components/Chip/Chip.d.ts +12 -5
  9. package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +5 -26
  10. package/.cache/ts/src/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  11. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  13. package/.cache/ts/src/components/DateInput/DateInput.d.ts +4 -2
  14. package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  15. package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  16. package/.cache/ts/src/components/FormField/FormField.d.ts +2 -1
  17. package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  18. package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +1 -0
  19. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  20. package/.cache/ts/src/components/List/List.d.ts +2 -1
  21. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +13 -1
  22. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -2
  23. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  24. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  25. package/.cache/ts/src/components/Textarea/Textarea.d.ts +3 -2
  26. package/.cache/ts/src/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  27. package/{dist/cssm/components/ChipsSelect → .cache/ts/src/hooks}/useChipsSelect.d.ts +4 -4
  28. package/.cache/ts/src/index.d.ts +3 -0
  29. package/.cache/ts/src/tokenized/index.d.ts +56 -0
  30. package/README.md +3 -2
  31. package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -4
  32. package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
  33. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +24 -0
  34. package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  35. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +10 -8
  36. package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  37. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -5
  38. package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  39. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -39
  40. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  41. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  42. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  43. package/dist/cjs/components/Alert/Alert.js +11 -12
  44. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  45. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  46. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  47. package/dist/cjs/components/Avatar/Avatar.js +4 -17
  48. package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
  49. package/dist/cjs/components/Banner/Banner.js +41 -47
  50. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  51. package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
  52. package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
  53. package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
  54. package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
  55. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  56. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  57. package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
  58. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  59. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
  60. package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  61. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
  62. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  63. package/dist/cjs/components/CustomSelect/CustomSelect.js +33 -32
  64. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  65. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +3 -0
  66. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  67. package/dist/cjs/components/DateInput/DateInput.js +4 -2
  68. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  69. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
  70. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  71. package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
  72. package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
  73. package/dist/cjs/components/FormField/FormField.js +4 -2
  74. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  75. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
  76. package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  77. package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
  78. package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
  79. package/dist/cjs/components/Header/Header.js +3 -11
  80. package/dist/cjs/components/Header/Header.js.map +1 -1
  81. package/dist/cjs/components/IconButton/IconButton.js +4 -3
  82. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  83. package/dist/cjs/components/Input/Input.js +4 -2
  84. package/dist/cjs/components/Input/Input.js.map +1 -1
  85. package/dist/cjs/components/List/List.js.map +1 -1
  86. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
  87. package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  88. package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
  89. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  90. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
  91. package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  92. package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
  93. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  94. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
  95. package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  96. package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
  97. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  98. package/dist/cjs/components/Panel/Panel.js +4 -10
  99. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  100. package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
  101. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  102. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
  103. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  104. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  105. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  106. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
  107. package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  108. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +5 -4
  109. package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  110. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
  111. package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  112. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
  113. package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  114. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
  115. package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  116. package/dist/cjs/components/Popper/Popper.js +53 -50
  117. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  118. package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
  119. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  120. package/dist/cjs/components/Search/Search.js +7 -9
  121. package/dist/cjs/components/Search/Search.js.map +1 -1
  122. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
  123. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  124. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
  125. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  126. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
  127. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  128. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
  129. package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  130. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
  131. package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  132. package/dist/cjs/components/Tappable/Tappable.js +8 -16
  133. package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
  134. package/dist/cjs/components/Textarea/Textarea.js +4 -2
  135. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  136. package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
  137. package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
  138. package/dist/cjs/components/View/ViewInfinite.js +1 -10
  139. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  140. package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
  141. package/dist/cjs/hooks/useChipsInput.js.map +1 -0
  142. package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  143. package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
  144. package/dist/cjs/index.js +8 -0
  145. package/dist/cjs/index.js.map +1 -1
  146. package/dist/cjs/lib/animate.js +2 -2
  147. package/dist/cjs/lib/animate.js.map +1 -1
  148. package/dist/cjs/lib/platform.js +9 -4
  149. package/dist/cjs/lib/platform.js.map +1 -1
  150. package/dist/cjs/lib/testing.js +2 -2
  151. package/dist/cjs/lib/testing.js.map +1 -1
  152. package/dist/cjs/lib/touch.js +2 -2
  153. package/dist/cjs/lib/touch.js.map +1 -1
  154. package/dist/cjs/tokenized/index.js +232 -0
  155. package/dist/cjs/tokenized/index.js.map +1 -1
  156. package/dist/components/ActionSheet/ActionSheet.js +4 -4
  157. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  158. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  159. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  160. package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  161. package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
  162. package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  163. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  164. package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  165. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  166. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
  167. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  168. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  169. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  170. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  171. package/dist/components/Alert/Alert.js +12 -12
  172. package/dist/components/Alert/Alert.js.map +1 -1
  173. package/dist/components/AppRoot/AppRoot.js +2 -5
  174. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  175. package/dist/components/Avatar/Avatar.js +4 -17
  176. package/dist/components/Avatar/Avatar.js.map +1 -1
  177. package/dist/components/Banner/Banner.js +41 -48
  178. package/dist/components/Banner/Banner.js.map +1 -1
  179. package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  180. package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
  181. package/dist/components/CalendarDay/CalendarDay.js +4 -21
  182. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  183. package/dist/components/CardScroll/CardScroll.js +1 -3
  184. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  185. package/dist/components/Chip/Chip.d.ts +12 -5
  186. package/dist/components/Chip/Chip.js.map +1 -1
  187. package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
  188. package/dist/components/ChipsInput/ChipsInput.js +14 -183
  189. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  190. package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  191. package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
  192. package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  193. package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  194. package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
  195. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  196. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  197. package/dist/components/CustomSelect/CustomSelect.js +33 -32
  198. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  199. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  200. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  201. package/dist/components/DateInput/DateInput.d.ts +4 -2
  202. package/dist/components/DateInput/DateInput.js +4 -2
  203. package/dist/components/DateInput/DateInput.js.map +1 -1
  204. package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  205. package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
  206. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  207. package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  208. package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
  209. package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
  210. package/dist/components/FormField/FormField.d.ts +2 -1
  211. package/dist/components/FormField/FormField.js +4 -2
  212. package/dist/components/FormField/FormField.js.map +1 -1
  213. package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  214. package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  215. package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  216. package/dist/components/FormStatus/FormStatus.d.ts +1 -0
  217. package/dist/components/FormStatus/FormStatus.js +4 -4
  218. package/dist/components/FormStatus/FormStatus.js.map +1 -1
  219. package/dist/components/Header/Header.js +3 -10
  220. package/dist/components/Header/Header.js.map +1 -1
  221. package/dist/components/IconButton/IconButton.js +4 -3
  222. package/dist/components/IconButton/IconButton.js.map +1 -1
  223. package/dist/components/Input/Input.d.ts +1 -1
  224. package/dist/components/Input/Input.js +4 -2
  225. package/dist/components/Input/Input.js.map +1 -1
  226. package/dist/components/List/List.d.ts +2 -1
  227. package/dist/components/List/List.js.map +1 -1
  228. package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
  229. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  230. package/dist/components/ModalPage/ModalPage.d.ts +13 -1
  231. package/dist/components/ModalPage/ModalPage.js +12 -10
  232. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  233. package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
  234. package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  235. package/dist/components/ModalRoot/ModalRoot.js +4 -18
  236. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  237. package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
  238. package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  239. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
  240. package/dist/components/NativeSelect/NativeSelect.js +4 -2
  241. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  242. package/dist/components/Panel/Panel.js +4 -8
  243. package/dist/components/Panel/Panel.js.map +1 -1
  244. package/dist/components/PanelHeader/PanelHeader.js +2 -11
  245. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  246. package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  247. package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  248. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  249. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  250. package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  251. package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  252. package/dist/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  253. package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  254. package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  255. package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  256. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  257. package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  258. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  259. package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  260. package/dist/components/Popper/Popper.js +53 -50
  261. package/dist/components/Popper/Popper.js.map +1 -1
  262. package/dist/components/PromoBanner/PromoBanner.js +1 -4
  263. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  264. package/dist/components/Search/Search.js +6 -8
  265. package/dist/components/Search/Search.js.map +1 -1
  266. package/dist/components/Select/Select.d.ts +1 -1
  267. package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  268. package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
  269. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  270. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  271. package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
  272. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  273. package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
  274. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  275. package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
  276. package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  277. package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
  278. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  279. package/dist/components/Tappable/Tappable.js +3 -10
  280. package/dist/components/Tappable/Tappable.js.map +1 -1
  281. package/dist/components/Textarea/Textarea.d.ts +3 -2
  282. package/dist/components/Textarea/Textarea.js +4 -2
  283. package/dist/components/Textarea/Textarea.js.map +1 -1
  284. package/dist/components/UsersStack/UsersStack.js +69 -28
  285. package/dist/components/UsersStack/UsersStack.js.map +1 -1
  286. package/dist/components/View/ViewInfinite.js +1 -10
  287. package/dist/components/View/ViewInfinite.js.map +1 -1
  288. package/dist/components.css +93 -15
  289. package/dist/components.css.map +1 -1
  290. package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
  291. package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
  292. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  293. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
  294. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
  295. package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
  296. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
  297. package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
  298. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
  299. package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
  300. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
  301. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
  302. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
  303. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  304. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
  305. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
  306. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  307. package/dist/cssm/components/Alert/Alert.css +7 -1
  308. package/dist/cssm/components/Alert/Alert.js +12 -12
  309. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  310. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  311. package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
  312. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  313. package/dist/cssm/components/Avatar/Avatar.js +4 -17
  314. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  315. package/dist/cssm/components/Banner/Banner.js +41 -48
  316. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  317. package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
  318. package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
  319. package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
  320. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  321. package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
  322. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  323. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  324. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  325. package/dist/cssm/components/Chip/Chip.css +1 -1
  326. package/dist/cssm/components/Chip/Chip.d.ts +12 -5
  327. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  328. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  329. package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
  330. package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
  331. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  332. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
  333. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
  334. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
  335. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
  336. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  337. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
  338. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
  339. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  340. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  341. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  342. package/dist/cssm/components/CustomSelect/CustomSelect.js +33 -32
  343. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  344. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -0
  345. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  346. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  347. package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
  348. package/dist/cssm/components/DateInput/DateInput.js +4 -2
  349. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  350. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  351. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
  352. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
  353. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  354. package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
  355. package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
  356. package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
  357. package/dist/cssm/components/FormField/FormField.css +4 -4
  358. package/dist/cssm/components/FormField/FormField.d.ts +2 -1
  359. package/dist/cssm/components/FormField/FormField.js +4 -2
  360. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  361. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  362. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  363. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
  364. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
  365. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
  366. package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
  367. package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
  368. package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
  369. package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
  370. package/dist/cssm/components/Header/Header.css +1 -1
  371. package/dist/cssm/components/Header/Header.js +3 -10
  372. package/dist/cssm/components/Header/Header.js.map +1 -1
  373. package/dist/cssm/components/IconButton/IconButton.js +4 -3
  374. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  375. package/dist/cssm/components/Input/Input.css +1 -1
  376. package/dist/cssm/components/Input/Input.d.ts +1 -1
  377. package/dist/cssm/components/Input/Input.js +4 -2
  378. package/dist/cssm/components/Input/Input.js.map +1 -1
  379. package/dist/cssm/components/List/List.d.ts +2 -1
  380. package/dist/cssm/components/List/List.js +1 -1
  381. package/dist/cssm/components/List/List.js.map +1 -1
  382. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  383. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
  384. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  385. package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
  386. package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
  387. package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
  388. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  389. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  390. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
  391. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
  392. package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
  393. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  394. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
  395. package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
  396. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
  397. package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
  398. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  399. package/dist/cssm/components/Panel/Panel.css +19 -1
  400. package/dist/cssm/components/Panel/Panel.js +4 -8
  401. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  402. package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
  403. package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
  404. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  405. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
  406. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
  407. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  408. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
  409. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  410. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
  411. package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
  412. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
  413. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
  414. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
  415. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  416. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
  417. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
  418. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
  419. package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
  420. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
  421. package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
  422. package/dist/cssm/components/Popper/Popper.js +53 -50
  423. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  424. package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
  425. package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
  426. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  427. package/dist/cssm/components/Search/Search.css +27 -1
  428. package/dist/cssm/components/Search/Search.js +6 -8
  429. package/dist/cssm/components/Search/Search.js.map +1 -1
  430. package/dist/cssm/components/Select/Select.css +1 -1
  431. package/dist/cssm/components/Select/Select.d.ts +1 -1
  432. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
  433. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
  434. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  435. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  436. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
  437. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  438. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
  439. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  440. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  441. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  442. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
  443. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
  444. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  445. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
  446. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  447. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  448. package/dist/cssm/components/Tappable/Tappable.js +3 -10
  449. package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
  450. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  451. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
  452. package/dist/cssm/components/Textarea/Textarea.js +4 -2
  453. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  454. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  455. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  456. package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
  457. package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
  458. package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
  459. package/dist/cssm/components/View/ViewInfinite.js +1 -10
  460. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  461. package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  462. package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
  463. package/dist/cssm/hooks/useChipsInput.js.map +1 -0
  464. package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
  465. package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
  466. package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
  467. package/dist/cssm/index.d.ts +3 -0
  468. package/dist/cssm/index.js +1 -0
  469. package/dist/cssm/index.js.map +1 -1
  470. package/dist/cssm/lib/animate.js +1 -1
  471. package/dist/cssm/lib/animate.js.map +1 -1
  472. package/dist/cssm/lib/platform.js +8 -3
  473. package/dist/cssm/lib/platform.js.map +1 -1
  474. package/dist/cssm/lib/testing.js +1 -1
  475. package/dist/cssm/lib/testing.js.map +1 -1
  476. package/dist/cssm/lib/touch.js +1 -1
  477. package/dist/cssm/lib/touch.js.map +1 -1
  478. package/dist/cssm/styles/components.css +93 -15
  479. package/dist/cssm/styles/themes.css +1 -1
  480. package/dist/cssm/styles/unstable.css +1 -1
  481. package/dist/cssm/tokenized/index.d.ts +56 -0
  482. package/dist/cssm/tokenized/index.js +29 -0
  483. package/dist/cssm/tokenized/index.js.map +1 -1
  484. package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
  485. package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
  486. package/dist/hooks/useChipsInput.js.map +1 -0
  487. package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
  488. package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
  489. package/dist/hooks/useChipsSelect.js.map +1 -0
  490. package/dist/index.d.ts +3 -0
  491. package/dist/index.js +1 -0
  492. package/dist/index.js.map +1 -1
  493. package/dist/lib/animate.js +1 -1
  494. package/dist/lib/animate.js.map +1 -1
  495. package/dist/lib/platform.js +8 -3
  496. package/dist/lib/platform.js.map +1 -1
  497. package/dist/lib/testing.js +1 -1
  498. package/dist/lib/testing.js.map +1 -1
  499. package/dist/lib/touch.js +1 -1
  500. package/dist/lib/touch.js.map +1 -1
  501. package/dist/tokenized/index.d.ts +56 -0
  502. package/dist/tokenized/index.js +29 -0
  503. package/dist/tokenized/index.js.map +1 -1
  504. package/dist/unstable.css +1 -1
  505. package/dist/unstable.css.map +1 -1
  506. package/dist/vkui.css +94 -16
  507. package/dist/vkui.css.map +1 -1
  508. package/package.json +9 -9
  509. package/src/components/ActionSheet/ActionSheet.css +31 -59
  510. package/src/components/ActionSheet/ActionSheet.tsx +4 -7
  511. package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
  512. package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
  513. package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
  514. package/src/components/ActionSheet/Readme.md +6 -30
  515. package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
  516. package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
  517. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
  518. package/src/components/Alert/Alert.css +79 -79
  519. package/src/components/Alert/Alert.tsx +14 -14
  520. package/src/components/Alert/Readme.md +83 -104
  521. package/src/components/AppRoot/AppRoot.css +2 -1
  522. package/src/components/AppRoot/AppRoot.tsx +1 -4
  523. package/src/components/Avatar/Avatar.tsx +15 -17
  524. package/src/components/Avatar/Readme.md +3 -3
  525. package/src/components/Banner/Banner.tsx +58 -63
  526. package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
  527. package/src/components/ButtonGroup/Readme.md +13 -11
  528. package/src/components/Calendar/Readme.md +3 -0
  529. package/src/components/CalendarDay/CalendarDay.tsx +21 -20
  530. package/src/components/CalendarRange/Readme.md +3 -0
  531. package/src/components/CardScroll/CardScroll.tsx +1 -2
  532. package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
  533. package/src/components/Cell/CellDragger/CellDragger.css +1 -1
  534. package/src/components/Chip/Chip.css +1 -0
  535. package/src/components/Chip/Chip.tsx +14 -2
  536. package/src/components/ChipsInput/ChipsInput.css +0 -71
  537. package/src/components/ChipsInput/ChipsInput.tsx +20 -220
  538. package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
  539. package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
  540. package/src/components/ChipsSelect/ChipsSelect.css +8 -0
  541. package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
  542. package/src/components/CustomSelect/CustomSelect.css +1 -0
  543. package/src/components/CustomSelect/CustomSelect.tsx +3 -4
  544. package/src/components/CustomSelect/Readme.md +8 -2
  545. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +2 -0
  546. package/src/components/DateInput/DateInput.css +1 -1
  547. package/src/components/DateInput/DateInput.tsx +6 -3
  548. package/src/components/DateInput/Readme.md +13 -0
  549. package/src/components/DateRangeInput/DateRangeInput.css +1 -1
  550. package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
  551. package/src/components/DateRangeInput/Readme.md +13 -0
  552. package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
  553. package/src/components/Epic/Readme.md +10 -5
  554. package/src/components/FormField/FormField.css +58 -6
  555. package/src/components/FormField/FormField.tsx +3 -0
  556. package/src/components/FormItem/FormItem.css +5 -3
  557. package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
  558. package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
  559. package/src/components/FormLayoutGroup/Readme.md +58 -48
  560. package/src/components/FormStatus/FormStatus.css +8 -5
  561. package/src/components/FormStatus/FormStatus.tsx +4 -8
  562. package/src/components/Gallery/Readme.md +64 -18
  563. package/src/components/Header/Header.css +8 -12
  564. package/src/components/Header/Header.tsx +9 -8
  565. package/src/components/HorizontalCell/Readme.md +1 -1
  566. package/src/components/IconButton/IconButton.tsx +2 -2
  567. package/src/components/Input/Input.css +1 -1
  568. package/src/components/Input/Input.tsx +2 -0
  569. package/src/components/List/List.tsx +3 -4
  570. package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
  571. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
  572. package/src/components/ModalDismissButton/Readme.md +1 -1
  573. package/src/components/ModalPage/ModalPage.css +69 -63
  574. package/src/components/ModalPage/ModalPage.tsx +24 -11
  575. package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
  576. package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
  577. package/src/components/ModalRoot/ModalRoot.tsx +24 -24
  578. package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
  579. package/src/components/ModalRoot/Readme.md +8 -3
  580. package/src/components/NativeSelect/NativeSelect.tsx +5 -2
  581. package/src/components/Panel/Panel.css +52 -24
  582. package/src/components/Panel/Panel.tsx +7 -9
  583. package/src/components/PanelHeader/PanelHeader.css +28 -21
  584. package/src/components/PanelHeader/PanelHeader.tsx +11 -12
  585. package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
  586. package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
  587. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
  588. package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
  589. package/src/components/PanelHeaderContent/PanelHeaderContent.css +17 -23
  590. package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +11 -5
  591. package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
  592. package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
  593. package/src/components/PanelHeaderContext/Readme.md +85 -101
  594. package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
  595. package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
  596. package/src/components/Popper/Popper.tsx +37 -31
  597. package/src/components/PromoBanner/PromoBanner.css +10 -22
  598. package/src/components/PromoBanner/PromoBanner.tsx +1 -5
  599. package/src/components/RichTooltip/Readme.md +2 -2
  600. package/src/components/Search/Search.css +134 -48
  601. package/src/components/Search/Search.tsx +13 -8
  602. package/src/components/Select/Select.css +2 -2
  603. package/src/components/SelectMimicry/Readme.md +3 -3
  604. package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
  605. package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
  606. package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
  607. package/src/components/Snackbar/Readme.md +12 -3
  608. package/src/components/Spacing/Readme.md +20 -20
  609. package/src/components/Spacing/Spacing.css +5 -1
  610. package/src/components/SplitLayout/Readme.md +1 -1
  611. package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
  612. package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
  613. package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
  614. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
  615. package/src/components/TabbarItem/Readme.md +6 -1
  616. package/src/components/Tabs/Readme.md +10 -2
  617. package/src/components/TabsItem/TabsItem.css +1 -1
  618. package/src/components/Tappable/Tappable.tsx +9 -11
  619. package/src/components/Textarea/Textarea.css +1 -1
  620. package/src/components/Textarea/Textarea.tsx +5 -2
  621. package/src/components/Tooltip/Readme.md +2 -2
  622. package/src/components/Touch/Readme.md +4 -4
  623. package/src/components/Typography/Headline/Headline.css +10 -0
  624. package/src/components/Typography/Text/Text.css +10 -0
  625. package/src/components/UsersStack/UsersStack.css +42 -0
  626. package/src/components/UsersStack/UsersStack.tsx +71 -15
  627. package/src/components/View/ViewInfinite.tsx +14 -14
  628. package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
  629. package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
  630. package/src/index.ts +3 -0
  631. package/src/lib/animate.ts +1 -1
  632. package/src/lib/platform.ts +12 -6
  633. package/src/lib/testing.ts +1 -1
  634. package/src/lib/touch.ts +1 -1
  635. package/src/styles/components.css +1 -0
  636. package/src/tokenized/index.ts +85 -0
  637. package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
  638. package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
  639. package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
  640. package/dist/cjs/components/UsersStack/masks.js +0 -29
  641. package/dist/cjs/components/UsersStack/masks.js.map +0 -1
  642. package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
  643. package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
  644. package/dist/components/UsersStack/masks.d.ts +0 -1
  645. package/dist/components/UsersStack/masks.js +0 -20
  646. package/dist/components/UsersStack/masks.js.map +0 -1
  647. package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
  648. package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
  649. package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
  650. package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
  651. package/dist/cssm/components/UsersStack/masks.js +0 -20
  652. package/dist/cssm/components/UsersStack/masks.js.map +0 -1
  653. package/src/components/DropdownIcon/DropdownIcon.css +0 -3
  654. package/src/components/UsersStack/masks.tsx +0 -69
@@ -41,32 +41,61 @@ var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementCha
41
41
  var ARROW_PADDING = 8;
42
42
  var ARROW_WIDTH = 20;
43
43
  var ARROW_HEIGHT = 8;
44
+ var preventOverflowModifier = {
45
+ name: "preventOverflow",
46
+ options: {
47
+ mainAxis: false
48
+ }
49
+ };
50
+ var flipModifier = {
51
+ name: "flip"
52
+ };
53
+ var arrowModifier = {
54
+ name: "arrow",
55
+ options: {
56
+ padding: ARROW_PADDING
57
+ }
58
+ };
59
+ var sameWidthModifier = {
60
+ name: "sameWidth",
61
+ enabled: true,
62
+ phase: "beforeWrite",
63
+ requires: ["computeStyles"],
64
+ fn: function fn(_ref) {
65
+ var state = _ref.state;
66
+ state.styles.popper.width = "".concat(state.rects.reference.width, "px");
67
+ },
68
+ effect: function effect(_ref2) {
69
+ var state = _ref2.state;
70
+ state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
71
+ }
72
+ };
44
73
  /**
45
74
  * @see https://vkcom.github.io/VKUI/#/Popper
46
75
  */
47
76
 
48
- var Popper = function Popper(_ref) {
77
+ var Popper = function Popper(_ref3) {
49
78
  var _targetRef$current3;
50
79
 
51
- var targetRef = _ref.targetRef,
52
- children = _ref.children,
53
- getRef = _ref.getRef,
54
- _ref$placement = _ref.placement,
55
- placement = _ref$placement === void 0 ? "bottom-start" : _ref$placement,
56
- onPlacementChange = _ref.onPlacementChange,
57
- arrow = _ref.arrow,
58
- arrowClassName = _ref.arrowClassName,
59
- sameWidth = _ref.sameWidth,
60
- _ref$offsetDistance = _ref.offsetDistance,
61
- offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
62
- _ref$offsetSkidding = _ref.offsetSkidding,
63
- offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
64
- _ref$forcePortal = _ref.forcePortal,
65
- forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
66
- compStyles = _ref.style,
67
- customModifiers = _ref.customModifiers,
68
- renderContent = _ref.renderContent,
69
- restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
80
+ var targetRef = _ref3.targetRef,
81
+ children = _ref3.children,
82
+ getRef = _ref3.getRef,
83
+ _ref3$placement = _ref3.placement,
84
+ placement = _ref3$placement === void 0 ? "bottom-start" : _ref3$placement,
85
+ onPlacementChange = _ref3.onPlacementChange,
86
+ arrow = _ref3.arrow,
87
+ arrowClassName = _ref3.arrowClassName,
88
+ sameWidth = _ref3.sameWidth,
89
+ _ref3$offsetDistance = _ref3.offsetDistance,
90
+ offsetDistance = _ref3$offsetDistance === void 0 ? 8 : _ref3$offsetDistance,
91
+ _ref3$offsetSkidding = _ref3.offsetSkidding,
92
+ offsetSkidding = _ref3$offsetSkidding === void 0 ? 0 : _ref3$offsetSkidding,
93
+ _ref3$forcePortal = _ref3.forcePortal,
94
+ forcePortal = _ref3$forcePortal === void 0 ? true : _ref3$forcePortal,
95
+ compStyles = _ref3.style,
96
+ customModifiers = _ref3.customModifiers,
97
+ renderContent = _ref3.renderContent,
98
+ restProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
70
99
 
71
100
  var _React$useState = React.useState(null),
72
101
  _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
@@ -81,45 +110,19 @@ var Popper = function Popper(_ref) {
81
110
  var platform = (0, _usePlatform.usePlatform)();
82
111
  var setExternalRef = (0, _useExternRef.useExternRef)(getRef, setPopperNode);
83
112
  var modifiers = React.useMemo(function () {
84
- var modifiers = [{
85
- name: "preventOverflow",
86
- options: {
87
- mainAxis: false
88
- }
89
- }, {
113
+ var modifiers = [preventOverflowModifier, {
90
114
  name: "offset",
91
115
  options: {
92
116
  offset: [arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding, arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance]
93
117
  }
94
- }, {
95
- name: "flip"
96
- }];
118
+ }, flipModifier];
97
119
 
98
120
  if (arrow) {
99
- modifiers.push({
100
- name: "arrow",
101
- options: {
102
- padding: ARROW_PADDING
103
- }
104
- });
121
+ modifiers.push(arrowModifier);
105
122
  }
106
123
 
107
124
  if (sameWidth) {
108
- var _sameWidth = {
109
- name: "sameWidth",
110
- enabled: true,
111
- phase: "beforeWrite",
112
- requires: ["computeStyles"],
113
- fn: function fn(_ref2) {
114
- var state = _ref2.state;
115
- state.styles.popper.width = "".concat(state.rects.reference.width, "px");
116
- },
117
- effect: function effect(_ref3) {
118
- var state = _ref3.state;
119
- state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
120
- }
121
- };
122
- modifiers.push(_sameWidth);
125
+ modifiers.push(sameWidthModifier);
123
126
  }
124
127
 
125
128
  if (customModifiers) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","renderContent","restProps","React","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
1
+ {"version":3,"sources":["../../../../src/components/Popper/Popper.tsx"],"names":["ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","preventOverflowModifier","name","options","mainAxis","flipModifier","arrowModifier","padding","sameWidthModifier","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","style","offsetWidth","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","customModifiers","renderContent","restProps","React","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","offset","push","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nconst preventOverflowModifier: Modifier<string> = {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n};\n\nconst flipModifier: Modifier<string> = {\n name: \"flip\",\n};\n\nconst arrowModifier: Modifier<string> = {\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n};\n\nconst sameWidthModifier: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n preventOverflowModifier,\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n flipModifier,\n ];\n\n if (arrow) {\n modifiers.push(arrowModifier);\n }\n\n if (sameWidth) {\n modifiers.push(sameWidthModifier);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
@@ -33,10 +33,6 @@ var _Avatar = require("../Avatar/Avatar");
33
33
 
34
34
  var _Caption = require("../Typography/Caption/Caption");
35
35
 
36
- var _usePlatform = require("../../hooks/usePlatform");
37
-
38
- var _getClassName = require("../../helpers/getClassName");
39
-
40
36
  var _warnOnce = require("../../lib/warnOnce");
41
37
 
42
38
  var _excluded = ["bannerData", "onClose", "isCloseButtonHidden"];
@@ -51,7 +47,6 @@ var PromoBanner = function PromoBanner(_ref) {
51
47
  onClose = _ref.onClose,
52
48
  isCloseButtonHidden = _ref.isCloseButtonHidden,
53
49
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
- var platform = (0, _usePlatform.usePlatform)();
55
50
  var ageRestrictions = bannerData.ageRestrictions != null ? parseInt(bannerData.ageRestrictions) : bannerData.ageRestriction;
56
51
 
57
52
  if (bannerData.ageRestriction && process.env.NODE_ENV === "development") {
@@ -77,7 +72,7 @@ var PromoBanner = function PromoBanner(_ref) {
77
72
  }
78
73
  }, [statsPixels.playbackStarted]);
79
74
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({
80
- vkuiClass: (0, _getClassName.getClassName)("PromoBanner", platform)
75
+ vkuiClass: "PromoBanner"
81
76
  }, restProps), (0, _jsxRuntime.createScopedElement)("div", {
82
77
  vkuiClass: "PromoBanner__head"
83
78
  }, (0, _jsxRuntime.createScopedElement)(_Caption.Caption, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","restProps","platform","ageRestrictions","parseInt","ageRestriction","process","env","NODE_ENV","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport { Button } from \"../Button/Button\";\nimport { SimpleCell } from \"../SimpleCell/SimpleCell\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst warn = warnOnce(\"PromoBanner\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n ...restProps\n}: PromoBannerProps) => {\n const platform = usePlatform();\n\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n if (bannerData.ageRestriction && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions\"\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass={getClassName(\"PromoBanner\", platform)} {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption vkuiClass=\"PromoBanner__age\">{ageRestrictions}+</Caption>\n )}\n\n {!isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"file":"PromoBanner.js"}
1
+ {"version":3,"sources":["../../../../src/components/PromoBanner/PromoBanner.tsx"],"names":["warn","PromoBanner","bannerData","onClose","isCloseButtonHidden","restProps","ageRestrictions","parseInt","ageRestriction","process","env","NODE_ENV","React","useState","currentPixel","setCurrentPixel","statsPixels","useMemo","statistics","reduce","acc","item","type","url","onClick","useCallback","click","useEffect","playbackStarted","advertisingLabel","trackingLink","iconLink","title","ctaText","domain","length"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { Icon24Dismiss } from \"@vkontakte/icons\";\nimport { Button } from \"../Button/Button\";\nimport { SimpleCell } from \"../SimpleCell/SimpleCell\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./PromoBanner.css\";\n\ntype StatsType =\n | \"playbackStarted\" // Начало показа\n | \"click\"; // Клик по баннеру\n\ntype BannerData = {\n title?: string;\n url_types?: string; // eslint-disable-line camelcase\n bannerID?: string;\n imageWidth?: number;\n imageHeight?: number;\n imageLink?: string;\n trackingLink?: string;\n type?: string;\n iconWidth?: number;\n domain?: string;\n ctaText?: string;\n advertisingLabel?: string;\n iconLink?: string;\n statistics?: Array<{ type: StatsType; url: string }>;\n openInBrowser?: boolean;\n iconHeight?: number;\n directLink?: boolean;\n navigationType?: string;\n description?: string;\n ageRestrictions?: string;\n /** @deprecated */\n ageRestriction?: number;\n};\n\nexport interface PromoBannerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Данные рекламного баннера, полученные из VKWebAppGetAds */\n bannerData: BannerData;\n /** Флаг скрытия кнопки закрытия рекламы */\n isCloseButtonHidden?: boolean;\n /** Хандлер закрытия рекламы */\n onClose: () => void;\n}\n\nconst warn = warnOnce(\"PromoBanner\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/PromoBanner\n */\nexport const PromoBanner = ({\n bannerData = {},\n onClose,\n isCloseButtonHidden,\n ...restProps\n}: PromoBannerProps) => {\n const ageRestrictions =\n bannerData.ageRestrictions != null\n ? parseInt(bannerData.ageRestrictions)\n : bannerData.ageRestriction;\n\n if (bannerData.ageRestriction && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство bannerData.ageRestriction устарело и будет удалено в 5.0.0. Используйте bannerData.ageRestrictions\"\n );\n }\n\n const [currentPixel, setCurrentPixel] = React.useState(\"\");\n\n const statsPixels = React.useMemo(\n () =>\n (bannerData.statistics\n ? bannerData.statistics.reduce(\n (acc, item) => ({ ...acc, [item.type]: item.url }),\n {}\n )\n : {}) as Record<StatsType, string | void>,\n [bannerData.statistics]\n );\n\n const onClick = React.useCallback(\n () => setCurrentPixel(statsPixels.click || \"\"),\n [statsPixels.click]\n );\n\n React.useEffect(() => {\n if (statsPixels.playbackStarted) {\n setCurrentPixel(statsPixels.playbackStarted);\n }\n }, [statsPixels.playbackStarted]);\n\n return (\n <div vkuiClass=\"PromoBanner\" {...restProps}>\n <div vkuiClass=\"PromoBanner__head\">\n <Caption vkuiClass=\"PromoBanner__label\">\n {bannerData.advertisingLabel || \"Advertisement\"}\n </Caption>\n {ageRestrictions != null && (\n <Caption vkuiClass=\"PromoBanner__age\">{ageRestrictions}+</Caption>\n )}\n\n {!isCloseButtonHidden && (\n <div vkuiClass=\"PromoBanner__close\" onClick={onClose}>\n <Icon24Dismiss />\n </div>\n )}\n </div>\n <SimpleCell\n href={bannerData.trackingLink}\n onClick={onClick}\n rel=\"nofollow noopener noreferrer\"\n target=\"_blank\"\n before={\n <Avatar\n mode=\"image\"\n size={48}\n src={bannerData.iconLink}\n alt={bannerData.title}\n />\n }\n after={<Button mode=\"outline\">{bannerData.ctaText}</Button>}\n description={bannerData.domain}\n >\n {bannerData.title}\n </SimpleCell>\n\n {currentPixel.length > 0 && (\n <div vkuiClass=\"PromoBanner__pixels\">\n <img src={currentPixel} alt=\"\" />\n </div>\n )}\n </div>\n );\n};\n"],"file":"PromoBanner.js"}
@@ -23,8 +23,6 @@ var _classNames = require("../../lib/classNames");
23
23
 
24
24
  var _withPlatform = require("../../hoc/withPlatform");
25
25
 
26
- var _getClassName = require("../../helpers/getClassName");
27
-
28
26
  var _icons = require("@vkontakte/icons");
29
27
 
30
28
  var _platform = require("../../lib/platform");
@@ -45,6 +43,8 @@ var _useExternRef = require("../../hooks/useExternRef");
45
43
 
46
44
  var _useEnsuredControl3 = require("../../hooks/useEnsuredControl");
47
45
 
46
+ var _useAdaptivity2 = require("../../hooks/useAdaptivity");
47
+
48
48
  var _excluded = ["platform", "children"],
49
49
  _excluded2 = ["before", "className", "defaultValue", "placeholder", "after", "getRef", "platform", "icon", "onIconClick", "style", "autoComplete"];
50
50
 
@@ -109,6 +109,9 @@ var SearchComponent = function SearchComponent(_ref2) {
109
109
  value = _useEnsuredControl2[0],
110
110
  onChange = _useEnsuredControl2[1];
111
111
 
112
+ var _useAdaptivity = (0, _useAdaptivity2.useAdaptivity)(),
113
+ sizeY = _useAdaptivity.sizeY;
114
+
112
115
  var onFocus = function onFocus(e) {
113
116
  setFocused(true);
114
117
  inputProps.onFocus && inputProps.onFocus(e);
@@ -141,13 +144,8 @@ var SearchComponent = function SearchComponent(_ref2) {
141
144
  onCancel();
142
145
  }, [inputRef, onCancel]);
143
146
  return (0, _jsxRuntime.createScopedElement)("div", {
144
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
145
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("Search", platform), {
146
- "Search--focused": isFocused,
147
- "Search--has-value": !!value,
148
- "Search--has-after": !!after,
149
- "Search--has-icon": !!icon
150
- }),
147
+ vkuiClass: (0, _classNames.classNames)("Search", platform === _platform.VKCOM && "Search--vkcom", platform === _platform.IOS && "Search--ios", // TODO: V5 перенести на новую адаптивность
148
+ "Search--sizeY-".concat(sizeY), isFocused && "Search--focused", value && "Search--has-value", icon && "Search--has-after", after && "Search--has-icon"),
151
149
  className: className,
152
150
  style: style
153
151
  }, (0, _jsxRuntime.createScopedElement)("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["SearchPlaceholderTypography","platform","children","restProps","IOS","VKCOM","ANDROID","SearchComponent","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","noop","style","autoComplete","inputProps","inputRef","React","useState","isFocused","setFocused","value","onChange","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","Search","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AASA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,OAII;AAAA,MAHtCC,QAGsC,QAHtCA,QAGsC;AAAA,MAFtCC,QAEsC,QAFtCA,QAEsC;AAAA,MADnCC,SACmC;;AACtC,UAAQF,QAAR;AACE,SAAKG,aAAL;AACE,aACE,qCAAC,YAAD,6BAAWD,SAAX;AAAsB,QAAA,KAAK,EAAC,GAA5B;AAAgC,QAAA,MAAM,EAAC;AAAvC,UACGD,QADH,CADF;;AAKF,SAAKG,eAAL;AACE,aAAO,qCAAC,UAAD,EAAUF,SAAV,EAAsBD,QAAtB,CAAP;;AACF,SAAKI,iBAAL;AACA;AACE,aACE,qCAAC,kBAAD,6BAAcH,SAAd;AAAyB,QAAA,MAAM,EAAC;AAAhC,UACGD,QADH,CADF;AAXJ;AAiBD,CAtBD;;AAsCA;AACA;AACA;AACA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,QAaL;AAAA,2BAZjBC,MAYiB;AAAA,MAZjBA,MAYiB,6BAZR,qCAAC,0BAAD;AAAqB;AAArB,IAYQ;AAAA,MAXjBC,SAWiB,SAXjBA,SAWiB;AAAA,iCAVjBC,YAUiB;AAAA,MAVjBA,YAUiB,mCAVF,EAUE;AAAA,gCATjBC,WASiB;AAAA,MATjBA,WASiB,kCATH,OASG;AAAA,0BARjBC,KAQiB;AAAA,MARjBA,KAQiB,4BART,QAQS;AAAA,MAPjBC,MAOiB,SAPjBA,MAOiB;AAAA,MANjBZ,QAMiB,SANjBA,QAMiB;AAAA,MALjBa,IAKiB,SALjBA,IAKiB;AAAA,gCAJjBC,WAIiB;AAAA,MAJjBA,WAIiB,kCAJHC,WAIG;AAAA,MAHjBC,KAGiB,SAHjBA,KAGiB;AAAA,iCAFjBC,YAEiB;AAAA,MAFjBA,YAEiB,mCAFF,KAEE;AAAA,MADdC,UACc;AACjB,MAAMC,QAAQ,GAAG,gCAAaP,MAAb,CAAjB;;AACA,wBAAgCQ,KAAK,CAACC,QAAN,CAAe,KAAf,CAAhC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,UAAlB;;AACA,2BAA0B,2CAAkBL,UAAlB,EAA8B;AAAET,IAAAA,YAAY,EAAZA;AAAF,GAA9B,CAA1B;AAAA;AAAA,MAAOe,KAAP;AAAA,MAAcC,QAAd;;AAEA,MAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAA2C;AACzDJ,IAAAA,UAAU,CAAC,IAAD,CAAV;AACAL,IAAAA,UAAU,CAACQ,OAAX,IAAsBR,UAAU,CAACQ,OAAX,CAAmBC,CAAnB,CAAtB;AACD,GAHD;;AAKA,MAAMC,MAAM,GAAG,SAATA,MAAS,CAACD,CAAD,EAA2C;AACxDJ,IAAAA,UAAU,CAAC,KAAD,CAAV;AACAL,IAAAA,UAAU,CAACU,MAAX,IAAqBV,UAAU,CAACU,MAAX,CAAkBD,CAAlB,CAArB;AACD,GAHD;;AAKA,MAAME,QAAQ,GAAGT,KAAK,CAACU,WAAN,CAAkB,YAAM;AAAA;;AACvC;AACA,QAAMC,sBAAsB,4BAAGC,MAAM,CAACC,wBAAP,CAC7BC,gBAAgB,CAACC,SADY,EAE7B,OAF6B,CAAH,0DAAG,sBAG5BC,GAHH;AAIAL,IAAAA,sBAAsB,SAAtB,IAAAA,sBAAsB,WAAtB,YAAAA,sBAAsB,CAAEM,IAAxB,CAA6BlB,QAAQ,CAACmB,OAAtC,EAA+C,EAA/C;AAEA,QAAMC,GAAG,GAAG,IAAIC,KAAJ,CAAU,OAAV,EAAmB;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAAnB,CAAZ;AACA,yBAAAtB,QAAQ,CAACmB,OAAT,wEAAkBI,aAAlB,CAAgCH,GAAhC;AACD,GAVgB,EAUd,CAACpB,QAAD,CAVc,CAAjB;AAYA,MAAMwB,gBAAgB,GAAGvB,KAAK,CAACU,WAAN,CACvB,UAACH,CAAD;AAAA,WAAmBb,WAAW,CAACa,CAAC,CAACiB,aAAH,CAA9B;AAAA,GADuB,EAEvB,CAAC9B,WAAD,CAFuB,CAAzB;AAKA,MAAM+B,sBAAsB,GAAGzB,KAAK,CAACU,WAAN,CAC7B,UAACH,CAAD,EAAmB;AAAA;;AACjBA,IAAAA,CAAC,CAACiB,aAAF,CAAgBE,cAAhB;AACA,0BAAA3B,QAAQ,CAACmB,OAAT,0EAAkBS,KAAlB;AACAlB,IAAAA,QAAQ;AACT,GAL4B,EAM7B,CAACV,QAAD,EAAWU,QAAX,CAN6B,CAA/B;AASA,SACE;AACE;AACA,IAAA,SAAS,EAAE,4BAAW,gCAAa,QAAb,EAAuB7B,QAAvB,CAAX,EAA6C;AACtD,yBAAmBsB,SADmC;AAEtD,2BAAqB,CAAC,CAACE,KAF+B;AAGtD,2BAAqB,CAAC,CAACb,KAH+B;AAItD,0BAAoB,CAAC,CAACE;AAJgC,KAA7C,CAFb;AAQE,IAAA,SAAS,EAAEL,SARb;AASE,IAAA,KAAK,EAAEQ;AATT,KAWE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,EAEE;AAAO,IAAA,SAAS,EAAC;AAAjB,KACE;AACE,IAAA,IAAI,EAAC;AADP,KAEME,UAFN;AAGE,IAAA,YAAY,EAAED,YAHhB;AAIE,IAAA,GAAG,EAAEE,QAJP;AAKE,IAAA,SAAS,EAAC,eALZ;AAME,IAAA,OAAO,EAAEO,OANX;AAOE,IAAA,MAAM,EAAEE,MAPV;AAQE,IAAA,QAAQ,EAAEH,QARZ;AASE,IAAA,KAAK,EAAED;AATT,KADF,EAYGxB,QAAQ,KAAKG,aAAb,IAAoBQ,KAApB,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,KAAtC,CAbJ,EAeE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGJ,MADH,EAEE,qCAAC,2BAAD;AACE,IAAA,SAAS,EAAC,0BADZ;AAEE,IAAA,QAAQ,EAAEP;AAFZ,KAIGU,WAJH,CAFF,CADF,EAUGY,SAAS,IAAItB,QAAQ,KAAKG,aAA1B,IAAiCQ,KAAjC,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,KAAtC,CAXJ,CAfF,CAFF,EAgCE;AAAK,IAAA,SAAS,EAAC,eAAf;AAA+B,IAAA,OAAO,EAAEkB;AAAxC,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGhB,IAAI,IACH,qCAAC,YAAD;AAAO,IAAA,OAAO,EAAE8B,gBAAhB;AAAkC,IAAA,SAAS,EAAC;AAA5C,KACG9B,IADH,CAFJ,EAMG,CAAC,CAACW,KAAF,IACC,qCAAC,YAAD;AAAO,IAAA,OAAO,EAAEqB,sBAAhB;AAAwC,IAAA,SAAS,EAAC;AAAlD,KACG7C,QAAQ,KAAKG,aAAb,GAAmB,qCAAC,kBAAD,OAAnB,GAAqC,qCAAC,mBAAD,OADxC,CAPJ,CADF,EAaGH,QAAQ,KAAKG,aAAb,IAAoBQ,KAApB,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,KAAnC,CAdJ,CAhCF,CAXF,EA6DGX,QAAQ,KAAKI,eAAb,IAAsB,qCAAC,oBAAD;AAAW,IAAA,SAAS,EAAC,mBAArB;AAAyC,IAAA,IAAI;AAA7C,IA7DzB,CADF;AAiED,CAvHD;;AAyHO,IAAM4C,MAAM,GAAG,gCAAa1C,eAAb,CAAf;;AAEP0C,MAAM,CAACC,WAAP,GAAqB,QAArB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Separator } from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography = ({\n platform,\n children,\n ...restProps\n}: SearchPlaceholderTypographyProps) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return <Text {...restProps}>{children}</Text>;\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"3\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nconst SearchComponent = ({\n before = <Icon16SearchOutline aria-hidden />,\n className,\n defaultValue = \"\",\n placeholder = \"Поиск\",\n after = \"Отмена\",\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n autoComplete = \"off\",\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"Search\", platform), {\n \"Search--focused\": isFocused,\n \"Search--has-value\": !!value,\n \"Search--has-after\": !!after,\n \"Search--has-icon\": !!icon,\n })}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n autoComplete={autoComplete}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nexport const Search = withPlatform(SearchComponent);\n\nSearch.displayName = \"Search\";\n"],"file":"Search.js"}
1
+ {"version":3,"sources":["../../../../src/components/Search/Search.tsx"],"names":["SearchPlaceholderTypography","platform","children","restProps","IOS","VKCOM","ANDROID","SearchComponent","before","className","defaultValue","placeholder","after","getRef","icon","onIconClick","noop","style","autoComplete","inputProps","inputRef","React","useState","isFocused","setFocused","value","onChange","sizeY","onFocus","e","onBlur","onCancel","useCallback","nativeInputValueSetter","Object","getOwnPropertyDescriptor","HTMLInputElement","prototype","set","call","current","ev2","Event","bubbles","dispatchEvent","onIconClickStart","originalEvent","onIconCancelClickStart","preventDefault","focus","Search","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;AASA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,OAII;AAAA,MAHtCC,QAGsC,QAHtCA,QAGsC;AAAA,MAFtCC,QAEsC,QAFtCA,QAEsC;AAAA,MADnCC,SACmC;;AACtC,UAAQF,QAAR;AACE,SAAKG,aAAL;AACE,aACE,qCAAC,YAAD,6BAAWD,SAAX;AAAsB,QAAA,KAAK,EAAC,GAA5B;AAAgC,QAAA,MAAM,EAAC;AAAvC,UACGD,QADH,CADF;;AAKF,SAAKG,eAAL;AACE,aAAO,qCAAC,UAAD,EAAUF,SAAV,EAAsBD,QAAtB,CAAP;;AACF,SAAKI,iBAAL;AACA;AACE,aACE,qCAAC,kBAAD,6BAAcH,SAAd;AAAyB,QAAA,MAAM,EAAC;AAAhC,UACGD,QADH,CADF;AAXJ;AAiBD,CAtBD;;AAsCA;AACA;AACA;AACA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,QAaL;AAAA,2BAZjBC,MAYiB;AAAA,MAZjBA,MAYiB,6BAZR,qCAAC,0BAAD;AAAqB;AAArB,IAYQ;AAAA,MAXjBC,SAWiB,SAXjBA,SAWiB;AAAA,iCAVjBC,YAUiB;AAAA,MAVjBA,YAUiB,mCAVF,EAUE;AAAA,gCATjBC,WASiB;AAAA,MATjBA,WASiB,kCATH,OASG;AAAA,0BARjBC,KAQiB;AAAA,MARjBA,KAQiB,4BART,QAQS;AAAA,MAPjBC,MAOiB,SAPjBA,MAOiB;AAAA,MANjBZ,QAMiB,SANjBA,QAMiB;AAAA,MALjBa,IAKiB,SALjBA,IAKiB;AAAA,gCAJjBC,WAIiB;AAAA,MAJjBA,WAIiB,kCAJHC,WAIG;AAAA,MAHjBC,KAGiB,SAHjBA,KAGiB;AAAA,iCAFjBC,YAEiB;AAAA,MAFjBA,YAEiB,mCAFF,KAEE;AAAA,MADdC,UACc;AACjB,MAAMC,QAAQ,GAAG,gCAAaP,MAAb,CAAjB;;AACA,wBAAgCQ,KAAK,CAACC,QAAN,CAAe,KAAf,CAAhC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,UAAlB;;AACA,2BAA0B,2CAAkBL,UAAlB,EAA8B;AAAET,IAAAA,YAAY,EAAZA;AAAF,GAA9B,CAA1B;AAAA;AAAA,MAAOe,KAAP;AAAA,MAAcC,QAAd;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AAEA,MAAMC,OAAO,GAAG,SAAVA,OAAU,CAACC,CAAD,EAA2C;AACzDL,IAAAA,UAAU,CAAC,IAAD,CAAV;AACAL,IAAAA,UAAU,CAACS,OAAX,IAAsBT,UAAU,CAACS,OAAX,CAAmBC,CAAnB,CAAtB;AACD,GAHD;;AAKA,MAAMC,MAAM,GAAG,SAATA,MAAS,CAACD,CAAD,EAA2C;AACxDL,IAAAA,UAAU,CAAC,KAAD,CAAV;AACAL,IAAAA,UAAU,CAACW,MAAX,IAAqBX,UAAU,CAACW,MAAX,CAAkBD,CAAlB,CAArB;AACD,GAHD;;AAKA,MAAME,QAAQ,GAAGV,KAAK,CAACW,WAAN,CAAkB,YAAM;AAAA;;AACvC;AACA,QAAMC,sBAAsB,4BAAGC,MAAM,CAACC,wBAAP,CAC7BC,gBAAgB,CAACC,SADY,EAE7B,OAF6B,CAAH,0DAAG,sBAG5BC,GAHH;AAIAL,IAAAA,sBAAsB,SAAtB,IAAAA,sBAAsB,WAAtB,YAAAA,sBAAsB,CAAEM,IAAxB,CAA6BnB,QAAQ,CAACoB,OAAtC,EAA+C,EAA/C;AAEA,QAAMC,GAAG,GAAG,IAAIC,KAAJ,CAAU,OAAV,EAAmB;AAAEC,MAAAA,OAAO,EAAE;AAAX,KAAnB,CAAZ;AACA,yBAAAvB,QAAQ,CAACoB,OAAT,wEAAkBI,aAAlB,CAAgCH,GAAhC;AACD,GAVgB,EAUd,CAACrB,QAAD,CAVc,CAAjB;AAYA,MAAMyB,gBAAgB,GAAGxB,KAAK,CAACW,WAAN,CACvB,UAACH,CAAD;AAAA,WAAmBd,WAAW,CAACc,CAAC,CAACiB,aAAH,CAA9B;AAAA,GADuB,EAEvB,CAAC/B,WAAD,CAFuB,CAAzB;AAKA,MAAMgC,sBAAsB,GAAG1B,KAAK,CAACW,WAAN,CAC7B,UAACH,CAAD,EAAmB;AAAA;;AACjBA,IAAAA,CAAC,CAACiB,aAAF,CAAgBE,cAAhB;AACA,0BAAA5B,QAAQ,CAACoB,OAAT,0EAAkBS,KAAlB;AACAlB,IAAAA,QAAQ;AACT,GAL4B,EAM7B,CAACX,QAAD,EAAWW,QAAX,CAN6B,CAA/B;AASA,SACE;AACE,IAAA,SAAS,EAAE,4BACT,QADS,EAET9B,QAAQ,KAAKI,eAAb,IAAsB,eAFb,EAGTJ,QAAQ,KAAKG,aAAb,IAAoB,aAHX,EAIT;AAJS,4BAKQuB,KALR,GAMTJ,SAAS,IAAI,iBANJ,EAOTE,KAAK,IAAI,mBAPA,EAQTX,IAAI,IAAI,mBARC,EASTF,KAAK,IAAI,kBATA,CADb;AAYE,IAAA,SAAS,EAAEH,SAZb;AAaE,IAAA,KAAK,EAAEQ;AAbT,KAeE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,IADF,EAEE;AAAO,IAAA,SAAS,EAAC;AAAjB,KACE;AACE,IAAA,IAAI,EAAC;AADP,KAEME,UAFN;AAGE,IAAA,YAAY,EAAED,YAHhB;AAIE,IAAA,GAAG,EAAEE,QAJP;AAKE,IAAA,SAAS,EAAC,eALZ;AAME,IAAA,OAAO,EAAEQ,OANX;AAOE,IAAA,MAAM,EAAEE,MAPV;AAQE,IAAA,QAAQ,EAAEJ,QARZ;AASE,IAAA,KAAK,EAAED;AATT,KADF,EAYGxB,QAAQ,KAAKG,aAAb,IAAoBQ,KAApB,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,KAAtC,CAbJ,EAeE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGJ,MADH,EAEE,qCAAC,2BAAD;AACE,IAAA,SAAS,EAAC,0BADZ;AAEE,IAAA,QAAQ,EAAEP;AAFZ,KAIGU,WAJH,CAFF,CADF,EAUGY,SAAS,IAAItB,QAAQ,KAAKG,aAA1B,IAAiCQ,KAAjC,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAsCA,KAAtC,CAXJ,CAfF,CAFF,EAgCE;AAAK,IAAA,SAAS,EAAC,eAAf;AAA+B,IAAA,OAAO,EAAEmB;AAAxC,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGjB,IAAI,IACH,qCAAC,YAAD;AAAO,IAAA,OAAO,EAAE+B,gBAAhB;AAAkC,IAAA,SAAS,EAAC;AAA5C,KACG/B,IADH,CAFJ,EAMG,CAAC,CAACW,KAAF,IACC,qCAAC,YAAD;AAAO,IAAA,OAAO,EAAEsB,sBAAhB;AAAwC,IAAA,SAAS,EAAC;AAAlD,KACG9C,QAAQ,KAAKG,aAAb,GAAmB,qCAAC,kBAAD,OAAnB,GAAqC,qCAAC,mBAAD,OADxC,CAPJ,CADF,EAaGH,QAAQ,KAAKG,aAAb,IAAoBQ,KAApB,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,KAAnC,CAdJ,CAhCF,CAfF,EAiEGX,QAAQ,KAAKI,eAAb,IAAsB,qCAAC,oBAAD;AAAW,IAAA,SAAS,EAAC,mBAArB;AAAyC,IAAA,IAAI;AAA7C,IAjEzB,CADF;AAqED,CA5HD;;AA8HO,IAAM6C,MAAM,GAAG,gCAAa3C,eAAb,CAAf;;AAEP2C,MAAM,CAACC,WAAP,GAAqB,QAArB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { withPlatform } from \"../../hoc/withPlatform\";\nimport {\n Icon16SearchOutline,\n Icon16Clear,\n Icon24Cancel,\n} from \"@vkontakte/icons\";\nimport { IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { HasPlatform, HasRef } from \"../../types\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { VKUITouchEvent } from \"../../lib/touch\";\nimport { noop } from \"../../lib/utils\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Separator } from \"../Separator/Separator\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport \"./Search.css\";\n\nexport type InputRef = (element: HTMLInputElement) => void;\n\ninterface SearchPlaceholderTypographyProps\n extends HasPlatform,\n React.HTMLAttributes<HTMLElement> {}\n\nconst SearchPlaceholderTypography = ({\n platform,\n children,\n ...restProps\n}: SearchPlaceholderTypographyProps) => {\n switch (platform) {\n case IOS:\n return (\n <Title {...restProps} level=\"3\" weight=\"3\">\n {children}\n </Title>\n );\n case VKCOM:\n return <Text {...restProps}>{children}</Text>;\n case ANDROID:\n default:\n return (\n <Headline {...restProps} weight=\"3\">\n {children}\n </Headline>\n );\n }\n};\n\nexport interface SearchProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement>,\n HasPlatform {\n /**\n * iOS only. Текст кнопки \"отмена\", которая чистит текстовое поле и убирает фокус.\n */\n after?: React.ReactNode;\n before?: React.ReactNode;\n icon?: React.ReactNode;\n onIconClick?: (e: VKUITouchEvent) => void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Search\n */\nconst SearchComponent = ({\n before = <Icon16SearchOutline aria-hidden />,\n className,\n defaultValue = \"\",\n placeholder = \"Поиск\",\n after = \"Отмена\",\n getRef,\n platform,\n icon,\n onIconClick = noop,\n style,\n autoComplete = \"off\",\n ...inputProps\n}: SearchProps) => {\n const inputRef = useExternRef(getRef);\n const [isFocused, setFocused] = React.useState(false);\n const [value, onChange] = useEnsuredControl(inputProps, { defaultValue });\n const { sizeY } = useAdaptivity();\n\n const onFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(true);\n inputProps.onFocus && inputProps.onFocus(e);\n };\n\n const onBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n inputProps.onBlur && inputProps.onBlur(e);\n };\n\n const onCancel = React.useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const nativeInputValueSetter = Object.getOwnPropertyDescriptor(\n HTMLInputElement.prototype,\n \"value\"\n )?.set;\n nativeInputValueSetter?.call(inputRef.current, \"\");\n\n const ev2 = new Event(\"input\", { bubbles: true });\n inputRef.current?.dispatchEvent(ev2);\n }, [inputRef]);\n\n const onIconClickStart = React.useCallback(\n (e: TouchEvent) => onIconClick(e.originalEvent),\n [onIconClick]\n );\n\n const onIconCancelClickStart = React.useCallback(\n (e: TouchEvent) => {\n e.originalEvent.preventDefault();\n inputRef.current?.focus();\n onCancel();\n },\n [inputRef, onCancel]\n );\n\n return (\n <div\n vkuiClass={classNames(\n \"Search\",\n platform === VKCOM && \"Search--vkcom\",\n platform === IOS && \"Search--ios\",\n // TODO: V5 перенести на новую адаптивность\n `Search--sizeY-${sizeY}`,\n isFocused && \"Search--focused\",\n value && \"Search--has-value\",\n icon && \"Search--has-after\",\n after && \"Search--has-icon\"\n )}\n className={className}\n style={style}\n >\n <div vkuiClass=\"Search__in\">\n <div vkuiClass=\"Search__width\" />\n <label vkuiClass=\"Search__control\">\n <input\n type=\"search\"\n {...inputProps}\n autoComplete={autoComplete}\n ref={inputRef}\n vkuiClass=\"Search__input\"\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={onChange}\n value={value}\n />\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n <div vkuiClass=\"Search__placeholder\">\n <div vkuiClass=\"Search__placeholder-in\">\n {before}\n <SearchPlaceholderTypography\n vkuiClass=\"Search__placeholder-text\"\n platform={platform}\n >\n {placeholder}\n </SearchPlaceholderTypography>\n </div>\n {isFocused && platform === IOS && after && (\n <div vkuiClass=\"Search__after-width\">{after}</div>\n )}\n </div>\n </label>\n <div vkuiClass=\"Search__after\" onClick={onCancel}>\n <div vkuiClass=\"Search__icons\">\n {icon && (\n <Touch onStart={onIconClickStart} vkuiClass=\"Search__icon\">\n {icon}\n </Touch>\n )}\n {!!value && (\n <Touch onStart={onIconCancelClickStart} vkuiClass=\"Search__icon\">\n {platform === IOS ? <Icon16Clear /> : <Icon24Cancel />}\n </Touch>\n )}\n </div>\n {platform === IOS && after && (\n <div vkuiClass=\"Search__after-in\">{after}</div>\n )}\n </div>\n </div>\n {platform === VKCOM && <Separator vkuiClass=\"Search__separator\" wide />}\n </div>\n );\n};\n\nexport const Search = withPlatform(SearchComponent);\n\nSearch.displayName = \"Search\";\n"],"file":"Search.js"}
@@ -29,7 +29,7 @@ var _select = require("../../lib/select");
29
29
 
30
30
  var _Select = require("../Select/Select");
31
31
 
32
- var _excluded = ["tabIndex", "placeholder", "children", "align", "getRootRef", "multiline", "disabled", "onClick", "sizeX", "sizeY", "before", "after", "selectType"];
32
+ var _excluded = ["tabIndex", "placeholder", "children", "align", "getRootRef", "multiline", "disabled", "onClick", "sizeX", "sizeY", "before", "after", "selectType", "status"];
33
33
 
34
34
  var SelectMimicryComponent = function SelectMimicryComponent(_ref) {
35
35
  var _ref$tabIndex = _ref.tabIndex,
@@ -48,6 +48,7 @@ var SelectMimicryComponent = function SelectMimicryComponent(_ref) {
48
48
  after = _ref$after === void 0 ? (0, _jsxRuntime.createScopedElement)(_DropdownIcon.DropdownIcon, null) : _ref$after,
49
49
  _ref$selectType = _ref.selectType,
50
50
  selectType = _ref$selectType === void 0 ? _Select.SelectType.default : _ref$selectType,
51
+ status = _ref.status,
51
52
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
52
53
  var platform = (0, _usePlatform.usePlatform)();
53
54
  var title = children || placeholder;
@@ -61,7 +62,8 @@ var SelectMimicryComponent = function SelectMimicryComponent(_ref) {
61
62
  disabled: disabled,
62
63
  before: before,
63
64
  after: after,
64
- mode: (0, _select.getFormFieldModeFromSelectType)(selectType)
65
+ mode: (0, _select.getFormFieldModeFromSelectType)(selectType),
66
+ status: status
65
67
  }), (0, _jsxRuntime.createScopedElement)("div", {
66
68
  vkuiClass: "Select__container"
67
69
  }, (0, _jsxRuntime.createScopedElement)(_Select.SelectTypography, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"names":["SelectMimicryComponent","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","sizeX","sizeY","before","after","selectType","SelectType","default","restProps","platform","title","undefined","SelectMimicry","displayName"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAcA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,OAeL;AAAA,2BAdxBC,QAcwB;AAAA,MAdxBA,QAcwB,8BAdb,CAca;AAAA,MAbxBC,WAawB,QAbxBA,WAawB;AAAA,MAZxBC,QAYwB,QAZxBA,QAYwB;AAAA,MAXxBC,KAWwB,QAXxBA,KAWwB;AAAA,MAVxBC,UAUwB,QAVxBA,UAUwB;AAAA,MATxBC,SASwB,QATxBA,SASwB;AAAA,MARxBC,QAQwB,QARxBA,QAQwB;AAAA,MAPxBC,OAOwB,QAPxBA,OAOwB;AAAA,MANxBC,KAMwB,QANxBA,KAMwB;AAAA,MALxBC,KAKwB,QALxBA,KAKwB;AAAA,MAJxBC,MAIwB,QAJxBA,MAIwB;AAAA,wBAHxBC,KAGwB;AAAA,MAHxBA,KAGwB,2BAHhB,qCAAC,0BAAD,OAGgB;AAAA,6BAFxBC,UAEwB;AAAA,MAFxBA,UAEwB,gCAFXC,mBAAWC,OAEA;AAAA,MADrBC,SACqB;AACxB,MAAMC,QAAQ,GAAG,+BAAjB;AACA,MAAMC,KAAK,GAAGf,QAAQ,IAAID,WAA1B;AAEA,SACE,qCAAC,oBAAD,6BACMc,SADN;AAEE,IAAA,QAAQ,EAAET,QAAQ,GAAGY,SAAH,GAAelB,QAFnC;AAGE,IAAA,SAAS,EAAE,4BACT,gCAAa,QAAb,EAAuBgB,QAAvB,CADS,oBAEEJ,UAFF,GAGT,CAACV,QAAD,IAAa,eAHJ,EAITG,SAAS,IAAI,mBAJJ,EAKTF,KAAK,4BAAqBA,KAArB,CALI,0BAMQK,KANR,GAMiB;AANjB,4BAOQC,KAPR,GAOiB;AAC1BC,IAAAA,MAAM,IAAI,mBARD,EASTC,KAAK,IAAI,kBATA,CAHb;AAcE,IAAA,UAAU,EAAEP,UAdd;AAeE,IAAA,OAAO,EAAEE,QAAQ,GAAGY,SAAH,GAAeX,OAflC;AAgBE,IAAA,QAAQ,EAAED,QAhBZ;AAiBE,IAAA,MAAM,EAAEI,MAjBV;AAkBE,IAAA,KAAK,EAAEC,KAlBT;AAmBE,IAAA,IAAI,EAAE,4CAA+BC,UAA/B;AAnBR,MAqBE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEE,qCAAC,wBAAD;AAAkB,IAAA,UAAU,EAAEA,UAA9B;AAA0C,IAAA,SAAS,EAAC;AAApD,KACGK,KADH,CAFF,CArBF,CADF;AA8BD,CAjDD;AAmDA;AACA;AACA;;;AACO,IAAME,aAAa,GAAG,oCAAepB,sBAAf,EAAuC;AAClES,EAAAA,KAAK,EAAE,IAD2D;AAElEC,EAAAA,KAAK,EAAE;AAF2D,CAAvC,CAAtB;;AAKPU,aAAa,CAACC,WAAd,GAA4B,eAA5B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getFormFieldModeFromSelectType } from \"../../lib/select\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport \"../Select/Select.css\";\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<FormFieldProps, \"before\" | \"after\"> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nconst SelectMimicryComponent = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n sizeX,\n sizeY,\n before,\n after = <DropdownIcon />,\n selectType = SelectType.default,\n ...restProps\n}: SelectMimicryProps) => {\n const platform = usePlatform();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n !children && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`, // TODO v5.0.0 поправить под новую адаптивность\n `Select--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Select--hasBefore\",\n after && \"Select--hasAfter\"\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n >\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography selectType={selectType} vkuiClass=\"Select__title\">\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = withAdaptivity(SelectMimicryComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nSelectMimicry.displayName = \"SelectMimicry\";\n"],"file":"SelectMimicry.js"}
1
+ {"version":3,"sources":["../../../../src/components/SelectMimicry/SelectMimicry.tsx"],"names":["SelectMimicryComponent","tabIndex","placeholder","children","align","getRootRef","multiline","disabled","onClick","sizeX","sizeY","before","after","selectType","SelectType","default","status","restProps","platform","title","undefined","SelectMimicry","displayName"],"mappings":";;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAcA,IAAMA,sBAAsB,GAAG,SAAzBA,sBAAyB,OAgBL;AAAA,2BAfxBC,QAewB;AAAA,MAfxBA,QAewB,8BAfb,CAea;AAAA,MAdxBC,WAcwB,QAdxBA,WAcwB;AAAA,MAbxBC,QAawB,QAbxBA,QAawB;AAAA,MAZxBC,KAYwB,QAZxBA,KAYwB;AAAA,MAXxBC,UAWwB,QAXxBA,UAWwB;AAAA,MAVxBC,SAUwB,QAVxBA,SAUwB;AAAA,MATxBC,QASwB,QATxBA,QASwB;AAAA,MARxBC,OAQwB,QARxBA,OAQwB;AAAA,MAPxBC,KAOwB,QAPxBA,KAOwB;AAAA,MANxBC,KAMwB,QANxBA,KAMwB;AAAA,MALxBC,MAKwB,QALxBA,MAKwB;AAAA,wBAJxBC,KAIwB;AAAA,MAJxBA,KAIwB,2BAJhB,qCAAC,0BAAD,OAIgB;AAAA,6BAHxBC,UAGwB;AAAA,MAHxBA,UAGwB,gCAHXC,mBAAWC,OAGA;AAAA,MAFxBC,MAEwB,QAFxBA,MAEwB;AAAA,MADrBC,SACqB;AACxB,MAAMC,QAAQ,GAAG,+BAAjB;AACA,MAAMC,KAAK,GAAGhB,QAAQ,IAAID,WAA1B;AAEA,SACE,qCAAC,oBAAD,6BACMe,SADN;AAEE,IAAA,QAAQ,EAAEV,QAAQ,GAAGa,SAAH,GAAenB,QAFnC;AAGE,IAAA,SAAS,EAAE,4BACT,gCAAa,QAAb,EAAuBiB,QAAvB,CADS,oBAEEL,UAFF,GAGT,CAACV,QAAD,IAAa,eAHJ,EAITG,SAAS,IAAI,mBAJJ,EAKTF,KAAK,4BAAqBA,KAArB,CALI,0BAMQK,KANR,GAMiB;AANjB,4BAOQC,KAPR,GAOiB;AAC1BC,IAAAA,MAAM,IAAI,mBARD,EASTC,KAAK,IAAI,kBATA,CAHb;AAcE,IAAA,UAAU,EAAEP,UAdd;AAeE,IAAA,OAAO,EAAEE,QAAQ,GAAGa,SAAH,GAAeZ,OAflC;AAgBE,IAAA,QAAQ,EAAED,QAhBZ;AAiBE,IAAA,MAAM,EAAEI,MAjBV;AAkBE,IAAA,KAAK,EAAEC,KAlBT;AAmBE,IAAA,IAAI,EAAE,4CAA+BC,UAA/B,CAnBR;AAoBE,IAAA,MAAM,EAAEG;AApBV,MAsBE;AAAK,IAAA,SAAS,EAAC;AAAf,KAEE,qCAAC,wBAAD;AAAkB,IAAA,UAAU,EAAEH,UAA9B;AAA0C,IAAA,SAAS,EAAC;AAApD,KACGM,KADH,CAFF,CAtBF,CADF;AA+BD,CAnDD;AAqDA;AACA;AACA;;;AACO,IAAME,aAAa,GAAG,oCAAerB,sBAAf,EAAuC;AAClES,EAAAA,KAAK,EAAE,IAD2D;AAElEC,EAAAA,KAAK,EAAE;AAF2D,CAAvC,CAAtB;;AAKPW,aAAa,CAACC,WAAd,GAA4B,eAA5B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasAlign, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { getFormFieldModeFromSelectType } from \"../../lib/select\";\nimport { SelectType, SelectTypography } from \"../Select/Select\";\nimport \"../Select/Select.css\";\n\nexport interface SelectMimicryProps\n extends React.HTMLAttributes<HTMLElement>,\n HasAlign,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<FormFieldProps, \"before\" | \"after\" | \"status\"> {\n multiline?: boolean;\n disabled?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\nconst SelectMimicryComponent = ({\n tabIndex = 0,\n placeholder,\n children,\n align,\n getRootRef,\n multiline,\n disabled,\n onClick,\n sizeX,\n sizeY,\n before,\n after = <DropdownIcon />,\n selectType = SelectType.default,\n status,\n ...restProps\n}: SelectMimicryProps) => {\n const platform = usePlatform();\n const title = children || placeholder;\n\n return (\n <FormField\n {...restProps}\n tabIndex={disabled ? undefined : tabIndex}\n vkuiClass={classNames(\n getClassName(\"Select\", platform),\n `Select--${selectType}`,\n !children && \"Select--empty\",\n multiline && \"Select--multiline\",\n align && `Select--align-${align}`,\n `Select--sizeX-${sizeX}`, // TODO v5.0.0 поправить под новую адаптивность\n `Select--sizeY-${sizeY}`, // TODO v5.0.0 поправить под новую адаптивность\n before && \"Select--hasBefore\",\n after && \"Select--hasAfter\"\n )}\n getRootRef={getRootRef}\n onClick={disabled ? undefined : onClick}\n disabled={disabled}\n before={before}\n after={after}\n mode={getFormFieldModeFromSelectType(selectType)}\n status={status}\n >\n <div vkuiClass=\"Select__container\">\n {/* TODO v5.0.0 поправить под новую адаптивность */}\n <SelectTypography selectType={selectType} vkuiClass=\"Select__title\">\n {title}\n </SelectTypography>\n </div>\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SelectMimicry\n */\nexport const SelectMimicry = withAdaptivity(SelectMimicryComponent, {\n sizeX: true,\n sizeY: true,\n});\n\nSelectMimicry.displayName = \"SelectMimicry\";\n"],"file":"SelectMimicry.js"}
@@ -33,7 +33,7 @@ var React = _interopRequireWildcard(require("react"));
33
33
 
34
34
  var _SliderSwitchButton = require("./SliderSwitchButton");
35
35
 
36
- var _classNames2 = require("../../lib/classNames");
36
+ var _classNames = require("../../lib/classNames");
37
37
 
38
38
  var _warnOnce = require("../../lib/warnOnce");
39
39
 
@@ -149,8 +149,6 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
149
149
  }, {
150
150
  key: "render",
151
151
  value: function render() {
152
- var _classNames;
153
-
154
152
  var _this$props = this.props,
155
153
  name = _this$props.name,
156
154
  options = _this$props.options,
@@ -174,8 +172,7 @@ var SliderSwitch = /*#__PURE__*/function (_React$Component) {
174
172
  }), !firstActive && !secondActive && (0, _jsxRuntime.createScopedElement)("div", {
175
173
  vkuiClass: "SliderSwitch__border"
176
174
  }), (0, _jsxRuntime.createScopedElement)("div", {
177
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
178
- vkuiClass: (0, _classNames2.classNames)("SliderSwitch__slider", (_classNames = {}, (0, _defineProperty2.default)(_classNames, "SliderSwitch--firstActive", firstActive), (0, _defineProperty2.default)(_classNames, "SliderSwitch--secondActive", secondActive), _classNames))
175
+ vkuiClass: (0, _classNames.classNames)("SliderSwitch__slider", firstActive && "SliderSwitch--firstActive", secondActive && "SliderSwitch--secondActive")
179
176
  }), (0, _jsxRuntime.createScopedElement)("input", {
180
177
  type: "hidden",
181
178
  name: name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitch.tsx"],"names":["warn","SliderSwitch","props","value","onSwitch","setState","activeValue","options","hoveredOptionId","event","key","preventDefault","state","find","option","undefined","firstButton","current","focus","secondButton","React","createRef","process","env","NODE_ENV","name","_activeValue","restProps","firstOption","secondOption","firstActive","secondActive","switchByKey","resetFocusedOption","handleFirstClick","handleFirstHover","handleSecondClick","handleSecondHover","nextProps","prevState","Component"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { SliderSwitchButton } from \"./SliderSwitchButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasPlatform } from \"../../types\";\nimport \"./SliderSwitch.css\";\n\nexport interface SliderSwitchOptionInterface {\n name: string;\n value: string | number;\n}\n\nexport interface SliderSwitchProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasPlatform {\n options: Array<{\n name: string;\n value: string | number;\n }>;\n activeValue?: SliderSwitchOptionInterface[\"value\"];\n name?: string;\n onSwitch?: (value: SliderSwitchOptionInterface[\"value\"]) => void;\n}\n\ninterface SliderSwitchState {\n activeValue: SliderSwitchOptionInterface[\"value\"];\n hoveredOptionId: number;\n}\n\nconst warn = warnOnce(\"SliderSwitch\");\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](https://vkcom.github.io/VKUI/#/SegmentedControl).\n * @see https://vkcom.github.io/VKUI/#/SliderSwitch\n */\nclass SliderSwitch extends React.Component<\n SliderSwitchProps,\n SliderSwitchState\n> {\n public constructor(props: SliderSwitchProps) {\n super(props);\n\n this.state = {\n activeValue: props.activeValue ?? \"\",\n hoveredOptionId: -1,\n };\n\n this.firstButton = React.createRef();\n this.secondButton = React.createRef();\n }\n\n static defaultProps = {\n options: [\n { name: \"\", value: \"\" },\n { name: \"\", value: \"\" },\n ],\n };\n\n firstButton: React.RefObject<HTMLDivElement>;\n secondButton: React.RefObject<HTMLDivElement>;\n\n onSwitch = (value: SliderSwitchOptionInterface[\"value\"]) => {\n const { onSwitch } = this.props;\n\n this.setState(\n () => ({\n activeValue: value,\n }),\n () => {\n onSwitch && onSwitch(value);\n }\n );\n };\n\n handleFirstClick = () => {\n const { options } = this.props;\n const { value } = options[0];\n\n this.onSwitch(value);\n };\n\n handleSecondClick = () => {\n const { options } = this.props;\n const { value } = options[1];\n\n this.onSwitch(value);\n };\n\n handleFirstHover = () => {\n this.setState(() => ({\n hoveredOptionId: 0,\n }));\n };\n\n handleSecondHover = () => {\n this.setState(() => ({\n hoveredOptionId: 1,\n }));\n };\n\n resetFocusedOption = () => {\n this.setState(() => ({\n hoveredOptionId: -1,\n }));\n };\n\n switchByKey = (event: React.KeyboardEvent) => {\n if (\n event.key !== \"Enter\" &&\n event.key !== \"Spacebar\" &&\n event.key !== \" \"\n ) {\n return;\n }\n event.preventDefault();\n\n const { options } = this.props;\n const { activeValue } = this.state;\n const value = options.find((option) => option.value !== activeValue)?.value;\n\n if (value !== undefined) {\n this.onSwitch(value);\n }\n\n if (options[0].value === value) {\n this.firstButton.current?.focus();\n } else {\n this.secondButton.current?.focus();\n }\n };\n\n static getDerivedStateFromProps(\n nextProps: SliderSwitchProps,\n prevState: SliderSwitchState\n ) {\n if (\n nextProps.activeValue &&\n nextProps.activeValue !== prevState.activeValue\n ) {\n return {\n activeValue: nextProps.activeValue,\n };\n }\n\n return null;\n }\n\n componentDidMount(): void {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот компонент устарел и будет удален в 5.0.0. Используйте SegmentedControl.\"\n );\n }\n }\n\n public render() {\n const {\n name,\n options,\n activeValue: _activeValue,\n onSwitch,\n ...restProps\n } = this.props;\n const { activeValue, hoveredOptionId } = this.state;\n\n const [firstOption, secondOption] = options;\n const firstActive = firstOption.value === activeValue;\n const secondActive = secondOption.value === activeValue;\n\n return (\n <div\n {...restProps}\n vkuiClass=\"SliderSwitch\"\n onKeyDown={this.switchByKey}\n onMouseLeave={this.resetFocusedOption}\n >\n {!firstActive && !secondActive && (\n <div vkuiClass=\"SliderSwitch__border\" />\n )}\n <div\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"SliderSwitch__slider\", {\n [\"SliderSwitch--firstActive\"]: firstActive,\n [\"SliderSwitch--secondActive\"]: secondActive,\n })}\n />\n <input type=\"hidden\" name={name} value={activeValue} />\n <SliderSwitchButton\n active={firstActive}\n hovered={hoveredOptionId === 0}\n aria-pressed={firstActive}\n onClick={this.handleFirstClick}\n onMouseEnter={this.handleFirstHover}\n getRootRef={this.firstButton}\n >\n {firstOption.name}\n </SliderSwitchButton>\n <SliderSwitchButton\n active={secondActive}\n hovered={hoveredOptionId === 1}\n onClick={this.handleSecondClick}\n onMouseEnter={this.handleSecondHover}\n getRootRef={this.secondButton}\n >\n {secondOption.name}\n </SliderSwitchButton>\n </div>\n );\n }\n}\n\nexport { SliderSwitch };\n"],"file":"SliderSwitch.js"}
1
+ {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitch.tsx"],"names":["warn","SliderSwitch","props","value","onSwitch","setState","activeValue","options","hoveredOptionId","event","key","preventDefault","state","find","option","undefined","firstButton","current","focus","secondButton","React","createRef","process","env","NODE_ENV","name","_activeValue","restProps","firstOption","secondOption","firstActive","secondActive","switchByKey","resetFocusedOption","handleFirstClick","handleFirstHover","handleSecondClick","handleSecondHover","nextProps","prevState","Component"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { SliderSwitchButton } from \"./SliderSwitchButton\";\nimport { classNames } from \"../../lib/classNames\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { HasPlatform } from \"../../types\";\nimport \"./SliderSwitch.css\";\n\nexport interface SliderSwitchOptionInterface {\n name: string;\n value: string | number;\n}\n\nexport interface SliderSwitchProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasPlatform {\n options: Array<{\n name: string;\n value: string | number;\n }>;\n activeValue?: SliderSwitchOptionInterface[\"value\"];\n name?: string;\n onSwitch?: (value: SliderSwitchOptionInterface[\"value\"]) => void;\n}\n\ninterface SliderSwitchState {\n activeValue: SliderSwitchOptionInterface[\"value\"];\n hoveredOptionId: number;\n}\n\nconst warn = warnOnce(\"SliderSwitch\");\n\n/**\n * @deprecated Этот компонент устарел и будет удален в 5.0.0. Используйте [`SegmentedControl`](https://vkcom.github.io/VKUI/#/SegmentedControl).\n * @see https://vkcom.github.io/VKUI/#/SliderSwitch\n */\nclass SliderSwitch extends React.Component<\n SliderSwitchProps,\n SliderSwitchState\n> {\n public constructor(props: SliderSwitchProps) {\n super(props);\n\n this.state = {\n activeValue: props.activeValue ?? \"\",\n hoveredOptionId: -1,\n };\n\n this.firstButton = React.createRef();\n this.secondButton = React.createRef();\n }\n\n static defaultProps = {\n options: [\n { name: \"\", value: \"\" },\n { name: \"\", value: \"\" },\n ],\n };\n\n firstButton: React.RefObject<HTMLDivElement>;\n secondButton: React.RefObject<HTMLDivElement>;\n\n onSwitch = (value: SliderSwitchOptionInterface[\"value\"]) => {\n const { onSwitch } = this.props;\n\n this.setState(\n () => ({\n activeValue: value,\n }),\n () => {\n onSwitch && onSwitch(value);\n }\n );\n };\n\n handleFirstClick = () => {\n const { options } = this.props;\n const { value } = options[0];\n\n this.onSwitch(value);\n };\n\n handleSecondClick = () => {\n const { options } = this.props;\n const { value } = options[1];\n\n this.onSwitch(value);\n };\n\n handleFirstHover = () => {\n this.setState(() => ({\n hoveredOptionId: 0,\n }));\n };\n\n handleSecondHover = () => {\n this.setState(() => ({\n hoveredOptionId: 1,\n }));\n };\n\n resetFocusedOption = () => {\n this.setState(() => ({\n hoveredOptionId: -1,\n }));\n };\n\n switchByKey = (event: React.KeyboardEvent) => {\n if (\n event.key !== \"Enter\" &&\n event.key !== \"Spacebar\" &&\n event.key !== \" \"\n ) {\n return;\n }\n event.preventDefault();\n\n const { options } = this.props;\n const { activeValue } = this.state;\n const value = options.find((option) => option.value !== activeValue)?.value;\n\n if (value !== undefined) {\n this.onSwitch(value);\n }\n\n if (options[0].value === value) {\n this.firstButton.current?.focus();\n } else {\n this.secondButton.current?.focus();\n }\n };\n\n static getDerivedStateFromProps(\n nextProps: SliderSwitchProps,\n prevState: SliderSwitchState\n ) {\n if (\n nextProps.activeValue &&\n nextProps.activeValue !== prevState.activeValue\n ) {\n return {\n activeValue: nextProps.activeValue,\n };\n }\n\n return null;\n }\n\n componentDidMount(): void {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот компонент устарел и будет удален в 5.0.0. Используйте SegmentedControl.\"\n );\n }\n }\n\n public render() {\n const {\n name,\n options,\n activeValue: _activeValue,\n onSwitch,\n ...restProps\n } = this.props;\n const { activeValue, hoveredOptionId } = this.state;\n\n const [firstOption, secondOption] = options;\n const firstActive = firstOption.value === activeValue;\n const secondActive = secondOption.value === activeValue;\n\n return (\n <div\n {...restProps}\n vkuiClass=\"SliderSwitch\"\n onKeyDown={this.switchByKey}\n onMouseLeave={this.resetFocusedOption}\n >\n {!firstActive && !secondActive && (\n <div vkuiClass=\"SliderSwitch__border\" />\n )}\n <div\n vkuiClass={classNames(\n \"SliderSwitch__slider\",\n firstActive && \"SliderSwitch--firstActive\",\n secondActive && \"SliderSwitch--secondActive\"\n )}\n />\n <input type=\"hidden\" name={name} value={activeValue} />\n <SliderSwitchButton\n active={firstActive}\n hovered={hoveredOptionId === 0}\n aria-pressed={firstActive}\n onClick={this.handleFirstClick}\n onMouseEnter={this.handleFirstHover}\n getRootRef={this.firstButton}\n >\n {firstOption.name}\n </SliderSwitchButton>\n <SliderSwitchButton\n active={secondActive}\n hovered={hoveredOptionId === 1}\n onClick={this.handleSecondClick}\n onMouseEnter={this.handleSecondHover}\n getRootRef={this.secondButton}\n >\n {secondOption.name}\n </SliderSwitchButton>\n </div>\n );\n }\n}\n\nexport { SliderSwitch };\n"],"file":"SliderSwitch.js"}
@@ -13,8 +13,6 @@ var _jsxRuntime = require("../../lib/jsxRuntime");
13
13
 
14
14
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
15
 
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
17
 
20
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -25,7 +23,7 @@ var _Tappable = require("../Tappable/Tappable");
25
23
 
26
24
  var _getClassName = require("../../helpers/getClassName");
27
25
 
28
- var _classNames2 = require("../../lib/classNames");
26
+ var _classNames = require("../../lib/classNames");
29
27
 
30
28
  var _usePlatform = require("../../hooks/usePlatform");
31
29
 
@@ -37,8 +35,6 @@ var _excluded = ["active", "hovered", "children", "getRootRef"];
37
35
  * @deprecated Этот компонент устарел и будет удален в 5.0.0.
38
36
  */
39
37
  var SliderSwitchButton = function SliderSwitchButton(_ref) {
40
- var _classNames;
41
-
42
38
  var active = _ref.active,
43
39
  hovered = _ref.hovered,
44
40
  children = _ref.children,
@@ -56,8 +52,7 @@ var SliderSwitchButton = function SliderSwitchButton(_ref) {
56
52
  };
57
53
 
58
54
  return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({}, restProps, {
59
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
60
- vkuiClass: (0, _classNames2.classNames)((0, _getClassName.getClassName)("SliderSwitch__button", platform), (_classNames = {}, (0, _defineProperty2.default)(_classNames, "SliderSwitch__button--active", active), (0, _defineProperty2.default)(_classNames, "SliderSwitch__button--hover", !active && hovered), (0, _defineProperty2.default)(_classNames, "SliderSwitch__button--activeHover", active && hovered), (0, _defineProperty2.default)(_classNames, "SliderSwitch__button--focus", focus && !hovered), _classNames)),
55
+ vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("SliderSwitch__button", platform), active && "SliderSwitch__button--active", !active && hovered && "SliderSwitch__button--hover", active && hovered && "SliderSwitch__button--activeHover", focus && !hovered && "SliderSwitch__button--focus"),
61
56
  Component: "button",
62
57
  type: "button",
63
58
  getRootRef: getRootRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SliderSwitch/SliderSwitchButton.tsx"],"names":["SliderSwitchButton","active","hovered","children","getRootRef","restProps","platform","React","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;AAUA;AACA;AACA;AACO,IAAMA,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,GAAG,+BAAjB;;AACA,wBAA0BC,KAAK,CAACC,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,qCAAC,kBAAD,6BACMJ,SADN;AAEE;AACA,IAAA,SAAS,EAAE,6BAAW,gCAAa,sBAAb,EAAqCC,QAArC,CAAX,gEACR,8BADQ,EACyBL,MADzB,8CAER,6BAFQ,EAEwB,CAACA,MAAD,IAAWC,OAFnC,8CAGR,mCAHQ,EAG8BD,MAAM,IAAIC,OAHxC,8CAIR,6BAJQ,EAIwBO,KAAK,IAAI,CAACP,OAJlC,gBAHb;AASE,IAAA,SAAS,EAAC,QATZ;AAUE,IAAA,IAAI,EAAC,QAVP;AAWE,IAAA,UAAU,EAAEE,UAXd;AAYE,oBAAcH,MAZhB;AAaE,IAAA,OAAO,EAAEU,WAbX;AAcE,IAAA,MAAM,EAAEA,WAdV;AAeE,IAAA,QAAQ,EAAE,CAfZ;AAgBE,IAAA,SAAS,EAAE,KAhBb;AAiBE,IAAA,SAAS,EAAC;AAjBZ,MAmBE,qCAAC,UAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAkBR,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":["SliderSwitchButton","active","hovered","children","getRootRef","restProps","platform","React","useState","focus","setFocus","toggleFocus"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;AAUA;AACA;AACA;AACO,IAAMA,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,GAAG,+BAAjB;;AACA,wBAA0BC,KAAK,CAACC,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,qCAAC,kBAAD,6BACMJ,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,gCAAa,sBAAb,EAAqCC,QAArC,CADS,EAETL,MAAM,IAAI,8BAFD,EAGT,CAACA,MAAD,IAAWC,OAAX,IAAsB,6BAHb,EAITD,MAAM,IAAIC,OAAV,IAAqB,mCAJZ,EAKTO,KAAK,IAAI,CAACP,OAAV,IAAqB,6BALZ,CAFb;AASE,IAAA,SAAS,EAAC,QATZ;AAUE,IAAA,IAAI,EAAC,QAVP;AAWE,IAAA,UAAU,EAAEE,UAXd;AAYE,oBAAcH,MAZhB;AAaE,IAAA,OAAO,EAAEU,WAbX;AAcE,IAAA,MAAM,EAAEA,WAdV;AAeE,IAAA,QAAQ,EAAE,CAfZ;AAgBE,IAAA,SAAS,EAAE,KAhBb;AAiBE,IAAA,SAAS,EAAC;AAjBZ,MAmBE,qCAAC,UAAD;AAAM,IAAA,MAAM,EAAC;AAAb,KAAkBR,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"}
@@ -13,12 +13,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
15
 
16
- var _usePlatform = require("../../hooks/usePlatform");
17
-
18
16
  var _classNames = require("../../lib/classNames");
19
17
 
20
- var _getClassName = require("../../helpers/getClassName");
21
-
22
18
  var _HorizontalScroll = require("../HorizontalScroll/HorizontalScroll");
23
19
 
24
20
  var _excluded = ["mode", "children", "showArrows", "getScrollToLeft", "getScrollToRight", "scrollAnimationDuration"];
@@ -47,7 +43,6 @@ var SubnavigationBar = function SubnavigationBar(_ref) {
47
43
  getScrollToRight = _ref$getScrollToRight === void 0 ? defaultScrollToRight : _ref$getScrollToRight,
48
44
  scrollAnimationDuration = _ref.scrollAnimationDuration,
49
45
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
50
- var platform = (0, _usePlatform.usePlatform)();
51
46
  var ScrollWrapper;
52
47
  var scrollWrapperProps = {};
53
48
 
@@ -64,7 +59,7 @@ var SubnavigationBar = function SubnavigationBar(_ref) {
64
59
  }
65
60
 
66
61
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
67
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("SubnavigationBar", platform), "SubnavigationBar--".concat(mode))
62
+ vkuiClass: (0, _classNames.classNames)("SubnavigationBar", "SubnavigationBar--".concat(mode))
68
63
  }), (0, _jsxRuntime.createScopedElement)(ScrollWrapper, (0, _extends2.default)({
69
64
  vkuiClass: "SubnavigationBar__in"
70
65
  }, scrollWrapperProps), (0, _jsxRuntime.createScopedElement)("div", {