@vkontakte/vkui 4.34.0 → 4.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (690) hide show
  1. package/.browserslistrc +5 -0
  2. package/.cache/.eslintcache +1 -1
  3. package/.cache/.stylelintcache +1 -1
  4. package/.cache/.tsbuildinfo +291 -268
  5. package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  6. package/.cache/ts/src/components/AppRoot/AppRoot.d.ts +1 -1
  7. package/.cache/ts/src/components/Button/Button.d.ts +1 -1
  8. package/.cache/ts/src/components/CardGrid/CardGrid.d.ts +1 -1
  9. package/.cache/ts/src/components/Checkbox/Checkbox.d.ts +1 -1
  10. package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  11. package/.cache/ts/src/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  12. package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
  13. package/.cache/ts/src/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  14. package/.cache/ts/src/components/DatePicker/DatePicker.d.ts +1 -1
  15. package/.cache/ts/src/components/Dropdown/Dropdown.d.ts +46 -5
  16. package/.cache/ts/src/components/Epic/Epic.d.ts +1 -1
  17. package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +1 -1
  18. package/.cache/ts/src/components/Group/Group.d.ts +1 -1
  19. package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  20. package/.cache/ts/src/components/IconButton/IconButton.d.ts +1 -1
  21. package/.cache/ts/src/components/Input/Input.d.ts +1 -1
  22. package/.cache/ts/src/components/ModalCard/ModalCard.d.ts +1 -1
  23. package/.cache/ts/src/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  24. package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +1 -1
  25. package/.cache/ts/src/components/ModalRoot/ModalRoot.d.ts +1 -1
  26. package/.cache/ts/src/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  27. package/.cache/ts/src/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  28. package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +1 -1
  29. package/.cache/ts/src/components/Panel/Panel.d.ts +1 -1
  30. package/.cache/ts/src/components/PanelHeader/PanelHeader.d.ts +1 -1
  31. package/.cache/ts/src/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  32. package/.cache/ts/src/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  33. package/.cache/ts/src/components/Popper/Popper.d.ts +18 -1
  34. package/.cache/ts/src/components/PopperArrow/PopperArrow.d.ts +8 -0
  35. package/.cache/ts/src/components/Radio/Radio.d.ts +1 -1
  36. package/.cache/ts/src/components/RangeSlider/UniversalSlider.d.ts +1 -1
  37. package/.cache/ts/src/components/RichCell/RichCell.d.ts +1 -1
  38. package/.cache/ts/src/components/RichTooltip/RichTooltip.d.ts +7 -2
  39. package/.cache/ts/src/components/Search/Search.d.ts +1 -1
  40. package/.cache/ts/src/components/Select/Select.d.ts +1 -1
  41. package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  42. package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +1 -1
  43. package/.cache/ts/src/components/Snackbar/Snackbar.d.ts +5 -1
  44. package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +1 -0
  45. package/.cache/ts/src/components/Tabbar/Tabbar.d.ts +8 -1
  46. package/.cache/ts/src/components/Tabs/Tabs.d.ts +14 -3
  47. package/.cache/ts/src/components/TabsItem/TabsItem.d.ts +22 -1
  48. package/.cache/ts/src/components/Tappable/Tappable.d.ts +1 -1
  49. package/.cache/ts/src/components/TextTooltip/TextTooltip.d.ts +5 -1
  50. package/.cache/ts/src/components/Textarea/Textarea.d.ts +4 -1
  51. package/.cache/ts/src/components/Tooltip/Tooltip.d.ts +18 -1
  52. package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +3 -3
  53. package/.cache/ts/src/components/View/View.d.ts +2 -18
  54. package/.cache/ts/src/components/View/ViewInfinite.d.ts +1 -1
  55. package/.cache/ts/src/components/WriteBar/WriteBar.d.ts +5 -1
  56. package/.cache/ts/src/hoc/withAdaptivity.d.ts +1 -1
  57. package/.cache/ts/src/hoc/withContext.d.ts +1 -1
  58. package/.cache/ts/src/hoc/withPlatform.d.ts +1 -1
  59. package/.cache/ts/src/tokenized/index.d.ts +26 -0
  60. package/.eslintrc.json +14 -4
  61. package/dist/cjs/components/AppRoot/AppRoot.js +13 -15
  62. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  63. package/dist/cjs/components/Button/Button.js +6 -4
  64. package/dist/cjs/components/Button/Button.js.map +1 -1
  65. package/dist/cjs/components/CardScroll/CardScroll.js +3 -1
  66. package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
  67. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +5 -0
  68. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  69. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js +7 -1
  70. package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  71. package/dist/cjs/components/CustomSelect/CustomSelect.js +477 -553
  72. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  73. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +73 -35
  74. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  75. package/dist/cjs/components/Dropdown/Dropdown.js +147 -26
  76. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  77. package/dist/cjs/components/Epic/Epic.js +1 -6
  78. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  79. package/dist/cjs/components/FocusTrap/FocusTrap.js +9 -10
  80. package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
  81. package/dist/cjs/components/FormField/FormField.js +4 -10
  82. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  83. package/dist/cjs/components/HorizontalCell/HorizontalCell.js +4 -7
  84. package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
  85. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +1 -0
  86. package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  87. package/dist/cjs/components/Input/Input.js +3 -6
  88. package/dist/cjs/components/Input/Input.js.map +1 -1
  89. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js +2 -2
  90. package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  91. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +1 -0
  92. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  93. package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -0
  94. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  95. package/dist/cjs/components/Panel/Panel.js +1 -0
  96. package/dist/cjs/components/Panel/Panel.js.map +1 -1
  97. package/dist/cjs/components/PanelHeader/PanelHeader.js +1 -0
  98. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  99. package/dist/cjs/components/Popper/Popper.js +16 -22
  100. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  101. package/dist/cjs/components/PopperArrow/PopperArrow.js +40 -0
  102. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -0
  103. package/dist/cjs/components/Radio/Radio.js +1 -0
  104. package/dist/cjs/components/Radio/Radio.js.map +1 -1
  105. package/dist/cjs/components/RangeSlider/UniversalSlider.js +1 -0
  106. package/dist/cjs/components/RangeSlider/UniversalSlider.js.map +1 -1
  107. package/dist/cjs/components/RichTooltip/RichTooltip.js +6 -15
  108. package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
  109. package/dist/cjs/components/Select/Select.js +1 -0
  110. package/dist/cjs/components/Select/Select.js.map +1 -1
  111. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -1
  112. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  113. package/dist/cjs/components/SimpleCell/SimpleCell.js +21 -31
  114. package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
  115. package/dist/cjs/components/Snackbar/Snackbar.js +7 -11
  116. package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
  117. package/dist/cjs/components/SplitCol/SplitCol.js +7 -1
  118. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  119. package/dist/cjs/components/SplitLayout/SplitLayout.js +5 -8
  120. package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
  121. package/dist/cjs/components/Tabbar/Tabbar.js +15 -14
  122. package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
  123. package/dist/cjs/components/TabbarItem/TabbarItem.js +8 -10
  124. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  125. package/dist/cjs/components/Tabs/Tabs.js +23 -5
  126. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  127. package/dist/cjs/components/TabsItem/TabsItem.js +39 -22
  128. package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
  129. package/dist/cjs/components/TextTooltip/TextTooltip.js +6 -9
  130. package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
  131. package/dist/cjs/components/Textarea/Textarea.js +5 -4
  132. package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
  133. package/dist/cjs/components/Tooltip/Tooltip.js +94 -71
  134. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  135. package/dist/cjs/components/Typography/Headline/Headline.js +11 -2
  136. package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
  137. package/dist/cjs/components/View/View.js +388 -453
  138. package/dist/cjs/components/View/View.js.map +1 -1
  139. package/dist/cjs/components/WriteBar/WriteBar.js +12 -5
  140. package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
  141. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +3 -8
  142. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  143. package/dist/cjs/hoc/withAdaptivity.js.map +1 -1
  144. package/dist/cjs/hoc/withContext.js.map +1 -1
  145. package/dist/cjs/hoc/withPlatform.js.map +1 -1
  146. package/dist/cjs/hooks/useOrientationChange.js +2 -1
  147. package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
  148. package/dist/cjs/tokenized/index.js +104 -0
  149. package/dist/cjs/tokenized/index.js.map +1 -1
  150. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  151. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  152. package/dist/components/AppRoot/AppRoot.js +13 -15
  153. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  154. package/dist/components/Button/Button.d.ts +1 -1
  155. package/dist/components/Button/Button.js +6 -4
  156. package/dist/components/Button/Button.js.map +1 -1
  157. package/dist/components/CardGrid/CardGrid.d.ts +1 -1
  158. package/dist/components/CardScroll/CardScroll.js +3 -1
  159. package/dist/components/CardScroll/CardScroll.js.map +1 -1
  160. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  161. package/dist/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  162. package/dist/components/ChipsSelect/ChipsSelect.js +5 -0
  163. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  164. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  165. package/dist/components/ConfigProvider/ConfigProviderContext.js +3 -0
  166. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  167. package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
  168. package/dist/components/CustomSelect/CustomSelect.js +473 -579
  169. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  170. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  171. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +71 -35
  172. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  173. package/dist/components/DatePicker/DatePicker.d.ts +1 -1
  174. package/dist/components/Dropdown/Dropdown.d.ts +46 -5
  175. package/dist/components/Dropdown/Dropdown.js +137 -27
  176. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  177. package/dist/components/Epic/Epic.d.ts +1 -1
  178. package/dist/components/Epic/Epic.js +1 -4
  179. package/dist/components/Epic/Epic.js.map +1 -1
  180. package/dist/components/FocusTrap/FocusTrap.d.ts +1 -1
  181. package/dist/components/FocusTrap/FocusTrap.js +9 -9
  182. package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
  183. package/dist/components/FormField/FormField.js +4 -8
  184. package/dist/components/FormField/FormField.js.map +1 -1
  185. package/dist/components/Group/Group.d.ts +1 -1
  186. package/dist/components/HorizontalCell/HorizontalCell.js +3 -5
  187. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  188. package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  189. package/dist/components/HorizontalScroll/HorizontalScroll.js +1 -0
  190. package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  191. package/dist/components/IconButton/IconButton.d.ts +1 -1
  192. package/dist/components/Input/Input.d.ts +1 -1
  193. package/dist/components/Input/Input.js +3 -4
  194. package/dist/components/Input/Input.js.map +1 -1
  195. package/dist/components/MiniInfoCell/MiniInfoCell.js +2 -2
  196. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  197. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  198. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  199. package/dist/components/ModalCardBase/ModalCardBase.js +1 -0
  200. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  201. package/dist/components/ModalPage/ModalPage.d.ts +1 -1
  202. package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
  203. package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  204. package/dist/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  205. package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
  206. package/dist/components/NativeSelect/NativeSelect.js +1 -0
  207. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  208. package/dist/components/Panel/Panel.d.ts +1 -1
  209. package/dist/components/Panel/Panel.js +1 -0
  210. package/dist/components/Panel/Panel.js.map +1 -1
  211. package/dist/components/PanelHeader/PanelHeader.d.ts +1 -1
  212. package/dist/components/PanelHeader/PanelHeader.js +1 -0
  213. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  214. package/dist/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  215. package/dist/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  216. package/dist/components/Popper/Popper.d.ts +18 -1
  217. package/dist/components/Popper/Popper.js +15 -22
  218. package/dist/components/Popper/Popper.js.map +1 -1
  219. package/dist/components/PopperArrow/PopperArrow.d.ts +8 -0
  220. package/dist/components/PopperArrow/PopperArrow.js +27 -0
  221. package/dist/components/PopperArrow/PopperArrow.js.map +1 -0
  222. package/dist/components/Radio/Radio.d.ts +1 -1
  223. package/dist/components/Radio/Radio.js +1 -0
  224. package/dist/components/Radio/Radio.js.map +1 -1
  225. package/dist/components/RangeSlider/UniversalSlider.d.ts +1 -1
  226. package/dist/components/RangeSlider/UniversalSlider.js +1 -0
  227. package/dist/components/RangeSlider/UniversalSlider.js.map +1 -1
  228. package/dist/components/RichCell/RichCell.d.ts +1 -1
  229. package/dist/components/RichTooltip/RichTooltip.d.ts +7 -2
  230. package/dist/components/RichTooltip/RichTooltip.js +5 -10
  231. package/dist/components/RichTooltip/RichTooltip.js.map +1 -1
  232. package/dist/components/Search/Search.d.ts +1 -1
  233. package/dist/components/Select/Select.d.ts +1 -1
  234. package/dist/components/Select/Select.js +1 -0
  235. package/dist/components/Select/Select.js.map +1 -1
  236. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  237. package/dist/components/SelectMimicry/SelectMimicry.js +4 -1
  238. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  239. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  240. package/dist/components/SimpleCell/SimpleCell.js +19 -28
  241. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  242. package/dist/components/Snackbar/Snackbar.d.ts +5 -1
  243. package/dist/components/Snackbar/Snackbar.js +8 -11
  244. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  245. package/dist/components/SplitCol/SplitCol.d.ts +1 -0
  246. package/dist/components/SplitCol/SplitCol.js +3 -0
  247. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  248. package/dist/components/SplitLayout/SplitLayout.js +4 -7
  249. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  250. package/dist/components/Tabbar/Tabbar.d.ts +8 -1
  251. package/dist/components/Tabbar/Tabbar.js +15 -14
  252. package/dist/components/Tabbar/Tabbar.js.map +1 -1
  253. package/dist/components/TabbarItem/TabbarItem.js +7 -9
  254. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  255. package/dist/components/Tabs/Tabs.d.ts +14 -3
  256. package/dist/components/Tabs/Tabs.js +23 -5
  257. package/dist/components/Tabs/Tabs.js.map +1 -1
  258. package/dist/components/TabsItem/TabsItem.d.ts +22 -1
  259. package/dist/components/TabsItem/TabsItem.js +40 -21
  260. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  261. package/dist/components/Tappable/Tappable.d.ts +1 -1
  262. package/dist/components/TextTooltip/TextTooltip.d.ts +5 -1
  263. package/dist/components/TextTooltip/TextTooltip.js +5 -7
  264. package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
  265. package/dist/components/Textarea/Textarea.d.ts +4 -1
  266. package/dist/components/Textarea/Textarea.js +5 -4
  267. package/dist/components/Textarea/Textarea.js.map +1 -1
  268. package/dist/components/Tooltip/Tooltip.d.ts +18 -1
  269. package/dist/components/Tooltip/Tooltip.js +89 -68
  270. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  271. package/dist/components/Typography/Headline/Headline.d.ts +3 -3
  272. package/dist/components/Typography/Headline/Headline.js +10 -2
  273. package/dist/components/Typography/Headline/Headline.js.map +1 -1
  274. package/dist/components/View/View.d.ts +2 -18
  275. package/dist/components/View/View.js +384 -462
  276. package/dist/components/View/View.js.map +1 -1
  277. package/dist/components/View/ViewInfinite.d.ts +1 -1
  278. package/dist/components/WriteBar/WriteBar.d.ts +5 -1
  279. package/dist/components/WriteBar/WriteBar.js +10 -5
  280. package/dist/components/WriteBar/WriteBar.js.map +1 -1
  281. package/dist/components/WriteBarIcon/WriteBarIcon.js +3 -6
  282. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  283. package/dist/components.css +143 -127
  284. package/dist/components.css.map +1 -1
  285. package/dist/cssm/components/ActionSheet/ActionSheet.css +1 -1
  286. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +1 -1
  287. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  288. package/dist/cssm/components/Alert/Alert.css +1 -1
  289. package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
  290. package/dist/cssm/components/AppRoot/AppRoot.d.ts +1 -1
  291. package/dist/cssm/components/AppRoot/AppRoot.js +13 -15
  292. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  293. package/dist/cssm/components/Avatar/Avatar.css +3 -5
  294. package/dist/cssm/components/Badge/Badge.css +3 -3
  295. package/dist/cssm/components/Banner/Banner.css +5 -5
  296. package/dist/cssm/components/BaseGallery/BaseGallery.css +1 -1
  297. package/dist/cssm/components/Button/Button.css +53 -35
  298. package/dist/cssm/components/Button/Button.d.ts +1 -1
  299. package/dist/cssm/components/Button/Button.js +6 -4
  300. package/dist/cssm/components/Button/Button.js.map +1 -1
  301. package/dist/cssm/components/Calendar/Calendar.css +1 -1
  302. package/dist/cssm/components/CalendarDay/CalendarDay.css +1 -1
  303. package/dist/cssm/components/CalendarDays/CalendarDays.css +1 -1
  304. package/dist/cssm/components/CalendarHeader/CalendarHeader.css +1 -1
  305. package/dist/cssm/components/CalendarRange/CalendarRange.css +1 -1
  306. package/dist/cssm/components/CalendarTime/CalendarTime.css +1 -1
  307. package/dist/cssm/components/Card/Card.css +5 -6
  308. package/dist/cssm/components/CardGrid/CardGrid.css +1 -1
  309. package/dist/cssm/components/CardGrid/CardGrid.d.ts +1 -1
  310. package/dist/cssm/components/CardScroll/CardScroll.css +1 -1
  311. package/dist/cssm/components/CardScroll/CardScroll.js +3 -1
  312. package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
  313. package/dist/cssm/components/Cell/Cell.css +3 -3
  314. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
  315. package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
  316. package/dist/cssm/components/CellButton/CellButton.css +1 -1
  317. package/dist/cssm/components/Checkbox/Checkbox.css +1 -1
  318. package/dist/cssm/components/Checkbox/Checkbox.d.ts +1 -1
  319. package/dist/cssm/components/Chip/Chip.css +1 -1
  320. package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
  321. package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
  322. package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +1 -1
  323. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +5 -0
  324. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  325. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.d.ts +1 -0
  326. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +3 -0
  327. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  328. package/dist/cssm/components/ContentCard/ContentCard.css +1 -1
  329. package/dist/cssm/components/Counter/Counter.css +31 -31
  330. package/dist/cssm/components/CustomScrollView/CustomScrollView.css +1 -1
  331. package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
  332. package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
  333. package/dist/cssm/components/CustomSelect/CustomSelect.js +473 -579
  334. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  335. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.css +3 -3
  336. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -1
  337. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +71 -35
  338. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  339. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.css +3 -3
  340. package/dist/cssm/components/DateInput/DateInput.css +1 -1
  341. package/dist/cssm/components/DatePicker/DatePicker.css +1 -1
  342. package/dist/cssm/components/DatePicker/DatePicker.d.ts +1 -1
  343. package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
  344. package/dist/cssm/components/Dropdown/Dropdown.css +1 -1
  345. package/dist/cssm/components/Dropdown/Dropdown.d.ts +46 -5
  346. package/dist/cssm/components/Dropdown/Dropdown.js +137 -27
  347. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  348. package/dist/cssm/components/Epic/Epic.css +1 -1
  349. package/dist/cssm/components/Epic/Epic.d.ts +1 -1
  350. package/dist/cssm/components/Epic/Epic.js +1 -4
  351. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  352. package/dist/cssm/components/FixedLayout/FixedLayout.css +1 -1
  353. package/dist/cssm/components/FocusTrap/FocusTrap.d.ts +1 -1
  354. package/dist/cssm/components/FocusTrap/FocusTrap.js +9 -9
  355. package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
  356. package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
  357. package/dist/cssm/components/Footer/Footer.css +1 -1
  358. package/dist/cssm/components/FormField/FormField.css +9 -9
  359. package/dist/cssm/components/FormField/FormField.js +4 -8
  360. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  361. package/dist/cssm/components/FormItem/FormItem.css +1 -1
  362. package/dist/cssm/components/FormLayout/FormLayout.css +1 -1
  363. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
  364. package/dist/cssm/components/FormStatus/FormStatus.css +1 -1
  365. package/dist/cssm/components/Gradient/Gradient.css +1 -1
  366. package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -1
  367. package/dist/cssm/components/Group/Group.css +1 -1
  368. package/dist/cssm/components/Group/Group.d.ts +1 -1
  369. package/dist/cssm/components/Header/Header.css +1 -1
  370. package/dist/cssm/components/HorizontalCell/HorizontalCell.css +1 -1
  371. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -5
  372. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  373. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
  374. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +1 -1
  375. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +1 -0
  376. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
  377. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +3 -3
  378. package/dist/cssm/components/IconButton/IconButton.css +1 -1
  379. package/dist/cssm/components/IconButton/IconButton.d.ts +1 -1
  380. package/dist/cssm/components/InfoRow/InfoRow.css +1 -1
  381. package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -1
  382. package/dist/cssm/components/Input/Input.css +1 -1
  383. package/dist/cssm/components/Input/Input.d.ts +1 -1
  384. package/dist/cssm/components/Input/Input.js +3 -4
  385. package/dist/cssm/components/Input/Input.js.map +1 -1
  386. package/dist/cssm/components/InputLike/InputLike.css +1 -1
  387. package/dist/cssm/components/InputLike/InputLikeDivider.css +1 -1
  388. package/dist/cssm/components/Link/Link.css +1 -1
  389. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.css +1 -1
  390. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +2 -2
  391. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  392. package/dist/cssm/components/ModalCard/ModalCard.css +1 -1
  393. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  394. package/dist/cssm/components/ModalCardBase/ModalCardBase.css +3 -3
  395. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  396. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +1 -0
  397. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  398. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
  399. package/dist/cssm/components/ModalPage/ModalPage.css +1 -1
  400. package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
  401. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
  402. package/dist/cssm/components/ModalRoot/ModalRoot.css +1 -1
  403. package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +1 -1
  404. package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +1 -1
  405. package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +1 -1
  406. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
  407. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -0
  408. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  409. package/dist/cssm/components/Pagination/Pagination.css +1 -1
  410. package/dist/cssm/components/Panel/Panel.css +1 -1
  411. package/dist/cssm/components/Panel/Panel.d.ts +1 -1
  412. package/dist/cssm/components/Panel/Panel.js +1 -0
  413. package/dist/cssm/components/Panel/Panel.js.map +1 -1
  414. package/dist/cssm/components/PanelHeader/PanelHeader.css +1 -1
  415. package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +1 -1
  416. package/dist/cssm/components/PanelHeader/PanelHeader.js +1 -0
  417. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  418. package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.d.ts +1 -1
  419. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
  420. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +1 -1
  421. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
  422. package/dist/cssm/components/Placeholder/Placeholder.css +3 -3
  423. package/dist/cssm/components/PopoutRoot/PopoutRoot.css +1 -1
  424. package/dist/cssm/components/PopoutRoot/PopoutRoot.d.ts +1 -1
  425. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.css +1 -1
  426. package/dist/cssm/components/Popper/Popper.css +1 -1
  427. package/dist/cssm/components/Popper/Popper.d.ts +18 -1
  428. package/dist/cssm/components/Popper/Popper.js +15 -22
  429. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  430. package/dist/cssm/components/PopperArrow/PopperArrow.css +1 -0
  431. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +8 -0
  432. package/dist/cssm/components/PopperArrow/PopperArrow.js +28 -0
  433. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -0
  434. package/dist/cssm/components/Progress/Progress.css +1 -1
  435. package/dist/cssm/components/PromoBanner/PromoBanner.css +1 -1
  436. package/dist/cssm/components/PullToRefresh/PullToRefresh.css +3 -3
  437. package/dist/cssm/components/Radio/Radio.css +1 -1
  438. package/dist/cssm/components/Radio/Radio.d.ts +1 -1
  439. package/dist/cssm/components/Radio/Radio.js +1 -0
  440. package/dist/cssm/components/Radio/Radio.js.map +1 -1
  441. package/dist/cssm/components/RadioGroup/RadioGroup.css +1 -1
  442. package/dist/cssm/components/RangeSlider/UniversalSlider.d.ts +1 -1
  443. package/dist/cssm/components/RangeSlider/UniversalSlider.js +1 -0
  444. package/dist/cssm/components/RangeSlider/UniversalSlider.js.map +1 -1
  445. package/dist/cssm/components/Removable/Removable.css +1 -1
  446. package/dist/cssm/components/RichCell/RichCell.css +3 -3
  447. package/dist/cssm/components/RichCell/RichCell.d.ts +1 -1
  448. package/dist/cssm/components/RichTooltip/RichTooltip.css +3 -1
  449. package/dist/cssm/components/RichTooltip/RichTooltip.d.ts +7 -2
  450. package/dist/cssm/components/RichTooltip/RichTooltip.js +5 -10
  451. package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
  452. package/dist/cssm/components/Root/Root.css +1 -1
  453. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.css +1 -1
  454. package/dist/cssm/components/Search/Search.css +1 -1
  455. package/dist/cssm/components/Search/Search.d.ts +1 -1
  456. package/dist/cssm/components/SegmentedControl/SegmentedControl.css +1 -1
  457. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css +1 -1
  458. package/dist/cssm/components/Select/Select.css +1 -1
  459. package/dist/cssm/components/Select/Select.d.ts +1 -1
  460. package/dist/cssm/components/Select/Select.js +1 -0
  461. package/dist/cssm/components/Select/Select.js.map +1 -1
  462. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  463. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -1
  464. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  465. package/dist/cssm/components/Separator/Separator.css +1 -1
  466. package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
  467. package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
  468. package/dist/cssm/components/SimpleCell/SimpleCell.js +19 -28
  469. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  470. package/dist/cssm/components/SimpleCheckbox/SimpleCheckbox.css +1 -1
  471. package/dist/cssm/components/Slider/Slider.css +3 -3
  472. package/dist/cssm/components/SliderSwitch/SliderSwitch.css +1 -1
  473. package/dist/cssm/components/Snackbar/Snackbar.css +1 -1
  474. package/dist/cssm/components/Snackbar/Snackbar.d.ts +5 -1
  475. package/dist/cssm/components/Snackbar/Snackbar.js +8 -11
  476. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  477. package/dist/cssm/components/Spacing/Spacing.css +1 -1
  478. package/dist/cssm/components/Spinner/Spinner.css +1 -1
  479. package/dist/cssm/components/SplitCol/SplitCol.css +1 -1
  480. package/dist/cssm/components/SplitCol/SplitCol.d.ts +1 -0
  481. package/dist/cssm/components/SplitCol/SplitCol.js +3 -0
  482. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  483. package/dist/cssm/components/SplitLayout/SplitLayout.css +1 -1
  484. package/dist/cssm/components/SplitLayout/SplitLayout.js +4 -7
  485. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  486. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
  487. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
  488. package/dist/cssm/components/Switch/Switch.css +3 -3
  489. package/dist/cssm/components/Tabbar/Tabbar.css +5 -3
  490. package/dist/cssm/components/Tabbar/Tabbar.d.ts +8 -1
  491. package/dist/cssm/components/Tabbar/Tabbar.js +15 -14
  492. package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
  493. package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
  494. package/dist/cssm/components/TabbarItem/TabbarItem.js +7 -9
  495. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  496. package/dist/cssm/components/Tabs/Tabs.css +1 -1
  497. package/dist/cssm/components/Tabs/Tabs.d.ts +14 -3
  498. package/dist/cssm/components/Tabs/Tabs.js +23 -5
  499. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  500. package/dist/cssm/components/TabsItem/TabsItem.css +5 -1
  501. package/dist/cssm/components/TabsItem/TabsItem.d.ts +22 -1
  502. package/dist/cssm/components/TabsItem/TabsItem.js +40 -21
  503. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  504. package/dist/cssm/components/Tappable/Tappable.css +5 -5
  505. package/dist/cssm/components/Tappable/Tappable.d.ts +1 -1
  506. package/dist/cssm/components/TextTooltip/TextTooltip.css +1 -1
  507. package/dist/cssm/components/TextTooltip/TextTooltip.d.ts +5 -1
  508. package/dist/cssm/components/TextTooltip/TextTooltip.js +5 -7
  509. package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
  510. package/dist/cssm/components/Textarea/Textarea.css +1 -1
  511. package/dist/cssm/components/Textarea/Textarea.d.ts +4 -1
  512. package/dist/cssm/components/Textarea/Textarea.js +5 -4
  513. package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
  514. package/dist/cssm/components/Tooltip/Tooltip.css +1 -1
  515. package/dist/cssm/components/Tooltip/Tooltip.d.ts +18 -1
  516. package/dist/cssm/components/Tooltip/Tooltip.js +89 -68
  517. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  518. package/dist/cssm/components/Typography/Caption/Caption.css +1 -1
  519. package/dist/cssm/components/Typography/Footnote/Footnote.css +1 -1
  520. package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
  521. package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -3
  522. package/dist/cssm/components/Typography/Headline/Headline.js +10 -2
  523. package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
  524. package/dist/cssm/components/Typography/Paragraph/Paragraph.css +1 -1
  525. package/dist/cssm/components/Typography/Subhead/Subhead.css +1 -1
  526. package/dist/cssm/components/Typography/Text/Text.css +1 -1
  527. package/dist/cssm/components/Typography/Title/Title.css +1 -1
  528. package/dist/cssm/components/UsersStack/UsersStack.css +5 -5
  529. package/dist/cssm/components/View/View.css +1 -1
  530. package/dist/cssm/components/View/View.d.ts +2 -18
  531. package/dist/cssm/components/View/View.js +384 -462
  532. package/dist/cssm/components/View/View.js.map +1 -1
  533. package/dist/cssm/components/View/ViewIOS.css +1 -1
  534. package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
  535. package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.css +1 -1
  536. package/dist/cssm/components/WriteBar/WriteBar.css +3 -1
  537. package/dist/cssm/components/WriteBar/WriteBar.d.ts +5 -1
  538. package/dist/cssm/components/WriteBar/WriteBar.js +10 -5
  539. package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
  540. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.css +1 -1
  541. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +3 -6
  542. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  543. package/dist/cssm/fonts/fonts.css +1 -1
  544. package/dist/cssm/hoc/withAdaptivity.d.ts +1 -1
  545. package/dist/cssm/hoc/withAdaptivity.js.map +1 -1
  546. package/dist/cssm/hoc/withContext.d.ts +1 -1
  547. package/dist/cssm/hoc/withContext.js.map +1 -1
  548. package/dist/cssm/hoc/withPlatform.d.ts +1 -1
  549. package/dist/cssm/hoc/withPlatform.js.map +1 -1
  550. package/dist/cssm/hooks/useOrientationChange.js +2 -1
  551. package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
  552. package/dist/cssm/lib/calendar.d.ts +2 -2
  553. package/dist/cssm/styles/animations.css +1 -1
  554. package/dist/cssm/styles/bright_light.css +1 -1
  555. package/dist/cssm/styles/common.css +1 -1
  556. package/dist/cssm/styles/components.css +143 -127
  557. package/dist/cssm/styles/constants.css +3 -10
  558. package/dist/cssm/styles/space_gray.css +1 -1
  559. package/dist/cssm/styles/themes.css +1 -16
  560. package/dist/cssm/styles/unstable.css +3 -1
  561. package/dist/cssm/styles/vkcom_dark.css +1 -6
  562. package/dist/cssm/styles/vkcom_light.css +1 -11
  563. package/dist/cssm/tokenized/index.d.ts +26 -0
  564. package/dist/cssm/tokenized/index.js +13 -0
  565. package/dist/cssm/tokenized/index.js.map +1 -1
  566. package/dist/default_scheme.css +1 -1
  567. package/dist/default_scheme.css.map +1 -1
  568. package/dist/fonts.css +1 -1
  569. package/dist/fonts.css.map +1 -1
  570. package/dist/hoc/withAdaptivity.d.ts +1 -1
  571. package/dist/hoc/withAdaptivity.js.map +1 -1
  572. package/dist/hoc/withContext.d.ts +1 -1
  573. package/dist/hoc/withContext.js.map +1 -1
  574. package/dist/hoc/withPlatform.d.ts +1 -1
  575. package/dist/hoc/withPlatform.js.map +1 -1
  576. package/dist/hooks/useOrientationChange.js +2 -1
  577. package/dist/hooks/useOrientationChange.js.map +1 -1
  578. package/dist/lib/calendar.d.ts +2 -2
  579. package/dist/tokenized/index.d.ts +26 -0
  580. package/dist/tokenized/index.js +13 -0
  581. package/dist/tokenized/index.js.map +1 -1
  582. package/dist/unstable.css +3 -1
  583. package/dist/unstable.css.map +1 -1
  584. package/dist/vkui.css +144 -143
  585. package/dist/vkui.css.map +1 -1
  586. package/package.json +6 -5
  587. package/src/components/AppRoot/AppRoot.tsx +15 -11
  588. package/src/components/Badge/Badge.css +0 -5
  589. package/src/components/Button/Button.css +0 -4
  590. package/src/components/Button/Button.tsx +4 -2
  591. package/src/components/Button/Readme.md +30 -59
  592. package/src/components/CardScroll/CardScroll.tsx +1 -1
  593. package/src/components/Cell/Cell.css +3 -2
  594. package/src/components/ChipsInput/ChipsInput.css +2 -0
  595. package/src/components/ChipsSelect/ChipsSelect.tsx +8 -0
  596. package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
  597. package/src/components/Counter/Counter.css +30 -0
  598. package/src/components/CustomScrollView/CustomScrollView.css +10 -5
  599. package/src/components/CustomSelect/CustomSelect.tsx +543 -573
  600. package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +45 -22
  601. package/src/components/Dropdown/Dropdown.css +12 -0
  602. package/src/components/Dropdown/Dropdown.tsx +174 -20
  603. package/src/components/Dropdown/Readme.md +1 -0
  604. package/src/components/Epic/Epic.tsx +1 -4
  605. package/src/components/FixedLayout/Readme.md +103 -109
  606. package/src/components/FocusTrap/FocusTrap.tsx +10 -10
  607. package/src/components/FormField/FormField.css +31 -22
  608. package/src/components/FormField/FormField.tsx +4 -8
  609. package/src/components/FormField/Readme.md +9 -82
  610. package/src/components/Group/Group.css +1 -1
  611. package/src/components/Group/Readme.md +1 -1
  612. package/src/components/HorizontalCell/HorizontalCell.css +25 -43
  613. package/src/components/HorizontalCell/HorizontalCell.tsx +3 -9
  614. package/src/components/HorizontalScroll/HorizontalScroll.css +23 -0
  615. package/src/components/HorizontalScroll/HorizontalScroll.tsx +2 -0
  616. package/src/components/IconButton/IconButton.css +46 -25
  617. package/src/components/Input/Input.css +20 -9
  618. package/src/components/Input/Input.tsx +6 -5
  619. package/src/components/Input/Readme.md +128 -24
  620. package/src/components/MiniInfoCell/MiniInfoCell.css +13 -3
  621. package/src/components/MiniInfoCell/MiniInfoCell.tsx +3 -3
  622. package/src/components/ModalCardBase/ModalCardBase.tsx +2 -0
  623. package/src/components/NativeSelect/NativeSelect.tsx +2 -0
  624. package/src/components/Panel/Panel.tsx +2 -0
  625. package/src/components/PanelHeader/PanelHeader.tsx +2 -0
  626. package/src/components/Popper/Popper.css +0 -35
  627. package/src/components/Popper/Popper.tsx +33 -25
  628. package/src/components/PopperArrow/PopperArrow.css +34 -0
  629. package/src/components/PopperArrow/PopperArrow.tsx +40 -0
  630. package/src/components/Radio/Radio.tsx +2 -0
  631. package/src/components/RangeSlider/UniversalSlider.tsx +2 -0
  632. package/src/components/RichTooltip/RichTooltip.css +44 -4
  633. package/src/components/RichTooltip/RichTooltip.tsx +9 -11
  634. package/src/components/ScreenSpinner/ScreenSpinner.css +1 -1
  635. package/src/components/Select/Select.css +23 -9
  636. package/src/components/Select/Select.tsx +2 -0
  637. package/src/components/SelectMimicry/SelectMimicry.tsx +6 -2
  638. package/src/components/SimpleCell/Readme.md +115 -129
  639. package/src/components/SimpleCell/SimpleCell.css +30 -68
  640. package/src/components/SimpleCell/SimpleCell.tsx +23 -25
  641. package/src/components/Snackbar/Readme.md +95 -123
  642. package/src/components/Snackbar/Snackbar.css +18 -27
  643. package/src/components/Snackbar/Snackbar.tsx +17 -11
  644. package/src/components/SplitCol/SplitCol.css +1 -1
  645. package/src/components/SplitCol/SplitCol.tsx +2 -0
  646. package/src/components/SplitLayout/SplitLayout.css +3 -7
  647. package/src/components/SplitLayout/SplitLayout.tsx +9 -6
  648. package/src/components/Switch/Switch.css +6 -2
  649. package/src/components/Tabbar/Tabbar.css +4 -1
  650. package/src/components/Tabbar/Tabbar.tsx +23 -12
  651. package/src/components/TabbarItem/TabbarItem.css +7 -5
  652. package/src/components/TabbarItem/TabbarItem.tsx +13 -7
  653. package/src/components/Tabs/Readme.md +191 -251
  654. package/src/components/Tabs/Tabs.css +27 -80
  655. package/src/components/Tabs/Tabs.tsx +45 -7
  656. package/src/components/TabsItem/Readme.md +1 -0
  657. package/src/components/TabsItem/TabsItem.css +191 -106
  658. package/src/components/TabsItem/TabsItem.tsx +72 -20
  659. package/src/components/TextTooltip/TextTooltip.css +41 -11
  660. package/src/components/TextTooltip/TextTooltip.tsx +9 -13
  661. package/src/components/Textarea/Textarea.css +7 -3
  662. package/src/components/Textarea/Textarea.tsx +5 -4
  663. package/src/components/Tooltip/Readme.md +128 -101
  664. package/src/components/Tooltip/Tooltip.css +29 -40
  665. package/src/components/Tooltip/Tooltip.tsx +98 -66
  666. package/src/components/Typography/Headline/Headline.tsx +15 -1
  667. package/src/components/View/Readme.md +2 -0
  668. package/src/components/View/View.tsx +451 -514
  669. package/src/components/WriteBar/WriteBar.css +27 -33
  670. package/src/components/WriteBar/WriteBar.tsx +16 -5
  671. package/src/components/WriteBarIcon/WriteBarIcon.css +6 -19
  672. package/src/components/WriteBarIcon/WriteBarIcon.tsx +6 -6
  673. package/src/hoc/withAdaptivity.tsx +4 -4
  674. package/src/hoc/withContext.tsx +1 -1
  675. package/src/hoc/withPlatform.tsx +1 -1
  676. package/src/hooks/useOrientationChange.ts +1 -0
  677. package/src/styles/components.css +1 -0
  678. package/src/styles/constants.css +8 -0
  679. package/src/tokenized/index.ts +39 -0
  680. package/tsconfig.json +1 -1
  681. package/.cache/ts/src/components/ClickPopper/ClickPopper.d.ts +0 -21
  682. package/dist/cjs/components/ClickPopper/ClickPopper.js +0 -96
  683. package/dist/cjs/components/ClickPopper/ClickPopper.js.map +0 -1
  684. package/dist/components/ClickPopper/ClickPopper.d.ts +0 -21
  685. package/dist/components/ClickPopper/ClickPopper.js +0 -71
  686. package/dist/components/ClickPopper/ClickPopper.js.map +0 -1
  687. package/dist/cssm/components/ClickPopper/ClickPopper.d.ts +0 -21
  688. package/dist/cssm/components/ClickPopper/ClickPopper.js +0 -71
  689. package/dist/cssm/components/ClickPopper/ClickPopper.js.map +0 -1
  690. package/src/components/ClickPopper/ClickPopper.tsx +0 -86
