@vkontakte/vkui 4.25.0 → 4.27.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 (541) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +539 -382
  4. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  5. package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  6. package/.cache/ts/src/components/Alert/Alert.d.ts +4 -4
  7. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -2
  8. package/.cache/ts/src/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  9. package/.cache/ts/src/components/Button/Button.d.ts +1 -1
  10. package/.cache/ts/src/components/Card/Card.d.ts +1 -2
  11. package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +1 -1
  12. package/.cache/ts/src/components/CardScroll/CardScroll.d.ts +9 -5
  13. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +1 -1
  14. package/.cache/ts/src/components/Chip/Chip.d.ts +2 -2
  15. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  16. package/.cache/ts/src/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  17. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  18. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  19. package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -1
  20. package/.cache/ts/src/components/Epic/Epic.d.ts +4 -4
  21. package/.cache/ts/src/components/Gallery/Gallery.d.ts +1 -1
  22. package/.cache/ts/src/components/Gradient/Gradient.d.ts +1 -2
  23. package/.cache/ts/src/components/Group/Group.d.ts +1 -1
  24. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  25. package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
  26. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  27. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +3 -3
  28. package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  29. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +3 -3
  30. package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  31. package/.cache/ts/src/components/ModalRoot/withModalRootContext.d.ts +1 -1
  32. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -3
  33. package/.cache/ts/src/components/Panel/Panel.d.ts +3 -3
  34. package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +1 -1
  35. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  36. package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  37. package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  38. package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
  39. package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +1 -1
  40. package/.cache/ts/src/components/RichCell/RichCell.d.ts +1 -1
  41. package/.cache/ts/src/components/Search/Search.d.ts +1 -1
  42. package/.cache/ts/src/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  43. package/.cache/ts/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  44. package/.cache/ts/src/components/Select/Select.d.ts +3 -3
  45. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  46. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
  47. package/.cache/ts/src/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  48. package/.cache/ts/src/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  49. package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +3 -3
  50. package/.cache/ts/src/components/Switch/Switch.d.ts +3 -2
  51. package/.cache/ts/src/components/Tabs/Tabs.d.ts +1 -1
  52. package/.cache/ts/src/components/Tappable/Tappable.d.ts +1 -1
  53. package/.cache/ts/src/components/Textarea/Textarea.d.ts +1 -1
  54. package/.cache/ts/src/components/Typography/Title/Title.d.ts +4 -1
  55. package/.cache/ts/src/components/View/View.d.ts +1 -1
  56. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  57. package/.cache/ts/src/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  58. package/.cache/ts/src/hooks/usePlatform.d.ts +1 -1
  59. package/.cache/ts/src/index.d.ts +10 -8
  60. package/.cache/ts/src/lib/platform.d.ts +1 -1
  61. package/.cache/ts/src/lib/utils.d.ts +1 -0
  62. package/.cache/ts/src/tokenized/index.d.ts +8 -0
  63. package/VKUI_TOKENS_MIGRATION_GUIDE.md +77 -0
  64. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  65. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +19 -17
  66. package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  67. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  68. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +4 -6
  69. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  70. package/dist/cjs/components/Alert/Alert.d.ts +4 -4
  71. package/dist/cjs/components/Alert/Alert.js +14 -17
  72. package/dist/cjs/components/Alert/Alert.js.map +1 -1
  73. package/dist/cjs/components/AppRoot/AppRoot.d.ts +1 -2
  74. package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
  75. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  76. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  77. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js +29 -2
  78. package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  79. package/dist/cjs/components/Banner/Banner.js +1 -1
  80. package/dist/cjs/components/Banner/Banner.js.map +1 -1
  81. package/dist/cjs/components/Button/Button.d.ts +1 -1
  82. package/dist/cjs/components/Button/Button.js +10 -4
  83. package/dist/cjs/components/Button/Button.js.map +1 -1
  84. package/dist/cjs/components/Card/Card.d.ts +1 -2
  85. package/dist/cjs/components/Card/Card.js +4 -8
  86. package/dist/cjs/components/Card/Card.js.map +1 -1
  87. package/dist/cjs/components/CardGrid/CardGrid.d.ts +1 -1
  88. package/dist/cjs/components/CardScroll/CardScroll.d.ts +9 -5
  89. package/dist/cjs/components/CardScroll/CardScroll.js +20 -18
  90. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  91. package/dist/cjs/components/Checkbox/Checkbox.d.ts +1 -1
  92. package/dist/cjs/components/Chip/Chip.d.ts +2 -2
  93. package/dist/cjs/components/Chip/Chip.js +3 -5
  94. package/dist/cjs/components/Chip/Chip.js.map +1 -1
  95. package/dist/cjs/components/ChipsInput/ChipsInput.js +2 -2
  96. package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
  97. package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  98. package/dist/cjs/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  99. package/dist/cjs/components/ConfigProvider/ConfigProvider.js +15 -6
  100. package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
  101. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  102. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  103. package/dist/cjs/components/ContentCard/ContentCard.js +12 -4
  104. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  105. package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +1 -1
  106. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
  107. package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  108. package/dist/cjs/components/DatePicker/DatePicker.d.ts +1 -1
  109. package/dist/cjs/components/Epic/Epic.d.ts +4 -4
  110. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  111. package/dist/cjs/components/Gallery/Gallery.d.ts +1 -1
  112. package/dist/cjs/components/Gradient/Gradient.d.ts +1 -2
  113. package/dist/cjs/components/Gradient/Gradient.js +6 -10
  114. package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
  115. package/dist/cjs/components/Group/Group.d.ts +1 -1
  116. package/dist/cjs/components/Header/Header.js +1 -1
  117. package/dist/cjs/components/Header/Header.js.map +1 -1
  118. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  119. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +7 -3
  120. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  121. package/dist/cjs/components/IconButton/IconButton.d.ts +1 -1
  122. package/dist/cjs/components/IconButton/IconButton.js +8 -0
  123. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  124. package/dist/cjs/components/Input/Input.d.ts +1 -1
  125. package/dist/cjs/components/ModalCard/ModalCard.d.ts +3 -3
  126. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  127. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  128. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -1
  129. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  130. package/dist/cjs/components/ModalPage/ModalPage.d.ts +3 -3
  131. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  132. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  133. package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  134. package/dist/cjs/components/ModalRoot/withModalRootContext.d.ts +1 -1
  135. package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
  136. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +3 -3
  137. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  138. package/dist/cjs/components/Panel/Panel.d.ts +3 -3
  139. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  140. package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +1 -1
  141. package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  142. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +15 -6
  143. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  144. package/dist/cjs/components/Placeholder/Placeholder.js +1 -1
  145. package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
  146. package/dist/cjs/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  147. package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
  148. package/dist/cjs/components/PromoBanner/PromoBanner.js +7 -0
  149. package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
  150. package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  151. package/dist/cjs/components/Radio/Radio.d.ts +1 -1
  152. package/dist/cjs/components/RangeSlider/UniversalSlider.d.ts +1 -1
  153. package/dist/cjs/components/RichCell/RichCell.d.ts +1 -1
  154. package/dist/cjs/components/Root/Root.js +5 -0
  155. package/dist/cjs/components/Root/Root.js.map +1 -1
  156. package/dist/cjs/components/Search/Search.d.ts +1 -1
  157. package/dist/cjs/components/Search/Search.js +47 -23
  158. package/dist/cjs/components/Search/Search.js.map +1 -1
  159. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  160. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +116 -0
  161. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -0
  162. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  163. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +61 -0
  164. package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  165. package/dist/cjs/components/Select/Select.d.ts +3 -3
  166. package/dist/cjs/components/Select/Select.js.map +1 -1
  167. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  168. package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +1 -1
  169. package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -8
  170. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  171. package/dist/cjs/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  172. package/dist/cjs/components/SliderSwitch/SliderSwitch.js +18 -6
  173. package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
  174. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  175. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +6 -5
  176. package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  177. package/dist/cjs/components/Snackbar/Snackbar.d.ts +3 -3
  178. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  179. package/dist/cjs/components/Switch/Switch.d.ts +3 -2
  180. package/dist/cjs/components/Switch/Switch.js +3 -6
  181. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  182. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -1
  183. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  184. package/dist/cjs/components/Tabs/Tabs.d.ts +1 -1
  185. package/dist/cjs/components/Tappable/Tappable.d.ts +1 -1
  186. package/dist/cjs/components/Textarea/Textarea.d.ts +1 -1
  187. package/dist/cjs/components/Typography/Title/Title.d.ts +4 -1
  188. package/dist/cjs/components/Typography/Title/Title.js +9 -19
  189. package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
  190. package/dist/cjs/components/View/View.d.ts +1 -1
  191. package/dist/cjs/components/View/View.js +29 -18
  192. package/dist/cjs/components/View/View.js.map +1 -1
  193. package/dist/cjs/components/View/ViewInfinite.d.ts +1 -1
  194. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  195. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +37 -0
  196. package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  197. package/dist/cjs/hooks/usePlatform.d.ts +1 -1
  198. package/dist/cjs/hooks/usePlatform.js.map +1 -1
  199. package/dist/cjs/index.d.ts +10 -8
  200. package/dist/cjs/index.js +24 -16
  201. package/dist/cjs/index.js.map +1 -1
  202. package/dist/cjs/lib/platform.d.ts +1 -1
  203. package/dist/cjs/lib/platform.js.map +1 -1
  204. package/dist/cjs/lib/utils.d.ts +1 -0
  205. package/dist/cjs/lib/utils.js +7 -0
  206. package/dist/cjs/lib/utils.js.map +1 -1
  207. package/dist/cjs/tokenized/index.d.ts +8 -0
  208. package/dist/cjs/tokenized/index.js +40 -0
  209. package/dist/cjs/tokenized/index.js.map +1 -0
  210. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -2
  211. package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -14
  212. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  213. package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +1 -1
  214. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  215. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  216. package/dist/components/Alert/Alert.d.ts +4 -4
  217. package/dist/components/Alert/Alert.js +12 -13
  218. package/dist/components/Alert/Alert.js.map +1 -1
  219. package/dist/components/AppRoot/AppRoot.d.ts +1 -2
  220. package/dist/components/AppRoot/AppRoot.js +1 -3
  221. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  222. package/dist/components/AppearanceProvider/AppearanceProvider.d.ts +1 -0
  223. package/dist/components/AppearanceProvider/AppearanceProvider.js +25 -2
  224. package/dist/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  225. package/dist/components/Banner/Banner.js +1 -1
  226. package/dist/components/Banner/Banner.js.map +1 -1
  227. package/dist/components/Button/Button.d.ts +1 -1
  228. package/dist/components/Button/Button.js +10 -4
  229. package/dist/components/Button/Button.js.map +1 -1
  230. package/dist/components/Card/Card.d.ts +1 -2
  231. package/dist/components/Card/Card.js +3 -9
  232. package/dist/components/Card/Card.js.map +1 -1
  233. package/dist/components/CardGrid/CardGrid.d.ts +1 -1
  234. package/dist/components/CardScroll/CardScroll.d.ts +9 -5
  235. package/dist/components/CardScroll/CardScroll.js +16 -16
  236. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  237. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  238. package/dist/components/Chip/Chip.d.ts +2 -2
  239. package/dist/components/Chip/Chip.js +2 -6
  240. package/dist/components/Chip/Chip.js.map +1 -1
  241. package/dist/components/ChipsInput/ChipsInput.js +1 -1
  242. package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
  243. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  244. package/dist/components/ConfigProvider/ConfigProvider.d.ts +1 -1
  245. package/dist/components/ConfigProvider/ConfigProvider.js +16 -7
  246. package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
  247. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +6 -6
  248. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  249. package/dist/components/ContentCard/ContentCard.js +10 -3
  250. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  251. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  252. package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
  253. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  254. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  255. package/dist/components/Epic/Epic.d.ts +4 -4
  256. package/dist/components/Epic/Epic.js.map +1 -1
  257. package/dist/components/Gallery/Gallery.d.ts +1 -1
  258. package/dist/components/Gradient/Gradient.d.ts +1 -2
  259. package/dist/components/Gradient/Gradient.js +5 -11
  260. package/dist/components/Gradient/Gradient.js.map +1 -1
  261. package/dist/components/Group/Group.d.ts +1 -1
  262. package/dist/components/Header/Header.js +1 -1
  263. package/dist/components/Header/Header.js.map +1 -1
  264. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +2 -2
  265. package/dist/components/HorizontalScroll/HorizontalScroll.js +5 -3
  266. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  267. package/dist/components/IconButton/IconButton.d.ts +1 -1
  268. package/dist/components/IconButton/IconButton.js +7 -0
  269. package/dist/components/IconButton/IconButton.js.map +1 -1
  270. package/dist/components/Input/Input.d.ts +1 -1
  271. package/dist/components/ModalCard/ModalCard.d.ts +3 -3
  272. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  273. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  274. package/dist/components/ModalCardBase/ModalCardBase.js +2 -2
  275. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  276. package/dist/components/ModalPage/ModalPage.d.ts +3 -3
  277. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  278. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +3 -3
  279. package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  280. package/dist/components/ModalRoot/withModalRootContext.d.ts +1 -1
  281. package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
  282. package/dist/components/NativeSelect/NativeSelect.d.ts +3 -3
  283. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  284. package/dist/components/Panel/Panel.d.ts +3 -3
  285. package/dist/components/Panel/Panel.js.map +1 -1
  286. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  287. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  288. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +14 -7
  289. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  290. package/dist/components/Placeholder/Placeholder.js +1 -1
  291. package/dist/components/Placeholder/Placeholder.js.map +1 -1
  292. package/dist/components/PopoutRoot/PopoutRoot.d.ts +4 -4
  293. package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
  294. package/dist/components/PromoBanner/PromoBanner.js +6 -0
  295. package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
  296. package/dist/components/PullToRefresh/PullToRefresh.d.ts +1 -1
  297. package/dist/components/Radio/Radio.d.ts +1 -1
  298. package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
  299. package/dist/components/RichCell/RichCell.d.ts +1 -1
  300. package/dist/components/Root/Root.js +5 -0
  301. package/dist/components/Root/Root.js.map +1 -1
  302. package/dist/components/Search/Search.d.ts +1 -1
  303. package/dist/components/Search/Search.js +45 -22
  304. package/dist/components/Search/Search.js.map +1 -1
  305. package/dist/components/SegmentedControl/SegmentedControl.d.ts +17 -0
  306. package/dist/components/SegmentedControl/SegmentedControl.js +94 -0
  307. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
  308. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +4 -0
  309. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +40 -0
  310. package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  311. package/dist/components/Select/Select.d.ts +3 -3
  312. package/dist/components/Select/Select.js.map +1 -1
  313. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  314. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  315. package/dist/components/SimpleCell/SimpleCell.js +21 -9
  316. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  317. package/dist/components/SliderSwitch/SliderSwitch.d.ts +6 -2
  318. package/dist/components/SliderSwitch/SliderSwitch.js +14 -3
  319. package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
  320. package/dist/components/SliderSwitch/SliderSwitchButton.d.ts +4 -2
  321. package/dist/components/SliderSwitch/SliderSwitchButton.js +5 -5
  322. package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  323. package/dist/components/Snackbar/Snackbar.d.ts +3 -3
  324. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  325. package/dist/components/Switch/Switch.d.ts +3 -2
  326. package/dist/components/Switch/Switch.js +3 -6
  327. package/dist/components/Switch/Switch.js.map +1 -1
  328. package/dist/components/TabbarItem/TabbarItem.js +7 -1
  329. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  330. package/dist/components/Tabs/Tabs.d.ts +1 -1
  331. package/dist/components/Tappable/Tappable.d.ts +1 -1
  332. package/dist/components/Textarea/Textarea.d.ts +1 -1
  333. package/dist/components/Typography/Title/Title.d.ts +4 -1
  334. package/dist/components/Typography/Title/Title.js +7 -16
  335. package/dist/components/Typography/Title/Title.js.map +1 -1
  336. package/dist/components/View/View.d.ts +1 -1
  337. package/dist/components/View/View.js +29 -18
  338. package/dist/components/View/View.js.map +1 -1
  339. package/dist/components/View/ViewInfinite.d.ts +1 -1
  340. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +12 -0
  341. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +23 -0
  342. package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  343. package/dist/components.css +15 -12
  344. package/dist/components.css.map +1 -1
  345. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -14
  346. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  347. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
  348. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  349. package/dist/cssm/components/Alert/Alert.js +12 -13
  350. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  351. package/dist/cssm/components/AppRoot/AppRoot.js +1 -3
  352. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  353. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +25 -2
  354. package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
  355. package/dist/cssm/components/Banner/Banner.js +1 -1
  356. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  357. package/dist/cssm/components/Button/Button.css +9 -11
  358. package/dist/cssm/components/Button/Button.js +10 -4
  359. package/dist/cssm/components/Button/Button.js.map +1 -1
  360. package/dist/cssm/components/Card/Card.css +6 -1
  361. package/dist/cssm/components/Card/Card.js +3 -9
  362. package/dist/cssm/components/Card/Card.js.map +1 -1
  363. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  364. package/dist/cssm/components/CardScroll/CardScroll.js +16 -16
  365. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  366. package/dist/cssm/components/Chip/Chip.js +2 -6
  367. package/dist/cssm/components/Chip/Chip.js.map +1 -1
  368. package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
  369. package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
  370. package/dist/cssm/components/ConfigProvider/ConfigProvider.js +16 -7
  371. package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
  372. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  373. package/dist/cssm/components/ContentCard/ContentCard.js +10 -3
  374. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  375. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
  376. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  377. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  378. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  379. package/dist/cssm/components/Gradient/Gradient.js +5 -11
  380. package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
  381. package/dist/cssm/components/Header/Header.js +1 -1
  382. package/dist/cssm/components/Header/Header.js.map +1 -1
  383. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +5 -3
  384. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  385. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
  386. package/dist/cssm/components/IconButton/IconButton.js +7 -0
  387. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  388. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  389. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +2 -2
  390. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  391. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  392. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
  393. package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
  394. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  395. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  396. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +14 -7
  397. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  398. package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
  399. package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
  400. package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
  401. package/dist/cssm/components/PromoBanner/PromoBanner.js +6 -0
  402. package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
  403. package/dist/cssm/components/Root/Root.js +5 -0
  404. package/dist/cssm/components/Root/Root.js.map +1 -1
  405. package/dist/cssm/components/Search/Search.js +45 -22
  406. package/dist/cssm/components/Search/Search.js.map +1 -1
  407. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -0
  408. package/dist/cssm/components/SegmentedControl/SegmentedControl.js +95 -0
  409. package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -0
  410. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -0
  411. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +41 -0
  412. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -0
  413. package/dist/cssm/components/Select/Select.js.map +1 -1
  414. package/dist/cssm/components/SimpleCell/SimpleCell.js +21 -9
  415. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  416. package/dist/cssm/components/SliderSwitch/SliderSwitch.js +14 -3
  417. package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
  418. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +5 -5
  419. package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
  420. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  421. package/dist/cssm/components/Switch/Switch.css +1 -1
  422. package/dist/cssm/components/Switch/Switch.js +3 -6
  423. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  424. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -1
  425. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  426. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  427. package/dist/cssm/components/Typography/Title/Title.js +7 -16
  428. package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
  429. package/dist/cssm/components/View/View.js +29 -18
  430. package/dist/cssm/components/View/View.js.map +1 -1
  431. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -0
  432. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +24 -0
  433. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -0
  434. package/dist/cssm/hooks/usePlatform.js.map +1 -1
  435. package/dist/cssm/index.js +9 -8
  436. package/dist/cssm/index.js.map +1 -1
  437. package/dist/cssm/lib/platform.js.map +1 -1
  438. package/dist/cssm/lib/utils.js +3 -0
  439. package/dist/cssm/lib/utils.js.map +1 -1
  440. package/dist/cssm/styles/components.css +15 -12
  441. package/dist/cssm/styles/themes.css +1 -1
  442. package/dist/cssm/tokenized/index.js +5 -0
  443. package/dist/cssm/tokenized/index.js.map +1 -0
  444. package/dist/hooks/usePlatform.d.ts +1 -1
  445. package/dist/hooks/usePlatform.js.map +1 -1
  446. package/dist/index.d.ts +10 -8
  447. package/dist/index.js +9 -8
  448. package/dist/index.js.map +1 -1
  449. package/dist/lib/platform.d.ts +1 -1
  450. package/dist/lib/platform.js.map +1 -1
  451. package/dist/lib/utils.d.ts +1 -0
  452. package/dist/lib/utils.js +3 -0
  453. package/dist/lib/utils.js.map +1 -1
  454. package/dist/tokenized/index.d.ts +8 -0
  455. package/dist/tokenized/index.js +5 -0
  456. package/dist/tokenized/index.js.map +1 -0
  457. package/dist/vkui.css +16 -13
  458. package/dist/vkui.css.map +1 -1
  459. package/package.json +3 -3
  460. package/postcss.config.js +10 -1
  461. package/src/components/ActionSheetItem/ActionSheetItem.tsx +29 -28
  462. package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +1 -2
  463. package/src/components/Alert/Alert.tsx +15 -11
  464. package/src/components/AppRoot/AppRoot.tsx +0 -3
  465. package/src/components/AppearanceProvider/AppearanceProvider.tsx +27 -3
  466. package/src/components/Banner/Banner.tsx +1 -1
  467. package/src/components/Button/Button.css +9 -39
  468. package/src/components/Button/Button.tsx +8 -6
  469. package/src/components/Card/Card.css +45 -12
  470. package/src/components/Card/Card.tsx +2 -9
  471. package/src/components/CardScroll/CardScroll.css +11 -61
  472. package/src/components/CardScroll/CardScroll.tsx +19 -18
  473. package/src/components/CardScroll/Readme.md +3 -2
  474. package/src/components/Chip/Chip.tsx +1 -4
  475. package/src/components/ChipsInput/ChipsInput.tsx +1 -1
  476. package/src/components/ConfigProvider/ConfigProvider.tsx +26 -9
  477. package/src/components/ConfigProvider/ConfigProviderContext.tsx +5 -5
  478. package/src/components/ContentCard/ContentCard.tsx +8 -2
  479. package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
  480. package/src/components/Epic/Epic.tsx +8 -3
  481. package/src/components/FocusVisible/FocusVisible.css +4 -8
  482. package/src/components/FormItem/Readme.md +14 -2
  483. package/src/components/Gradient/Gradient.tsx +4 -12
  484. package/src/components/Gradient/Readme.md +1 -1
  485. package/src/components/Header/Header.tsx +1 -1
  486. package/src/components/HorizontalScroll/HorizontalScroll.tsx +10 -4
  487. package/src/components/HorizontalScroll/HorizontalScrollArrow.css +3 -1
  488. package/src/components/IconButton/IconButton.tsx +8 -0
  489. package/src/components/ModalCard/ModalCard.tsx +8 -3
  490. package/src/components/ModalCardBase/ModalCardBase.tsx +2 -2
  491. package/src/components/ModalPage/ModalPage.tsx +8 -3
  492. package/src/components/ModalRoot/ModalRootAdaptive.tsx +8 -3
  493. package/src/components/ModalRoot/Readme.md +1 -1
  494. package/src/components/ModalRoot/withModalRootContext.tsx +1 -1
  495. package/src/components/NativeSelect/NativeSelect.tsx +8 -3
  496. package/src/components/Panel/Panel.tsx +6 -3
  497. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +20 -12
  498. package/src/components/Placeholder/Placeholder.tsx +1 -1
  499. package/src/components/PopoutRoot/PopoutRoot.tsx +8 -5
  500. package/src/components/PromoBanner/PromoBanner.tsx +8 -0
  501. package/src/components/Root/Root.tsx +12 -2
  502. package/src/components/Search/Search.tsx +38 -14
  503. package/src/components/SegmentedControl/Readme.md +94 -0
  504. package/src/components/SegmentedControl/SegmentedControl.css +42 -0
  505. package/src/components/SegmentedControl/SegmentedControl.tsx +105 -0
  506. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +30 -0
  507. package/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.tsx +42 -0
  508. package/src/components/Select/Select.tsx +6 -5
  509. package/src/components/SimpleCell/SimpleCell.tsx +10 -6
  510. package/src/components/SliderSwitch/Readme.md +4 -0
  511. package/src/components/SliderSwitch/SliderSwitch.tsx +17 -3
  512. package/src/components/SliderSwitch/SliderSwitchButton.tsx +4 -4
  513. package/src/components/Snackbar/Snackbar.tsx +8 -3
  514. package/src/components/Switch/Switch.css +0 -12
  515. package/src/components/Switch/Switch.tsx +8 -10
  516. package/src/components/TabbarItem/TabbarItem.tsx +8 -1
  517. package/src/components/Typography/Title/Readme.md +28 -41
  518. package/src/components/Typography/Title/Title.css +22 -13
  519. package/src/components/Typography/Title/Title.tsx +27 -22
  520. package/src/components/View/View.tsx +15 -2
  521. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css +9 -0
  522. package/src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx +25 -0
  523. package/src/hooks/usePlatform.ts +1 -1
  524. package/src/index.ts +14 -8
  525. package/src/lib/platform.ts +5 -1
  526. package/src/lib/utils.ts +6 -0
  527. package/src/styles/components.css +3 -0
  528. package/src/styles/themes.css +6 -0
  529. package/src/testing/utils.tsx +1 -1
  530. package/src/tokenized/index.ts +15 -0
  531. package/types/global.d.ts +0 -5
  532. package/.cache/ts/src/tokenized/tokenized.d.ts +0 -2
  533. package/dist/cjs/tokenized/tokenized.d.ts +0 -2
  534. package/dist/cjs/tokenized/tokenized.js +0 -16
  535. package/dist/cjs/tokenized/tokenized.js.map +0 -1
  536. package/dist/cssm/tokenized/tokenized.js +0 -2
  537. package/dist/cssm/tokenized/tokenized.js.map +0 -1
  538. package/dist/tokenized/tokenized.d.ts +0 -2
  539. package/dist/tokenized/tokenized.js +0 -2
  540. package/dist/tokenized/tokenized.js.map +0 -1
  541. package/src/tokenized/tokenized.ts +0 -2
