@vkontakte/vkui 4.34.1 → 4.35.1

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 (565) hide show
  1. package/.browserslistrc +5 -0
  2. package/.cache/.eslintcache +1 -1
  3. package/.cache/.stylelintcache +1 -1
  4. package/.cache/.tsbuildinfo +256 -229
  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/Textarea/Textarea.d.ts +3 -0
  21. package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +18 -1
  22. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +3 -3
  23. package/.cache/ts/src/components/View/View.d.ts +2 -18
  24. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  25. package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +5 -1
  26. package/.cache/ts/src/tokenized/index.d.ts +26 -0
  27. package/.eslintrc.json +14 -4
  28. package/dist/cjs/components/AppRoot/AppRoot.js +1 -0
  29. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  30. package/dist/cjs/components/Button/Button.js +6 -4
  31. package/dist/cjs/components/Button/Button.js.map +1 -1
  32. package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
  33. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  34. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +1 -0
  35. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  36. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +7 -1
  37. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  38. package/dist/cjs/components/CustomSelect/CustomSelect.js +477 -554
  39. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  40. package/dist/cjs/components/Dropdown/Dropdown.js +147 -26
  41. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  42. package/dist/cjs/components/Epic/Epic.js +1 -6
  43. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  44. package/dist/cjs/components/FocusTrap/FocusTrap.js +9 -10
  45. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  46. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
  47. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  48. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -0
  49. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  50. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +1 -1
  51. package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  52. package/dist/cjs/components/Input/Input.js +1 -0
  53. package/dist/cjs/components/Input/Input.js.map +1 -1
  54. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  55. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  56. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -0
  57. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  58. package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -0
  59. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  60. package/dist/cjs/components/Panel/Panel.js +1 -0
  61. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  62. package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
  63. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  64. package/dist/cjs/components/Popper/Popper.js +16 -22
  65. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  66. package/dist/cjs/components/PopperArrow/PopperArrow.js +40 -0
  67. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -0
  68. package/dist/cjs/components/Radio/Radio.js +1 -0
  69. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  70. package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -0
  71. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  72. package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
  73. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  74. package/dist/cjs/components/Select/Select.js +1 -0
  75. package/dist/cjs/components/Select/Select.js.map +1 -1
  76. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -0
  77. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  78. package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -31
  79. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  80. package/dist/cjs/components/Snackbar/Snackbar.js +7 -11
  81. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  82. package/dist/cjs/components/SplitCol/SplitCol.js +7 -1
  83. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  84. package/dist/cjs/components/SplitLayout/SplitLayout.js +5 -8
  85. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  86. package/dist/cjs/components/Tabbar/Tabbar.js +15 -14
  87. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  88. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -10
  89. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  90. package/dist/cjs/components/Tabs/Tabs.js +23 -5
  91. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  92. package/dist/cjs/components/TabsItem/TabsItem.js +39 -22
  93. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  94. package/dist/cjs/components/TextTooltip/TextTooltip.js +6 -9
  95. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  96. package/dist/cjs/components/Textarea/Textarea.js +5 -4
  97. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  98. package/dist/cjs/components/Tooltip/Tooltip.js +94 -71
  99. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  100. package/dist/cjs/components/Typography/Headline/Headline.js +11 -2
  101. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  102. package/dist/cjs/components/View/View.js +388 -453
  103. package/dist/cjs/components/View/View.js.map +1 -1
  104. package/dist/cjs/components/WriteBar/WriteBar.js +12 -5
  105. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  106. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -8
  107. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  108. package/dist/cjs/hooks/useOrientationChange.js +2 -1
  109. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  110. package/dist/cjs/tokenized/index.js +104 -0
  111. package/dist/cjs/tokenized/index.js.map +1 -1
  112. package/dist/components/AppRoot/AppRoot.js +1 -0
  113. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  114. package/dist/components/Button/Button.js +6 -4
  115. package/dist/components/Button/Button.js.map +1 -1
  116. package/dist/components/CardScroll/CardScroll.js +3 -1
  117. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  118. package/dist/components/ChipsSelect/ChipsSelect.js +1 -0
  119. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  120. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  121. package/dist/components/ConfigProvider/ConfigProviderContext.js +3 -0
  122. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  123. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  124. package/dist/components/CustomSelect/CustomSelect.js +473 -580
  125. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  126. package/dist/components/Dropdown/Dropdown.d.ts +46 -5
  127. package/dist/components/Dropdown/Dropdown.js +137 -27
  128. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  129. package/dist/components/Epic/Epic.js +1 -4
  130. package/dist/components/Epic/Epic.js.map +1 -1
  131. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  132. package/dist/components/FocusTrap/FocusTrap.js +9 -9
  133. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  134. package/dist/components/HorizontalCell/HorizontalCell.js +3 -5
  135. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  136. package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -0
  137. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  138. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +2 -2
  139. package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  140. package/dist/components/Input/Input.js +1 -0
  141. package/dist/components/Input/Input.js.map +1 -1
  142. package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
  143. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  144. package/dist/components/ModalCardBase/ModalCardBase.js +1 -0
  145. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  146. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  147. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  148. package/dist/components/NativeSelect/NativeSelect.js +1 -0
  149. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  150. package/dist/components/Panel/Panel.js +1 -0
  151. package/dist/components/Panel/Panel.js.map +1 -1
  152. package/dist/components/PanelHeader/PanelHeader.js +1 -0
  153. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  154. package/dist/components/Popper/Popper.d.ts +18 -1
  155. package/dist/components/Popper/Popper.js +15 -22
  156. package/dist/components/Popper/Popper.js.map +1 -1
  157. package/dist/components/PopperArrow/PopperArrow.d.ts +8 -0
  158. package/dist/components/PopperArrow/PopperArrow.js +27 -0
  159. package/dist/components/PopperArrow/PopperArrow.js.map +1 -0
  160. package/dist/components/Radio/Radio.js +1 -0
  161. package/dist/components/Radio/Radio.js.map +1 -1
  162. package/dist/components/RangeSlider/UniversalSlider.js +1 -0
  163. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  164. package/dist/components/RichTooltip/RichTooltip.d.ts +7 -2
  165. package/dist/components/RichTooltip/RichTooltip.js +5 -10
  166. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  167. package/dist/components/Select/Select.js +1 -0
  168. package/dist/components/Select/Select.js.map +1 -1
  169. package/dist/components/SelectMimicry/SelectMimicry.js +1 -0
  170. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  171. package/dist/components/SimpleCell/SimpleCell.js +19 -28
  172. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  173. package/dist/components/Snackbar/Snackbar.d.ts +5 -1
  174. package/dist/components/Snackbar/Snackbar.js +8 -11
  175. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  176. package/dist/components/SplitCol/SplitCol.d.ts +1 -0
  177. package/dist/components/SplitCol/SplitCol.js +3 -0
  178. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  179. package/dist/components/SplitLayout/SplitLayout.js +4 -7
  180. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  181. package/dist/components/Tabbar/Tabbar.d.ts +8 -1
  182. package/dist/components/Tabbar/Tabbar.js +15 -14
  183. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  184. package/dist/components/TabbarItem/TabbarItem.js +7 -9
  185. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  186. package/dist/components/Tabs/Tabs.d.ts +13 -2
  187. package/dist/components/Tabs/Tabs.js +23 -5
  188. package/dist/components/Tabs/Tabs.js.map +1 -1
  189. package/dist/components/TabsItem/TabsItem.d.ts +22 -1
  190. package/dist/components/TabsItem/TabsItem.js +40 -21
  191. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  192. package/dist/components/TextTooltip/TextTooltip.d.ts +5 -1
  193. package/dist/components/TextTooltip/TextTooltip.js +5 -7
  194. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  195. package/dist/components/Textarea/Textarea.d.ts +3 -0
  196. package/dist/components/Textarea/Textarea.js +5 -4
  197. package/dist/components/Textarea/Textarea.js.map +1 -1
  198. package/dist/components/Tooltip/Tooltip.d.ts +18 -1
  199. package/dist/components/Tooltip/Tooltip.js +89 -68
  200. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  201. package/dist/components/Typography/Headline/Headline.d.ts +3 -3
  202. package/dist/components/Typography/Headline/Headline.js +10 -2
  203. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  204. package/dist/components/View/View.d.ts +2 -18
  205. package/dist/components/View/View.js +384 -462
  206. package/dist/components/View/View.js.map +1 -1
  207. package/dist/components/View/ViewInfinite.d.ts +1 -1
  208. package/dist/components/WriteBar/WriteBar.d.ts +5 -1
  209. package/dist/components/WriteBar/WriteBar.js +10 -5
  210. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  211. package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -6
  212. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  213. package/dist/components.css +143 -127
  214. package/dist/components.css.map +1 -1
  215. package/dist/cssm/components/ActionSheet/ActionSheet.css +1 -1
  216. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  217. package/dist/cssm/components/Alert/Alert.css +1 -1
  218. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  219. package/dist/cssm/components/AppRoot/AppRoot.js +1 -0
  220. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  221. package/dist/cssm/components/Avatar/Avatar.css +3 -5
  222. package/dist/cssm/components/Badge/Badge.css +3 -3
  223. package/dist/cssm/components/Banner/Banner.css +5 -5
  224. package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
  225. package/dist/cssm/components/Button/Button.css +53 -35
  226. package/dist/cssm/components/Button/Button.js +6 -4
  227. package/dist/cssm/components/Button/Button.js.map +1 -1
  228. package/dist/cssm/components/Calendar/Calendar.css +1 -1
  229. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
  230. package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
  231. package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
  232. package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
  233. package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
  234. package/dist/cssm/components/Card/Card.css +5 -6
  235. package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
  236. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  237. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  238. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  239. package/dist/cssm/components/Cell/Cell.css +3 -3
  240. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  241. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  242. package/dist/cssm/components/CellButton/CellButton.css +1 -1
  243. package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
  244. package/dist/cssm/components/Chip/Chip.css +1 -1
  245. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  246. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  247. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +1 -0
  248. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  249. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  250. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +3 -0
  251. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  252. package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
  253. package/dist/cssm/components/Counter/Counter.css +31 -31
  254. package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
  255. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  256. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  257. package/dist/cssm/components/CustomSelect/CustomSelect.js +473 -580
  258. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  259. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -3
  260. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -3
  261. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  262. package/dist/cssm/components/DatePicker/DatePicker.css +1 -1
  263. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  264. package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
  265. package/dist/cssm/components/Dropdown/Dropdown.d.ts +46 -5
  266. package/dist/cssm/components/Dropdown/Dropdown.js +137 -27
  267. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  268. package/dist/cssm/components/Epic/Epic.css +1 -1
  269. package/dist/cssm/components/Epic/Epic.js +1 -4
  270. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  271. package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
  272. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  273. package/dist/cssm/components/FocusTrap/FocusTrap.js +9 -9
  274. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  275. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  276. package/dist/cssm/components/Footer/Footer.css +1 -1
  277. package/dist/cssm/components/FormField/FormField.css +9 -9
  278. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  279. package/dist/cssm/components/FormLayout/FormLayout.css +1 -1
  280. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  281. package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
  282. package/dist/cssm/components/Gradient/Gradient.css +1 -1
  283. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
  284. package/dist/cssm/components/Group/Group.css +1 -1
  285. package/dist/cssm/components/Header/Header.css +1 -1
  286. package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
  287. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -5
  288. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  289. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
  290. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -0
  291. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  292. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
  293. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +2 -2
  294. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
  295. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  296. package/dist/cssm/components/InfoRow/InfoRow.css +1 -1
  297. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
  298. package/dist/cssm/components/Input/Input.css +1 -1
  299. package/dist/cssm/components/Input/Input.js +1 -0
  300. package/dist/cssm/components/Input/Input.js.map +1 -1
  301. package/dist/cssm/components/InputLike/InputLike.css +1 -1
  302. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
  303. package/dist/cssm/components/Link/Link.css +1 -1
  304. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
  305. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
  306. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  307. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  308. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -3
  309. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -0
  310. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  311. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  312. package/dist/cssm/components/ModalPage/ModalPage.css +1 -1
  313. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  314. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  315. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +1 -1
  316. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  317. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -0
  318. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  319. package/dist/cssm/components/Pagination/Pagination.css +1 -1
  320. package/dist/cssm/components/Panel/Panel.css +1 -1
  321. package/dist/cssm/components/Panel/Panel.js +1 -0
  322. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  323. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  324. package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
  325. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  326. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  327. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  328. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  329. package/dist/cssm/components/Placeholder/Placeholder.css +3 -3
  330. package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
  331. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
  332. package/dist/cssm/components/Popper/Popper.css +1 -1
  333. package/dist/cssm/components/Popper/Popper.d.ts +18 -1
  334. package/dist/cssm/components/Popper/Popper.js +15 -22
  335. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  336. package/dist/cssm/components/PopperArrow/PopperArrow.css +1 -0
  337. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +8 -0
  338. package/dist/cssm/components/PopperArrow/PopperArrow.js +28 -0
  339. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -0
  340. package/dist/cssm/components/Progress/Progress.css +1 -1
  341. package/dist/cssm/components/PromoBanner/PromoBanner.css +1 -1
  342. package/dist/cssm/components/PullToRefresh/PullToRefresh.css +3 -3
  343. package/dist/cssm/components/Radio/Radio.css +1 -1
  344. package/dist/cssm/components/Radio/Radio.js +1 -0
  345. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  346. package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
  347. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -0
  348. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  349. package/dist/cssm/components/Removable/Removable.css +1 -1
  350. package/dist/cssm/components/RichCell/RichCell.css +3 -3
  351. package/dist/cssm/components/RichTooltip/RichTooltip.css +3 -1
  352. package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +7 -2
  353. package/dist/cssm/components/RichTooltip/RichTooltip.js +5 -10
  354. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  355. package/dist/cssm/components/Root/Root.css +1 -1
  356. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
  357. package/dist/cssm/components/Search/Search.css +1 -1
  358. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
  359. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  360. package/dist/cssm/components/Select/Select.css +1 -1
  361. package/dist/cssm/components/Select/Select.js +1 -0
  362. package/dist/cssm/components/Select/Select.js.map +1 -1
  363. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -0
  364. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  365. package/dist/cssm/components/Separator/Separator.css +1 -1
  366. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  367. package/dist/cssm/components/SimpleCell/SimpleCell.js +19 -28
  368. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  369. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -1
  370. package/dist/cssm/components/Slider/Slider.css +3 -3
  371. package/dist/cssm/components/SliderSwitch/SliderSwitch.css +1 -1
  372. package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
  373. package/dist/cssm/components/Snackbar/Snackbar.d.ts +5 -1
  374. package/dist/cssm/components/Snackbar/Snackbar.js +8 -11
  375. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  376. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  377. package/dist/cssm/components/Spinner/Spinner.css +1 -1
  378. package/dist/cssm/components/SplitCol/SplitCol.css +1 -1
  379. package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -0
  380. package/dist/cssm/components/SplitCol/SplitCol.js +3 -0
  381. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  382. package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
  383. package/dist/cssm/components/SplitLayout/SplitLayout.js +4 -7
  384. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  385. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  386. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  387. package/dist/cssm/components/Switch/Switch.css +3 -3
  388. package/dist/cssm/components/Tabbar/Tabbar.css +5 -3
  389. package/dist/cssm/components/Tabbar/Tabbar.d.ts +8 -1
  390. package/dist/cssm/components/Tabbar/Tabbar.js +15 -14
  391. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  392. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  393. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -9
  394. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  395. package/dist/cssm/components/Tabs/Tabs.css +1 -1
  396. package/dist/cssm/components/Tabs/Tabs.d.ts +13 -2
  397. package/dist/cssm/components/Tabs/Tabs.js +23 -5
  398. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  399. package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
  400. package/dist/cssm/components/TabsItem/TabsItem.d.ts +22 -1
  401. package/dist/cssm/components/TabsItem/TabsItem.js +40 -21
  402. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  403. package/dist/cssm/components/Tappable/Tappable.css +5 -5
  404. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -1
  405. package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +5 -1
  406. package/dist/cssm/components/TextTooltip/TextTooltip.js +5 -7
  407. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  408. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  409. package/dist/cssm/components/Textarea/Textarea.d.ts +3 -0
  410. package/dist/cssm/components/Textarea/Textarea.js +5 -4
  411. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  412. package/dist/cssm/components/Tooltip/Tooltip.css +1 -1
  413. package/dist/cssm/components/Tooltip/Tooltip.d.ts +18 -1
  414. package/dist/cssm/components/Tooltip/Tooltip.js +89 -68
  415. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  416. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  417. package/dist/cssm/components/Typography/Footnote/Footnote.css +1 -1
  418. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  419. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -3
  420. package/dist/cssm/components/Typography/Headline/Headline.js +10 -2
  421. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  422. package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
  423. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  424. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  425. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  426. package/dist/cssm/components/UsersStack/UsersStack.css +5 -5
  427. package/dist/cssm/components/View/View.css +1 -1
  428. package/dist/cssm/components/View/View.d.ts +2 -18
  429. package/dist/cssm/components/View/View.js +384 -462
  430. package/dist/cssm/components/View/View.js.map +1 -1
  431. package/dist/cssm/components/View/ViewIOS.css +1 -1
  432. package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
  433. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -1
  434. package/dist/cssm/components/WriteBar/WriteBar.css +3 -1
  435. package/dist/cssm/components/WriteBar/WriteBar.d.ts +5 -1
  436. package/dist/cssm/components/WriteBar/WriteBar.js +10 -5
  437. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  438. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.css +1 -1
  439. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -6
  440. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  441. package/dist/cssm/fonts/fonts.css +1 -1
  442. package/dist/cssm/hooks/useOrientationChange.js +2 -1
  443. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  444. package/dist/cssm/lib/calendar.d.ts +2 -2
  445. package/dist/cssm/styles/animations.css +1 -1
  446. package/dist/cssm/styles/bright_light.css +1 -1
  447. package/dist/cssm/styles/common.css +1 -1
  448. package/dist/cssm/styles/components.css +143 -127
  449. package/dist/cssm/styles/constants.css +3 -10
  450. package/dist/cssm/styles/space_gray.css +1 -1
  451. package/dist/cssm/styles/themes.css +1 -16
  452. package/dist/cssm/styles/unstable.css +3 -1
  453. package/dist/cssm/styles/vkcom_dark.css +1 -6
  454. package/dist/cssm/styles/vkcom_light.css +1 -11
  455. package/dist/cssm/tokenized/index.d.ts +26 -0
  456. package/dist/cssm/tokenized/index.js +13 -0
  457. package/dist/cssm/tokenized/index.js.map +1 -1
  458. package/dist/default_scheme.css +1 -1
  459. package/dist/default_scheme.css.map +1 -1
  460. package/dist/fonts.css +1 -1
  461. package/dist/fonts.css.map +1 -1
  462. package/dist/hooks/useOrientationChange.js +2 -1
  463. package/dist/hooks/useOrientationChange.js.map +1 -1
  464. package/dist/lib/calendar.d.ts +2 -2
  465. package/dist/tokenized/index.d.ts +26 -0
  466. package/dist/tokenized/index.js +13 -0
  467. package/dist/tokenized/index.js.map +1 -1
  468. package/dist/unstable.css +3 -1
  469. package/dist/unstable.css.map +1 -1
  470. package/dist/vkui.css +144 -143
  471. package/dist/vkui.css.map +1 -1
  472. package/package.json +6 -5
  473. package/src/components/AppRoot/AppRoot.tsx +2 -0
  474. package/src/components/Badge/Badge.css +0 -5
  475. package/src/components/Button/Button.css +0 -4
  476. package/src/components/Button/Button.tsx +4 -2
  477. package/src/components/Button/Readme.md +30 -59
  478. package/src/components/CardScroll/CardScroll.tsx +1 -1
  479. package/src/components/Cell/Cell.css +3 -2
  480. package/src/components/ChipsInput/ChipsInput.css +2 -0
  481. package/src/components/ChipsSelect/ChipsSelect.tsx +2 -0
  482. package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
  483. package/src/components/Counter/Counter.css +30 -0
  484. package/src/components/CustomScrollView/CustomScrollView.css +10 -5
  485. package/src/components/CustomSelect/CustomSelect.tsx +543 -574
  486. package/src/components/Dropdown/Dropdown.css +12 -0
  487. package/src/components/Dropdown/Dropdown.tsx +174 -20
  488. package/src/components/Dropdown/Readme.md +1 -0
  489. package/src/components/Epic/Epic.tsx +1 -4
  490. package/src/components/FixedLayout/Readme.md +103 -109
  491. package/src/components/FocusTrap/FocusTrap.tsx +10 -10
  492. package/src/components/Group/Group.css +1 -1
  493. package/src/components/Group/Readme.md +1 -1
  494. package/src/components/HorizontalCell/HorizontalCell.css +25 -43
  495. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -9
  496. package/src/components/HorizontalScroll/HorizontalScroll.css +23 -0
  497. package/src/components/HorizontalScroll/HorizontalScroll.tsx +2 -0
  498. package/src/components/HorizontalScroll/HorizontalScrollArrow.tsx +2 -2
  499. package/src/components/Input/Input.css +2 -0
  500. package/src/components/Input/Input.tsx +2 -0
  501. package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
  502. package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
  503. package/src/components/ModalCardBase/ModalCardBase.tsx +2 -0
  504. package/src/components/NativeSelect/NativeSelect.tsx +2 -0
  505. package/src/components/Panel/Panel.tsx +2 -0
  506. package/src/components/PanelHeader/PanelHeader.tsx +2 -0
  507. package/src/components/Popper/Popper.css +0 -35
  508. package/src/components/Popper/Popper.tsx +33 -25
  509. package/src/components/PopperArrow/PopperArrow.css +34 -0
  510. package/src/components/PopperArrow/PopperArrow.tsx +40 -0
  511. package/src/components/Radio/Radio.tsx +2 -0
  512. package/src/components/RangeSlider/UniversalSlider.tsx +2 -0
  513. package/src/components/RichTooltip/RichTooltip.css +44 -4
  514. package/src/components/RichTooltip/RichTooltip.tsx +9 -11
  515. package/src/components/Select/Select.tsx +2 -0
  516. package/src/components/SelectMimicry/SelectMimicry.tsx +2 -0
  517. package/src/components/SimpleCell/Readme.md +115 -129
  518. package/src/components/SimpleCell/SimpleCell.css +30 -68
  519. package/src/components/SimpleCell/SimpleCell.tsx +23 -25
  520. package/src/components/Snackbar/Readme.md +95 -123
  521. package/src/components/Snackbar/Snackbar.css +18 -27
  522. package/src/components/Snackbar/Snackbar.tsx +17 -11
  523. package/src/components/SplitCol/SplitCol.tsx +2 -0
  524. package/src/components/SplitLayout/SplitLayout.css +3 -7
  525. package/src/components/SplitLayout/SplitLayout.tsx +9 -6
  526. package/src/components/Switch/Switch.css +6 -2
  527. package/src/components/Tabbar/Tabbar.css +4 -1
  528. package/src/components/Tabbar/Tabbar.tsx +23 -12
  529. package/src/components/TabbarItem/TabbarItem.css +7 -5
  530. package/src/components/TabbarItem/TabbarItem.tsx +13 -7
  531. package/src/components/Tabs/Readme.md +191 -251
  532. package/src/components/Tabs/Tabs.css +27 -80
  533. package/src/components/Tabs/Tabs.tsx +45 -7
  534. package/src/components/TabsItem/Readme.md +1 -0
  535. package/src/components/TabsItem/TabsItem.css +191 -106
  536. package/src/components/TabsItem/TabsItem.tsx +72 -20
  537. package/src/components/TextTooltip/TextTooltip.css +41 -11
  538. package/src/components/TextTooltip/TextTooltip.tsx +9 -13
  539. package/src/components/Textarea/Textarea.css +2 -0
  540. package/src/components/Textarea/Textarea.tsx +5 -4
  541. package/src/components/Tooltip/Readme.md +128 -101
  542. package/src/components/Tooltip/Tooltip.css +29 -40
  543. package/src/components/Tooltip/Tooltip.tsx +98 -66
  544. package/src/components/Typography/Headline/Headline.tsx +15 -1
  545. package/src/components/View/Readme.md +2 -0
  546. package/src/components/View/View.tsx +451 -514
  547. package/src/components/WriteBar/WriteBar.css +27 -33
  548. package/src/components/WriteBar/WriteBar.tsx +16 -5
  549. package/src/components/WriteBarIcon/WriteBarIcon.css +6 -19
  550. package/src/components/WriteBarIcon/WriteBarIcon.tsx +6 -6
  551. package/src/hooks/useOrientationChange.ts +1 -0
  552. package/src/styles/components.css +1 -0
  553. package/src/styles/constants.css +8 -0
  554. package/src/tokenized/index.ts +39 -0
  555. package/tsconfig.json +1 -1
  556. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +0 -21
  557. package/dist/cjs/components/ClickPopper/ClickPopper.js +0 -96
  558. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +0 -1
  559. package/dist/components/ClickPopper/ClickPopper.d.ts +0 -21
  560. package/dist/components/ClickPopper/ClickPopper.js +0 -71
  561. package/dist/components/ClickPopper/ClickPopper.js.map +0 -1
  562. package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +0 -21
  563. package/dist/cssm/components/ClickPopper/ClickPopper.js +0 -71
  564. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +0 -1
  565. package/src/components/ClickPopper/ClickPopper.tsx +0 -86