@@ -17,8 +17,6 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
17
17
 
18
18
  var React = _interopRequireWildcard(require("react"));
19
19
 
20
- var _getClassName = require("../../helpers/getClassName");
21
-
22
20
  var _Tappable = require("../Tappable/Tappable");
23
21
 
24
22
  var _classNames = require("../../lib/classNames");
@@ -27,7 +25,7 @@ var _platform = require("../../lib/platform");
27
25
 
28
26
  var _usePlatform = require("../../hooks/usePlatform");
29
27
 
30
- var _utils = require("../../lib/utils");
28
+ var _useAdaptivity2 = require("../../hooks/useAdaptivity");
31
29
 
32
30
  var _Tabs = require("../Tabs/Tabs");
33
31
 
@@ -35,42 +33,61 @@ var _Headline = require("../Typography/Headline/Headline");
35
33
 
36
34
  var _Subhead = require("../Typography/Subhead/Subhead");
37
35
 
38
- var _Text = require("../Typography/Text/Text");
39
-
40
- var _excluded = ["children", "selected", "after"];
36
+ var _excluded = ["before", "children", "status", "after", "selected"];
41
37
 
42
38
  /**
43
39
  * @see https://vkcom.github.io/VKUI/#/TabsItem
44
40
  */
45
41
  var TabsItem = function TabsItem(_ref) {
46
- var children = _ref.children,
42
+ var before = _ref.before,
43
+ children = _ref.children,
44
+ status = _ref.status,
45
+ after = _ref.after,
47
46
  _ref$selected = _ref.selected,
48
47
  selected = _ref$selected === void 0 ? false : _ref$selected,
49
- after = _ref.after,
50
48
  restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
51
49
  var platform = (0, _usePlatform.usePlatform)();
52
- var mode = React.useContext(_Tabs.TabsModeContext);
53
- var ItemTypography = mode === "buttons" || mode === "segmented" ? _Subhead.Subhead : _Headline.Headline;
54
50
 
55
- if (platform === _platform.VKCOM) {
56
- ItemTypography = _Text.Text;
51
+ var _useAdaptivity = (0, _useAdaptivity2.useAdaptivity)(),
52
+ sizeY = _useAdaptivity.sizeY;
53
+
54
+ var _React$useContext = React.useContext(_Tabs.TabsModeContext),
55
+ mode = _React$useContext.mode,
56
+ withGaps = _React$useContext.withGaps;
57
+
58
+ var statusComponent = null;
59
+
60
+ if (status) {
61
+ statusComponent = typeof status === "number" ? (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
62
+ Component: "span",
63
+ vkuiClass: "TabsItem__status TabsItem__status--count",
64
+ weight: "2"
65
+ }, status) : (0, _jsxRuntime.createScopedElement)("span", {
66
+ vkuiClass: "TabsItem__status"
67
+ }, status);
57
68
  }
58
69
 
59
70
  return (0, _jsxRuntime.createScopedElement)(_Tappable.Tappable, (0, _extends2.default)({}, restProps, {
60
- // eslint-disable-next-line vkui/no-object-expression-in-arguments
61
- vkuiClass: (0, _classNames.classNames)((0, _getClassName.getClassName)("TabsItem", platform), {
62
- "TabsItem--selected": selected
63
- }),
64
- hasActive: mode === "segmented",
71
+ vkuiClass: (0, _classNames.classNames)("TabsItem", (platform === _platform.IOS || platform === _platform.VKCOM) && "TabsItem--".concat(platform), mode && "TabsItem--".concat(mode), selected && "TabsItem--selected", // TODO v5.0.0 новая адаптивность
72
+ sizeY && "TabsItem--sizeY-".concat(sizeY), withGaps && "TabsItem--withGaps"),
73
+ hoverMode: "TabsItem--hover",
65
74
  activeMode: "TabsItem--active",
66
- focusVisibleMode: mode === "segmented" ? "outside" : "inside"
67
- }), (0, _jsxRuntime.createScopedElement)(ItemTypography, {
75
+ focusVisibleMode: mode === "segmented" ? "outside" : "inside",
76
+ hasActive: mode === "segmented"
77
+ }), before && (0, _jsxRuntime.createScopedElement)("div", {
78
+ vkuiClass: "TabsItem__before"
79
+ }, before), (0, _jsxRuntime.createScopedElement)(_Headline.Headline, {
68
80
  Component: "span",
69
- vkuiClass: "TabsItem__in",
81
+ vkuiClass: "TabsItem__label",
82
+ level: mode === "default" ? "1" : "2",
70
83
  weight: "2"
71
- }, children), (0, _utils.hasReactNode)(after) && (0, _jsxRuntime.createScopedElement)("div", {
84
+ }, children), statusComponent, after && (0, _jsxRuntime.createScopedElement)("div", {
72
85
  vkuiClass: "TabsItem__after"
73
- }, after));
86
+ }, after), mode === "default" && (0, _jsxRuntime.createScopedElement)("div", {
87
+ vkuiClass: "TabsItem__underline",
88
+ "aria-hidden": true,
89
+ "data-selected": selected
90
+ }));
74
91
  };
