@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
@@ -6,6 +6,7 @@ import { classNames } from "../../lib/classNames";
6
6
  import { Popper, Placement } from "../Popper/Popper";
7
7
  import { Spinner } from "../Spinner/Spinner";
8
8
  import { HasRef } from "../../types";
9
+ import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
9
10
  import "./CustomSelectDropdown.css";
10
11
 
11
12
  export interface CustomSelectDropdownProps
@@ -15,6 +16,9 @@ export interface CustomSelectDropdownProps
15
16
  targetRef: React.RefObject<HTMLElement>;
16
17
  placement?: Placement;
17
18
  scrollBoxRef?: React.RefObject<HTMLDivElement>;
19
+ observableRefs?:
20
+ | Array<React.RefObject<HTMLElement>>
21
+ | React.RefObject<HTMLElement>;
18
22
  fetching?: boolean;
19
23
  offsetDistance?: number;
20
24
  sameWidth?: boolean;
@@ -24,6 +28,28 @@ export interface CustomSelectDropdownProps
24
28
 
25
29
  const calcIsTop = (placement?: Placement) => placement?.includes("top");
26
30
 
31
+ function getObserverModifier<T extends HTMLElement>(
32
+ element: T
33
+ ): Modifier<string> {
34
+ return {
35
+ name: "customSelectChildrenChange",
36
+ enabled: true,
37
+ phase: "main",
38
+ effect: ({ instance }) => {
39
+ const observer = new MutationObserver(instance.forceUpdate);
40
+
41
+ observer.observe(element, {
42
+ childList: true,
43
+ subtree: true,
44
+ });
45
+
46
+ return () => {
47
+ observer.disconnect();
48
+ };
49
+ },
50
+ };
51
+ }
52
+
27
53
  export const CustomSelectDropdown = ({
28
54
  children,
29
55
  targetRef,
@@ -36,35 +62,32 @@ export const CustomSelectDropdown = ({
36
62
  forcePortal = true,
37
63
  autoHideScrollbar,
38
64
  autoHideScrollbarDelay,
65
+ observableRefs,
39
66
  ...restProps
40
67
  }: CustomSelectDropdownProps) => {
41
68
  const [isTop, setIsTop] = React.useState(() => calcIsTop(placement));
69
+ const [customModifiers, setCustomModifiers] = React.useState<
70
+ Array<Modifier<string>>
71
+ >([]);
42
72
 
43
- const customModifiers = React.useMemo<Array<Modifier<string>>>(() => {
44
- if (!scrollBoxRef?.current) {
45
- return [];
73
+ useIsomorphicLayoutEffect(() => {
74
+ if (!observableRefs) {
75
+ return;
46
76
  }
77
+ const customModifiers: Array<Modifier<string>> = [];
47
78
 
48
- return [
49
- {
50
- name: "customSelectChildrenChange",
51
- enabled: true,
52
- phase: "main",
53
- effect: ({ instance }) => {
54
- const observer = new MutationObserver(instance.forceUpdate);
55
-
56
- observer.observe(scrollBoxRef.current as Element, {
57
- childList: true,
58
- });
79
+ if (Array.isArray(observableRefs)) {
80
+ for (const ref of observableRefs) {
81
+ if (ref?.current) {
82
+ customModifiers.push(getObserverModifier(ref.current));
83
+ }
84
+ }
85
+ } else if (observableRefs.current) {
86
+ customModifiers.push(getObserverModifier(observableRefs.current));
87
+ }
59
88
 
60
- return () => {
61
- observer.disconnect();
62
- };
63
- },
64
- },
65
- ];
66
- // eslint-disable-next-line react-hooks/exhaustive-deps
67
- }, [scrollBoxRef?.current]);
89
+ setCustomModifiers(customModifiers);
90
+ }, [observableRefs]);
68
91
 
69
92
  const onPlacementChange = React.useCallback(
70
93
  ({ placement }: { placement?: Placement }) => {
@@ -1,6 +1,18 @@
1
1
  .Dropdown {
2
+ position: relative;
2
3
  animation: vkui-popper-fadein 0.2s ease;
3
4
  background: var(--modal_card_background, var(--vkui--color_background_modal));
4
5
  border-radius: var(--vkui--size_border_radius--regular);
5
6
  box-shadow: var(--vkui--elevation3);
6
7
  }
8
+
9
+ /* Создаём "Safe Zone" */
10
+ .Dropdown::before {
11
+ content: "";
12
+ position: absolute;
13
+ z-index: -1;
14
+ top: calc(-1 * var(--popover-safe-zone-padding));
15
+ right: calc(-1 * var(--popover-safe-zone-padding));
16
+ bottom: calc(-1 * var(--popover-safe-zone-padding));
17
+ left: calc(-1 * var(--popover-safe-zone-padding));
18
+ }
@@ -1,36 +1,190 @@
1
- import { HoverPopper, HoverPopperProps } from "../HoverPopper/HoverPopper";
2
- import { ClickPopper, ClickPopperProps } from "../ClickPopper/ClickPopper";
1
+ import * as React from "react";
2
+ import { useDOM } from "../../lib/dom";
3
+ import { PopperCommonProps, Popper } from "../Popper/Popper";
4
+ import { FocusTrap } from "../FocusTrap/FocusTrap";
5
+ import { useTimeout } from "../../hooks/useTimeout";
6
+ import { useExternRef } from "../../hooks/useExternRef";
7
+ import { useEventListener } from "../../hooks/useEventListener";
8
+ import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
9
+ import { usePatchChildrenRef } from "../../hooks/usePatchChildrenRef";
3
10
  import "./Dropdown.css";
4
11
 
5
12
  export interface DropdownProps
6
- extends Omit<ClickPopperProps, "arrow" | "arrowClassName">,
7
- Omit<HoverPopperProps, "arrow" | "arrowClassName"> {
13
+ extends Omit<PopperCommonProps, "arrow" | "arrowClassName"> {
14
+ /**
15
+ * Механика вызова всплывающего окна.
16
+ *
17
+ * - `"click"` – показывается/скрывается только при нажатии.
18
+ * - `"hover"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.
19
+ *
20
+ * > ⚠️`"hover"` на тач-устройствах будет работать как `"click"`, с одним лишь нюансом, что не будет закрываться
21
+ * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента
22
+ * > и выпадающего окна.
23
+ */
8
24
  action?: "click" | "hover";
25
+ /**
26
+ * Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.
27
+ */
28
+ shown?: boolean;
29
+ /**
30
+ * Количество миллисекунд, после которых произойдёт показ всплывающего окна.
31
+ *
32
+ * > Используется только для `action="hover"` при наведении/отведении мыши.
33
+ */
34
+ showDelay?: number;
35
+ /**
36
+ * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.
37
+ *
38
+ * > Используется только для `action="hover"` при наведении/отведении мыши.
39
+ */
40
+ hideDelay?: number;
41
+ /**
42
+ * Содержимое всплывающего окна.
43
+ */
44
+ content?: React.ReactNode;
45
+ /**
46
+ * Целевой элемент. Всплывающее окно появится возле него.
47
+ *
48
+ * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.
49
+ */
50
+ children?: React.ReactElement;
51
+ /**
52
+ * Вызывается при каждом изменении видимости всплывающего окна.
53
+ */
54
+ onShownChange?(shown: boolean): void;
9
55
  }
10
56
 
11
57
  /**
12
58
  * @see https://vkcom.github.io/VKUI/#/Dropdown
59
+ *
60
+ * TODO v5.0.0 Переименовать в `Popover` (см. https://github.com/VKCOM/VKUI/issues/2523)
13
61
  */
14
62
  export const Dropdown = ({
15
63
  action = "click",
16
- hideDelay,
17
- showDelay,
18
- ...popperProps
64
+ shown: shownProp,
65
+ showDelay = 150,
66
+ hideDelay = 150,
67
+ offsetDistance = 8,
68
+ content,
69
+ children,
70
+ style,
71
+ getRef,
72
+ onShownChange,
73
+ ...restProps
19
74
  }: DropdownProps) => {
20
- let Component;
21
- let actionSpecificProps: Partial<DropdownProps> = {};
22
-
23
- switch (action) {
24
- case "click":
25
- Component = ClickPopper;
26
- break;
27
- case "hover":
28
- actionSpecificProps = { hideDelay, showDelay };
29
- Component = HoverPopper;
30
- break;
31
- }
75
+ const { document } = useDOM();
76
+
77
+ const hoverable = action === "hover";
78
+ const hovered = React.useRef(false);
79
+ const [computedShown, setComputedShown] = React.useState(shownProp || false);
80
+ const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(
81
+ null
82
+ );
83
+
84
+ // Reason: Typescript ругается на CSS Custom Properties в объекте
85
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
86
+ const styles = {
87
+ ...style,
88
+ "--popover-safe-zone-padding": `${offsetDistance}px`,
89
+ } as React.CSSProperties;
90
+
91
+ const shown = typeof shownProp === "boolean" ? shownProp : computedShown;
92
+
93
+ const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);
94
+
95
+ const [childRef, child] = usePatchChildrenRef(children);
96
+
97
+ const setShown = (value: boolean) => {
98
+ if (typeof shownProp !== "boolean") {
99
+ setComputedShown(value);
100
+ }
101
+ typeof onShownChange === "function" && onShownChange(value);
102
+ };
103
+
104
+ const showTimeout = useTimeout(() => setShown(true), showDelay);
105
+
106
+ const hideTimeout = useTimeout(() => setShown(false), hideDelay);
107
+
108
+ const handleTargetEnter = () => {
109
+ hovered.current = true;
110
+ hideTimeout.clear();
111
+ showTimeout.set();
112
+ };
113
+
114
+ const handleTargetClick = () => {
115
+ if (hovered.current && shown) {
116
+ return;
117
+ }
118
+ setShown(!shown);
119
+ };
120
+
121
+ const handleTargetLeave = () => {
122
+ hovered.current = false;
123
+ showTimeout.clear();
124
+ hideTimeout.set();
125
+ };
126
+
127
+ const handleContentKeyDownEscape = () => {
128
+ setShown(false);
129
+ };
130
+
131
+ const handleOutsideClick = (e: MouseEvent) => {
132
+ if (
133
+ dropdownNode &&
134
+ !childRef.current?.contains(e.target as Node) &&
135
+ !dropdownNode.contains(e.target as Node)
136
+ ) {
137
+ setShown(false);
138
+ }
139
+ };
140
+
141
+ useGlobalEventListener(document, "click", handleOutsideClick);
142
+ const targetEnterListener = useEventListener("mouseenter", handleTargetEnter);
143
+ const targetClickEvent = useEventListener("click", handleTargetClick);
144
+ const targetLeaveListener = useEventListener("mouseleave", handleTargetLeave);
145
+
146
+ React.useEffect(() => {
147
+ if (!childRef.current) {
148
+ return;
149
+ }
150
+
151
+ targetClickEvent.add(childRef.current);
152
+
153
+ if (hoverable) {
154
+ targetEnterListener.add(childRef.current);
155
+ targetLeaveListener.add(childRef.current);
156
+ }
157
+ }, [
158
+ childRef,
159
+ hoverable,
160
+ targetClickEvent,
161
+ targetEnterListener,
162
+ targetLeaveListener,
163
+ ]);
32
164
 
33
165
  return (
34
- <Component vkuiClass="Dropdown" {...actionSpecificProps} {...popperProps} />
166
+ <React.Fragment>
167
+ {child}
168
+ {shown && (
169
+ <Popper
170
+ {...restProps}
171
+ vkuiClass="Dropdown"
172
+ targetRef={childRef}
173
+ getRef={patchedPopperRef}
174
+ offsetDistance={offsetDistance}
175
+ style={styles}
176
+ renderContent={({ className }) => (
177
+ <FocusTrap
178
+ vkuiClass={className}
179
+ onClose={handleContentKeyDownEscape}
180
+ >
181
+ {content}
182
+ </FocusTrap>
183
+ )}
184
+ onMouseOver={hoverable ? hideTimeout.clear : undefined}
185
+ onMouseOut={hoverable ? handleTargetLeave : undefined}
186
+ />
187
+ )}
188
+ </React.Fragment>
35
189
  );
36
190
  };
@@ -23,6 +23,7 @@ return (
23
23
  </Dropdown>
24
24
 
25
25
  <Dropdown
26
+ action="click"
26
27
  shown={shown}
27
28
  onShownChange={setShown}
28
29
  content={
@@ -1,6 +1,4 @@
1
1
  import * as React from "react";
2
- import { getClassName } from "../../helpers/getClassName";
3
- import { usePlatform } from "../../hooks/usePlatform";
4
2
  import { withAdaptivity, ViewWidth } from "../../hoc/withAdaptivity";
5
3
  import { ScrollSaver } from "./ScrollSaver";
6
4
  import { getNavId } from "../../lib/getNavId";
@@ -28,7 +26,6 @@ const EpicComponent = ({
28
26
  viewWidth,
29
27
  ...restProps
30
28
  }: EpicProps & AdaptivityContextInterface) => {
31
- const platform = usePlatform();
32
29
  const scroll = React.useRef<{ [key: string]: number }>({}).current;
33
30
 
34
31
  if (
@@ -48,7 +45,7 @@ const EpicComponent = ({
48
45
  ) as React.ReactElement | undefined) ?? null;
49
46
 
50
47
  return (
51
- <div {...restProps} vkuiClass={getClassName("Epic", platform)}>
48
+ <div {...restProps} vkuiClass="Epic">
52
49
  <ScrollSaver
53
50
  key={activeStory}
54
51
  initialScroll={scroll[activeStory] || 0}
@@ -1,117 +1,111 @@
1
- `{ position: fixed }` не дружит с `{ transform: translate }` на родителе, поэтому для позиционирования фиксированных
2
- блоков внутри панели, необходимо использовать `FixedLayout` в качестве обертки.
1
+ Компонент закрепляет переданный элемент сверху или снизу области видимости. Учитывает высоту шапки и прочие системные отступы.
3
2
 
4
- Для удобства есть свойство `vertical`, с помощью которого можно "прижать" контент к верху или низу.
5
- При этому будут учитываться высота шапки и прочие системные отступы.
6
-
7
- **Важно:** блок с `{ position: fixed }` находится не в потоке. В примере можно увидеть, что у блока с основным
8
- контентом есть паддинги. Они там не случайны.
3
+ > ⚠️ Использует `position: fixed` вместо `position: sticky`, т.к. библиотека поддерживает версии браузеров,
4
+ > где значение `sticky` отсутствует. По этой причине `FixedLayout` находится вне основного потока. В примере ниже можно
5
+ > увидеть, что у блока с основным контентом есть отступы сверху и снизу (см. `contentStyles`). Без них контент
6
+ > залезал бы под `FixedLayout`.
9
7
 
10
8
  ```jsx
11
- class Example extends React.Component {
12
- constructor(props) {
13
- super(props);
9
+ const contentStyles = {
10
+ paddingTop: 60,
11
+ paddingBottom: 60,
12
+ };
14
13
 
15
- this.state = {
16
- activeTab: "groups",
17
- };
18
- }
14
+ const Example = () => {
15
+ const [activeTab, setActiveTab] = React.useState("groups");
19
16
 
20
- render() {
21
- return (
22
- <View activePanel="fixedLayout">
23
- <Panel id="fixedLayout">
24
- <PanelHeader>Fixed layout</PanelHeader>
25
- <Group>
26
- <FixedLayout vertical="top">
27
- <Search />
28
- </FixedLayout>
29
- <Div style={{ paddingTop: 60, paddingBottom: 60, color: "gray" }}>
30
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a
31
- sollicitudin lectus, a commodo sapien. Vivamus a urna leo. Integer
32
- iaculis dignissim urna, sit amet vestibulum diam bibendum a. Donec
33
- eu arcu ut augue porttitor faucibus. Vestibulum nec pretium
34
- tortor, sit amet congue nunc. Aenean ullamcorper ex sem, sed
35
- interdum quam consequat et. Vestibulum a ex non diam fringilla
36
- feugiat. Nunc eu tellus sed leo elementum cursus. Mauris blandit
37
- porta egestas. Curabitur eget justo elementum, malesuada lacus ut,
38
- congue mauris. Integer orci nisi, convallis vitae dapibus sit
39
- amet, molestie a risus. Aenean ultricies lacus eros, sit amet
40
- condimentum urna malesuada et. Sed quis dolor tempus orci
41
- fringilla volutpat in sed velit. Aenean aliquet bibendum pretium.
42
- <br />
43
- <br />
44
- Cras pulvinar lobortis purus. Donec placerat suscipit leo vitae sodales.
45
- Phasellus convallis lorem vitae arcu finibus pellentesque. In imperdiet
46
- vel leo a euismod. Nam sed odio a neque venenatis suscipit a placerat
47
- magna. Mauris magna nisl, consequat nec augue vitae, ultricies scelerisque
48
- ante. Phasellus pharetra risus eget imperdiet sodales. Integer dignissim
49
- auctor semper. Nulla odio odio, euismod ut interdum in, bibendum sed
50
- massa. Proin rutrum molestie massa in ultrices. Donec eu euismod turpis,
51
- eget lobortis lorem. Nulla facilisi. Nam lacinia posuere turpis, sed
52
- laoreet turpis auctor nec.
53
- <br />
54
- <br />
55
- Curabitur eu fermentum mauris. Phasellus malesuada consectetur
56
- mollis. Pellentesque pulvinar mauris turpis. Integer neque dolor,
57
- semper quis neque et, gravida commodo eros. Duis efficitur ex a
58
- turpis blandit tincidunt. Mauris sem mi, imperdiet quis ligula sit
59
- amet, fermentum vulputate felis. Phasellus eu ullamcorper dolor,
60
- porttitor pulvinar diam. Aliquam euismod, mauris nec varius
61
- lacinia, ligula libero vulputate leo, ut tristique massa nisi
62
- vitae tortor. Phasellus purus elit, gravida sit amet neque id,
63
- aliquam rutrum dui. Maecenas luctus sem vitae molestie porttitor.
64
- Cras viverra mauris risus, at sollicitudin ipsum interdum eu. Sed
65
- sit amet tempor enim.
66
- <br />
67
- <br />
68
- In hac habitasse platea dictumst. Etiam luctus erat metus, quis efficitur
69
- quam vulputate quis. Duis ultricies non mauris condimentum molestie.
70
- Maecenas sollicitudin ex sem, quis ultrices libero blandit eu. Vivamus
71
- in turpis pulvinar, malesuada enim at, hendrerit magna. Proin eu nulla
72
- eget arcu pretium pharetra. Sed ullamcorper pulvinar est eu dapibus.
73
- Cras at varius justo. In ex odio, condimentum id pellentesque a, sodales
74
- ut diam.
75
- <br />
76
- <br />
77
- Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
78
- posuere cubilia Curae; Nam aliquet tempor laoreet. Maecenas eu
79
- pulvinar diam. Pellentesque habitant morbi tristique senectus et
80
- netus et malesuada fames ac turpis egestas. Maecenas et elit eros.
81
- Quisque ullamcorper sodales nisi, eleifend aliquet metus venenatis
82
- in. Aliquam ornare a lacus in tincidunt. Cras vel tristique metus.
83
- Sed vitae nisl at nisl imperdiet sollicitudin. Sed sit amet enim
84
- in lectus imperdiet interdum condimentum et diam. Proin venenatis
85
- sit amet diam ac vulputate. Donec mauris orci, semper volutpat
86
- nunc ut, efficitur condimentum dolor. Vivamus in quam eget quam
87
- lacinia pharetra. Phasellus ipsum magna, aliquet id elit eget,
88
- cursus tincidunt ex. In rhoncus turpis turpis, et viverra ex
89
- malesuada vel. Donec nisi tellus, mollis et posuere vel, dictum
90
- eget neque.
91
- </Div>
92
- <FixedLayout filled vertical="bottom">
93
- <Separator wide />
94
- <Tabs>
95
- <TabsItem
96
- selected={this.state.activeTab === "groups"}
97
- onClick={() => this.setState({ activeTab: "groups" })}
98
- >
99
- 176 сообществ
100
- </TabsItem>
101
- <TabsItem
102
- selected={this.state.activeTab === "events"}
103
- onClick={() => this.setState({ activeTab: "events" })}
104
- >
105
- 9 событий
106
- </TabsItem>
107
- </Tabs>
108
- </FixedLayout>
109
- </Group>
110
- </Panel>
111
- </View>
112
- );
113
- }
114
- }
17
+ return (
18
+ <View activePanel="fixedLayout">
19
+ <Panel id="fixedLayout">
20
+ <PanelHeader>Fixed layout</PanelHeader>
21
+ <FixedLayout vertical="top">
22
+ <Search />
23
+ <Separator wide />
24
+ </FixedLayout>
25
+ <Group>
26
+ <Div style={contentStyles}>
27
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed a
28
+ sollicitudin lectus, a commodo sapien. Vivamus a urna leo. Integer
29
+ iaculis dignissim urna, sit amet vestibulum diam bibendum a. Donec
30
+ eu arcu ut augue porttitor faucibus. Vestibulum nec pretium tortor,
31
+ sit amet congue nunc. Aenean ullamcorper ex sem, sed interdum quam
32
+ consequat et. Vestibulum a ex non diam fringilla feugiat. Nunc eu
33
+ tellus sed leo elementum cursus. Mauris blandit porta egestas.
34
+ Curabitur eget justo elementum, malesuada lacus ut, congue mauris.
35
+ Integer orci nisi, convallis vitae dapibus sit amet, molestie a
36
+ risus. Aenean ultricies lacus eros, sit amet condimentum urna
37
+ malesuada et. Sed quis dolor tempus orci fringilla volutpat in sed
38
+ velit. Aenean aliquet bibendum pretium.
39
+ <br />
40
+ <br />
41
+ Cras pulvinar lobortis purus. Donec placerat suscipit leo vitae sodales.
42
+ Phasellus convallis lorem vitae arcu finibus pellentesque. In imperdiet
43
+ vel leo a euismod. Nam sed odio a neque venenatis suscipit a placerat
44
+ magna. Mauris magna nisl, consequat nec augue vitae, ultricies scelerisque
45
+ ante. Phasellus pharetra risus eget imperdiet sodales. Integer dignissim
46
+ auctor semper. Nulla odio odio, euismod ut interdum in, bibendum sed
47
+ massa. Proin rutrum molestie massa in ultrices. Donec eu euismod turpis,
48
+ eget lobortis lorem. Nulla facilisi. Nam lacinia posuere turpis, sed
49
+ laoreet turpis auctor nec.
50
+ <br />
51
+ <br />
52
+ Curabitur eu fermentum mauris. Phasellus malesuada consectetur
53
+ mollis. Pellentesque pulvinar mauris turpis. Integer neque dolor,
54
+ semper quis neque et, gravida commodo eros. Duis efficitur ex a
55
+ turpis blandit tincidunt. Mauris sem mi, imperdiet quis ligula sit
56
+ amet, fermentum vulputate felis. Phasellus eu ullamcorper dolor,
57
+ porttitor pulvinar diam. Aliquam euismod, mauris nec varius lacinia,
58
+ ligula libero vulputate leo, ut tristique massa nisi vitae tortor.
59
+ Phasellus purus elit, gravida sit amet neque id, aliquam rutrum dui.
60
+ Maecenas luctus sem vitae molestie porttitor. Cras viverra mauris
61
+ risus, at sollicitudin ipsum interdum eu. Sed sit amet tempor enim.
62
+ <br />
63
+ <br />
64
+ In hac habitasse platea dictumst. Etiam luctus erat metus, quis efficitur
65
+ quam vulputate quis. Duis ultricies non mauris condimentum molestie.
66
+ Maecenas sollicitudin ex sem, quis ultrices libero blandit eu. Vivamus
67
+ in turpis pulvinar, malesuada enim at, hendrerit magna. Proin eu nulla
68
+ eget arcu pretium pharetra. Sed ullamcorper pulvinar est eu dapibus.
69
+ Cras at varius justo. In ex odio, condimentum id pellentesque a, sodales
70
+ ut diam.
71
+ <br />
72
+ <br />
73
+ Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
74
+ posuere cubilia Curae; Nam aliquet tempor laoreet. Maecenas eu
75
+ pulvinar diam. Pellentesque habitant morbi tristique senectus et
76
+ netus et malesuada fames ac turpis egestas. Maecenas et elit eros.
77
+ Quisque ullamcorper sodales nisi, eleifend aliquet metus venenatis
78
+ in. Aliquam ornare a lacus in tincidunt. Cras vel tristique metus.
79
+ Sed vitae nisl at nisl imperdiet sollicitudin. Sed sit amet enim in
80
+ lectus imperdiet interdum condimentum et diam. Proin venenatis sit
81
+ amet diam ac vulputate. Donec mauris orci, semper volutpat nunc ut,
82
+ efficitur condimentum dolor. Vivamus in quam eget quam lacinia
83
+ pharetra. Phasellus ipsum magna, aliquet id elit eget, cursus
84
+ tincidunt ex. In rhoncus turpis turpis, et viverra ex malesuada vel.
85
+ Donec nisi tellus, mollis et posuere vel, dictum eget neque.
86
+ </Div>
87
+ </Group>
88
+ <FixedLayout filled vertical="bottom">
89
+ <Separator wide />
90
+ <Tabs>
91
+ <TabsItem
92
+ selected={activeTab === "groups"}
93
+ onClick={() => setActiveTab("groups")}
94
+ >
95
+ 176 сообществ
96
+ </TabsItem>
97
+ <TabsItem
98
+ selected={activeTab === "events"}
99
+ onClick={() => setActiveTab("events")}
100
+ >
101
+ 9 событий
102
+ </TabsItem>
103
+ </Tabs>
104
+ </FixedLayout>
105
+ </Panel>
106
+ </View>
107
+ );
108
+ };
115
109
 
116
110
  <Example />;
117
111
  ```