@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
@@ -12,6 +12,9 @@ export var SplitColContext = /*#__PURE__*/React.createContext({
12
12
  colRef: null,
13
13
  animate: true
14
14
  });
15
+ export var useSplitCol = function useSplitCol() {
16
+ return React.useContext(SplitColContext);
17
+ };
15
18
 
16
19
  /**
17
20
  * @see https://vkcom.github.io/VKUI/#/SplitCol
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SplitCol/SplitCol.tsx"],"names":["React","useScrollLockEffect","classNames","noop","SplitColContext","createContext","colRef","animate","SplitCol","children","width","maxWidth","minWidth","spaced","fixed","style","restProps","baseRef","useRef","fixedInnerRef","contextValue","useMemo","fixedInner","current","top","offsetTop"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,mBAAT;AACA,SAASC,UAAT;AACA,SAASC,IAAT;AACA;AAOA,OAAO,IAAMC,eAAe,gBAAGJ,KAAK,CAACK,aAAN,CAA0C;AACvEC,EAAAA,MAAM,EAAE,IAD+D;AAEvEC,EAAAA,OAAO,EAAE;AAF8D,CAA1C,CAAxB;;AAoBP;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAUH;AAAA,MATnBC,QASmB,QATnBA,QASmB;AAAA,MARnBC,KAQmB,QARnBA,KAQmB;AAAA,MAPnBC,QAOmB,QAPnBA,QAOmB;AAAA,MANnBC,QAMmB,QANnBA,QAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,0BAJnBN,OAImB;AAAA,MAJnBA,OAImB,6BAJT,KAIS;AAAA,MAHnBO,KAGmB,QAHnBA,KAGmB;AAAA,MAFnBC,KAEmB,QAFnBA,KAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,OAAO,GAAGjB,KAAK,CAACkB,MAAN,CAA6B,IAA7B,CAAhB;AAEA,MAAMC,aAAa,GAAGnB,KAAK,CAACkB,MAAN,CAA6B,IAA7B,CAAtB;AAEA,MAAME,YAAY,GAAGpB,KAAK,CAACqB,OAAN,CAAc,YAAM;AACvC,WAAO;AACLf,MAAAA,MAAM,EAAEW,OADH;AAELV,MAAAA,OAAO,EAAPA;AAFK,KAAP;AAID,GALoB,EAKlB,CAACU,OAAD,EAAUV,OAAV,CALkB,CAArB;AAOAN,EAAAA,mBAAmB,CAAC,YAAM;AACxB,QAAMqB,UAAU,GAAGH,aAAa,CAACI,OAAjC;;AACA,QAAI,CAACD,UAAL,EAAiB;AACf,aAAOnB,IAAP;AACD;;AAEDmB,IAAAA,UAAU,CAACP,KAAX,CAAiBS,GAAjB,aAA0BF,UAAU,CAACG,SAArC;AAEA,WAAO,YAAM;AACXH,MAAAA,UAAU,CAACP,KAAX,CAAiBS,GAAjB,GAAuB,EAAvB;AACD,KAFD;AAGD,GAXkB,EAWhB,CAACL,aAAa,CAACI,OAAf,CAXgB,CAAnB;AAaA,SACE,wCACMP,SADN;AAEE,IAAA,KAAK,kCACAD,KADA;AAEHL,MAAAA,KAAK,EAAEA,KAFJ;AAGHC,MAAAA,QAAQ,EAAEA,QAHP;AAIHC,MAAAA,QAAQ,EAAEA;AAJP,MAFP;AAQE,IAAA,GAAG,EAAEK,OARP;AASE,IAAA,SAAS,EAAEf,UAAU,CACnB,UADmB,EAEnBW,MAAM,IAAI,kBAFS,EAGnBC,KAAK,IAAI,iBAHU;AATvB,MAeE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEM;AAAjC,KACGN,KAAK,GACJ;AAAK,IAAA,GAAG,EAAEK,aAAV;AAAyB,IAAA,SAAS,EAAC;AAAnC,KACGV,QADH,CADI,GAKJA,QANJ,CAfF,CADF;AA2BD,CA9DM","sourcesContent":["import * as React from \"react\";\nimport { useScrollLockEffect } from \"../AppRoot/ScrollContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { noop } from \"../../lib/utils\";\nimport \"./SplitCol.css\";\n\nexport interface SplitColContextProps {\n colRef: React.RefObject<HTMLDivElement> | null;\n animate: boolean;\n}\n\nexport const SplitColContext = React.createContext<SplitColContextProps>({\n colRef: null,\n animate: true,\n});\n\nexport interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: number | string;\n maxWidth?: number | string;\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины\n */\n spaced?: boolean;\n fixed?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitCol\n */\nexport const SplitCol = ({\n children,\n width,\n maxWidth,\n minWidth,\n spaced,\n animate = false,\n fixed,\n style,\n ...restProps\n}: SplitColProps) => {\n const baseRef = React.useRef<HTMLDivElement>(null);\n\n const fixedInnerRef = React.useRef<HTMLDivElement>(null);\n\n const contextValue = React.useMemo(() => {\n return {\n colRef: baseRef,\n animate,\n };\n }, [baseRef, animate]);\n\n useScrollLockEffect(() => {\n const fixedInner = fixedInnerRef.current;\n if (!fixedInner) {\n return noop;\n }\n\n fixedInner.style.top = `${fixedInner.offsetTop}px`;\n\n return () => {\n fixedInner.style.top = \"\";\n };\n }, [fixedInnerRef.current]);\n\n return (\n <div\n {...restProps}\n style={{\n ...style,\n width: width,\n maxWidth: maxWidth,\n minWidth: minWidth,\n }}\n ref={baseRef}\n vkuiClass={classNames(\n \"SplitCol\",\n spaced && \"SplitCol--spaced\",\n fixed && \"SplitCol--fixed\"\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? (\n <div ref={fixedInnerRef} vkuiClass=\"SplitCol__fixedInner\">\n {children}\n </div>\n ) : (\n children\n )}\n </SplitColContext.Provider>\n </div>\n );\n};\n"],"file":"SplitCol.js"}
1
+ {"version":3,"sources":["../../../../src/components/SplitCol/SplitCol.tsx"],"names":["React","useScrollLockEffect","classNames","noop","SplitColContext","createContext","colRef","animate","useSplitCol","useContext","SplitCol","children","width","maxWidth","minWidth","spaced","fixed","style","restProps","baseRef","useRef","fixedInnerRef","contextValue","useMemo","fixedInner","current","top","offsetTop"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,mBAAT;AACA,SAASC,UAAT;AACA,SAASC,IAAT;AACA;AAOA,OAAO,IAAMC,eAAe,gBAAGJ,KAAK,CAACK,aAAN,CAA0C;AACvEC,EAAAA,MAAM,EAAE,IAD+D;AAEvEC,EAAAA,OAAO,EAAE;AAF8D,CAA1C,CAAxB;AAKP,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc;AAAA,SAAMR,KAAK,CAACS,UAAN,CAAiBL,eAAjB,CAAN;AAAA,CAApB;;AAiBP;AACA;AACA;AACA,OAAO,IAAMM,QAAQ,GAAG,SAAXA,QAAW,OAUH;AAAA,MATnBC,QASmB,QATnBA,QASmB;AAAA,MARnBC,KAQmB,QARnBA,KAQmB;AAAA,MAPnBC,QAOmB,QAPnBA,QAOmB;AAAA,MANnBC,QAMmB,QANnBA,QAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,0BAJnBR,OAImB;AAAA,MAJnBA,OAImB,6BAJT,KAIS;AAAA,MAHnBS,KAGmB,QAHnBA,KAGmB;AAAA,MAFnBC,KAEmB,QAFnBA,KAEmB;AAAA,MADhBC,SACgB;;AACnB,MAAMC,OAAO,GAAGnB,KAAK,CAACoB,MAAN,CAA6B,IAA7B,CAAhB;AAEA,MAAMC,aAAa,GAAGrB,KAAK,CAACoB,MAAN,CAA6B,IAA7B,CAAtB;AAEA,MAAME,YAAY,GAAGtB,KAAK,CAACuB,OAAN,CAAc,YAAM;AACvC,WAAO;AACLjB,MAAAA,MAAM,EAAEa,OADH;AAELZ,MAAAA,OAAO,EAAPA;AAFK,KAAP;AAID,GALoB,EAKlB,CAACY,OAAD,EAAUZ,OAAV,CALkB,CAArB;AAOAN,EAAAA,mBAAmB,CAAC,YAAM;AACxB,QAAMuB,UAAU,GAAGH,aAAa,CAACI,OAAjC;;AACA,QAAI,CAACD,UAAL,EAAiB;AACf,aAAOrB,IAAP;AACD;;AAEDqB,IAAAA,UAAU,CAACP,KAAX,CAAiBS,GAAjB,aAA0BF,UAAU,CAACG,SAArC;AAEA,WAAO,YAAM;AACXH,MAAAA,UAAU,CAACP,KAAX,CAAiBS,GAAjB,GAAuB,EAAvB;AACD,KAFD;AAGD,GAXkB,EAWhB,CAACL,aAAa,CAACI,OAAf,CAXgB,CAAnB;AAaA,SACE,wCACMP,SADN;AAEE,IAAA,KAAK,kCACAD,KADA;AAEHL,MAAAA,KAAK,EAAEA,KAFJ;AAGHC,MAAAA,QAAQ,EAAEA,QAHP;AAIHC,MAAAA,QAAQ,EAAEA;AAJP,MAFP;AAQE,IAAA,GAAG,EAAEK,OARP;AASE,IAAA,SAAS,EAAEjB,UAAU,CACnB,UADmB,EAEnBa,MAAM,IAAI,kBAFS,EAGnBC,KAAK,IAAI,iBAHU;AATvB,MAeE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEM;AAAjC,KACGN,KAAK,GACJ;AAAK,IAAA,GAAG,EAAEK,aAAV;AAAyB,IAAA,SAAS,EAAC;AAAnC,KACGV,QADH,CADI,GAKJA,QANJ,CAfF,CADF;AA2BD,CA9DM","sourcesContent":["import * as React from \"react\";\nimport { useScrollLockEffect } from \"../AppRoot/ScrollContext\";\nimport { classNames } from \"../../lib/classNames\";\nimport { noop } from \"../../lib/utils\";\nimport \"./SplitCol.css\";\n\nexport interface SplitColContextProps {\n colRef: React.RefObject<HTMLDivElement> | null;\n animate: boolean;\n}\n\nexport const SplitColContext = React.createContext<SplitColContextProps>({\n colRef: null,\n animate: true,\n});\n\nexport const useSplitCol = () => React.useContext(SplitColContext);\n\nexport interface SplitColProps extends React.HTMLAttributes<HTMLDivElement> {\n width?: number | string;\n maxWidth?: number | string;\n minWidth?: number | string;\n /**\n * Если false, то переходы между Panel происходят без анимации\n */\n animate?: boolean;\n /**\n * Если true, то добавляются боковые отступы фиксированной величины\n */\n spaced?: boolean;\n fixed?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitCol\n */\nexport const SplitCol = ({\n children,\n width,\n maxWidth,\n minWidth,\n spaced,\n animate = false,\n fixed,\n style,\n ...restProps\n}: SplitColProps) => {\n const baseRef = React.useRef<HTMLDivElement>(null);\n\n const fixedInnerRef = React.useRef<HTMLDivElement>(null);\n\n const contextValue = React.useMemo(() => {\n return {\n colRef: baseRef,\n animate,\n };\n }, [baseRef, animate]);\n\n useScrollLockEffect(() => {\n const fixedInner = fixedInnerRef.current;\n if (!fixedInner) {\n return noop;\n }\n\n fixedInner.style.top = `${fixedInner.offsetTop}px`;\n\n return () => {\n fixedInner.style.top = \"\";\n };\n }, [fixedInnerRef.current]);\n\n return (\n <div\n {...restProps}\n style={{\n ...style,\n width: width,\n maxWidth: maxWidth,\n minWidth: minWidth,\n }}\n ref={baseRef}\n vkuiClass={classNames(\n \"SplitCol\",\n spaced && \"SplitCol--spaced\",\n fixed && \"SplitCol--fixed\"\n )}\n >\n <SplitColContext.Provider value={contextValue}>\n {fixed ? (\n <div ref={fixedInnerRef} vkuiClass=\"SplitCol__fixedInner\">\n {children}\n </div>\n ) : (\n children\n )}\n </SplitColContext.Provider>\n </div>\n );\n};\n"],"file":"SplitCol.js"}
@@ -1 +1 @@
1
- .vkuiSplitLayout{width:100%;height:100%;position:relative;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common)}.vkuiSplitLayout__inner{width:100%;height:100%;display:flex}.vkuiSplitLayout__inner--header{position:relative;z-index:11}.vkuiSplitLayout--ios .vkuiSplitLayout__inner--header{margin-top:calc(-1*(52px + 0px));margin-top:calc(-1*(var(--panelheader_height_ios) + var(--safe-area-inset-top)))}.vkuiSplitLayout--android .vkuiSplitLayout__inner--header,.vkuiSplitLayout--vkcom .vkuiSplitLayout__inner--header{margin-top:calc(-1*(56px + 0px));margin-top:calc(-1*(var(--panelheader_height) + var(--safe-area-inset-top)))}.vkuiSplitLayout__popout{position:fixed;left:0;top:0;z-index:100;width:100%;height:100%}.vkuiSplitLayout__modal{position:fixed;left:0;top:0;z-index:99;width:100%;height:100%}.vkuiSplitLayout__modal:empty{display:none}
1
+ .vkuiSplitLayout{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common);height:100%;position:relative;width:100%}.vkuiSplitLayout__inner{display:flex;height:100%;width:100%}.vkuiSplitLayout__inner--header{margin-top:-56px;margin-top:calc((var(--panelheader_height) + var(--safe-area-inset-top))*-1);position:relative;z-index:11}.vkuiSplitLayout--ios .vkuiSplitLayout__inner--header{margin-top:-52px;margin-top:calc((var(--panelheader_height_ios) + var(--safe-area-inset-top))*-1)}.vkuiSplitLayout__popout{z-index:100}.vkuiSplitLayout__modal,.vkuiSplitLayout__popout{height:100%;left:0;position:fixed;top:0;width:100%}.vkuiSplitLayout__modal{z-index:99}.vkuiSplitLayout__modal:empty{display:none}
@@ -2,8 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["popout", "modal", "header", "children", "getRootRef", "getRef"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
- import { getClassName } from "../../helpers/getClassName";
6
5
  import { classNames } from "../../lib/classNames";
6
+ import { IOS } from "../../lib/platform";
7
7
  import { PopoutRoot } from "../PopoutRoot/PopoutRoot";
8
8
  import { usePlatform } from "../../hooks/usePlatform";
9
9
  import "./SplitLayout.css";
@@ -22,16 +22,13 @@ export var SplitLayout = function SplitLayout(_ref) {
22
22
 
23
23
  var platform = usePlatform();
24
24
  return createScopedElement(PopoutRoot, {
25
- vkuiClass: getClassName("SplitLayout", platform),
25
+ vkuiClass: classNames("SplitLayout", platform === IOS && "SplitLayout--ios"),
26
26
  popout: popout,
27
27
  modal: modal,
28
28
  getRootRef: getRootRef
29
29
  }, header, createScopedElement("div", _extends({}, restProps, {
30
- ref: getRef // eslint-disable-next-line vkui/no-object-expression-in-arguments
31
- ,
32
- vkuiClass: classNames("SplitLayout__inner", {
33
- "SplitLayout__inner--header": !!header
34
- })
30
+ ref: getRef,
31
+ vkuiClass: classNames("SplitLayout__inner", !!header && "SplitLayout__inner--header")
35
32
  }), children));
36
33
  };
37
34
  //# sourceMappingURL=SplitLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SplitLayout/SplitLayout.tsx"],"names":["getClassName","classNames","PopoutRoot","usePlatform","SplitLayout","popout","modal","header","children","getRootRef","getRef","restProps","platform"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,UAAT;AACA,SAASC,WAAT;AACA;;AAiBA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAQH;AAAA,MAPtBC,MAOsB,QAPtBA,MAOsB;AAAA,MANtBC,KAMsB,QANtBA,KAMsB;AAAA,MALtBC,MAKsB,QALtBA,MAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,SACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAEH,YAAY,CAAC,aAAD,EAAgBY,QAAhB,CADzB;AAEE,IAAA,MAAM,EAAEP,MAFV;AAGE,IAAA,KAAK,EAAEC,KAHT;AAIE,IAAA,UAAU,EAAEG;AAJd,KAMGF,MANH,EAOE,wCACMI,SADN;AAEE,IAAA,GAAG,EAAED,MAFP,CAGE;AAHF;AAIE,IAAA,SAAS,EAAET,UAAU,CAAC,oBAAD,EAAuB;AAC1C,oCAA8B,CAAC,CAACM;AADU,KAAvB;AAJvB,MAQGC,QARH,CAPF,CADF;AAoBD,CA/BM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { PopoutRoot } from \"../PopoutRoot/PopoutRoot\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./SplitLayout.css\";\n\nexport interface SplitLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitLayout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n children,\n getRootRef,\n getRef,\n ...restProps\n}: SplitLayoutProps) => {\n const platform = usePlatform();\n\n return (\n <PopoutRoot\n vkuiClass={getClassName(\"SplitLayout\", platform)}\n popout={popout}\n modal={modal}\n getRootRef={getRootRef}\n >\n {header}\n <div\n {...restProps}\n ref={getRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"SplitLayout__inner\", {\n \"SplitLayout__inner--header\": !!header,\n })}\n >\n {children}\n </div>\n </PopoutRoot>\n );\n};\n"],"file":"SplitLayout.js"}
1
+ {"version":3,"sources":["../../../../src/components/SplitLayout/SplitLayout.tsx"],"names":["classNames","IOS","PopoutRoot","usePlatform","SplitLayout","popout","modal","header","children","getRootRef","getRef","restProps","platform"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,GAAT;AAEA,SAASC,UAAT;AACA,SAASC,WAAT;AACA;;AAiBA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAQH;AAAA,MAPtBC,MAOsB,QAPtBA,MAOsB;AAAA,MANtBC,KAMsB,QANtBA,KAMsB;AAAA,MALtBC,MAKsB,QALtBA,MAKsB;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,UAGsB,QAHtBA,UAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,SACmB;;AACtB,MAAMC,QAAQ,GAAGT,WAAW,EAA5B;AAEA,SACE,oBAAC,UAAD;AACE,IAAA,SAAS,EAAEH,UAAU,CACnB,aADmB,EAEnBY,QAAQ,KAAKX,GAAb,IAAoB,kBAFD,CADvB;AAKE,IAAA,MAAM,EAAEI,MALV;AAME,IAAA,KAAK,EAAEC,KANT;AAOE,IAAA,UAAU,EAAEG;AAPd,KASGF,MATH,EAUE,wCACMI,SADN;AAEE,IAAA,GAAG,EAAED,MAFP;AAGE,IAAA,SAAS,EAAEV,UAAU,CACnB,oBADmB,EAEnB,CAAC,CAACO,MAAF,IAAY,4BAFO;AAHvB,MAQGC,QARH,CAVF,CADF;AAuBD,CAlCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS } from \"../../lib/platform\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { PopoutRoot } from \"../PopoutRoot/PopoutRoot\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport \"./SplitLayout.css\";\n\nexport interface SplitLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n header?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SplitLayout\n */\nexport const SplitLayout = ({\n popout,\n modal,\n header,\n children,\n getRootRef,\n getRef,\n ...restProps\n}: SplitLayoutProps) => {\n const platform = usePlatform();\n\n return (\n <PopoutRoot\n vkuiClass={classNames(\n \"SplitLayout\",\n platform === IOS && \"SplitLayout--ios\"\n )}\n popout={popout}\n modal={modal}\n getRootRef={getRootRef}\n >\n {header}\n <div\n {...restProps}\n ref={getRef}\n vkuiClass={classNames(\n \"SplitLayout__inner\",\n !!header && \"SplitLayout__inner--header\"\n )}\n >\n {children}\n </div>\n </PopoutRoot>\n );\n};\n"],"file":"SplitLayout.js"}
@@ -1 +1 @@
1
- .vkuiSubnavigationBar__in{margin:-8px 0}.vkuiSubnavigationBar__scrollIn{padding:20px 0;display:flex}.vkuiSubnavigationBar__scrollIn::before,.vkuiSubnavigationBar__scrollIn::after{content:"";min-width:16px}.vkuiSubnavigationBar .vkuiSubnavigationButton+.vkuiSubnavigationButton{margin-left:8px}.vkuiSubnavigationBar--fixed .vkuiSubnavigationButton{flex:1;min-width:0}.vkuiSubnavigationBar--ios .vkuiSubnavigationBar__scrollIn::before,.vkuiSubnavigationBar--ios .vkuiSubnavigationBar__scrollIn::after{min-width:12px}
1
+ .vkuiSubnavigationBar__in{margin:-8px 0}.vkuiSubnavigationBar__scrollIn{display:flex;padding:20px 0}.vkuiSubnavigationBar__scrollIn:after,.vkuiSubnavigationBar__scrollIn:before{content:"";min-width:16px}.vkuiSubnavigationBar .vkuiSubnavigationButton+.vkuiSubnavigationButton{margin-left:8px}.vkuiSubnavigationBar--fixed .vkuiSubnavigationButton{flex:1;min-width:0}.vkuiSubnavigationBar--ios .vkuiSubnavigationBar__scrollIn:after,.vkuiSubnavigationBar--ios .vkuiSubnavigationBar__scrollIn:before{min-width:12px}
@@ -1 +1 @@
1
- .vkuiSubnavigationButton{display:inline-block;background-color:#fff;background-color:var(--modal_card_background);color:#000;color:var(--text_primary);box-shadow:0 0 2px rgba(0,0,0,.08),0 2px 24px rgba(0,0,0,.08);-webkit-user-select:none;user-select:none}.vkuiSubnavigationButton__in{display:flex;align-items:center;justify-content:center}.vkuiSubnavigationButton__before{margin-right:8px;color:#2688eb;color:var(--accent)}.vkuiSubnavigationButton__before .vkuiIcon--24{margin-left:-4px}.vkuiSubnavigationButton__label{flex-grow:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vkuiSubnavigationButton__after{margin-left:8px}.vkuiSubnavigationButton__expandableIcon{margin-left:8px;margin-top:1px;color:#99a2ad;color:var(--icon_secondary)}.vkuiSubnavigationButton--selected{background-color:#2d81e0;background-color:var(--button_primary_background);color:#fff;color:var(--button_primary_foreground)}.vkuiSubnavigationButton--selected .vkuiSubnavigationButton__before{color:inherit}.vkuiSubnavigationButton--selected .vkuiCounter{background-color:#fff;background-color:var(--button_primary_foreground);color:#2d81e0;color:var(--button_primary_background)}.vkuiSubnavigationButton--selected .vkuiSubnavigationButton__expandableIcon{color:inherit}.vkuiSubnavigationButton--m .vkuiSubnavigationButton__in{height:36px;padding:0 14px}.vkuiSubnavigationButton--l .vkuiSubnavigationButton__in{height:44px;padding:0 14px}.vkuiSubnavigationButton--ios{border-radius:10px}.vkuiSubnavigationButton--android{border-radius:8px}.vkuiSubnavigationButton--vkcom{border-radius:4px}
1
+ .vkuiSubnavigationButton{background-color:#fff;background-color:var(--modal_card_background);box-shadow:0 0 2px rgba(0,0,0,.08),0 2px 24px rgba(0,0,0,.08);color:#000;color:var(--text_primary);display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vkuiSubnavigationButton__in{align-items:center;display:flex;justify-content:center}.vkuiSubnavigationButton__before{color:#2688eb;color:var(--accent);margin-right:8px}.vkuiSubnavigationButton__before .vkuiIcon--24{margin-left:-4px}.vkuiSubnavigationButton__label{flex-grow:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiSubnavigationButton__after{margin-left:8px}.vkuiSubnavigationButton__expandableIcon{color:#99a2ad;color:var(--icon_secondary);margin-left:8px;margin-top:1px}.vkuiSubnavigationButton--selected{background-color:#2d81e0;background-color:var(--button_primary_background);color:#fff;color:var(--button_primary_foreground)}.vkuiSubnavigationButton--selected .vkuiSubnavigationButton__before{color:inherit}.vkuiSubnavigationButton--selected .vkuiCounter{background-color:#fff;background-color:var(--button_primary_foreground);color:#2d81e0;color:var(--button_primary_background)}.vkuiSubnavigationButton--selected .vkuiSubnavigationButton__expandableIcon{color:inherit}.vkuiSubnavigationButton--m .vkuiSubnavigationButton__in{height:36px;padding:0 14px}.vkuiSubnavigationButton--l .vkuiSubnavigationButton__in{height:44px;padding:0 14px}.vkuiSubnavigationButton--ios{border-radius:10px}.vkuiSubnavigationButton--android{border-radius:8px}.vkuiSubnavigationButton--vkcom{border-radius:4px}
@@ -1,3 +1,3 @@
1
- .vkuiSwitch{position:relative;display:block;cursor:pointer;padding:calc((20px - 14px)/2);padding:calc((var(--vkui--size_switch_pin--regular,20px) - var(--vkui--size_switch_height--regular,14px))/2)}.vkuiSwitch--sizeY-compact{padding:calc((18px - 12px)/2);padding:calc((var(--vkui--size_switch_pin--compact,18px) - var(--vkui--size_switch_height--compact,12px))/2)}.vkuiSwitch--disabled{cursor:default}.vkuiSwitch__pseudo{position:relative;display:block;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}.vkuiSwitch__pseudo::before{position:absolute;content:"";border-radius:50%;box-sizing:border-box;background:#f2f3f5;background:var(--vkui--color_icon_contrast_secondary,#F2F3F5);box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24);top:calc((14px - 20px)/2);top:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);left:calc((14px - 20px)/2);left:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);width:20px;width:var(--vkui--size_switch_pin--regular,20px);height:20px;height:var(--vkui--size_switch_pin--regular,20px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::before{top:calc((12px - 18px)/2);top:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);left:calc((12px - 18px)/2);left:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);width:18px;width:var(--vkui--size_switch_pin--compact,18px);height:18px;height:var(--vkui--size_switch_pin--compact,18px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#2688eb;background:var(--accent, var(--vkui--color_icon_accent));-webkit-transform:translateX(calc(34px - 14px));transform:translateX(calc(34px - 14px));-webkit-transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)));transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)))}.vkuiSwitch__pseudo::after{content:"";display:block;background:rgba(0,0,0,.24);background:var(--vkui--color_icon_tertiary_alpha,rgba(0, 0, 0, 0.24));border-radius:calc(34px/2);border-radius:calc(var(--vkui--size_switch_width--regular,34px)/2);width:34px;width:var(--vkui--size_switch_width--regular,34px);height:14px;height:var(--vkui--size_switch_height--regular,14px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo::after{border-radius:calc(32px/2);border-radius:calc(var(--vkui--size_switch_width--compact,32px)/2);width:32px;width:var(--vkui--size_switch_width--compact,32px);height:12px;height:var(--vkui--size_switch_height--compact,12px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{opacity:.48;background:#2688eb;background:var(--accent, var(--vkui--color_icon_accent))}.vkuiSwitch--sizeY-compact .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{-webkit-transform:translateX(calc(32px - 12px));transform:translateX(calc(32px - 12px));-webkit-transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)));transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)))}.vkuiSwitch__self[disabled]+.vkuiSwitch__pseudo{opacity:.4;opacity:var(--vkui--opacity_disable,0.4)}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{background:#fff;background:var(--white);box-shadow:0 3px 8px rgba(0,0,0,.15),0 3px 1px rgba(0,0,0,.06),inset 0 0 0 .5px rgba(0,0,0,.04)}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::before{background:#fff;background:var(--white)}.vkuiSwitch--ios .vkuiSwitch__pseudo::after{background:rgba(0,28,61,.08);background:var(--placeholder_icon_background,
2
- var(--vkui--color_track_background)
3
- )}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo::after{opacity:1}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo::after{transition:background-color .1s ease}.vkuiSwitch__pseudo::before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::after{transition:background-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo::before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}}.vkuiSimpleCell .vkuiSwitch{margin-left:10px}
1
+ .vkuiSwitch{cursor:pointer;display:block;padding:3px;padding:calc((var(--vkui--size_switch_pin--regular,20px) - var(--vkui--size_switch_height--regular,14px))/2);position:relative}.vkuiSwitch--sizeY-compact{padding:3px;padding:calc((var(--vkui--size_switch_pin--compact,18px) - var(--vkui--size_switch_height--compact,12px))/2)}.vkuiSwitch--disabled{cursor:default}.vkuiSwitch__pseudo{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;box-sizing:border-box;display:block;position:relative}.vkuiSwitch__pseudo:before{background:#f2f3f5;background:var(--vkui--color_icon_contrast_secondary,#f2f3f5);border-radius:50%;box-shadow:0 0 2px 0 rgba(0,0,0,.12),0 2px 2px 0 rgba(0,0,0,.24);box-sizing:border-box;content:"";height:20px;height:var(--vkui--size_switch_pin--regular,20px);left:-3px;left:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);position:absolute;top:-3px;top:calc((var(--vkui--size_switch_height--regular,14px) - var(--vkui--size_switch_pin--regular,20px))/2);width:20px;width:var(--vkui--size_switch_pin--regular,20px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo:before{height:18px;height:var(--vkui--size_switch_pin--compact,18px);left:-3px;left:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);top:-3px;top:calc((var(--vkui--size_switch_height--compact,12px) - var(--vkui--size_switch_pin--compact,18px))/2);width:18px;width:var(--vkui--size_switch_pin--compact,18px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo:before{background:#2688eb;background:var(--accent,var(--vkui--color_icon_accent));-webkit-transform:translateX(20px);transform:translateX(20px);-webkit-transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)));transform:translateX(calc(var(--vkui--size_switch_width--regular,34px) - var(--vkui--size_switch_height--regular,14px)))}.vkuiSwitch__pseudo:after{background:rgba(0,0,0,.24);background:var(--vkui--color_icon_tertiary_alpha,rgba(0,0,0,.24));border-radius:17px;border-radius:calc(var(--vkui--size_switch_width--regular,34px)/2);content:"";display:block;height:14px;height:var(--vkui--size_switch_height--regular,14px);width:34px;width:var(--vkui--size_switch_width--regular,34px)}.vkuiSwitch--sizeY-compact .vkuiSwitch__pseudo:after{border-radius:16px;border-radius:calc(var(--vkui--size_switch_width--compact,32px)/2);height:12px;height:var(--vkui--size_switch_height--compact,12px);width:32px;width:var(--vkui--size_switch_width--compact,32px)}.vkuiSwitch__self:checked+.vkuiSwitch__pseudo:after{background:#2688eb;background:var(--accent,var(--vkui--color_icon_accent));opacity:.48}.vkuiSwitch--sizeY-compact .vkuiSwitch__self:checked+.vkuiSwitch__pseudo:before{-webkit-transform:translateX(20px);transform:translateX(20px);-webkit-transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)));transform:translateX(calc(var(--vkui--size_switch_width--compact,32px) - var(--vkui--size_switch_height--compact,12px)))}.vkuiSwitch__self[disabled]+.vkuiSwitch__pseudo{opacity:.4;opacity:var(--vkui--opacity_disable,.4)}.vkuiSwitch--ios .vkuiSwitch__pseudo:before{background:#fff;background:var(--white);box-shadow:0 3px 8px rgba(0,0,0,.15),0 3px 1px rgba(0,0,0,.06),inset 0 0 0 .5px rgba(0,0,0,.04)}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo:before{background:#fff;background:var(--white)}.vkuiSwitch--ios .vkuiSwitch__pseudo:after{background:rgba(0,28,61,.08);background:var(
2
+ --placeholder_icon_background,var(--vkui--color_track_background)
3
+ )}.vkuiSwitch--ios .vkuiSwitch__self:checked+.vkuiSwitch__pseudo:after{opacity:1}@media (prefers-reduced-motion:no-preference){.vkuiSwitch__pseudo:after{transition:background-color .1s ease}.vkuiSwitch__pseudo:before{transition:-webkit-transform .1s ease;transition:transform .1s ease;transition:transform .1s ease,-webkit-transform .1s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo:after{transition:background-color .2s ease}.vkuiSwitch--ios .vkuiSwitch__pseudo:before{transition:-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32);transition:transform .2s cubic-bezier(.36,-.24,.26,1.32),-webkit-transform .2s cubic-bezier(.36,-.24,.26,1.32)}}.vkuiSimpleCell__after>.vkuiSwitch{margin-left:12px}.vkuiSimpleCell>.vkuiSwitch:first-child{margin-right:12px}
@@ -1,3 +1,5 @@
1
- .vkuiTabbar{position:fixed;z-index:2;bottom:0;left:0;width:100%;height:48px;height:var(--tabbar_height);padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);box-sizing:content-box;background:#fff;background:var(--header_alternate_background,
2
- var(--vkui--color_background_tertiary)
3
- )}.vkuiTabbar__in{display:flex;justify-content:center;overflow:hidden}.vkuiTabbar--shadow{box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3,0px 0px 2px rgba(0, 0, 0, 0.08) , 0px 4px 16px rgba(0, 0, 0, 0.08))}.vkuiTabbar--ios.vkuiTabbar--shadow{box-shadow:none}.vkuiTabbar--ios.vkuiTabbar--shadow::before{position:absolute;bottom:100%;left:0;width:100%;height:1px;background:#d7d8d9;background:var(--separator_common);-webkit-transform-origin:center bottom;transform-origin:center bottom;content:""}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkuiTabbar--ios::before{-webkit-transform:scaleY(.5);transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkuiTabbar--ios::before{-webkit-transform:scaleY(.33);transform:scaleY(.33)}}
1
+ .vkuiTabbar{background:#fff;background:var(
2
+ --header_alternate_background,var(--vkui--color_background_tertiary)
3
+ );bottom:0;box-sizing:initial;height:48px;height:var(--tabbar_height);left:0;padding-bottom:0;padding-bottom:var(--safe-area-inset-bottom);position:fixed;width:100%;z-index:2}.vkuiTabbar__in{display:flex;justify-content:center;overflow:hidden}.vkuiTabbar--shadow{box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3,0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08))}.vkuiTabbar--ios.vkuiTabbar--shadow{box-shadow:none}.vkuiTabbar--ios.vkuiTabbar--shadow:before{background:#d7d8d9;background:var(
4
+ --separator_common,var(--vkui--color_separator_primary_alpha)
5
+ );bottom:100%;content:"";height:1px;left:0;position:absolute;-webkit-transform-origin:center bottom;transform-origin:center bottom;width:100%}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){.vkuiTabbar--ios:before{-webkit-transform:scaleY(.5);transform:scaleY(.5)}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){.vkuiTabbar--ios:before{-webkit-transform:scaleY(.33);transform:scaleY(.33)}}
@@ -5,9 +5,16 @@ export interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {
5
5
  * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)