75
92
 
76
93
  exports.TabsItem = TabsItem;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TabsItem/TabsItem.tsx"],"names":["TabsItem","children","selected","after","restProps","platform","mode","React","useContext","TabsModeContext","ItemTypography","Subhead","Headline","VKCOM","Text"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAQA;AACA;AACA;AACO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAKH;AAAA,MAJnBC,QAImB,QAJnBA,QAImB;AAAA,2BAHnBC,QAGmB;AAAA,MAHnBA,QAGmB,8BAHR,KAGQ;AAAA,MAFnBC,KAEmB,QAFnBA,KAEmB;AAAA,MADhBC,SACgB;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;AACA,MAAMC,IAAuB,GAAGC,KAAK,CAACC,UAAN,CAAiBC,qBAAjB,CAAhC;AAEA,MAAIC,cAAc,GAChBJ,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,WAA/B,GAA6CK,gBAA7C,GAAuDC,kBADzD;;AAGA,MAAIP,QAAQ,KAAKQ,eAAjB,EAAwB;AACtBH,IAAAA,cAAc,GAAGI,UAAjB;AACD;;AAED,SACE,qCAAC,kBAAD,6BACMV,SADN;AAEE;AACA,IAAA,SAAS,EAAE,4BAAW,gCAAa,UAAb,EAAyBC,QAAzB,CAAX,EAA+C;AACxD,4BAAsBH;AADkC,KAA/C,CAHb;AAME,IAAA,SAAS,EAAEI,IAAI,KAAK,WANtB;AAOE,IAAA,UAAU,EAAC,kBAPb;AAQE,IAAA,gBAAgB,EAAEA,IAAI,KAAK,WAAT,GAAuB,SAAvB,GAAmC;AARvD,MAUE,qCAAC,cAAD;AAAgB,IAAA,SAAS,EAAC,MAA1B;AAAiC,IAAA,SAAS,EAAC,cAA3C;AAA0D,IAAA,MAAM,EAAC;AAAjE,KACGL,QADH,CAVF,EAaG,yBAAaE,KAAb,KAAuB;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CAb1B,CADF;AAiBD,CAjCM","sourcesContent":["import * as React from \"react\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { VKCOM } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { TabsProps, TabsModeContext } from \"../Tabs/Tabs\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { Text } from \"../Typography/Text/Text\";\nimport \"./TabsItem.css\";\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n after?: React.ReactNode;\n selected?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabsItem\n */\nexport const TabsItem = ({\n children,\n selected = false,\n after,\n ...restProps\n}: TabsItemProps) => {\n const platform = usePlatform();\n const mode: TabsProps[\"mode\"] = React.useContext(TabsModeContext);\n\n let ItemTypography =\n mode === \"buttons\" || mode === \"segmented\" ? Subhead : Headline;\n\n if (platform === VKCOM) {\n ItemTypography = Text;\n }\n\n return (\n <Tappable\n {...restProps}\n // eslint-disable-next-line vkui/no-object-expression-in-arguments\n vkuiClass={classNames(getClassName(\"TabsItem\", platform), {\n \"TabsItem--selected\": selected,\n })}\n hasActive={mode === \"segmented\"}\n activeMode=\"TabsItem--active\"\n focusVisibleMode={mode === \"segmented\" ? \"outside\" : \"inside\"}\n >\n <ItemTypography Component=\"span\" vkuiClass=\"TabsItem__in\" weight=\"2\">\n {children}\n </ItemTypography>\n {hasReactNode(after) && <div vkuiClass=\"TabsItem__after\">{after}</div>}\n </Tappable>\n );\n};\n"],"file":"TabsItem.js"}