@@ -16,6 +16,8 @@ export { CardScroll } from "../components/CardScroll/CardScroll";
16
16
  export type { CardScrollProps } from "../components/CardScroll/CardScroll";
17
17
  export { Group } from "../components/Group/Group";
18
18
  export type { GroupProps } from "../components/Group/Group";
19
+ export { WriteBar } from "../components/WriteBar/WriteBar";
20
+ export type { WriteBarProps } from "../components/WriteBar/WriteBar";
19
21
  export { Cell } from "../components/Cell/Cell";
20
22
  export type { CellProps } from "../components/Cell/Cell";
21
23
  export { GridAvatar } from "../components/GridAvatar/GridAvatar";
@@ -26,6 +28,8 @@ export { IconButton } from "../components/IconButton/IconButton";
26
28
  export type { IconButtonProps } from "../components/IconButton/IconButton";
27
29
  export { InitialsAvatar } from "../components/InitialsAvatar/InitialsAvatar";
28
30
  export type { InitialsAvatarProps } from "../components/InitialsAvatar/InitialsAvatar";
31
+ export { Epic } from "../components/Epic/Epic";
32
+ export type { EpicProps } from "../components/Epic/Epic";
29
33
  export { InfoRow } from "../components/InfoRow/InfoRow";
30
34
  export type { InfoRowProps } from "../components/InfoRow/InfoRow";
