@vkontakte/vkui 4.34.2 → 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 (453) hide show
  1. package/.browserslistrc +5 -0
  2. package/.cache/.eslintcache +1 -1
  3. package/.cache/.stylelintcache +1 -1
  4. package/.cache/.tsbuildinfo +237 -211
  5. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  6. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  7. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +46 -5
  8. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +1 -1
  9. package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +1 -1
  10. package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  11. package/.cache/ts/src/components/Popper/Popper.d.ts +18 -1
  12. package/.cache/ts/src/components/PopperArrow/PopperArrow.d.ts +8 -0
  13. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +7 -2
  14. package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +5 -1
  15. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +1 -0
  16. package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +8 -1
  17. package/.cache/ts/src/components/Tabs/Tabs.d.ts +13 -2
  18. package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +22 -1
  19. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +5 -1
  20. package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +18 -1
  21. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +3 -3
  22. package/.cache/ts/src/components/View/View.d.ts +2 -18
  23. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  24. package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +5 -1
  25. package/.cache/ts/src/tokenized/index.d.ts +26 -0
  26. package/.eslintrc.json +14 -4
  27. package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
  28. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  29. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +7 -1
  30. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  31. package/dist/cjs/components/CustomSelect/CustomSelect.js +477 -554
  32. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  33. package/dist/cjs/components/Dropdown/Dropdown.js +147 -26
  34. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  35. package/dist/cjs/components/Epic/Epic.js +1 -6
  36. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  37. package/dist/cjs/components/FocusTrap/FocusTrap.js +9 -10
  38. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  39. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
  40. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  41. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  42. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  43. package/dist/cjs/components/Popper/Popper.js +11 -19
  44. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  45. package/dist/cjs/components/PopperArrow/PopperArrow.js +40 -0
  46. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -0
  47. package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
  48. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  49. package/dist/cjs/components/SimpleCell/SimpleCell.js +20 -31
  50. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  51. package/dist/cjs/components/Snackbar/Snackbar.js +7 -11
  52. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  53. package/dist/cjs/components/SplitCol/SplitCol.js +7 -1
  54. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  55. package/dist/cjs/components/SplitLayout/SplitLayout.js +5 -8
  56. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  57. package/dist/cjs/components/Tabbar/Tabbar.js +15 -14
  58. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  59. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -10
  60. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  61. package/dist/cjs/components/Tabs/Tabs.js +23 -5
  62. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  63. package/dist/cjs/components/TabsItem/TabsItem.js +39 -22
  64. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  65. package/dist/cjs/components/TextTooltip/TextTooltip.js +6 -9
  66. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  67. package/dist/cjs/components/Tooltip/Tooltip.js +94 -71
  68. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  69. package/dist/cjs/components/Typography/Headline/Headline.js +11 -2
  70. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  71. package/dist/cjs/components/View/View.js +388 -453
  72. package/dist/cjs/components/View/View.js.map +1 -1
  73. package/dist/cjs/components/WriteBar/WriteBar.js +12 -5
  74. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  75. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -8
  76. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  77. package/dist/cjs/hooks/useOrientationChange.js +2 -1
  78. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  79. package/dist/cjs/tokenized/index.js +104 -0
  80. package/dist/cjs/tokenized/index.js.map +1 -1
  81. package/dist/components/CardScroll/CardScroll.js +3 -1
  82. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  83. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  84. package/dist/components/ConfigProvider/ConfigProviderContext.js +3 -0
  85. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  86. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  87. package/dist/components/CustomSelect/CustomSelect.js +473 -580
  88. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  89. package/dist/components/Dropdown/Dropdown.d.ts +46 -5
  90. package/dist/components/Dropdown/Dropdown.js +137 -27
  91. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  92. package/dist/components/Epic/Epic.js +1 -4
  93. package/dist/components/Epic/Epic.js.map +1 -1
  94. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  95. package/dist/components/FocusTrap/FocusTrap.js +9 -9
  96. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  97. package/dist/components/HorizontalCell/HorizontalCell.js +3 -5
  98. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  99. package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
  100. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  101. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  102. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  103. package/dist/components/Popper/Popper.d.ts +18 -1
  104. package/dist/components/Popper/Popper.js +10 -19
  105. package/dist/components/Popper/Popper.js.map +1 -1
  106. package/dist/components/PopperArrow/PopperArrow.d.ts +8 -0
  107. package/dist/components/PopperArrow/PopperArrow.js +27 -0
  108. package/dist/components/PopperArrow/PopperArrow.js.map +1 -0
  109. package/dist/components/RichTooltip/RichTooltip.d.ts +7 -2
  110. package/dist/components/RichTooltip/RichTooltip.js +5 -10
  111. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  112. package/dist/components/SimpleCell/SimpleCell.js +18 -28
  113. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  114. package/dist/components/Snackbar/Snackbar.d.ts +5 -1
  115. package/dist/components/Snackbar/Snackbar.js +8 -11
  116. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  117. package/dist/components/SplitCol/SplitCol.d.ts +1 -0
  118. package/dist/components/SplitCol/SplitCol.js +3 -0
  119. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  120. package/dist/components/SplitLayout/SplitLayout.js +4 -7
  121. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  122. package/dist/components/Tabbar/Tabbar.d.ts +8 -1
  123. package/dist/components/Tabbar/Tabbar.js +15 -14
  124. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  125. package/dist/components/TabbarItem/TabbarItem.js +7 -9
  126. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  127. package/dist/components/Tabs/Tabs.d.ts +13 -2
  128. package/dist/components/Tabs/Tabs.js +23 -5
  129. package/dist/components/Tabs/Tabs.js.map +1 -1
  130. package/dist/components/TabsItem/TabsItem.d.ts +22 -1
  131. package/dist/components/TabsItem/TabsItem.js +40 -21
  132. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  133. package/dist/components/TextTooltip/TextTooltip.d.ts +5 -1
  134. package/dist/components/TextTooltip/TextTooltip.js +5 -7
  135. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  136. package/dist/components/Tooltip/Tooltip.d.ts +18 -1
  137. package/dist/components/Tooltip/Tooltip.js +89 -68
  138. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  139. package/dist/components/Typography/Headline/Headline.d.ts +3 -3
  140. package/dist/components/Typography/Headline/Headline.js +10 -2
  141. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  142. package/dist/components/View/View.d.ts +2 -18
  143. package/dist/components/View/View.js +384 -462
  144. package/dist/components/View/View.js.map +1 -1
  145. package/dist/components/View/ViewInfinite.d.ts +1 -1
  146. package/dist/components/WriteBar/WriteBar.d.ts +5 -1
  147. package/dist/components/WriteBar/WriteBar.js +10 -5
  148. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  149. package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -6
  150. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  151. package/dist/components.css +143 -127
  152. package/dist/components.css.map +1 -1
  153. package/dist/cssm/components/ActionSheet/ActionSheet.css +1 -1
  154. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  155. package/dist/cssm/components/Alert/Alert.css +1 -1
  156. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  157. package/dist/cssm/components/Avatar/Avatar.css +3 -5
  158. package/dist/cssm/components/Badge/Badge.css +3 -3
  159. package/dist/cssm/components/Banner/Banner.css +5 -5
  160. package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
  161. package/dist/cssm/components/Button/Button.css +53 -35
  162. package/dist/cssm/components/Calendar/Calendar.css +1 -1
  163. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
  164. package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
  165. package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
  166. package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
  167. package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
  168. package/dist/cssm/components/Card/Card.css +5 -6
  169. package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
  170. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  171. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  172. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  173. package/dist/cssm/components/Cell/Cell.css +3 -3
  174. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  175. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  176. package/dist/cssm/components/CellButton/CellButton.css +1 -1
  177. package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
  178. package/dist/cssm/components/Chip/Chip.css +1 -1
  179. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  180. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  181. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  182. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +3 -0
  183. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  184. package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
  185. package/dist/cssm/components/Counter/Counter.css +31 -31
  186. package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
  187. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  188. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  189. package/dist/cssm/components/CustomSelect/CustomSelect.js +473 -580
  190. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  191. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -3
  192. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -3
  193. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  194. package/dist/cssm/components/DatePicker/DatePicker.css +1 -1
  195. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  196. package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
  197. package/dist/cssm/components/Dropdown/Dropdown.d.ts +46 -5
  198. package/dist/cssm/components/Dropdown/Dropdown.js +137 -27
  199. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  200. package/dist/cssm/components/Epic/Epic.css +1 -1
  201. package/dist/cssm/components/Epic/Epic.js +1 -4
  202. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  203. package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
  204. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  205. package/dist/cssm/components/FocusTrap/FocusTrap.js +9 -9
  206. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  207. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  208. package/dist/cssm/components/Footer/Footer.css +1 -1
  209. package/dist/cssm/components/FormField/FormField.css +9 -9
  210. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  211. package/dist/cssm/components/FormLayout/FormLayout.css +1 -1
  212. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  213. package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
  214. package/dist/cssm/components/Gradient/Gradient.css +1 -1
  215. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
  216. package/dist/cssm/components/Group/Group.css +1 -1
  217. package/dist/cssm/components/Header/Header.css +1 -1
  218. package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
  219. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -5
  220. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  221. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
  222. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
  223. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  224. package/dist/cssm/components/InfoRow/InfoRow.css +1 -1
  225. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
  226. package/dist/cssm/components/Input/Input.css +1 -1
  227. package/dist/cssm/components/InputLike/InputLike.css +1 -1
  228. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
  229. package/dist/cssm/components/Link/Link.css +1 -1
  230. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
  231. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
  232. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  233. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  234. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -3
  235. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  236. package/dist/cssm/components/ModalPage/ModalPage.css +1 -1
  237. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  238. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  239. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +1 -1
  240. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  241. package/dist/cssm/components/Pagination/Pagination.css +1 -1
  242. package/dist/cssm/components/Panel/Panel.css +1 -1
  243. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  244. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  245. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  246. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  247. package/dist/cssm/components/Placeholder/Placeholder.css +3 -3
  248. package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
  249. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
  250. package/dist/cssm/components/Popper/Popper.css +1 -1
  251. package/dist/cssm/components/Popper/Popper.d.ts +18 -1
  252. package/dist/cssm/components/Popper/Popper.js +10 -19
  253. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  254. package/dist/cssm/components/PopperArrow/PopperArrow.css +1 -0
  255. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +8 -0
  256. package/dist/cssm/components/PopperArrow/PopperArrow.js +28 -0
  257. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -0
  258. package/dist/cssm/components/Progress/Progress.css +1 -1
  259. package/dist/cssm/components/PromoBanner/PromoBanner.css +1 -1
  260. package/dist/cssm/components/PullToRefresh/PullToRefresh.css +3 -3
  261. package/dist/cssm/components/Radio/Radio.css +1 -1
  262. package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
  263. package/dist/cssm/components/Removable/Removable.css +1 -1
  264. package/dist/cssm/components/RichCell/RichCell.css +3 -3
  265. package/dist/cssm/components/RichTooltip/RichTooltip.css +3 -1
  266. package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +7 -2
  267. package/dist/cssm/components/RichTooltip/RichTooltip.js +5 -10
  268. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  269. package/dist/cssm/components/Root/Root.css +1 -1
  270. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
  271. package/dist/cssm/components/Search/Search.css +1 -1
  272. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
  273. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  274. package/dist/cssm/components/Select/Select.css +1 -1
  275. package/dist/cssm/components/Separator/Separator.css +1 -1
  276. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  277. package/dist/cssm/components/SimpleCell/SimpleCell.js +18 -28
  278. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  279. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -1
  280. package/dist/cssm/components/Slider/Slider.css +3 -3
  281. package/dist/cssm/components/SliderSwitch/SliderSwitch.css +1 -1
  282. package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
  283. package/dist/cssm/components/Snackbar/Snackbar.d.ts +5 -1
  284. package/dist/cssm/components/Snackbar/Snackbar.js +8 -11
  285. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  286. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  287. package/dist/cssm/components/Spinner/Spinner.css +1 -1
  288. package/dist/cssm/components/SplitCol/SplitCol.css +1 -1
  289. package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -0
  290. package/dist/cssm/components/SplitCol/SplitCol.js +3 -0
  291. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  292. package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
  293. package/dist/cssm/components/SplitLayout/SplitLayout.js +4 -7
  294. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  295. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  296. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  297. package/dist/cssm/components/Switch/Switch.css +3 -3
  298. package/dist/cssm/components/Tabbar/Tabbar.css +5 -3
  299. package/dist/cssm/components/Tabbar/Tabbar.d.ts +8 -1
  300. package/dist/cssm/components/Tabbar/Tabbar.js +15 -14
  301. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  302. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  303. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -9
  304. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  305. package/dist/cssm/components/Tabs/Tabs.css +1 -1
  306. package/dist/cssm/components/Tabs/Tabs.d.ts +13 -2
  307. package/dist/cssm/components/Tabs/Tabs.js +23 -5
  308. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  309. package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
  310. package/dist/cssm/components/TabsItem/TabsItem.d.ts +22 -1
  311. package/dist/cssm/components/TabsItem/TabsItem.js +40 -21
  312. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  313. package/dist/cssm/components/Tappable/Tappable.css +5 -5
  314. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -1
  315. package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +5 -1
  316. package/dist/cssm/components/TextTooltip/TextTooltip.js +5 -7
  317. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  318. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  319. package/dist/cssm/components/Tooltip/Tooltip.css +1 -1
  320. package/dist/cssm/components/Tooltip/Tooltip.d.ts +18 -1
  321. package/dist/cssm/components/Tooltip/Tooltip.js +89 -68
  322. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  323. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  324. package/dist/cssm/components/Typography/Footnote/Footnote.css +1 -1
  325. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  326. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -3
  327. package/dist/cssm/components/Typography/Headline/Headline.js +10 -2
  328. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  329. package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
  330. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  331. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  332. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  333. package/dist/cssm/components/UsersStack/UsersStack.css +5 -5
  334. package/dist/cssm/components/View/View.css +1 -1
  335. package/dist/cssm/components/View/View.d.ts +2 -18
  336. package/dist/cssm/components/View/View.js +384 -462
  337. package/dist/cssm/components/View/View.js.map +1 -1
  338. package/dist/cssm/components/View/ViewIOS.css +1 -1
  339. package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
  340. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -1
  341. package/dist/cssm/components/WriteBar/WriteBar.css +3 -1
  342. package/dist/cssm/components/WriteBar/WriteBar.d.ts +5 -1
  343. package/dist/cssm/components/WriteBar/WriteBar.js +10 -5
  344. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  345. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.css +1 -1
  346. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -6
  347. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  348. package/dist/cssm/fonts/fonts.css +1 -1
  349. package/dist/cssm/hooks/useOrientationChange.js +2 -1
  350. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  351. package/dist/cssm/lib/calendar.d.ts +2 -2
  352. package/dist/cssm/styles/animations.css +1 -1
  353. package/dist/cssm/styles/bright_light.css +1 -1
  354. package/dist/cssm/styles/common.css +1 -1
  355. package/dist/cssm/styles/components.css +143 -127
  356. package/dist/cssm/styles/constants.css +3 -10
  357. package/dist/cssm/styles/space_gray.css +1 -1
  358. package/dist/cssm/styles/themes.css +1 -16
  359. package/dist/cssm/styles/unstable.css +3 -1
  360. package/dist/cssm/styles/vkcom_dark.css +1 -6
  361. package/dist/cssm/styles/vkcom_light.css +1 -11
  362. package/dist/cssm/tokenized/index.d.ts +26 -0
  363. package/dist/cssm/tokenized/index.js +13 -0
  364. package/dist/cssm/tokenized/index.js.map +1 -1
  365. package/dist/default_scheme.css +1 -1
  366. package/dist/default_scheme.css.map +1 -1
  367. package/dist/fonts.css +1 -1
  368. package/dist/fonts.css.map +1 -1
  369. package/dist/hooks/useOrientationChange.js +2 -1
  370. package/dist/hooks/useOrientationChange.js.map +1 -1
  371. package/dist/lib/calendar.d.ts +2 -2
  372. package/dist/tokenized/index.d.ts +26 -0
  373. package/dist/tokenized/index.js +13 -0
  374. package/dist/tokenized/index.js.map +1 -1
  375. package/dist/unstable.css +3 -1
  376. package/dist/unstable.css.map +1 -1
  377. package/dist/vkui.css +144 -143
  378. package/dist/vkui.css.map +1 -1
  379. package/package.json +6 -5
  380. package/src/components/Badge/Badge.css +0 -5
  381. package/src/components/CardScroll/CardScroll.tsx +1 -1
  382. package/src/components/Cell/Cell.css +3 -2
  383. package/src/components/ChipsInput/ChipsInput.css +2 -0
  384. package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
  385. package/src/components/Counter/Counter.css +30 -0
  386. package/src/components/CustomScrollView/CustomScrollView.css +10 -5
  387. package/src/components/CustomSelect/CustomSelect.tsx +543 -574
  388. package/src/components/Dropdown/Dropdown.css +12 -0
  389. package/src/components/Dropdown/Dropdown.tsx +174 -20
  390. package/src/components/Dropdown/Readme.md +1 -0
  391. package/src/components/Epic/Epic.tsx +1 -4
  392. package/src/components/FixedLayout/Readme.md +103 -109
  393. package/src/components/FocusTrap/FocusTrap.tsx +10 -10
  394. package/src/components/Group/Group.css +1 -1
  395. package/src/components/HorizontalCell/HorizontalCell.css +25 -43
  396. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -9
  397. package/src/components/HorizontalScroll/HorizontalScroll.css +23 -0
  398. package/src/components/Input/Input.css +2 -0
  399. package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
  400. package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
  401. package/src/components/Popper/Popper.css +0 -35
  402. package/src/components/Popper/Popper.tsx +29 -23
  403. package/src/components/PopperArrow/PopperArrow.css +34 -0
  404. package/src/components/PopperArrow/PopperArrow.tsx +40 -0
  405. package/src/components/RichTooltip/RichTooltip.css +44 -4
  406. package/src/components/RichTooltip/RichTooltip.tsx +9 -11
  407. package/src/components/SimpleCell/Readme.md +115 -129
  408. package/src/components/SimpleCell/SimpleCell.css +30 -68
  409. package/src/components/SimpleCell/SimpleCell.tsx +21 -25
  410. package/src/components/Snackbar/Readme.md +95 -123
  411. package/src/components/Snackbar/Snackbar.css +18 -27
  412. package/src/components/Snackbar/Snackbar.tsx +17 -11
  413. package/src/components/SplitCol/SplitCol.tsx +2 -0
  414. package/src/components/SplitLayout/SplitLayout.css +3 -7
  415. package/src/components/SplitLayout/SplitLayout.tsx +9 -6
  416. package/src/components/Tabbar/Tabbar.css +4 -1
  417. package/src/components/Tabbar/Tabbar.tsx +23 -12
  418. package/src/components/TabbarItem/TabbarItem.css +7 -5
  419. package/src/components/TabbarItem/TabbarItem.tsx +13 -7
  420. package/src/components/Tabs/Readme.md +191 -251
  421. package/src/components/Tabs/Tabs.css +27 -80
  422. package/src/components/Tabs/Tabs.tsx +45 -7
  423. package/src/components/TabsItem/Readme.md +1 -0
  424. package/src/components/TabsItem/TabsItem.css +191 -106
  425. package/src/components/TabsItem/TabsItem.tsx +72 -20
  426. package/src/components/TextTooltip/TextTooltip.css +41 -11
  427. package/src/components/TextTooltip/TextTooltip.tsx +9 -13
  428. package/src/components/Textarea/Textarea.css +2 -0
  429. package/src/components/Tooltip/Readme.md +128 -101
  430. package/src/components/Tooltip/Tooltip.css +29 -40
  431. package/src/components/Tooltip/Tooltip.tsx +98 -66
  432. package/src/components/Typography/Headline/Headline.tsx +15 -1
  433. package/src/components/View/Readme.md +2 -0
  434. package/src/components/View/View.tsx +451 -514
  435. package/src/components/WriteBar/WriteBar.css +27 -33
  436. package/src/components/WriteBar/WriteBar.tsx +16 -5
  437. package/src/components/WriteBarIcon/WriteBarIcon.css +6 -19
  438. package/src/components/WriteBarIcon/WriteBarIcon.tsx +6 -6
  439. package/src/hooks/useOrientationChange.ts +1 -0
  440. package/src/styles/components.css +1 -0
  441. package/src/styles/constants.css +8 -0
  442. package/src/tokenized/index.ts +39 -0
  443. package/tsconfig.json +1 -1
  444. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +0 -21
  445. package/dist/cjs/components/ClickPopper/ClickPopper.js +0 -96
  446. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +0 -1
  447. package/dist/components/ClickPopper/ClickPopper.d.ts +0 -21
  448. package/dist/components/ClickPopper/ClickPopper.js +0 -71
  449. package/dist/components/ClickPopper/ClickPopper.js.map +0 -1
  450. package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +0 -21
  451. package/dist/cssm/components/ClickPopper/ClickPopper.js +0 -71
  452. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +0 -1
  453. package/src/components/ClickPopper/ClickPopper.tsx +0 -86
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/FocusTrap/FocusTrap.tsx"],"names":["React","useExternRef","useGlobalEventListener","useTimeout","FOCUSABLE_ELEMENTS_LIST","Keys","pressedKey","useDOM","useIsomorphicLayoutEffect","noop","AppRootContext","FOCUSABLE_ELEMENTS","join","FocusTrap","Component","onClose","restoreFocus","timeout","getRootRef","children","restProps","ref","document","window","useState","focusableNodes","setFocusableNodes","restoreFocusTo","setRestoreFocusTo","useContext","keyboardInput","focusOnTrapMount","current","contains","activeElement","length","focus","set","nodes","Array","prototype","forEach","call","querySelectorAll","focusableEl","getComputedStyle","display","visibility","push","focusOnTrapUnmount","onDocumentKeydown","e","TAB","lastIdx","targetIdx","findIndex","node","target","shouldFocusFirstNode","shiftKey","preventDefault","ESCAPE","capture"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n FOCUSABLE_ELEMENTS_LIST,\n Keys,\n pressedKey,\n} from \"../../lib/accessibility\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { AppRootContext } from \"../AppRoot/AppRootContext\";\n\nconst FOCUSABLE_ELEMENTS: string = FOCUSABLE_ELEMENTS_LIST.join();\n\nexport interface FocusTrapProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n onClose?: (props?: any) => void;\n restoreFocus?: boolean;\n timeout?: number;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FocusTrap\n */\nexport const FocusTrap = ({\n Component = \"div\",\n onClose = noop,\n restoreFocus = true,\n timeout = 0,\n getRootRef,\n children,\n ...restProps\n}: FocusTrapProps) => {\n const ref = useExternRef<HTMLElement>(getRootRef);\n\n const { document, window } = useDOM();\n\n const [focusableNodes, setFocusableNodes] = React.useState<\n HTMLElement[] | null\n >(null);\n const [restoreFocusTo, setRestoreFocusTo] =\n React.useState<HTMLElement | null>(null);\n\n // HANDLE TRAP MOUNT\n\n const { keyboardInput } = React.useContext(AppRootContext);\n const focusOnTrapMount = useTimeout(() => {\n if (\n keyboardInput &&\n !ref.current?.contains(document!.activeElement) &&\n focusableNodes?.length\n ) {\n focusableNodes[0].focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n focusOnTrapMount.set();\n }, []);\n\n // HANDLE FOCUSABLE NODES\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) {\n return noop();\n }\n\n const nodes: HTMLElement[] = [];\n Array.prototype.forEach.call(\n // eslint-disable-next-line no-restricted-properties\n ref.current.querySelectorAll(FOCUSABLE_ELEMENTS),\n (focusableEl: Element) => {\n const { display, visibility } = window!.getComputedStyle(focusableEl);\n\n if (display !== \"none\" && visibility !== \"hidden\") {\n nodes.push(focusableEl as HTMLElement);\n }\n }\n );\n\n if (nodes?.length) {\n setFocusableNodes(nodes);\n }\n\n return noop();\n }, [children]);\n\n // HANDLE TRAP UNMOUNT\n\n const focusOnTrapUnmount = useTimeout(() => {\n if (restoreFocusTo) {\n restoreFocusTo.focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n if (restoreFocus && document!.activeElement) {\n setRestoreFocusTo(document!.activeElement as HTMLElement);\n\n return () => {\n focusOnTrapUnmount.set();\n };\n }\n\n return noop();\n }, [restoreFocus]);\n\n const onDocumentKeydown = (e: KeyboardEvent) => {\n if (pressedKey(e) === Keys.TAB && focusableNodes?.length) {\n const lastIdx = focusableNodes.length - 1;\n const targetIdx = focusableNodes.findIndex((node) => node === e.target);\n\n const shouldFocusFirstNode =\n targetIdx === -1 || (targetIdx === lastIdx && !e.shiftKey);\n\n if (shouldFocusFirstNode || (targetIdx === 0 && e.shiftKey)) {\n e.preventDefault();\n\n const node = focusableNodes[shouldFocusFirstNode ? 0 : lastIdx];\n\n if (node !== document!.activeElement) {\n node.focus();\n }\n\n return false;\n }\n }\n\n if (pressedKey(e) === Keys.ESCAPE) {\n onClose();\n }\n\n return true;\n };\n useGlobalEventListener(document, \"keydown\", onDocumentKeydown, {\n capture: true,\n });\n\n return (\n <Component ref={ref} {...restProps}>\n {children}\n </Component>\n );\n};\n"],"file":"FocusTrap.js"}
1
+ {"version":3,"sources":["../../../src/components/FocusTrap/FocusTrap.tsx"],"names":["React","useExternRef","useGlobalEventListener","useTimeout","FOCUSABLE_ELEMENTS_LIST","Keys","pressedKey","useDOM","useIsomorphicLayoutEffect","AppRootContext","FOCUSABLE_ELEMENTS","join","FocusTrap","Component","onClose","restoreFocus","timeout","getRootRef","children","restProps","ref","document","window","useState","focusableNodes","setFocusableNodes","restoreFocusTo","setRestoreFocusTo","useContext","keyboardInput","focusOnTrapMount","current","contains","activeElement","length","focus","set","nodes","Array","prototype","forEach","call","querySelectorAll","focusableEl","getComputedStyle","display","visibility","push","focusOnTrapUnmount","onDocumentKeydown","e","TAB","lastIdx","targetIdx","findIndex","node","target","shouldFocusFirstNode","shiftKey","preventDefault","ESCAPE","capture"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport {\n FOCUSABLE_ELEMENTS_LIST,\n Keys,\n pressedKey,\n} from \"../../lib/accessibility\";\nimport { useDOM } from \"../../lib/dom\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { HasComponent, HasRootRef } from \"../../types\";\nimport { AppRootContext } from \"../AppRoot/AppRootContext\";\n\nconst FOCUSABLE_ELEMENTS: string = FOCUSABLE_ELEMENTS_LIST.join();\n\nexport interface FocusTrapProps\n extends React.AllHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLElement>,\n HasComponent {\n restoreFocus?: boolean;\n timeout?: number;\n onClose?(): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/FocusTrap\n */\nexport const FocusTrap = ({\n Component = \"div\",\n onClose,\n restoreFocus = true,\n timeout = 0,\n getRootRef,\n children,\n ...restProps\n}: FocusTrapProps) => {\n const ref = useExternRef<HTMLElement>(getRootRef);\n\n const { document, window } = useDOM();\n\n const [focusableNodes, setFocusableNodes] = React.useState<\n HTMLElement[] | null\n >(null);\n const [restoreFocusTo, setRestoreFocusTo] =\n React.useState<HTMLElement | null>(null);\n\n // HANDLE TRAP MOUNT\n\n const { keyboardInput } = React.useContext(AppRootContext);\n const focusOnTrapMount = useTimeout(() => {\n if (\n keyboardInput &&\n !ref.current?.contains(document!.activeElement) &&\n focusableNodes?.length\n ) {\n focusableNodes[0].focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n focusOnTrapMount.set();\n }, []);\n\n // HANDLE FOCUSABLE NODES\n\n useIsomorphicLayoutEffect(() => {\n if (!ref.current) {\n return;\n }\n\n const nodes: HTMLElement[] = [];\n Array.prototype.forEach.call(\n // eslint-disable-next-line no-restricted-properties\n ref.current.querySelectorAll(FOCUSABLE_ELEMENTS),\n (focusableEl: Element) => {\n const { display, visibility } = window!.getComputedStyle(focusableEl);\n\n if (display !== \"none\" && visibility !== \"hidden\") {\n nodes.push(focusableEl as HTMLElement);\n }\n }\n );\n\n if (nodes.length === 0) {\n // Чтобы фокус был хотя бы на родителе\n nodes.push(ref.current);\n }\n\n setFocusableNodes(nodes);\n }, [children]);\n\n // HANDLE TRAP UNMOUNT\n\n const focusOnTrapUnmount = useTimeout(() => {\n if (restoreFocusTo) {\n restoreFocusTo.focus();\n }\n }, timeout);\n useIsomorphicLayoutEffect(() => {\n if (restoreFocus && document!.activeElement) {\n setRestoreFocusTo(document!.activeElement as HTMLElement);\n\n return () => {\n focusOnTrapUnmount.set();\n };\n }\n\n return;\n }, [restoreFocus]);\n\n const onDocumentKeydown = (e: KeyboardEvent) => {\n if (pressedKey(e) === Keys.TAB && focusableNodes?.length) {\n const lastIdx = focusableNodes.length - 1;\n const targetIdx = focusableNodes.findIndex((node) => node === e.target);\n\n const shouldFocusFirstNode =\n targetIdx === -1 || (targetIdx === lastIdx && !e.shiftKey);\n\n if (shouldFocusFirstNode || (targetIdx === 0 && e.shiftKey)) {\n e.preventDefault();\n\n const node = focusableNodes[shouldFocusFirstNode ? 0 : lastIdx];\n\n if (node !== document!.activeElement) {\n node.focus();\n }\n\n return false;\n }\n }\n\n if (onClose && pressedKey(e) === Keys.ESCAPE) {\n onClose();\n }\n\n return true;\n };\n useGlobalEventListener(document, \"keydown\", onDocumentKeydown, {\n capture: true,\n });\n\n return (\n <Component tabIndex={-1} ref={ref} {...restProps}>\n {children}\n </Component>\n );\n};\n"],"file":"FocusTrap.js"}
@@ -4,12 +4,11 @@ var _excluded = ["size", "children"],
4
4
  _excluded2 = ["className", "header", "style", "subtitle", "size", "children", "getRootRef", "getRef"];