@@ -1,19 +1,17 @@
1
- .vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--regular, 28px);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular, 8px);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable, 0.4)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
1
+ .vkuiButton{position:relative;display:inline-block;box-sizing:border-box;text-decoration:none;border:0;min-height:28px;min-height:var(--vkui--size_button_small_height--compact);margin:0;padding:0;-webkit-user-select:none;user-select:none;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);max-width:100%}.vkuiButton--stretched{display:block;width:100%;flex-grow:1;flex-basis:0}.vkuiButton__in{display:flex;align-items:center;justify-content:center;width:100%;min-height:inherit;padding:1px 16px;text-align:center;box-sizing:border-box}.vkuiButton--aln-left .vkuiButton__in{justify-content:flex-start;text-align:left}.vkuiButton--aln-right .vkuiButton__in{justify-content:flex-end;text-align:right}.vkuiButton[disabled]{opacity:.4;opacity:var(--vkui--opacity_disable)}.vkuiButton--lvl-primary[disabled]:not(.vkuiButton--clr-overlay):not(.vkuiButton--clr-negative):not(.vkuiButton--clr-positive),.vkuiButton--lvl-secondary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-tertiary[disabled]:not(.vkuiButton--clr-overlay),.vkuiButton--lvl-outline[disabled]:not(.vkuiButton--clr-overlay){opacity:.64}.vkuiButton--singleIcon.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sz-m .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon.vkuiButton--sz-l .vkuiButton__in{padding:0 6px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-s .vkuiButton__in{padding:0 9px}.vkuiButton--singleIcon.vkuiButton--sizeY-regular.vkuiButton--sz-l .vkuiButton__in{padding:0 10px}.vkuiButton--singleIcon .vkuiButton__before:only-child,.vkuiButton--singleIcon .vkuiButton__after:only-child{margin:0}.vkuiButton__content{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vkuiButton__content--caps{-webkit-transform:translateY(0);transform:translateY(0)}.vkuiButton__spinner{position:absolute;left:0;top:0;right:0;bottom:0}.vkuiButton__spinner+.vkuiButton__in{visibility:hidden}.vkuiButton--lvl-primary.vkuiButton--clr-accent{background-color:#2d81e0;background-color:var(--button_primary_background,
2
2
  var(--vkui--color_background_accent)
3
- )}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover{background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active{background-color:var(--vkui--color_background_accent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-positive{background-color:#4bb34b;background-color:var(--button_commerce_background,
3
+ )}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover{background-color:#2483e4;background-color:var(--vkui--color_background_accent--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active{background-color:#237edd;background-color:var(--vkui--color_background_accent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-positive{background-color:#4bb34b;background-color:var(--button_commerce_background,
4
4
  var(--vkui--color_background_positive)
5
- )}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover{background-color:var(--vkui--color_background_positive--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active{background-color:var(--vkui--color_background_positive--active)}.vkuiButton--lvl-primary.vkuiButton--clr-negative{background-color:#e64646;background-color:var(--destructive, var(--vkui--color_background_negative))}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{background-color:var(--vkui--color_background_negative--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{background-color:var(--vkui--color_background_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral{background-color:#f5f5f5;background-color:var(--content_tint_background,
5
+ )}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover{background-color:#48ac4a;background-color:var(--vkui--color_background_positive--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active{background-color:#45a64a;background-color:var(--vkui--color_background_positive--active)}.vkuiButton--lvl-primary.vkuiButton--clr-negative{background-color:#e64646;background-color:var(--destructive, var(--vkui--color_background_negative))}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{background-color:#dd4446;background-color:var(--vkui--color_background_negative--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{background-color:#d44245;background-color:var(--vkui--color_background_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral{background-color:#f5f5f5;background-color:var(--content_tint_background,
6
6
  var(--vkui--color_background_secondary)
7
- )}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover{background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active{background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-secondary{background-color:#f5f5f5;background-color:var(--content_tint_background,
7
+ )}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-secondary{background-color:rgba(0,28,61,.05);background-color:var(--button_secondary_background,
8
8
  var(--vkui--color_background_secondary)
9
- )}.vkuiButton--vkcom.vkuiButton--lvl-secondary{background-color:#ebedf0;background-color:var(--control_background,
10
- var(--vkui--color_background_secondary)
11
- )}.vkuiButton--lvl-secondary.vkuiButton--hover{background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-secondary.vkuiButton--active{background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-tertiary,.vkuiButton--lvl-outline{background-color:transparent;background-color:var(--button_tertiary_background,
9
+ )}.vkuiButton--lvl-secondary.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover)}.vkuiButton--lvl-secondary.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active)}.vkuiButton--lvl-tertiary,.vkuiButton--lvl-outline{background-color:transparent;background-color:var(--button_tertiary_background,
12
10
  var(--vkui--color_transparent)
13
- )}.vkuiButton--lvl-tertiary.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--hover{background-color:var(--vkui--color_transparent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--active{background-color:var(--vkui--color_transparent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-accent{color:#fff;color:var(--button_primary_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-negative{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-positive{color:#fff;color:var(--button_commerce_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent{color:#2d81e0;color:var(--button_tertiary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-secondary.vkuiButton--clr-accent{color:#2688eb;color:var(--button_secondary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent{color:#2688eb;color:var(--button_outline_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{color:var(--vkui--color_text_accent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{color:var(--vkui--color_text_accent--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive,.vkuiButton--lvl-secondary.vkuiButton--clr-positive,.vkuiButton--lvl-outline.vkuiButton--clr-positive{color:#4bb34b;color:var(--button_commerce_background, var(--vkui--color_text_positive))}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{color:var(--vkui--color_text_positive--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{color:var(--vkui--color_text_positive--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative,.vkuiButton--lvl-secondary.vkuiButton--clr-negative,.vkuiButton--lvl-outline.vkuiButton--clr-negative{color:#e64646;color:var(--destructive, var(--vkui--color_text_negative))}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{color:var(--vkui--color_text_negative--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{color:var(--vkui--color_text_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral,.vkuiButton--lvl-outline.vkuiButton--clr-neutral{color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{color:var(--vkui--color_text_primary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{color:var(--vkui--color_text_primary--active)}.vkuiButton--lvl-outline.vkuiButton--clr-accent{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--button_outline_border, var(--vkui--color_stroke_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--active)}.vkuiButton--lvl-outline.vkuiButton--clr-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--button_commerce_background, var(--vkui--color_stroke_positive))}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active)}.vkuiButton--lvl-outline.vkuiButton--clr-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--destructive, var(--vkui--color_stroke_negative))}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active)}.vkuiButton--lvl-outline.vkuiButton--clr-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--field_border, var(--vkui--color_field_border_alpha))}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{background-color:var(--vkui--color_background_secondary--hover);box-shadow:unset}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{background-color:var(--vkui--color_background_secondary--active);box-shadow:unset}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{background-color:#fff;background-color:var(--media_overlay_button_background,
11
+ )}.vkuiButton--lvl-tertiary.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--hover{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--active{background-color:rgba(0,16,61,.08);background-color:var(--vkui--color_transparent--active)}.vkuiButton--lvl-primary.vkuiButton--clr-accent{color:#fff;color:var(--button_primary_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-negative{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-positive{color:#fff;color:var(--button_commerce_foreground, var(--vkui--color_text_contrast))}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-primary.vkuiButton--clr-negative.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent{color:#2d81e0;color:var(--button_tertiary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-secondary.vkuiButton--clr-accent{color:#2688eb;color:var(--button_secondary_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent{color:#2688eb;color:var(--button_outline_foreground, var(--vkui--color_text_accent))}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{color:#2483e4;color:var(--vkui--color_text_accent--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-accent.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{color:#237edd;color:var(--vkui--color_text_accent--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive,.vkuiButton--lvl-secondary.vkuiButton--clr-positive,.vkuiButton--lvl-outline.vkuiButton--clr-positive{color:#4bb34b;color:var(--button_commerce_background, var(--vkui--color_text_positive))}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{color:#48ac4a;color:var(--vkui--color_text_positive--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-positive.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{color:#45a64a;color:var(--vkui--color_text_positive--active)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative,.vkuiButton--lvl-secondary.vkuiButton--clr-negative,.vkuiButton--lvl-outline.vkuiButton--clr-negative{color:#e64646;color:var(--destructive, var(--vkui--color_text_negative))}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{color:#dd4446;color:var(--vkui--color_text_negative--hover)}.vkuiButton--lvl-tertiary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-negative.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{color:#d44245;color:var(--vkui--color_text_negative--active)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral,.vkuiButton--lvl-outline.vkuiButton--clr-neutral{color:#000;color:var(--text_primary, var(--vkui--color_text_primary))}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-secondary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-neutral.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary--active)}.vkuiButton--lvl-outline.vkuiButton--clr-accent{box-shadow:inset 0 0 0 1px #2688eb;box-shadow:inset 0 0 0 1px var(--button_outline_border, var(--vkui--color_stroke_accent))}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--hover{box-shadow:inset 0 0 0 1px #2483e4;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-accent.vkuiButton--active{box-shadow:inset 0 0 0 1px #237edd;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_accent--active)}.vkuiButton--lvl-outline.vkuiButton--clr-positive{box-shadow:inset 0 0 0 1px #4bb34b;box-shadow:inset 0 0 0 1px var(--button_commerce_background, var(--vkui--color_stroke_positive))}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--hover{box-shadow:inset 0 0 0 1px #48ac4a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-positive.vkuiButton--active{box-shadow:inset 0 0 0 1px #45a64a;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_positive--active)}.vkuiButton--lvl-outline.vkuiButton--clr-negative{box-shadow:inset 0 0 0 1px #e64646;box-shadow:inset 0 0 0 1px var(--destructive, var(--vkui--color_stroke_negative))}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--hover{box-shadow:inset 0 0 0 1px #dd4446;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-negative.vkuiButton--active{box-shadow:inset 0 0 0 1px #d44245;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_negative--active)}.vkuiButton--lvl-outline.vkuiButton--clr-neutral{box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);box-shadow:inset 0 0 0 1px var(--field_border, var(--vkui--color_field_border_alpha))}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--hover{background-color:#ebecee;background-color:var(--vkui--color_background_secondary--hover);box-shadow:unset}.vkuiButton--lvl-outline.vkuiButton--clr-neutral.vkuiButton--active{background-color:#e1e3e6;background-color:var(--vkui--color_background_secondary--active);box-shadow:unset}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{background-color:#fff;background-color:var(--media_overlay_button_background,
14
12
  var(--vkui--color_background_contrast)
15
- )}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{background-color:var(--vkui--color_background_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{background-color:var(--vkui--color_background_contrast--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay{background-color:rgba(255,255,255,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha,
13
+ )}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{background-color:#f5f5f7;background-color:var(--vkui--color_background_contrast--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{background-color:#ebecef;background-color:var(--vkui--color_background_contrast--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay{background-color:rgba(255,255,255,.2);background-color:var(--vkui--color_background_contrast_secondary_alpha,
16
14
  rgba(255, 255, 255, 0.2)
17
- )}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{background-color:var(--vkui--color_background_contrast_secondary_alpha--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{background-color:var(--vkui--color_background_contrast_secondary_alpha--active)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{color:#2c2d2e;color:var(--media_overlay_button_foreground,
15
+ )}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{background-color:rgba(255,255,255,.24);background-color:var(--vkui--color_background_contrast_secondary_alpha--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{background-color:rgba(255,255,255,.28);background-color:var(--vkui--color_background_contrast_secondary_alpha--active)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay{color:#2c2d2e;color:var(--media_overlay_button_foreground,
18
16
  var(--vkui--color_text_primary_invariably)
19
- )}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:var(--vkui--color_text_primary_invariably--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:var(--vkui--color_text_primary_invariably--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active)}.vkuiButton__before:not(:last-child){margin-left:-4px}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-l .vkuiButton__in{justify-content:center;padding-left:20px;padding-right:20px}.vkuiButton:not(.vkuiButton--sz-s) .vkuiButton__content{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.vkuiButton--ios{min-height:26px;border-radius:10px}.vkuiButton--vkcom{min-height:26px;border-radius:4px}.vkuiButton--vkcom.vkuiButton--lvl-secondary .vkuiIcon,.vkuiButton--vkcom.vkuiButton--lvl-tertiary .vkuiIcon,.vkuiButton--vkcom.vkuiButton--lvl-outline .vkuiIcon{opacity:.72}.vkuiButton--sz-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact, 32px)}.vkuiButton--sz-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact, 36px)}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular, 30px)}.vkuiButton--sizeY-regular.vkuiButton--sz-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular, 36px)}.vkuiButton--sizeY-regular.vkuiButton--sz-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular, 44px)}.vkuiBanner__actions>.vkuiButton{margin-top:12px;margin-right:16px;margin-bottom:6px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary{margin:4px 16px 2px -16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary:first-child{margin-top:4px}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton:not(.vkuiButton--lvl-tertiary){margin-top:0}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton--lvl-tertiary{margin-top:2px;margin-left:-16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary+.vkuiButton--lvl-tertiary{margin-top:2px}.vkuiModalCardBase__actions .vkuiButton{flex:1;margin-left:6px;margin-right:6px}.vkuiModalCardBase__actions--v .vkuiButton{margin-left:0;margin-right:0}.vkuiModalCardBase__actions--v .vkuiButton+.vkuiButton{margin-top:12px}.vkuiRichCell__actions .vkuiButton+.vkuiButton{margin-left:8px}
17
+ )}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--hover{color:#000102;color:var(--vkui--color_text_primary_invariably--hover)}.vkuiButton--lvl-primary.vkuiButton--clr-overlay.vkuiButton--active{color:#000105;color:var(--vkui--color_text_primary_invariably--active)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay,.vkuiButton--lvl-outline.vkuiButton--clr-overlay{color:#fff;color:var(--white, var(--vkui--color_text_contrast))}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--hover,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{color:#f5f5f7;color:var(--vkui--color_text_contrast--hover)}.vkuiButton--lvl-secondary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-tertiary.vkuiButton--clr-overlay.vkuiButton--active,.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{color:#ebecef;color:var(--vkui--color_text_contrast--active)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay{box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px var(--white, var(--vkui--color_stroke_contrast))}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--hover{box-shadow:inset 0 0 0 1px #f5f5f7;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--hover)}.vkuiButton--lvl-outline.vkuiButton--clr-overlay.vkuiButton--active{box-shadow:inset 0 0 0 1px #ebecef;box-shadow:inset 0 0 0 1px var(--vkui--color_stroke_contrast--active)}.vkuiButton__before:not(:last-child){margin-left:-4px}.vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:6px}.vkuiButton__after:not(:first-child){margin-left:6px}.vkuiButton--sz-l .vkuiButton__before:not(:last-child)+.vkuiButton__content{margin-left:8px}.vkuiButton--sz-l .vkuiButton__after:not(:first-child){margin-left:8px}.vkuiButton--sz-l .vkuiButton__in{justify-content:center;padding-left:20px;padding-right:20px}.vkuiButton:not(.vkuiButton--sz-s) .vkuiButton__content{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.vkuiButton--sz-m{min-height:32px;min-height:var(--vkui--size_button_medium_height--compact)}.vkuiButton--sz-l{min-height:36px;min-height:var(--vkui--size_button_large_height--compact)}.vkuiButton--sizeY-regular{min-height:30px;min-height:var(--vkui--size_button_small_height--regular)}.vkuiButton--sizeY-regular.vkuiButton--sz-m{min-height:36px;min-height:var(--vkui--size_button_medium_height--regular)}.vkuiButton--sizeY-regular.vkuiButton--sz-l{min-height:44px;min-height:var(--vkui--size_button_large_height--regular)}.vkuiBanner__actions>.vkuiButton{margin-top:12px;margin-right:16px;margin-bottom:6px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary{margin:4px 16px 2px -16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary:first-child{margin-top:4px}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton:not(.vkuiButton--lvl-tertiary){margin-top:0}.vkuiBanner__actions>.vkuiButton:not(.vkuiButton--lvl-tertiary)+.vkuiButton--lvl-tertiary{margin-top:2px;margin-left:-16px}.vkuiBanner__actions>.vkuiButton--lvl-tertiary+.vkuiButton--lvl-tertiary{margin-top:2px}.vkuiModalCardBase__actions .vkuiButton{flex:1;margin-left:6px;margin-right:6px}.vkuiModalCardBase__actions--v .vkuiButton{margin-left:0;margin-right:0}.vkuiModalCardBase__actions--v .vkuiButton+.vkuiButton{margin-top:12px}.vkuiRichCell__actions .vkuiButton+.vkuiButton{margin-left:8px}
@@ -5,7 +5,6 @@ var _excluded = ["size", "sizeY", "platform"],
5
5
  _excluded2 = ["size", "mode", "appearance", "stretched", "align", "children", "before", "after", "getRootRef", "sizeY", "Component", "loading", "onClick"];
6
6
  import { createScopedElement } from "../../lib/jsxRuntime";
7
7
  import * as React from "react";
8
- import { getClassName } from "../../helpers/getClassName";
9
8
  import { classNames } from "../../lib/classNames";
10
9
  import { ConfigProviderContext } from "../ConfigProvider/ConfigProviderContext";
11
10
  import Tappable from "../Tappable/Tappable";
@@ -15,8 +14,9 @@ import Subhead from "../Typography/Subhead/Subhead";
15
14
  import Caption from "../Typography/Caption/Caption";
16
15
  import { usePlatform } from "../../hooks/usePlatform";
17
16
  import { SizeType, withAdaptivity } from "../../hoc/withAdaptivity";
18
- import { IOS, VKCOM } from "../../lib/platform";
17
+ import { IOS, VKCOM, ANDROID } from "../../lib/platform";
19
18
  import Spinner from "../Spinner/Spinner";
19
+ import Headline from "../Typography/Headline/Headline";
20
20
  import "./Button.css";
21
21
 
22
22
  var ButtonTypography = function ButtonTypography(props) {
@@ -35,9 +35,15 @@ var ButtonTypography = function ButtonTypography(props) {
35
35
  }, restProps));
36
36
  }
37
37
 
38
+ if (platform === ANDROID) {
39
+ return createScopedElement(Headline, _extends({
40
+ weight: "medium"
41
+ }, restProps));
42
+ }
43
+
38
44
  return createScopedElement(Title, _extends({
39
45
  level: "3",
40
- weight: "medium"
46
+ weight: "2"
41
47
  }, restProps));
42
48
 
43
49
  case "m":
@@ -157,7 +163,7 @@ var Button = function Button(props) {
157
163
  Component: restProps.href ? "a" : Component,
158
164
  onClick: loading ? undefined : onClick,
159
165
  focusVisibleMode: "outside",
160
- vkuiClass: classNames(getClassName("Button", platform), "Button--sz-".concat(size), "Button--lvl-".concat(resolvedMode), "Button--clr-".concat(resolvedAppearance), "Button--aln-".concat(align), "Button--sizeY-".concat(sizeY), (_classNames = {}, _defineProperty(_classNames, "Button--stretched", stretched), _defineProperty(_classNames, "Button--with-icon", hasIcons), _defineProperty(_classNames, "Button--singleIcon", Boolean(!children && !after && before || !children && after && !before)), _classNames)),
166
+ vkuiClass: classNames("Button", "Button--sz-".concat(size), "Button--lvl-".concat(resolvedMode), "Button--clr-".concat(resolvedAppearance), "Button--aln-".concat(align), "Button--sizeY-".concat(sizeY), (_classNames = {}, _defineProperty(_classNames, "Button--stretched", stretched), _defineProperty(_classNames, "Button--with-icon", hasIcons), _defineProperty(_classNames, "Button--singleIcon", Boolean(!children && !after && before || !children && after && !before)), _classNames)),
161
167
  getRootRef: getRootRef,
162
168
  hoverMode: hasNewTokens ? "Button--hover" : "background",
163
169
  activeMode: hasNewTokens ? "Button--active" : "opacity"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","getClassName","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","Spinner","ButtonTypography","props","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","useContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { Platform, IOS, VKCOM } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: Platform | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n\n return <Title level=\"3\" weight=\"medium\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead\n weight={platform === VKCOM ? \"regular\" : \"medium\"}\n {...restProps}\n />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n getClassName(\"Button\", platform),\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
1
+ {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["React","classNames","ConfigProviderContext","Tappable","Title","Text","Subhead","Caption","usePlatform","SizeType","withAdaptivity","IOS","VKCOM","ANDROID","Spinner","Headline","ButtonTypography","props","size","sizeY","platform","restProps","isCompact","COMPACT","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","Button","stretched","align","children","before","after","getRootRef","Component","loading","onClick","hasIcons","Boolean","hasNewTokens","useContext","href","defaultProps","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport Tappable, { TappableProps } from \"../Tappable/Tappable\";\nimport Title from \"../Typography/Title/Title\";\nimport Text from \"../Typography/Text/Text\";\nimport Subhead from \"../Typography/Subhead/Subhead\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport Spinner from \"../Spinner/Spinner\";\nimport Headline from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography: React.FC<ButtonTypographyProps> = (\n props: ButtonTypographyProps\n) => {\n const { size, sizeY, platform, ...restProps } = props;\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"medium\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"medium\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead\n weight={platform === VKCOM ? \"regular\" : \"medium\"}\n {...restProps}\n />\n );\n }\n\n return <Text weight=\"medium\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption level=\"1\" weight=\"regular\" {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption level=\"1\" weight=\"medium\" {...restProps} />;\n }\n\n return <Subhead weight=\"medium\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst Button: React.FC<ButtonProps> = (props: ButtonProps) => {\n const platform = usePlatform();\n const {\n size,\n mode,\n appearance,\n stretched,\n align,\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n ...restProps\n } = props;\n const hasIcons = Boolean(before || after);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n {\n [\"Button--stretched\"]: stretched,\n [\"Button--with-icon\"]: hasIcons,\n [\"Button--singleIcon\"]: Boolean(\n (!children && !after && before) || (!children && after && !before)\n ),\n }\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && <span vkuiClass=\"Button__before\">{before}</span>}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && <span vkuiClass=\"Button__after\">{after}</span>}\n </span>\n </Tappable>\n );\n};\n\nButton.defaultProps = {\n mode: \"primary\",\n align: \"center\",\n size: \"s\",\n stretched: false,\n stopPropagation: true,\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(Button, {\n sizeY: true,\n});\n"],"file":"Button.js"}
@@ -1 +1,6 @@
1
- .vkuiCard{position:relative;background:#f5f5f5;background:var(--content_tint_background)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 2px 24px 0 rgba(0,0,0,.08),0 0 2px 0 rgba(0,0,0,.08);background:#fff;background:var(--modal_card_background)}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background)}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border);z-index:1;box-sizing:border-box;border-radius:inherit}.vkuiCard--ios{border-radius:10px}.vkuiCard--android,.vkuiCard--vkcom{border-radius:8px}
1
+ .vkuiCard{position:relative;background:#f5f5f5;background:var(--content_tint_background,
2
+ var(--vkui--color_background_secondary)
3
+ );border-radius:8px;border-radius:var(--vkui--size_card_border_radius--regular)}.vkuiCard__in{position:relative;z-index:2;border-radius:inherit}.vkuiCard--md-shadow{box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.8);box-shadow:var(--vkui--elevation3,
4
+ 0 2px 24px 0 rgba(0, 0, 0, 0.08),
5
+ 0 0 2px 0 rgba(0, 0, 0, 0.08)
6
+ );background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline{background:#fff;background:var(--modal_card_background, var(--vkui--color_background_modal))}.vkuiCard--md-outline::before{position:absolute;left:0;top:0;width:100%;height:100%;content:"";display:block;border:1px solid #e1e3e6;border:var(--thin-border) solid var(--input_border, var(--vkui--color_image_border_alpha));z-index:1;box-sizing:border-box;border-radius:inherit}.vkuiCardScroll .vkuiCard{margin-right:8px;margin-right:var(--vkui--size_cardgrid_padding--regular);flex-shrink:0}.vkuiCardScroll .vkuiCard:last-of-type{margin-right:0}.vkuiCardScroll--s .vkuiCard{width:40%}.vkuiCardScroll--m .vkuiCard{width:62%}.vkuiCardScroll--l .vkuiCard{width:100%}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px);margin-right:16px}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard:last-of-type,.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard:last-of-type{margin-right:0}
@@ -6,9 +6,9 @@ import { classNames } from "../../lib/classNames";
6
6
  import { getClassName } from "../../helpers/getClassName";
7
7
  import { usePlatform } from "../../hooks/usePlatform";
8
8
  import "./Card.css";
9
-
10
- var Card = function Card(_ref) {
11
- var mode = _ref.mode,
9
+ export var Card = function Card(_ref) {
10
+ var _ref$mode = _ref.mode,
11
+ mode = _ref$mode === void 0 ? "tint" : _ref$mode,
12
12
  children = _ref.children,
13
13
  getRootRef = _ref.getRootRef,
14
14
  restProps = _objectWithoutProperties(_ref, _excluded);
@@ -21,10 +21,4 @@ var Card = function Card(_ref) {
21
21
  vkuiClass: "Card__in"
22
22
  }, children));
23
23
  };
24
-
25
- Card.defaultProps = {
26
- mode: "tint"
27
- }; // eslint-disable-next-line import/no-default-export
28
-
29
- export default Card;
30
24
  //# sourceMappingURL=Card.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Card/Card.tsx"],"names":["classNames","getClassName","usePlatform","Card","mode","children","getRootRef","restProps","platform","defaultProps"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA;;AAQA,IAAMC,IAAwC,GAAG,SAA3CA,IAA2C,OAKhC;AAAA,MAJfC,IAIe,QAJfA,IAIe;AAAA,MAHfC,QAGe,QAHfA,QAGe;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGN,WAAW,EAA5B;AAEA,SACE,wCACMK,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,MAAD,EAASO,QAAT,CAAb,qBAA6CJ,IAA7C;AAHvB,MAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA2BC,QAA3B,CALF,CADF;AASD,CAjBD;;AAmBAF,IAAI,CAACM,YAAL,GAAoB;AAClBL,EAAAA,IAAI,EAAE;AADY,CAApB,C,CAIA;;AACA,eAAeD,IAAf","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Card.css\";\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n mode?: \"tint\" | \"shadow\" | \"outline\";\n}\n\nconst Card: React.FunctionComponent<CardProps> = ({\n mode,\n children,\n getRootRef,\n ...restProps\n}: CardProps) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName(\"Card\", platform), `Card--md-${mode}`)}\n >\n <div vkuiClass=\"Card__in\">{children}</div>\n </div>\n );\n};\n\nCard.defaultProps = {\n mode: \"tint\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Card;\n"],"file":"Card.js"}
1
+ {"version":3,"sources":["../../../../src/components/Card/Card.tsx"],"names":["classNames","getClassName","usePlatform","Card","mode","children","getRootRef","restProps","platform"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AAEA;AAQA,OAAO,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAKxB;AAAA,uBAJfC,IAIe;AAAA,MAJfA,IAIe,0BAJR,MAIQ;AAAA,MAHfC,QAGe,QAHfA,QAGe;AAAA,MAFfC,UAEe,QAFfA,UAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGN,WAAW,EAA5B;AAEA,SACE,wCACMK,SADN;AAEE,IAAA,GAAG,EAAED,UAFP;AAGE,IAAA,SAAS,EAAEN,UAAU,CAACC,YAAY,CAAC,MAAD,EAASO,QAAT,CAAb,qBAA6CJ,IAA7C;AAHvB,MAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA2BC,QAA3B,CALF,CADF;AASD,CAjBM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Card.css\";\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n mode?: \"tint\" | \"shadow\" | \"outline\";\n}\n\nexport const Card: React.FC<CardProps> = ({\n mode = \"tint\",\n children,\n getRootRef,\n ...restProps\n}: CardProps) => {\n const platform = usePlatform();\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(getClassName(\"Card\", platform), `Card--md-${mode}`)}\n >\n <div vkuiClass=\"Card__in\">{children}</div>\n </div>\n );\n};\n"],"file":"Card.js"}
@@ -1 +1 @@
1
- .vkuiCardScroll__in{display:flex;align-items:stretch}.vkuiCardScroll .vkuiCard{margin-right:8px;flex-shrink:0}.vkuiCardScroll__gap{display:block;flex-shrink:0}.vkuiCardScroll+.vkuiCardScroll{margin-top:16px}.vkuiCardScroll .vkuiCard:last-of-type{margin-right:0}.vkuiCardScroll--s .vkuiCard{width:40%}.vkuiCardScroll--m .vkuiCard{width:62%}.vkuiCardScroll--l .vkuiCard{width:100%}.vkuiCardScroll--ios .vkuiCardScroll__gap{width:12px}.vkuiCardScroll--android .vkuiCardScroll__gap,.vkuiCardScroll--vkcom .vkuiCardScroll__gap{width:16px}.vkuiSplitCol--spaced .vkuiCardScroll{margin-left:-16px;margin-right:-16px}.vkuiSplitCol--spaced .vkuiCardScroll__gap{width:16px}.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px)}.vkuiSplitCol--spaced .vkuiCardScroll--l .vkuiCard:not(:last-of-type){margin-right:16px}.vkuiGroup--card .vkuiCardScroll{margin-left:-8px;margin-right:-8px}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard{width:calc(100% - 32px)}.vkuiGroup--card .vkuiCardScroll--l .vkuiCard:not(:last-of-type){margin-right:16px}.vkuiGroup--card .vkuiCardScroll:first-child{padding-top:8px}.vkuiGroup--card .vkuiCardScroll:last-child{padding-bottom:8px}
1
+ .vkuiCardScroll__in{display:flex;align-items:stretch}.vkuiCardScroll__gap{display:block;flex-shrink:0}.vkuiCardScroll+.vkuiCardScroll{margin-top:16px}.vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px;width:var(--vkui--size_base_padding_horizontal--regular)}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll{margin-left:-16px;margin-right:-16px}.vkuiSplitCol--spaced .vkuiCardScroll--withSpaces .vkuiCardScroll__gap{width:16px}.vkuiGroup--card .vkuiCardScroll--withSpaces{margin-left:-8px;margin-right:-8px}.vkuiGroup--card .vkuiCardScroll--withSpaces:first-child{padding-top:8px;padding-top:var(--vkui--size_cardgrid_padding_vertical--regular)}.vkuiGroup--card .vkuiCardScroll--withSpaces:last-child{padding-bottom:8px;padding-bottom:var(--vkui--size_cardgrid_padding_vertical--regular)}
@@ -1,23 +1,31 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "size", "sizeX"];
4
+ var _excluded = ["children", "size", "showArrows", "withSpaces"];
4
5
  import { createScopedElement } from "../../lib/jsxRuntime";