6
6
  */
7
7
  shadow?: boolean;
8
+ /**
9
+ * @deprecated будет удалено в 5.0.0. Используйте `mode`
10
+ */
8
11
  itemsLayout?: "vertical" | "horizontal" | "auto";
12
+ /**
13
+ * Задает расположение элементов (вертикальное/горизонтальное)
14
+ */
15
+ mode?: "vertical" | "horizontal" | "auto";
9
16
  }
10
17
  /**
11
18
  * @see https://vkcom.github.io/VKUI/#/Tabbar
12
19
  */
13
- export declare const Tabbar: ({ children, shadow, itemsLayout, ...restProps }: TabbarProps) => JSX.Element;
20
+ export declare const Tabbar: ({ children, shadow, itemsLayout, mode, ...restProps }: TabbarProps) => JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "shadow", "itemsLayout"];
3
+ var _excluded = ["children", "shadow", "itemsLayout", "mode"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import * as React from "react";
6
6
  import { classNames } from "../../lib/classNames";
@@ -8,31 +8,32 @@ import { usePlatform } from "../../hooks/usePlatform";
8
8
  import { Platform } from "../../lib/platform";
9
9
  import "./Tabbar.css";
10
10
 
11
+ var getItemsLayout = function getItemsLayout(itemsLayout, children) {
12
+ switch (itemsLayout) {
13
+ case "horizontal":
14
+ case "vertical":
15
+ return itemsLayout;
16
+
17
+ default:
18
+ return React.Children.count(children) > 2 ? "vertical" : "horizontal";
19
+ }
20
+ };
11
21
  /**
12
22
  * @see https://vkcom.github.io/VKUI/#/Tabbar
13
23
  */
24
+
25
+
14
26
  export var Tabbar = function Tabbar(_ref) {
15
27
  var children = _ref.children,
16
28
  _ref$shadow = _ref.shadow,
17
29
  shadow = _ref$shadow === void 0 ? true : _ref$shadow,
18
30
  itemsLayout = _ref.itemsLayout,
31
+ mode = _ref.mode,
19
32
  restProps = _objectWithoutProperties(_ref, _excluded);
20
33
 
21
34
  var platform = usePlatform();
22
-
23
- var getItemsLayout = function getItemsLayout() {
24
- switch (itemsLayout) {
25
- case "horizontal":
26
- case "vertical":
27
- return itemsLayout;
28
-
29
- default:
30
- return React.Children.count(children) > 2 ? "vertical" : "horizontal";
31
- }
32
- };
33
-
34
35
  return createScopedElement("div", _extends({
35
- vkuiClass: classNames("Tabbar", platform === Platform.IOS && "Tabbar--ios", "Tabbar--l-".concat(getItemsLayout()), shadow && "Tabbar--shadow")
36
+ vkuiClass: classNames("Tabbar", platform === Platform.IOS && "Tabbar--ios", "Tabbar--l-".concat(getItemsLayout(itemsLayout !== null && itemsLayout !== void 0 ? itemsLayout : mode, children)), shadow && "Tabbar--shadow")
36
37
  }, restProps), createScopedElement("div", {
37
38
  vkuiClass: "Tabbar__in"
38
39
  }, children));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tabbar/Tabbar.tsx"],"names":["React","classNames","usePlatform","Platform","Tabbar","children","shadow","itemsLayout","restProps","platform","getItemsLayout","Children","count","IOS"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,QAAT;AACA;;AAUA;AACA;AACA;AACA,OAAO,IAAMC,MAAM,GAAG,SAATA,MAAS,OAKH;AAAA,MAJjBC,QAIiB,QAJjBA,QAIiB;AAAA,yBAHjBC,MAGiB;AAAA,MAHjBA,MAGiB,4BAHR,IAGQ;AAAA,MAFjBC,WAEiB,QAFjBA,WAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGP,WAAW,EAA5B;;AAEA,MAAMQ,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAC3B,YAAQH,WAAR;AACE,WAAK,YAAL;AACA,WAAK,UAAL;AACE,eAAOA,WAAP;;AACF;AACE,eAAOP,KAAK,CAACW,QAAN,CAAeC,KAAf,CAAqBP,QAArB,IAAiC,CAAjC,GAAqC,UAArC,GAAkD,YAAzD;AALJ;AAOD,GARD;;AAUA,SACE;AACE,IAAA,SAAS,EAAEJ,UAAU,CACnB,QADmB,EAEnBQ,QAAQ,KAAKN,QAAQ,CAACU,GAAtB,IAA6B,aAFV,sBAGNH,cAAc,EAHR,GAInBJ,MAAM,IAAI,gBAJS;AADvB,KAOME,SAPN,GASE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6BH,QAA7B,CATF,CADF;AAaD,CA/BM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Platform } from \"../../lib/platform\";\nimport \"./Tabbar.css\";\n\nexport interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)\n */\n shadow?: boolean;\n itemsLayout?: \"vertical\" | \"horizontal\" | \"auto\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tabbar\n */\nexport const Tabbar = ({\n children,\n shadow = true,\n itemsLayout,\n ...restProps\n}: TabbarProps) => {\n const platform = usePlatform();\n\n const getItemsLayout = () => {\n switch (itemsLayout) {\n case \"horizontal\":\n case \"vertical\":\n return itemsLayout;\n default:\n return React.Children.count(children) > 2 ? \"vertical\" : \"horizontal\";\n }\n };\n\n return (\n <div\n vkuiClass={classNames(\n \"Tabbar\",\n platform === Platform.IOS && \"Tabbar--ios\",\n `Tabbar--l-${getItemsLayout()}`,\n shadow && \"Tabbar--shadow\"\n )}\n {...restProps}\n >\n <div vkuiClass=\"Tabbar__in\">{children}</div>\n </div>\n );\n};\n"],"file":"Tabbar.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tabbar/Tabbar.tsx"],"names":["React","classNames","usePlatform","Platform","getItemsLayout","itemsLayout","children","Children","count","Tabbar","shadow","mode","restProps","platform","IOS"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,QAAT;AACA;;AAiBA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CACrBC,WADqB,EAErBC,QAFqB,EAGlB;AACH,UAAQD,WAAR;AACE,SAAK,YAAL;AACA,SAAK,UAAL;AACE,aAAOA,WAAP;;AACF;AACE,aAAOL,KAAK,CAACO,QAAN,CAAeC,KAAf,CAAqBF,QAArB,IAAiC,CAAjC,GAAqC,UAArC,GAAkD,YAAzD;AALJ;AAOD,CAXD;AAaA;AACA;AACA;;;AACA,OAAO,IAAMG,MAAM,GAAG,SAATA,MAAS,OAMH;AAAA,MALjBH,QAKiB,QALjBA,QAKiB;AAAA,yBAJjBI,MAIiB;AAAA,MAJjBA,MAIiB,4BAJR,IAIQ;AAAA,MAHjBL,WAGiB,QAHjBA,WAGiB;AAAA,MAFjBM,IAEiB,QAFjBA,IAEiB;AAAA,MADdC,SACc;;AACjB,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;AAEA,SACE;AACE,IAAA,SAAS,EAAED,UAAU,CACnB,QADmB,EAEnBY,QAAQ,KAAKV,QAAQ,CAACW,GAAtB,IAA6B,aAFV,sBAGNV,cAAc,CAACC,WAAD,aAACA,WAAD,cAACA,WAAD,GAAgBM,IAAhB,EAAsBL,QAAtB,CAHR,GAInBI,MAAM,IAAI,gBAJS;AADvB,KAOME,SAPN,GASE;AAAK,IAAA,SAAS,EAAC;AAAf,KAA6BN,QAA7B,CATF,CADF;AAaD,CAtBM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { Platform } from \"../../lib/platform\";\nimport \"./Tabbar.css\";\n\nexport interface TabbarProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Флаг для показа/скрытия верхней тени (Android) или границы (iOS)\n */\n shadow?: boolean;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `mode`\n */\n itemsLayout?: \"vertical\" | \"horizontal\" | \"auto\"; // TODO v5.0.0 удалить, будет использоваться mode\n /**\n * Задает расположение элементов (вертикальное/горизонтальное)\n */\n mode?: \"vertical\" | \"horizontal\" | \"auto\";\n}\n\nconst getItemsLayout = (\n itemsLayout: TabbarProps[\"mode\"],\n children: TabbarProps[\"children\"]\n) => {\n switch (itemsLayout) {\n case \"horizontal\":\n case \"vertical\":\n return itemsLayout;\n default:\n return React.Children.count(children) > 2 ? \"vertical\" : \"horizontal\";\n }\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tabbar\n */\nexport const Tabbar = ({\n children,\n shadow = true,\n itemsLayout,\n mode,\n ...restProps\n}: TabbarProps) => {\n const platform = usePlatform();\n\n return (\n <div\n vkuiClass={classNames(\n \"Tabbar\",\n platform === Platform.IOS && \"Tabbar--ios\",\n `Tabbar--l-${getItemsLayout(itemsLayout ?? mode, children)}`,\n shadow && \"Tabbar--shadow\"\n )}\n {...restProps}\n >\n <div vkuiClass=\"Tabbar__in\">{children}</div>\n </div>\n );\n};\n"],"file":"Tabbar.js"}