5
5
  import { createScopedElement } from "../../lib/jsxRuntime";
6
6
  import { classNames } from "../../lib/classNames";
7
- import { getClassName } from "../../helpers/getClassName";
8
- import { usePlatform } from "../../hooks/usePlatform";
9
7
  import { hasReactNode } from "../../lib/utils";
10
8
  import { Caption } from "../Typography/Caption/Caption";
11
9
  import { Tappable } from "../Tappable/Tappable";
12
10
  import { Subhead } from "../Typography/Subhead/Subhead";
11
+ import { Footnote } from "../Typography/Footnote/Footnote";
13
12
  import { Avatar } from "../Avatar/Avatar";
14
13
 
15
14
  var CellTypography = function CellTypography(_ref) {
@@ -40,9 +39,8 @@ export var HorizontalCell = function HorizontalCell(_ref2) {
40
39
  getRef = _ref2.getRef,
41
40
  restProps = _objectWithoutProperties(_ref2, _excluded2);
42
41
 
43
- var platform = usePlatform();
44
42
  return createScopedElement("div", {
45
- vkuiClass: classNames(getClassName("HorizontalCell", platform), "HorizontalCell--".concat(size)),
43
+ vkuiClass: classNames("HorizontalCell", "HorizontalCell--".concat(size)),
46
44
  ref: getRootRef,
47
45
  style: style,
48
46
  className: className
@@ -56,7 +54,7 @@ export var HorizontalCell = function HorizontalCell(_ref2) {
56
54
  }, hasReactNode(header) && createScopedElement(CellTypography, {
57
55
  size: size,
58
56
  vkuiClass: "HorizontalCell__title"
59
- }, header), hasReactNode(subtitle) && createScopedElement(Caption, {
57
+ }, header), hasReactNode(subtitle) && createScopedElement(Footnote, {
60
58
  vkuiClass: "HorizontalCell__subtitle"
61
59
  }, subtitle))));
62
60
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/HorizontalCell/HorizontalCell.tsx"],"names":["classNames","getClassName","usePlatform","hasReactNode","Caption","Tappable","Subhead","Avatar","CellTypography","size","children","restProps","HorizontalCell","className","header","style","subtitle","getRootRef","getRef","platform"],"mappings":";;;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,OAAT;AACA,SAASC,MAAT;;AAQA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAII;AAAA,MAHzBC,IAGyB,QAHzBA,IAGyB;AAAA,MAFzBC,QAEyB,QAFzBA,QAEyB;AAAA,MADtBC,SACsB;;AACzB,SAAOF,IAAI,KAAK,GAAT,GACL,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAC;AAAf,KAAuBE,SAAvB,GACGD,QADH,CADK,GAKL,oBAAC,OAAD,EAAaC,SAAb,EAAyBD,QAAzB,CALF;AAOD,CAZD;;AAyBA;AACA;AACA;AACA,OAAO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,QAUH;AAAA,MATzBC,SASyB,SATzBA,SASyB;AAAA,MARzBC,MAQyB,SARzBA,MAQyB;AAAA,MAPzBC,KAOyB,SAPzBA,KAOyB;AAAA,MANzBC,QAMyB,SANzBA,QAMyB;AAAA,yBALzBP,IAKyB;AAAA,MALzBA,IAKyB,2BALlB,GAKkB;AAAA,6BAJzBC,QAIyB;AAAA,MAJzBA,QAIyB,+BAJd,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAIc;AAAA,MAHzBO,UAGyB,SAHzBA,UAGyB;AAAA,MAFzBC,MAEyB,SAFzBA,MAEyB;AAAA,MADtBP,SACsB;;AACzB,MAAMQ,QAAQ,GAAGjB,WAAW,EAA5B;AAEA,SACE;AACE,IAAA,SAAS,EAAEF,UAAU,CACnBC,YAAY,CAAC,gBAAD,EAAmBkB,QAAnB,CADO,4BAEAV,IAFA,EADvB;AAKE,IAAA,GAAG,EAAEQ,UALP;AAME,IAAA,KAAK,EAAEF,KANT;AAOE,IAAA,SAAS,EAAEF;AAPb,KASE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,sBADZ;AAEE,IAAA,UAAU,EAAEK;AAFd,KAGMP,SAHN,GAKGR,YAAY,CAACO,QAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwCA,QAAxC,CANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGP,YAAY,CAACW,MAAD,CAAZ,IACC,oBAAC,cAAD;AAAgB,IAAA,IAAI,EAAEL,IAAtB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGK,MADH,CAFJ,EAMGX,YAAY,CAACa,QAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAA+CA,QAA/C,CAPJ,CARF,CATF,CADF;AA+BD,CA5CM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { HasComponent, HasRef, HasRootRef } from \"../../types\";\nimport \"./HorizontalCell.css\";\n\ninterface CellTypographyProps extends React.HTMLAttributes<HTMLDivElement> {\n size: HorizontalCellProps[\"size\"];\n}\n\nconst CellTypography = ({\n size,\n children,\n ...restProps\n}: CellTypographyProps) => {\n return size === \"s\" ? (\n <Caption level=\"2\" {...restProps}>\n {children}\n </Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends React.AnchorHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasComponent {\n size?: \"s\" | \"m\" | \"l\";\n header?: React.ReactNode;\n subtitle?: React.ReactNode;\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n header,\n style,\n subtitle,\n size = \"s\",\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n ...restProps\n}: HorizontalCellProps) => {\n const platform = usePlatform();\n\n return (\n <div\n vkuiClass={classNames(\n getClassName(\"HorizontalCell\", platform),\n `HorizontalCell--${size}`\n )}\n ref={getRootRef}\n style={style}\n className={className}\n >\n <Tappable\n vkuiClass=\"HorizontalCell__body\"\n getRootRef={getRef}\n {...restProps}\n >\n {hasReactNode(children) && (\n <div vkuiClass=\"HorizontalCell__image\">{children}</div>\n )}\n <div vkuiClass=\"HorizontalCell__content\">\n {hasReactNode(header) && (\n <CellTypography size={size} vkuiClass=\"HorizontalCell__title\">\n {header}\n </CellTypography>\n )}\n {hasReactNode(subtitle) && (\n <Caption vkuiClass=\"HorizontalCell__subtitle\">{subtitle}</Caption>\n )}\n </div>\n </Tappable>\n </div>\n );\n};\n"],"file":"HorizontalCell.js"}
1
+ {"version":3,"sources":["../../../src/components/HorizontalCell/HorizontalCell.tsx"],"names":["classNames","hasReactNode","Caption","Tappable","Subhead","Footnote","Avatar","CellTypography","size","children","restProps","HorizontalCell","className","header","style","subtitle","getRootRef","getRef"],"mappings":";;;;;AACA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,OAAT;AACA,SAASC,QAAT;AACA,SAASC,MAAT;;AAQA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,OAII;AAAA,MAHzBC,IAGyB,QAHzBA,IAGyB;AAAA,MAFzBC,QAEyB,QAFzBA,QAEyB;AAAA,MADtBC,SACsB;;AACzB,SAAOF,IAAI,KAAK,GAAT,GACL,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAC;AAAf,KAAuBE,SAAvB,GACGD,QADH,CADK,GAKL,oBAAC,OAAD,EAAaC,SAAb,EAAyBD,QAAzB,CALF;AAOD,CAZD;;AAyBA;AACA;AACA;AACA,OAAO,IAAME,cAAc,GAAG,SAAjBA,cAAiB,QAUH;AAAA,MATzBC,SASyB,SATzBA,SASyB;AAAA,MARzBC,MAQyB,SARzBA,MAQyB;AAAA,MAPzBC,KAOyB,SAPzBA,KAOyB;AAAA,MANzBC,QAMyB,SANzBA,QAMyB;AAAA,yBALzBP,IAKyB;AAAA,MALzBA,IAKyB,2BALlB,GAKkB;AAAA,6BAJzBC,QAIyB;AAAA,MAJzBA,QAIyB,+BAJd,oBAAC,MAAD;AAAQ,IAAA,IAAI,EAAE;AAAd,IAIc;AAAA,MAHzBO,UAGyB,SAHzBA,UAGyB;AAAA,MAFzBC,MAEyB,SAFzBA,MAEyB;AAAA,MADtBP,SACsB;;AACzB,SACE;AACE,IAAA,SAAS,EAAEV,UAAU,CAAC,gBAAD,4BAAsCQ,IAAtC,EADvB;AAEE,IAAA,GAAG,EAAEQ,UAFP;AAGE,IAAA,KAAK,EAAEF,KAHT;AAIE,IAAA,SAAS,EAAEF;AAJb,KAME,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,sBADZ;AAEE,IAAA,UAAU,EAAEK;AAFd,KAGMP,SAHN,GAKGT,YAAY,CAACQ,QAAD,CAAZ,IACC;AAAK,IAAA,SAAS,EAAC;AAAf,KAAwCA,QAAxC,CANJ,EAQE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGR,YAAY,CAACY,MAAD,CAAZ,IACC,oBAAC,cAAD;AAAgB,IAAA,IAAI,EAAEL,IAAtB;AAA4B,IAAA,SAAS,EAAC;AAAtC,KACGK,MADH,CAFJ,EAMGZ,YAAY,CAACc,QAAD,CAAZ,IACC,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC;AAApB,KAAgDA,QAAhD,CAPJ,CARF,CANF,CADF;AA4BD,CAvCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Avatar } from \"../Avatar/Avatar\";\nimport { HasComponent, HasRef, HasRootRef } from \"../../types\";\nimport \"./HorizontalCell.css\";\n\ninterface CellTypographyProps extends React.HTMLAttributes<HTMLDivElement> {\n size: HorizontalCellProps[\"size\"];\n}\n\nconst CellTypography = ({\n size,\n children,\n ...restProps\n}: CellTypographyProps) => {\n return size === \"s\" ? (\n <Caption level=\"2\" {...restProps}>\n {children}\n </Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends React.AnchorHTMLAttributes<HTMLElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement>,\n HasComponent {\n size?: \"s\" | \"m\" | \"l\";\n header?: React.ReactNode;\n subtitle?: React.ReactNode;\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n header,\n style,\n subtitle,\n size = \"s\",\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n ...restProps\n}: HorizontalCellProps) => {\n return (\n <div\n vkuiClass={classNames(\"HorizontalCell\", `HorizontalCell--${size}`)}\n ref={getRootRef}\n style={style}\n className={className}\n >\n <Tappable\n vkuiClass=\"HorizontalCell__body\"\n getRootRef={getRef}\n {...restProps}\n >\n {hasReactNode(children) && (\n <div vkuiClass=\"HorizontalCell__image\">{children}</div>\n )}\n <div vkuiClass=\"HorizontalCell__content\">\n {hasReactNode(header) && (\n <CellTypography size={size} vkuiClass=\"HorizontalCell__title\">\n {header}\n </CellTypography>\n )}\n {hasReactNode(subtitle) && (\n <Footnote vkuiClass=\"HorizontalCell__subtitle\">{subtitle}</Footnote>\n )}\n </div>\n </Tappable>\n </div>\n );\n};\n"],"file":"HorizontalCell.js"}
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  var _excluded = ["before", "after", "mode", "textWrap", "textLevel", "children"];
4
4
  import { createScopedElement } from "../../lib/jsxRuntime";