5
6
  import * as React from "react";
6
7
  import { classNames } from "../../lib/classNames";
7
8
  import { getClassName } from "../../helpers/getClassName";
9
+ import { useAdaptivity } from "../../hooks/useAdaptivity";
8
10
  import { usePlatform } from "../../hooks/usePlatform";
9
11
  import HorizontalScroll from "../HorizontalScroll/HorizontalScroll";
10
- import { withAdaptivity } from "../../hoc/withAdaptivity";
11
12
  import { useDOM } from "../../lib/dom";
12
13
  import "./CardScroll.css";
13
-
14
- var CardScroll = function CardScroll(_ref) {
14
+ export var CardScroll = function CardScroll(_ref) {
15
15
  var children = _ref.children,
16
- size = _ref.size,
17
- sizeX = _ref.sizeX,
16
+ _ref$size = _ref.size,
17
+ size = _ref$size === void 0 ? "s" : _ref$size,
18
+ _ref$showArrows = _ref.showArrows,
19
+ showArrows = _ref$showArrows === void 0 ? true : _ref$showArrows,
20
+ _ref$withSpaces = _ref.withSpaces,
21
+ withSpaces = _ref$withSpaces === void 0 ? true : _ref$withSpaces,
18
22
  restProps = _objectWithoutProperties(_ref, _excluded);
19
23
 
20
24
  var platform = usePlatform();
25
+
26
+ var _useAdaptivity = useAdaptivity(),
27
+ sizeX = _useAdaptivity.sizeX;
28
+
21
29
  var refContainer = React.useRef(null);
22
30
  var gapRef = React.useRef(null);
23
31
 
@@ -70,11 +78,11 @@ var CardScroll = function CardScroll(_ref) {
70
78
  }
71
79
 
72
80
  return createScopedElement("div", _extends({}, restProps, {
73
- vkuiClass: classNames(getClassName("CardScroll", platform), "CardScroll--".concat(size), "CardScroll--sizeX-".concat(sizeX))
81
+ vkuiClass: classNames(getClassName("CardScroll", platform), "CardScroll--sizeX-".concat(sizeX), "CardScroll--".concat(size), _defineProperty({}, "CardScroll--withSpaces", withSpaces))
74
82
  }), createScopedElement(HorizontalScroll, {
75
83
  getScrollToLeft: getScrollToLeft,
76
84
  getScrollToRight: getScrollToRight,
77
- showArrows: true
85
+ showArrows: showArrows
78
86
  }, createScopedElement("div", {
79
87
  vkuiClass: "CardScroll__in",
80
88
  ref: refContainer
@@ -85,12 +93,4 @@ var CardScroll = function CardScroll(_ref) {
85
93
  vkuiClass: "CardScroll__gap"
86
94
  }))));
87
95
  };
88
-
89
- CardScroll.defaultProps = {
90
- size: "s"
91
- }; // eslint-disable-next-line import/no-default-export
92
-
93
- export default withAdaptivity(CardScroll, {
94
- sizeX: true
95
- });
96
96
  //# sourceMappingURL=CardScroll.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["React","classNames","getClassName","usePlatform","HorizontalScroll","withAdaptivity","useDOM","CardScroll","children","size","sizeX","restProps","platform","refContainer","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","Array","from","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","prototype","find","call","defaultProps"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,OAAOC,gBAAP;AACA,SAASC,cAAT;AACA,SAASC,MAAT;AACA;;AAQA,IAAMC,UAAqC,GAAG,SAAxCA,UAAwC,OAKvB;AAAA,MAJrBC,QAIqB,QAJrBA,QAIqB;AAAA,MAHrBC,IAGqB,QAHrBA,IAGqB;AAAA,MAFrBC,KAEqB,QAFrBA,KAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,MAAMU,YAAY,GAAGb,KAAK,CAACc,MAAN,CAA6B,IAA7B,CAArB;AACA,MAAMC,MAAM,GAAGf,KAAK,CAACc,MAAN,CAA6B,IAA7B,CAAf;;AAEA,gBAAmBR,MAAM,EAAzB;AAAA,MAAQU,MAAR,WAAQA,MAAR;;AAEA,WAASC,eAAT,CAAyBC,MAAzB,EAAiD;AAC/C,QAAI,CAACL,YAAY,CAACM,OAAd,IAAyB,CAACJ,MAAM,CAACI,OAArC,EAA8C;AAC5C,aAAOD,MAAP;AACD;;AACD,QAAME,cAAc,GAAGP,YAAY,CAACM,OAAb,CAAqBE,WAA5C;AACA,QAAMC,UAAU,GACdC,KAAK,CAACC,IAAN,CAAWX,YAAY,CAACM,OAAb,CAAqBX,QAAhC,CADiB,CAEjBiB,SAFiB,CAGjB,UAACC,EAAD;AAAA,aACEA,EAAE,CAACC,UAAH,GACED,EAAE,CAACL,WADL,GAEEO,QAAQ,CAACZ,MAAM,CAAEa,gBAAR,CAAyBH,EAAzB,EAA6BI,WAA9B,CAFV,GAGEZ,MAHF,IAIA,CALF;AAAA,KAHiB,CAAnB;;AAWA,QAAII,UAAU,KAAK,CAAC,CAApB,EAAuB;AACrB,aAAOJ,MAAP;AACD;;AAED,QAAII,UAAU,KAAK,CAAnB,EAAsB;AACpB,aAAO,CAAP;AACD;;AAED,QAAMS,KAAK,GAAGlB,YAAY,CAACM,OAAb,CAAqBX,QAArB,CAA8Bc,UAA9B,CAAd;AAEA,QAAMU,QAAQ,GACZD,KAAK,CAACJ,UAAN,IACCP,cAAc,GAAGW,KAAK,CAACV,WADxB,IAEAN,MAAM,CAACI,OAAP,CAAeE,WAHjB;;AAKA,QAAIW,QAAQ,IAAI,IAAIjB,MAAM,CAACI,OAAP,CAAeE,WAAnC,EAAgD;AAC9C,aAAO,CAAP;AACD;;AAED,WAAOW,QAAP;AACD;;AAED,WAASC,gBAAT,CAA0Bf,MAA1B,EAAkD;AAChD,QAAI,CAACL,YAAY,CAACM,OAAd,IAAyB,CAACJ,MAAM,CAACI,OAArC,EAA8C;AAC5C,aAAOD,MAAP;AACD;;AAED,QAAME,cAAc,GAAGP,YAAY,CAACM,OAAb,CAAqBE,WAA5C;AACA,QAAMU,KAAK,GAAGR,KAAK,CAACW,SAAN,CAAgBC,IAAhB,CAAqBC,IAArB,CACZvB,YAAY,CAACM,OAAb,CAAqBX,QADT,EAEZ,UAACkB,EAAD;AAAA,aACEA,EAAE,CAACC,UAAH,GAAgBD,EAAE,CAACL,WAAnB,GAAiCH,MAAjC,GAA0CE,cAD5C;AAAA,KAFY,CAAd;;AAMA,QAAI,CAACW,KAAL,EAAY;AACV,aAAOb,MAAP;AACD;;AAED,WAAOa,KAAK,CAACJ,UAAN,GAAmBZ,MAAM,CAACI,OAAP,CAAeE,WAAzC;AACD;;AAED,SACE,wCACMV,SADN;AAEE,IAAA,SAAS,EAAEV,UAAU,CACnBC,YAAY,CAAC,YAAD,EAAeU,QAAf,CADO,wBAEJH,IAFI,+BAGEC,KAHF;AAFvB,MAQE,oBAAC,gBAAD;AACE,IAAA,eAAe,EAAEO,eADnB;AAEE,IAAA,gBAAgB,EAAEgB,gBAFpB;AAGE,IAAA,UAAU,EAAE;AAHd,KAKE;AAAK,IAAA,SAAS,EAAC,gBAAf;AAAgC,IAAA,GAAG,EAAEpB;AAArC,KACE;AAAM,IAAA,SAAS,EAAC,iBAAhB;AAAkC,IAAA,GAAG,EAAEE;AAAvC,IADF,EAEGP,QAFH,EAGE;AAAM,IAAA,SAAS,EAAC;AAAhB,IAHF,CALF,CARF,CADF;AAsBD,CA5FD;;AA8FAD,UAAU,CAAC8B,YAAX,GAA0B;AACxB5B,EAAAA,IAAI,EAAE;AADkB,CAA1B,C,CAIA;;AACA,eAAeJ,cAAc,CAACE,UAAD,EAAa;AAAEG,EAAAA,KAAK,EAAE;AAAT,CAAb,CAA7B","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport HorizontalScroll from \"../HorizontalScroll/HorizontalScroll\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./CardScroll.css\";\n\nexport interface CardScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n AdaptivityProps {\n size?: \"s\" | \"m\" | \"l\";\n}\n\nconst CardScroll: React.FC<CardScrollProps> = ({\n children,\n size,\n sizeX,\n ...restProps\n}: CardScrollProps) => {\n const platform = usePlatform();\n\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = (\n Array.from(refContainer.current.children) as HTMLElement[]\n ).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft -\n (containerWidth - slide.offsetWidth) +\n gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) =>\n el.offsetLeft + el.offsetWidth - offset > containerWidth\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"CardScroll\", platform),\n `CardScroll--${size}`,\n `CardScroll--sizeX-${sizeX}`\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={true}\n >\n <div vkuiClass=\"CardScroll__in\" ref={refContainer}>\n <span vkuiClass=\"CardScroll__gap\" ref={gapRef} />\n {children}\n <span vkuiClass=\"CardScroll__gap\" />\n </div>\n </HorizontalScroll>\n </div>\n );\n};\n\nCardScroll.defaultProps = {\n size: \"s\",\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default withAdaptivity(CardScroll, { sizeX: true });\n"],"file":"CardScroll.js"}
1
+ {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["React","classNames","getClassName","useAdaptivity","usePlatform","HorizontalScroll","useDOM","CardScroll","children","size","showArrows","withSpaces","restProps","platform","sizeX","refContainer","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","Array","from","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","prototype","find","call"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport HorizontalScroll, {\n HorizontalScrollProps,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./CardScroll.css\";\n\nexport interface CardScrollProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: \"s\" | \"m\" | \"l\" | false;\n showArrows?: HorizontalScrollProps[\"showArrows\"];\n withSpaces?: boolean;\n}\n\nexport const CardScroll: React.FC<CardScrollProps> = ({\n children,\n size = \"s\",\n showArrows = true,\n withSpaces = true,\n ...restProps\n}: CardScrollProps) => {\n const platform = usePlatform();\n const { sizeX } = useAdaptivity();\n\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = (\n Array.from(refContainer.current.children) as HTMLElement[]\n ).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft -\n (containerWidth - slide.offsetWidth) +\n gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) =>\n el.offsetLeft + el.offsetWidth - offset > containerWidth\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"CardScroll\", platform),\n `CardScroll--sizeX-${sizeX}`,\n `CardScroll--${size}`,\n { [\"CardScroll--withSpaces\"]: withSpaces }\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n >\n <div vkuiClass=\"CardScroll__in\" ref={refContainer}>\n <span vkuiClass=\"CardScroll__gap\" ref={gapRef} />\n {children}\n <span vkuiClass=\"CardScroll__gap\" />\n </div>\n </HorizontalScroll>\n </div>\n );\n};\n"],"file":"CardScroll.js"}
@@ -9,8 +9,7 @@ import { classNames } from "../../lib/classNames";
9
9
  import Caption from "../Typography/Caption/Caption";
10
10
  import Tappable from "../Tappable/Tappable";
11
11
  import "./Chip.css";
12
-
13
- var Chip = function Chip(_ref) {
12
+ export var Chip = function Chip(_ref) {
14
13
  var _ref$value = _ref.value,
15
14
  value = _ref$value === void 0 ? "" : _ref$value,
16
15
  option = _ref.option,
@@ -59,8 +58,5 @@ var Chip = function Chip(_ref) {
59
58
  }, createScopedElement(Icon16Cancel, {
60
59
  "aria-hidden": true
61
60
  }))));
62
- }; // eslint-disable-next-line import/no-default-export
63
-
64
-
65
- export default Chip;
61
+ };
66
62
  //# sourceMappingURL=Chip.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Chip/Chip.tsx"],"names":["React","Icon16Cancel","getTitleFromChildren","hasReactNode","noop","classNames","Caption","Tappable","Chip","value","option","removable","onRemove","removeAriaLabel","before","after","children","restProps","onRemoveWrapper","useCallback","event","title"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,SAASC,oBAAT,EAA+BC,YAA/B,EAA6CC,IAA7C;AACA,SAASC,UAAT;AACA,OAAOC,OAAP;AACA,OAAOC,QAAP;AACA;;AAcA,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAUjB;AAAA,wBATfC,KASe;AAAA,MATfA,KASe,2BATP,EASO;AAAA,MARfC,MAQe,QARfA,MAQe;AAAA,4BAPfC,SAOe;AAAA,MAPfA,SAOe,+BAPH,IAOG;AAAA,2BANfC,QAMe;AAAA,MANfA,QAMe,8BANJR,IAMI;AAAA,kCALfS,eAKe;AAAA,MALfA,eAKe,qCALG,SAKH;AAAA,yBAJfC,MAIe;AAAA,MAJfA,MAIe,4BAJN,IAIM;AAAA,MAHfC,KAGe,QAHfA,KAGe;AAAA,MAFfC,QAEe,QAFfA,QAEe;AAAA,MADZC,SACY;;AACf,MAAMC,eAAe,GAAGlB,KAAK,CAACmB,WAAN,CACtB,UAACC,KAAD,EAA6B;AAC3BR,IAAAA,QAAQ,CAACQ,KAAD,EAAQX,KAAR,CAAR;AACD,GAHqB,EAItB,CAACG,QAAD,EAAWH,KAAX,CAJsB,CAAxB;AAMA,MAAMY,KAAK,GAAGnB,oBAAoB,CAACc,QAAD,CAAlC;AAEA,SACE;AACE,IAAA,SAAS,EAAEX,UAAU,CAAC,MAAD,EAAS;AAAE,yBAAmBM;AAArB,KAAT,CADvB;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,kBAAYU;AAHd,KAIMJ,SAJN,GAME;AAAK,IAAA,SAAS,EAAC,UAAf;AAA0B,IAAA,IAAI,EAAC;AAA/B,KACGd,YAAY,CAACW,MAAD,CAAZ,IAAwB;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+BA,MAA/B,CAD3B,EAEE,oBAAC,OAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC,eAHZ;AAIE,IAAA,KAAK,EAAEO,KAJT;AAKE,mBAAY;AALd,KAOGL,QAPH,CAFF,EAWGb,YAAY,CAACY,KAAD,CAAZ,IAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8BA,KAA9B,CAX1B,EAaGJ,SAAS,IACR,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,QADZ;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,OAAO,EAAEO,eAHX;AAIE,IAAA,QAAQ,EAAE,KAJZ;AAKE,IAAA,SAAS,EAAE,KALb;AAME,4BAAeL,eAAf,cAAkCQ,KAAlC;AANF,KAQE,oBAAC,YAAD;AAAc,mBAAa;AAA3B,IARF,CAdJ,CANF,CADF;AAmCD,CAtDD,C,CAwDA;;;AACA,eAAeb,IAAf","sourcesContent":["import * as React from \"react\";\nimport { Icon16Cancel } from \"@vkontakte/icons\";\nimport { getTitleFromChildren, hasReactNode, noop } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Tappable from \"../Tappable/Tappable\";\nimport \"./Chip.css\";\n\ntype ChipValue = string | number;\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {\n value: ChipValue;\n option?: { value?: ChipValue };\n onRemove?: (event?: React.MouseEvent, value?: ChipValue) => void;\n removable?: boolean;\n removeAriaLabel?: string;\n before?: React.ReactNode;\n after?: React.ReactNode;\n}\n\nconst Chip: React.FC<ChipProps> = ({\n value = \"\",\n option,\n removable = true,\n onRemove = noop,\n removeAriaLabel = \"Удалить\",\n before = null,\n after,\n children,\n ...restProps\n}: ChipProps) => {\n const onRemoveWrapper = React.useCallback(\n (event: React.MouseEvent) => {\n onRemove(event, value);\n },\n [onRemove, value]\n );\n const title = getTitleFromChildren(children);\n\n return (\n <div\n vkuiClass={classNames(\"Chip\", { \"Chip--removable\": removable })}\n role=\"option\"\n aria-label={title}\n {...restProps}\n >\n <div vkuiClass=\"Chip__in\" role=\"presentation\">\n {hasReactNode(before) && <div vkuiClass=\"Chip__before\">{before}</div>}\n <Caption\n level=\"1\"\n weight=\"regular\"\n vkuiClass=\"Chip__content\"\n title={title}\n aria-hidden=\"true\"\n >\n {children}\n </Caption>\n {hasReactNode(after) && <div vkuiClass=\"Chip__after\">{after}</div>}\n\n {removable && (\n <Tappable\n Component=\"button\"\n vkuiClass=\"Chip__remove\"\n onClick={onRemoveWrapper}\n hasHover={false}\n hasActive={false}\n aria-label={`${removeAriaLabel} ${title}`}\n >\n <Icon16Cancel aria-hidden={true} />\n </Tappable>\n )}\n </div>\n </div>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default Chip;\n"],"file":"Chip.js"}
