@vkontakte/vkui 4.34.0 → 4.35.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 (690) hide show
  1. package/.browserslistrc +5 -0
  2. package/.cache/.eslintcache +1 -1
  3. package/.cache/.stylelintcache +1 -1
  4. package/.cache/.tsbuildinfo +291 -268
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  6. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -1
  7. package/.cache/ts/src/components/Button/Button.d.ts +1 -1
  8. package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +1 -1
  9. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +1 -1
  10. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  11. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  13. package/.cache/ts/src/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  14. package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -1
  15. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +46 -5
  16. package/.cache/ts/src/components/Epic/Epic.d.ts +1 -1
  17. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +1 -1
  18. package/.cache/ts/src/components/Group/Group.d.ts +1 -1
  19. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  20. package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
  21. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  22. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +1 -1
  23. package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  24. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -1
  25. package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +1 -1
  26. package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  27. package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  28. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +1 -1
  29. package/.cache/ts/src/components/Panel/Panel.d.ts +1 -1
  30. package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +1 -1
  31. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  32. package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  33. package/.cache/ts/src/components/Popper/Popper.d.ts +18 -1
  34. package/.cache/ts/src/components/PopperArrow/PopperArrow.d.ts +8 -0
  35. package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
  36. package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +1 -1
  37. package/.cache/ts/src/components/RichCell/RichCell.d.ts +1 -1
  38. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +7 -2
  39. package/.cache/ts/src/components/Search/Search.d.ts +1 -1
  40. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  41. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  42. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
  43. package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +5 -1
  44. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +1 -0
  45. package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +8 -1
  46. package/.cache/ts/src/components/Tabs/Tabs.d.ts +14 -3
  47. package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +22 -1
  48. package/.cache/ts/src/components/Tappable/Tappable.d.ts +1 -1
  49. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +5 -1
  50. package/.cache/ts/src/components/Textarea/Textarea.d.ts +4 -1
  51. package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +18 -1
  52. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +3 -3
  53. package/.cache/ts/src/components/View/View.d.ts +2 -18
  54. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  55. package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +5 -1
  56. package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -1
  57. package/.cache/ts/src/hoc/withContext.d.ts +1 -1
  58. package/.cache/ts/src/hoc/withPlatform.d.ts +1 -1
  59. package/.cache/ts/src/tokenized/index.d.ts +26 -0
  60. package/.eslintrc.json +14 -4
  61. package/dist/cjs/components/AppRoot/AppRoot.js +13 -15
  62. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  63. package/dist/cjs/components/Button/Button.js +6 -4
  64. package/dist/cjs/components/Button/Button.js.map +1 -1
  65. package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
  66. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  67. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -0
  68. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  69. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +7 -1
  70. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  71. package/dist/cjs/components/CustomSelect/CustomSelect.js +477 -553
  72. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  73. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +73 -35
  74. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  75. package/dist/cjs/components/Dropdown/Dropdown.js +147 -26
  76. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  77. package/dist/cjs/components/Epic/Epic.js +1 -6
  78. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  79. package/dist/cjs/components/FocusTrap/FocusTrap.js +9 -10
  80. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  81. package/dist/cjs/components/FormField/FormField.js +4 -10
  82. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  83. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
  84. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  85. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -0
  86. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  87. package/dist/cjs/components/Input/Input.js +3 -6
  88. package/dist/cjs/components/Input/Input.js.map +1 -1
  89. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  90. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  91. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -0
  92. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  93. package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -0
  94. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  95. package/dist/cjs/components/Panel/Panel.js +1 -0
  96. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  97. package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
  98. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  99. package/dist/cjs/components/Popper/Popper.js +16 -22
  100. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  101. package/dist/cjs/components/PopperArrow/PopperArrow.js +40 -0
  102. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -0
  103. package/dist/cjs/components/Radio/Radio.js +1 -0
  104. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  105. package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -0
  106. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  107. package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
  108. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  109. package/dist/cjs/components/Select/Select.js +1 -0
  110. package/dist/cjs/components/Select/Select.js.map +1 -1
  111. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -1
  112. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  113. package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -31
  114. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  115. package/dist/cjs/components/Snackbar/Snackbar.js +7 -11
  116. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  117. package/dist/cjs/components/SplitCol/SplitCol.js +7 -1
  118. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  119. package/dist/cjs/components/SplitLayout/SplitLayout.js +5 -8
  120. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  121. package/dist/cjs/components/Tabbar/Tabbar.js +15 -14
  122. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  123. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -10
  124. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  125. package/dist/cjs/components/Tabs/Tabs.js +23 -5
  126. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  127. package/dist/cjs/components/TabsItem/TabsItem.js +39 -22
  128. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  129. package/dist/cjs/components/TextTooltip/TextTooltip.js +6 -9
  130. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  131. package/dist/cjs/components/Textarea/Textarea.js +5 -4
  132. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  133. package/dist/cjs/components/Tooltip/Tooltip.js +94 -71
  134. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  135. package/dist/cjs/components/Typography/Headline/Headline.js +11 -2
  136. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  137. package/dist/cjs/components/View/View.js +388 -453
  138. package/dist/cjs/components/View/View.js.map +1 -1
  139. package/dist/cjs/components/WriteBar/WriteBar.js +12 -5
  140. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  141. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -8
  142. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  143. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  144. package/dist/cjs/hoc/withContext.js.map +1 -1
  145. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  146. package/dist/cjs/hooks/useOrientationChange.js +2 -1
  147. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  148. package/dist/cjs/tokenized/index.js +104 -0
  149. package/dist/cjs/tokenized/index.js.map +1 -1
  150. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  151. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  152. package/dist/components/AppRoot/AppRoot.js +13 -15
  153. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  154. package/dist/components/Button/Button.d.ts +1 -1
  155. package/dist/components/Button/Button.js +6 -4
  156. package/dist/components/Button/Button.js.map +1 -1
  157. package/dist/components/CardGrid/CardGrid.d.ts +1 -1
  158. package/dist/components/CardScroll/CardScroll.js +3 -1
  159. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  160. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  161. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  162. package/dist/components/ChipsSelect/ChipsSelect.js +5 -0
  163. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  164. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  165. package/dist/components/ConfigProvider/ConfigProviderContext.js +3 -0
  166. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  167. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  168. package/dist/components/CustomSelect/CustomSelect.js +473 -579
  169. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  170. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  171. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +71 -35
  172. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  173. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  174. package/dist/components/Dropdown/Dropdown.d.ts +46 -5
  175. package/dist/components/Dropdown/Dropdown.js +137 -27
  176. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  177. package/dist/components/Epic/Epic.d.ts +1 -1
  178. package/dist/components/Epic/Epic.js +1 -4
  179. package/dist/components/Epic/Epic.js.map +1 -1
  180. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  181. package/dist/components/FocusTrap/FocusTrap.js +9 -9
  182. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  183. package/dist/components/FormField/FormField.js +4 -8
  184. package/dist/components/FormField/FormField.js.map +1 -1
  185. package/dist/components/Group/Group.d.ts +1 -1
  186. package/dist/components/HorizontalCell/HorizontalCell.js +3 -5
  187. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  188. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  189. package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -0
  190. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  191. package/dist/components/IconButton/IconButton.d.ts +1 -1
  192. package/dist/components/Input/Input.d.ts +1 -1
  193. package/dist/components/Input/Input.js +3 -4
  194. package/dist/components/Input/Input.js.map +1 -1
  195. package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
  196. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  197. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  198. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  199. package/dist/components/ModalCardBase/ModalCardBase.js +1 -0
  200. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  201. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  202. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  203. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  204. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  205. package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
  206. package/dist/components/NativeSelect/NativeSelect.js +1 -0
  207. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  208. package/dist/components/Panel/Panel.d.ts +1 -1
  209. package/dist/components/Panel/Panel.js +1 -0
  210. package/dist/components/Panel/Panel.js.map +1 -1
  211. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  212. package/dist/components/PanelHeader/PanelHeader.js +1 -0
  213. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  214. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  215. package/dist/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  216. package/dist/components/Popper/Popper.d.ts +18 -1
  217. package/dist/components/Popper/Popper.js +15 -22
  218. package/dist/components/Popper/Popper.js.map +1 -1
  219. package/dist/components/PopperArrow/PopperArrow.d.ts +8 -0
  220. package/dist/components/PopperArrow/PopperArrow.js +27 -0
  221. package/dist/components/PopperArrow/PopperArrow.js.map +1 -0
  222. package/dist/components/Radio/Radio.d.ts +1 -1
  223. package/dist/components/Radio/Radio.js +1 -0
  224. package/dist/components/Radio/Radio.js.map +1 -1
  225. package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
  226. package/dist/components/RangeSlider/UniversalSlider.js +1 -0
  227. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  228. package/dist/components/RichCell/RichCell.d.ts +1 -1
  229. package/dist/components/RichTooltip/RichTooltip.d.ts +7 -2
  230. package/dist/components/RichTooltip/RichTooltip.js +5 -10
  231. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  232. package/dist/components/Search/Search.d.ts +1 -1
  233. package/dist/components/Select/Select.d.ts +1 -1
  234. package/dist/components/Select/Select.js +1 -0
  235. package/dist/components/Select/Select.js.map +1 -1
  236. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  237. package/dist/components/SelectMimicry/SelectMimicry.js +4 -1
  238. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  239. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  240. package/dist/components/SimpleCell/SimpleCell.js +19 -28
  241. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  242. package/dist/components/Snackbar/Snackbar.d.ts +5 -1
  243. package/dist/components/Snackbar/Snackbar.js +8 -11
  244. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  245. package/dist/components/SplitCol/SplitCol.d.ts +1 -0
  246. package/dist/components/SplitCol/SplitCol.js +3 -0
  247. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  248. package/dist/components/SplitLayout/SplitLayout.js +4 -7
  249. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  250. package/dist/components/Tabbar/Tabbar.d.ts +8 -1
  251. package/dist/components/Tabbar/Tabbar.js +15 -14
  252. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  253. package/dist/components/TabbarItem/TabbarItem.js +7 -9
  254. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  255. package/dist/components/Tabs/Tabs.d.ts +14 -3
  256. package/dist/components/Tabs/Tabs.js +23 -5
  257. package/dist/components/Tabs/Tabs.js.map +1 -1
  258. package/dist/components/TabsItem/TabsItem.d.ts +22 -1
  259. package/dist/components/TabsItem/TabsItem.js +40 -21
  260. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  261. package/dist/components/Tappable/Tappable.d.ts +1 -1
  262. package/dist/components/TextTooltip/TextTooltip.d.ts +5 -1
  263. package/dist/components/TextTooltip/TextTooltip.js +5 -7
  264. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  265. package/dist/components/Textarea/Textarea.d.ts +4 -1
  266. package/dist/components/Textarea/Textarea.js +5 -4
  267. package/dist/components/Textarea/Textarea.js.map +1 -1
  268. package/dist/components/Tooltip/Tooltip.d.ts +18 -1
  269. package/dist/components/Tooltip/Tooltip.js +89 -68
  270. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  271. package/dist/components/Typography/Headline/Headline.d.ts +3 -3
  272. package/dist/components/Typography/Headline/Headline.js +10 -2
  273. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  274. package/dist/components/View/View.d.ts +2 -18
  275. package/dist/components/View/View.js +384 -462
  276. package/dist/components/View/View.js.map +1 -1
  277. package/dist/components/View/ViewInfinite.d.ts +1 -1
  278. package/dist/components/WriteBar/WriteBar.d.ts +5 -1
  279. package/dist/components/WriteBar/WriteBar.js +10 -5
  280. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  281. package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -6
  282. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  283. package/dist/components.css +143 -127
  284. package/dist/components.css.map +1 -1
  285. package/dist/cssm/components/ActionSheet/ActionSheet.css +1 -1
  286. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  287. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  288. package/dist/cssm/components/Alert/Alert.css +1 -1
  289. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  290. package/dist/cssm/components/AppRoot/AppRoot.d.ts +1 -1
  291. package/dist/cssm/components/AppRoot/AppRoot.js +13 -15
  292. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  293. package/dist/cssm/components/Avatar/Avatar.css +3 -5
  294. package/dist/cssm/components/Badge/Badge.css +3 -3
  295. package/dist/cssm/components/Banner/Banner.css +5 -5
  296. package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
  297. package/dist/cssm/components/Button/Button.css +53 -35
  298. package/dist/cssm/components/Button/Button.d.ts +1 -1
  299. package/dist/cssm/components/Button/Button.js +6 -4
  300. package/dist/cssm/components/Button/Button.js.map +1 -1
  301. package/dist/cssm/components/Calendar/Calendar.css +1 -1
  302. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
  303. package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
  304. package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
  305. package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
  306. package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
  307. package/dist/cssm/components/Card/Card.css +5 -6
  308. package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
  309. package/dist/cssm/components/CardGrid/CardGrid.d.ts +1 -1
  310. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  311. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  312. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  313. package/dist/cssm/components/Cell/Cell.css +3 -3
  314. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  315. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  316. package/dist/cssm/components/CellButton/CellButton.css +1 -1
  317. package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
  318. package/dist/cssm/components/Checkbox/Checkbox.d.ts +1 -1
  319. package/dist/cssm/components/Chip/Chip.css +1 -1
  320. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  321. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  322. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  323. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +5 -0
  324. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  325. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  326. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +3 -0
  327. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  328. package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
  329. package/dist/cssm/components/Counter/Counter.css +31 -31
  330. package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
  331. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  332. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  333. package/dist/cssm/components/CustomSelect/CustomSelect.js +473 -579
  334. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  335. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -3
  336. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  337. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +71 -35
  338. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  339. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -3
  340. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  341. package/dist/cssm/components/DatePicker/DatePicker.css +1 -1
  342. package/dist/cssm/components/DatePicker/DatePicker.d.ts +1 -1
  343. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  344. package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
  345. package/dist/cssm/components/Dropdown/Dropdown.d.ts +46 -5
  346. package/dist/cssm/components/Dropdown/Dropdown.js +137 -27
  347. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  348. package/dist/cssm/components/Epic/Epic.css +1 -1
  349. package/dist/cssm/components/Epic/Epic.d.ts +1 -1
  350. package/dist/cssm/components/Epic/Epic.js +1 -4
  351. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  352. package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
  353. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  354. package/dist/cssm/components/FocusTrap/FocusTrap.js +9 -9
  355. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  356. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  357. package/dist/cssm/components/Footer/Footer.css +1 -1
  358. package/dist/cssm/components/FormField/FormField.css +9 -9
  359. package/dist/cssm/components/FormField/FormField.js +4 -8
  360. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  361. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  362. package/dist/cssm/components/FormLayout/FormLayout.css +1 -1
  363. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  364. package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
  365. package/dist/cssm/components/Gradient/Gradient.css +1 -1
  366. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
  367. package/dist/cssm/components/Group/Group.css +1 -1
  368. package/dist/cssm/components/Group/Group.d.ts +1 -1
  369. package/dist/cssm/components/Header/Header.css +1 -1
  370. package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
  371. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -5
  372. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  373. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
  374. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  375. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -0
  376. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  377. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
  378. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  379. package/dist/cssm/components/IconButton/IconButton.d.ts +1 -1
  380. package/dist/cssm/components/InfoRow/InfoRow.css +1 -1
  381. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
  382. package/dist/cssm/components/Input/Input.css +1 -1
  383. package/dist/cssm/components/Input/Input.d.ts +1 -1
  384. package/dist/cssm/components/Input/Input.js +3 -4
  385. package/dist/cssm/components/Input/Input.js.map +1 -1
  386. package/dist/cssm/components/InputLike/InputLike.css +1 -1
  387. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
  388. package/dist/cssm/components/Link/Link.css +1 -1
  389. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
  390. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
  391. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  392. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  393. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  394. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -3
  395. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  396. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -0
  397. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  398. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  399. package/dist/cssm/components/ModalPage/ModalPage.css +1 -1
  400. package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
  401. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  402. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  403. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +1 -1
  404. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  405. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  406. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
  407. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -0
  408. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  409. package/dist/cssm/components/Pagination/Pagination.css +1 -1
  410. package/dist/cssm/components/Panel/Panel.css +1 -1
  411. package/dist/cssm/components/Panel/Panel.d.ts +1 -1
  412. package/dist/cssm/components/Panel/Panel.js +1 -0
  413. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  414. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  415. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +1 -1
  416. package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
  417. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  418. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  419. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  420. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  421. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  422. package/dist/cssm/components/Placeholder/Placeholder.css +3 -3
  423. package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
  424. package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  425. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
  426. package/dist/cssm/components/Popper/Popper.css +1 -1
  427. package/dist/cssm/components/Popper/Popper.d.ts +18 -1
  428. package/dist/cssm/components/Popper/Popper.js +15 -22
  429. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  430. package/dist/cssm/components/PopperArrow/PopperArrow.css +1 -0
  431. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +8 -0
  432. package/dist/cssm/components/PopperArrow/PopperArrow.js +28 -0
  433. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -0
  434. package/dist/cssm/components/Progress/Progress.css +1 -1
  435. package/dist/cssm/components/PromoBanner/PromoBanner.css +1 -1
  436. package/dist/cssm/components/PullToRefresh/PullToRefresh.css +3 -3
  437. package/dist/cssm/components/Radio/Radio.css +1 -1
  438. package/dist/cssm/components/Radio/Radio.d.ts +1 -1
  439. package/dist/cssm/components/Radio/Radio.js +1 -0
  440. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  441. package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
  442. package/dist/cssm/components/RangeSlider/UniversalSlider.d.ts +1 -1
  443. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -0
  444. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  445. package/dist/cssm/components/Removable/Removable.css +1 -1
  446. package/dist/cssm/components/RichCell/RichCell.css +3 -3
  447. package/dist/cssm/components/RichCell/RichCell.d.ts +1 -1
  448. package/dist/cssm/components/RichTooltip/RichTooltip.css +3 -1
  449. package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +7 -2
  450. package/dist/cssm/components/RichTooltip/RichTooltip.js +5 -10
  451. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  452. package/dist/cssm/components/Root/Root.css +1 -1
  453. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
  454. package/dist/cssm/components/Search/Search.css +1 -1
  455. package/dist/cssm/components/Search/Search.d.ts +1 -1
  456. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
  457. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  458. package/dist/cssm/components/Select/Select.css +1 -1
  459. package/dist/cssm/components/Select/Select.d.ts +1 -1
  460. package/dist/cssm/components/Select/Select.js +1 -0
  461. package/dist/cssm/components/Select/Select.js.map +1 -1
  462. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  463. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -1
  464. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  465. package/dist/cssm/components/Separator/Separator.css +1 -1
  466. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  467. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  468. package/dist/cssm/components/SimpleCell/SimpleCell.js +19 -28
  469. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  470. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -1
  471. package/dist/cssm/components/Slider/Slider.css +3 -3
  472. package/dist/cssm/components/SliderSwitch/SliderSwitch.css +1 -1
  473. package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
  474. package/dist/cssm/components/Snackbar/Snackbar.d.ts +5 -1
  475. package/dist/cssm/components/Snackbar/Snackbar.js +8 -11
  476. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  477. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  478. package/dist/cssm/components/Spinner/Spinner.css +1 -1
  479. package/dist/cssm/components/SplitCol/SplitCol.css +1 -1
  480. package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -0
  481. package/dist/cssm/components/SplitCol/SplitCol.js +3 -0
  482. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  483. package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
  484. package/dist/cssm/components/SplitLayout/SplitLayout.js +4 -7
  485. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  486. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  487. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  488. package/dist/cssm/components/Switch/Switch.css +3 -3
  489. package/dist/cssm/components/Tabbar/Tabbar.css +5 -3
  490. package/dist/cssm/components/Tabbar/Tabbar.d.ts +8 -1
  491. package/dist/cssm/components/Tabbar/Tabbar.js +15 -14
  492. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  493. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  494. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -9
  495. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  496. package/dist/cssm/components/Tabs/Tabs.css +1 -1
  497. package/dist/cssm/components/Tabs/Tabs.d.ts +14 -3
  498. package/dist/cssm/components/Tabs/Tabs.js +23 -5
  499. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  500. package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
  501. package/dist/cssm/components/TabsItem/TabsItem.d.ts +22 -1
  502. package/dist/cssm/components/TabsItem/TabsItem.js +40 -21
  503. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  504. package/dist/cssm/components/Tappable/Tappable.css +5 -5
  505. package/dist/cssm/components/Tappable/Tappable.d.ts +1 -1
  506. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -1
  507. package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +5 -1
  508. package/dist/cssm/components/TextTooltip/TextTooltip.js +5 -7
  509. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  510. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  511. package/dist/cssm/components/Textarea/Textarea.d.ts +4 -1
  512. package/dist/cssm/components/Textarea/Textarea.js +5 -4
  513. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  514. package/dist/cssm/components/Tooltip/Tooltip.css +1 -1
  515. package/dist/cssm/components/Tooltip/Tooltip.d.ts +18 -1
  516. package/dist/cssm/components/Tooltip/Tooltip.js +89 -68
  517. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  518. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  519. package/dist/cssm/components/Typography/Footnote/Footnote.css +1 -1
  520. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  521. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -3
  522. package/dist/cssm/components/Typography/Headline/Headline.js +10 -2
  523. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  524. package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
  525. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  526. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  527. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  528. package/dist/cssm/components/UsersStack/UsersStack.css +5 -5
  529. package/dist/cssm/components/View/View.css +1 -1
  530. package/dist/cssm/components/View/View.d.ts +2 -18
  531. package/dist/cssm/components/View/View.js +384 -462
  532. package/dist/cssm/components/View/View.js.map +1 -1
  533. package/dist/cssm/components/View/ViewIOS.css +1 -1
  534. package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
  535. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -1
  536. package/dist/cssm/components/WriteBar/WriteBar.css +3 -1
  537. package/dist/cssm/components/WriteBar/WriteBar.d.ts +5 -1
  538. package/dist/cssm/components/WriteBar/WriteBar.js +10 -5
  539. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  540. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.css +1 -1
  541. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -6
  542. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  543. package/dist/cssm/fonts/fonts.css +1 -1
  544. package/dist/cssm/hoc/withAdaptivity.d.ts +1 -1
  545. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  546. package/dist/cssm/hoc/withContext.d.ts +1 -1
  547. package/dist/cssm/hoc/withContext.js.map +1 -1
  548. package/dist/cssm/hoc/withPlatform.d.ts +1 -1
  549. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  550. package/dist/cssm/hooks/useOrientationChange.js +2 -1
  551. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  552. package/dist/cssm/lib/calendar.d.ts +2 -2
  553. package/dist/cssm/styles/animations.css +1 -1
  554. package/dist/cssm/styles/bright_light.css +1 -1
  555. package/dist/cssm/styles/common.css +1 -1
  556. package/dist/cssm/styles/components.css +143 -127
  557. package/dist/cssm/styles/constants.css +3 -10
  558. package/dist/cssm/styles/space_gray.css +1 -1
  559. package/dist/cssm/styles/themes.css +1 -16
  560. package/dist/cssm/styles/unstable.css +3 -1
  561. package/dist/cssm/styles/vkcom_dark.css +1 -6
  562. package/dist/cssm/styles/vkcom_light.css +1 -11
  563. package/dist/cssm/tokenized/index.d.ts +26 -0
  564. package/dist/cssm/tokenized/index.js +13 -0
  565. package/dist/cssm/tokenized/index.js.map +1 -1
  566. package/dist/default_scheme.css +1 -1
  567. package/dist/default_scheme.css.map +1 -1
  568. package/dist/fonts.css +1 -1
  569. package/dist/fonts.css.map +1 -1
  570. package/dist/hoc/withAdaptivity.d.ts +1 -1
  571. package/dist/hoc/withAdaptivity.js.map +1 -1
  572. package/dist/hoc/withContext.d.ts +1 -1
  573. package/dist/hoc/withContext.js.map +1 -1
  574. package/dist/hoc/withPlatform.d.ts +1 -1
  575. package/dist/hoc/withPlatform.js.map +1 -1
  576. package/dist/hooks/useOrientationChange.js +2 -1
  577. package/dist/hooks/useOrientationChange.js.map +1 -1
  578. package/dist/lib/calendar.d.ts +2 -2
  579. package/dist/tokenized/index.d.ts +26 -0
  580. package/dist/tokenized/index.js +13 -0
  581. package/dist/tokenized/index.js.map +1 -1
  582. package/dist/unstable.css +3 -1
  583. package/dist/unstable.css.map +1 -1
  584. package/dist/vkui.css +144 -143
  585. package/dist/vkui.css.map +1 -1
  586. package/package.json +6 -5
  587. package/src/components/AppRoot/AppRoot.tsx +15 -11
  588. package/src/components/Badge/Badge.css +0 -5
  589. package/src/components/Button/Button.css +0 -4
  590. package/src/components/Button/Button.tsx +4 -2
  591. package/src/components/Button/Readme.md +30 -59
  592. package/src/components/CardScroll/CardScroll.tsx +1 -1
  593. package/src/components/Cell/Cell.css +3 -2
  594. package/src/components/ChipsInput/ChipsInput.css +2 -0
  595. package/src/components/ChipsSelect/ChipsSelect.tsx +8 -0
  596. package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
  597. package/src/components/Counter/Counter.css +30 -0
  598. package/src/components/CustomScrollView/CustomScrollView.css +10 -5
  599. package/src/components/CustomSelect/CustomSelect.tsx +543 -573
  600. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +45 -22
  601. package/src/components/Dropdown/Dropdown.css +12 -0
  602. package/src/components/Dropdown/Dropdown.tsx +174 -20
  603. package/src/components/Dropdown/Readme.md +1 -0
  604. package/src/components/Epic/Epic.tsx +1 -4
  605. package/src/components/FixedLayout/Readme.md +103 -109
  606. package/src/components/FocusTrap/FocusTrap.tsx +10 -10
  607. package/src/components/FormField/FormField.css +31 -22
  608. package/src/components/FormField/FormField.tsx +4 -8
  609. package/src/components/FormField/Readme.md +9 -82
  610. package/src/components/Group/Group.css +1 -1
  611. package/src/components/Group/Readme.md +1 -1
  612. package/src/components/HorizontalCell/HorizontalCell.css +25 -43
  613. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -9
  614. package/src/components/HorizontalScroll/HorizontalScroll.css +23 -0
  615. package/src/components/HorizontalScroll/HorizontalScroll.tsx +2 -0
  616. package/src/components/IconButton/IconButton.css +46 -25
  617. package/src/components/Input/Input.css +20 -9
  618. package/src/components/Input/Input.tsx +6 -5
  619. package/src/components/Input/Readme.md +128 -24
  620. package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
  621. package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
  622. package/src/components/ModalCardBase/ModalCardBase.tsx +2 -0
  623. package/src/components/NativeSelect/NativeSelect.tsx +2 -0
  624. package/src/components/Panel/Panel.tsx +2 -0
  625. package/src/components/PanelHeader/PanelHeader.tsx +2 -0
  626. package/src/components/Popper/Popper.css +0 -35
  627. package/src/components/Popper/Popper.tsx +33 -25
  628. package/src/components/PopperArrow/PopperArrow.css +34 -0
  629. package/src/components/PopperArrow/PopperArrow.tsx +40 -0
  630. package/src/components/Radio/Radio.tsx +2 -0
  631. package/src/components/RangeSlider/UniversalSlider.tsx +2 -0
  632. package/src/components/RichTooltip/RichTooltip.css +44 -4
  633. package/src/components/RichTooltip/RichTooltip.tsx +9 -11
  634. package/src/components/ScreenSpinner/ScreenSpinner.css +1 -1
  635. package/src/components/Select/Select.css +23 -9
  636. package/src/components/Select/Select.tsx +2 -0
  637. package/src/components/SelectMimicry/SelectMimicry.tsx +6 -2
  638. package/src/components/SimpleCell/Readme.md +115 -129
  639. package/src/components/SimpleCell/SimpleCell.css +30 -68
  640. package/src/components/SimpleCell/SimpleCell.tsx +23 -25
  641. package/src/components/Snackbar/Readme.md +95 -123
  642. package/src/components/Snackbar/Snackbar.css +18 -27
  643. package/src/components/Snackbar/Snackbar.tsx +17 -11
  644. package/src/components/SplitCol/SplitCol.css +1 -1
  645. package/src/components/SplitCol/SplitCol.tsx +2 -0
  646. package/src/components/SplitLayout/SplitLayout.css +3 -7
  647. package/src/components/SplitLayout/SplitLayout.tsx +9 -6
  648. package/src/components/Switch/Switch.css +6 -2
  649. package/src/components/Tabbar/Tabbar.css +4 -1
  650. package/src/components/Tabbar/Tabbar.tsx +23 -12
  651. package/src/components/TabbarItem/TabbarItem.css +7 -5
  652. package/src/components/TabbarItem/TabbarItem.tsx +13 -7
  653. package/src/components/Tabs/Readme.md +191 -251
  654. package/src/components/Tabs/Tabs.css +27 -80
  655. package/src/components/Tabs/Tabs.tsx +45 -7
  656. package/src/components/TabsItem/Readme.md +1 -0
  657. package/src/components/TabsItem/TabsItem.css +191 -106
  658. package/src/components/TabsItem/TabsItem.tsx +72 -20
  659. package/src/components/TextTooltip/TextTooltip.css +41 -11
  660. package/src/components/TextTooltip/TextTooltip.tsx +9 -13
  661. package/src/components/Textarea/Textarea.css +7 -3
  662. package/src/components/Textarea/Textarea.tsx +5 -4
  663. package/src/components/Tooltip/Readme.md +128 -101
  664. package/src/components/Tooltip/Tooltip.css +29 -40
  665. package/src/components/Tooltip/Tooltip.tsx +98 -66
  666. package/src/components/Typography/Headline/Headline.tsx +15 -1
  667. package/src/components/View/Readme.md +2 -0
  668. package/src/components/View/View.tsx +451 -514
  669. package/src/components/WriteBar/WriteBar.css +27 -33
  670. package/src/components/WriteBar/WriteBar.tsx +16 -5
  671. package/src/components/WriteBarIcon/WriteBarIcon.css +6 -19
  672. package/src/components/WriteBarIcon/WriteBarIcon.tsx +6 -6
  673. package/src/hoc/withAdaptivity.tsx +4 -4
  674. package/src/hoc/withContext.tsx +1 -1
  675. package/src/hoc/withPlatform.tsx +1 -1
  676. package/src/hooks/useOrientationChange.ts +1 -0
  677. package/src/styles/components.css +1 -0
  678. package/src/styles/constants.css +8 -0
  679. package/src/tokenized/index.ts +39 -0
  680. package/tsconfig.json +1 -1
  681. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +0 -21
  682. package/dist/cjs/components/ClickPopper/ClickPopper.js +0 -96
  683. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +0 -1
  684. package/dist/components/ClickPopper/ClickPopper.d.ts +0 -21
  685. package/dist/components/ClickPopper/ClickPopper.js +0 -71
  686. package/dist/components/ClickPopper/ClickPopper.js.map +0 -1
  687. package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +0 -21
  688. package/dist/cssm/components/ClickPopper/ClickPopper.js +0 -71
  689. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +0 -1
  690. package/src/components/ClickPopper/ClickPopper.tsx +0 -86