1
+ {"version":3,"sources":["../../../../src/components/TabsItem/TabsItem.tsx"],"names":["TabsItem","before","children","status","after","selected","restProps","platform","sizeY","React","useContext","TabsModeContext","mode","withGaps","statusComponent","IOS","VKCOM"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AA6BA;AACA;AACA;AACO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,OAOH;AAAA,MANnBC,MAMmB,QANnBA,MAMmB;AAAA,MALnBC,QAKmB,QALnBA,QAKmB;AAAA,MAJnBC,MAImB,QAJnBA,MAImB;AAAA,MAHnBC,KAGmB,QAHnBA,KAGmB;AAAA,2BAFnBC,QAEmB;AAAA,MAFnBA,QAEmB,8BAFR,KAEQ;AAAA,MADhBC,SACgB;AACnB,MAAMC,QAAQ,GAAG,+BAAjB;;AACA,uBAAkB,oCAAlB;AAAA,MAAQC,KAAR,kBAAQA,KAAR;;AACA,0BACEC,KAAK,CAACC,UAAN,CAAiBC,qBAAjB,CADF;AAAA,MAAQC,IAAR,qBAAQA,IAAR;AAAA,MAAcC,QAAd,qBAAcA,QAAd;;AAEA,MAAIC,eAAe,GAAG,IAAtB;;AAEA,MAAIX,MAAJ,EAAY;AACVW,IAAAA,eAAe,GACb,OAAOX,MAAP,KAAkB,QAAlB,GACE,qCAAC,gBAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,SAAS,EAAC,0CAFZ;AAGE,MAAA,MAAM,EAAC;AAHT,OAKGA,MALH,CADF,GASE;AAAM,MAAA,SAAS,EAAC;AAAhB,OAAoCA,MAApC,CAVJ;AAYD;;AAED,SACE,qCAAC,kBAAD,6BACMG,SADN;AAEE,IAAA,SAAS,EAAE,4BACT,UADS,EAET,CAACC,QAAQ,KAAKQ,aAAb,IAAoBR,QAAQ,KAAKS,eAAlC,yBAAyDT,QAAzD,CAFS,EAGTK,IAAI,wBAAiBA,IAAjB,CAHK,EAITP,QAAQ,IAAI,oBAJH,EAKT;AACAG,IAAAA,KAAK,8BAAuBA,KAAvB,CANI,EAOTK,QAAQ,IAAI,oBAPH,CAFb;AAWE,IAAA,SAAS,EAAC,iBAXZ;AAYE,IAAA,UAAU,EAAC,kBAZb;AAaE,IAAA,gBAAgB,EAAED,IAAI,KAAK,WAAT,GAAuB,SAAvB,GAAmC,QAbvD;AAcE,IAAA,SAAS,EAAEA,IAAI,KAAK;AAdtB,MAgBGX,MAAM,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAmCA,MAAnC,CAhBb,EAiBE,qCAAC,kBAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,SAAS,EAAC,iBAFZ;AAGE,IAAA,KAAK,EAAEW,IAAI,KAAK,SAAT,GAAqB,GAArB,GAA2B,GAHpC;AAIE,IAAA,MAAM,EAAC;AAJT,KAMGV,QANH,CAjBF,EAyBGY,eAzBH,EA0BGV,KAAK,IAAI;AAAK,IAAA,SAAS,EAAC;AAAf,KAAkCA,KAAlC,CA1BZ,EA2BGQ,IAAI,KAAK,SAAT,IACC;AACE,IAAA,SAAS,EAAC,qBADZ;AAEE,uBAFF;AAGE,qBAAeP;AAHjB,IA5BJ,CADF;AAqCD,CAlEM","sourcesContent":["import * as React from \"react\";\nimport { Tappable } from \"../Tappable/Tappable\";\nimport { classNames } from \"../../lib/classNames\";\nimport { IOS, VKCOM } from \"../../lib/platform\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { useAdaptivity } from \"../../hooks/useAdaptivity\";\nimport { TabsModeContext, TabsContextProps } from \"../Tabs/Tabs\";\nimport { Headline } from \"../Typography/Headline/Headline\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport \"./TabsItem.css\";\n\nexport interface TabsItemProps extends React.HTMLAttributes<HTMLElement> {\n /**\n * Добавляет иконку слева.\n *\n * - Для `mode=\"default\"` используйте иконки размером 24.\n * - Для всех остальных `mode` используйте иконки размером 20.\n */\n before?: React.ReactNode;\n /**\n * Добавляет элемент слева от `after`.\n *\n * - `React.ReactElement` – либо [`Badge`](https://vkcom.github.io/VKUI/#/Badge) с параметром `mode=\"prominent\"`.\n * либо [`Counter`](https://vkcom.github.io/VKUI/#/Counter) с параметрами `mode=\"prominent\" size=\"s\"`.\n * - `number` – для показа текстового блока с переданным числом.\n */\n status?: React.ReactElement | number;\n /**\n * Добавляет иконку справа.\n *\n * Например, `<Icon16Dropdown />`\n */\n after?: React.ReactNode;\n selected?: boolean;\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TabsItem\n */\nexport const TabsItem = ({\n before,\n children,\n status,\n after,\n selected = false,\n ...restProps\n}: TabsItemProps) => {\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const { mode, withGaps }: TabsContextProps =\n React.useContext(TabsModeContext);\n let statusComponent = null;\n\n if (status) {\n statusComponent =\n typeof status === \"number\" ? (\n <Subhead\n Component=\"span\"\n vkuiClass=\"TabsItem__status TabsItem__status--count\"\n weight=\"2\"\n >\n {status}\n </Subhead>\n ) : (\n <span vkuiClass=\"TabsItem__status\">{status}</span>\n );\n }\n\n return (\n <Tappable\n {...restProps}\n vkuiClass={classNames(\n \"TabsItem\",\n (platform === IOS || platform === VKCOM) && `TabsItem--${platform}`,\n mode && `TabsItem--${mode}`,\n selected && \"TabsItem--selected\",\n // TODO v5.0.0 новая адаптивность\n sizeY && `TabsItem--sizeY-${sizeY}`,\n withGaps && \"TabsItem--withGaps\"\n )}\n hoverMode=\"TabsItem--hover\"\n activeMode=\"TabsItem--active\"\n focusVisibleMode={mode === \"segmented\" ? \"outside\" : \"inside\"}\n hasActive={mode === \"segmented\"}\n >\n {before && <div vkuiClass=\"TabsItem__before\">{before}</div>}\n <Headline\n Component=\"span\"\n vkuiClass=\"TabsItem__label\"\n level={mode === \"default\" ? \"1\" : \"2\"}\n weight=\"2\"\n >\n {children}\n </Headline>\n {statusComponent}\n {after && <div vkuiClass=\"TabsItem__after\">{after}</div>}\n {mode === \"default\" && (\n <div\n vkuiClass=\"TabsItem__underline\"\n aria-hidden\n data-selected={selected}\n />\n )}\n </Tappable>\n );\n};\n"],"file":"TabsItem.js"}
@@ -19,17 +19,15 @@ var React = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _HoverPopper = require("../HoverPopper/HoverPopper");
21
21
 
22
- var _getClassName = require("../../helpers/getClassName");
23
-
24
- var _usePlatform = require("../../hooks/usePlatform");
25
-
26
22
  var _utils = require("../../lib/utils");
27
23
 
28
24
  var _Subhead = require("../Typography/Subhead/Subhead");
29
25
 
30
26
  var _prefixClass = require("../../lib/prefixClass");
31
27
 
32
- var _excluded = ["children", "text", "header"];
28
+ var _classNames = require("../../lib/classNames");
29
+
30
+ var _excluded = ["children", "text", "header", "appearance"];
33
31
 