1
+ {"version":3,"sources":["../../../../src/components/Chip/Chip.tsx"],"names":["React","Icon16Cancel","getTitleFromChildren","hasReactNode","noop","classNames","Caption","Tappable","Chip","value","option","removable","onRemove","removeAriaLabel","before","after","children","restProps","onRemoveWrapper","useCallback","event","title"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,SAASC,oBAAT,EAA+BC,YAA/B,EAA6CC,IAA7C;AACA,SAASC,UAAT;AACA,OAAOC,OAAP;AACA,OAAOC,QAAP;AACA;AAcA,OAAO,IAAMC,IAAyB,GAAG,SAA5BA,IAA4B,OAUxB;AAAA,wBATfC,KASe;AAAA,MATfA,KASe,2BATP,EASO;AAAA,MARfC,MAQe,QARfA,MAQe;AAAA,4BAPfC,SAOe;AAAA,MAPfA,SAOe,+BAPH,IAOG;AAAA,2BANfC,QAMe;AAAA,MANfA,QAMe,8BANJR,IAMI;AAAA,kCALfS,eAKe;AAAA,MALfA,eAKe,qCALG,SAKH;AAAA,yBAJfC,MAIe;AAAA,MAJfA,MAIe,4BAJN,IAIM;AAAA,MAHfC,KAGe,QAHfA,KAGe;AAAA,MAFfC,QAEe,QAFfA,QAEe;AAAA,MADZC,SACY;;AACf,MAAMC,eAAe,GAAGlB,KAAK,CAACmB,WAAN,CACtB,UAACC,KAAD,EAA6B;AAC3BR,IAAAA,QAAQ,CAACQ,KAAD,EAAQX,KAAR,CAAR;AACD,GAHqB,EAItB,CAACG,QAAD,EAAWH,KAAX,CAJsB,CAAxB;AAMA,MAAMY,KAAK,GAAGnB,oBAAoB,CAACc,QAAD,CAAlC;AAEA,SACE;AACE,IAAA,SAAS,EAAEX,UAAU,CAAC,MAAD,EAAS;AAAE,yBAAmBM;AAArB,KAAT,CADvB;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,kBAAYU;AAHd,KAIMJ,SAJN,GAME;AAAK,IAAA,SAAS,EAAC,UAAf;AAA0B,IAAA,IAAI,EAAC;AAA/B,KACGd,YAAY,CAACW,MAAD,CAAZ,IAAwB;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+BA,MAA/B,CAD3B,EAEE,oBAAC,OAAD;AACE,IAAA,KAAK,EAAC,GADR;AAEE,IAAA,MAAM,EAAC,SAFT;AAGE,IAAA,SAAS,EAAC,eAHZ;AAIE,IAAA,KAAK,EAAEO,KAJT;AAKE,mBAAY;AALd,KAOGL,QAPH,CAFF,EAWGb,YAAY,CAACY,KAAD,CAAZ,IAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8BA,KAA9B,CAX1B,EAaGJ,SAAS,IACR,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,QADZ;AAEE,IAAA,SAAS,EAAC,cAFZ;AAGE,IAAA,OAAO,EAAEO,eAHX;AAIE,IAAA,QAAQ,EAAE,KAJZ;AAKE,IAAA,SAAS,EAAE,KALb;AAME,4BAAeL,eAAf,cAAkCQ,KAAlC;AANF,KAQE,oBAAC,YAAD;AAAc,mBAAa;AAA3B,IARF,CAdJ,CANF,CADF;AAmCD,CAtDM","sourcesContent":["import * as React from \"react\";\nimport { Icon16Cancel } from \"@vkontakte/icons\";\nimport { getTitleFromChildren, hasReactNode, noop } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport Caption from \"../Typography/Caption/Caption\";\nimport Tappable from \"../Tappable/Tappable\";\nimport \"./Chip.css\";\n\ntype ChipValue = string | number;\n\nexport interface ChipProps extends React.HTMLAttributes<HTMLDivElement> {\n value: ChipValue;\n option?: { value?: ChipValue };\n onRemove?: (event?: React.MouseEvent, value?: ChipValue) => void;\n removable?: boolean;\n removeAriaLabel?: string;\n before?: React.ReactNode;\n after?: React.ReactNode;\n}\n\nexport const Chip: React.FC<ChipProps> = ({\n value = \"\",\n option,\n removable = true,\n onRemove = noop,\n removeAriaLabel = \"Удалить\",\n before = null,\n after,\n children,\n ...restProps\n}: ChipProps) => {\n const onRemoveWrapper = React.useCallback(\n (event: React.MouseEvent) => {\n onRemove(event, value);\n },\n [onRemove, value]\n );\n const title = getTitleFromChildren(children);\n\n return (\n <div\n vkuiClass={classNames(\"Chip\", { \"Chip--removable\": removable })}\n role=\"option\"\n aria-label={title}\n {...restProps}\n >\n <div vkuiClass=\"Chip__in\" role=\"presentation\">\n {hasReactNode(before) && <div vkuiClass=\"Chip__before\">{before}</div>}\n <Caption\n level=\"1\"\n weight=\"regular\"\n vkuiClass=\"Chip__content\"\n title={title}\n aria-hidden=\"true\"\n >\n {children}\n </Caption>\n {hasReactNode(after) && <div vkuiClass=\"Chip__after\">{after}</div>}\n\n {removable && (\n <Tappable\n Component=\"button\"\n vkuiClass=\"Chip__remove\"\n onClick={onRemoveWrapper}\n hasHover={false}\n hasActive={false}\n aria-label={`${removeAriaLabel} ${title}`}\n >\n <Icon16Cancel aria-hidden={true} />\n </Tappable>\n )}\n </div>\n </div>\n );\n};\n"],"file":"Chip.js"}
@@ -9,7 +9,7 @@ import { createScopedElement } from "../../lib/jsxRuntime";
9
9
  import * as React from "react";