@@ -7,139 +7,111 @@
7
7
  После закрытия компонент вызывает обязательное свойство `onClose`, и вам необходимо убрать `Snackbar` со страницы.
8
8
 
9
9
  ```jsx
10
- class SnackBarExample extends React.Component {
11
- constructor(props) {
12
- super(props);
10
+ const SnackBarExample = () => {
11
+ const [text, setText] = React.useState("");
12
+ const [snackbar, setSnackbar] = React.useState(null);
13
13
 
14
- this.state = {
15
- text: "",
16
- snackbar: null,
17
- };
18
-
19
- this.openBaseWithAction = this.openBaseWithAction.bind(this);
20
- this.openVertical = this.openVertical.bind(this);
21
- this.openWithAvatar = this.openWithAvatar.bind(this);
22
- this.openDark = this.openDark.bind(this);
23
- }
14
+ const openBaseWithAction = () => {
15
+ if (snackbar) return;
16
+ setSnackbar(
17
+ <Snackbar
18
+ onClose={() => setSnackbar(null)}
19
+ action="Поделиться"
20
+ onActionClick={() => setText("Добавляем метку.")}
21
+ before={
22
+ <Avatar size={24} style={{ background: "var(--accent)" }}>
23
+ <Icon16Done fill="#fff" width={14} height={14} />
24
+ </Avatar>
25
+ }
26
+ >
27
+ Ссылка скопирована
28
+ </Snackbar>
29
+ );
30
+ };
24
31
 
25
- componentDidMount() {
26
- this.openBaseWithAction();
27
- }
32
+ const openVertical = () => {
33
+ if (snackbar) return;
34
+ setSnackbar(
35
+ <Snackbar
36
+ layout="vertical"
37
+ onClose={() => setSnackbar(null)}
38
+ action="Перейти в раздел «Понравилось»"
39
+ onActionClick={() => setText("Открыта подробная информация.")}
40
+ before={
41
+ <Avatar size={24} style={{ background: "var(--accent)" }}>
42
+ <Icon16Done fill="#fff" width={14} height={14} />
43
+ </Avatar>
44
+ }
45
+ >
46
+ Ссылка сохранена в закладки
47
+ </Snackbar>
48
+ );
49
+ };
28
50
 
29
- openBaseWithAction() {
30
- if (this.state.snackbar) return;
31
- this.setState({
32
- snackbar: (
33
- <Snackbar
34
- onClose={() => this.setState({ snackbar: null })}
35
- action="Поделиться"
36
- onActionClick={() => this.setState({ text: "Добавляем метку." })}
37
- before={
38
- <Avatar size={24} style={{ background: "var(--accent)" }}>
39
- <Icon16Done fill="#fff" width={14} height={14} />
40
- </Avatar>
41
- }
42
- >
43
- Ссылка скопирована
44
- </Snackbar>
45
- ),
46
- });
47
- }
51
+ const openWithAvatar = () => {
52
+ if (snackbar) return;
53
+ setSnackbar(
54
+ <Snackbar
55
+ onClose={() => setSnackbar(null)}
56
+ onActionClick={() => setText("Сообщение Ивану было отменено.")}
57
+ after={<Avatar src={getAvatarUrl("user_wayshev")} size={32} />}
58
+ >
59
+ Отправлено Ивану Барышеву
60
+ </Snackbar>
61
+ );
62
+ };
48
63
 
49
- openVertical() {
50
- if (this.state.snackbar) return;
51
- this.setState({
52
- snackbar: (
53
- <Snackbar
54
- layout="vertical"
55
- onClose={() => this.setState({ snackbar: null })}
56
- action="Перейти в раздел «Понравилось»"
57
- onActionClick={() =>
58
- this.setState({ text: "Открыта подробная информация." })
59
- }
60
- before={
61
- <Avatar size={24} style={{ background: "var(--accent)" }}>
62
- <Icon16Done fill="#fff" width={14} height={14} />
63
- </Avatar>
64
- }
65
- >
66
- Ссылка сохранена в закладки
67
- </Snackbar>
68
- ),
69
- });
70
- }
64
+ const openDark = () => {
65
+ if (snackbar) return;
66
+ setSnackbar(
67
+ <Snackbar
68
+ mode="dark"
69
+ onClose={() => setSnackbar(null)}
70
+ action="Поделиться"
71
+ onActionClick={() => setText("Добавляем метку.")}
72
+ before={
73
+ <Avatar size={24} style={{ background: "var(--accent)" }}>
74
+ <Icon16Done fill="#fff" width={14} height={14} />
75
+ </Avatar>
76
+ }
77
+ >
78
+ Ссылка скопирована
79
+ </Snackbar>
80
+ );
81
+ };
71
82
 
72
- openWithAvatar() {
73
- if (this.state.snackbar) return;
74
- this.setState({
75
- snackbar: (
76
- <Snackbar
77
- onClose={() => this.setState({ snackbar: null })}
78
- onActionClick={() =>
79
- this.setState({ text: "Сообщение Ивану было отменено." })
80
- }
81
- after={<Avatar src={getAvatarUrl("user_wayshev")} size={32} />}
82
- >
83
- Отправлено Ивану Барышеву
84
- </Snackbar>
85
- ),
86
- });
87
- }
83
+ React.useEffect(() => {
84
+ openBaseWithAction();
85
+ }, []);
88
86
 
89
- openDark() {
90
- if (this.state.snackbar) return;
91
- this.setState({
92
- snackbar: (
93
- <AppearanceProvider appearance="dark">
94
- <Snackbar
95
- onClose={() => this.setState({ snackbar: null })}
96
- action="Поделиться"
97
- onActionClick={() => this.setState({ text: "Добавляем метку." })}
98
- before={
99
- <Avatar size={24} style={{ background: "var(--accent)" }}>
100
- <Icon16Done fill="#fff" width={14} height={14} />
101
- </Avatar>
102
- }
103
- >
104
- Ссылка скопирована
105
- </Snackbar>
106
- </AppearanceProvider>
107
- ),
108
- });
109
- }
87
+ return (
88
+ <View activePanel="example">
89
+ <Panel id="example">
90
+ <PanelHeader>Snackbar</PanelHeader>
91
+ <Group>
92
+ <CellButton onClick={openBaseWithAction}>
93
+ Уведомление с иконкой и кнопкой
94
+ </CellButton>
95
+ <CellButton onClick={openVertical}>
96
+ Вертикальное расположение
97
+ </CellButton>
98
+ <CellButton onClick={openWithAvatar}>
99
+ Уведомление с аватаркой
100
+ </CellButton>
101
+ <CellButton onClick={openDark}>Уведомление с темной темой</CellButton>
102
+ </Group>
110
103
 
111
- render() {
112
- return (
113
- <View activePanel="example">
114
- <Panel id="example">
115
- <PanelHeader>Snackbar</PanelHeader>
104
+ {text && (
116
105
  <Group>
117
- <CellButton onClick={this.openBaseWithAction}>
118
- Уведомление с иконкой и кнопкой
119
- </CellButton>
120
- <CellButton onClick={this.openVertical}>
121
- Вертикальное расположение
122
- </CellButton>
123
- <CellButton onClick={this.openWithAvatar}>
124
- Уведомление с аватаркой
125
- </CellButton>
126
- <CellButton onClick={this.openDark}>
127
- Уведомление с темной темой
128
- </CellButton>
106
+ <Div>{text}</Div>
129
107
  </Group>
108
+ )}
130
109
 
131
- {this.state.text && (
132
- <Group>
133
- <Div>{this.state.text}</Div>
134
- </Group>
135
- )}
136
-
137
- {this.state.snackbar}
138
- </Panel>
139
- </View>
140
- );
141
- }
142
- }
110
+ {snackbar}
111
+ </Panel>
112
+ </View>
113
+ );
114
+ };
143
115
 
144
116
  <SnackBarExample />;
145
117
  ```