@@ -1 +1 @@
1
- .vkuiTabbarItem{display:flex;align-items:center;justify-content:center;color:#99a2ad;color:var(--tabbar_inactive_icon);text-decoration:none;border:0;outline:0;padding:0;background:0 0;height:48px;height:var(--tabbar_height);position:relative}.vkuiTabbar .vkuiTabbarItem{flex-shrink:0;max-width:100%;min-width:0;flex-grow:1;flex-basis:0}.vkuiTabbarItem--selected{color:#2975cc;color:var(--tabbar_active_icon)}.vkuiTabbarItem__tappable{position:absolute}.vkuiTabbarItem__in{display:flex;padding:0 2px;align-items:center;justify-content:center;pointer-events:none;height:100%;width:100%;overflow:hidden}.vkuiTabbar--l-vertical .vkuiTabbarItem--text .vkuiTabbarItem__in{position:relative;top:2px}.vkuiTabbar--l-vertical .vkuiTabbarItem__in{flex-direction:column}.vkuiTabbar--l-horizontal .vkuiTabbarItem__in{flex-direction:row}.vkuiTabbarItem__icon{position:relative}.vkuiTabbarItem__label .vkuiCounter{position:absolute;top:-2px;right:-9px}.vkuiTabbarItem__label .vkuiBadge{position:absolute;top:-2px;right:-4px}.vkuiTabbarItem__text{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.vkuiTabbar--l-vertical .vkuiTabbarItem__text{font-size:10px;line-height:12px;font-weight:500;margin-top:2px}.vkuiTabbar--l-horizontal .vkuiTabbarItem__text{font-size:13px;font-weight:500;margin-left:8px}.vkuiTabbarItem--android .vkuiTabbarItem__tappable{width:calc(100% + 16px);padding-bottom:calc(100% + 16px);border-radius:50%}.vkuiTabbarItem--android:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.vkuiTabbarItem--android:last-child{border-top-right-radius:0;border-bottom-right-radius:0}.vkuiTabbarItem--ios .vkuiTabbarItem__tappable{width:100%;height:100%;top:0;left:0}.vkuiTabbarItem--ios .vkuiTabbarItem__in{transition:-webkit-transform .07s cubic-bezier(.36,.66,.04,1);transition:transform .07s cubic-bezier(.36,.66,.04,1);transition:transform .07s cubic-bezier(.36,.66,.04,1),-webkit-transform .07s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .07s var(--ios-easing);transition:transform .07s var(--ios-easing);transition:transform .07s var(--ios-easing),-webkit-transform .07s var(--ios-easing)}.vkuiTabbarItem--ios .vkuiTabbarItem__tappable--active+.vkuiTabbarItem__in{-webkit-transform:scale(.96);transform:scale(.96)}
1
+ .vkuiTabbarItem{align-items:center;background:transparent;border:none;color:#99a2ad;color:var(--tabbar_inactive_icon,var(--vkui--color_text_tertiary));display:flex;height:48px;height:var(--tabbar_height);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none}.vkuiTabbar .vkuiTabbarItem{flex-basis:0;flex-grow:1;flex-shrink:0;max-width:100%;min-width:0}.vkuiTabbarItem--selected{color:#2975cc;color:var(--tabbar_active_icon,var(--vkui--color_text_accent_themed))}.vkuiTabbarItem__tappable{position:absolute}.vkuiTabbarItem__in{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;padding:0 2px;pointer-events:none;width:100%}.vkuiTabbar--l-vertical .vkuiTabbarItem--text .vkuiTabbarItem__in{position:relative;top:2px}.vkuiTabbar--l-vertical .vkuiTabbarItem__in{flex-direction:column}.vkuiTabbar--l-horizontal .vkuiTabbarItem__in{flex-direction:row}.vkuiTabbarItem__icon{color:#99a2ad;color:var(--tabbar_inactive_icon,var(--vkui--color_icon_secondary));position:relative}.vkuiTabbarItem--selected .vkuiTabbarItem__icon{color:#2975cc;color:var(--tabbar_active_icon,var(--vkui--color_icon_accent_themed))}.vkuiTabbarItem__label .vkuiCounter{position:absolute;right:-9px;top:-2px}.vkuiTabbarItem__label .vkuiBadge{position:absolute;right:-4px;top:-2px}.vkuiTabbarItem__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiTabbar--l-vertical .vkuiTabbarItem__text{font-size:10px;line-height:12px;margin-top:2px}.vkuiTabbar--l-horizontal .vkuiTabbarItem__text{margin-left:8px}.vkuiTabbarItem--android .vkuiTabbarItem__tappable{border-radius:50%;padding-bottom:calc(100% + 16px);width:calc(100% + 16px)}.vkuiTabbarItem--android:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.vkuiTabbarItem--android:last-child{border-bottom-right-radius:0;border-top-right-radius:0}.vkuiTabbarItem--ios .vkuiTabbarItem__tappable{height:100%;left:0;top:0;width:100%}.vkuiTabbarItem--ios .vkuiTabbarItem__in{transition:-webkit-transform .07s cubic-bezier(.36,.66,.04,1);transition:transform .07s cubic-bezier(.36,.66,.04,1);transition:transform .07s cubic-bezier(.36,.66,.04,1),-webkit-transform .07s cubic-bezier(.36,.66,.04,1);transition:-webkit-transform .07s var(--ios-easing);transition:transform .07s var(--ios-easing);transition:transform .07s var(--ios-easing),-webkit-transform .07s var(--ios-easing)}.vkuiTabbarItem--ios .vkuiTabbarItem__tappable--active+.vkuiTabbarItem__in{-webkit-transform:scale(.96);transform:scale(.96)}
@@ -2,12 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["children", "selected", "label", "indicator", "text", "href", "Component", "disabled"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
- import { getClassName } from "../../helpers/getClassName";
6
5
  import { Counter } from "../Counter/Counter";
7
6
  import { classNames } from "../../lib/classNames";
8
7
  import { usePlatform } from "../../hooks/usePlatform";
9
8
  import { hasReactNode } from "../../lib/utils";
10
9
  import { Tappable } from "../Tappable/Tappable";
10
+ import { Footnote } from "../Typography/Footnote/Footnote";
11
11
  import { Platform } from "../../lib/platform";
12
12
  import { warnOnce } from "../../lib/warnOnce";
13
13
  import "./TabbarItem.css";
@@ -36,12 +36,8 @@ export var TabbarItem = function TabbarItem(_ref) {
36
36
 
37
37
  return createScopedElement(Component, _extends({}, restProps, {
38
38
  disabled: disabled,
39
- href: href // eslint-disable-next-line vkui/no-object-expression-in-arguments
40
- ,
41
- vkuiClass: classNames(getClassName("TabbarItem", platform), {
42
- "TabbarItem--selected": selected,
43
- "TabbarItem--text": !!text
44
- })
39
+ href: href,
40
+ vkuiClass: classNames("TabbarItem", platform === Platform.IOS && "TabbarItem--ios", platform === Platform.ANDROID && "TabbarItem--android", selected && "TabbarItem--selected", !!text && "TabbarItem--text")
45
41
  }), createScopedElement(Tappable, {
46
42
  role: "presentation",
47
43
  Component: "div",
@@ -59,8 +55,10 @@ export var TabbarItem = function TabbarItem(_ref) {
59
55
  }, hasReactNode(indicator) && indicator, !indicator && label && createScopedElement(Counter, {
60
56
  size: "s",
61
57
  mode: "prominent"
62
- }, label))), text && createScopedElement("div", {
63
- vkuiClass: "TabbarItem__text"
58
+ }, label))), text && createScopedElement(Footnote, {
59
+ Component: "div",
60
+ vkuiClass: "TabbarItem__text",
61
+ weight: "2"
64
62
  }, text)));
65
63
  };