5
5
  import { classNames } from "../../lib/classNames";
6
- import { Text } from "../Typography/Text/Text";
6
+ import { Paragraph } from "../Typography/Paragraph/Paragraph";
7
7
  import { Tappable } from "../Tappable/Tappable";
8
8
  import { hasReactNode } from "../../lib/utils";
9
9
 
@@ -31,7 +31,7 @@ export var MiniInfoCell = function MiniInfoCell(_ref) {
31
31
  vkuiClass: classNames("MiniInfoCell", mode !== "base" && "MiniInfoCell--md-".concat(mode), textWrap !== "nowrap" && "MiniInfoCell--wr-".concat(textWrap), "MiniInfoCell--lvl-".concat(textLevel))
32
32
  }), createScopedElement("span", {
33
33
  vkuiClass: "MiniInfoCell__icon"
34
- }, before), createScopedElement(Text, {
34
+ }, before), createScopedElement(Paragraph, {
35
35
  vkuiClass: "MiniInfoCell__content",
36
36
  weight: mode === "more" ? "2" : undefined
37
37
  }, children), hasReactNode(after) && createScopedElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/MiniInfoCell/MiniInfoCell.tsx"],"names":["classNames","Text","Tappable","hasReactNode","MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","isClickable","onClick","undefined"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,IAAT;AACA,SAASC,QAAT;AACA,SAASC,YAAT;;AA6CA;AACA;AACA;AACA,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAQH;AAAA,MAPvBC,MAOuB,QAPvBA,MAOuB;AAAA,MANvBC,KAMuB,QANvBA,KAMuB;AAAA,uBALvBC,IAKuB;AAAA,MALvBA,IAKuB,0BALhB,MAKgB;AAAA,2BAJvBC,QAIuB;AAAA,MAJvBA,QAIuB,8BAJZ,QAIY;AAAA,4BAHvBC,SAGuB;AAAA,MAHvBA,SAGuB,+BAHX,WAGW;AAAA,MAFvBC,QAEuB,QAFvBA,QAEuB;AAAA,MADpBC,SACoB;;AACvB,MAAMC,WAAW,GAAG,CAAC,CAACD,SAAS,CAACE,OAAhC;AAEA,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,KADZ;AAEE,IAAA,QAAQ,EAAE,CAACD,WAFb;AAGE,IAAA,IAAI,EAAEA,WAAW,GAAG,QAAH,GAAcE;AAHjC,KAIMH,SAJN;AAKE,IAAA,SAAS,EAAEX,UAAU,CACnB,cADmB,EAEnBO,IAAI,KAAK,MAAT,+BAAuCA,IAAvC,CAFmB,EAGnBC,QAAQ,KAAK,QAAb,+BAA6CA,QAA7C,CAHmB,8BAIEC,SAJF;AALvB,MAYE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAsCJ,MAAtC,CAZF,EAaE,oBAAC,IAAD;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,MAAM,EAAEE,IAAI,KAAK,MAAT,GAAkB,GAAlB,GAAwBO;AAFlC,KAIGJ,QAJH,CAbF,EAmBGP,YAAY,CAACG,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAuCA,KAAvC,CApBJ,CADF;AAyBD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./MiniInfoCell.css\";\n\nexport interface MiniInfoCellProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Иконка слева.<br />\n * Рекомендуется использовать иконки размера 20.\n */\n before: React.ReactNode;\n\n /**\n * Содержимое справа.<br />\n * `<UsersStack size=\"s\" />` или `<Avatar size={24} />`\n */\n after?: React.ReactNode;\n\n /**\n * Тип ячейки:\n *\n * - `base` – базовая ячейка с серой иконкой и серым текстом.<br />\n * В компонент можно передать `Link`, чтобы визуально сделать часть текста ссылкой.\n * - `add` – тип ячейки, который показывает, что взаимодействие с ней должно вызывать действие добавления чего-то.\n * - `more` – взаимодействие с такой ячейкой должно открывать какую-то подробную информацию.\n */\n mode?: \"base\" | \"add\" | \"more\";\n\n /**\n * Тип отображения текста:\n *\n * - `nowrap` – в одну строку, текст не переносится и обрезается.\n * - `short` – максимально отображается 3 строки, остальное обрезается.\n * - `full` – текст отображается полностью.\n */\n textWrap?: \"nowrap\" | \"short\" | \"full\";\n\n /**\n * Стиль текста:\n *\n * - `primary` – используйте этот стиль, если хотите выделить информацию в общем списке.<br />Пример использования: подробная информация на странице сообщества\n * - `secondary` – стиль по-умолчанию.\n */\n textLevel?: \"primary\" | \"secondary\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/MiniInfoCell\n */\nexport const MiniInfoCell = ({\n before,\n after,\n mode = \"base\",\n textWrap = \"nowrap\",\n textLevel = \"secondary\",\n children,\n ...restProps\n}: MiniInfoCellProps) => {\n const isClickable = !!restProps.onClick;\n\n return (\n <Tappable\n Component=\"div\"\n disabled={!isClickable}\n role={isClickable ? \"button\" : undefined}\n {...restProps}\n vkuiClass={classNames(\n \"MiniInfoCell\",\n mode !== \"base\" && `MiniInfoCell--md-${mode}`,\n textWrap !== \"nowrap\" && `MiniInfoCell--wr-${textWrap}`,\n `MiniInfoCell--lvl-${textLevel}`\n )}\n >\n <span vkuiClass=\"MiniInfoCell__icon\">{before}</span>\n <Text\n vkuiClass=\"MiniInfoCell__content\"\n weight={mode === \"more\" ? \"2\" : undefined}\n >\n {children}\n </Text>\n {hasReactNode(after) && (\n <span vkuiClass=\"MiniInfoCell__after\">{after}</span>\n )}\n </Tappable>\n );\n};\n"],"file":"MiniInfoCell.js"}