@@ -14,8 +14,14 @@
14
14
  padding-bottom: calc(var(--tabbar_height) + var(--safe-area-inset-bottom));
15
15
  }
16
16
 
17
+ .Snackbar__in,
18
+ .Snackbar__body {
19
+ transition: transform 320ms var(--android-easing);
20
+ }
21
+
17
22
  .Snackbar__in {
18
23
  padding: 8px;
24
+ animation: vkui-animation-snackbar-intro-vertical 340ms var(--android-easing);
19
25
  }
20
26
 
21
27
  .Snackbar--closing .Snackbar__in {
@@ -28,8 +34,13 @@
28
34
  min-height: 56px;
29
35
  display: flex;
30
36
  align-items: center;
31
- background: var(--modal_card_background);
32
- box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.24), 0 0 2px 0 rgba(0, 0, 0, 0.08);
37
+ background: var(--modal_card_background, var(--vkui--color_background_modal));
38
+ box-shadow: var(--vkui--elevation4);
39
+ border-radius: var(--vkui--size_border_radius--regular);
40
+ }
41
+
42
+ .Snackbar--dark .Snackbar__body {
43
+ background: var(--vkui--color_background_contrast_inverse);
33
44
  }
34
45
 
35
46
  .Snackbar__before {
@@ -56,7 +67,7 @@
56
67
 
57
68
  .Snackbar__content-text {
58
69
  flex: 1;
59
- color: var(--text_primary);
70
+ color: var(--text_primary, var(--vkui--color_text_primary));
60
71
  width: 100%;
61
72
  display: -webkit-box;
62
73
  -webkit-line-clamp: 3;
@@ -64,16 +75,18 @@
64
75
  overflow: hidden;
65
76
  }
66
77
 
78
+ .Snackbar--dark .Snackbar__content-text {
79
+ color: var(--vkui--color_text_contrast);
80
+ }
81
+
67
82
  .Snackbar--l-horizontal .Snackbar__action {
68
83
  margin-right: calc(
69
84
  -1 * var(--vkui--size_button_tertiary_small_padding_horizontal--regular)
70
85
  );
71
86
  position: relative;
72
- top: 2px;
73
87
  }
74
88
 
75
89
  .Snackbar--l-vertical .Snackbar__action {
76
- margin-top: 2px;
77
90
  margin-bottom: -6px;
78
91
  margin-left: calc(
79
92
  -1 * var(--vkui--size_button_tertiary_small_padding_horizontal--regular)
@@ -94,28 +107,6 @@
94
107
  animation: vkui-animation-snackbar-intro-vertical 340ms var(--ios-easing);
95
108
  }
96
109
 
97
- .Snackbar--ios .Snackbar__body {
98
- border-radius: 10px;
99
- }
100
-
101
- /* Android */
102
- .Snackbar--android .Snackbar__in,
103
- .Snackbar--android .Snackbar__body,
104
- .Snackbar--vkcom .Snackbar__in,
105
- .Snackbar--vkcom .Snackbar__body {
106
- transition: transform 320ms var(--android-easing);
107
- }
108
-
109
- .Snackbar--android .Snackbar__in,
110
- .Snackbar--vkcom .Snackbar__in {
111
- animation: vkui-animation-snackbar-intro-vertical 340ms var(--android-easing);
112
- }
113
-
114
- .Snackbar--android .Snackbar__body,
115
- .Snackbar--vkcom .Snackbar__body {
116
- border-radius: 8px;
117
- }
118
-
119
110
  /**
120
111
  * Desktop
121
112
  */
@@ -2,11 +2,10 @@ import * as React from "react";
2
2
  import { Touch, TouchEvent } from "../Touch/Touch";
3
3
  import { classNames } from "../../lib/classNames";
4
4
  import { HasPlatform } from "../../types";
5
- import { getClassName } from "../../helpers/getClassName";
6
- import { ANDROID, VKCOM } from "../../lib/platform";
5
+ import { ANDROID, IOS, VKCOM } from "../../lib/platform";
7
6
  import { rubber } from "../../lib/touch";
8
7
  import { withAdaptivity, ViewWidth } from "../../hoc/withAdaptivity";
9
- import { Text } from "../Typography/Text/Text";
8
+ import { Paragraph } from "../Typography/Paragraph/Paragraph";
10
9
  import { Button } from "../Button/Button";
11
10
  import { AppRootPortal } from "../AppRoot/AppRootPortal";
12
11
  import { useWaitTransitionFinish } from "../../hooks/useWaitTransitionFinish";
@@ -52,6 +51,10 @@ export interface SnackbarProps
52
51
  * Обработчик закрытия уведомления
53
52
  */
54
53
  onClose: () => void;
54
+ /**
55
+ * Задает стиль снекбара
56
+ */
57
+ mode?: "default" | "dark";
55
58
  }
56
59
 
57
60
  const SnackbarComponent = ({
@@ -64,6 +67,7 @@ const SnackbarComponent = ({
64
67
  duration = 4000,
65
68
  onActionClick,
66
69
  onClose,
70
+ mode = "default",
67
71
  ...restProps
68
72
  }: SnackbarProps & AdaptivityContextInterface) => {
69
73
  const platform = usePlatform();
@@ -191,15 +195,14 @@ const SnackbarComponent = ({
191
195
  <AppRootPortal>
192
196
  <div
193
197
  {...restProps}
194
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
195
198
  vkuiClass={classNames(
196
- getClassName("Snackbar", platform),
199
+ "Snackbar",
200
+ platform === IOS && "Snackbar--ios",
197
201
  `Snackbar--l-${resolvedLayout}`,
198
- {
199
- "Snackbar--closing": closing,
200
- "Snackbar--touched": touched,
201
- "Snackbar--desktop": isDesktop,
202
- }
202
+ `Snackbar--${mode}`,
203
+ closing && "Snackbar--closing",
204
+ touched && "Snackbar--touched",
205
+ isDesktop && "Snackbar--desktop"
203
206
  )}
204
207
  >
205
208
  <Touch
@@ -213,13 +216,16 @@ const SnackbarComponent = ({
213
216
  {before && <div vkuiClass="Snackbar__before">{before}</div>}
214
217
 
215
218
  <div vkuiClass="Snackbar__content">
216
- <Text vkuiClass="Snackbar__content-text">{children}</Text>
219
+ <Paragraph vkuiClass="Snackbar__content-text">
220
+ {children}
221
+ </Paragraph>
217
222
 
218
223
  {action && (
219
224
  <Button
220
225
  align="left"
221
226
  hasHover={false}
222
227
  mode="tertiary"
228
+ appearance={mode === "dark" ? "overlay" : "accent"}
223
229
  size="s"
224
230
  vkuiClass="Snackbar__action"
225
231
  onClick={handleActionClick}
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  .SplitCol--spaced {
10
- padding: 0 var(--vkui--size_split_col_padding_horizontal--regular);
10
+ margin: 0 var(--vkui--size_split_col_padding_horizontal--regular);
11
11
  }
12
12
 
13
13
  .SplitCol--fixed {
@@ -14,6 +14,8 @@ export const SplitColContext = React.createContext<SplitColContextProps>({
14
14
  animate: true,
15
15
  });
16
16
 
17
+ export const useSplitCol = () => React.useContext(SplitColContext);
18
+
17
19
  export interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {
18
20
  width?: number | string;
19
21
  maxWidth?: number | string;
@@ -16,18 +16,14 @@
16
16
  .SplitLayout__inner--header {
17
17
  position: relative;
18
18
  z-index: 11;
19
- }
20
-
21
- .SplitLayout--ios .SplitLayout__inner--header {
22
19
  margin-top: calc(
23
- -1 * (var(--panelheader_height_ios) + var(--safe-area-inset-top))
20
+ -1 * (var(--panelheader_height) + var(--safe-area-inset-top))
24
21
  );
25
22
  }
26
23
 
27
- .SplitLayout--android .SplitLayout__inner--header,
28
- .SplitLayout--vkcom .SplitLayout__inner--header {
24
+ .SplitLayout--ios .SplitLayout__inner--header {
29
25
  margin-top: calc(
30
- -1 * (var(--panelheader_height) + var(--safe-area-inset-top))
26
+ -1 * (var(--panelheader_height_ios) + var(--safe-area-inset-top))
31
27
  );
32
28
  }
33
29
 
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
- import { getClassName } from "../../helpers/getClassName";
3
2
  import { classNames } from "../../lib/classNames";
3
+ import { IOS } from "../../lib/platform";
4
4
  import { HasRef, HasRootRef } from "../../types";
5
5
  import { PopoutRoot } from "../PopoutRoot/PopoutRoot";
6
6
  import { usePlatform } from "../../hooks/usePlatform";
@@ -37,7 +37,10 @@ export const SplitLayout = ({
37
37
 
38
38
  return (
39
39
  <PopoutRoot
40
- vkuiClass={getClassName("SplitLayout", platform)}
40
+ vkuiClass={classNames(
41
+ "SplitLayout",
42
+ platform === IOS && "SplitLayout--ios"
43
+ )}
41
44
  popout={popout}
42
45
  modal={modal}
43
46
  getRootRef={getRootRef}
@@ -46,10 +49,10 @@ export const SplitLayout = ({
46
49
  <div
47
50
  {...restProps}
48
51
  ref={getRef}
49
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
50
- vkuiClass={classNames("SplitLayout__inner", {
51
- "SplitLayout__inner--header": !!header,
52
- })}
52
+ vkuiClass={classNames(
53
+ "SplitLayout__inner",
54
+ !!header && "SplitLayout__inner--header"
55
+ )}
53
56
  >
54
57
  {children}
55
58
  </div>
@@ -183,6 +183,10 @@
183
183
  * CMP:
184
184
  * SimpleCell
185
185
  */
186
- .SimpleCell .Switch {
187
- margin-left: 10px;
186
+ .SimpleCell__after > .Switch {
187
+ margin-left: 12px;
188
+ }
189
+
190
+ .SimpleCell > .Switch:first-child {
191
+ margin-right: 12px;
188
192
  }
@@ -37,7 +37,10 @@
37
37
  left: 0;
38
38
  width: 100%;
39
39
  height: 1px;
40
- background: var(--separator_common);
40
+ background: var(
41
+ --separator_common,
42
+ var(--vkui--color_separator_primary_alpha)
43
+ );
41
44
  transform-origin: center bottom;
42
45
  content: "";
43
46
  }
@@ -9,9 +9,29 @@ export interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {
9
9
  * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)
10
10
  */
11
11
  shadow?: boolean;
12
- itemsLayout?: "vertical" | "horizontal" | "auto";
12
+ /**
13
+ * @deprecated будет удалено в 5.0.0. Используйте `mode`
14
+ */
15
+ itemsLayout?: "vertical" | "horizontal" | "auto"; // TODO v5.0.0 удалить, будет использоваться mode
16
+ /**
17
+ * Задает расположение элементов (вертикальное/горизонтальное)
18
+ */
19
+ mode?: "vertical" | "horizontal" | "auto";
13
20
  }
14
21
 
22
+ const getItemsLayout = (
23
+ itemsLayout: TabbarProps["mode"],
24
+ children: TabbarProps["children"]
25
+ ) => {
26
+ switch (itemsLayout) {
27
+ case "horizontal":
28
+ case "vertical":
29
+ return itemsLayout;
30
+ default:
31
+ return React.Children.count(children) > 2 ? "vertical" : "horizontal";
32
+ }
33
+ };
34
+
15
35
  /**
16
36
  * @see https://vkcom.github.io/VKUI/#/Tabbar
17
37
  */
@@ -19,26 +39,17 @@ export const Tabbar = ({
19
39
  children,
20
40
  shadow = true,
21
41
  itemsLayout,
42
+ mode,
22
43
  ...restProps
23
44
  }: TabbarProps) => {
24
45
  const platform = usePlatform();
25
46
 
26
- const getItemsLayout = () => {
27
- switch (itemsLayout) {
28
- case "horizontal":
29
- case "vertical":
30
- return itemsLayout;
31
- default:
32
- return React.Children.count(children) > 2 ? "vertical" : "horizontal";
33
- }
34
- };
35
-
36
47
  return (
37
48
  <div
38
49
  vkuiClass={classNames(
39
50
  "Tabbar",
40
51
  platform === Platform.IOS && "Tabbar--ios",
41
- `Tabbar--l-${getItemsLayout()}`,
52
+ `Tabbar--l-${getItemsLayout(itemsLayout ?? mode, children)}`,
42
53
  shadow && "Tabbar--shadow"
43
54
  )}
44
55
  {...restProps}
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
- color: var(--tabbar_inactive_icon);
5
+ color: var(--tabbar_inactive_icon, var(--vkui--color_text_tertiary));
6
6
  text-decoration: none;
7
7
  border: none;
8
8
  outline: none;
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  .TabbarItem--selected {
24
- color: var(--tabbar_active_icon);
24
+ color: var(--tabbar_active_icon, var(--vkui--color_text_accent_themed));
25
25
  }
26
26
 
27
27
  .TabbarItem__tappable {
@@ -53,9 +53,14 @@
53
53
  }
54
54
 
55
55
  .TabbarItem__icon {
56
+ color: var(--tabbar_inactive_icon, var(--vkui--color_icon_secondary));
56
57
  position: relative;
57
58
  }
58
59
 
60
+ .TabbarItem--selected .TabbarItem__icon {
61
+ color: var(--tabbar_active_icon, var(--vkui--color_icon_accent_themed));
62
+ }
63
+
59
64
  .TabbarItem__label .Counter {
60
65
  position: absolute;
61
66
  top: -2px;
@@ -78,13 +83,10 @@
78
83
  .Tabbar--l-vertical .TabbarItem__text {
79
84
  font-size: 10px;
80
85
  line-height: 12px;
81
- font-weight: 500;
82
86
  margin-top: 2px;
83
87
  }
84
88
 
85
89
  .Tabbar--l-horizontal .TabbarItem__text {
86
- font-size: 13px;
87
- font-weight: 500;
88
90
  margin-left: 8px;
89
91
  }
90
92
 
@@ -1,10 +1,10 @@
1
1
  import * as React from "react";
2
- import { getClassName } from "../../helpers/getClassName";
3
2
  import { Counter } from "../Counter/Counter";
4
3
  import { classNames } from "../../lib/classNames";
5
4
  import { usePlatform } from "../../hooks/usePlatform";
6
5
  import { hasReactNode } from "../../lib/utils";
7
6
  import { Tappable } from "../Tappable/Tappable";
7
+ import { Footnote } from "../Typography/Footnote/Footnote";
8
8
  import { Platform } from "../../lib/platform";
9
9
  import { HasComponent, HasRootRef } from "../../types";
10
10
  import { warnOnce } from "../../lib/warnOnce";
@@ -58,11 +58,13 @@ export const TabbarItem = ({
58
58
  {...restProps}
59
59
  disabled={disabled}
60
60
  href={href}
61
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
62
- vkuiClass={classNames(getClassName("TabbarItem", platform), {
63
- "TabbarItem--selected": selected,
64
- "TabbarItem--text": !!text,
65
- })}
61
+ vkuiClass={classNames(
62
+ "TabbarItem",
63
+ platform === Platform.IOS && "TabbarItem--ios",
64
+ platform === Platform.ANDROID && "TabbarItem--android",
65
+ selected && "TabbarItem--selected",
66
+ !!text && "TabbarItem--text"
67
+ )}
66
68
  >
67
69
  <Tappable
68
70
  role="presentation"
@@ -89,7 +91,11 @@ export const TabbarItem = ({
89
91
  )}
90
92
  </div>
91
93
  </div>
92
- {text && <div vkuiClass="TabbarItem__text">{text}</div>}
94
+ {text && (
95
+ <Footnote Component="div" vkuiClass="TabbarItem__text" weight="2">
96
+ {text}
97
+ </Footnote>
98
+ )}
93
99
  </div>
94
100
  </Component>
95
101
  );