66
64
  //# sourceMappingURL=TabbarItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["getClassName","Counter","classNames","usePlatform","hasReactNode","Tappable","Platform","warnOnce","warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","IOS"],"mappings":";;;;AACA,SAASA,YAAT;AACA,SAASC,OAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AAEA,SAASC,QAAT;AACA;AAqBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,YAAD,CAArB;AAEA;AACA;AACA;;AACA,OAAO,IAAME,UAAU,GAAG,SAAbA,UAAa,OAUH;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGhB,WAAW,EAA5B;;AAEA,MAAIS,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,oBAAC,SAAD,eACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR,CAIE;AAJF;AAKE,IAAA,SAAS,EAAEb,UAAU,CAACF,YAAY,CAAC,YAAD,EAAemB,QAAf,CAAb,EAAuC;AAC1D,8BAAwBR,QADkC;AAE1D,0BAAoB,CAAC,CAACG;AAFoC,KAAvC;AALvB,MAUE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEJ,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IAVF,EAuBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGb,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,YAAY,CAACS,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,IAAnC,CAZX,CAvBF,CADF;AAwCD,CA3DM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Counter } from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Текст рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabbarItem\n */\nexport const TabbarItem = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"TabbarItem\", platform), {\n \"TabbarItem--selected\": selected,\n \"TabbarItem--text\": !!text,\n })}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && <div vkuiClass=\"TabbarItem__text\">{text}</div>}\n </div>\n </Component>\n );\n};\n"],"file":"TabbarItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/TabbarItem/TabbarItem.tsx"],"names":["Counter","classNames","usePlatform","hasReactNode","Tappable","Footnote","Platform","warnOnce","warn","TabbarItem","children","selected","label","indicator","text","href","Component","disabled","restProps","platform","process","env","NODE_ENV","IOS","ANDROID"],"mappings":";;;;AACA,SAASA,OAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AAEA,SAASC,QAAT;AACA;AAqBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,YAAD,CAArB;AAEA;AACA;AACA;;AACA,OAAO,IAAME,UAAU,GAAG,SAAbA,UAAa,OAUH;AAAA,MATrBC,QASqB,QATrBA,QASqB;AAAA,MARrBC,QAQqB,QARrBA,QAQqB;AAAA,MAPrBC,KAOqB,QAPrBA,KAOqB;AAAA,MANrBC,SAMqB,QANrBA,SAMqB;AAAA,MALrBC,IAKqB,QALrBA,IAKqB;AAAA,MAJrBC,IAIqB,QAJrBA,IAIqB;AAAA,4BAHrBC,SAGqB;AAAA,MAHrBA,SAGqB,+BAHTD,IAAI,GAAG,GAAH,GAAS,QAGJ;AAAA,MAFrBE,QAEqB,QAFrBA,QAEqB;AAAA,MADlBC,SACkB;;AACrB,MAAMC,QAAQ,GAAGjB,WAAW,EAA5B;;AAEA,MAAIU,KAAK,IAAIQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAtC,EAAqD;AACnDd,IAAAA,IAAI,CACF,yEADE,CAAJ;AAGD;;AAED,SACE,oBAAC,SAAD,eACMU,SADN;AAEE,IAAA,QAAQ,EAAED,QAFZ;AAGE,IAAA,IAAI,EAAEF,IAHR;AAIE,IAAA,SAAS,EAAEd,UAAU,CACnB,YADmB,EAEnBkB,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,IAA6B,iBAFV,EAGnBJ,QAAQ,KAAKb,QAAQ,CAACkB,OAAtB,IAAiC,qBAHd,EAInBb,QAAQ,IAAI,sBAJO,EAKnB,CAAC,CAACG,IAAF,IAAU,kBALS;AAJvB,MAYE,oBAAC,QAAD;AACE,IAAA,IAAI,EAAC,cADP;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,QAAQ,EAAEG,QAHZ;AAIE,IAAA,UAAU,EACRE,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GACI,8BADJ,GAEI,YAPR;AASE,IAAA,iBAAiB,EAAEJ,QAAQ,KAAKb,QAAQ,CAACiB,GAAtB,GAA4B,CAA5B,GAAgC,GATrD;AAUE,IAAA,QAAQ,EAAE,KAVZ;AAWE,IAAA,SAAS,EAAC;AAXZ,IAZF,EAyBE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGb,QADH,EAEE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGP,YAAY,CAACU,SAAD,CAAZ,IAA2BA,SAD9B,EAEG,CAACA,SAAD,IAAcD,KAAd,IACC,oBAAC,OAAD;AAAS,IAAA,IAAI,EAAC,GAAd;AAAkB,IAAA,IAAI,EAAC;AAAvB,KACGA,KADH,CAHJ,CAFF,CADF,EAYGE,IAAI,IACH,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC,KAApB;AAA0B,IAAA,SAAS,EAAC,kBAApC;AAAuD,IAAA,MAAM,EAAC;AAA9D,KACGA,IADH,CAbJ,CAzBF,CADF;AA8CD,CAjEM","sourcesContent":["import * as React from \"react\";\nimport { Counter } from \"../Counter/Counter\";\nimport { classNames } from \"../../lib/classNames\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Platform } from \"../../lib/platform\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./TabbarItem.css\";\n\nexport interface TabbarItemProps\n extends Omit<React.AllHTMLAttributes<HTMLElement>, \"label\">, // TODO убрать Omit после удаления свойства label\n HasRootRef<HTMLElement>,\n HasComponent {\n selected?: boolean;\n /**\n * Текст рядом с иконкой\n */\n text?: React.ReactNode;\n /**\n * Индикатор над иконкой. Принимает `<Badge mode=\"prominent\" />` или `<Counter size=\"s\" mode=\"prominent\" />`\n */\n indicator?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте `indicator`\n */\n label?: React.ReactNode;\n}\n\nconst warn = warnOnce(\"TabbarItem\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabbarItem\n */\nexport const TabbarItem = ({\n children,\n selected,\n label,\n indicator,\n text,\n href,\n Component = href ? \"a\" : \"button\",\n disabled,\n ...restProps\n}: TabbarItemProps) => {\n const platform = usePlatform();\n\n if (label && process.env.NODE_ENV === \"development\") {\n warn(\n \"Свойство label устарело и будет удалено в 5.0.0. Используйте indicator.\"\n );\n }\n\n return (\n <Component\n {...restProps}\n disabled={disabled}\n href={href}\n vkuiClass={classNames(\n \"TabbarItem\",\n platform === Platform.IOS && \"TabbarItem--ios\",\n platform === Platform.ANDROID && \"TabbarItem--android\",\n selected && \"TabbarItem--selected\",\n !!text && \"TabbarItem--text\"\n )}\n >\n <Tappable\n role=\"presentation\"\n Component=\"div\"\n disabled={disabled}\n activeMode={\n platform === Platform.IOS\n ? \"TabbarItem__tappable--active\"\n : \"background\"\n }\n activeEffectDelay={platform === Platform.IOS ? 0 : 300}\n hasHover={false}\n vkuiClass=\"TabbarItem__tappable\"\n />\n <div vkuiClass=\"TabbarItem__in\">\n <div vkuiClass=\"TabbarItem__icon\">\n {children}\n <div vkuiClass=\"TabbarItem__label\">\n {hasReactNode(indicator) && indicator}\n {!indicator && label && (\n <Counter size=\"s\" mode=\"prominent\">\n {label}\n </Counter>\n )}\n </div>\n </div>\n {text && (\n <Footnote Component=\"div\" vkuiClass=\"TabbarItem__text\" weight=\"2\">\n {text}\n </Footnote>\n )}\n </div>\n </Component>\n );\n};\n"],"file":"TabbarItem.js"}