1
+ {"version":3,"sources":["../../../src/components/MiniInfoCell/MiniInfoCell.tsx"],"names":["classNames","Paragraph","Tappable","hasReactNode","MiniInfoCell","before","after","mode","textWrap","textLevel","children","restProps","isClickable","onClick","undefined"],"mappings":";;;;AACA,SAASA,UAAT;AACA,SAASC,SAAT;AACA,SAASC,QAAT;AACA,SAASC,YAAT;;AA6CA;AACA;AACA;AACA,OAAO,IAAMC,YAAY,GAAG,SAAfA,YAAe,OAQH;AAAA,MAPvBC,MAOuB,QAPvBA,MAOuB;AAAA,MANvBC,KAMuB,QANvBA,KAMuB;AAAA,uBALvBC,IAKuB;AAAA,MALvBA,IAKuB,0BALhB,MAKgB;AAAA,2BAJvBC,QAIuB;AAAA,MAJvBA,QAIuB,8BAJZ,QAIY;AAAA,4BAHvBC,SAGuB;AAAA,MAHvBA,SAGuB,+BAHX,WAGW;AAAA,MAFvBC,QAEuB,QAFvBA,QAEuB;AAAA,MADpBC,SACoB;;AACvB,MAAMC,WAAW,GAAG,CAAC,CAACD,SAAS,CAACE,OAAhC;AAEA,SACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,KADZ;AAEE,IAAA,QAAQ,EAAE,CAACD,WAFb;AAGE,IAAA,IAAI,EAAEA,WAAW,GAAG,QAAH,GAAcE;AAHjC,KAIMH,SAJN;AAKE,IAAA,SAAS,EAAEX,UAAU,CACnB,cADmB,EAEnBO,IAAI,KAAK,MAAT,+BAAuCA,IAAvC,CAFmB,EAGnBC,QAAQ,KAAK,QAAb,+BAA6CA,QAA7C,CAHmB,8BAIEC,SAJF;AALvB,MAYE;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAsCJ,MAAtC,CAZF,EAaE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAC,uBADZ;AAEE,IAAA,MAAM,EAAEE,IAAI,KAAK,MAAT,GAAkB,GAAlB,GAAwBO;AAFlC,KAIGJ,QAJH,CAbF,EAmBGP,YAAY,CAACG,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAuCA,KAAvC,CApBJ,CADF;AAyBD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Paragraph } from \"../Typography/Paragraph/Paragraph\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport \"./MiniInfoCell.css\";\n\nexport interface MiniInfoCellProps\n extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Иконка слева.<br />\n * Рекомендуется использовать иконки размера 20.\n */\n before: React.ReactNode;\n\n /**\n * Содержимое справа.<br />\n * `<UsersStack size=\"s\" />` или `<Avatar size={24} />`\n */\n after?: React.ReactNode;\n\n /**\n * Тип ячейки:\n *\n * - `base` – базовая ячейка с серой иконкой и серым текстом.<br />\n * В компонент можно передать `Link`, чтобы визуально сделать часть текста ссылкой.\n * - `add` – тип ячейки, который показывает, что взаимодействие с ней должно вызывать действие добавления чего-то.\n * - `more` – взаимодействие с такой ячейкой должно открывать какую-то подробную информацию.\n */\n mode?: \"base\" | \"add\" | \"more\";\n\n /**\n * Тип отображения текста:\n *\n * - `nowrap` – в одну строку, текст не переносится и обрезается.\n * - `short` – максимально отображается 3 строки, остальное обрезается.\n * - `full` – текст отображается полностью.\n */\n textWrap?: \"nowrap\" | \"short\" | \"full\";\n\n /**\n * Стиль текста:\n *\n * - `primary` – используйте этот стиль, если хотите выделить информацию в общем списке.<br />Пример использования: подробная информация на странице сообщества\n * - `secondary` – стиль по-умолчанию.\n */\n textLevel?: \"primary\" | \"secondary\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/MiniInfoCell\n */\nexport const MiniInfoCell = ({\n before,\n after,\n mode = \"base\",\n textWrap = \"nowrap\",\n textLevel = \"secondary\",\n children,\n ...restProps\n}: MiniInfoCellProps) => {\n const isClickable = !!restProps.onClick;\n\n return (\n <Tappable\n Component=\"div\"\n disabled={!isClickable}\n role={isClickable ? \"button\" : undefined}\n {...restProps}\n vkuiClass={classNames(\n \"MiniInfoCell\",\n mode !== \"base\" && `MiniInfoCell--md-${mode}`,\n textWrap !== \"nowrap\" && `MiniInfoCell--wr-${textWrap}`,\n `MiniInfoCell--lvl-${textLevel}`\n )}\n >\n <span vkuiClass=\"MiniInfoCell__icon\">{before}</span>\n <Paragraph\n vkuiClass=\"MiniInfoCell__content\"\n weight={mode === \"more\" ? \"2\" : undefined}\n >\n {children}\n </Paragraph>\n {hasReactNode(after) && (\n <span vkuiClass=\"MiniInfoCell__after\">{after}</span>\n )}\n </Tappable>\n );\n};\n"],"file":"MiniInfoCell.js"}
@@ -26,4 +26,4 @@ export interface ModalRootProps extends HasPlatform {
26
26
  configProvider?: ConfigProviderContextInterface;
27
27
  children?: React.ReactNode;
28
28
  }