34
32
  /**
35
33
  * @see https://vkcom.github.io/VKUI/#/TextTooltip
@@ -38,18 +36,17 @@ var TextTooltip = function TextTooltip(_ref) {
38
36
  var children = _ref.children,
39
37
  text = _ref.text,
40
38
  header = _ref.header,
39
+ _ref$appearance = _ref.appearance,
40
+ appearance = _ref$appearance === void 0 ? "black" : _ref$appearance,
41
41
  popperProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
42
- var platform = (0, _usePlatform.usePlatform)();
43
42
  return (0, _jsxRuntime.createScopedElement)(_HoverPopper.HoverPopper, (0, _extends2.default)({
44
- vkuiClass: (0, _getClassName.getClassName)("TextTooltip", platform),
43
+ vkuiClass: (0, _classNames.classNames)("TextTooltip", "TextTooltip--".concat(appearance)),
45
44
  arrow: true,
46
45
  arrowClassName: (0, _prefixClass.prefixClass)("TextTooltip__arrow"),
47
46
  content: (0, _jsxRuntime.createScopedElement)(React.Fragment, null, (0, _utils.hasReactNode)(header) && (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
48
- Component: "span",
49
47
  weight: "2",
50
48
  vkuiClass: "TextTooltip__header"
51
49
  }, header), (0, _utils.hasReactNode)(text) && (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
52
- Component: "span",
53
50
  vkuiClass: "TextTooltip__text"
54
51
  }, text))
55
52
  }, popperProps), children);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/TextTooltip/TextTooltip.tsx"],"names":["TextTooltip","children","text","header","popperProps","platform"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAeA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAKH;AAAA,MAJtBC,QAIsB,QAJtBA,QAIsB;AAAA,MAHtBC,IAGsB,QAHtBA,IAGsB;AAAA,MAFtBC,MAEsB,QAFtBA,MAEsB;AAAA,MADnBC,WACmB;AACtB,MAAMC,QAAQ,GAAG,+BAAjB;AAEA,SACE,qCAAC,wBAAD;AACE,IAAA,SAAS,EAAE,gCAAa,aAAb,EAA4BA,QAA5B,CADb;AAEE,IAAA,KAAK,MAFP;AAGE,IAAA,cAAc,EAAE,8BAAY,oBAAZ,CAHlB;AAIE,IAAA,OAAO,EACL,qCAAC,KAAD,CAAO,QAAP,QACG,yBAAaF,MAAb,KACC,qCAAC,gBAAD;AACE,MAAA,SAAS,EAAC,MADZ;AAEE,MAAA,MAAM,EAAC,GAFT;AAGE,MAAA,SAAS,EAAC;AAHZ,OAKGA,MALH,CAFJ,EAUG,yBAAaD,IAAb,KACC,qCAAC,gBAAD;AAAS,MAAA,SAAS,EAAC,MAAnB;AAA0B,MAAA,SAAS,EAAC;AAApC,OACGA,IADH,CAXJ;AALJ,KAsBME,WAtBN,GAwBGH,QAxBH,CADF;AA4BD,CApCM","sourcesContent":["import * as React from \"react\";\nimport { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport \"./TextTooltip.css\";\n\nexport interface TextTooltipProps\n extends Omit<HoverPopperProps, \"arrow\" | \"arrowClassName\" | \"content\"> {\n /**\n * Текст тултипа\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа\n */\n header?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TextTooltip\n */\nexport const TextTooltip = ({\n children,\n text,\n header,\n ...popperProps\n}: TextTooltipProps) => {\n const platform = usePlatform();\n\n return (\n <HoverPopper\n vkuiClass={getClassName(\"TextTooltip\", platform)}\n arrow\n arrowClassName={prefixClass(\"TextTooltip__arrow\")}\n content={\n <React.Fragment>\n {hasReactNode(header) && (\n <Subhead\n Component=\"span\"\n weight=\"2\"\n vkuiClass=\"TextTooltip__header\"\n >\n {header}\n </Subhead>\n )}\n {hasReactNode(text) && (\n <Subhead Component=\"span\" vkuiClass=\"TextTooltip__text\">\n {text}\n </Subhead>\n )}\n </React.Fragment>\n }\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"TextTooltip.js"}
1
+ {"version":3,"sources":["../../../../src/components/TextTooltip/TextTooltip.tsx"],"names":["TextTooltip","children","text","header","appearance","popperProps"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAmBA;AACA;AACA;AACO,IAAMA,WAAW,GAAG,SAAdA,WAAc,OAMH;AAAA,MALtBC,QAKsB,QALtBA,QAKsB;AAAA,MAJtBC,IAIsB,QAJtBA,IAIsB;AAAA,MAHtBC,MAGsB,QAHtBA,MAGsB;AAAA,6BAFtBC,UAEsB;AAAA,MAFtBA,UAEsB,gCAFT,OAES;AAAA,MADnBC,WACmB;AACtB,SACE,qCAAC,wBAAD;AACE,IAAA,SAAS,EAAE,4BAAW,aAAX,yBAA0CD,UAA1C,EADb;AAEE,IAAA,KAAK,MAFP;AAGE,IAAA,cAAc,EAAE,8BAAY,oBAAZ,CAHlB;AAIE,IAAA,OAAO,EACL,qCAAC,KAAD,CAAO,QAAP,QACG,yBAAaD,MAAb,KACC,qCAAC,gBAAD;AAAS,MAAA,MAAM,EAAC,GAAhB;AAAoB,MAAA,SAAS,EAAC;AAA9B,OACGA,MADH,CAFJ,EAMG,yBAAaD,IAAb,KACC,qCAAC,gBAAD;AAAS,MAAA,SAAS,EAAC;AAAnB,OAAwCA,IAAxC,CAPJ;AALJ,KAgBMG,WAhBN,GAkBGJ,QAlBH,CADF;AAsBD,CA7BM","sourcesContent":["import * as React from \"react\";\nimport { HoverPopper, HoverPopperProps } from \"../HoverPopper/HoverPopper\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { classNames } from \"../../lib/classNames\";\nimport \"./TextTooltip.css\";\n\nexport interface TextTooltipProps\n extends Omit<HoverPopperProps, \"arrow\" | \"arrowClassName\" | \"content\"> {\n /**\n * Текст тултипа\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа\n */\n header?: React.ReactNode;\n /**\n * Стиль отображения подсказки\n */\n appearance?: \"accent\" | \"neutral\" | \"white\" | \"black\" | \"inversion\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/TextTooltip\n */\nexport const TextTooltip = ({\n children,\n text,\n header,\n appearance = \"black\", // TODO v5 сменить по умолчанию на \"neutral\"\n ...popperProps\n}: TextTooltipProps) => {\n return (\n <HoverPopper\n vkuiClass={classNames(\"TextTooltip\", `TextTooltip--${appearance}`)}\n arrow\n arrowClassName={prefixClass(\"TextTooltip__arrow\")}\n content={\n <React.Fragment>\n {hasReactNode(header) && (\n <Subhead weight=\"2\" vkuiClass=\"TextTooltip__header\">\n {header}\n </Subhead>\n )}\n {hasReactNode(text) && (\n <Subhead vkuiClass=\"TextTooltip__text\">{text}</Subhead>\n )}\n </React.Fragment>\n }\n {...popperProps}\n >\n {children}\n </HoverPopper>\n );\n};\n"],"file":"TextTooltip.js"}
@@ -31,9 +31,6 @@ var _useExternRef = require("../../hooks/useExternRef");
31
31
 
32
32
  var _excluded = ["defaultValue", "grow", "style", "onResize", "className", "getRootRef", "getRef", "sizeY", "rows", "maxHeight"];
33
33
 
34
- /**
35
- * @see https://vkcom.github.io/VKUI/#/Textarea
36
- */
37
34
  var TextareaComponent = function TextareaComponent(_ref) {
38
35
  var _ref$defaultValue = _ref.defaultValue,
39
36
  defaultValue = _ref$defaultValue === void 0 ? "" : _ref$defaultValue,
@@ -90,11 +87,15 @@ var TextareaComponent = function TextareaComponent(_ref) {
90
87
  onChange: onChange,
91
88
  ref: elementRef
92
89
  })));
93
- }; // eslint-disable-next-line import/no-default-export
90
+ };
91
+ /**
92
+ * @see https://vkcom.github.io/VKUI/#/Textarea
93
+ */
94
94
 
95
95
 
96
96
  var Textarea = (0, _withAdaptivity.withAdaptivity)(TextareaComponent, {
97
97
  sizeY: true
98
98
  });
99
99
  exports.Textarea = Textarea;
100
+ Textarea.displayName = "Textarea";
100
101
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":["TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","React","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAcA;AACA;AACA;AACA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,OAYL;AAAA,+BAXnBC,YAWmB;AAAA,MAXnBA,YAWmB,kCAXJ,EAWI;AAAA,uBAVnBC,IAUmB;AAAA,MAVnBA,IAUmB,0BAVZ,IAUY;AAAA,MATnBC,KASmB,QATnBA,KASmB;AAAA,MARnBC,QAQmB,QARnBA,QAQmB;AAAA,MAPnBC,SAOmB,QAPnBA,SAOmB;AAAA,MANnBC,UAMmB,QANnBA,UAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,MAJnBC,KAImB,QAJnBA,KAImB;AAAA,uBAHnBC,IAGmB;AAAA,MAHnBA,IAGmB,0BAHZ,CAGY;AAAA,MAFnBC,SAEmB,QAFnBA,SAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0B,2CAAkBA,SAAlB,EAA6B;AAAEV,IAAAA,YAAY,EAAZA;AAAF,GAA7B,CAA1B;AAAA;AAAA,MAAOW,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGC,KAAK,CAACC,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAG,gCAAaV,MAAb,CAAnB,CAHmB,CAKnB;;AACAQ,EAAAA,KAAK,CAACG,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIlB,IAAI,IAAIiB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBT,mBAAmB,CAACM,OAAxC,IAAmDhB,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACe,EAAD,CAAR;AACAL,QAAAA,mBAAmB,CAACM,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACrB,IAAD,EAAOU,KAAP,EAAcJ,KAAd,EAAqBS,UAArB,EAAiCb,QAAjC,CAZH;AAcA,SACE,qCAAC,oBAAD;AACE,IAAA,SAAS,EAAE,4BACT,UADS,EAET;AAFS,8BAGUI,KAHV,EADb;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEK,SAAS,CAACa;AATtB,KAWE,4EACMb,SADN;AAEE,IAAA,KAAK,EAAE;AAAED,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEG,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEI;AAPP,KAXF,CADF;AAuBD,CAvDD,C,CAyDA;;;AACO,IAAMQ,QAAQ,GAAG,oCAAezB,iBAAf,EAAkC;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAAlC,CAAjB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n// eslint-disable-next-line import/no-default-export\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n"],"file":"Textarea.js"}
1
+ {"version":3,"sources":["../../../../src/components/Textarea/Textarea.tsx"],"names":["TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","React","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;;;AAcA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,OAYL;AAAA,+BAXnBC,YAWmB;AAAA,MAXnBA,YAWmB,kCAXJ,EAWI;AAAA,uBAVnBC,IAUmB;AAAA,MAVnBA,IAUmB,0BAVZ,IAUY;AAAA,MATnBC,KASmB,QATnBA,KASmB;AAAA,MARnBC,QAQmB,QARnBA,QAQmB;AAAA,MAPnBC,SAOmB,QAPnBA,SAOmB;AAAA,MANnBC,UAMmB,QANnBA,UAMmB;AAAA,MALnBC,MAKmB,QALnBA,MAKmB;AAAA,MAJnBC,KAImB,QAJnBA,KAImB;AAAA,uBAHnBC,IAGmB;AAAA,MAHnBA,IAGmB,0BAHZ,CAGY;AAAA,MAFnBC,SAEmB,QAFnBA,SAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0B,2CAAkBA,SAAlB,EAA6B;AAAEV,IAAAA,YAAY,EAAZA;AAAF,GAA7B,CAA1B;AAAA;AAAA,MAAOW,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGC,KAAK,CAACC,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAG,gCAAaV,MAAb,CAAnB,CAHmB,CAKnB;;AACAQ,EAAAA,KAAK,CAACG,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIlB,IAAI,IAAIiB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBT,mBAAmB,CAACM,OAAxC,IAAmDhB,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACe,EAAD,CAAR;AACAL,QAAAA,mBAAmB,CAACM,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACrB,IAAD,EAAOU,KAAP,EAAcJ,KAAd,EAAqBS,UAArB,EAAiCb,QAAjC,CAZH;AAcA,SACE,qCAAC,oBAAD;AACE,IAAA,SAAS,EAAE,4BACT,UADS,EAET;AAFS,8BAGUI,KAHV,EADb;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEK,SAAS,CAACa;AATtB,KAWE,4EACMb,SADN;AAEE,IAAA,KAAK,EAAE;AAAED,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEG,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEI;AAPP,KAXF,CADF;AAuBD,CAvDD;AAyDA;AACA;AACA;;;AACO,IAAMQ,QAAQ,GAAG,oCAAezB,iBAAf,EAAkC;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAAlC,CAAjB;;AAEPiB,QAAQ,CAACC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n\nTextarea.displayName = \"Textarea\";\n"],"file":"Textarea.js"}
@@ -17,10 +17,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
19
 
20
- var _jsxRuntime = require("../../lib/jsxRuntime");
21
-
22
20
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
23
21
 
22
+ var _jsxRuntime = require("../../lib/jsxRuntime");
23
+
24
24
  var React = _interopRequireWildcard(require("react"));
25
25
 
26
26
  var _reactDom = _interopRequireDefault(require("react-dom"));
@@ -33,6 +33,8 @@ var _Subhead = require("../Typography/Subhead/Subhead");
33
33
 
34
34
  var _NavTransitionContext = require("../NavTransitionContext/NavTransitionContext");
35
35
 
36
+ var _PopperArrow = require("../PopperArrow/PopperArrow");
37
+
36
38
  var _reactPopper = require("react-popper");
37
39
 
38
40
  var _TooltipContainer = require("./TooltipContainer");
@@ -45,9 +47,11 @@ var _warnOnce = require("../../lib/warnOnce");
45
47
 
46
48
  var _utils = require("../../lib/utils");
47
49
 
50
+ var _prefixClass = require("../../lib/prefixClass");
51
+
48
52
  var _useGlobalEventListener = require("../../hooks/useGlobalEventListener");
49
53
 
50
- var _excluded = ["children", "isShown", "offsetX", "offsetY", "alignX", "alignY", "onClose", "cornerOffset", "cornerAbsoluteOffset", "mode"];
54
+ var _excluded = ["children", "isShown", "offsetX", "offsetY", "alignX", "alignY", "onClose", "cornerOffset", "cornerAbsoluteOffset", "mode", "appearance", "arrow", "placement"];
51
55
 