31
35
  export { ModalCardBase } from "../components/ModalCardBase/ModalCardBase";
@@ -34,10 +38,16 @@ export { ModalCard } from "../components/ModalCard/ModalCard";
34
38
  export type { ModalCardProps } from "../components/ModalCard/ModalCard";
35
39
  export { Link } from "../components/Link/Link";
36
40
  export type { LinkProps } from "../components/Link/Link";
41
+ export { SimpleCell } from "../components/SimpleCell/SimpleCell";
42
+ export type { SimpleCellProps } from "../components/SimpleCell/SimpleCell";
37
43
  export { ButtonGroup } from "../components/ButtonGroup/ButtonGroup";
38
44
  export type { ButtonGroupProps } from "../components/ButtonGroup/ButtonGroup";
39
45
  export { Switch } from "../components/Switch/Switch";
40
46
  export type { SwitchProps } from "../components/Switch/Switch";
47
+ export { Tabs } from "../components/Tabs/Tabs";
48
+ export type { TabsProps } from "../components/Tabs/Tabs";
49
+ export { TabsItem } from "../components/TabsItem/TabsItem";
50
+ export type { TabsItemProps } from "../components/TabsItem/TabsItem";
41
51
  export { Footnote } from "../components/Typography/Footnote/Footnote";
42
52
  export type { FootnoteProps } from "../components/Typography/Footnote/Footnote";
43
53
  export { Radio } from "../components/Radio/Radio";
@@ -52,6 +62,12 @@ export { Tappable } from "../components/Tappable/Tappable";
52
62
  export type { TappableProps } from "../components/Tappable/Tappable";
53
63
  export { Textarea } from "../components/Textarea/Textarea";
54
64
  export type { TextareaProps } from "../components/Textarea/Textarea";
65
+ export { Tooltip } from "../components/Tooltip/Tooltip";
66
+ export type { TooltipProps } from "../components/Tooltip/Tooltip";
67
+ export { TextTooltip } from "../components/TextTooltip/TextTooltip";
68
+ export type { TextTooltipProps } from "../components/TextTooltip/TextTooltip";
69
+ export { RichTooltip } from "../components/RichTooltip/RichTooltip";
70
+ export type { RichTooltipProps } from "../components/RichTooltip/RichTooltip";
55
71
  export { Title } from "../components/Typography/Title/Title";
56
72
  export type { TitleProps } from "../components/Typography/Title/Title";
57
73
  export { Subhead } from "../components/Typography/Subhead/Subhead";
@@ -100,6 +116,8 @@ export { Select } from "../components/Select/Select";
100
116
  export type { SelectProps } from "../components/Select/Select";
101
117
  export { View } from "../components/View/View";
102
118
  export type { ViewProps } from "../components/View/View";
119
+ export { HorizontalCell } from "../components/HorizontalCell/HorizontalCell";
120
+ export type { HorizontalCellProps } from "../components/HorizontalCell/HorizontalCell";
103
121
  export { Spinner } from "../components/Spinner/Spinner";
104
122
  export type { SpinnerProps } from "../components/Spinner/Spinner";
105
123
  export { ContentCard } from "../components/ContentCard/ContentCard";
@@ -122,6 +140,8 @@ export { ChipsSelect } from "../components/ChipsSelect/ChipsSelect";
122
140
  export type { ChipsSelectProps } from "../components/ChipsSelect/ChipsSelect";
123
141
  export { Spacing } from "../components/Spacing/Spacing";
124
142
  export type { SpacingProps } from "../components/Spacing/Spacing";
143
+ export { SplitLayout } from "../components/SplitLayout/SplitLayout";
144
+ export type { SplitLayoutProps } from "../components/SplitLayout/SplitLayout";
125
145
  export { SplitCol } from "../components/SplitCol/SplitCol";
126
146
  export type { SplitColProps } from "../components/SplitCol/SplitCol";
127
147
  export { Root } from "../components/Root/Root";
@@ -134,6 +154,8 @@ export { Banner } from "../components/Banner/Banner";
134
154
  export type { BannerProps } from "../components/Banner/Banner";
135
155
  export { FixedLayout } from "../components/FixedLayout/FixedLayout";
136
156
  export type { FixedLayoutProps } from "../components/FixedLayout/FixedLayout";
157
+ export { Snackbar } from "../components/Snackbar/Snackbar";
158
+ export type { SnackbarProps } from "../components/Snackbar/Snackbar";
137
159
  export { Counter } from "../components/Counter/Counter";
138
160
  export type { CounterProps } from "../components/Counter/Counter";
139
161
  export { Progress } from "../components/Progress/Progress";
@@ -150,5 +172,9 @@ export { DateRangeInput } from "../components/DateRangeInput/DateRangeInput";
150
172
  export type { DateRangeInputProps } from "../components/DateRangeInput/DateRangeInput";
151
173
  export { Footer } from "../components/Footer/Footer";
152
174
  export type { FooterProps } from "../components/Footer/Footer";
175
+ export { WriteBarIcon } from "../components/WriteBarIcon/WriteBarIcon";
176
+ export type { WriteBarIconProps } from "../components/WriteBarIcon/WriteBarIcon";
153
177
  export { Tabbar } from "../components/Tabbar/Tabbar";
154
178
  export type { TabbarProps } from "../components/Tabbar/Tabbar";
179
+ export { TabbarItem } from "../components/TabbarItem/TabbarItem";
180
+ export type { TabbarItemProps } from "../components/TabbarItem/TabbarItem";
package/.eslintrc.json CHANGED
@@ -2,9 +2,8 @@
2
2
  "extends": [
3
3
  "@vkontakte/eslint-config/typescript/react",
4
4
  "prettier",
5
- "prettier/react",
6
- "prettier/@typescript-eslint",
7
- "plugin:react-hooks/recommended"
5
+ "plugin:react-hooks/recommended",
6
+ "plugin:compat/recommended"
8
7
  ],