29
- export declare const ModalRootTouch: React.FC<Pick<ModalRootProps, "children" | "configProvider" | "onOpen" | "onOpened" | "onClose" | "onClosed" | "activeModal">>;
29
+ export declare const ModalRootTouch: React.FC<Pick<ModalRootProps, "children" | "onOpen" | "onOpened" | "onClose" | "onClosed" | "activeModal" | "configProvider">>;
@@ -26,4 +26,4 @@ export interface ModalRootProps extends HasPlatform {
26
26
  */
27
27
  onClosed?(modalId: string): void;
28
28
  }
29
- export declare const ModalRootDesktop: React.FC<Pick<ModalRootProps, "children" | "configProvider" | "onOpen" | "onOpened" | "onClose" | "onClosed" | "activeModal">>;
29
+ export declare const ModalRootDesktop: React.FC<Pick<ModalRootProps, "children" | "onOpen" | "onOpened" | "onClose" | "onClosed" | "activeModal" | "configProvider">>;
@@ -3,6 +3,9 @@ import { Modifier } from "react-popper";
3
3
  import { HasRef } from "../../types";
4
4
  import "./Popper.css";
5
5
  export declare type Placement = "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end" | "top" | "bottom" | "left" | "right";
6
+ export interface PopperRenderContentProps {
7
+ className: string;
8
+ }
6
9
  export interface PopperCommonProps extends React.HTMLAttributes<HTMLDivElement>, HasRef<HTMLDivElement> {
7
10
  /**
8
11
  * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства
@@ -16,7 +19,13 @@ export interface PopperCommonProps extends React.HTMLAttributes<HTMLDivElement>,
16
19
  * Отступ по главной оси
17
20
  */
18
21
  offsetDistance?: number;
22
+ /**
23
+ * Отображать ли стрелку, указывающую на якорный элемент
24
+ */
19
25
  arrow?: boolean;
26
+ /**
27
+ * Стиль стрелки
28
+ */
20
29
  arrowClassName?: string;
21
30
  /**
22
31
  * Выставлять ширину равной target элементу
@@ -30,6 +39,14 @@ export interface PopperCommonProps extends React.HTMLAttributes<HTMLDivElement>,
30
39
  * Массив кастомных модификаторов для Popper (необходимо мемоизировать)
31
40
  */
32
41
  customModifiers?: Array<Modifier<string>>;
42
+ /**
43
+ * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.
44
+ *
45
+ * Если хочется управлять этим контейнером, то используйте данную функцию.
46
+ *
47
+ * > ⚠️ Параметр `children` будет проигнорирован.
48
+ */
49
+ renderContent?(props: PopperRenderContentProps): React.ReactNode;
33
50
  }