52
56
  var isDOMTypeElement = function isDOMTypeElement(element) {
53
57
  return /*#__PURE__*/React.isValidElement(element) && typeof element.type === "string";
@@ -57,29 +61,28 @@ var baseClassName = (0, _getClassName.getClassName)("Tooltip");
57
61
  var warn = (0, _warnOnce.warnOnce)("Tooltip");
58
62
  var IS_DEV = process.env.NODE_ENV === "development";
59
63
  var SimpleTooltip = /*#__PURE__*/React.forwardRef(function SimpleTooltip(_ref, ref) {
60
- var _ref$mode = _ref.mode,
61
- mode = _ref$mode === void 0 ? "accent" : _ref$mode,
64
+ var _ref$appearance = _ref.appearance,
65
+ appearance = _ref$appearance === void 0 ? "accent" : _ref$appearance,
62
66
  header = _ref.header,
63
67
  text = _ref.text,
64
- arrowRef = _ref.arrowRef,
68
+ arrow = _ref.arrow,
65
69
  _ref$style = _ref.style,
66
70
  style = _ref$style === void 0 ? {} : _ref$style,
67
71
  attributes = _ref.attributes;
68
72
  return (0, _jsxRuntime.createScopedElement)("div", {
69
- vkuiClass: (0, _classNames.classNames)(baseClassName, "Tooltip--".concat(mode))
73
+ vkuiClass: (0, _classNames.classNames)(baseClassName, "Tooltip--".concat(appearance))
70
74
  }, (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({
71
75
  vkuiClass: "Tooltip__container",
72
76
  ref: ref,
73
77
  style: style.container
74
- }, attributes === null || attributes === void 0 ? void 0 : attributes.container), (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({
75
- vkuiClass: "Tooltip__corner",
76
- style: style.arrow
77
- }, attributes === null || attributes === void 0 ? void 0 : attributes.arrow, {
78
- ref: arrowRef
79
- })), (0, _jsxRuntime.createScopedElement)("div", {
78
+ }, attributes === null || attributes === void 0 ? void 0 : attributes.container), arrow && (0, _jsxRuntime.createScopedElement)(_PopperArrow.PopperArrow, {
79
+ style: style.arrow,
80
+ attributes: attributes === null || attributes === void 0 ? void 0 : attributes.arrow,
81
+ arrowClassName: (0, _prefixClass.prefixClass)("Tooltip__arrow")
82
+ }), (0, _jsxRuntime.createScopedElement)("div", {
80
83
  vkuiClass: "Tooltip__content"
81
84
  }, header && (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
82
- weight: "1",
85
+ weight: "2",
83
86
  vkuiClass: "Tooltip__title"
84
87
  }, header), text && (0, _jsxRuntime.createScopedElement)(_Subhead.Subhead, {
85
88
  vkuiClass: "Tooltip__text"
@@ -108,6 +111,19 @@ function getPlacement(alignX, alignY) {
108
111
  function isVerticalPlacement(placement) {
109
112
  return placement.startsWith("top") || placement.startsWith("bottom");
110
113
  }
114
+ /**
115
+ * Вычисляем стиль подсказки: параметр appearance имеет приоритет, иначе мапим mode на подходящее значение из appearance
116
+ * TODO: v5 избавиться от пропа mode и этого метода, для appearance по умолчанию сделать "accent"
117
+ */
118
+
119
+
120
+ function calculateAppearance(mode, appearance) {
121
+ if (appearance) {
122
+ return appearance;
123
+ }
124
+
125
+ return mode === "light" ? "white" : "accent";
126
+ }
111
127
  /**
112
128
  * @see https://vkcom.github.io/VKUI/#/Tooltip
113
129
  */
@@ -131,6 +147,10 @@ var Tooltip = function Tooltip(_ref2) {
131
147
  cornerAbsoluteOffset = _ref2.cornerAbsoluteOffset,
132
148
  _ref2$mode = _ref2.mode,
133
149
  mode = _ref2$mode === void 0 ? "accent" : _ref2$mode,
150
+ appearance = _ref2.appearance,
151
+ _ref2$arrow = _ref2.arrow,
152
+ arrow = _ref2$arrow === void 0 ? true : _ref2$arrow,
153
+ placement = _ref2.placement,
134
154
  restProps = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
135
155
 
136
156
  var _useNavTransition = (0, _NavTransitionContext.useNavTransition)(),
@@ -143,15 +163,10 @@ var Tooltip = function Tooltip(_ref2) {
143
163
  tooltipRef = _React$useState2[0],
144
164
  setTooltipRef = _React$useState2[1];
145
165
 
146
- var _React$useState3 = React.useState(null),
166
+ var _React$useState3 = React.useState(),
147
167
  _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
148
- tooltipArrowRef = _React$useState4[0],
149
- setTooltipArrowRef = _React$useState4[1];
150
-
151
- var _React$useState5 = React.useState(),
152
- _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
153
- target = _React$useState6[0],
154
- setTarget = _React$useState6[1];
168
+ target = _React$useState4[0],
169
+ setTarget = _React$useState4[1];
155
170
 
156
171
  if (IS_DEV) {
157
172
  var multiChildren = React.Children.count(children) > 1; // Empty children is a noop
@@ -178,63 +193,70 @@ var Tooltip = function Tooltip(_ref2) {
178
193
  throw new Error("Use TooltipContainer for Tooltip outside Panel (see docs)");
179
194
  }
180
195
 
181
- var arrowOffsetModifier = React.useMemo(function () {
182
- return {
183
- name: "arrowOffset",
184
- enabled: true,
185
- phase: "main",
186
- fn: function fn(_ref3) {
187
- var state = _ref3.state;
196
+ var modifiers = React.useMemo(function () {
197
+ var modifiers = [{
198
+ name: "offset",
199
+ options: {
200
+ offset: [offsetX, offsetY]
201
+ }
202
+ }, {
203
+ name: "preventOverflow"
204
+ }, {
205
+ name: "flip"
206
+ }];
188
207
 
189
- if (!state.modifiersData.arrow) {
190
- return;
208
+ if (arrow) {
209
+ modifiers.push({
210
+ name: "arrow",
211
+ options: {
212
+ padding: 14
191
213
  }
214
+ });
215
+ modifiers.push({
216
+ name: "arrowOffset",
217
+ enabled: true,
218
+ phase: "main",
219
+ fn: function fn(_ref3) {
220
+ var state = _ref3.state;
221
+
222
+ if (!state.modifiersData.arrow) {
223
+ return;
224
+ }
192
225
 
193
- if (isVerticalPlacement(state.placement)) {
194
- if (cornerAbsoluteOffset !== undefined) {
195
- state.modifiersData.arrow.x = cornerAbsoluteOffset;
196
- } else {
197
- var _state$modifiersData$;
226
+ if (isVerticalPlacement(state.placement)) {
227
+ if (cornerAbsoluteOffset !== undefined) {
228
+ state.modifiersData.arrow.x = cornerAbsoluteOffset;
229
+ } else {
230
+ var _state$modifiersData$;
198
231
 
199
- if (((_state$modifiersData$ = state.modifiersData.arrow) === null || _state$modifiersData$ === void 0 ? void 0 : _state$modifiersData$.x) !== undefined) {
200
- state.modifiersData.arrow.x += cornerOffset;
232
+ if (((_state$modifiersData$ = state.modifiersData.arrow) === null || _state$modifiersData$ === void 0 ? void 0 : _state$modifiersData$.x) !== undefined) {
233
+ state.modifiersData.arrow.x += cornerOffset;
234
+ }
201
235
  }
202
- }
203
- } else {
204
- if (cornerAbsoluteOffset !== undefined) {
205
- state.modifiersData.arrow.y = cornerAbsoluteOffset;
206
236
  } else {
207
- var _state$modifiersData$2;
208
-
209
- if (((_state$modifiersData$2 = state.modifiersData.arrow) === null || _state$modifiersData$2 === void 0 ? void 0 : _state$modifiersData$2.y) !== undefined) {
210
- state.modifiersData.arrow.y += cornerOffset;
237
+ if (cornerAbsoluteOffset !== undefined) {
238
+ state.modifiersData.arrow.y = cornerAbsoluteOffset;
239
+ } else {
240
+ var _state$modifiersData$2;
241
+
242
+ if (((_state$modifiersData$2 = state.modifiersData.arrow) === null || _state$modifiersData$2 === void 0 ? void 0 : _state$modifiersData$2.y) !== undefined) {
243
+ state.modifiersData.arrow.y += cornerOffset;
244
+ }
211
245
  }
212
246
  }
213
247
  }
214
- }
215
- };
216
- }, [cornerOffset, cornerAbsoluteOffset]);
217
- var placement = getPlacement(alignX, alignY);
248
+ });
249
+ }
250
+
251
+ return modifiers;
252
+ }, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY]);
253
+
254
+ var _placement = placement !== null && placement !== void 0 ? placement : getPlacement(alignX, alignY);
218
255
 
219
256
  var _usePopper = (0, _reactPopper.usePopper)(target, tooltipRef, {
220
257
  strategy: strategy,
221
- placement: placement,
222
- modifiers: [{
223
- name: "offset",
224
- options: {
225
- offset: [offsetX, offsetY]
226
- }
227
- }, {
228
- name: "arrow",
229
- options: {
230
- element: tooltipArrowRef,
231
- padding: 14
232
- }
233
- }, {
234
- name: "preventOverflow"
235
- }, {
236
- name: "flip"
237
- }, arrowOffsetModifier]
258
+ placement: _placement,
259
+ modifiers: modifiers
238
260
  }),
239
261
  styles = _usePopper.styles,
240
262
  attributes = _usePopper.attributes;
@@ -249,14 +271,15 @@ var Tooltip = function Tooltip(_ref2) {
249
271
  var childRef = /*#__PURE__*/React.isValidElement(children) && (isDOMTypeElement(children) ? children.ref : children.props.getRootRef);
250
272
  var patchedRef = (0, _useExternRef.useExternRef)(setTarget, childRef);
251
273
  var child = /*#__PURE__*/React.isValidElement(children) ? /*#__PURE__*/React.cloneElement(children, (0, _defineProperty2.default)({}, isDOMTypeElement(children) ? "ref" : "getRootRef", patchedRef)) : children;
274
+
275
+ var _appearance = calculateAppearance(mode, appearance);
276
+
252
277
  return (0, _jsxRuntime.createScopedElement)(React.Fragment, null, child, isShown && target != null && /*#__PURE__*/_reactDom.default.createPortal((0, _jsxRuntime.createScopedElement)(SimpleTooltip, (0, _extends2.default)({}, restProps, {
253
- mode: mode,
278
+ appearance: _appearance,
279
+ arrow: arrow,
254
280
  ref: function ref(el) {
255
281
  return setTooltipRef(el);
256
282
  },
257
- arrowRef: function arrowRef(el) {
258
- return setTooltipArrowRef(el);
259
- },
260
283
  style: {
261
284
  arrow: styles.arrow,
262
285
  container: styles.popper
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["isDOMTypeElement","element","React","isValidElement","type","baseClassName","warn","IS_DEV","process","env","NODE_ENV","SimpleTooltip","forwardRef","ref","mode","header","text","arrowRef","style","attributes","container","arrow","mapAlignX","x","getPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","Tooltip","children","isShown","_isShown","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","restProps","entering","useState","tooltipRef","setTooltipRef","tooltipArrowRef","setTooltipArrowRef","target","setTarget","multiChildren","Children","count","primitiveChild","JSON","stringify","Boolean","tooltipContainer","useMemo","closest","tooltipContainerAttr","strategy","position","Error","arrowOffsetModifier","name","enabled","phase","fn","state","modifiersData","undefined","y","modifiers","options","offset","padding","styles","document","passive","childRef","props","getRootRef","patchedRef","child","cloneElement","ReactDOM","createPortal","el","popper"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { useNavTransition } from \"../NavTransitionContext/NavTransitionContext\";\nimport { Modifier, usePopper } from \"react-popper\";\nimport { Placement } from \"@popperjs/core\";\nimport { tooltipContainerAttr } from \"./TooltipContainer\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useDOM } from \"../../lib/dom\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Tooltip.css\";\n\ninterface SimpleTooltipProps extends Partial<TooltipProps> {\n target?: HTMLDivElement;\n arrowRef?: React.Ref<HTMLDivElement>;\n style?: {\n arrow: React.CSSProperties;\n container: React.CSSProperties;\n };\n attributes?: {\n arrow: React.HTMLAttributes<HTMLDivElement> | null;\n container: React.HTMLAttributes<HTMLDivElement> | null;\n };\n}\n\nconst isDOMTypeElement = (\n element: React.ReactElement\n): element is React.DOMElement<any, any> => {\n return React.isValidElement(element) && typeof element.type === \"string\";\n};\n\nconst baseClassName = getClassName(\"Tooltip\");\nconst warn = warnOnce(\"Tooltip\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\nconst SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(\n function SimpleTooltip(\n { mode = \"accent\", header, text, arrowRef, style = {}, attributes },\n ref\n ) {\n return (\n <div vkuiClass={classNames(baseClassName, `Tooltip--${mode}`)}>\n <div\n vkuiClass=\"Tooltip__container\"\n ref={ref}\n style={style.container}\n {...attributes?.container}\n >\n <div\n vkuiClass=\"Tooltip__corner\"\n style={style.arrow}\n {...attributes?.arrow}\n ref={arrowRef}\n />\n <div vkuiClass=\"Tooltip__content\">\n {header && (\n <Subhead weight=\"1\" vkuiClass=\"Tooltip__title\">\n {header}\n </Subhead>\n )}\n {text && <Subhead vkuiClass=\"Tooltip__text\">{text}</Subhead>}\n </div>\n </div>\n </div>\n );\n }\n);\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children:\n | React.ReactElement<HasRootRef<any>>\n | React.ReactElement<React.PropsWithRef<any>>;\n mode?: \"accent\" | \"light\";\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: \"center\" | \"left\" | \"right\";\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: \"top\" | \"bottom\";\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n}\n\ndeclare type ArrowOffsetModifierOptions = {\n offset: number;\n};\ndeclare type ArrowOffsetModifier = Modifier<\n \"arrowOffset\",\n ArrowOffsetModifierOptions\n>;\n\nfunction mapAlignX(x: TooltipProps[\"alignX\"]) {\n switch (x) {\n case \"left\":\n return \"start\";\n case \"right\":\n return \"end\";\n default:\n return \"\";\n }\n}\nfunction getPlacement(\n alignX: TooltipProps[\"alignX\"],\n alignY: TooltipProps[\"alignY\"]\n): Placement {\n return [alignY || \"bottom\", mapAlignX(alignX || \"left\")]\n .filter((p) => !!p)\n .join(\"-\") as Placement;\n}\nfunction isVerticalPlacement(placement: Placement) {\n return placement.startsWith(\"top\") || placement.startsWith(\"bottom\");\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const Tooltip = ({\n children,\n isShown: _isShown = true,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n mode = \"accent\",\n ...restProps\n}: TooltipProps) => {\n const { entering } = useNavTransition();\n const isShown = _isShown && !entering;\n const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);\n const [tooltipArrowRef, setTooltipArrowRef] =\n React.useState<HTMLElement | null>(null);\n const [target, setTarget] = React.useState<HTMLElement>();\n\n if (IS_DEV) {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild =\n hasReactNode(children) && typeof children !== \"object\";\n (multiChildren || primitiveChild) &&\n warn(\n [\n \"children должен быть одним React элементом, получено\",\n multiChildren && \"несколько\",\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(\" \"),\n \"error\"\n );\n }\n\n /* eslint-disable no-restricted-properties */\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/\n const tooltipContainer = React.useMemo(\n () => target?.closest(`[${tooltipContainerAttr}]`) as HTMLDivElement,\n [target]\n );\n const strategy = React.useMemo(\n () => (target?.style.position === \"fixed\" ? \"fixed\" : \"absolute\"),\n [target]\n );\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion*/\n /* eslint-enable no-restricted-properties */\n\n if (IS_DEV && target && !tooltipContainer) {\n throw new Error(\n \"Use TooltipContainer for Tooltip outside Panel (see docs)\"\n );\n }\n\n const arrowOffsetModifier = React.useMemo<ArrowOffsetModifier>(() => {\n return {\n name: \"arrowOffset\",\n enabled: true,\n phase: \"main\",\n fn({ state }) {\n if (!state.modifiersData.arrow) {\n return;\n }\n if (isVerticalPlacement(state.placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.x = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.x !== undefined) {\n state.modifiersData.arrow.x += cornerOffset;\n }\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.y = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.y !== undefined) {\n state.modifiersData.arrow.y += cornerOffset;\n }\n }\n }\n },\n };\n }, [cornerOffset, cornerAbsoluteOffset]);\n\n const placement = getPlacement(alignX, alignY);\n const { styles, attributes } = usePopper(target, tooltipRef, {\n strategy,\n placement,\n modifiers: [\n {\n name: \"offset\",\n options: {\n offset: [offsetX, offsetY],\n },\n },\n {\n name: \"arrow\",\n options: {\n element: tooltipArrowRef,\n padding: 14,\n },\n },\n {\n name: \"preventOverflow\",\n },\n {\n name: \"flip\",\n },\n arrowOffsetModifier,\n ],\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, \"click\", isShown && onClose, {\n passive: true,\n });\n // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()\n\n const childRef =\n React.isValidElement(children) &&\n (isDOMTypeElement(children) ? children.ref : children.props.getRootRef);\n const patchedRef = useExternRef(setTarget, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? \"ref\" : \"getRootRef\"]: patchedRef,\n })\n : children;\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <SimpleTooltip\n {...restProps}\n mode={mode}\n ref={(el) => setTooltipRef(el)}\n arrowRef={(el) => setTooltipArrowRef(el)}\n style={{ arrow: styles.arrow, container: styles.popper }}\n attributes={{\n arrow: attributes.arrow ?? null,\n container: attributes.popper ?? null,\n }}\n />,\n tooltipContainer\n )}\n </React.Fragment>\n );\n};\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["isDOMTypeElement","element","React","isValidElement","type","baseClassName","warn","IS_DEV","process","env","NODE_ENV","SimpleTooltip","forwardRef","ref","appearance","header","text","arrow","style","attributes","container","mapAlignX","x","getPlacement","alignX","alignY","filter","p","join","isVerticalPlacement","placement","startsWith","calculateAppearance","mode","Tooltip","children","isShown","_isShown","offsetX","offsetY","onClose","cornerOffset","cornerAbsoluteOffset","restProps","entering","useState","tooltipRef","setTooltipRef","target","setTarget","multiChildren","Children","count","primitiveChild","JSON","stringify","Boolean","tooltipContainer","useMemo","closest","tooltipContainerAttr","strategy","position","Error","modifiers","name","options","offset","push","padding","enabled","phase","fn","state","modifiersData","undefined","y","_placement","styles","document","passive","childRef","props","getRootRef","patchedRef","child","cloneElement","_appearance","ReactDOM","createPortal","el","popper"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAgBA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CACvBC,OADuB,EAEmB;AAC1C,SAAO,aAAAC,KAAK,CAACC,cAAN,CAAqBF,OAArB,KAAiC,OAAOA,OAAO,CAACG,IAAf,KAAwB,QAAhE;AACD,CAJD;;AAMA,IAAMC,aAAa,GAAG,gCAAa,SAAb,CAAtB;AACA,IAAMC,IAAI,GAAG,wBAAS,SAAT,CAAb;AACA,IAAMC,MAAM,GAAGC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAxC;AAEA,IAAMC,aAAa,gBAAGT,KAAK,CAACU,UAAN,CACpB,SAASD,aAAT,OAEEE,GAFF,EAGE;AAAA,6BAFEC,UAEF;AAAA,MAFEA,UAEF,gCAFe,QAEf;AAAA,MAFyBC,MAEzB,QAFyBA,MAEzB;AAAA,MAFiCC,IAEjC,QAFiCA,IAEjC;AAAA,MAFuCC,KAEvC,QAFuCA,KAEvC;AAAA,wBAF8CC,KAE9C;AAAA,MAF8CA,KAE9C,2BAFsD,EAEtD;AAAA,MAF0DC,UAE1D,QAF0DA,UAE1D;AACA,SACE;AAAK,IAAA,SAAS,EAAE,4BAAWd,aAAX,qBAAsCS,UAAtC;AAAhB,KACE;AACE,IAAA,SAAS,EAAC,oBADZ;AAEE,IAAA,GAAG,EAAED,GAFP;AAGE,IAAA,KAAK,EAAEK,KAAK,CAACE;AAHf,KAIMD,UAJN,aAIMA,UAJN,uBAIMA,UAAU,CAAEC,SAJlB,GAMGH,KAAK,IACJ,qCAAC,wBAAD;AACE,IAAA,KAAK,EAAEC,KAAK,CAACD,KADf;AAEE,IAAA,UAAU,EAAEE,UAAF,aAAEA,UAAF,uBAAEA,UAAU,CAAEF,KAF1B;AAGE,IAAA,cAAc,EAAE,8BAAY,gBAAZ;AAHlB,IAPJ,EAaE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGF,MAAM,IACL,qCAAC,gBAAD;AAAS,IAAA,MAAM,EAAC,GAAhB;AAAoB,IAAA,SAAS,EAAC;AAA9B,KACGA,MADH,CAFJ,EAMGC,IAAI,IAAI,qCAAC,gBAAD;AAAS,IAAA,SAAS,EAAC;AAAnB,KAAoCA,IAApC,CANX,CAbF,CADF,CADF;AA0BD,CA/BmB,CAAtB;;AAwGA,SAASK,SAAT,CAAmBC,CAAnB,EAA8C;AAC5C,UAAQA,CAAR;AACE,SAAK,MAAL;AACE,aAAO,OAAP;;AACF,SAAK,OAAL;AACE,aAAO,KAAP;;AACF;AACE,aAAO,EAAP;AANJ;AAQD;;AACD,SAASC,YAAT,CACEC,MADF,EAEEC,MAFF,EAGa;AACX,SAAO,CAACA,MAAM,IAAI,QAAX,EAAqBJ,SAAS,CAACG,MAAM,IAAI,MAAX,CAA9B,EACJE,MADI,CACG,UAACC,CAAD;AAAA,WAAO,CAAC,CAACA,CAAT;AAAA,GADH,EAEJC,IAFI,CAEC,GAFD,CAAP;AAGD;;AACD,SAASC,mBAAT,CAA6BC,SAA7B,EAAmD;AACjD,SAAOA,SAAS,CAACC,UAAV,CAAqB,KAArB,KAA+BD,SAAS,CAACC,UAAV,CAAqB,QAArB,CAAtC;AACD;AAED;AACA;AACA;AACA;;;AACA,SAASC,mBAAT,CACEC,IADF,EAEEnB,UAFF,EAG8B;AAC5B,MAAIA,UAAJ,EAAgB;AACd,WAAOA,UAAP;AACD;;AAED,SAAOmB,IAAI,KAAK,OAAT,GAAmB,OAAnB,GAA6B,QAApC;AACD;AAED;AACA;AACA;;;AACO,IAAMC,OAAO,GAAG,SAAVA,OAAU,QAeH;AAAA;;AAAA,MAdlBC,QAckB,SAdlBA,QAckB;AAAA,4BAblBC,OAakB;AAAA,MAbTC,QAaS,8BAbE,IAaF;AAAA,4BAZlBC,OAYkB;AAAA,MAZlBA,OAYkB,8BAZR,CAYQ;AAAA,4BAXlBC,OAWkB;AAAA,MAXlBA,OAWkB,8BAXR,EAWQ;AAAA,MAVlBf,MAUkB,SAVlBA,MAUkB;AAAA,MATlBC,MASkB,SATlBA,MASkB;AAAA,MARlBe,OAQkB,SARlBA,OAQkB;AAAA,iCAPlBC,YAOkB;AAAA,MAPlBA,YAOkB,mCAPH,CAOG;AAAA,MANlBC,oBAMkB,SANlBA,oBAMkB;AAAA,yBALlBT,IAKkB;AAAA,MALlBA,IAKkB,2BALX,QAKW;AAAA,MAJlBnB,UAIkB,SAJlBA,UAIkB;AAAA,0BAHlBG,KAGkB;AAAA,MAHlBA,KAGkB,4BAHV,IAGU;AAAA,MAFlBa,SAEkB,SAFlBA,SAEkB;AAAA,MADfa,SACe;;AAClB,0BAAqB,6CAArB;AAAA,MAAQC,QAAR,qBAAQA,QAAR;;AACA,MAAMR,OAAO,GAAGC,QAAQ,IAAI,CAACO,QAA7B;;AACA,wBAAoC1C,KAAK,CAAC2C,QAAN,CAAmC,IAAnC,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AACA,yBAA4B7C,KAAK,CAAC2C,QAAN,EAA5B;AAAA;AAAA,MAAOG,MAAP;AAAA,MAAeC,SAAf;;AAEA,MAAI1C,MAAJ,EAAY;AACV,QAAM2C,aAAa,GAAGhD,KAAK,CAACiD,QAAN,CAAeC,KAAf,CAAqBjB,QAArB,IAAiC,CAAvD,CADU,CAEV;;AACA,QAAMkB,cAAc,GAClB,yBAAalB,QAAb,KAA0B,sBAAOA,QAAP,MAAoB,QADhD;AAEA,KAACe,aAAa,IAAIG,cAAlB,KACE/C,IAAI,CACF,CACE,sDADF,EAEE4C,aAAa,IAAI,WAFnB,EAGEG,cAAc,IAAIC,IAAI,CAACC,SAAL,CAAepB,QAAf,CAHpB,EAKGT,MALH,CAKU8B,OALV,EAMG5B,IANH,CAMQ,GANR,CADE,EAQF,OARE,CADN;AAWD;AAED;;AACA;;;AACA,MAAM6B,gBAAgB,GAAGvD,KAAK,CAACwD,OAAN,CACvB;AAAA,WAAMV,MAAN,aAAMA,MAAN,uBAAMA,MAAM,CAAEW,OAAR,YAAoBC,sCAApB,OAAN;AAAA,GADuB,EAEvB,CAACZ,MAAD,CAFuB,CAAzB;AAIA,MAAMa,QAAQ,GAAG3D,KAAK,CAACwD,OAAN,CACf;AAAA,WAAO,CAAAV,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAE9B,KAAR,CAAc4C,QAAd,MAA2B,OAA3B,GAAqC,OAArC,GAA+C,UAAtD;AAAA,GADe,EAEf,CAACd,MAAD,CAFe,CAAjB;AAIA;;AACA;;AAEA,MAAIzC,MAAM,IAAIyC,MAAV,IAAoB,CAACS,gBAAzB,EAA2C;AACzC,UAAM,IAAIM,KAAJ,CACJ,2DADI,CAAN;AAGD;;AAED,MAAMC,SAAS,GAAG9D,KAAK,CAACwD,OAAN,CAAc,YAAM;AACpC,QAAMM,SAAkC,GAAG,CACzC;AACEC,MAAAA,IAAI,EAAE,QADR;AAEEC,MAAAA,OAAO,EAAE;AACPC,QAAAA,MAAM,EAAE,CAAC7B,OAAD,EAAUC,OAAV;AADD;AAFX,KADyC,EAOzC;AACE0B,MAAAA,IAAI,EAAE;AADR,KAPyC,EAUzC;AACEA,MAAAA,IAAI,EAAE;AADR,KAVyC,CAA3C;;AAeA,QAAIhD,KAAJ,EAAW;AACT+C,MAAAA,SAAS,CAACI,IAAV,CAAe;AACbH,QAAAA,IAAI,EAAE,OADO;AAEbC,QAAAA,OAAO,EAAE;AACPG,UAAAA,OAAO,EAAE;AADF;AAFI,OAAf;AAMAL,MAAAA,SAAS,CAACI,IAAV,CAAe;AACbH,QAAAA,IAAI,EAAE,aADO;AAEbK,QAAAA,OAAO,EAAE,IAFI;AAGbC,QAAAA,KAAK,EAAE,MAHM;AAIbC,QAAAA,EAJa,qBAIC;AAAA,cAATC,KAAS,SAATA,KAAS;;AACZ,cAAI,CAACA,KAAK,CAACC,aAAN,CAAoBzD,KAAzB,EAAgC;AAC9B;AACD;;AACD,cAAIY,mBAAmB,CAAC4C,KAAK,CAAC3C,SAAP,CAAvB,EAA0C;AACxC,gBAAIY,oBAAoB,KAAKiC,SAA7B,EAAwC;AACtCF,cAAAA,KAAK,CAACC,aAAN,CAAoBzD,KAApB,CAA0BK,CAA1B,GAA8BoB,oBAA9B;AACD,aAFD,MAEO;AAAA;;AACL,kBAAI,0BAAA+B,KAAK,CAACC,aAAN,CAAoBzD,KAApB,gFAA2BK,CAA3B,MAAiCqD,SAArC,EAAgD;AAC9CF,gBAAAA,KAAK,CAACC,aAAN,CAAoBzD,KAApB,CAA0BK,CAA1B,IAA+BmB,YAA/B;AACD;AACF;AACF,WARD,MAQO;AACL,gBAAIC,oBAAoB,KAAKiC,SAA7B,EAAwC;AACtCF,cAAAA,KAAK,CAACC,aAAN,CAAoBzD,KAApB,CAA0B2D,CAA1B,GAA8BlC,oBAA9B;AACD,aAFD,MAEO;AAAA;;AACL,kBAAI,2BAAA+B,KAAK,CAACC,aAAN,CAAoBzD,KAApB,kFAA2B2D,CAA3B,MAAiCD,SAArC,EAAgD;AAC9CF,gBAAAA,KAAK,CAACC,aAAN,CAAoBzD,KAApB,CAA0B2D,CAA1B,IAA+BnC,YAA/B;AACD;AACF;AACF;AACF;AAzBY,OAAf;AA2BD;;AAED,WAAOuB,SAAP;AACD,GArDiB,EAqDf,CAAC/C,KAAD,EAAQyB,oBAAR,EAA8BD,YAA9B,EAA4CH,OAA5C,EAAqDC,OAArD,CArDe,CAAlB;;AAuDA,MAAMsC,UAAU,GAAG/C,SAAH,aAAGA,SAAH,cAAGA,SAAH,GAAgBP,YAAY,CAACC,MAAD,EAASC,MAAT,CAA5C;;AACA,mBAA+B,4BAAUuB,MAAV,EAAkBF,UAAlB,EAA8B;AAC3De,IAAAA,QAAQ,EAARA,QAD2D;AAE3D/B,IAAAA,SAAS,EAAE+C,UAFgD;AAG3Db,IAAAA,SAAS,EAATA;AAH2D,GAA9B,CAA/B;AAAA,MAAQc,MAAR,cAAQA,MAAR;AAAA,MAAgB3D,UAAhB,cAAgBA,UAAhB;;AAMA,gBAAqB,kBAArB;AAAA,MAAQ4D,QAAR,WAAQA,QAAR;;AACA,sDAAuBA,QAAvB,EAAiC,OAAjC,EAA0C3C,OAAO,IAAII,OAArD,EAA8D;AAC5DwC,IAAAA,OAAO,EAAE;AADmD,GAA9D,EA1GkB,CA6GlB;;AAEA,MAAMC,QAAQ,GACZ,aAAA/E,KAAK,CAACC,cAAN,CAAqBgC,QAArB,MACCnC,gBAAgB,CAACmC,QAAD,CAAhB,GAA6BA,QAAQ,CAACtB,GAAtC,GAA4CsB,QAAQ,CAAC+C,KAAT,CAAeC,UAD5D,CADF;AAGA,MAAMC,UAAU,GAAG,gCAAanC,SAAb,EAAwBgC,QAAxB,CAAnB;AACA,MAAMI,KAAK,GAAG,aAAAnF,KAAK,CAACC,cAAN,CAAqBgC,QAArB,iBACVjC,KAAK,CAACoF,YAAN,CAAmBnD,QAAnB,oCACGnC,gBAAgB,CAACmC,QAAD,CAAhB,GAA6B,KAA7B,GAAqC,YADxC,EACuDiD,UADvD,EADU,GAIVjD,QAJJ;;AAMA,MAAMoD,WAAW,GAAGvD,mBAAmB,CAACC,IAAD,EAAOnB,UAAP,CAAvC;;AAEA,SACE,qCAAC,KAAD,CAAO,QAAP,QACGuE,KADH,EAEGjD,OAAO,IACNY,MAAM,IAAI,IADX,iBAECwC,kBAASC,YAAT,CACE,qCAAC,aAAD,6BACM9C,SADN;AAEE,IAAA,UAAU,EAAE4C,WAFd;AAGE,IAAA,KAAK,EAAEtE,KAHT;AAIE,IAAA,GAAG,EAAE,aAACyE,EAAD;AAAA,aAAQ3C,aAAa,CAAC2C,EAAD,CAArB;AAAA,KAJP;AAKE,IAAA,KAAK,EAAE;AAAEzE,MAAAA,KAAK,EAAE6D,MAAM,CAAC7D,KAAhB;AAAuBG,MAAAA,SAAS,EAAE0D,MAAM,CAACa;AAAzC,KALT;AAME,IAAA,UAAU,EAAE;AACV1E,MAAAA,KAAK,uBAAEE,UAAU,CAACF,KAAb,iEAAsB,IADjB;AAEVG,MAAAA,SAAS,wBAAED,UAAU,CAACwE,MAAb,mEAAuB;AAFtB;AANd,KADF,EAYElC,gBAZF,CAJJ,CADF;AAqBD,CA/JM","sourcesContent":["import * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { classNames } from \"../../lib/classNames\";\nimport { getClassName } from \"../../helpers/getClassName\";\nimport { Subhead } from \"../Typography/Subhead/Subhead\";\nimport { useNavTransition } from \"../NavTransitionContext/NavTransitionContext\";\nimport { PopperArrow } from \"../PopperArrow/PopperArrow\";\nimport { Modifier, usePopper } from \"react-popper\";\nimport { Placement } from \"@popperjs/core\";\nimport { tooltipContainerAttr } from \"./TooltipContainer\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useDOM } from \"../../lib/dom\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { prefixClass } from \"../../lib/prefixClass\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { HasRootRef } from \"../../types\";\nimport \"./Tooltip.css\";\n\ninterface SimpleTooltipProps extends Partial<TooltipProps> {\n target?: HTMLDivElement;\n style?: {\n arrow: React.CSSProperties;\n container: React.CSSProperties;\n };\n attributes?: {\n arrow: React.HTMLAttributes<HTMLDivElement> | null;\n container: React.HTMLAttributes<HTMLDivElement> | null;\n };\n}\n\nconst isDOMTypeElement = (\n element: React.ReactElement\n): element is React.DOMElement<any, any> => {\n return React.isValidElement(element) && typeof element.type === \"string\";\n};\n\nconst baseClassName = getClassName(\"Tooltip\");\nconst warn = warnOnce(\"Tooltip\");\nconst IS_DEV = process.env.NODE_ENV === \"development\";\n\nconst SimpleTooltip = React.forwardRef<HTMLDivElement, SimpleTooltipProps>(\n function SimpleTooltip(\n { appearance = \"accent\", header, text, arrow, style = {}, attributes },\n ref\n ) {\n return (\n <div vkuiClass={classNames(baseClassName, `Tooltip--${appearance}`)}>\n <div\n vkuiClass=\"Tooltip__container\"\n ref={ref}\n style={style.container}\n {...attributes?.container}\n >\n {arrow && (\n <PopperArrow\n style={style.arrow}\n attributes={attributes?.arrow}\n arrowClassName={prefixClass(\"Tooltip__arrow\")}\n />\n )}\n <div vkuiClass=\"Tooltip__content\">\n {header && (\n <Subhead weight=\"2\" vkuiClass=\"Tooltip__title\">\n {header}\n </Subhead>\n )}\n {text && <Subhead vkuiClass=\"Tooltip__text\">{text}</Subhead>}\n </div>\n </div>\n </div>\n );\n }\n);\n\nexport interface TooltipProps {\n /**\n * **Важно**: если в `children` передан React-компонент, то необходимо убедиться в том, что он поддерживает\n * свойство `getRootRef`, которое должно возвращаться ссылку на корневой DOM-элемент компонента,\n * иначе тултип показан не будет. Если передан React-element, то такой проблемы нет.\n */\n children:\n | React.ReactElement<HasRootRef<any>>\n | React.ReactElement<React.PropsWithRef<any>>;\n /**\n * @deprecated будет удалено в 5.0.0, устанавливать стиль следует через appearance\n * Стиль отображения подсказки\n */\n mode?: \"accent\" | \"light\";\n /**\n * Стиль отображения подсказки\n */\n appearance?: \"accent\" | \"neutral\" | \"white\" | \"black\" | \"inversion\";\n /**\n * Если передан `false`, то рисуется просто `children`.\n */\n isShown?: boolean;\n /**\n * Текст тултипа.\n */\n text?: React.ReactNode;\n /**\n * Заголовок тултипа.\n */\n header?: React.ReactNode;\n /**\n * Положение по горизонтали (прижатие к левому или правому краю `children`).\n * Если не задано, позиция по горизонтали определятся автоматически\n */\n alignX?: \"center\" | \"left\" | \"right\";\n /**\n * Положение по вертикали (расположение над или под `children`).\n * Если не задано, позиция по вертикали определятся автоматически\n */\n alignY?: \"top\" | \"bottom\";\n /**\n * Сдвиг по горизонтали (относительно портала, в котором рисуется тултип).\n */\n offsetX?: number;\n /**\n * Сдвиг по вертикали (относительно портала, в котором рисуется тултип).\n */\n offsetY?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Сдвиг стрелочки относительно центра дочернего элемента.\n */\n cornerOffset?: number;\n /**\n * Сдвиг стрелочки относительно ширины тултипа\n */\n cornerAbsoluteOffset?: number;\n /**\n * Callback, который вызывается при клике по любому месту в пределах экрана.\n */\n onClose?: () => void;\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n}\n\nfunction mapAlignX(x: TooltipProps[\"alignX\"]) {\n switch (x) {\n case \"left\":\n return \"start\";\n case \"right\":\n return \"end\";\n default:\n return \"\";\n }\n}\nfunction getPlacement(\n alignX: TooltipProps[\"alignX\"],\n alignY: TooltipProps[\"alignY\"]\n): Placement {\n return [alignY || \"bottom\", mapAlignX(alignX || \"left\")]\n .filter((p) => !!p)\n .join(\"-\") as Placement;\n}\nfunction isVerticalPlacement(placement: Placement) {\n return placement.startsWith(\"top\") || placement.startsWith(\"bottom\");\n}\n\n/**\n * Вычисляем стиль подсказки: параметр appearance имеет приоритет, иначе мапим mode на подходящее значение из appearance\n * TODO: v5 избавиться от пропа mode и этого метода, для appearance по умолчанию сделать \"accent\"\n */\nfunction calculateAppearance(\n mode: TooltipProps[\"mode\"],\n appearance: TooltipProps[\"appearance\"]\n): TooltipProps[\"appearance\"] {\n if (appearance) {\n return appearance;\n }\n\n return mode === \"light\" ? \"white\" : \"accent\";\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Tooltip\n */\nexport const Tooltip = ({\n children,\n isShown: _isShown = true,\n offsetX = 0,\n offsetY = 15,\n alignX,\n alignY,\n onClose,\n cornerOffset = 0,\n cornerAbsoluteOffset,\n mode = \"accent\",\n appearance,\n arrow = true,\n placement,\n ...restProps\n}: TooltipProps) => {\n const { entering } = useNavTransition();\n const isShown = _isShown && !entering;\n const [tooltipRef, setTooltipRef] = React.useState<HTMLElement | null>(null);\n const [target, setTarget] = React.useState<HTMLElement>();\n\n if (IS_DEV) {\n const multiChildren = React.Children.count(children) > 1;\n // Empty children is a noop\n const primitiveChild =\n hasReactNode(children) && typeof children !== \"object\";\n (multiChildren || primitiveChild) &&\n warn(\n [\n \"children должен быть одним React элементом, получено\",\n multiChildren && \"несколько\",\n primitiveChild && JSON.stringify(children),\n ]\n .filter(Boolean)\n .join(\" \"),\n \"error\"\n );\n }\n\n /* eslint-disable no-restricted-properties */\n /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion*/\n const tooltipContainer = React.useMemo(\n () => target?.closest(`[${tooltipContainerAttr}]`) as HTMLDivElement,\n [target]\n );\n const strategy = React.useMemo(\n () => (target?.style.position === \"fixed\" ? \"fixed\" : \"absolute\"),\n [target]\n );\n /* eslint-enable @typescript-eslint/no-unnecessary-type-assertion*/\n /* eslint-enable no-restricted-properties */\n\n if (IS_DEV && target && !tooltipContainer) {\n throw new Error(\n \"Use TooltipContainer for Tooltip outside Panel (see docs)\"\n );\n }\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n {\n name: \"offset\",\n options: {\n offset: [offsetX, offsetY],\n },\n },\n {\n name: \"preventOverflow\",\n },\n {\n name: \"flip\",\n },\n ];\n\n if (arrow) {\n modifiers.push({\n name: \"arrow\",\n options: {\n padding: 14,\n },\n });\n modifiers.push({\n name: \"arrowOffset\",\n enabled: true,\n phase: \"main\",\n fn({ state }) {\n if (!state.modifiersData.arrow) {\n return;\n }\n if (isVerticalPlacement(state.placement)) {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.x = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.x !== undefined) {\n state.modifiersData.arrow.x += cornerOffset;\n }\n }\n } else {\n if (cornerAbsoluteOffset !== undefined) {\n state.modifiersData.arrow.y = cornerAbsoluteOffset;\n } else {\n if (state.modifiersData.arrow?.y !== undefined) {\n state.modifiersData.arrow.y += cornerOffset;\n }\n }\n }\n },\n });\n }\n\n return modifiers;\n }, [arrow, cornerAbsoluteOffset, cornerOffset, offsetX, offsetY]);\n\n const _placement = placement ?? getPlacement(alignX, alignY);\n const { styles, attributes } = usePopper(target, tooltipRef, {\n strategy,\n placement: _placement,\n modifiers,\n });\n\n const { document } = useDOM();\n useGlobalEventListener(document, \"click\", isShown && onClose, {\n passive: true,\n });\n // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()\n\n const childRef =\n React.isValidElement(children) &&\n (isDOMTypeElement(children) ? children.ref : children.props.getRootRef);\n const patchedRef = useExternRef(setTarget, childRef);\n const child = React.isValidElement(children)\n ? React.cloneElement(children, {\n [isDOMTypeElement(children) ? \"ref\" : \"getRootRef\"]: patchedRef,\n })\n : children;\n\n const _appearance = calculateAppearance(mode, appearance);\n\n return (\n <React.Fragment>\n {child}\n {isShown &&\n target != null &&\n ReactDOM.createPortal(\n <SimpleTooltip\n {...restProps}\n appearance={_appearance}\n arrow={arrow}\n ref={(el) => setTooltipRef(el)}\n style={{ arrow: styles.arrow, container: styles.popper }}\n attributes={{\n arrow: attributes.arrow ?? null,\n container: attributes.popper ?? null,\n }}\n />,\n tooltipContainer\n )}\n </React.Fragment>\n );\n};\n"],"file":"Tooltip.js"}