10
10
  import { FormField } from "../FormField/FormField";
11
11
  import { classNames } from "../../lib/classNames";
12
- import Chip from "../Chip/Chip";
12
+ import { Chip } from "../Chip/Chip";
13
13
  import { noop } from "../../lib/utils";
14
14
  import { useChipsInput } from "./useChipsInput";
15
15
  import { useAdaptivity } from "../../hooks/useAdaptivity";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ChipsInput/ChipsInput.tsx"],"names":["React","FormField","classNames","Chip","noop","useChipsInput","useAdaptivity","prefixClass","useExternRef","chipsInputDefaultProps","type","onChange","onInputChange","onKeyDown","onBlur","onFocus","value","inputValue","inputAriaLabel","getOptionValue","option","getOptionLabel","label","getNewOptionData","_","renderChip","props","disabled","rest","ChipsInput","propsWithDefault","style","children","className","getRef","getRootRef","placeholder","after","restProps","sizeY","useState","focused","setFocused","fieldValue","addOptionFromInput","removeOption","selectedOptions","handleInputChange","inputRef","isDisabled","readOnly","handleKeyDown","e","preventDefault","key","defaultPrevented","length","handleBlur","handleFocus","handleChipRemove","undefined","handleClick","current","focus","map","onRemove","Boolean"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { classNames } from \"../../lib/classNames\";\nimport Chip, { ChipProps } from \"../Chip/Chip\";\nimport { noop } from \"../../lib/utils\";\nimport { useChipsInput } from \"./useChipsInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./ChipsInput.css\";\n\nexport type ChipsInputValue = string | number;\n\nexport interface ChipsInputOption {\n value?: ChipsInputValue;\n label?: string;\n [otherProp: string]: any;\n}\n\nexport interface RenderChip<Option extends ChipsInputOption> extends ChipProps {\n label: string;\n option: Option;\n disabled: boolean;\n}\n\nexport interface ChipsInputProps<Option extends ChipsInputOption>\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\"\n >,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n FormFieldProps {\n value: Option[];\n inputValue?: string;\n onChange?: (o: Option[]) => void;\n onInputChange?: (e?: React.ChangeEvent<HTMLInputElement>) => void;\n getOptionValue?: (o?: Option) => ChipsInputValue;\n getOptionLabel?: (o?: Option) => string;\n getNewOptionData?: (v?: ChipsInputValue, l?: string) => Option;\n renderChip?: (props?: RenderChip<Option>) => React.ReactNode;\n inputAriaLabel?: string;\n}\n\nexport const chipsInputDefaultProps: ChipsInputProps<any> = {\n type: \"text\",\n onChange: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onBlur: noop,\n onFocus: noop,\n value: [],\n inputValue: \"\",\n inputAriaLabel: \"Введите ваше значение...\",\n getOptionValue: (option) => option.value,\n getOptionLabel: (option) => option.label,\n getNewOptionData: (_, label) => ({\n value: label,\n label,\n }),\n renderChip(props) {\n if (!props) {\n return null;\n }\n\n const { disabled, value, label, ...rest } = props;\n return (\n <Chip value={value} removable={!disabled} {...rest}>\n {label}\n </Chip>\n );\n },\n};\n\nconst ChipsInput = <Option extends ChipsInputOption>(\n props: ChipsInputProps<Option>\n) => {\n const propsWithDefault = { ...chipsInputDefaultProps, ...props };\n const {\n style,\n value,\n onChange,\n onInputChange,\n onKeyDown,\n onBlur,\n onFocus,\n children,\n className,\n inputValue,\n getRef,\n getRootRef,\n placeholder,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n renderChip,\n after,\n inputAriaLabel,\n ...restProps\n } = propsWithDefault;\n const { sizeY } = useAdaptivity();\n\n const [focused, setFocused] = React.useState(false);\n const {\n fieldValue,\n addOptionFromInput,\n removeOption,\n selectedOptions,\n handleInputChange,\n } = useChipsInput(propsWithDefault);\n const inputRef = useExternRef(getRef);\n\n const isDisabled = restProps.disabled || restProps.readOnly;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n onKeyDown!(e);\n\n if (\n e.key === \"Backspace\" &&\n !e.defaultPrevented &&\n !fieldValue &&\n selectedOptions.length\n ) {\n removeOption(\n getOptionValue!(selectedOptions[selectedOptions.length - 1])\n );\n e.preventDefault();\n }\n\n if (e.key === \"Enter\" && !e.defaultPrevented && fieldValue) {\n addOptionFromInput();\n e.preventDefault();\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (focused) {\n setFocused(false);\n }\n onBlur!(e);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n setFocused(true);\n }\n onFocus!(e);\n };\n\n const handleChipRemove = (\n _: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n if (value !== undefined) {\n removeOption(value);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (inputRef?.current !== null && !focused) {\n inputRef.current.focus();\n }\n };\n\n return (\n <FormField\n getRootRef={getRootRef}\n vkuiClass={classNames(\"ChipsInput\", `ChipsInput--sizeY-${sizeY}`, {\n \"ChipsInput--focused\": focused,\n \"ChipsInput--withChips\": !!selectedOptions.length,\n })}\n className={className}\n style={style}\n disabled={restProps.disabled}\n after={after}\n onClick={handleClick}\n role=\"application\"\n aria-disabled={restProps.disabled}\n aria-readonly={restProps.readOnly}\n >\n <div vkuiClass=\"ChipsInput__container\" role=\"presentation\">\n {selectedOptions.map((option: Option) => {\n const value = getOptionValue!(option);\n const label = getOptionLabel!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderChip!({\n option,\n value,\n label,\n onRemove: handleChipRemove,\n disabled: Boolean(restProps.disabled),\n className: prefixClass(\"ChipsInput__chip\"),\n })}\n </React.Fragment>\n );\n })}\n <label\n vkuiClass=\"ChipsInput__input-container\"\n aria-label={inputAriaLabel}\n >\n <input\n ref={inputRef}\n value={fieldValue}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n vkuiClass=\"ChipsInput__el\"\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={selectedOptions.length ? undefined : placeholder}\n {...restProps}\n />\n </label>\n </div>\n </FormField>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ChipsInput;\n"],"file":"ChipsInput.js"}