@@ -1 +1 @@
1
- .vkuiTabs__in,.vkuiTabs .vkuiHorizontalScroll__in-wrapper{display:flex;align-items:center}.vkuiPanelHeader .vkuiTabs{overflow:hidden;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common)}.vkuiPanelHeader .vkuiTabs::after{display:block;width:1000px;content:""}.vkuiTabs .vkuiHorizontalScroll{min-width:100%}.vkuiTabs--buttons{padding-top:8px;padding-bottom:8px}.vkuiTabs--default,.vkuiTabs--default .vkuiHorizontalScroll__in-wrapper{justify-content:center}.vkuiTabs--buttons,.vkuiTabs--default .vkuiHorizontalScroll__in-wrapper{justify-content:flex-start}.vkuiTabs--sizeX-compact.vkuiTabs--buttons .vkuiHorizontalScroll__in-wrapper::after,.vkuiTabs--sizeX-compact.vkuiTabs--buttons .vkuiHorizontalScroll__in-wrapper::before{display:block;width:8px;flex-shrink:0;height:1px;content:""}.vkuiTabs--ios.vkuiTabs--segmented{padding:4px 12px 8px}.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiTabs::after{position:absolute;left:0;top:0;width:100%;height:100%;content:"";background:#fff;background:var(--background_content)}.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiTabs__in,.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiSeparator{position:relative;z-index:2}.vkuiTabsItem .vkuiCounter{margin-left:8px}.vkuiTabs .vkuiTabsItem .vkuiCounter--secondary{background:#76787a;background:var(--panel_tab_inactive_text);color:#fff;color:var(--white)}.vkuiTabs .vkuiTabsItem--selected .vkuiCounter--secondary{background:#5d5f61;background:var(--panel_tab_active_text);color:#ebedf0;color:var(--panel_tab_active_background)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem .vkuiCounter--secondary{background:#99a2ad;background:var(--segmented_control_tint);color:#fff;color:var(--background_content)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem--selected .vkuiCounter--secondary{background:#fff;background:var(--background_content);color:#99a2ad;color:var(--segmented_control_tint)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem .vkuiCounter--s-m{position:relative;top:1px}.vkuiGroup--plain .vkuiGroup__inner>.vkuiTabs--default:first-child{margin-top:-8px}.vkuiGroup--card>.vkuiGroup__inner>.vkuiTabs--default:first-child{margin-top:-4px}
1
+ .vkuiTabs__in{align-items:stretch;display:flex}.vkuiTabs--withGaps{justify-content:flex-start}.vkuiTabs--ios.vkuiTabs--segmented{padding:4px 12px 8px}.vkuiPanelHeader .vkuiTabs{font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--font-common);overflow:hidden}.vkuiPanelHeader .vkuiTabs:after{content:"";display:block;width:1000px}.vkuiGroup--plain .vkuiGroup__inner>.vkuiTabs--default:first-child{margin-top:-8px}.vkuiGroup--card>.vkuiGroup__inner>.vkuiTabs--default:first-child{margin-top:-4px}.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiTabs:after{background:#fff;background:var(--background_content,var(--vkui--color_background_content));content:"";height:100%;left:0;position:absolute;top:0;width:100%}.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiSeparator,.vkuiFixedLayout--ios.vkuiFixedLayout--bottom .vkuiTabs__in{position:relative;z-index:2}
@@ -3,10 +3,21 @@ import { HasRootRef } from "../../types";
3
3
  import { AdaptivityProps } from "../../hoc/withAdaptivity";
4
4
  import "./Tabs.css";
5
5
  export interface TabsProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement>, AdaptivityProps {
6
- mode?: "default" | "buttons" | "segmented";
6
+ /**
7
+ * Задаёт вид кнопок.
8
+ *
9
+ * > ⚠️ Значения `"buttons"`, `"segmented"` устарели и будут удалены в 5.0.0. Вместо `"buttons"` используйте `"secondary"`.
10
+ * > Режим `"segmented"` переехал в отдельный компонент [`SegmentedControl`](https://vkcom.github.io/VKUI#/SegmentedControl),
11
+ * > поэтому используйте его вместо `Tabs`.
12
+ */
13
+ mode?: "buttons" | "segmented" | "default" | "accent" | "secondary";
7
14
  }
8
- export declare const TabsModeContext: React.Context<"default" | "buttons" | "segmented" | undefined>;
15
+ export interface TabsContextProps {
16
+ mode: TabsProps["mode"];
17
+ withGaps: boolean;
18
+ }
19
+ export declare const TabsModeContext: React.Context<TabsContextProps>;
9
20
  /**
10
21
  * @see https://vkcom.github.io/VKUI/#/Tabs
11
22
  */
12
- export declare const Tabs: React.ComponentType<Pick<TabsProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "mode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "getRootRef"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
23
+ export declare const Tabs: React.FC<Pick<TabsProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "mode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "getRootRef"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
@@ -3,13 +3,17 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  var _excluded = ["children", "mode", "getRootRef", "sizeX"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import * as React from "react";
6
- import { getClassName } from "../../helpers/getClassName";
7
6
  import { classNames } from "../../lib/classNames";
8
7
  import { usePlatform } from "../../hooks/usePlatform";
9
- import { IOS } from "../../lib/platform";
8
+ import { IOS, VKCOM } from "../../lib/platform";
10
9
  import { withAdaptivity } from "../../hoc/withAdaptivity";
10
+ import { warnOnce } from "../../lib/warnOnce";
11
11
  import "./Tabs.css";
12
- export var TabsModeContext = /*#__PURE__*/React.createContext("default");
12
+ var warn = warnOnce("Tabs");
13
+ export var TabsModeContext = /*#__PURE__*/React.createContext({
14
+ mode: "default",
15
+ withGaps: false
16
+ });
13
17
 
14
18
  var TabsComponent = function TabsComponent(_ref) {
15
19
  var children = _ref.children,
@@ -21,17 +25,31 @@ var TabsComponent = function TabsComponent(_ref) {
21
25
 
22
26
  var platform = usePlatform();
23
27
 
28
+ if ((mode === "buttons" || mode === "segmented") && process.env.NODE_ENV === "development") {
29
+ var expectedValueText = mode === "buttons" ? "\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \"secondary\"" : "компонент SegmentedControl";
30
+ warn("mode=\"".concat(mode, "\" \u0443\u0441\u0442\u0430\u0440\u0435\u043B\u043E \u0438 \u0431\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043B\u0435\u043D\u043E \u0432 5.0.0. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 ").concat(expectedValueText));
31
+ }
32
+
24
33
  if (platform !== IOS && mode === "segmented") {
25
34
  mode = "default";
26
35
  }
27
36
 
37
+ if (mode === "buttons") {
38
+ mode = "secondary";
39
+ }
40
+
41
+ var withGaps = mode === "accent" || mode === "secondary";
28
42
  return createScopedElement("div", _extends({}, restProps, {
29
43
  ref: getRootRef,
30
- vkuiClass: classNames(getClassName("Tabs", platform), "Tabs--".concat(mode), "Tabs--sizeX-".concat(sizeX))
44
+ vkuiClass: classNames("Tabs", (platform === IOS || platform === VKCOM) && "Tabs--".concat(platform), "Tabs--".concat(mode), withGaps && "Tabs--withGaps", // TODO v5.0.0 новая адаптивность
45
+ "Tabs--sizeX-".concat(sizeX))
31
46
  }), createScopedElement("div", {
32
47
  vkuiClass: "Tabs__in"
33
48
  }, createScopedElement(TabsModeContext.Provider, {
34
- value: mode
49
+ value: {
50
+ mode: mode,
51
+ withGaps: withGaps
52
+ }
35
53
  }, children)));
36
54
  };
37
55
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tabs/Tabs.tsx"],"names":["React","getClassName","classNames","usePlatform","IOS","withAdaptivity","TabsModeContext","createContext","TabsComponent","children","mode","getRootRef","sizeX","restProps","platform","Tabs","displayName"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,SAASC,GAAT;AACA,SAASC,cAAT;AACA;AASA,OAAO,IAAMC,eAAe,gBAC1BN,KAAK,CAACO,aAAN,CAAuC,SAAvC,CADK;;AAGP,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAML;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,uBAJfC,IAIe;AAAA,MAJfA,IAIe,0BAJR,SAIQ;AAAA,MAHfC,UAGe,QAHfA,UAGe;AAAA,MAFfC,KAEe,QAFfA,KAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGX,WAAW,EAA5B;;AAEA,MAAIW,QAAQ,KAAKV,GAAb,IAAoBM,IAAI,KAAK,WAAjC,EAA8C;AAC5CA,IAAAA,IAAI,GAAG,SAAP;AACD;;AAED,SACE,wCACMG,SADN;AAEE,IAAA,GAAG,EAAEF,UAFP;AAGE,IAAA,SAAS,EAAET,UAAU,CACnBD,YAAY,CAAC,MAAD,EAASa,QAAT,CADO,kBAEVJ,IAFU,yBAGJE,KAHI;AAHvB,MASE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAEF;AAAjC,KACGD,QADH,CADF,CATF,CADF;AAiBD,CA9BD;AAgCA;AACA;AACA;;;AACA,OAAO,IAAMM,IAAI,GAAGV,cAAc,CAACG,aAAD,EAAgB;AAAEI,EAAAA,KAAK,EAAE;AAAT,CAAhB,CAA3B;AAEPG,IAAI,CAACC,WAAL,GAAmB,MAAnB","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { IOS } from \"../../lib/platform\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport \"./Tabs.css\";\n\nexport interface TabsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n mode?: \"default\" | \"buttons\" | \"segmented\";\n}\n\nexport const TabsModeContext =\n React.createContext<TabsProps[\"mode\"]>(\"default\");\n\nconst TabsComponent = ({\n children,\n mode = \"default\",\n getRootRef,\n sizeX,\n ...restProps\n}: TabsProps) => {\n const platform = usePlatform();\n\n if (platform !== IOS && mode === \"segmented\") {\n mode = \"default\";\n }\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\n getClassName(\"Tabs\", platform),\n `Tabs--${mode}`,\n `Tabs--sizeX-${sizeX}`\n )}\n >\n <div vkuiClass=\"Tabs__in\">\n <TabsModeContext.Provider value={mode}>\n {children}\n </TabsModeContext.Provider>\n </div>\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tabs\n */\nexport const Tabs = withAdaptivity(TabsComponent, { sizeX: true });\n\nTabs.displayName = \"Tabs\";\n"],"file":"Tabs.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tabs/Tabs.tsx"],"names":["React","classNames","usePlatform","IOS","VKCOM","withAdaptivity","warnOnce","warn","TabsModeContext","createContext","mode","withGaps","TabsComponent","children","getRootRef","sizeX","restProps","platform","process","env","NODE_ENV","expectedValueText","Tabs","displayName"],"mappings":";;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AAEA,SAASC,WAAT;AACA,SAASC,GAAT,EAAcC,KAAd;AACA,SAASC,cAAT;AACA,SAASC,QAAT;AACA;AAgBA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,MAAD,CAArB;AAOA,OAAO,IAAME,eAAe,gBAAGR,KAAK,CAACS,aAAN,CAAsC;AACnEC,EAAAA,IAAI,EAAE,SAD6D;AAEnEC,EAAAA,QAAQ,EAAE;AAFyD,CAAtC,CAAxB;;AAKP,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,OAML;AAAA,MALfC,QAKe,QALfA,QAKe;AAAA,uBAJfH,IAIe;AAAA,MAJfA,IAIe,0BAJR,SAIQ;AAAA,MAHfI,UAGe,QAHfA,UAGe;AAAA,MAFfC,KAEe,QAFfA,KAEe;AAAA,MADZC,SACY;;AACf,MAAMC,QAAQ,GAAGf,WAAW,EAA5B;;AAEA,MACE,CAACQ,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,WAAhC,KACAQ,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAF3B,EAGE;AACA,QAAMC,iBAAiB,GACrBX,IAAI,KAAK,SAAT,sEAEI,4BAHN;AAIAH,IAAAA,IAAI,kBACOG,IADP,mOAC8DW,iBAD9D,EAAJ;AAGD;;AAED,MAAIJ,QAAQ,KAAKd,GAAb,IAAoBO,IAAI,KAAK,WAAjC,EAA8C;AAC5CA,IAAAA,IAAI,GAAG,SAAP;AACD;;AAED,MAAIA,IAAI,KAAK,SAAb,EAAwB;AACtBA,IAAAA,IAAI,GAAG,WAAP;AACD;;AAED,MAAMC,QAAQ,GAAGD,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,WAA/C;AAEA,SACE,wCACMM,SADN;AAEE,IAAA,GAAG,EAAEF,UAFP;AAGE,IAAA,SAAS,EAAEb,UAAU,CACnB,MADmB,EAEnB,CAACgB,QAAQ,KAAKd,GAAb,IAAoBc,QAAQ,KAAKb,KAAlC,qBAAqDa,QAArD,CAFmB,kBAGVP,IAHU,GAInBC,QAAQ,IAAI,gBAJO,EAKnB;AALmB,0BAMJI,KANI;AAHvB,MAYE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,eAAD,CAAiB,QAAjB;AAA0B,IAAA,KAAK,EAAE;AAAEL,MAAAA,IAAI,EAAJA,IAAF;AAAQC,MAAAA,QAAQ,EAARA;AAAR;AAAjC,KACGE,QADH,CADF,CAZF,CADF;AAoBD,CApDD;AAsDA;AACA;AACA;;;AACA,OAAO,IAAMS,IAAI,GAAGjB,cAAc,CAACO,aAAD,EAAgB;AAAEG,EAAAA,KAAK,EAAE;AAAT,CAAhB,CAA3B;AAEPO,IAAI,CAACC,WAAL,GAAmB,MAAnB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { HasRootRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport \"./Tabs.css\";\n\nexport interface TabsProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement>,\n AdaptivityProps {\n /**\n * Задаёт вид кнопок.\n *\n * > ⚠️ Значения `\"buttons\"`, `\"segmented\"` устарели и будут удалены в 5.0.0. Вместо `\"buttons\"` используйте `\"secondary\"`.\n * > Режим `\"segmented\"` переехал в отдельный компонент [`SegmentedControl`](https://vkcom.github.io/VKUI#/SegmentedControl),\n * > поэтому используйте его вместо `Tabs`.\n */\n mode?: \"buttons\" | \"segmented\" | \"default\" | \"accent\" | \"secondary\";\n}\n\nconst warn = warnOnce(\"Tabs\");\n\nexport interface TabsContextProps {\n mode: TabsProps[\"mode\"];\n withGaps: boolean;\n}\n\nexport const TabsModeContext = React.createContext<TabsContextProps>({\n mode: \"default\",\n withGaps: false,\n});\n\nconst TabsComponent = ({\n children,\n mode = \"default\",\n getRootRef,\n sizeX,\n ...restProps\n}: TabsProps) => {\n const platform = usePlatform();\n\n if (\n (mode === \"buttons\" || mode === \"segmented\") &&\n process.env.NODE_ENV === \"development\"\n ) {\n const expectedValueText =\n mode === \"buttons\"\n ? `значения \"secondary\"`\n : \"компонент SegmentedControl\";\n warn(\n `mode=\"${mode}\" устарело и будет удалено в 5.0.0. Используйте ${expectedValueText}`\n );\n }\n\n if (platform !== IOS && mode === \"segmented\") {\n mode = \"default\";\n }\n\n if (mode === \"buttons\") {\n mode = \"secondary\";\n }\n\n const withGaps = mode === \"accent\" || mode === \"secondary\";\n\n return (\n <div\n {...restProps}\n ref={getRootRef}\n vkuiClass={classNames(\n \"Tabs\",\n (platform === IOS || platform === VKCOM) && `Tabs--${platform}`,\n `Tabs--${mode}`,\n withGaps && \"Tabs--withGaps\",\n // TODO v5.0.0 новая адаптивность\n `Tabs--sizeX-${sizeX}`\n )}\n >\n <div vkuiClass=\"Tabs__in\">\n <TabsModeContext.Provider value={{ mode, withGaps }}>\n {children}\n </TabsModeContext.Provider>\n </div>\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tabs\n */\nexport const Tabs = withAdaptivity(TabsComponent, { sizeX: true });\n\nTabs.displayName = \"Tabs\";\n"],"file":"Tabs.js"}
@@ -1 +1,5 @@
1
- .vkuiTabsItem{white-space:nowrap;text-align:center;box-sizing:border-box;flex-shrink:0;display:flex;align-items:baseline;justify-content:center}.vkuiTabs--default .vkuiTabsItem{color:#99a2ad;color:var(--text_tertiary);max-width:100%;min-width:0;flex-basis:0;flex-shrink:0;flex-grow:1;position:relative;padding-left:16px;padding-right:16px}.vkuiTabs--default .vkuiTabsItem__in{overflow:hidden;overflow:-moz-hidden-unscrollable;text-overflow:ellipsis;padding:14px 0}.vkuiTabs--default .vkuiTabsItem::after{content:"";display:block;position:absolute;left:16px;bottom:8px;width:calc(100% - 32px);height:2px;border-radius:2px}.vkuiTabs--default .vkuiTabsItem--selected{color:#000;color:var(--text_primary)}.vkuiTabs--default .vkuiTabsItem--selected::after{background:#2688eb;background:var(--accent)}.vkuiHorizontalScroll .vkuiTabsItem{min-width:64px;flex-basis:auto}.vkuiTabs--buttons .vkuiTabsItem{border-radius:10px;box-sizing:border-box;padding:0 16px}.vkuiTabs--buttons .vkuiTabsItem__in{padding:6px 0}.vkuiTabs--buttons .vkuiTabs__in>.vkuiTabsItem:first-child{margin-left:8px}.vkuiTabs--buttons .vkuiTabsItem:not(:last-child){margin-right:8px}.vkuiTabs--buttons .vkuiTabsItem{background-color:#fff;background-color:var(--header_background);color:#99a2ad;color:var(--header_tab_inactive_text)}.vkuiTabs--buttons .vkuiTabsItem--selected{background-color:transparent;background-color:var(--header_tab_active_background);color:#000;color:var(--header_tab_active_text)}.vkuiTabs--buttons .vkuiTabsItem{color:#76787a;color:var(--panel_tab_inactive_text)}.vkuiTabs--buttons .vkuiTabsItem--selected{background-color:#ebedf0;background-color:var(--panel_tab_active_background);color:#5d5f61;color:var(--panel_tab_active_text)}.vkuiTabsItem__after .vkuiIcon--dropdown_16{color:#2688eb;color:var(--header_tint);-webkit-transform-origin:50% calc(50% + 1px);transform-origin:50% calc(50% + 1px);-webkit-transform:translateY(1px);transform:translateY(1px);margin-left:6px}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem{border:1px solid;padding:0 12px;max-width:100%;flex-basis:0;flex-shrink:0;flex-grow:1;border-radius:0}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem__in{padding:7px 0}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem:not(:first-child){border-left:none}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem{border-color:#99a2ad;border-color:var(--segmented_control_tint);color:#99a2ad;color:var(--segmented_control_tint)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem--selected{background-color:#99a2ad;background-color:var(--segmented_control_tint)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem--selected{color:#fff;color:var(--background_content)}.vkuiTabs--ios.vkuiTabs--segmented .vkuiTabsItem:not(.vkuiTabsItem--selected).vkuiTabsItem--active{background:#d7d8d9;background:var(--separator_common)}.vkuiPanelHeader--ios .vkuiTabs--segmented.vkuiTabsItem:not(.vkuiTabsItem--selected).vkuiTabsItem--active .vkuiTabsItem__in{opacity:.7}.vkuiPanelHeader--ios .vkuiTabs--segmented .vkuiTabsItem{border-color:#2688eb;border-color:var(--header_tint);color:#2688eb;color:var(--header_tint)}.vkuiTabs--ios.vkuiTabs--segmented.vkuiTabs--header .vkuiTabsItem--selected{background-color:#2688eb;background-color:var(--header_tint);color:#fff;color:var(--header_background)}.vkuiTabs--vkcom .vkuiTabsItem--vkcom{flex-grow:0;min-width:auto;padding-left:10px;padding-right:10px}.vkuiTabs--vkcom .vkuiTabsItem--vkcom::after{left:2px;bottom:0;width:calc(100% - 4px)}
1
+ .vkuiTabsItem{align-items:center;border-radius:8px;border-radius:var(--vkui--size_border_radius--regular,8px);box-sizing:border-box;display:flex;justify-content:center;max-width:100%;min-height:32px;min-width:0;padding:4px 8px;transition:background-color .15s ease-out}.vkuiTabsItem--withGaps{margin-bottom:8px;margin-left:6px;margin-top:8px}.vkuiTabsItem--sizeY-compact{min-height:28px;padding-bottom:2px;padding-top:2px}.vkuiTabsItem[disabled]{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility,.64)}.vkuiTabsItem--default{flex-basis:0;flex-grow:1;flex-shrink:0;min-height:48px;padding:12px 16px;position:relative}.vkuiTabsItem--sizeY-compact.vkuiTabsItem--default{min-height:44px;padding-bottom:10px;padding-top:10px}.vkuiTabsItem--hover.vkuiTabsItem--default{background-color:rgba(0,16,61,.04);background-color:var(--vkui--color_transparent--hover,rgba(0,16,61,.04))}.vkuiTabsItem--accent{transition:background-color .15s ease-out,box-shadow .15s ease-out}.vkuiTabsItem--selected.vkuiTabsItem--accent{background-color:#fff;background-color:var(
2
+ --header_alternate_background,var(--vkui--color_background_modal)
3
+ );box-shadow:0 4px 8px rgba(0,0,0,.04),0 0 4px rgba(0,0,0,.06);box-shadow:var(--vkui--elevation2,0 4px 8px rgba(0,0,0,.04),0 0 4px rgba(0,0,0,.06))}.vkuiTabsItem--hover.vkuiTabsItem--accent{background-color:#ebedf0;background-color:var(
4
+ --control_background,var(--vkui--color_background_secondary)
5
+ )}.vkuiTabsItem--accent:before{border:1px solid transparent;border:var(--thin-border) solid transparent;border-radius:inherit;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.vkuiTabsItem--selected.vkuiTabsItem--accent:before{border-color:#d7d8d9;border-color:var(--separator_common,var(--vkui--color_separator_primary))}.vkuiTabsItem--selected.vkuiTabsItem--secondary{background-color:rgba(0,0,0,.04);background-color:var(--vkui--color_background_secondary_alpha,rgba(0,0,0,.04))}.vkuiTabsItem--hover.vkuiTabsItem--secondary{background-color:rgba(0,0,0,.08);background-color:var(--vkui--color_background_secondary_alpha--hover,rgba(0,0,0,.08))}.vkuiTabsItem__before{color:#818c99;color:var(--icon_outline_medium,var(--vkui--color_icon_medium));margin-right:6px;transition:color .15s ease-out}.vkuiTabsItem--selected .vkuiTabsItem__before{color:#000;color:var(--text_primary,var(--vkui--color_icon_primary))}.vkuiTabsItem--selected.vkuiTabsItem--accent .vkuiTabsItem__before{color:#2688eb;color:var(--header_tint_alternate,var(--vkui--color_icon_accent_themed))}.vkuiTabsItem--selected.vkuiTabsItem--secondary .vkuiTabsItem__before{opacity:.72}.vkuiTabsItem__label{color:#818c99;color:var(--text_secondary,var(--vkui--color_text_secondary));max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;transition:color .15s ease-out;white-space:nowrap}.vkuiTabsItem--selected .vkuiTabsItem__label{color:#000;color:var(--text_primary,var(--vkui--color_text_primary))}.vkuiTabsItem--selected.vkuiTabsItem--accent .vkuiTabsItem__label{color:#2688eb;color:var(--header_tint_alternate,var(--vkui--color_text_accent_themed))}.vkuiTabsItem--selected.vkuiTabsItem--secondary .vkuiTabsItem__label{opacity:.72}.vkuiTabsItem__status{margin-left:6px}.vkuiTabsItem__status--count{color:#99a2ad;color:var(--text_tertiary,var(--vkui--color_text_tertiary))}.vkuiTabsItem__after{color:#2688eb;color:var(--header_tint_alternate,var(--vkui--color_icon_accent_themed));margin-left:6px}.vkuiTabsItem__underline{background-color:#2688eb;background-color:var(--accent,var(--vkui--color_background_accent));border-radius:2px;bottom:5px;height:2px;left:16px;opacity:0;pointer-events:none;position:absolute;right:16px;transition:opacity .15s ease-out}.vkuiTabsItem--sizeY-compact .vkuiTabsItem__underline{bottom:3px}.vkuiTabsItem__underline[data-selected=true]{opacity:1}.vkuiTabs--vkcom .vkuiTabsItem{flex-grow:0;min-width:auto;padding-left:10px;padding-right:10px}.vkuiTabs--vkcom .vkuiTabsItem__underline{bottom:0;left:2px;right:2px}.vkuiHorizontalScroll .vkuiTabsItem{flex-basis:auto;flex-grow:1;flex-shrink:0;min-width:64px}.vkuiTabsItem--ios.vkuiTabsItem--segmented{border:1px solid #99a2ad;border:1px solid var(--segmented_control_tint);border-radius:0;flex-basis:0;flex-grow:1;flex-shrink:0;max-width:100%;padding:7px 12px}.vkuiTabsItem--ios.vkuiTabsItem--segmented:not(:first-child){border-left:none}.vkuiTabsItem--ios.vkuiTabsItem--segmented:first-child{border-bottom-left-radius:10px;border-top-left-radius:10px}.vkuiTabsItem--ios.vkuiTabsItem--segmented:last-child{border-bottom-right-radius:10px;border-top-right-radius:10px}.vkuiTabsItem--ios.vkuiTabsItem--segmented.vkuiTabsItem--selected{background-color:#99a2ad;background-color:var(--segmented_control_tint);color:#fff;color:var(--background_content)}.vkuiTabsItem--ios.vkuiTabsItem--segmented:not(.vkuiTabsItem--selected).vkuiTabsItem--active{background-color:#d7d8d9;background-color:var(--separator_common)}.vkuiTabs--header .vkuiTabsItem--ios.vkuiTabsItem--segmented.vkuiTabsItem--selected{background-color:#2688eb;background-color:var(--header_tint_alternate);color:#fff;color:var(--header_background)}.vkuiTabsItem--ios.vkuiTabsItem--segmented .vkuiTabsItem__label{color:#99a2ad;color:var(--segmented_control_tint)}.vkuiTabsItem--ios.vkuiTabsItem--segmented.vkuiTabsItem--selected .vkuiTabsItem__label{color:#fff;color:var(--background_content)}.vkuiPanelHeader--ios .vkuiTabsItem--segmented:not(.vkuiTabsItem--selected).vkuiTabsItem--active .vkuiTabsItem__label{opacity:.7}.vkuiPanelHeader--ios .vkuiTabsItem--segmented{border-color:#2688eb;border-color:var(--header_tint_alternate);color:#2688eb;color:var(--header_tint_alternate)}
@@ -1,10 +1,31 @@
1
1
  import * as React from "react";
2
2
  import "./TabsItem.css";
3
3
  export interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {
4
+ /**
5
+ * Добавляет иконку слева.
6
+ *
7
+ * - Для `mode="default"` используйте иконки размером 24.
8
+ * - Для всех остальных `mode` используйте иконки размером 20.
9
+ */
10
+ before?: React.ReactNode;
11
+ /**
12
+ * Добавляет элемент слева от `after`.
13
+ *
14
+ * - `React.ReactElement` – либо [`Badge`](https://vkcom.github.io/VKUI/#/Badge) с параметром `mode="prominent"`.
15
+ * либо [`Counter`](https://vkcom.github.io/VKUI/#/Counter) с параметрами `mode="prominent" size="s"`.
16
+ * - `number` – для показа текстового блока с переданным числом.
17
+ */
18
+ status?: React.ReactElement | number;
19
+ /**
20
+ * Добавляет иконку справа.
21
+ *
22
+ * Например, `<Icon16Dropdown />`
23
+ */
4
24
  after?: React.ReactNode;
5
25
  selected?: boolean;
26
+ disabled?: boolean;
6
27
  }
7
28
  /**
8
29
  * @see https://vkcom.github.io/VKUI/#/TabsItem
9
30
  */
10
- export declare const TabsItem: ({ children, selected, after, ...restProps }: TabsItemProps) => JSX.Element;
31
+ export declare const TabsItem: ({ before, children, status, after, selected, ...restProps }: TabsItemProps) => JSX.Element;