34
51
  export interface PopperProps extends PopperCommonProps {
35
52
  targetRef: React.RefObject<HTMLElement>;
@@ -37,4 +54,4 @@ export interface PopperProps extends PopperCommonProps {
37
54
  /**
38
55
  * @see https://vkcom.github.io/VKUI/#/Popper
39
56
  */
40
- export declare const Popper: ({ targetRef, children, getRef, placement, onPlacementChange, arrow, arrowClassName, sameWidth, offsetDistance, offsetSkidding, forcePortal, style: compStyles, customModifiers, ...restProps }: PopperProps) => JSX.Element;
57
+ export declare const Popper: ({ targetRef, children, getRef, placement, onPlacementChange, arrow, arrowClassName, sameWidth, offsetDistance, offsetSkidding, forcePortal, style: compStyles, customModifiers, renderContent, ...restProps }: PopperProps) => JSX.Element;
@@ -3,11 +3,12 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "customModifiers"];
6
+ var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "customModifiers", "renderContent"];
7
7
  import { createScopedElement } from "../../lib/jsxRuntime";
8
8
  import * as React from "react";
9
9
  import { usePopper } from "react-popper";
10
10
  import { AppRootPortal } from "../AppRoot/AppRootPortal";
11
+ import { PopperArrow } from "../PopperArrow/PopperArrow";
11
12
  import { usePlatform } from "../../hooks/usePlatform";
12
13
  import { getClassName } from "../../helpers/getClassName";
13
14
  import { useExternRef } from "../../hooks/useExternRef";
@@ -39,6 +40,7 @@ export var Popper = function Popper(_ref) {
39
40
  forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
40
41
  compStyles = _ref.style,
41
42
  customModifiers = _ref.customModifiers,
43
+ renderContent = _ref.renderContent,
42
44
  restProps = _objectWithoutProperties(_ref, _excluded);
43
45
 
44
46
  var _React$useState = React.useState(null),
@@ -143,24 +145,13 @@ export var Popper = function Popper(_ref) {
143
145
  style: _objectSpread(_objectSpread(_objectSpread({}, compStyles), styles.popper), {}, {
144
146
  minWidth: sameWidth ? (_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.scrollWidth : undefined
145
147
  })
146
- }), arrow && createScopedElement("div", _extends({}, attributes.arrow, {
147
- vkuiClass: "Popper__arrow",
148
- "data-popper-arrow": true,
149
- style: styles.arrow
150
- }), createScopedElement("svg", {
151
- vkuiClass: "Popper__arrow-in",
152
- className: arrowClassName,
153
- width: "20",
154
- height: "8",
155
- viewBox: "0 0 20 8",
156
- fill: "none",
157
- xmlns: "http://www.w3.org/2000/svg"
158
- }, createScopedElement("path", {
159
- fillRule: "evenodd",
160
- clipRule: "evenodd",
161
- d: "M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z",
162
- fill: "currentColor"
163
- }))), createScopedElement("div", {
148
+ }), arrow && createScopedElement(PopperArrow, {
149
+ attributes: attributes.arrow,
150
+ style: styles.arrow,
151
+ arrowClassName: arrowClassName
152
+ }), renderContent ? renderContent({
153
+ className: "Popper__content"
154
+ }) : createScopedElement("div", {
164
155
  vkuiClass: "Popper__content"
165
156
  }, children));