1
+ {"version":3,"sources":["../../../../src/components/ChipsInput/ChipsInput.tsx"],"names":["React","FormField","classNames","Chip","noop","useChipsInput","useAdaptivity","prefixClass","useExternRef","chipsInputDefaultProps","type","onChange","onInputChange","onKeyDown","onBlur","onFocus","value","inputValue","inputAriaLabel","getOptionValue","option","getOptionLabel","label","getNewOptionData","_","renderChip","props","disabled","rest","ChipsInput","propsWithDefault","style","children","className","getRef","getRootRef","placeholder","after","restProps","sizeY","useState","focused","setFocused","fieldValue","addOptionFromInput","removeOption","selectedOptions","handleInputChange","inputRef","isDisabled","readOnly","handleKeyDown","e","preventDefault","key","defaultPrevented","length","handleBlur","handleFocus","handleChipRemove","undefined","handleClick","current","focus","map","onRemove","Boolean"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasAlign, HasRef, HasRootRef } from \"../../types\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Chip, ChipProps } from \"../Chip/Chip\";\nimport { noop } from \"../../lib/utils\";\nimport { useChipsInput } from \"./useChipsInput\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./ChipsInput.css\";\n\nexport type ChipsInputValue = string | number;\n\nexport interface ChipsInputOption {\n value?: ChipsInputValue;\n label?: string;\n [otherProp: string]: any;\n}\n\nexport interface RenderChip<Option extends ChipsInputOption> extends ChipProps {\n label: string;\n option: Option;\n disabled: boolean;\n}\n\nexport interface ChipsInputProps<Option extends ChipsInputOption>\n extends Omit<\n React.InputHTMLAttributes<HTMLInputElement>,\n \"value\" | \"onChange\"\n >,\n HasRef<HTMLInputElement>,\n HasRootRef<HTMLDivElement>,\n HasAlign,\n FormFieldProps {\n value: Option[];\n inputValue?: string;\n onChange?: (o: Option[]) => void;\n onInputChange?: (e?: React.ChangeEvent<HTMLInputElement>) => void;\n getOptionValue?: (o?: Option) => ChipsInputValue;\n getOptionLabel?: (o?: Option) => string;\n getNewOptionData?: (v?: ChipsInputValue, l?: string) => Option;\n renderChip?: (props?: RenderChip<Option>) => React.ReactNode;\n inputAriaLabel?: string;\n}\n\nexport const chipsInputDefaultProps: ChipsInputProps<any> = {\n type: \"text\",\n onChange: noop,\n onInputChange: noop,\n onKeyDown: noop,\n onBlur: noop,\n onFocus: noop,\n value: [],\n inputValue: \"\",\n inputAriaLabel: \"Введите ваше значение...\",\n getOptionValue: (option) => option.value,\n getOptionLabel: (option) => option.label,\n getNewOptionData: (_, label) => ({\n value: label,\n label,\n }),\n renderChip(props) {\n if (!props) {\n return null;\n }\n\n const { disabled, value, label, ...rest } = props;\n return (\n <Chip value={value} removable={!disabled} {...rest}>\n {label}\n </Chip>\n );\n },\n};\n\nconst ChipsInput = <Option extends ChipsInputOption>(\n props: ChipsInputProps<Option>\n) => {\n const propsWithDefault = { ...chipsInputDefaultProps, ...props };\n const {\n style,\n value,\n onChange,\n onInputChange,\n onKeyDown,\n onBlur,\n onFocus,\n children,\n className,\n inputValue,\n getRef,\n getRootRef,\n placeholder,\n getOptionValue,\n getOptionLabel,\n getNewOptionData,\n renderChip,\n after,\n inputAriaLabel,\n ...restProps\n } = propsWithDefault;\n const { sizeY } = useAdaptivity();\n\n const [focused, setFocused] = React.useState(false);\n const {\n fieldValue,\n addOptionFromInput,\n removeOption,\n selectedOptions,\n handleInputChange,\n } = useChipsInput(propsWithDefault);\n const inputRef = useExternRef(getRef);\n\n const isDisabled = restProps.disabled || restProps.readOnly;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n onKeyDown!(e);\n\n if (\n e.key === \"Backspace\" &&\n !e.defaultPrevented &&\n !fieldValue &&\n selectedOptions.length\n ) {\n removeOption(\n getOptionValue!(selectedOptions[selectedOptions.length - 1])\n );\n e.preventDefault();\n }\n\n if (e.key === \"Enter\" && !e.defaultPrevented && fieldValue) {\n addOptionFromInput();\n e.preventDefault();\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n if (focused) {\n setFocused(false);\n }\n onBlur!(e);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!focused) {\n setFocused(true);\n }\n onFocus!(e);\n };\n\n const handleChipRemove = (\n _: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n if (value !== undefined) {\n removeOption(value);\n }\n };\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n\n if (inputRef?.current !== null && !focused) {\n inputRef.current.focus();\n }\n };\n\n return (\n <FormField\n getRootRef={getRootRef}\n vkuiClass={classNames(\"ChipsInput\", `ChipsInput--sizeY-${sizeY}`, {\n \"ChipsInput--focused\": focused,\n \"ChipsInput--withChips\": !!selectedOptions.length,\n })}\n className={className}\n style={style}\n disabled={restProps.disabled}\n after={after}\n onClick={handleClick}\n role=\"application\"\n aria-disabled={restProps.disabled}\n aria-readonly={restProps.readOnly}\n >\n <div vkuiClass=\"ChipsInput__container\" role=\"presentation\">\n {selectedOptions.map((option: Option) => {\n const value = getOptionValue!(option);\n const label = getOptionLabel!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderChip!({\n option,\n value,\n label,\n onRemove: handleChipRemove,\n disabled: Boolean(restProps.disabled),\n className: prefixClass(\"ChipsInput__chip\"),\n })}\n </React.Fragment>\n );\n })}\n <label\n vkuiClass=\"ChipsInput__input-container\"\n aria-label={inputAriaLabel}\n >\n <input\n ref={inputRef}\n value={fieldValue}\n autoCapitalize=\"none\"\n autoComplete=\"off\"\n autoCorrect=\"off\"\n spellCheck={false}\n aria-autocomplete=\"list\"\n vkuiClass=\"ChipsInput__el\"\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n placeholder={selectedOptions.length ? undefined : placeholder}\n {...restProps}\n />\n </label>\n </div>\n </FormField>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ChipsInput;\n"],"file":"ChipsInput.js"}
@@ -1,7 +1,7 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
- var _excluded = ["children", "schemeTarget"];
4
+ var _excluded = ["children"];
5
5
  import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import * as React from "react";