9
8
  "parserOptions": {
10
9
  "project": "./tsconfig.json",
@@ -16,6 +15,15 @@
16
15
  "spread": true
17
16
  }
18
17
  },
18
+ "settings": {
19
+ "lintAllEsApis": true,
20
+ "polyfills": [
21
+ "Array.includes",
22
+ "Array.find",
23
+ "String.padStart",
24
+ "Intl" // Отсутствует. Не поддерживается в iOS Safari 9, Calendar должен использоваться только на desktop
25
+ ]
26
+ },
19
27
  "globals": {
20
28
  "Element": true
21
29
  },
@@ -128,7 +136,8 @@
128
136
  {
129
137
  "onlyForFunctionsWithNames": ["classNames", "classNamesString"]
130
138
  }
131
- ]
139
+ ],
140
+ "compat/compat": "error"
132
141
  },
133
142
  "overrides": [
134
143
  {
@@ -143,6 +152,7 @@
143
152
  "rules": {
144
153
  "no-restricted-properties": "off",
145
154
  "no-restricted-globals": "off",
155
+ "compat/compat": "off",
146
156
  "react/display-name": "off"
147
157
  }
148
158
  },
@@ -232,4 +232,5 @@ var AppRoot = (0, _withAdaptivity.withAdaptivity)(function (_ref) {
232
232
  hasMouse: true
233
233
  });
234
234
  exports.AppRoot = AppRoot;
235
+ AppRoot.displayName = "AppRoot";
235
236
  //# sourceMappingURL=AppRoot.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","React","useRef","useState","setPortalRoot","document","insets","useContext","ConfigProviderContext","appearance","classScopingMode","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","appRoot","keyboardInput"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n"],"file":"AppRoot.js"}
1
+ {"version":3,"sources":["../../../../src/components/AppRoot/AppRoot.tsx"],"names":["warn","AppRoot","children","_mode","mode","_embedded","embedded","sizeX","hasMouse","noLegacyClasses","scroll","portalRoot","portalRootProp","disablePortal","props","isKeyboardInputActive","rootRef","React","useRef","useState","setPortalRoot","document","insets","useContext","ConfigProviderContext","appearance","classScopingMode","noConflict","process","env","NODE_ENV","portal","current","createElement","classList","add","body","appendChild","parentElement","removeChild","noop","parent","classes","concat","remove","documentElement","undefined","key","hasOwnProperty","inset","style","setProperty","removeProperty","SizeType","REGULAR","container","ScrollController","useMemo","ElementScrollController","GlobalScrollController","content","appRoot","keyboardInput","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AAIA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;AA0BA,IAAMA,IAAI,GAAG,wBAAS,SAAT,CAAb;AAEA;AACA;AACA;;AACO,IAAMC,OAAO,GAAG,oCACrB,gBAWM;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATEC,KASF,QATJC,IASI;AAAA,MARMC,SAQN,QARJC,QAQI;AAAA,MAPJC,KAOI,QAPJA,KAOI;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,kCALJC,eAKI;AAAA,MALJA,eAKI,qCALc,KAKd;AAAA,yBAJJC,MAII;AAAA,MAJJA,MAII,4BAJK,QAIL;AAAA,6BAHJC,UAGI;AAAA,MAHQC,cAGR,gCAHyB,IAGzB;AAAA,MAFJC,aAEI,QAFJA,aAEI;AAAA,MADDC,KACC;AACJ;AACA,MAAMV,IAAI,GAAGD,KAAK,KAAKE,SAAS,GAAG,UAAH,GAAgB,MAA9B,CAAlB;AACA,MAAMU,qBAAqB,GAAG,uDAA9B;AACA,MAAMC,OAAO,GAAGC,KAAK,CAACC,MAAN,CAAoC,IAApC,CAAhB;;AACA,wBAAoCD,KAAK,CAACE,QAAN,CAClC,IADkC,CAApC;AAAA;AAAA,MAAOR,UAAP;AAAA,MAAmBS,aAAnB;;AAGA,gBAAqB,kBAArB;AAAA,MAAQC,QAAR,WAAQA,QAAR;;AACA,MAAMC,MAAM,GAAG,2BAAf;;AACA,0BAAuBL,KAAK,CAACM,UAAN,CAAiBC,4CAAjB,CAAvB;AAAA,MAAQC,UAAR,qBAAQA,UAAR;;AAEAC,qCAAiBC,UAAjB,GAA8BlB,eAA9B;;AAEA,MAAImB,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C,QAAIpB,MAAM,KAAK,QAAX,IAAuBN,IAAI,KAAK,UAApC,EAAgD;AAC9CJ,MAAAA,IAAI,qEACkBU,MADlB,wLAEF,OAFE,CAAJ;AAID;;AACD,QAAIP,KAAK,IAAIE,SAAb,EAAwB;AACtBL,MAAAA,IAAI,mEAAmBI,IAAnB,kHAAJ;AACD;AACF,GAxBG,CA0BJ;;;AACA,4DAA0B,YAAM;AAC9B,QAAI2B,MAA6B,GAAG,IAApC;;AACA,QAAInB,cAAJ,EAAoB;AAClB,UAAI,8BAAYA,cAAZ,CAAJ,EAAiC;AAC/BmB,QAAAA,MAAM,GAAGnB,cAAc,CAACoB,OAAxB;AACD,OAFD,MAEO;AACLD,QAAAA,MAAM,GAAGnB,cAAT;AACD;AACF;;AACD,QAAI,CAACmB,MAAL,EAAa;AACXA,MAAAA,MAAM,GAAGV,QAAQ,CAAEY,aAAV,CAAwB,KAAxB,CAAT;AACAF,MAAAA,MAAM,CAACG,SAAP,CAAiBC,GAAjB,CAAqB,mBAArB;AACAd,MAAAA,QAAQ,CAAEe,IAAV,CAAeC,WAAf,CAA2BN,MAA3B;AACD;;AACDX,IAAAA,aAAa,CAACW,MAAD,CAAb;AACA,WAAO,YAAM;AAAA;;AACX,iBAAAA,MAAM,UAAN,mEAAQO,aAAR,gFAAuBC,WAAvB,CAAmCR,MAAnC;AACD,KAFD;AAGD,GAlBD,EAkBG,CAACnB,cAAD,CAlBH,EA3BI,CA+CJ;;AACA,4DAA0B,YAAM;AAAA;;AAC9B,QAAIR,IAAI,KAAK,SAAb,EAAwB;AACtB,aAAOoC,WAAP;AACD;;AAED,QAAMC,MAAM,uBAAGzB,OAAO,CAACgB,OAAX,qDAAG,iBAAiBM,aAAhC;AACA,QAAMI,OAAO,GAAG,CAAC,YAAD,EAAeC,MAAf,CACdvC,IAAI,KAAK,UAAT,GAAsB,sBAAtB,GAA+C,EADjC,CAAhB;AAGAqC,IAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,iCAAAA,MAAM,CAAEP,SAAR,EAAkBC,GAAlB,2DAAyBO,OAAzB;AAEA,WAAO,YAAM;AAAA;;AACXD,MAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,kCAAAA,MAAM,CAAEP,SAAR,EAAkBU,MAAlB,4DAA4BF,OAA5B;AACD,KAFD;AAGD,GAdD,EAcG,EAdH;AAgBA,4DAA0B,YAAM;AAC9B,QAAItC,IAAI,KAAK,MAAb,EAAqB;AACnBiB,MAAAA,QAAQ,CAAEwB,eAAV,CAA0BX,SAA1B,CAAoCC,GAApC,CAAwC,MAAxC;AAEA,aAAO,YAAM;AACXd,QAAAA,QAAQ,CAAEwB,eAAV,CAA0BX,SAA1B,CAAoCU,MAApC,CAA2C,MAA3C;AACD,OAFD;AAGD;;AAED,WAAOE,SAAP;AACD,GAVD,EAUG,CAACzB,QAAD,EAAWjB,IAAX,CAVH,EAhEI,CA4EJ;;AACA,4DAA0B,YAAM;AAAA;;AAC9B,QAAIA,IAAI,KAAK,SAAT,IAAsB,uBAACY,OAAO,CAACgB,OAAT,8CAAC,kBAAiBM,aAAlB,CAA1B,EAA2D;AACzD,aAAOE,WAAP;AACD;;AAED,QAAMC,MAAM,GAAGzB,OAAO,CAACgB,OAAR,CAAgBM,aAA/B;;AAEA,SAAK,IAAMS,GAAX,IAAkBzB,MAAlB,EAA0B;AACxB,UACEA,MAAM,CAAC0B,cAAP,CAAsBD,GAAtB,KACA,OAAOzB,MAAM,CAACyB,GAAD,CAAb,KAAuC,QAFzC,EAGE;AACA,YAAME,KAAK,GAAG3B,MAAM,CAACyB,GAAD,CAApB;AACAN,QAAAA,MAAM,CAACS,KAAP,CAAaC,WAAb,6BAA8CJ,GAA9C,aAAwDE,KAAxD;AACAtC,QAAAA,UAAU,IACRA,UAAU,CAACuC,KAAX,CAAiBC,WAAjB,6BACuBJ,GADvB,aAEKE,KAFL,QADF;AAKD;AACF;;AAED,WAAO,YAAM;AACX,WAAK,IAAMF,IAAX,IAAkBzB,MAAlB,EAA0B;AACxB,YAAIA,MAAM,CAAC0B,cAAP,CAAsBD,IAAtB,CAAJ,EAAgC;AAC9BN,UAAAA,MAAM,CAACS,KAAP,CAAaE,cAAb,6BAAiDL,IAAjD;AACApC,UAAAA,UAAU,IACRA,UAAU,CAACuC,KAAX,CAAiBE,cAAjB,6BAAqDL,IAArD,EADF;AAED;AACF;AACF,KARD;AASD,GA/BD,EA+BG,CAACzB,MAAD,EAASX,UAAT,CA/BH,EA7EI,CA8GJ;;AACA,4DAA0B,YAAM;AAAA;;AAC9B,QAAIP,IAAI,KAAK,SAAT,IAAsBG,KAAK,KAAK8C,yBAASC,OAA7C,EAAsD;AACpD,aAAOd,WAAP;AACD;;AACD,QAAMe,SAAS,GACbnD,IAAI,KAAK,UAAT,wBAAsBY,OAAO,CAACgB,OAA9B,sDAAsB,kBAAiBM,aAAvC,GAAuDjB,QAAQ,CAAEe,IADnE;AAEAmB,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAErB,SAAX,CAAqBC,GAArB,CAAyB,qBAAzB;AACA,WAAO;AAAA,aAAMoB,SAAN,aAAMA,SAAN,uBAAMA,SAAS,CAAErB,SAAX,CAAqBU,MAArB,CAA4B,qBAA5B,CAAN;AAAA,KAAP;AACD,GARD,EAQG,CAACrC,KAAD,CARH;AAUA,4DAA0B,YAAM;AAC9B,QAAIH,IAAI,KAAK,MAAT,IAAmBqB,UAAU,KAAKqB,SAAtC,EAAiD;AAC/C,aAAON,WAAP;AACD;;AACDnB,IAAAA,QAAQ,CAAEwB,eAAV,CAA0BK,KAA1B,CAAgCC,WAAhC,CAA4C,cAA5C,EAA4D1B,UAA5D;AAEA,WAAO;AAAA,aACLJ,QAAQ,CAAEwB,eAAV,CAA0BK,KAA1B,CAAgCE,cAAhC,CAA+C,cAA/C,CADK;AAAA,KAAP;AAED,GARD,EAQG,CAAC3B,UAAD,CARH;AAUA,MAAM+B,gBAAgB,GAAGvC,KAAK,CAACwC,OAAN,CACvB;AAAA,WACE/C,MAAM,KAAK,SAAX,GAAuBgD,sCAAvB,GAAiDC,qCADnD;AAAA,GADuB,EAGvB,CAACjD,MAAD,CAHuB,CAAzB;AAMA,MAAMkD,OAAO,GACX,qCAAC,8BAAD,CAAgB,QAAhB;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,OAAO,EAAE7C,OADJ;AAELL,MAAAA,UAAU,EAAVA,UAFK;AAGLL,MAAAA,QAAQ,EAAEF,IAAI,KAAK,UAHd;AAIL0D,MAAAA,aAAa,EAAE/C,qBAJV;AAKLX,MAAAA,IAAI,EAAJA,IALK;AAMLS,MAAAA,aAAa,EAAbA;AANK;AADT,KAUE,qCAAC,gBAAD;AAAkB,IAAA,KAAK,EAAEG;AAAzB,KACE,qCAAC,2BAAD;AACE,IAAA,WAAW,EAAC,MADd;AAEE,IAAA,aAAa,EAAE,CAACP;AAFlB,KAIGP,QAJH,CADF,CAVF,CADF;AAsBA,SAAOE,IAAI,KAAK,SAAT,GACLwD,OADK,GAGL;AACE,IAAA,GAAG,EAAE5C,OADP,CAEE;AAFF;AAGE,IAAA,SAAS,EAAE,4BAAW,SAAX,EAAsB;AAC/B,2BAAqB,CAACR;AADS,KAAtB;AAHb,KAMMM,KANN,GAQG8C,OARH,CAHF;AAcD,CAzLoB,EA0LrB;AACErD,EAAAA,KAAK,EAAE,IADT;AAEEC,EAAAA,QAAQ,EAAE;AAFZ,CA1LqB,CAAhB;;AAgMPP,OAAO,CAAC8D,WAAR,GAAsB,SAAtB","sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { AppRootContext } from \"./AppRootContext\";\nimport {\n withAdaptivity,\n SizeType,\n AdaptivityProps,\n} from \"../../hoc/withAdaptivity\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { classScopingMode } from \"../../lib/classScopingMode\";\nimport { IconSettingsProvider } from \"@vkontakte/icons\";\nimport {\n ElementScrollController,\n GlobalScrollController,\n} from \"./ScrollContext\";\nimport { noop } from \"../../lib/utils\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { useKeyboardInputTracker } from \"../../hooks/useKeyboardInputTracker\";\nimport { useInsets } from \"../../hooks/useInsets\";\nimport { Insets } from \"@vkontakte/vk-bridge\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { isRefObject } from \"../../lib/isRefObject\";\nimport \"./AppRoot.css\";\n\n// Используйте classList, но будьте осторожны\n/* eslint-disable no-restricted-properties */\n\nexport interface AppRootProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AdaptivityProps, \"sizeX\" | \"hasMouse\"> {\n /** @deprecated Use mode=\"embedded\" */\n embedded?: boolean;\n /** Режим встраивания */\n mode?: \"partial\" | \"embedded\" | \"full\";\n window?: Window;\n /** Убирает классы без префикса (.Button) */\n noLegacyClasses?: boolean;\n scroll?: \"global\" | \"contain\";\n /** Элемент используемый в качестве root для порталов\n * При передаче своего элемента необходимо задать ему class=\"vkui__portal-root\" и добавить в DOM\n */\n // TODO: v5.0.0 изменить тип на HTMLElement\n portalRoot?: HTMLDivElement | React.RefObject<HTMLDivElement> | null;\n /** Disable portal for components */\n disablePortal?: boolean;\n}\n\nconst warn = warnOnce(\"AppRoot\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/AppRoot\n */\nexport const AppRoot = withAdaptivity<AppRootProps>(\n ({\n children,\n mode: _mode,\n embedded: _embedded,\n sizeX,\n hasMouse,\n noLegacyClasses = false,\n scroll = \"global\",\n portalRoot: portalRootProp = null,\n disablePortal,\n ...props\n }) => {\n // normalize mode\n const mode = _mode || (_embedded ? \"embedded\" : \"full\");\n const isKeyboardInputActive = useKeyboardInputTracker();\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const [portalRoot, setPortalRoot] = React.useState<HTMLDivElement | null>(\n null\n );\n const { document } = useDOM();\n const insets = useInsets();\n const { appearance } = React.useContext(ConfigProviderContext);\n\n classScopingMode.noConflict = noLegacyClasses;\n\n if (process.env.NODE_ENV === \"development\") {\n if (scroll !== \"global\" && mode !== \"embedded\") {\n warn(\n `Свойство scroll=\"${scroll}\" поддерживается только в режиме embedded`,\n \"error\"\n );\n }\n if (_mode && _embedded) {\n warn(`Свойство mode=\"${mode}\" приоритетнее, чем \"embedded\"`);\n }\n }\n\n // setup portal\n useIsomorphicLayoutEffect(() => {\n let portal: HTMLDivElement | null = null;\n if (portalRootProp) {\n if (isRefObject(portalRootProp)) {\n portal = portalRootProp.current;\n } else {\n portal = portalRootProp;\n }\n }\n if (!portal) {\n portal = document!.createElement(\"div\");\n portal.classList.add(\"vkui__portal-root\");\n document!.body.appendChild(portal);\n }\n setPortalRoot(portal);\n return () => {\n portal?.parentElement?.removeChild(portal);\n };\n }, [portalRootProp]);\n\n // setup root classes\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\") {\n return noop;\n }\n\n const parent = rootRef.current?.parentElement;\n const classes = [\"vkui__root\"].concat(\n mode === \"embedded\" ? \"vkui__root--embedded\" : []\n );\n parent?.classList.add(...classes);\n\n return () => {\n parent?.classList.remove(...classes);\n };\n }, []);\n\n useIsomorphicLayoutEffect(() => {\n if (mode === \"full\") {\n document!.documentElement.classList.add(\"vkui\");\n\n return () => {\n document!.documentElement.classList.remove(\"vkui\");\n };\n }\n\n return undefined;\n }, [document, mode]);\n\n // setup insets\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || !rootRef.current?.parentElement) {\n return noop;\n }\n\n const parent = rootRef.current.parentElement;\n\n for (const key in insets) {\n if (\n insets.hasOwnProperty(key) &&\n typeof insets[key as keyof Insets] === \"number\"\n ) {\n const inset = insets[key as keyof Insets];\n parent.style.setProperty(`--safe-area-inset-${key}`, `${inset}px`);\n portalRoot &&\n portalRoot.style.setProperty(\n `--safe-area-inset-${key}`,\n `${inset}px`\n );\n }\n }\n\n return () => {\n for (const key in insets) {\n if (insets.hasOwnProperty(key)) {\n parent.style.removeProperty(`--safe-area-inset-${key}`);\n portalRoot &&\n portalRoot.style.removeProperty(`--safe-area-inset-${key}`);\n }\n }\n };\n }, [insets, portalRoot]);\n\n // adaptivity handler\n useIsomorphicLayoutEffect(() => {\n if (mode === \"partial\" || sizeX !== SizeType.REGULAR) {\n return noop;\n }\n const container =\n mode === \"embedded\" ? rootRef.current?.parentElement : document!.body;\n container?.classList.add(\"vkui--sizeX-regular\");\n return () => container?.classList.remove(\"vkui--sizeX-regular\");\n }, [sizeX]);\n\n useIsomorphicLayoutEffect(() => {\n if (mode !== \"full\" || appearance === undefined) {\n return noop;\n }\n document!.documentElement.style.setProperty(\"color-scheme\", appearance);\n\n return () =>\n document!.documentElement.style.removeProperty(\"color-scheme\");\n }, [appearance]);\n\n const ScrollController = React.useMemo(\n () =>\n scroll === \"contain\" ? ElementScrollController : GlobalScrollController,\n [scroll]\n );\n\n const content = (\n <AppRootContext.Provider\n value={{\n appRoot: rootRef,\n portalRoot,\n embedded: mode === \"embedded\",\n keyboardInput: isKeyboardInputActive,\n mode,\n disablePortal,\n }}\n >\n <ScrollController elRef={rootRef}>\n <IconSettingsProvider\n classPrefix=\"vkui\"\n globalClasses={!noLegacyClasses}\n >\n {children}\n </IconSettingsProvider>\n </ScrollController>\n </AppRootContext.Provider>\n );\n\n return mode === \"partial\" ? (\n content\n ) : (\n <div\n ref={rootRef}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\"AppRoot\", {\n \"AppRoot--no-mouse\": !hasMouse,\n })}\n {...props}\n >\n {content}\n </div>\n );\n },\n {\n sizeX: true,\n hasMouse: true,\n }\n);\n\nAppRoot.displayName = \"AppRoot\";\n"],"file":"AppRoot.js"}
@@ -182,15 +182,16 @@ var ButtonComponent = function ButtonComponent(_ref2) {
182
182
  resolvedAppearance = _resolveButtonAppeara.resolvedAppearance;
183
183
 
184
184
  var hasNewTokens = React.useContext(_ConfigProviderContext.ConfigProviderContext).hasNewTokens;
185
- return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({}, restProps, {
185
+ return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({
186
+ hoverMode: hasNewTokens ? "Button--hover" : "background",
187
+ activeMode: hasNewTokens ? "Button--active" : "opacity"
188
+ }, restProps, {
186
189
  Component: restProps.href ? "a" : Component,
187
190
  onClick: loading ? undefined : onClick,
188
191
  focusVisibleMode: "outside",
189
192
  stopPropagation: stopPropagation,
190
193
  vkuiClass: (0, _classNames.classNames)("Button", "Button--sz-".concat(size), "Button--lvl-".concat(resolvedMode), "Button--clr-".concat(resolvedAppearance), "Button--aln-".concat(align), "Button--sizeY-".concat(sizeY), stretched && "Button--stretched", hasIcons && "Button--with-icon", hasIconOnly && "Button--singleIcon", loading && "Button--loading"),
191
- getRootRef: getRootRef,
192
- hoverMode: hasNewTokens ? "Button--hover" : "background",
193
- activeMode: hasNewTokens ? "Button--active" : "opacity"
194
+ getRootRef: getRootRef
194
195
  }), loading && (0, _jsxRuntime.createScopedElement)(_Spinner.Spinner, {
195
196
  size: "small",
196
197
  vkuiClass: "Button__spinner"
@@ -219,4 +220,5 @@ var Button = (0, _withAdaptivity.withAdaptivity)(ButtonComponent, {
219
220
  sizeY: true
220
221
  });
221
222
  exports.Button = Button;
223
+ Button.displayName = "Button";
222
224
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["ButtonTypography","size","sizeY","platform","restProps","isCompact","SizeType","COMPACT","ANDROID","VKCOM","IOS","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","ButtonComponent","stretched","align","children","before","after","getRootRef","Component","loading","onClick","stopPropagation","hasIcons","Boolean","hasIconOnly","hasNewTokens","React","useContext","ConfigProviderContext","href","Button"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography = ({\n size,\n sizeY,\n platform,\n ...restProps\n}: ButtonTypographyProps) => {\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"2\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"2\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead weight={platform === VKCOM ? \"3\" : \"2\"} {...restProps} />\n );\n }\n\n return <Text weight=\"2\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"2\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption weight=\"2\" {...restProps} />;\n }\n\n return <Subhead weight=\"2\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst ButtonComponent = ({\n size = \"s\",\n mode = \"primary\",\n appearance,\n stretched = false,\n align = \"center\",\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n stopPropagation = true,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const hasIcons = Boolean(before || after);\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n stopPropagation={stopPropagation}\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n stretched && \"Button--stretched\",\n hasIcons && \"Button--with-icon\",\n hasIconOnly && \"Button--singleIcon\",\n loading && \"Button--loading\"\n )}\n getRootRef={getRootRef}\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && (\n <span vkuiClass=\"Button__before\" role=\"presentation\">\n {before}\n </span>\n )}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && (\n <span vkuiClass=\"Button__after\" role=\"presentation\">\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = withAdaptivity(ButtonComponent, {\n sizeY: true,\n});\n"],"file":"Button.js"}
1
+ {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"names":["ButtonTypography","size","sizeY","platform","restProps","isCompact","SizeType","COMPACT","ANDROID","VKCOM","IOS","resolveButtonAppearance","appearance","mode","resolvedAppearance","resolvedMode","undefined","ButtonComponent","stretched","align","children","before","after","getRootRef","Component","loading","onClick","stopPropagation","hasIcons","Boolean","hasIconOnly","hasNewTokens","React","useContext","ConfigProviderContext","href","Button","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { ConfigProviderContext } from \"../ConfigProvider/ConfigProviderContext\";\nimport { TappableProps, Tappable } from \"../Tappable/Tappable\";\nimport { Title } from \"../Typography/Title/Title\";\nimport { Text } from \"../Typography/Text/Text\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { HasAlign, HasComponent } from \"../../types\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n AdaptivityProps,\n SizeType,\n withAdaptivity,\n} from \"../../hoc/withAdaptivity\";\nimport { PlatformType, IOS, VKCOM, ANDROID } from \"../../lib/platform\";\nimport { Spinner } from \"../Spinner/Spinner\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport \"./Button.css\";\n\nexport interface VKUIButtonProps extends HasAlign {\n /**\n Значения `commerce`, `destructive`, `overlay_...` будут упразднены в 5.0.0\n */\n mode?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"outline\"\n | \"commerce\"\n | \"destructive\"\n | \"overlay_primary\"\n | \"overlay_secondary\"\n | \"overlay_outline\";\n appearance?: \"accent\" | \"positive\" | \"negative\" | \"neutral\" | \"overlay\";\n size?: \"s\" | \"m\" | \"l\";\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n}\n\nexport interface ButtonProps\n extends Omit<TappableProps, \"size\">,\n VKUIButtonProps {}\n\ninterface ButtonTypographyProps extends HasComponent {\n size: ButtonProps[\"size\"];\n platform: PlatformType | undefined;\n sizeY: AdaptivityProps[\"sizeY\"];\n children?: ButtonProps[\"children\"];\n}\n\nconst ButtonTypography = ({\n size,\n sizeY,\n platform,\n ...restProps\n}: ButtonTypographyProps) => {\n const isCompact = sizeY === SizeType.COMPACT;\n\n switch (size) {\n case \"l\":\n if (isCompact) {\n return <Text weight=\"2\" {...restProps} />;\n }\n if (platform === ANDROID) {\n return <Headline weight=\"2\" {...restProps} />;\n }\n return <Title level=\"3\" weight=\"2\" {...restProps} />;\n case \"m\":\n if (isCompact) {\n return (\n <Subhead weight={platform === VKCOM ? \"3\" : \"2\"} {...restProps} />\n );\n }\n\n return <Text weight=\"2\" {...restProps} />;\n case \"s\":\n default:\n if (platform === IOS) {\n return <Subhead weight=\"2\" {...restProps} />;\n }\n\n if (platform === VKCOM) {\n return <Caption {...restProps} />;\n }\n\n if (isCompact) {\n return <Caption weight=\"2\" {...restProps} />;\n }\n\n return <Subhead weight=\"2\" {...restProps} />;\n }\n};\n\ninterface ResolvedButtonAppearance {\n resolvedAppearance: ButtonProps[\"appearance\"];\n resolvedMode: ButtonProps[\"mode\"];\n}\n\nfunction resolveButtonAppearance(\n appearance: ButtonProps[\"appearance\"],\n mode: ButtonProps[\"mode\"]\n): ResolvedButtonAppearance {\n let resolvedAppearance: ButtonProps[\"appearance\"] = appearance;\n let resolvedMode: ButtonProps[\"mode\"] = mode;\n\n if (appearance === undefined) {\n switch (mode) {\n case \"tertiary\":\n case \"secondary\":\n case \"primary\":\n case \"outline\":\n resolvedAppearance = \"accent\";\n break;\n case \"commerce\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"positive\";\n break;\n case \"destructive\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"negative\";\n break;\n case \"overlay_primary\":\n resolvedMode = \"primary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_secondary\":\n resolvedMode = \"secondary\";\n resolvedAppearance = \"overlay\";\n break;\n case \"overlay_outline\":\n resolvedMode = \"outline\";\n resolvedAppearance = \"overlay\";\n break;\n }\n }\n\n return {\n resolvedAppearance,\n resolvedMode,\n };\n}\n\nconst ButtonComponent = ({\n size = \"s\",\n mode = \"primary\",\n appearance,\n stretched = false,\n align = \"center\",\n children,\n before,\n after,\n getRootRef,\n sizeY,\n Component = \"button\",\n loading,\n onClick,\n stopPropagation = true,\n ...restProps\n}: ButtonProps) => {\n const platform = usePlatform();\n const hasIcons = Boolean(before || after);\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { resolvedMode, resolvedAppearance } = resolveButtonAppearance(\n appearance,\n mode\n );\n const hasNewTokens = React.useContext(ConfigProviderContext).hasNewTokens;\n\n return (\n <Tappable\n hoverMode={hasNewTokens ? \"Button--hover\" : \"background\"}\n activeMode={hasNewTokens ? \"Button--active\" : \"opacity\"}\n {...restProps}\n Component={restProps.href ? \"a\" : Component}\n onClick={loading ? undefined : onClick}\n focusVisibleMode=\"outside\"\n stopPropagation={stopPropagation}\n vkuiClass={classNames(\n \"Button\",\n `Button--sz-${size}`,\n `Button--lvl-${resolvedMode}`,\n `Button--clr-${resolvedAppearance}`,\n `Button--aln-${align}`,\n `Button--sizeY-${sizeY}`,\n stretched && \"Button--stretched\",\n hasIcons && \"Button--with-icon\",\n hasIconOnly && \"Button--singleIcon\",\n loading && \"Button--loading\"\n )}\n getRootRef={getRootRef}\n >\n {loading && <Spinner size=\"small\" vkuiClass=\"Button__spinner\" />}\n <span vkuiClass=\"Button__in\">\n {before && (\n <span vkuiClass=\"Button__before\" role=\"presentation\">\n {before}\n </span>\n )}\n {children && (\n <ButtonTypography\n size={size}\n sizeY={sizeY}\n platform={platform}\n vkuiClass=\"Button__content\"\n Component=\"span\"\n >\n {children}\n </ButtonTypography>\n )}\n {after && (\n <span vkuiClass=\"Button__after\" role=\"presentation\">\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = withAdaptivity(ButtonComponent, {\n sizeY: true,\n});\n\nButton.displayName = \"Button\";\n"],"file":"Button.js"}
@@ -15,6 +15,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
15
15
 
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
 
18
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
+
18
20
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
21
 
20
22
  var React = _interopRequireWildcard(require("react"));
@@ -62,7 +64,7 @@ var CardScroll = function CardScroll(_ref) {
62
64
  }
63
65
 
64
66
  var containerWidth = refContainer.current.offsetWidth;
65
- var slideIndex = Array.from(refContainer.current.children).findIndex(function (el) {
67
+ var slideIndex = (0, _toConsumableArray2.default)(refContainer.current.children).findIndex(function (el) {
66
68
  return el.offsetLeft + el.offsetWidth + parseInt(window.getComputedStyle(el).marginRight) - offset >= 0;
67
69
  });
68
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["CardScroll","children","size","showArrows","withSpaces","restProps","platform","sizeX","refContainer","React","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","Array","from","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","prototype","find","call"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n HorizontalScroll,\n HorizontalScrollProps,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./CardScroll.css\";\n\nexport interface CardScrollProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: \"s\" | \"m\" | \"l\" | false;\n showArrows?: HorizontalScrollProps[\"showArrows\"];\n withSpaces?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CardScroll\n */\nexport const CardScroll = ({\n children,\n size = \"s\",\n showArrows = true,\n withSpaces = true,\n ...restProps\n}: CardScrollProps) => {\n const platform = usePlatform();\n const { sizeX } = useAdaptivity();\n\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = (\n Array.from(refContainer.current.children) as HTMLElement[]\n ).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft -\n (containerWidth - slide.offsetWidth) +\n gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) =>\n el.offsetLeft + el.offsetWidth - offset > containerWidth\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"CardScroll\", platform),\n `CardScroll--sizeX-${sizeX}`,\n `CardScroll--${size}`,\n { [\"CardScroll--withSpaces\"]: withSpaces }\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n >\n <div vkuiClass=\"CardScroll__in\" ref={refContainer}>\n <span vkuiClass=\"CardScroll__gap\" ref={gapRef} />\n {children}\n <span vkuiClass=\"CardScroll__gap\" />\n </div>\n </HorizontalScroll>\n </div>\n );\n};\n"],"file":"CardScroll.js"}
1
+ {"version":3,"sources":["../../../../src/components/CardScroll/CardScroll.tsx"],"names":["CardScroll","children","size","showArrows","withSpaces","restProps","platform","sizeX","refContainer","React","useRef","gapRef","window","getScrollToLeft","offset","current","containerWidth","offsetWidth","slideIndex","findIndex","el","offsetLeft","parseInt","getComputedStyle","marginRight","slide","scrollTo","getScrollToRight","Array","prototype","find","call"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport {\n HorizontalScroll,\n HorizontalScrollProps,\n} from \"../HorizontalScroll/HorizontalScroll\";\nimport { useDOM } from \"../../lib/dom\";\nimport \"./CardScroll.css\";\n\nexport interface CardScrollProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * При `size=false` ширина `Card` будет регулироваться контентом внутри. В остальных случаях — будет явно задана в процентах.\n */\n size?: \"s\" | \"m\" | \"l\" | false;\n showArrows?: HorizontalScrollProps[\"showArrows\"];\n withSpaces?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CardScroll\n */\nexport const CardScroll = ({\n children,\n size = \"s\",\n showArrows = true,\n withSpaces = true,\n ...restProps\n}: CardScrollProps) => {\n const platform = usePlatform();\n const { sizeX } = useAdaptivity();\n\n const refContainer = React.useRef<HTMLDivElement>(null);\n const gapRef = React.useRef<HTMLDivElement>(null);\n\n const { window } = useDOM();\n\n function getScrollToLeft(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n const containerWidth = refContainer.current.offsetWidth;\n const slideIndex = (\n [...refContainer.current.children] as HTMLElement[]\n ).findIndex(\n (el: HTMLElement) =>\n el.offsetLeft +\n el.offsetWidth +\n parseInt(window!.getComputedStyle(el).marginRight) -\n offset >=\n 0\n );\n\n if (slideIndex === -1) {\n return offset;\n }\n\n if (slideIndex === 0) {\n return 0;\n }\n\n const slide = refContainer.current.children[slideIndex] as HTMLElement;\n\n const scrollTo =\n slide.offsetLeft -\n (containerWidth - slide.offsetWidth) +\n gapRef.current.offsetWidth;\n\n if (scrollTo <= 2 * gapRef.current.offsetWidth) {\n return 0;\n }\n\n return scrollTo;\n }\n\n function getScrollToRight(offset: number): number {\n if (!refContainer.current || !gapRef.current) {\n return offset;\n }\n\n const containerWidth = refContainer.current.offsetWidth;\n const slide = Array.prototype.find.call(\n refContainer.current.children,\n (el: HTMLElement) =>\n el.offsetLeft + el.offsetWidth - offset > containerWidth\n ) as HTMLElement;\n\n if (!slide) {\n return offset;\n }\n\n return slide.offsetLeft - gapRef.current.offsetWidth;\n }\n\n return (\n <div\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(\n getClassName(\"CardScroll\", platform),\n `CardScroll--sizeX-${sizeX}`,\n `CardScroll--${size}`,\n { [\"CardScroll--withSpaces\"]: withSpaces }\n )}\n >\n <HorizontalScroll\n getScrollToLeft={getScrollToLeft}\n getScrollToRight={getScrollToRight}\n showArrows={showArrows}\n >\n <div vkuiClass=\"CardScroll__in\" ref={refContainer}>\n <span vkuiClass=\"CardScroll__gap\" ref={gapRef} />\n {children}\n <span vkuiClass=\"CardScroll__gap\" />\n </div>\n </HorizontalScroll>\n </div>\n );\n};\n"],"file":"CardScroll.js"}
@@ -381,4 +381,5 @@ var ChipsSelect = (0, _withAdaptivity.withAdaptivity)(ChipsSelectComponent, {
381
381
  sizeY: true
382
382
  });
383
383
  exports.ChipsSelect = ChipsSelect;
384
+ ChipsSelect.displayName = "ChipsSelect";
384
385
  //# sourceMappingURL=ChipsSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"names":["FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","option","restProps","ChipsSelectComponent","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","sizeY","after","document","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","rootNode","current","target","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter","ChipsSelect"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n ChipsInput,\n ChipsInputOption,\n ChipsInputProps,\n ChipsInputValue,\n RenderChip,\n chipsInputDefaultProps,\n} from \"../ChipsInput/ChipsInput\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"./useChipsSelect\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipsInputOption>\n extends ChipsInputProps<Option>,\n AdaptivityProps {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\nconst ChipsSelectComponent = <Option extends ChipsInputOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n sizeY,\n closeAfterSelect,\n onChangeStart,\n after,\n options,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n const { current: rootNode } = rootRef;\n if (\n rootNode &&\n e.target !== rootNode &&\n !rootNode.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n return (\n <div\n vkuiClass={classNames(\"ChipsSelect\", `ChipsSelect--sizeY-${sizeY}`)}\n ref={rootRef}\n style={style}\n className={className}\n >\n <ChipsInput\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n vkuiClass={classNames(\n opened && \"Select--open\",\n opened &&\n (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n after={<DropdownIcon />}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = withAdaptivity(ChipsSelectComponent, {\n sizeY: true,\n});\n"],"file":"ChipsSelect.js"}
1
+ {"version":3,"sources":["../../../../src/components/ChipsSelect/ChipsSelect.tsx"],"names":["FOCUS_ACTION_NEXT","FOCUS_ACTION_PREV","chipsSelectDefaultProps","chipsInputDefaultProps","emptyText","creatableText","onChangeStart","noop","creatable","fetching","showSelected","closeAfterSelect","options","filterFn","defaultFilterFn","renderOption","option","restProps","ChipsSelectComponent","props","propsWithDefault","style","onFocus","onKeyDown","className","getRef","getRootRef","disabled","placeholder","tabIndex","getOptionValue","getOptionLabel","getNewOptionData","renderChip","popupDirection","inputValue","sizeY","after","document","React","useState","undefined","popperPlacement","setPopperPlacement","scrollBoxRef","useRef","rootRef","fieldValue","selectedOptions","opened","setOpened","addOptionFromInput","filteredOptions","addOption","handleInputChange","clearInput","focusedOption","setFocusedOption","focusedOptionIndex","setFocusedOptionIndex","showCreatable","Boolean","length","handleFocus","e","handleClickOutside","rootNode","current","target","contains","chipsSelectOptions","scrollToElement","index","center","dropdown","item","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","focusOptionByIndex","oldIndex","focusOption","nextIndex","type","handleKeyDown","key","defaultPrevented","preventDefault","includes","useEffect","findIndex","value","renderChipWrapper","renderChipProps","onRemoveWrapper","stopPropagation","onRemove","isPopperDirectionTop","onPlacementChange","useCallback","placement","onDropdownMouseLeave","observableRefs","useMemo","map","label","hovered","selected","find","selectedOption","children","onMouseDown","onMouseEnter","ChipsSelect","displayName"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { classNames } from \"../../lib/classNames\";\nimport {\n ChipsInput,\n ChipsInputOption,\n ChipsInputProps,\n ChipsInputValue,\n RenderChip,\n chipsInputDefaultProps,\n} from \"../ChipsInput/ChipsInput\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { useChipsSelect } from \"./useChipsSelect\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { noop } from \"../../lib/utils\";\nimport { useDOM } from \"../../lib/dom\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { defaultFilterFn } from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport \"./ChipsSelect.css\";\n\nexport interface ChipsSelectProps<Option extends ChipsInputOption>\n extends ChipsInputProps<Option>,\n AdaptivityProps {\n popupDirection?: \"top\" | \"bottom\";\n options?: Option[];\n filterFn?:\n | false\n | ((\n value?: string,\n option?: Option,\n getOptionLabel?: Pick<\n ChipsInputProps<Option>,\n \"getOptionLabel\"\n >[\"getOptionLabel\"]\n ) => boolean);\n /**\n * Возможность создавать чипы которых нет в списке (по enter или с помощью пункта в меню, см creatableText)\n */\n creatable?: boolean;\n /**\n * Отрисовка лоадера вместо списка опций в выпадающем списке\n */\n fetching?: boolean;\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Показывать или скрывать уже выбранные опции\n */\n showSelected?: boolean;\n /**\n * Текст для пункта создающего чипы при клике, так же отвечает за то будет ли показан этот пункт (показывается после того как в списке не отсанется опций)\n */\n creatableText?: string;\n /**\n * Текст который показывается если список опций пуст\n */\n emptyText?: string;\n /**\n * Событие срабатывающее перед onChange\n */\n onChangeStart?: (\n e: React.MouseEvent | React.KeyboardEvent,\n option: Option\n ) => void;\n /**\n * Закрытие выпадающего списка после выбора элемента\n */\n closeAfterSelect?: boolean;\n}\n\ntype FocusActionType = \"next\" | \"prev\";\n\nconst FOCUS_ACTION_NEXT: FocusActionType = \"next\";\nconst FOCUS_ACTION_PREV: FocusActionType = \"prev\";\n\nconst chipsSelectDefaultProps: ChipsSelectProps<any> = {\n ...chipsInputDefaultProps,\n emptyText: \"Ничего не найдено\",\n creatableText: \"Создать значение\",\n onChangeStart: noop,\n creatable: false,\n fetching: false,\n showSelected: true,\n closeAfterSelect: true,\n options: [],\n filterFn: defaultFilterFn,\n renderOption({ option, ...restProps }) {\n return <CustomSelectOption {...restProps} />;\n },\n};\n\nconst ChipsSelectComponent = <Option extends ChipsInputOption>(\n props: ChipsSelectProps<Option>\n) => {\n const propsWithDefault = { ...chipsSelectDefaultProps, ...props };\n const {\n style,\n onFocus,\n onKeyDown,\n className,\n fetching,\n renderOption,\n emptyText,\n getRef,\n getRootRef,\n disabled,\n placeholder,\n tabIndex,\n getOptionValue,\n getOptionLabel,\n showSelected,\n getNewOptionData,\n renderChip,\n popupDirection,\n creatable,\n filterFn,\n inputValue,\n creatableText,\n sizeY,\n closeAfterSelect,\n onChangeStart,\n after,\n options,\n ...restProps\n } = propsWithDefault;\n\n const { document } = useDOM();\n\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const rootRef = useExternRef(getRef);\n const {\n fieldValue,\n selectedOptions = [],\n opened,\n setOpened,\n addOptionFromInput,\n filteredOptions,\n addOption,\n handleInputChange,\n clearInput,\n focusedOption,\n setFocusedOption,\n focusedOptionIndex,\n setFocusedOptionIndex,\n } = useChipsSelect(propsWithDefault);\n\n const showCreatable = Boolean(\n creatable && creatableText && !filteredOptions.length && fieldValue\n );\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setOpened(true);\n setFocusedOptionIndex(0);\n onFocus!(e);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n const { current: rootNode } = rootRef;\n if (\n rootNode &&\n e.target !== rootNode &&\n !rootNode.contains(e.target as Node)\n ) {\n setOpened(false);\n }\n };\n\n const chipsSelectOptions = React.useRef<HTMLElement[]>([]).current;\n\n const scrollToElement = (index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = chipsSelectOptions[index];\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n };\n\n const focusOptionByIndex = (index: number, oldIndex: number) => {\n const { length } = filteredOptions;\n\n if (index < 0) {\n index = length - 1;\n } else if (index >= length) {\n index = 0;\n }\n\n if (index === oldIndex) {\n return;\n }\n\n scrollToElement(index);\n setFocusedOptionIndex(index);\n };\n\n const focusOption = (nextIndex: number | null, type: FocusActionType) => {\n let index = typeof nextIndex !== \"number\" ? -1 : nextIndex;\n\n if (type === FOCUS_ACTION_NEXT) {\n index = index + 1;\n } else if (type === FOCUS_ACTION_PREV) {\n index = index - 1;\n }\n\n if (focusedOptionIndex != null) {\n focusOptionByIndex(index, focusedOptionIndex);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n onKeyDown!(e);\n\n if (e.key === \"ArrowUp\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_PREV);\n }\n }\n\n if (e.key === \"ArrowDown\" && !e.defaultPrevented) {\n e.preventDefault();\n\n if (!opened) {\n setOpened(true);\n setFocusedOptionIndex(0);\n } else {\n focusOption(focusedOptionIndex, FOCUS_ACTION_NEXT);\n }\n }\n\n if (\n e.key === \"Enter\" &&\n !e.defaultPrevented &&\n opened &&\n focusedOptionIndex != null\n ) {\n const option = filteredOptions[focusedOptionIndex];\n\n if (option) {\n onChangeStart!(e, option);\n\n if (!e.defaultPrevented) {\n addOption(option);\n setFocusedOptionIndex(null);\n clearInput();\n closeAfterSelect && setOpened(false);\n e.preventDefault();\n }\n } else if (!creatable) {\n e.preventDefault();\n }\n }\n\n if ([\"Escape\", \"Tab\"].includes(e.key) && !e.defaultPrevented && opened) {\n setOpened(false);\n }\n };\n\n React.useEffect(() => {\n if (focusedOptionIndex != null && filteredOptions[focusedOptionIndex]) {\n setFocusedOption(filteredOptions[focusedOptionIndex]);\n } else if (focusedOptionIndex === null || focusedOptionIndex === 0) {\n setFocusedOption(null);\n }\n }, [focusedOptionIndex, filteredOptions, setFocusedOption]);\n\n React.useEffect(() => {\n const index = focusedOption\n ? filteredOptions.findIndex(({ value }) => value === focusedOption.value)\n : -1;\n\n if (\n index === -1 &&\n !!filteredOptions.length &&\n !showCreatable &&\n closeAfterSelect\n ) {\n setFocusedOption(filteredOptions[0]);\n }\n }, [\n filteredOptions,\n focusedOption,\n showCreatable,\n closeAfterSelect,\n setFocusedOption,\n ]);\n\n useGlobalEventListener(document, \"click\", handleClickOutside);\n\n const renderChipWrapper = (\n renderChipProps: RenderChip<Option> | undefined\n ) => {\n if (renderChipProps === undefined) {\n return null;\n }\n const onRemoveWrapper = (\n e: React.MouseEvent | undefined,\n value: ChipsInputValue | undefined\n ) => {\n e?.preventDefault();\n e?.stopPropagation();\n\n renderChipProps.onRemove?.(e, value);\n };\n\n return renderChip!({\n ...renderChipProps,\n onRemove: onRemoveWrapper,\n });\n };\n\n const isPopperDirectionTop = popperPlacement?.includes(\"top\");\n\n const onPlacementChange = React.useCallback(\n (placement?: Placement) => {\n setPopperPlacement(placement);\n },\n [setPopperPlacement]\n );\n\n const onDropdownMouseLeave = React.useCallback(() => {\n setFocusedOptionIndex(null);\n }, [setFocusedOptionIndex]);\n\n const observableRefs = React.useMemo(\n () => [scrollBoxRef, rootRef],\n [rootRef, scrollBoxRef]\n );\n\n return (\n <div\n vkuiClass={classNames(\"ChipsSelect\", `ChipsSelect--sizeY-${sizeY}`)}\n ref={rootRef}\n style={style}\n className={className}\n >\n <ChipsInput\n {...restProps}\n tabIndex={tabIndex}\n value={selectedOptions}\n inputValue={fieldValue}\n getNewOptionData={getNewOptionData}\n getOptionLabel={getOptionLabel}\n getOptionValue={getOptionValue}\n renderChip={renderChipWrapper}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n vkuiClass={classNames(\n opened && \"Select--open\",\n opened &&\n (isPopperDirectionTop ? \"Select--pop-up\" : \"Select--pop-down\")\n )}\n getRef={getRef}\n disabled={disabled}\n onInputChange={handleInputChange}\n after={<DropdownIcon />}\n />\n {opened && (\n <CustomSelectDropdown\n targetRef={rootRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n observableRefs={observableRefs}\n onPlacementChange={onPlacementChange}\n onMouseLeave={onDropdownMouseLeave}\n fetching={fetching}\n vkuiClass=\"ChipsSelect__options\"\n >\n {showCreatable && (\n <CustomSelectOption\n hovered={focusedOptionIndex === 0}\n onMouseDown={addOptionFromInput}\n onMouseEnter={() => setFocusedOptionIndex(0)}\n >\n {creatableText}\n </CustomSelectOption>\n )}\n {!filteredOptions?.length && !showCreatable && emptyText ? (\n <Caption vkuiClass=\"ChipsSelect__empty\">{emptyText}</Caption>\n ) : (\n filteredOptions.map((option: Option, index: number) => {\n const label = getOptionLabel!(option);\n const hovered =\n focusedOption &&\n getOptionValue!(option) === getOptionValue!(focusedOption);\n const selected = selectedOptions.find(\n (selectedOption: Option) => {\n return (\n getOptionValue!(selectedOption) === getOptionValue!(option)\n );\n }\n );\n const value = getOptionValue!(option);\n\n return (\n <React.Fragment key={`${typeof value}-${value}`}>\n {renderOption!({\n className: prefixClass(\"ChipsSelect__option\"),\n option,\n hovered: Boolean(hovered),\n children: label,\n selected: !!selected,\n getRootRef: (e) => {\n if (e) {\n return (chipsSelectOptions[index] = e);\n }\n return undefined;\n },\n onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => {\n onChangeStart?.(e, option);\n\n if (!e.defaultPrevented) {\n closeAfterSelect && setOpened(false);\n addOption(option);\n clearInput();\n }\n },\n onMouseEnter: () => setFocusedOptionIndex(index),\n })}\n </React.Fragment>\n );\n })\n )}\n </CustomSelectDropdown>\n )}\n </div>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ChipsSelect\n */\nexport const ChipsSelect = withAdaptivity(ChipsSelectComponent, {\n sizeY: true,\n});\n\nChipsSelect.displayName = \"ChipsSelect\";\n"],"file":"ChipsSelect.js"}
@@ -7,7 +7,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.WebviewType = exports.ConfigProviderContext = void 0;
10
+ exports.useConfigProvider = exports.WebviewType = exports.ConfigProviderContext = void 0;
11
11
 
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
 
@@ -33,4 +33,10 @@ var ConfigProviderContext = /*#__PURE__*/React.createContext({
33
33
 
34
34
  });
35
35
  exports.ConfigProviderContext = ConfigProviderContext;
36
+
37
+ var useConfigProvider = function useConfigProvider() {
38
+ return React.useContext(ConfigProviderContext);
39
+ };
40
+
41
+ exports.useConfigProvider = useConfigProvider;
36
42
  //# sourceMappingURL=ConfigProviderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["WebviewType","ConfigProviderContext","React","createContext","webviewType","VKAPPS","isWebView","vkBridge","transitionMotionEnabled","platform","hasNewTokens"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAkCL,IAAMC,qBAAqB,gBAChCC,KAAK,CAACC,aAAN,CAAoD;AAClDC,EAAAA,WAAW,EAAEJ,WAAW,CAACK,MADyB;AAElDC,EAAAA,SAAS,EAAEC,kBAASD,SAAT,EAFuC;AAGlDE,EAAAA,uBAAuB,EAAE,IAHyB;AAIlDC,EAAAA,QAAQ,EAAE,yBAJwC;AAKlDC,EAAAA,YAAY,EAAE,KALoC,CAMlD;AACA;;AAPkD,CAApD,CADK","sourcesContent":["import * as React from \"react\";\nimport vkBridge, { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { PlatformType, platform } from \"../../lib/platform\";\n\nexport enum WebviewType {\n VKAPPS = \"vkapps\",\n INTERNAL = \"internal\",\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n hasNewTokens: boolean;\n}\n\nexport const ConfigProviderContext =\n React.createContext<ConfigProviderContextInterface>({\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n transitionMotionEnabled: true,\n platform: platform(),\n hasNewTokens: false,\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n });\n"],"file":"ConfigProviderContext.js"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"names":["WebviewType","ConfigProviderContext","React","createContext","webviewType","VKAPPS","isWebView","vkBridge","transitionMotionEnabled","platform","hasNewTokens","useConfigProvider","useContext"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAkCL,IAAMC,qBAAqB,gBAChCC,KAAK,CAACC,aAAN,CAAoD;AAClDC,EAAAA,WAAW,EAAEJ,WAAW,CAACK,MADyB;AAElDC,EAAAA,SAAS,EAAEC,kBAASD,SAAT,EAFuC;AAGlDE,EAAAA,uBAAuB,EAAE,IAHyB;AAIlDC,EAAAA,QAAQ,EAAE,yBAJwC;AAKlDC,EAAAA,YAAY,EAAE,KALoC,CAMlD;AACA;;AAPkD,CAApD,CADK;;;AAWA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB;AAAA,SAAMT,KAAK,CAACU,UAAN,CAAiBX,qBAAjB,CAAN;AAAA,CAA1B","sourcesContent":["import * as React from \"react\";\nimport vkBridge, { AppearanceType } from \"@vkontakte/vk-bridge\";\nimport { PlatformType, platform } from \"../../lib/platform\";\n\nexport enum WebviewType {\n VKAPPS = \"vkapps\",\n INTERNAL = \"internal\",\n}\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере\n */\n isWebView: boolean;\n /**\n * Тип вебвью.<br>\n * В случае `WebviewType.VKAPPS` интерфейс будет адаптирован для отображения в вебвью Mini Apps (системные контролы в правой части шапки)\n */\n webviewType: WebviewType.INTERNAL | WebviewType.VKAPPS;\n /**\n * Тип приложения\n */\n app?: string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n appearance?: AppearanceType;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n hasNewTokens: boolean;\n}\n\nexport const ConfigProviderContext =\n React.createContext<ConfigProviderContextInterface>({\n webviewType: WebviewType.VKAPPS,\n isWebView: vkBridge.isWebView(),\n transitionMotionEnabled: true,\n platform: platform(),\n hasNewTokens: false,\n // appearance is auto-detected by default\n // appearance: Appearance.LIGHT,\n });\n\nexport const useConfigProvider = () => React.useContext(ConfigProviderContext);\n"],"file":"ConfigProviderContext.js"}