166
157
  return createScopedElement(AppRootPortal, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n arrow?: boolean;\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <div\n {...attributes.arrow}\n vkuiClass=\"Popper__arrow\"\n data-popper-arrow={true}\n style={styles.arrow}\n >\n <svg\n vkuiClass=\"Popper__arrow-in\"\n className={arrowClassName}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n )}\n <div vkuiClass=\"Popper__content\">{children}</div>\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
1
+ {"version":3,"sources":["../../../src/components/Popper/Popper.tsx"],"names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getClassName","useExternRef","useIsomorphicLayoutEffect","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","style","customModifiers","renderContent","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","name","options","mainAxis","offset","push","padding","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","offsetWidth","current","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined","className"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { usePopper, Modifier } from \"react-popper\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { HasRef } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./Popper.css\";\n\nexport type Placement =\n | \"auto\"\n | \"auto-start\"\n | \"auto-end\"\n | \"top-start\"\n | \"top-end\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"right-start\"\n | \"right-end\"\n | \"left-start\"\n | \"left-end\"\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\";\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = \"bottom-start\",\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(\n null\n );\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] =\n React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"preventOverflow\",\n options: {\n mainAxis: false,\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: ARROW_PADDING,\n },\n });\n }\n\n if (sameWidth) {\n const sameWidth: Modifier<string> = {\n name: \"sameWidth\",\n enabled: true,\n phase: \"beforeWrite\",\n requires: [\"computeStyles\"],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n };\n\n modifiers.push(sameWidth);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const { styles, state, attributes } = usePopper(\n targetRef.current,\n popperNode,\n {\n placement,\n modifiers,\n }\n );\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement =\n !!resolvedPlacement && resolvedPlacement.includes(\"-\"); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith(\"bottom\") ||\n resolvedPlacement?.startsWith(\"top\")\n ? \"vertical\"\n : \"horizontal\";\n\n const arrowSize =\n placementDirection === \"vertical\" ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === \"vertical\"\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n vkuiClass={getClassName(\"Popper\", platform)}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...styles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={styles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: \"Popper__content\" })\n ) : (\n <div vkuiClass=\"Popper__content\">{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} vkuiClass=\"PopperPortal\">\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"file":"Popper.js"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ import "./PopperArrow.css";
3
+ export interface PopperArrowProps {
4
+ style?: React.CSSProperties;
5
+ attributes?: React.HTMLAttributes<HTMLDivElement> | null;
6
+ arrowClassName?: string;
7
+ }
8
+ export declare const PopperArrow: ({ style, attributes, arrowClassName, }: PopperArrowProps) => JSX.Element;
@@ -0,0 +1,27 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import { createScopedElement } from "../../lib/jsxRuntime";
3
+ export var PopperArrow = function PopperArrow(_ref) {
4
+ var style = _ref.style,
5
+ attributes = _ref.attributes,
6
+ arrowClassName = _ref.arrowClassName;
7
+ return createScopedElement("div", _extends({
8
+ style: style
9
+ }, attributes, {
10
+ vkuiClass: "PopperArrow",
11
+ "data-popper-arrow": true
12
+ }), createScopedElement("svg", {
13
+ vkuiClass: "PopperArrow__in",
14
+ className: arrowClassName,
15
+ width: "20",
16
+ height: "8",
17
+ viewBox: "0 0 20 8",
18
+ fill: "none",
19
+ xmlns: "http://www.w3.org/2000/svg"
20
+ }, createScopedElement("path", {
21
+ fillRule: "evenodd",
22
+ clipRule: "evenodd",
23
+ d: "M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z",
24
+ fill: "currentColor"
25
+ })));
26
+ };
27
+ //# sourceMappingURL=PopperArrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/PopperArrow/PopperArrow.tsx"],"names":["PopperArrow","style","attributes","arrowClassName"],"mappings":";;AASA,OAAO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAIH;AAAA,MAHtBC,KAGsB,QAHtBA,KAGsB;AAAA,MAFtBC,UAEsB,QAFtBA,UAEsB;AAAA,MADtBC,cACsB,QADtBA,cACsB;AACtB,SACE;AACE,IAAA,KAAK,EAAEF;AADT,KAEMC,UAFN;AAGE,IAAA,SAAS,EAAC,aAHZ;AAIE,yBAAmB;AAJrB,MAME;AACE,IAAA,SAAS,EAAC,iBADZ;AAEE,IAAA,SAAS,EAAEC,cAFb;AAGE,IAAA,KAAK,EAAC,IAHR;AAIE,IAAA,MAAM,EAAC,GAJT;AAKE,IAAA,OAAO,EAAC,UALV;AAME,IAAA,IAAI,EAAC,MANP;AAOE,IAAA,KAAK,EAAC;AAPR,KASE;AACE,IAAA,QAAQ,EAAC,SADX;AAEE,IAAA,QAAQ,EAAC,SAFX;AAGE,IAAA,CAAC,EAAC,gDAHJ;AAIE,IAAA,IAAI,EAAC;AAJP,IATF,CANF,CADF;AAyBD,CA9BM","sourcesContent":["import * as React from \"react\";\nimport \"./PopperArrow.css\";\n\nexport interface PopperArrowProps {\n style?: React.CSSProperties;\n attributes?: React.HTMLAttributes<HTMLDivElement> | null;\n arrowClassName?: string;\n}\n\nexport const PopperArrow = ({\n style,\n attributes,\n arrowClassName,\n}: PopperArrowProps) => {\n return (\n <div\n style={style}\n {...attributes}\n vkuiClass=\"PopperArrow\"\n data-popper-arrow={true}\n >\n <svg\n vkuiClass=\"PopperArrow__in\"\n className={arrowClassName}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n );\n};\n"],"file":"PopperArrow.js"}
@@ -1,8 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { HoverPopperProps } from "../HoverPopper/HoverPopper";
3
3
  import "./RichTooltip.css";
4
- export declare type RichTooltipProps = Omit<HoverPopperProps, "arrowClassName">;
4
+ export interface RichTooltipProps extends Omit<HoverPopperProps, "arrowClassName"> {
5
+ /**
6
+ * Стиль отображения подсказки
7
+ */
8
+ appearance?: "accent" | "neutral" | "white" | "black" | "inversion";
9
+ }
5
10
  /**
6
11
  * @see https://vkcom.github.io/VKUI/#/RichTooltip
7
12
  */
8
- export declare const RichTooltip: ({ children, arrow, ...popperProps }: Pick<HoverPopperProps, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "content" | "offsetDistance" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "role" | "tabIndex" | "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" | "forcePortal" | "getRef" | "placement" | "arrow" | "onPlacementChange" | "sameWidth" | "offsetSkidding" | "customModifiers" | "onShownChange" | "shown" | "showDelay" | "hideDelay">) => JSX.Element;
13
+ export declare const RichTooltip: ({ children, arrow, appearance, ...popperProps }: RichTooltipProps) => JSX.Element;
@@ -1,12 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["children", "arrow"];
3
+ var _excluded = ["children", "arrow", "appearance"];
5
4
  import { createScopedElement } from "../../lib/jsxRuntime";
6
5
  import { HoverPopper } from "../HoverPopper/HoverPopper";
7
- import { getClassName } from "../../helpers/getClassName";
8
- import { usePlatform } from "../../hooks/usePlatform";
9
- import { useAppearance } from "../../hooks/useAppearance";
10
6
  import { classNames } from "../../lib/classNames";
11
7
  import { prefixClass } from "../../lib/prefixClass";
12
8
 
@@ -17,13 +13,12 @@ export var RichTooltip = function RichTooltip(_ref) {
17
13
  var children = _ref.children,
18
14
  _ref$arrow = _ref.arrow,
19
15
  arrow = _ref$arrow === void 0 ? true : _ref$arrow,
16
+ _ref$appearance = _ref.appearance,
17
+ appearance = _ref$appearance === void 0 ? "neutral" : _ref$appearance,
20
18
  popperProps = _objectWithoutProperties(_ref, _excluded);
21
19
 
22
- var platform = usePlatform();
23
- var appearance = useAppearance();
24
- return createScopedElement(HoverPopper // eslint-disable-next-line vkui/no-object-expression-in-arguments
25
- , _extends({
26
- vkuiClass: classNames(getClassName("RichTooltip", platform), _defineProperty({}, "RichTooltip--".concat(appearance), !!appearance)),
20
+ return createScopedElement(HoverPopper, _extends({
21
+ vkuiClass: classNames("RichTooltip", "RichTooltip--".concat(appearance)),
27
22
  arrow: arrow,
28
23
  arrowClassName: prefixClass("RichTooltip__arrow")
29
24
  }, popperProps), children);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/RichTooltip/RichTooltip.tsx"],"names":["HoverPopper","getClassName","usePlatform","useAppearance","classNames","prefixClass","RichTooltip","children","arrow","popperProps","platform","appearance"],"mappings":";;;;;AAAA,SAASA,WAAT;AACA,SAASC,YAAT;AACA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;;AAKA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAIH;AAAA,MAHtBC,QAGsB,QAHtBA,QAGsB;AAAA,wBAFtBC,KAEsB;AAAA,MAFtBA,KAEsB,2BAFd,IAEc;AAAA,MADnBC,WACmB;;AACtB,MAAMC,QAAQ,GAAGR,WAAW,EAA5B;AACA,MAAMS,UAAU,GAAGR,aAAa,EAAhC;AAEA,SACE,oBAAC,WAAD,CACE;AADF;AAEE,IAAA,SAAS,EAAEC,UAAU,CAACH,YAAY,CAAC,aAAD,EAAgBS,QAAhB,CAAb,6CACFC,UADE,GACa,CAAC,CAACA,UADf,EAFvB;AAKE,IAAA,KAAK,EAAEH,KALT;AAME,IAAA,cAAc,EAAEH,WAAW,CAAC,oBAAD;AAN7B,KAOMI,WAPN,GASGF,QATH,CADF;AAaD,CArBM","sourcesContent":["import { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useAppearance } from \"../../hooks/useAppearance\";\nimport { classNames } from \"../../lib/classNames\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./RichTooltip.css\";\n\nexport type RichTooltipProps = Omit<HoverPopperProps, \"arrowClassName\">;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RichTooltip\n */\nexport const RichTooltip = ({\n children,\n arrow = true,\n ...popperProps\n}: RichTooltipProps) => {\n const platform = usePlatform();\n const appearance = useAppearance();\n\n return (\n <HoverPopper\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"RichTooltip\", platform), {\n [`RichTooltip--${appearance}`]: !!appearance,\n })}\n arrow={arrow}\n arrowClassName={prefixClass(\"RichTooltip__arrow\")}\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"RichTooltip.js"}
1
+ {"version":3,"sources":["../../../src/components/RichTooltip/RichTooltip.tsx"],"names":["HoverPopper","classNames","prefixClass","RichTooltip","children","arrow","appearance","popperProps"],"mappings":";;;;AAAA,SAASA,WAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;;AAWA;AACA;AACA;AACA,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAc,OAKH;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,wBAHtBC,KAGsB;AAAA,MAHtBA,KAGsB,2BAHd,IAGc;AAAA,6BAFtBC,UAEsB;AAAA,MAFtBA,UAEsB,gCAFT,SAES;AAAA,MADnBC,WACmB;;AACtB,SACE,oBAAC,WAAD;AACE,IAAA,SAAS,EAAEN,UAAU,CAAC,aAAD,yBAAgCK,UAAhC,EADvB;AAEE,IAAA,KAAK,EAAED,KAFT;AAGE,IAAA,cAAc,EAAEH,WAAW,CAAC,oBAAD;AAH7B,KAIMK,WAJN,GAMGH,QANH,CADF;AAUD,CAhBM","sourcesContent":["import { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { classNames } from \"../../lib/classNames\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./RichTooltip.css\";\n\nexport interface RichTooltipProps\n extends Omit<HoverPopperProps, \"arrowClassName\"> {\n /**\n * Стиль отображения подсказки\n */\n appearance?: \"accent\" | \"neutral\" | \"white\" | \"black\" | \"inversion\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/RichTooltip\n */\nexport const RichTooltip = ({\n children,\n arrow = true,\n appearance = \"neutral\",\n ...popperProps\n}: RichTooltipProps) => {\n return (\n <HoverPopper\n vkuiClass={classNames(\"RichTooltip\", `RichTooltip--${appearance}`)}\n arrow={arrow}\n arrowClassName={prefixClass(\"RichTooltip__arrow\")}\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"RichTooltip.js"}
@@ -6,36 +6,26 @@ import { classNames } from "../../lib/classNames";
6
6
  import { getClassName } from "../../helpers/getClassName";
7
7
  import { Tappable } from "../Tappable/Tappable";
8
8
  import { Icon24Chevron } from "@vkontakte/icons";
9
- import { ANDROID, IOS } from "../../lib/platform";
9
+ import { IOS } from "../../lib/platform";
10
10
  import { usePlatform } from "../../hooks/usePlatform";
11
11
  import { hasReactNode } from "../../lib/utils";
12
12
  import { useAdaptivity } from "../../hooks/useAdaptivity";
13
13
  import { withAdaptivity, SizeType } from "../../hoc/withAdaptivity";
14
- import { Title } from "../Typography/Title/Title";
15
- import { Text } from "../Typography/Text/Text";
16
- import { Subhead } from "../Typography/Subhead/Subhead";
17
14
  import { Headline } from "../Typography/Headline/Headline";
15
+ import { Footnote } from "../Typography/Footnote/Footnote";
16
+ import { Caption } from "../Typography/Caption/Caption";
18
17
 
19
18
  var SimpleCellTypography = function SimpleCellTypography(props) {
20
19
  var _useAdaptivity = useAdaptivity(),
21
20
  sizeY = _useAdaptivity.sizeY;
22
21
 
23
- var platform = usePlatform();
24
-
25
22
  if (sizeY === SizeType.COMPACT) {
26
- return createScopedElement(Text, props);
27
- } else if (platform === ANDROID) {
28
- return createScopedElement(Headline, _extends({
29
- Component: "span",
30
- weight: "3"
31
- }, props));
32
- } else {
33
- return createScopedElement(Title, _extends({
34
- Component: "span",
35
- level: "3",
36
- weight: "3"
23
+ return createScopedElement(Caption, _extends({
24
+ level: "2"
37
25
  }, props));
38
26
  }
27
+
28
+ return createScopedElement(Footnote, props);
39
29
  };
40
30
 
41
31
  var SimpleCellComponent = function SimpleCellComponent(_ref) {
@@ -53,24 +43,24 @@ var SimpleCellComponent = function SimpleCellComponent(_ref) {
53
43
  var platform = usePlatform();
54
44
  var hasAfter = hasReactNode(after) || expandable && platform === IOS;
55
45
  return createScopedElement(Tappable, _extends({}, restProps, {
56
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
57
- vkuiClass: classNames(getClassName("SimpleCell", platform), {
58
- "SimpleCell--exp": expandable,
59
- "SimpleCell--mult": multiline
60
- }, "SimpleCell--sizeY-".concat(sizeY))
46
+ vkuiClass: classNames(getClassName("SimpleCell", platform), expandable && "SimpleCell--exp", multiline && "SimpleCell--mult", "SimpleCell--sizeY-".concat(sizeY))
61
47
  }), before, createScopedElement("div", {
62
48
  vkuiClass: "SimpleCell__main"
63
49
  }, createScopedElement("div", {
64
50
  vkuiClass: "SimpleCell__content"
65
- }, createScopedElement(SimpleCellTypography, {
66
- vkuiClass: "SimpleCell__children"
51
+ }, createScopedElement(Headline, {
52
+ Component: "span",
53
+ vkuiClass: "SimpleCell__children",
54
+ weight: "3"
67
55
  }, children), hasReactNode(badge) && createScopedElement("span", {
68
56
  vkuiClass: "SimpleCell__badge"
69
- }, badge)), description && createScopedElement(Subhead, {
70
- Component: "span",
71
- vkuiClass: "SimpleCell__description"
72
- }, description)), hasReactNode(indicator) && createScopedElement(SimpleCellTypography, {
57
+ }, badge)), description && createScopedElement("div", {
58
+ vkuiClass: "SimpleCell__content"
59
+ }, createScopedElement(SimpleCellTypography, {
60
+ vkuiClass: "SimpleCell__text SimpleCell__subtitle"
61
+ }, description))), hasReactNode(indicator) && createScopedElement(Headline, {
73
62
  Component: "span",
63
+ weight: "3",
74
64
  vkuiClass: "SimpleCell__indicator"
75
65
  }, indicator), hasAfter && createScopedElement("div", {
76
66
  vkuiClass: "SimpleCell__after"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","ANDROID","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Title","Text","Subhead","Headline","SimpleCellTypography","props","sizeY","platform","COMPACT","SimpleCellComponent","badge","before","indicator","children","after","description","expandable","multiline","restProps","hasAfter","SimpleCell","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { ANDROID, IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography = (props: SimpleCellTypographyProps) => {\n const { sizeY } = useAdaptivity();\n const platform = usePlatform();\n\n if (sizeY === SizeType.COMPACT) {\n return <Text {...props} />;\n } else if (platform === ANDROID) {\n return <Headline Component=\"span\" weight=\"3\" {...props} />;\n } else {\n return <Title Component=\"span\" level=\"3\" weight=\"3\" {...props} />;\n }\n};\n\nconst SimpleCellComponent = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n {\n \"SimpleCell--exp\": expandable,\n \"SimpleCell--mult\": multiline,\n },\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__children\">\n {children}\n </SimpleCellTypography>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <Subhead Component=\"span\" vkuiClass=\"SimpleCell__description\">\n {description}\n </Subhead>\n )}\n </div>\n {hasReactNode(indicator) && (\n <SimpleCellTypography\n Component=\"span\"\n vkuiClass=\"SimpleCell__indicator\"\n >\n {indicator}\n </SimpleCellTypography>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = withAdaptivity(SimpleCellComponent, { sizeY: true });\n\nSimpleCell.displayName = \"SimpleCell\";\n"],"file":"SimpleCell.js"}
1
+ {"version":3,"sources":["../../../src/components/SimpleCell/SimpleCell.tsx"],"names":["classNames","getClassName","Tappable","Icon24Chevron","IOS","usePlatform","hasReactNode","useAdaptivity","withAdaptivity","SizeType","Headline","Footnote","Caption","SimpleCellTypography","props","sizeY","COMPACT","SimpleCellComponent","badge","before","indicator","children","after","description","expandable","multiline","restProps","platform","hasAfter","SimpleCell","displayName"],"mappings":";;;;AAEA,SAASA,UAAT;AACA,SAASC,YAAT;AACA,SAAwBC,QAAxB;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,SAASC,GAAT;AACA,SAASC,WAAT;AACA,SAASC,YAAT;AACA,SAASC,aAAT;AACA,SAASC,cAAT,EAAyBC,QAAzB;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AACA,SAASC,OAAT;;AAwCA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACC,KAAD,EAAsC;AACjE,uBAAkBP,aAAa,EAA/B;AAAA,MAAQQ,KAAR,kBAAQA,KAAR;;AAEA,MAAIA,KAAK,KAAKN,QAAQ,CAACO,OAAvB,EAAgC;AAC9B,WAAO,oBAAC,OAAD;AAAS,MAAA,KAAK,EAAC;AAAf,OAAuBF,KAAvB,EAAP;AACD;;AAED,SAAO,oBAAC,QAAD,EAAcA,KAAd,CAAP;AACD,CARD;;AAUA,IAAMG,mBAAmB,GAAG,SAAtBA,mBAAsB,OAWL;AAAA,MAVrBC,KAUqB,QAVrBA,KAUqB;AAAA,MATrBC,MASqB,QATrBA,MASqB;AAAA,MARrBC,SAQqB,QARrBA,SAQqB;AAAA,MAPrBC,QAOqB,QAPrBA,QAOqB;AAAA,MANrBC,KAMqB,QANrBA,KAMqB;AAAA,MALrBC,WAKqB,QALrBA,WAKqB;AAAA,MAJrBC,UAIqB,QAJrBA,UAIqB;AAAA,MAHrBC,SAGqB,QAHrBA,SAGqB;AAAA,MAFrBV,KAEqB,QAFrBA,KAEqB;AAAA,MADlBW,SACkB;;AACrB,MAAMC,QAAQ,GAAGtB,WAAW,EAA5B;AACA,MAAMuB,QAAQ,GAAGtB,YAAY,CAACgB,KAAD,CAAZ,IAAwBE,UAAU,IAAIG,QAAQ,KAAKvB,GAApE;AAEA,SACE,oBAAC,QAAD,eACMsB,SADN;AAEE,IAAA,SAAS,EAAE1B,UAAU,CACnBC,YAAY,CAAC,YAAD,EAAe0B,QAAf,CADO,EAEnBH,UAAU,IAAI,iBAFK,EAGnBC,SAAS,IAAI,kBAHM,8BAIEV,KAJF;AAFvB,MASGI,MATH,EAUE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,QAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC,sBAFZ;AAGE,IAAA,MAAM,EAAC;AAHT,KAKGE,QALH,CADF,EAQGf,YAAY,CAACY,KAAD,CAAZ,IACC;AAAM,IAAA,SAAS,EAAC;AAAhB,KAAqCA,KAArC,CATJ,CADF,EAaGK,WAAW,IACV;AAAK,IAAA,SAAS,EAAC;AAAf,KACE,oBAAC,oBAAD;AAAsB,IAAA,SAAS,EAAC;AAAhC,KACGA,WADH,CADF,CAdJ,CAVF,EA+BGjB,YAAY,CAACc,SAAD,CAAZ,IACC,oBAAC,QAAD;AAAU,IAAA,SAAS,EAAC,MAApB;AAA2B,IAAA,MAAM,EAAC,GAAlC;AAAsC,IAAA,SAAS,EAAC;AAAhD,KACGA,SADH,CAhCJ,EAoCGQ,QAAQ,IACP;AAAK,IAAA,SAAS,EAAC;AAAf,KACGN,KADH,EAEGE,UAAU,IAAIG,QAAQ,KAAKvB,GAA3B,IAAkC,oBAAC,aAAD,OAFrC,CArCJ,CADF;AA6CD,CA5DD;AA8DA;AACA;AACA;;;AACA,OAAO,IAAMyB,UAAU,GAAGrB,cAAc,CAACS,mBAAD,EAAsB;AAAEF,EAAAA,KAAK,EAAE;AAAT,CAAtB,CAAjC;AAEPc,UAAU,CAACC,WAAX,GAAyB,YAAzB","sourcesContent":["import * as React from \"react\";\nimport { HasComponent } from \"../../types\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Icon24Chevron } from \"@vkontakte/icons\";\nimport { IOS } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { withAdaptivity, SizeType } from \"../../hoc/withAdaptivity\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./SimpleCell.css\";\n\nexport interface SimpleCellOwnProps extends HasComponent {\n /**\n * Иконка 28 или `<Avatar size={28|32|40|48|72} />`\n */\n before?: React.ReactNode;\n /**\n * Иконка 12 или `<Badge />`. Добавится справа от текста `children`.\n */\n badge?: React.ReactNode;\n /**\n * Контейнер для текста справа от `children`.\n */\n indicator?: React.ReactNode;\n /**\n * Иконка 24|28 или `<Switch />`. Располагается справа от `indicator`.\n */\n after?: React.ReactNode;\n /**\n * Контейнер для текста под `children`.\n */\n description?: React.ReactNode;\n /**\n * Убирает анимацию нажатия\n */\n disabled?: boolean;\n /**\n * В iOS добавляет chevron справа. Передавать `true`, если предполагается переход при клике по ячейке.\n */\n expandable?: boolean;\n multiline?: boolean;\n}\n\nexport interface SimpleCellProps extends SimpleCellOwnProps, TappableProps {}\n\ntype SimpleCellTypographyProps = React.HTMLAttributes<HTMLDivElement> &\n HasComponent;\n\nconst SimpleCellTypography = (props: SimpleCellTypographyProps) => {\n const { sizeY } = useAdaptivity();\n\n if (sizeY === SizeType.COMPACT) {\n return <Caption level=\"2\" {...props} />;\n }\n\n return <Footnote {...props} />;\n};\n\nconst SimpleCellComponent = ({\n badge,\n before,\n indicator,\n children,\n after,\n description,\n expandable,\n multiline,\n sizeY,\n ...restProps\n}: SimpleCellProps) => {\n const platform = usePlatform();\n const hasAfter = hasReactNode(after) || (expandable && platform === IOS);\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n getClassName(\"SimpleCell\", platform),\n expandable && \"SimpleCell--exp\",\n multiline && \"SimpleCell--mult\",\n `SimpleCell--sizeY-${sizeY}`\n )}\n >\n {before}\n <div vkuiClass=\"SimpleCell__main\">\n <div vkuiClass=\"SimpleCell__content\">\n <Headline\n Component=\"span\"\n vkuiClass=\"SimpleCell__children\"\n weight=\"3\"\n >\n {children}\n </Headline>\n {hasReactNode(badge) && (\n <span vkuiClass=\"SimpleCell__badge\">{badge}</span>\n )}\n </div>\n {description && (\n <div vkuiClass=\"SimpleCell__content\">\n <SimpleCellTypography vkuiClass=\"SimpleCell__text SimpleCell__subtitle\">\n {description}\n </SimpleCellTypography>\n </div>\n )}\n </div>\n {hasReactNode(indicator) && (\n <Headline Component=\"span\" weight=\"3\" vkuiClass=\"SimpleCell__indicator\">\n {indicator}\n </Headline>\n )}\n {hasAfter && (\n <div vkuiClass=\"SimpleCell__after\">\n {after}\n {expandable && platform === IOS && <Icon24Chevron />}\n </div>\n )}\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/SimpleCell\n */\nexport const SimpleCell = withAdaptivity(SimpleCellComponent, { sizeY: true });\n\nSimpleCell.displayName = \"SimpleCell\";\n"],"file":"SimpleCell.js"}