7
7
  import { canUseDOM, useDOM } from "../../lib/dom";
@@ -11,7 +11,7 @@ import { useObjectMemo } from "../../hooks/useObjectMemo";
11
11
  import { noop } from "../../lib/utils";
12
12
  import { warnOnce } from "../../lib/warnOnce";
13
13
  import { normalizeScheme, Scheme } from "../../helpers/scheme";
14
- import { AppearanceProvider } from "../AppearanceProvider/AppearanceProvider";
14
+ import { AppearanceProvider, generateVKUITokensClassName } from "../AppearanceProvider/AppearanceProvider";
15
15
  var warn = warnOnce("ConfigProvider");
16
16
 
17
17
  function useSchemeDetector(node, _scheme) {
@@ -55,21 +55,22 @@ var deriveAppearance = function deriveAppearance(scheme) {
55
55
 
56
56
  var ConfigProvider = function ConfigProvider(_ref) {
57
57
  var children = _ref.children,
58
- schemeTarget = _ref.schemeTarget,
59
58
  props = _objectWithoutProperties(_ref, _excluded);
60
59
 
61
60
  var config = _objectSpread(_objectSpread({}, defaultConfigProviderProps), props);
62
61
 
62
+ var platform = config.platform,
63
+ appearance = config.appearance;
63
64
  var scheme = normalizeScheme({
64
65
  scheme: config.scheme,
65
- platform: config.platform,
66
- appearance: config.appearance
66
+ platform: platform,
67
+ appearance: appearance
67
68
  });
68
69
 
69
70
  var _useDOM = useDOM(),
70
71
  document = _useDOM.document;
71
72
 
72
- var target = schemeTarget || (document === null || document === void 0 ? void 0 : document.body);
73
+ var target = document === null || document === void 0 ? void 0 : document.body;
73
74
  useIsomorphicLayoutEffect(function () {
74
75
  if (scheme === "inherit") {
75
76
  return noop;
@@ -85,8 +86,16 @@ var ConfigProvider = function ConfigProvider(_ref) {
85
86
  };
86
87
  }, [scheme]);
87
88
  var realScheme = useSchemeDetector(target, scheme);
89
+ var derivedAppearance = deriveAppearance(realScheme);
90
+ useIsomorphicLayoutEffect(function () {
91
+ var VKUITokensClassName = generateVKUITokensClassName(platform, derivedAppearance);
92
+ target === null || target === void 0 ? void 0 : target.classList.add(VKUITokensClassName);
93
+ return function () {
94
+ target === null || target === void 0 ? void 0 : target.classList.remove(VKUITokensClassName);
95
+ };
96
+ }, [platform, derivedAppearance]);
88
97
  var configContext = useObjectMemo(_objectSpread({
89
- appearance: deriveAppearance(realScheme)
98
+ appearance: derivedAppearance
90
99
  }, config));
91
100
  return createScopedElement(ConfigProviderContext.Provider, {
92
101
  value: configContext
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"names":["React","canUseDOM","useDOM","ConfigProviderContext","defaultConfigProviderProps","useIsomorphicLayoutEffect","useObjectMemo","noop","warnOnce","normalizeScheme","Scheme","AppearanceProvider","warn","useSchemeDetector","node","_scheme","inherit","getScheme","useCallback","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","SPACE_GRAY","VKCOM_DARK","ConfigProvider","children","schemeTarget","props","config","platform","appearance","document","target","body","process","env","NODE_ENV","hasAttribute","setAttribute","removeAttribute","realScheme","configContext"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { canUseDOM, useDOM } from \"../../lib/dom\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n defaultConfigProviderProps,\n} from \"./ConfigProviderContext\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n normalizeScheme,\n AppearanceScheme,\n Scheme,\n} from \"../../helpers/scheme\";\nimport { AppearanceProvider } from \"../AppearanceProvider/AppearanceProvider\";\n\nexport interface ConfigProviderProps extends ConfigProviderContextInterface {\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать тему следует через appearance\n * Цветовая схема приложения\n */\n scheme?: AppearanceScheme;\n}\n\nconst warn = warnOnce(\"ConfigProvider\");\n\nfunction useSchemeDetector(\n node: HTMLElement | undefined | null,\n _scheme: Scheme | \"inherit\"\n) {\n const inherit = _scheme === \"inherit\";\n const getScheme = React.useCallback(() => {\n if (!inherit || !canUseDOM || !node) {\n return undefined;\n }\n return node.getAttribute(\"scheme\") as Scheme;\n }, [inherit, node]);\n const [resolvedScheme, setScheme] = React.useState(getScheme());\n\n React.useEffect(() => {\n if (!inherit || !node) {\n return noop;\n }\n setScheme(getScheme());\n const observer = new MutationObserver(() => setScheme(getScheme()));\n observer.observe(node, { attributes: true, attributeFilter: [\"scheme\"] });\n return () => observer.disconnect();\n }, [getScheme, inherit, node]);\n\n return _scheme === \"inherit\" ? resolvedScheme : _scheme;\n}\n\nconst deriveAppearance = (scheme: Scheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK\n ? \"dark\"\n : \"light\";\n\nconst ConfigProvider: React.FC<ConfigProviderProps> = ({\n children,\n schemeTarget,\n ...props\n}: React.PropsWithChildren<ConfigProviderProps> & {\n schemeTarget?: HTMLElement;\n}) => {\n const config = { ...defaultConfigProviderProps, ...props };\n const scheme = normalizeScheme({\n scheme: config.scheme,\n platform: config.platform,\n appearance: config.appearance,\n });\n const { document } = useDOM();\n const target = schemeTarget || document?.body;\n\n useIsomorphicLayoutEffect(() => {\n if (scheme === \"inherit\") {\n return noop;\n }\n if (\n process.env.NODE_ENV === \"development\" &&\n target?.hasAttribute(\"scheme\")\n ) {\n warn(\n '<body scheme> was set before VKUI mount - did you forget scheme=\"inherit\"?'\n );\n }\n target?.setAttribute(\"scheme\", scheme);\n return () => target?.removeAttribute(\"scheme\");\n }, [scheme]);\n\n const realScheme = useSchemeDetector(target, scheme);\n const configContext = useObjectMemo({\n appearance: deriveAppearance(realScheme),\n ...config,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <AppearanceProvider appearance={configContext.appearance}>\n {children}\n </AppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ConfigProvider;\n"],"file":"ConfigProvider.js"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProvider.tsx"],"names":["React","canUseDOM","useDOM","ConfigProviderContext","defaultConfigProviderProps","useIsomorphicLayoutEffect","useObjectMemo","noop","warnOnce","normalizeScheme","Scheme","AppearanceProvider","generateVKUITokensClassName","warn","useSchemeDetector","node","_scheme","inherit","getScheme","useCallback","undefined","getAttribute","useState","resolvedScheme","setScheme","useEffect","observer","MutationObserver","observe","attributes","attributeFilter","disconnect","deriveAppearance","scheme","SPACE_GRAY","VKCOM_DARK","ConfigProvider","children","props","config","platform","appearance","document","target","body","process","env","NODE_ENV","hasAttribute","setAttribute","removeAttribute","realScheme","derivedAppearance","VKUITokensClassName","classList","add","remove","configContext"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { canUseDOM, useDOM } from \"../../lib/dom\";\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n defaultConfigProviderProps,\n} from \"./ConfigProviderContext\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { useObjectMemo } from \"../../hooks/useObjectMemo\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n normalizeScheme,\n AppearanceScheme,\n Scheme,\n} from \"../../helpers/scheme\";\nimport {\n AppearanceProvider,\n generateVKUITokensClassName,\n} from \"../AppearanceProvider/AppearanceProvider\";\n\nexport interface ConfigProviderProps\n extends Partial<ConfigProviderContextInterface> {\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать тему следует через appearance\n * Цветовая схема приложения\n */\n scheme?: AppearanceScheme;\n}\n\nconst warn = warnOnce(\"ConfigProvider\");\n\nfunction useSchemeDetector(\n node: HTMLElement | undefined | null,\n _scheme: Scheme | \"inherit\"\n) {\n const inherit = _scheme === \"inherit\";\n const getScheme = React.useCallback(() => {\n if (!inherit || !canUseDOM || !node) {\n return undefined;\n }\n return node.getAttribute(\"scheme\") as Scheme;\n }, [inherit, node]);\n const [resolvedScheme, setScheme] = React.useState(getScheme());\n\n React.useEffect(() => {\n if (!inherit || !node) {\n return noop;\n }\n setScheme(getScheme());\n const observer = new MutationObserver(() => setScheme(getScheme()));\n observer.observe(node, { attributes: true, attributeFilter: [\"scheme\"] });\n return () => observer.disconnect();\n }, [getScheme, inherit, node]);\n\n return _scheme === \"inherit\" ? resolvedScheme : _scheme;\n}\n\nconst deriveAppearance = (scheme: Scheme | undefined): AppearanceType =>\n scheme === Scheme.SPACE_GRAY || scheme === Scheme.VKCOM_DARK\n ? \"dark\"\n : \"light\";\n\nconst ConfigProvider: React.FC<ConfigProviderProps> = ({\n children,\n ...props\n}) => {\n const config = { ...defaultConfigProviderProps, ...props };\n const { platform, appearance } = config;\n const scheme = normalizeScheme({\n scheme: config.scheme,\n platform: platform,\n appearance: appearance,\n });\n const { document } = useDOM();\n const target = document?.body;\n\n useIsomorphicLayoutEffect(() => {\n if (scheme === \"inherit\") {\n return noop;\n }\n if (\n process.env.NODE_ENV === \"development\" &&\n target?.hasAttribute(\"scheme\")\n ) {\n warn(\n '<body scheme> was set before VKUI mount - did you forget scheme=\"inherit\"?'\n );\n }\n target?.setAttribute(\"scheme\", scheme);\n return () => target?.removeAttribute(\"scheme\");\n }, [scheme]);\n\n const realScheme = useSchemeDetector(target, scheme);\n const derivedAppearance = deriveAppearance(realScheme);\n\n useIsomorphicLayoutEffect(() => {\n const VKUITokensClassName = generateVKUITokensClassName(\n platform,\n derivedAppearance\n );\n\n target?.classList.add(VKUITokensClassName);\n\n return () => {\n target?.classList.remove(VKUITokensClassName);\n };\n }, [platform, derivedAppearance]);\n\n const configContext = useObjectMemo({\n appearance: derivedAppearance,\n ...config,\n });\n\n return (\n <ConfigProviderContext.Provider value={configContext}>\n <AppearanceProvider appearance={configContext.appearance}>\n {children}\n </AppearanceProvider>\n </ConfigProviderContext.Provider>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default ConfigProvider;\n"],"file":"ConfigProvider.js"}