@vkontakte/vkui 5.1.0 → 5.2.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 (516) hide show
  1. package/LICENSE +25 -0
  2. package/README.md +118 -0
  3. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  4. package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  5. package/dist/cjs/components/AppRoot/AppRoot.js +7 -4
  6. package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
  7. package/dist/cjs/components/Avatar/Avatar.d.ts +1 -1
  8. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  9. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
  10. package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  11. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
  12. package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  13. package/dist/cjs/components/Checkbox/Checkbox.d.ts +3 -2
  14. package/dist/cjs/components/Checkbox/Checkbox.js +12 -2
  15. package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
  16. package/dist/cjs/components/ChipsSelect/ChipsSelect.js +0 -4
  17. package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
  18. package/dist/cjs/components/ContentCard/ContentCard.js +2 -1
  19. package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
  20. package/dist/cjs/components/CustomSelect/CustomSelect.js +11 -7
  21. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  22. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
  23. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +21 -72
  24. package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  25. package/dist/cjs/components/DateInput/DateInput.d.ts +3 -2
  26. package/dist/cjs/components/DateInput/DateInput.js +3 -3
  27. package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
  28. package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  29. package/dist/cjs/components/DateRangeInput/DateRangeInput.js +3 -2
  30. package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
  31. package/dist/cjs/components/Epic/Epic.js +1 -1
  32. package/dist/cjs/components/Epic/Epic.js.map +1 -1
  33. package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -2
  34. package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
  35. package/dist/cjs/components/FormField/FormField.js +6 -10
  36. package/dist/cjs/components/FormField/FormField.js.map +1 -1
  37. package/dist/cjs/components/IconButton/IconButton.js +9 -0
  38. package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
  39. package/dist/cjs/components/ModalCard/ModalCard.d.ts +1 -1
  40. package/dist/cjs/components/ModalCard/ModalCard.js +4 -2
  41. package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
  42. package/dist/cjs/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  43. package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -2
  44. package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
  45. package/dist/cjs/components/ModalPage/ModalPage.d.ts +2 -6
  46. package/dist/cjs/components/ModalPage/ModalPage.js +13 -7
  47. package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
  48. package/dist/cjs/components/ModalRoot/ModalRoot.js +1 -2
  49. package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
  50. package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +1 -1
  51. package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
  52. package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
  53. package/dist/cjs/components/PanelHeader/PanelHeader.js +18 -4
  54. package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
  55. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
  56. package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  57. package/dist/cjs/components/Popover/Popover.js +4 -1
  58. package/dist/cjs/components/Popover/Popover.js.map +1 -1
  59. package/dist/cjs/components/Popper/Popper.d.ts +12 -9
  60. package/dist/cjs/components/Popper/Popper.js +92 -119
  61. package/dist/cjs/components/Popper/Popper.js.map +1 -1
  62. package/dist/cjs/components/PopperArrow/PopperArrow.d.ts +15 -5
  63. package/dist/cjs/components/PopperArrow/PopperArrow.js +44 -17
  64. package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
  65. package/dist/cjs/components/Progress/Progress.js +3 -1
  66. package/dist/cjs/components/Progress/Progress.js.map +1 -1
  67. package/dist/cjs/components/Root/Root.js +2 -2
  68. package/dist/cjs/components/Root/Root.js.map +1 -1
  69. package/dist/cjs/components/Select/Select.d.ts +1 -5
  70. package/dist/cjs/components/Select/Select.js +13 -41
  71. package/dist/cjs/components/Select/Select.js.map +1 -1
  72. package/dist/cjs/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  73. package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
  74. package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
  75. package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +11 -0
  76. package/dist/cjs/components/SelectTypography/SelectTypography.js +48 -0
  77. package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -0
  78. package/dist/cjs/components/Slider/Slider.d.ts +1 -1
  79. package/dist/cjs/components/Slider/Slider.js +4 -3
  80. package/dist/cjs/components/Slider/Slider.js.map +1 -1
  81. package/dist/cjs/components/Spacing/Spacing.js +2 -1
  82. package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
  83. package/dist/cjs/components/SplitCol/SplitCol.d.ts +0 -6
  84. package/dist/cjs/components/SplitCol/SplitCol.js +3 -11
  85. package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
  86. package/dist/cjs/components/SplitCol/SplitColContext.d.ts +7 -0
  87. package/dist/cjs/components/SplitCol/SplitColContext.js +18 -0
  88. package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -0
  89. package/dist/cjs/components/Switch/Switch.js +2 -3
  90. package/dist/cjs/components/Switch/Switch.js.map +1 -1
  91. package/dist/cjs/components/TabbarItem/TabbarItem.js +9 -0
  92. package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
  93. package/dist/cjs/components/Tabs/Tabs.js +6 -15
  94. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  95. package/dist/cjs/components/Tooltip/Tooltip.d.ts +3 -3
  96. package/dist/cjs/components/Tooltip/Tooltip.js +116 -151
  97. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  98. package/dist/cjs/components/Touch/Touch.js +4 -4
  99. package/dist/cjs/components/Touch/Touch.js.map +1 -1
  100. package/dist/cjs/components/View/View.js +2 -2
  101. package/dist/cjs/components/View/View.js.map +1 -1
  102. package/dist/cjs/components/View/ViewInfinite.d.ts +1 -1
  103. package/dist/cjs/components/View/ViewInfinite.js +2 -2
  104. package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
  105. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +10 -8
  106. package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  107. package/dist/cjs/index.d.ts +37 -30
  108. package/dist/cjs/index.js +13 -13
  109. package/dist/cjs/index.js.map +1 -1
  110. package/dist/cjs/lib/floating/adapters.d.ts +2 -0
  111. package/dist/cjs/lib/floating/adapters.js +63 -0
  112. package/dist/cjs/lib/floating/adapters.js.map +1 -0
  113. package/dist/cjs/lib/floating/functions.d.ts +10 -0
  114. package/dist/cjs/lib/floating/functions.js +36 -0
  115. package/dist/cjs/lib/floating/functions.js.map +1 -0
  116. package/dist/cjs/lib/floating/index.d.ts +4 -0
  117. package/dist/cjs/lib/floating/index.js +75 -0
  118. package/dist/cjs/lib/floating/index.js.map +1 -0
  119. package/dist/cjs/lib/floating/types.d.ts +4 -0
  120. package/dist/cjs/lib/floating/types.js +6 -0
  121. package/dist/cjs/lib/floating/types.js.map +1 -0
  122. package/dist/cjs/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  123. package/dist/cjs/lib/warnOnce.d.ts +7 -0
  124. package/dist/cjs/lib/warnOnce.js +14 -0
  125. package/dist/cjs/lib/warnOnce.js.map +1 -1
  126. package/dist/cjs/shared/breakpoints.d.ts +2 -2
  127. package/dist/cjs/shared/breakpoints.js +12 -13
  128. package/dist/cjs/shared/breakpoints.js.map +1 -1
  129. package/dist/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  130. package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  131. package/dist/components/AppRoot/AppRoot.js +7 -4
  132. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  133. package/dist/components/Avatar/Avatar.d.ts +1 -1
  134. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  135. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
  136. package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  137. package/dist/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
  138. package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  139. package/dist/components/Checkbox/Checkbox.d.ts +3 -2
  140. package/dist/components/Checkbox/Checkbox.js +12 -2
  141. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  142. package/dist/components/ChipsSelect/ChipsSelect.js +0 -4
  143. package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
  144. package/dist/components/ContentCard/ContentCard.js +2 -1
  145. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  146. package/dist/components/CustomSelect/CustomSelect.js +12 -8
  147. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  148. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
  149. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
  150. package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  151. package/dist/components/DateInput/DateInput.d.ts +3 -2
  152. package/dist/components/DateInput/DateInput.js +3 -3
  153. package/dist/components/DateInput/DateInput.js.map +1 -1
  154. package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  155. package/dist/components/DateRangeInput/DateRangeInput.js +3 -2
  156. package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
  157. package/dist/components/Epic/Epic.js +1 -1
  158. package/dist/components/Epic/Epic.js.map +1 -1
  159. package/dist/components/FixedLayout/FixedLayout.js +1 -1
  160. package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
  161. package/dist/components/FormField/FormField.js +6 -10
  162. package/dist/components/FormField/FormField.js.map +1 -1
  163. package/dist/components/IconButton/IconButton.js +9 -0
  164. package/dist/components/IconButton/IconButton.js.map +1 -1
  165. package/dist/components/ModalCard/ModalCard.d.ts +1 -1
  166. package/dist/components/ModalCard/ModalCard.js +4 -2
  167. package/dist/components/ModalCard/ModalCard.js.map +1 -1
  168. package/dist/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  169. package/dist/components/ModalCardBase/ModalCardBase.js +9 -2
  170. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  171. package/dist/components/ModalPage/ModalPage.d.ts +2 -6
  172. package/dist/components/ModalPage/ModalPage.js +13 -7
  173. package/dist/components/ModalPage/ModalPage.js.map +1 -1
  174. package/dist/components/ModalRoot/ModalRoot.js +1 -2
  175. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  176. package/dist/components/NativeSelect/NativeSelect.d.ts +1 -1
  177. package/dist/components/NativeSelect/NativeSelect.js +1 -1
  178. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  179. package/dist/components/PanelHeader/PanelHeader.js +18 -4
  180. package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
  181. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
  182. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  183. package/dist/components/Popover/Popover.js +4 -1
  184. package/dist/components/Popover/Popover.js.map +1 -1
  185. package/dist/components/Popper/Popper.d.ts +12 -9
  186. package/dist/components/Popper/Popper.js +93 -120
  187. package/dist/components/Popper/Popper.js.map +1 -1
  188. package/dist/components/PopperArrow/PopperArrow.d.ts +15 -5
  189. package/dist/components/PopperArrow/PopperArrow.js +40 -15
  190. package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
  191. package/dist/components/Progress/Progress.js +3 -1
  192. package/dist/components/Progress/Progress.js.map +1 -1
  193. package/dist/components/Root/Root.js +1 -1
  194. package/dist/components/Root/Root.js.map +1 -1
  195. package/dist/components/Select/Select.d.ts +1 -5
  196. package/dist/components/Select/Select.js +12 -39
  197. package/dist/components/Select/Select.js.map +1 -1
  198. package/dist/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  199. package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
  200. package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
  201. package/dist/components/SelectTypography/SelectTypography.d.ts +11 -0
  202. package/dist/components/SelectTypography/SelectTypography.js +39 -0
  203. package/dist/components/SelectTypography/SelectTypography.js.map +1 -0
  204. package/dist/components/Slider/Slider.d.ts +1 -1
  205. package/dist/components/Slider/Slider.js +4 -3
  206. package/dist/components/Slider/Slider.js.map +1 -1
  207. package/dist/components/Spacing/Spacing.js +2 -1
  208. package/dist/components/Spacing/Spacing.js.map +1 -1
  209. package/dist/components/SplitCol/SplitCol.d.ts +0 -6
  210. package/dist/components/SplitCol/SplitCol.js +1 -7
  211. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  212. package/dist/components/SplitCol/SplitColContext.d.ts +7 -0
  213. package/dist/components/SplitCol/SplitColContext.js +9 -0
  214. package/dist/components/SplitCol/SplitColContext.js.map +1 -0
  215. package/dist/components/Switch/Switch.js +2 -3
  216. package/dist/components/Switch/Switch.js.map +1 -1
  217. package/dist/components/TabbarItem/TabbarItem.js +9 -0
  218. package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
  219. package/dist/components/Tabs/Tabs.js +6 -15
  220. package/dist/components/Tabs/Tabs.js.map +1 -1
  221. package/dist/components/Tooltip/Tooltip.d.ts +3 -3
  222. package/dist/components/Tooltip/Tooltip.js +116 -151
  223. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  224. package/dist/components/Touch/Touch.js +4 -4
  225. package/dist/components/Touch/Touch.js.map +1 -1
  226. package/dist/components/View/View.js +1 -1
  227. package/dist/components/View/View.js.map +1 -1
  228. package/dist/components/View/ViewInfinite.d.ts +1 -1
  229. package/dist/components/View/ViewInfinite.js +1 -1
  230. package/dist/components/View/ViewInfinite.js.map +1 -1
  231. package/dist/components/WriteBarIcon/WriteBarIcon.js +11 -9
  232. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  233. package/dist/components.css +142 -2
  234. package/dist/components.css.map +1 -1
  235. package/dist/components.js.tmp +61921 -4
  236. package/dist/cssm/components/ActionSheet/ActionSheet.module.css +1 -1
  237. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +1 -1
  238. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +1 -1
  239. package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
  240. package/dist/cssm/components/Alert/Alert.module.css +1 -1
  241. package/dist/cssm/components/AppRoot/AppRoot.js +7 -4
  242. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  243. package/dist/cssm/components/AppRoot/AppRoot.module.css +1 -1
  244. package/dist/cssm/components/Avatar/Avatar.d.ts +1 -1
  245. package/dist/cssm/components/Avatar/Avatar.module.css +1 -1
  246. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +1 -1
  247. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.d.ts +1 -1
  248. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +5 -4
  249. package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
  250. package/dist/cssm/components/Badge/Badge.module.css +1 -1
  251. package/dist/cssm/components/Banner/Banner.module.css +1 -1
  252. package/dist/cssm/components/BaseGallery/BaseGallery.module.css +1 -1
  253. package/dist/cssm/components/Button/Button.module.css +1 -1
  254. package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +1 -1
  255. package/dist/cssm/components/Calendar/Calendar.module.css +1 -1
  256. package/dist/cssm/components/CalendarDay/CalendarDay.module.css +1 -1
  257. package/dist/cssm/components/CalendarDays/CalendarDays.module.css +1 -1
  258. package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +1 -1
  259. package/dist/cssm/components/CalendarRange/CalendarRange.module.css +1 -1
  260. package/dist/cssm/components/CalendarTime/CalendarTime.module.css +1 -1
  261. package/dist/cssm/components/Card/Card.module.css +2 -2
  262. package/dist/cssm/components/CardGrid/CardGrid.module.css +1 -1
  263. package/dist/cssm/components/CardScroll/CardScroll.module.css +1 -1
  264. package/dist/cssm/components/Cell/Cell.module.css +1 -1
  265. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -4
  266. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
  267. package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +1 -1
  268. package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +1 -1
  269. package/dist/cssm/components/CellButton/CellButton.module.css +1 -1
  270. package/dist/cssm/components/Checkbox/Checkbox.d.ts +3 -2
  271. package/dist/cssm/components/Checkbox/Checkbox.js +12 -2
  272. package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
  273. package/dist/cssm/components/Checkbox/Checkbox.module.css +1 -1
  274. package/dist/cssm/components/Chip/Chip.module.css +1 -1
  275. package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +1 -1
  276. package/dist/cssm/components/ChipsSelect/ChipsSelect.js +0 -4
  277. package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
  278. package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +1 -1
  279. package/dist/cssm/components/ContentCard/ContentCard.js +2 -1
  280. package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
  281. package/dist/cssm/components/ContentCard/ContentCard.module.css +1 -1
  282. package/dist/cssm/components/Counter/Counter.module.css +1 -1
  283. package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +1 -1
  284. package/dist/cssm/components/CustomSelect/CustomSelect.js +12 -8
  285. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  286. package/dist/cssm/components/CustomSelect/CustomSelect.module.css +1 -1
  287. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.d.ts +2 -3
  288. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +22 -73
  289. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
  290. package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +1 -1
  291. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +1 -1
  292. package/dist/cssm/components/DateInput/DateInput.d.ts +3 -2
  293. package/dist/cssm/components/DateInput/DateInput.js +4 -3
  294. package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
  295. package/dist/cssm/components/DateInput/DateInput.module.css +1 -1
  296. package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
  297. package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -2
  298. package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
  299. package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +1 -1
  300. package/dist/cssm/components/Div/Div.module.css +1 -1
  301. package/dist/cssm/components/Epic/Epic.js +1 -1
  302. package/dist/cssm/components/Epic/Epic.js.map +1 -1
  303. package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
  304. package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
  305. package/dist/cssm/components/FixedLayout/FixedLayout.module.css +1 -1
  306. package/dist/cssm/components/FocusVisible/FocusVisible.module.css +1 -1
  307. package/dist/cssm/components/Footer/Footer.module.css +1 -1
  308. package/dist/cssm/components/FormField/FormField.js +6 -10
  309. package/dist/cssm/components/FormField/FormField.js.map +1 -1
  310. package/dist/cssm/components/FormField/FormField.module.css +1 -1
  311. package/dist/cssm/components/FormItem/FormItem.module.css +1 -1
  312. package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +1 -1
  313. package/dist/cssm/components/FormStatus/FormStatus.module.css +1 -1
  314. package/dist/cssm/components/Gradient/Gradient.module.css +1 -1
  315. package/dist/cssm/components/Group/Group.module.css +1 -1
  316. package/dist/cssm/components/Header/Header.module.css +1 -1
  317. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +1 -1
  318. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +1 -1
  319. package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +1 -1
  320. package/dist/cssm/components/IconButton/IconButton.js +9 -0
  321. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  322. package/dist/cssm/components/IconButton/IconButton.module.css +1 -1
  323. package/dist/cssm/components/ImageBase/ImageBase.module.css +1 -1
  324. package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +1 -1
  325. package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +1 -1
  326. package/dist/cssm/components/InfoRow/InfoRow.module.css +1 -1
  327. package/dist/cssm/components/Input/Input.module.css +1 -1
  328. package/dist/cssm/components/InputLike/InputLike.module.css +1 -1
  329. package/dist/cssm/components/InputLike/InputLikeDivider.module.css +1 -1
  330. package/dist/cssm/components/Link/Link.module.css +1 -1
  331. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +1 -1
  332. package/dist/cssm/components/ModalCard/ModalCard.d.ts +1 -1
  333. package/dist/cssm/components/ModalCard/ModalCard.js +4 -2
  334. package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
  335. package/dist/cssm/components/ModalCard/ModalCard.module.css +1 -1
  336. package/dist/cssm/components/ModalCardBase/ModalCardBase.d.ts +5 -1
  337. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +9 -2
  338. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  339. package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +1 -1
  340. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +1 -1
  341. package/dist/cssm/components/ModalPage/ModalPage.d.ts +2 -6
  342. package/dist/cssm/components/ModalPage/ModalPage.js +13 -7
  343. package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
  344. package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -1
  345. package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +1 -1
  346. package/dist/cssm/components/ModalRoot/ModalRoot.js +1 -2
  347. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  348. package/dist/cssm/components/ModalRoot/ModalRoot.module.css +1 -1
  349. package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +1 -1
  350. package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
  351. package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
  352. package/dist/cssm/components/Pagination/Pagination.module.css +1 -1
  353. package/dist/cssm/components/Panel/Panel.module.css +1 -1
  354. package/dist/cssm/components/PanelHeader/PanelHeader.js +18 -4
  355. package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
  356. package/dist/cssm/components/PanelHeader/PanelHeader.module.css +1 -1
  357. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +11 -2
  358. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  359. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +1 -1
  360. package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +1 -1
  361. package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +1 -1
  362. package/dist/cssm/components/Placeholder/Placeholder.module.css +1 -1
  363. package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +1 -1
  364. package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +1 -1
  365. package/dist/cssm/components/Popover/Popover.js +4 -1
  366. package/dist/cssm/components/Popover/Popover.js.map +1 -1
  367. package/dist/cssm/components/Popover/Popover.module.css +1 -1
  368. package/dist/cssm/components/Popper/Popper.d.ts +12 -9
  369. package/dist/cssm/components/Popper/Popper.js +93 -120
  370. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  371. package/dist/cssm/components/Popper/Popper.module.css +1 -1
  372. package/dist/cssm/components/PopperArrow/PopperArrow.d.ts +15 -5
  373. package/dist/cssm/components/PopperArrow/PopperArrow.js +40 -15
  374. package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
  375. package/dist/cssm/components/PopperArrow/PopperArrow.module.css +1 -1
  376. package/dist/cssm/components/Progress/Progress.js +3 -1
  377. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  378. package/dist/cssm/components/Progress/Progress.module.css +1 -1
  379. package/dist/cssm/components/PromoBanner/PromoBanner.module.css +1 -1
  380. package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +1 -1
  381. package/dist/cssm/components/Radio/Radio.module.css +1 -1
  382. package/dist/cssm/components/RadioGroup/RadioGroup.module.css +1 -1
  383. package/dist/cssm/components/Removable/Removable.module.css +1 -1
  384. package/dist/cssm/components/RichCell/RichCell.module.css +1 -1
  385. package/dist/cssm/components/RichTooltip/RichTooltip.module.css +1 -1
  386. package/dist/cssm/components/Root/Root.js +1 -1
  387. package/dist/cssm/components/Root/Root.js.map +1 -1
  388. package/dist/cssm/components/Root/Root.module.css +1 -1
  389. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +1 -1
  390. package/dist/cssm/components/Search/Search.module.css +1 -1
  391. package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +1 -1
  392. package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +1 -1
  393. package/dist/cssm/components/Select/Select.d.ts +1 -5
  394. package/dist/cssm/components/Select/Select.js +12 -39
  395. package/dist/cssm/components/Select/Select.js.map +1 -1
  396. package/dist/cssm/components/Select/Select.module.css +1 -1
  397. package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +1 -1
  398. package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
  399. package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
  400. package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +11 -0
  401. package/dist/cssm/components/SelectTypography/SelectTypography.js +40 -0
  402. package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -0
  403. package/dist/cssm/components/SelectTypography/SelectTypography.module.css +1 -0
  404. package/dist/cssm/components/Separator/Separator.module.css +1 -1
  405. package/dist/cssm/components/SimpleCell/SimpleCell.module.css +1 -1
  406. package/dist/cssm/components/Slider/Slider.d.ts +1 -1
  407. package/dist/cssm/components/Slider/Slider.js +4 -3
  408. package/dist/cssm/components/Slider/Slider.js.map +1 -1
  409. package/dist/cssm/components/Slider/Slider.module.css +1 -1
  410. package/dist/cssm/components/Snackbar/Snackbar.module.css +1 -1
  411. package/dist/cssm/components/Spacing/Spacing.js +2 -1
  412. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  413. package/dist/cssm/components/Spacing/Spacing.module.css +1 -1
  414. package/dist/cssm/components/Spinner/Spinner.module.css +1 -1
  415. package/dist/cssm/components/SplitCol/SplitCol.d.ts +0 -6
  416. package/dist/cssm/components/SplitCol/SplitCol.js +1 -7
  417. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  418. package/dist/cssm/components/SplitCol/SplitCol.module.css +1 -1
  419. package/dist/cssm/components/SplitCol/SplitColContext.d.ts +7 -0
  420. package/dist/cssm/components/SplitCol/SplitColContext.js +9 -0
  421. package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -0
  422. package/dist/cssm/components/SplitLayout/SplitLayout.module.css +1 -1
  423. package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +1 -1
  424. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +1 -1
  425. package/dist/cssm/components/Switch/Switch.js +2 -3
  426. package/dist/cssm/components/Switch/Switch.js.map +1 -1
  427. package/dist/cssm/components/Switch/Switch.module.css +1 -1
  428. package/dist/cssm/components/Tabbar/Tabbar.module.css +1 -1
  429. package/dist/cssm/components/TabbarItem/TabbarItem.js +9 -0
  430. package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
  431. package/dist/cssm/components/TabbarItem/TabbarItem.module.css +1 -1
  432. package/dist/cssm/components/Tabs/Tabs.js +6 -15
  433. package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
  434. package/dist/cssm/components/Tabs/Tabs.module.css +1 -1
  435. package/dist/cssm/components/TabsItem/TabsItem.module.css +1 -1
  436. package/dist/cssm/components/Tappable/Tappable.module.css +1 -1
  437. package/dist/cssm/components/TextTooltip/TextTooltip.module.css +1 -1
  438. package/dist/cssm/components/Textarea/Textarea.module.css +1 -1
  439. package/dist/cssm/components/Tooltip/Tooltip.d.ts +3 -3
  440. package/dist/cssm/components/Tooltip/Tooltip.js +122 -151
  441. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  442. package/dist/cssm/components/Tooltip/Tooltip.module.css +1 -1
  443. package/dist/cssm/components/Touch/Touch.js +4 -4
  444. package/dist/cssm/components/Touch/Touch.js.map +1 -1
  445. package/dist/cssm/components/Typography/Caption/Caption.module.css +1 -1
  446. package/dist/cssm/components/Typography/Footnote/Footnote.module.css +1 -1
  447. package/dist/cssm/components/Typography/Headline/Headline.module.css +1 -1
  448. package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +1 -1
  449. package/dist/cssm/components/Typography/Subhead/Subhead.module.css +1 -1
  450. package/dist/cssm/components/Typography/Text/Text.module.css +1 -1
  451. package/dist/cssm/components/Typography/Title/Title.module.css +1 -1
  452. package/dist/cssm/components/UsersStack/UsersStack.module.css +1 -1
  453. package/dist/cssm/components/View/View.js +1 -1
  454. package/dist/cssm/components/View/View.js.map +1 -1
  455. package/dist/cssm/components/View/View.module.css +1 -1
  456. package/dist/cssm/components/View/ViewIOS.module.css +1 -1
  457. package/dist/cssm/components/View/ViewInfinite.d.ts +1 -1
  458. package/dist/cssm/components/View/ViewInfinite.js +1 -1
  459. package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
  460. package/dist/cssm/components/WriteBar/WriteBar.module.css +1 -1
  461. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +11 -9
  462. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  463. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +1 -1
  464. package/dist/cssm/index.d.ts +37 -30
  465. package/dist/cssm/index.js +24 -18
  466. package/dist/cssm/index.js.map +1 -1
  467. package/dist/cssm/lib/floating/adapters.d.ts +2 -0
  468. package/dist/cssm/lib/floating/adapters.js +56 -0
  469. package/dist/cssm/lib/floating/adapters.js.map +1 -0
  470. package/dist/cssm/lib/floating/functions.d.ts +10 -0
  471. package/dist/cssm/lib/floating/functions.js +28 -0
  472. package/dist/cssm/lib/floating/functions.js.map +1 -0
  473. package/dist/cssm/lib/floating/index.d.ts +4 -0
  474. package/dist/cssm/lib/floating/index.js +4 -0
  475. package/dist/cssm/lib/floating/index.js.map +1 -0
  476. package/dist/cssm/lib/floating/types.d.ts +4 -0
  477. package/dist/cssm/lib/floating/types.js +2 -0
  478. package/dist/cssm/lib/floating/types.js.map +1 -0
  479. package/dist/cssm/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  480. package/dist/cssm/lib/warnOnce.d.ts +7 -0
  481. package/dist/cssm/lib/warnOnce.js +12 -0
  482. package/dist/cssm/lib/warnOnce.js.map +1 -1
  483. package/dist/cssm/shared/breakpoints.d.ts +2 -2
  484. package/dist/cssm/shared/breakpoints.js +12 -13
  485. package/dist/cssm/shared/breakpoints.js.map +1 -1
  486. package/dist/cssm/styles/adaptivity.module.css +1 -1
  487. package/dist/cssm/styles/common.css +1 -1
  488. package/dist/cssm/styles/themes.css +1 -1
  489. package/dist/index.d.ts +37 -30
  490. package/dist/index.js +22 -16
  491. package/dist/index.js.map +1 -1
  492. package/dist/lib/floating/adapters.d.ts +2 -0
  493. package/dist/lib/floating/adapters.js +56 -0
  494. package/dist/lib/floating/adapters.js.map +1 -0
  495. package/dist/lib/floating/functions.d.ts +10 -0
  496. package/dist/lib/floating/functions.js +28 -0
  497. package/dist/lib/floating/functions.js.map +1 -0
  498. package/dist/lib/floating/index.d.ts +4 -0
  499. package/dist/lib/floating/index.js +4 -0
  500. package/dist/lib/floating/index.js.map +1 -0
  501. package/dist/lib/floating/types.d.ts +4 -0
  502. package/dist/lib/floating/types.js +2 -0
  503. package/dist/lib/floating/types.js.map +1 -0
  504. package/dist/lib/useIsomorphicLayoutEffect.d.ts +1 -1
  505. package/dist/lib/warnOnce.d.ts +7 -0
  506. package/dist/lib/warnOnce.js +12 -0
  507. package/dist/lib/warnOnce.js.map +1 -1
  508. package/dist/shared/breakpoints.d.ts +2 -2
  509. package/dist/shared/breakpoints.js +12 -13
  510. package/dist/shared/breakpoints.js.map +1 -1
  511. package/dist/stable.js.tmp +69 -21
  512. package/dist/vkui.css +143 -3
  513. package/dist/vkui.css.map +1 -1
  514. package/dist/vkui.js.tmp +61837 -0
  515. package/package.json +6 -6
  516. package/dist/cssm/styles/components.css +0 -3
@@ -1,147 +1,120 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "style", "customModifiers", "renderContent", "className"];
5
+ var _excluded = ["targetRef", "children", "getRef", "placement", "onPlacementChange", "arrow", "arrowClassName", "sameWidth", "offsetDistance", "offsetSkidding", "forcePortal", "autoUpdateOnTargetResize", "style", "customMiddlewares", "renderContent", "className"];
7
6
  import * as React from 'react';
8
- import { usePopper } from 'react-popper';
9
7
  import { AppRootPortal } from '../AppRoot/AppRootPortal';
10
- import { PopperArrow } from '../PopperArrow/PopperArrow';
11
- import { usePlatform } from '../../hooks/usePlatform';
12
- import { getPlatformClassName } from '../../helpers/getPlatformClassName';
8
+ import { ARROW_PADDING, ARROW_HEIGHT, PopperArrow } from '../PopperArrow/PopperArrow';
13
9
  import { useExternRef } from '../../hooks/useExternRef';
14
- import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
10
+ import { checkIsNotAutoPlacement, getAutoPlacementAlign, convertFloatingDataToReactCSSProperties, useFloating, autoUpdateFloatingElement, offsetMiddleware, flipMiddleware, shiftMiddleware, autoPlacementMiddleware, arrowMiddleware, sizeMiddleware } from '../../lib/floating';
15
11
  import { classNames } from '@vkontakte/vkjs';
16
12
  import "./Popper.module.css";
17
- var ARROW_PADDING = 8;
18
- var ARROW_WIDTH = 20;
19
- var ARROW_HEIGHT = 8;
20
- var preventOverflowModifier = {
21
- name: 'preventOverflow',
22
- options: {
23
- mainAxis: false
24
- }
25
- };
26
- var flipModifier = {
27
- name: 'flip'
28
- };
29
- var arrowModifier = {
30
- name: 'arrow',
31
- options: {
32
- padding: ARROW_PADDING
33
- }
34
- };
35
- var sameWidthModifier = {
36
- name: 'sameWidth',
37
- enabled: true,
38
- phase: 'beforeWrite',
39
- requires: ['computeStyles'],
40
- fn: function fn(_ref) {
41
- var state = _ref.state;
42
- state.styles.popper.width = "".concat(state.rects.reference.width, "px");
43
- },
44
- effect: function effect(_ref2) {
45
- var state = _ref2.state;
46
- state.elements.popper.style.width = "".concat(state.elements.reference.offsetWidth, "px");
47
- }
48
- };
49
-
50
13
  /**
51
14
  * @see https://vkcom.github.io/VKUI/#/Popper
52
15
  */
53
- export var Popper = function Popper(_ref3) {
54
- var _targetRef$current3;
55
- var targetRef = _ref3.targetRef,
56
- children = _ref3.children,
57
- getRef = _ref3.getRef,
58
- _ref3$placement = _ref3.placement,
59
- placement = _ref3$placement === void 0 ? 'bottom-start' : _ref3$placement,
60
- onPlacementChange = _ref3.onPlacementChange,
61
- arrow = _ref3.arrow,
62
- arrowClassName = _ref3.arrowClassName,
63
- sameWidth = _ref3.sameWidth,
64
- _ref3$offsetDistance = _ref3.offsetDistance,
65
- offsetDistance = _ref3$offsetDistance === void 0 ? 8 : _ref3$offsetDistance,
66
- _ref3$offsetSkidding = _ref3.offsetSkidding,
67
- offsetSkidding = _ref3$offsetSkidding === void 0 ? 0 : _ref3$offsetSkidding,
68
- _ref3$forcePortal = _ref3.forcePortal,
69
- forcePortal = _ref3$forcePortal === void 0 ? true : _ref3$forcePortal,
70
- compStyles = _ref3.style,
71
- customModifiers = _ref3.customModifiers,
72
- renderContent = _ref3.renderContent,
73
- className = _ref3.className,
74
- restProps = _objectWithoutProperties(_ref3, _excluded);
75
- var _React$useState = React.useState(null),
76
- _React$useState2 = _slicedToArray(_React$useState, 2),
77
- popperNode = _React$useState2[0],
78
- setPopperNode = _React$useState2[1];
79
- var _React$useState3 = React.useState(0),
80
- _React$useState4 = _slicedToArray(_React$useState3, 2),
81
- smallTargetOffsetSkidding = _React$useState4[0],
82
- setSmallTargetOffsetSkidding = _React$useState4[1];
83
- var platform = usePlatform();
84
- var setExternalRef = useExternRef(getRef, setPopperNode);
85
- var modifiers = React.useMemo(function () {
86
- var modifiers = [preventOverflowModifier, {
87
- name: 'offset',
88
- options: {
89
- offset: [arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding, arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance]
90
- }
91
- }, flipModifier];
92
- if (arrow) {
93
- modifiers.push(arrowModifier);
16
+ export var Popper = function Popper(_ref) {
17
+ var targetRef = _ref.targetRef,
18
+ children = _ref.children,
19
+ getRef = _ref.getRef,
20
+ _ref$placement = _ref.placement,
21
+ placementProp = _ref$placement === void 0 ? 'bottom-start' : _ref$placement,
22
+ onPlacementChange = _ref.onPlacementChange,
23
+ arrow = _ref.arrow,
24
+ arrowClassName = _ref.arrowClassName,
25
+ sameWidth = _ref.sameWidth,
26
+ _ref$offsetDistance = _ref.offsetDistance,
27
+ offsetDistance = _ref$offsetDistance === void 0 ? 8 : _ref$offsetDistance,
28
+ _ref$offsetSkidding = _ref.offsetSkidding,
29
+ offsetSkidding = _ref$offsetSkidding === void 0 ? 0 : _ref$offsetSkidding,
30
+ _ref$forcePortal = _ref.forcePortal,
31
+ forcePortal = _ref$forcePortal === void 0 ? true : _ref$forcePortal,
32
+ _ref$autoUpdateOnTarg = _ref.autoUpdateOnTargetResize,
33
+ autoUpdateOnTargetResize = _ref$autoUpdateOnTarg === void 0 ? false : _ref$autoUpdateOnTarg,
34
+ styleProp = _ref.style,
35
+ customMiddlewares = _ref.customMiddlewares,
36
+ renderContent = _ref.renderContent,
37
+ className = _ref.className,
38
+ restProps = _objectWithoutProperties(_ref, _excluded);
39
+ var arrowRef = React.useRef(null);
40
+ var isNotAutoPlacement = checkIsNotAutoPlacement(placementProp);
41
+ var memoizedMiddlewares = React.useMemo(function () {
42
+ var middlewares = [offsetMiddleware({
43
+ crossAxis: offsetSkidding,
44
+ mainAxis: arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance
45
+ })];
46
+
47
+ // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement
48
+ if (isNotAutoPlacement) {
49
+ middlewares.push(flipMiddleware());
50
+ } else {
51
+ middlewares.push(autoPlacementMiddleware({
52
+ alignment: getAutoPlacementAlign(placementProp)
53
+ }));
94
54
  }
55
+ middlewares.push(shiftMiddleware());
95
56
  if (sameWidth) {
96
- modifiers.push(sameWidthModifier);
57
+ middlewares.push(sizeMiddleware({
58
+ apply: function apply(_ref2) {
59
+ var rects = _ref2.rects,
60
+ elements = _ref2.elements;
61
+ Object.assign(elements.floating.style, {
62
+ width: "".concat(rects.reference.width, "px")
63
+ });
64
+ }
65
+ }));
97
66
  }
98
- if (customModifiers) {
99
- modifiers.push.apply(modifiers, _toConsumableArray(customModifiers));
67
+ if (customMiddlewares) {
68
+ middlewares.push.apply(middlewares, _toConsumableArray(customMiddlewares));
100
69
  }
101
- return modifiers;
102
- }, [arrow, sameWidth, smallTargetOffsetSkidding, offsetSkidding, offsetDistance, customModifiers]);
103
- var _usePopper = usePopper(targetRef.current, popperNode, {
104
- placement: placement,
105
- modifiers: modifiers
106
- }),
107
- popperStyles = _usePopper.styles,
108
- state = _usePopper.state,
109
- attributes = _usePopper.attributes;
110
- var resolvedPlacement = state === null || state === void 0 ? void 0 : state.placement;
111
- var isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован с краю
112
70
 
113
- // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до
114
- // таргета из-за маленьких размеров последнего
115
- useIsomorphicLayoutEffect(function () {
116
- if (arrow && isEdgePlacement) {
117
- var _ref4, _targetRef$current, _targetRef$current2;
118
- var placementDirection = resolvedPlacement !== null && resolvedPlacement !== void 0 && resolvedPlacement.startsWith('bottom') || resolvedPlacement !== null && resolvedPlacement !== void 0 && resolvedPlacement.startsWith('top') ? 'vertical' : 'horizontal';
119
- var arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;
120
- var targetSize = (_ref4 = placementDirection === 'vertical' ? (_targetRef$current = targetRef.current) === null || _targetRef$current === void 0 ? void 0 : _targetRef$current.offsetWidth : (_targetRef$current2 = targetRef.current) === null || _targetRef$current2 === void 0 ? void 0 : _targetRef$current2.offsetHeight) !== null && _ref4 !== void 0 ? _ref4 : 0;
121
- if (targetSize < arrowSize + 2 * ARROW_PADDING) {
122
- setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);
123
- }
124
- } else {
125
- setSmallTargetOffsetSkidding(0);
71
+ // см. https://floating-ui.com/docs/arrow#order
72
+ if (arrow) {
73
+ middlewares.push(arrowMiddleware({
74
+ element: arrowRef,
75
+ padding: ARROW_PADDING
76
+ }));
126
77
  }
127
- }, [arrow, isEdgePlacement]);
78
+ return middlewares;
79
+ }, [arrow, sameWidth, offsetSkidding, offsetDistance, customMiddlewares, placementProp, isNotAutoPlacement]);
80
+ var _useFloating = useFloating({
81
+ placement: isNotAutoPlacement ? placementProp : undefined,
82
+ middleware: memoizedMiddlewares,
83
+ whileElementsMounted: function whileElementsMounted() {
84
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
85
+ args[_key] = arguments[_key];
86
+ }
87
+ return autoUpdateFloatingElement.apply(void 0, args.concat([{
88
+ elementResize: autoUpdateOnTargetResize
89
+ }]));
90
+ }
91
+ }),
92
+ floatingDataX = _useFloating.x,
93
+ floatingDataY = _useFloating.y,
94
+ floatingPositionStrategy = _useFloating.strategy,
95
+ resolvedPlacement = _useFloating.placement,
96
+ refs = _useFloating.refs,
97
+ arrowCoords = _useFloating.middlewareData.arrow;
98
+ var handleRootRef = useExternRef(refs.setFloating, getRef);
99
+ React.useEffect(function () {
100
+ refs.setReference(targetRef.current);
101
+ }, [refs, targetRef]);
128
102
  React.useEffect(function () {
129
- if (resolvedPlacement) {
130
- onPlacementChange && onPlacementChange({
103
+ if (resolvedPlacement && onPlacementChange) {
104
+ onPlacementChange({
131
105
  placement: resolvedPlacement
132
106
  });
133
107
  }
134
108
  }, [onPlacementChange, resolvedPlacement]);
135
- var dropdown = /*#__PURE__*/React.createElement("div", _extends({}, restProps, attributes.popper, {
136
- className: classNames("vkuiPopper", getPlatformClassName("vkuiPopper", platform), className),
137
- ref: setExternalRef,
138
- style: _objectSpread(_objectSpread(_objectSpread({}, compStyles), popperStyles.popper), {}, {
139
- minWidth: sameWidth ? (_targetRef$current3 = targetRef.current) === null || _targetRef$current3 === void 0 ? void 0 : _targetRef$current3.scrollWidth : undefined
140
- })
109
+ var dropdown = /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
110
+ className: classNames("vkuiPopper", className),
111
+ ref: handleRootRef,
112
+ style: _objectSpread(_objectSpread({}, styleProp), convertFloatingDataToReactCSSProperties(floatingPositionStrategy, floatingDataX, floatingDataY, sameWidth ? null : undefined))
141
113
  }), arrow && /*#__PURE__*/React.createElement(PopperArrow, {
142
- attributes: attributes.arrow,
143
- style: popperStyles.arrow,
144
- arrowClassName: arrowClassName
114
+ coords: arrowCoords,
115
+ placement: resolvedPlacement,
116
+ arrowClassName: arrowClassName,
117
+ getRootRef: arrowRef
145
118
  }), renderContent ? renderContent({
146
119
  className: "vkuiPopper__content"
147
120
  }) : /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Popper.js","names":["React","usePopper","AppRootPortal","PopperArrow","usePlatform","getPlatformClassName","useExternRef","useIsomorphicLayoutEffect","classNames","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","preventOverflowModifier","name","options","mainAxis","flipModifier","arrowModifier","padding","sameWidthModifier","enabled","phase","requires","fn","state","styles","popper","width","rects","reference","effect","elements","style","offsetWidth","Popper","targetRef","children","getRef","placement","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","compStyles","customModifiers","renderContent","className","restProps","useState","popperNode","setPopperNode","smallTargetOffsetSkidding","setSmallTargetOffsetSkidding","platform","setExternalRef","modifiers","useMemo","offset","push","current","popperStyles","attributes","resolvedPlacement","isEdgePlacement","includes","placementDirection","startsWith","arrowSize","targetSize","offsetHeight","useEffect","dropdown","minWidth","scrollWidth","undefined"],"sources":["../../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { usePopper, Modifier } from 'react-popper';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { PopperArrow } from '../PopperArrow/PopperArrow';\nimport { HasRef } from '../../types';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { getPlatformClassName } from '../../helpers/getPlatformClassName';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './Popper.module.css';\n\nexport type Placement =\n | 'auto'\n | 'auto-start'\n | 'auto-end'\n | 'top-start'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-end'\n | 'right-start'\n | 'right-end'\n | 'left-start'\n | 'left-end'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: Placement;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n onPlacementChange?: (data: { placement?: Placement }) => void;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customModifiers?: Array<Modifier<string>>;\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\nconst ARROW_PADDING = 8;\nconst ARROW_WIDTH = 20;\nconst ARROW_HEIGHT = 8;\n\nconst preventOverflowModifier: Modifier<string> = {\n name: 'preventOverflow',\n options: {\n mainAxis: false,\n },\n};\n\nconst flipModifier: Modifier<string> = {\n name: 'flip',\n};\n\nconst arrowModifier: Modifier<string> = {\n name: 'arrow',\n options: {\n padding: ARROW_PADDING,\n },\n};\n\nconst sameWidthModifier: Modifier<string> = {\n name: 'sameWidth',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn: ({ state }) => {\n state.styles.popper.width = `${state.rects.reference.width}px`;\n },\n effect: ({ state }) => {\n state.elements.popper.style.width = `${\n (state.elements.reference as HTMLElement).offsetWidth\n }px`;\n },\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n style: compStyles,\n customModifiers,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const [popperNode, setPopperNode] = React.useState<HTMLDivElement | null>(null);\n const [smallTargetOffsetSkidding, setSmallTargetOffsetSkidding] = React.useState(0);\n const platform = usePlatform();\n\n const setExternalRef = useExternRef<HTMLDivElement>(getRef, setPopperNode);\n\n const modifiers = React.useMemo(() => {\n const modifiers: Array<Modifier<string>> = [\n preventOverflowModifier,\n {\n name: 'offset',\n options: {\n offset: [\n arrow ? offsetSkidding - smallTargetOffsetSkidding : offsetSkidding,\n arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n ],\n },\n },\n flipModifier,\n ];\n\n if (arrow) {\n modifiers.push(arrowModifier);\n }\n\n if (sameWidth) {\n modifiers.push(sameWidthModifier);\n }\n\n if (customModifiers) {\n modifiers.push(...customModifiers);\n }\n return modifiers;\n }, [\n arrow,\n sameWidth,\n smallTargetOffsetSkidding,\n offsetSkidding,\n offsetDistance,\n customModifiers,\n ]);\n\n const {\n styles: popperStyles,\n state,\n attributes,\n } = usePopper(targetRef.current, popperNode, {\n placement,\n modifiers,\n });\n\n const resolvedPlacement = state?.placement;\n const isEdgePlacement = !!resolvedPlacement && resolvedPlacement.includes('-'); // true, если поппер отрисован с краю\n\n // Если поппер рисуется с краю, то нужно опционально сместить его в тех случаях, когда стрелка не дотягивается до\n // таргета из-за маленьких размеров последнего\n useIsomorphicLayoutEffect(() => {\n if (arrow && isEdgePlacement) {\n const placementDirection =\n resolvedPlacement?.startsWith('bottom') || resolvedPlacement?.startsWith('top')\n ? 'vertical'\n : 'horizontal';\n\n const arrowSize = placementDirection === 'vertical' ? ARROW_WIDTH : ARROW_HEIGHT;\n const targetSize =\n (placementDirection === 'vertical'\n ? targetRef.current?.offsetWidth\n : targetRef.current?.offsetHeight) ?? 0;\n\n if (targetSize < arrowSize + 2 * ARROW_PADDING) {\n setSmallTargetOffsetSkidding(ARROW_PADDING + arrowSize / 2);\n }\n } else {\n setSmallTargetOffsetSkidding(0);\n }\n }, [arrow, isEdgePlacement]);\n\n React.useEffect(() => {\n if (resolvedPlacement) {\n onPlacementChange && onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n {...attributes.popper}\n className={classNames(\n styles['Popper'],\n getPlatformClassName(styles['Popper'], platform),\n className,\n )}\n ref={setExternalRef}\n style={{\n ...compStyles,\n ...popperStyles.popper,\n minWidth: sameWidth ? targetRef.current?.scrollWidth : undefined,\n }}\n >\n {arrow && (\n <PopperArrow\n attributes={attributes.arrow}\n style={popperStyles.arrow}\n arrowClassName={arrowClassName}\n />\n )}\n {renderContent ? (\n renderContent({ className: styles['Popper__content'] })\n ) : (\n <div className={styles['Popper__content']}>{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} className={styles['PopperPortal']}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Popper.js","names":["React","AppRootPortal","ARROW_PADDING","ARROW_HEIGHT","PopperArrow","useExternRef","checkIsNotAutoPlacement","getAutoPlacementAlign","convertFloatingDataToReactCSSProperties","useFloating","autoUpdateFloatingElement","offsetMiddleware","flipMiddleware","shiftMiddleware","autoPlacementMiddleware","arrowMiddleware","sizeMiddleware","classNames","Popper","targetRef","children","getRef","placement","placementProp","onPlacementChange","arrow","arrowClassName","sameWidth","offsetDistance","offsetSkidding","forcePortal","autoUpdateOnTargetResize","styleProp","style","customMiddlewares","renderContent","className","restProps","arrowRef","useRef","isNotAutoPlacement","memoizedMiddlewares","useMemo","middlewares","crossAxis","mainAxis","push","alignment","apply","rects","elements","Object","assign","floating","width","reference","element","padding","undefined","middleware","whileElementsMounted","args","elementResize","floatingDataX","x","floatingDataY","y","floatingPositionStrategy","strategy","resolvedPlacement","refs","arrowCoords","middlewareData","handleRootRef","setFloating","useEffect","setReference","current","dropdown"],"sources":["../../../../src/components/Popper/Popper.tsx"],"sourcesContent":["import * as React from 'react';\nimport { AppRootPortal } from '../AppRoot/AppRootPortal';\nimport { ARROW_PADDING, ARROW_HEIGHT, PopperArrow } from '../PopperArrow/PopperArrow';\nimport type { HasRef } from '../../types';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport {\n type Placement,\n type PlacementWithAuto,\n checkIsNotAutoPlacement,\n getAutoPlacementAlign,\n convertFloatingDataToReactCSSProperties,\n useFloating,\n autoUpdateFloatingElement,\n type UseFloatingMiddleware,\n offsetMiddleware,\n flipMiddleware,\n shiftMiddleware,\n autoPlacementMiddleware,\n arrowMiddleware,\n sizeMiddleware,\n} from '../../lib/floating';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './Popper.module.css';\n\nexport interface PopperRenderContentProps {\n className: string;\n}\n\nexport interface PopperCommonProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * По умолчанию компонент выберет наилучшее расположение сам. Но его можно задать извне с помощью этого свойства\n */\n placement?: PlacementWithAuto;\n /**\n * Отступ по вспомогательной оси\n */\n offsetSkidding?: number;\n /**\n * Отступ по главной оси\n */\n offsetDistance?: number;\n /**\n * Отображать ли стрелку, указывающую на якорный элемент\n */\n arrow?: boolean;\n /**\n * Стиль стрелки\n */\n arrowClassName?: string;\n /**\n * Выставлять ширину равной target элементу\n */\n sameWidth?: boolean;\n forcePortal?: boolean;\n /**\n * Подписывается на изменение геометрии `targetRef`, чтобы пересчитать свою позицию.\n */\n autoUpdateOnTargetResize?: boolean;\n /**\n * Массив кастомных модификаторов для Popper (необходимо мемоизировать)\n */\n customMiddlewares?: UseFloatingMiddleware[];\n /**\n * При передаче содержимого в `children`, он будет обёрнут во внутренний контейнер.\n *\n * Если хочется управлять этим контейнером, то используйте данную функцию.\n *\n * > ⚠️ Параметр `children` будет проигнорирован.\n */\n renderContent?(props: PopperRenderContentProps): React.ReactNode;\n onPlacementChange?(data: { placement?: Placement }): void;\n}\n\nexport interface PopperProps extends PopperCommonProps {\n targetRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Popper\n */\nexport const Popper = ({\n targetRef,\n children,\n getRef,\n placement: placementProp = 'bottom-start',\n onPlacementChange,\n arrow,\n arrowClassName,\n sameWidth,\n offsetDistance = 8,\n offsetSkidding = 0,\n forcePortal = true,\n autoUpdateOnTargetResize = false,\n style: styleProp,\n customMiddlewares,\n renderContent,\n className,\n ...restProps\n}: PopperProps) => {\n const arrowRef = React.useRef<HTMLDivElement>(null);\n\n const isNotAutoPlacement = checkIsNotAutoPlacement(placementProp);\n\n const memoizedMiddlewares = React.useMemo(() => {\n const middlewares: UseFloatingMiddleware[] = [\n offsetMiddleware({\n crossAxis: offsetSkidding,\n mainAxis: arrow ? offsetDistance + ARROW_HEIGHT : offsetDistance,\n }),\n ];\n\n // см. https://floating-ui.com/docs/flip#conflict-with-autoplacement\n if (isNotAutoPlacement) {\n middlewares.push(flipMiddleware());\n } else {\n middlewares.push(\n autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placementProp) }),\n );\n }\n\n middlewares.push(shiftMiddleware());\n\n if (sameWidth) {\n middlewares.push(\n sizeMiddleware({\n apply({ rects, elements }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n });\n },\n }),\n );\n }\n\n if (customMiddlewares) {\n middlewares.push(...customMiddlewares);\n }\n\n // см. https://floating-ui.com/docs/arrow#order\n if (arrow) {\n middlewares.push(\n arrowMiddleware({\n element: arrowRef,\n padding: ARROW_PADDING,\n }),\n );\n }\n\n return middlewares;\n }, [\n arrow,\n sameWidth,\n offsetSkidding,\n offsetDistance,\n customMiddlewares,\n placementProp,\n isNotAutoPlacement,\n ]);\n\n const {\n x: floatingDataX,\n y: floatingDataY,\n strategy: floatingPositionStrategy,\n placement: resolvedPlacement,\n refs,\n middlewareData: { arrow: arrowCoords },\n } = useFloating({\n placement: isNotAutoPlacement ? placementProp : undefined,\n middleware: memoizedMiddlewares,\n whileElementsMounted(...args) {\n return autoUpdateFloatingElement(...args, {\n elementResize: autoUpdateOnTargetResize,\n });\n },\n });\n\n const handleRootRef = useExternRef<HTMLDivElement>(refs.setFloating, getRef);\n\n React.useEffect(() => {\n refs.setReference(targetRef.current);\n }, [refs, targetRef]);\n\n React.useEffect(() => {\n if (resolvedPlacement && onPlacementChange) {\n onPlacementChange({ placement: resolvedPlacement });\n }\n }, [onPlacementChange, resolvedPlacement]);\n\n const dropdown = (\n <div\n {...restProps}\n className={classNames(styles['Popper'], className)}\n ref={handleRootRef}\n style={{\n ...styleProp,\n ...convertFloatingDataToReactCSSProperties(\n floatingPositionStrategy,\n floatingDataX,\n floatingDataY,\n sameWidth ? null : undefined,\n ),\n }}\n >\n {arrow && (\n <PopperArrow\n coords={arrowCoords}\n placement={resolvedPlacement}\n arrowClassName={arrowClassName}\n getRootRef={arrowRef}\n />\n )}\n {renderContent ? (\n renderContent({ className: styles['Popper__content'] })\n ) : (\n <div className={styles['Popper__content']}>{children}</div>\n )}\n </div>\n );\n\n return (\n <AppRootPortal forcePortal={forcePortal} className={styles['PopperPortal']}>\n {dropdown}\n </AppRootPortal>\n );\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- .vkuiPopper{z-index:var(--vkui--z_index_popout)}
1
+ .vkuiPopper{z-index:100;z-index:var(--vkui--z_index_popout)}
@@ -1,7 +1,17 @@
1
- import * as React from 'react';
2
- export interface PopperArrowProps {
3
- style?: React.CSSProperties;
4
- attributes?: React.HTMLAttributes<HTMLDivElement> | null;
1
+ /// <reference types="react" />
2
+ import type { HasRootRef } from '../../types';
3
+ import type { Placement } from '../../lib/floating';
4
+ export declare const ARROW_PADDING = 10;
5
+ export declare const ARROW_WIDTH = 20;
6
+ export declare const ARROW_HEIGHT = 8;
7
+ declare type Coords = {
8
+ x?: number;
9
+ y?: number;
10
+ };
11
+ export interface PopperArrowProps extends HasRootRef<HTMLDivElement> {
12
+ coords?: Coords;
13
+ placement: Placement;
5
14
  arrowClassName?: string;
6
15
  }
7
- export declare const PopperArrow: ({ style, attributes, arrowClassName }: PopperArrowProps) => JSX.Element;
16
+ export declare const PopperArrow: ({ coords, arrowClassName, placement, getRootRef, }: PopperArrowProps) => JSX.Element;
17
+ export {};
@@ -1,22 +1,47 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["className"];
4
1
  import * as React from 'react';
5
2
  import { classNames } from '@vkontakte/vkjs';
6
3
  import "./PopperArrow.module.css";
4
+ export var ARROW_PADDING = 10;
5
+ export var ARROW_WIDTH = 20;
6
+ export var ARROW_HEIGHT = 8;
7
+ function getPositionsStylesByCoords(placement) {
8
+ var coords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
9
+ x: 0,
10
+ y: 0
11
+ };
12
+ if (placement.startsWith('top')) {
13
+ return {
14
+ top: '100%',
15
+ left: coords.x
16
+ };
17
+ } else if (placement.startsWith('right')) {
18
+ return {
19
+ top: coords.y,
20
+ right: 'calc(100% - 6px)'
21
+ };
22
+ } else if (placement.startsWith('bottom')) {
23
+ return {
24
+ bottom: '100%',
25
+ left: coords.x
26
+ };
27
+ } else {
28
+ return {
29
+ top: coords.y,
30
+ left: 'calc(100% - 6px)'
31
+ };
32
+ }
33
+ }
7
34
  export var PopperArrow = function PopperArrow(_ref) {
8
- var style = _ref.style,
9
- attributes = _ref.attributes,
10
- arrowClassName = _ref.arrowClassName;
11
- var _ref2 = attributes !== null && attributes !== void 0 ? attributes : {},
12
- arrowWrapperClassName = _ref2.className,
13
- restAttributes = _objectWithoutProperties(_ref2, _excluded);
14
- return /*#__PURE__*/React.createElement("div", _extends({
15
- style: style
16
- }, restAttributes, {
17
- className: classNames("vkuiPopperArrow", arrowWrapperClassName),
18
- "data-popper-arrow": true
19
- }), /*#__PURE__*/React.createElement("svg", {
35
+ var coords = _ref.coords,
36
+ arrowClassName = _ref.arrowClassName,
37
+ placement = _ref.placement,
38
+ getRootRef = _ref.getRootRef;
39
+ return /*#__PURE__*/React.createElement("div", {
40
+ ref: getRootRef,
41
+ style: getPositionsStylesByCoords(placement, coords),
42
+ className: "vkuiPopperArrow",
43
+ "data-placement": placement
44
+ }, /*#__PURE__*/React.createElement("svg", {
20
45
  className: classNames("vkuiPopperArrow__in", arrowClassName),
21
46
  width: "20",
22
47
  height: "8",
@@ -1 +1 @@
1
- {"version":3,"file":"PopperArrow.js","names":["React","classNames","PopperArrow","style","attributes","arrowClassName","arrowWrapperClassName","className","restAttributes"],"sources":["../../../../src/components/PopperArrow/PopperArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport styles from './PopperArrow.module.css';\n\nexport interface PopperArrowProps {\n style?: React.CSSProperties;\n attributes?: React.HTMLAttributes<HTMLDivElement> | null;\n arrowClassName?: string;\n}\n\nexport const PopperArrow = ({ style, attributes, arrowClassName }: PopperArrowProps) => {\n const { className: arrowWrapperClassName, ...restAttributes } = attributes ?? {};\n return (\n <div\n style={style}\n {...restAttributes}\n className={classNames(styles['PopperArrow'], arrowWrapperClassName)}\n data-popper-arrow={true}\n >\n <svg\n className={classNames(styles['PopperArrow__in'], arrowClassName)}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,iBAAiB;AAAC;AAS7C,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAW,OAAgE;EAAA,IAA1DC,KAAK,QAALA,KAAK;IAAEC,UAAU,QAAVA,UAAU;IAAEC,cAAc,QAAdA,cAAc;EAC7D,YAAgED,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,CAAC,CAAC;IAA7DE,qBAAqB,SAAhCC,SAAS;IAA4BC,cAAc;EAC3D,oBACE;IACE,KAAK,EAAEL;EAAM,GACTK,cAAc;IAClB,SAAS,EAAEP,UAAU,oBAAwBK,qBAAqB,CAAE;IACpE,qBAAmB;EAAK,iBAExB;IACE,SAAS,EAAEL,UAAU,wBAA4BI,cAAc,CAAE;IACjE,KAAK,EAAC,IAAI;IACV,MAAM,EAAC,GAAG;IACV,OAAO,EAAC,UAAU;IAClB,IAAI,EAAC,MAAM;IACX,KAAK,EAAC;EAA4B,gBAElC;IACE,QAAQ,EAAC,SAAS;IAClB,QAAQ,EAAC,SAAS;IAClB,CAAC,EAAC,gDAAgD;IAClD,IAAI,EAAC;EAAc,EACnB,CACE,CACF;AAEV,CAAC"}
1
+ {"version":3,"file":"PopperArrow.js","names":["React","classNames","ARROW_PADDING","ARROW_WIDTH","ARROW_HEIGHT","getPositionsStylesByCoords","placement","coords","x","y","startsWith","top","left","right","bottom","PopperArrow","arrowClassName","getRootRef"],"sources":["../../../../src/components/PopperArrow/PopperArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { HasRootRef } from '../../types';\nimport type { Placement } from '../../lib/floating';\nimport styles from './PopperArrow.module.css';\n\nexport const ARROW_PADDING = 10;\nexport const ARROW_WIDTH = 20;\nexport const ARROW_HEIGHT = 8;\n\ntype Coords = {\n x?: number;\n y?: number;\n};\n\nfunction getPositionsStylesByCoords(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n): React.CSSProperties {\n if (placement.startsWith('top')) {\n return {\n top: '100%',\n left: coords.x,\n };\n } else if (placement.startsWith('right')) {\n return {\n top: coords.y,\n right: 'calc(100% - 6px)',\n };\n } else if (placement.startsWith('bottom')) {\n return {\n bottom: '100%',\n left: coords.x,\n };\n } else {\n return {\n top: coords.y,\n left: 'calc(100% - 6px)',\n };\n }\n}\n\nexport interface PopperArrowProps extends HasRootRef<HTMLDivElement> {\n coords?: Coords;\n placement: Placement;\n arrowClassName?: string;\n}\n\nexport const PopperArrow = ({\n coords,\n arrowClassName,\n placement,\n getRootRef,\n}: PopperArrowProps) => {\n return (\n <div\n ref={getRootRef}\n style={getPositionsStylesByCoords(placement, coords)}\n className={styles['PopperArrow']}\n data-placement={placement}\n >\n <svg\n className={classNames(styles['PopperArrow__in'], arrowClassName)}\n width=\"20\"\n height=\"8\"\n viewBox=\"0 0 20 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 0C13 0 15.9999 8 20 8H0C3.9749 8 7 0 10 0Z\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,iBAAiB;AAAC;AAK7C,OAAO,IAAMC,aAAa,GAAG,EAAE;AAC/B,OAAO,IAAMC,WAAW,GAAG,EAAE;AAC7B,OAAO,IAAMC,YAAY,GAAG,CAAC;AAO7B,SAASC,0BAA0B,CACjCC,SAAoB,EAEC;EAAA,IADrBC,MAAc,uEAAG;IAAEC,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC;EAE/B,IAAIH,SAAS,CAACI,UAAU,CAAC,KAAK,CAAC,EAAE;IAC/B,OAAO;MACLC,GAAG,EAAE,MAAM;MACXC,IAAI,EAAEL,MAAM,CAACC;IACf,CAAC;EACH,CAAC,MAAM,IAAIF,SAAS,CAACI,UAAU,CAAC,OAAO,CAAC,EAAE;IACxC,OAAO;MACLC,GAAG,EAAEJ,MAAM,CAACE,CAAC;MACbI,KAAK,EAAE;IACT,CAAC;EACH,CAAC,MAAM,IAAIP,SAAS,CAACI,UAAU,CAAC,QAAQ,CAAC,EAAE;IACzC,OAAO;MACLI,MAAM,EAAE,MAAM;MACdF,IAAI,EAAEL,MAAM,CAACC;IACf,CAAC;EACH,CAAC,MAAM;IACL,OAAO;MACLG,GAAG,EAAEJ,MAAM,CAACE,CAAC;MACbG,IAAI,EAAE;IACR,CAAC;EACH;AACF;AAQA,OAAO,IAAMG,WAAW,GAAG,SAAdA,WAAW,OAKA;EAAA,IAJtBR,MAAM,QAANA,MAAM;IACNS,cAAc,QAAdA,cAAc;IACdV,SAAS,QAATA,SAAS;IACTW,UAAU,QAAVA,UAAU;EAEV,oBACE;IACE,GAAG,EAAEA,UAAW;IAChB,KAAK,EAAEZ,0BAA0B,CAACC,SAAS,EAAEC,MAAM,CAAE;IACrD,SAAS,mBAAwB;IACjC,kBAAgBD;EAAU,gBAE1B;IACE,SAAS,EAAEL,UAAU,wBAA4Be,cAAc,CAAE;IACjE,KAAK,EAAC,IAAI;IACV,MAAM,EAAC,GAAG;IACV,OAAO,EAAC,UAAU;IAClB,IAAI,EAAC,MAAM;IACX,KAAK,EAAC;EAA4B,gBAElC;IACE,QAAQ,EAAC,SAAS;IAClB,QAAQ,EAAC,SAAS;IAClB,CAAC,EAAC,gDAAgD;IAClD,IAAI,EAAC;EAAc,EACnB,CACE,CACF;AAEV,CAAC"}
@@ -1 +1 @@
1
- .vkuiPopperArrow__in{content:"";display:block;height:8px;width:20px}[data-popper-placement^=bottom] .vkuiPopperArrow{bottom:100%}[data-popper-placement^=top] .vkuiPopperArrow{top:100%}[data-popper-placement^=top] .vkuiPopperArrow__in{transform:rotate(180deg)}[data-popper-placement^=left] .vkuiPopperArrow{left:calc(100% - 6px)}[data-popper-placement^=left] .vkuiPopperArrow__in{transform:rotate(90deg)}[data-popper-placement^=right] .vkuiPopperArrow{right:calc(100% - 6px)}[data-popper-placement^=right] .vkuiPopperArrow__in{transform:rotate(270deg)}
1
+ .vkuiPopperArrow{position:absolute}.vkuiPopperArrow__in{content:"";display:block;height:8px;width:20px}.vkuiPopperArrow[data-placement^=top] .vkuiPopperArrow__in{transform:rotate(180deg)}.vkuiPopperArrow[data-placement^=left] .vkuiPopperArrow__in{transform:rotate(90deg)}.vkuiPopperArrow[data-placement^=right] .vkuiPopperArrow__in{transform:rotate(270deg)}
@@ -18,8 +18,10 @@ export var Progress = function Progress(_ref) {
18
18
  className = _ref.className,
19
19
  restProps = _objectWithoutProperties(_ref, _excluded);
20
20
  var progress = clamp(value, PROGRESS_MIN_VALUE, PROGRESS_MAX_VALUE);
21
+ var title = "".concat(progress, " / ").concat(PROGRESS_MAX_VALUE);
21
22
  return /*#__PURE__*/React.createElement("div", _extends({
22
- "aria-valuenow": value
23
+ "aria-valuenow": value,
24
+ title: title
23
25
  }, restProps, {
24
26
  role: "progressbar",
25
27
  "aria-valuemin": PROGRESS_MIN_VALUE,
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.js","names":["React","clamp","classNames","PROGRESS_MIN_VALUE","PROGRESS_MAX_VALUE","Progress","value","getRootRef","className","restProps","progress","width"],"sources":["../../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import * as React from 'react';\nimport { clamp } from '../../helpers/math';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasRootRef } from '../../types';\nimport styles from './Progress.module.css';\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n value?: number;\n}\n\nconst PROGRESS_MIN_VALUE = 0;\nconst PROGRESS_MAX_VALUE = 100;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Progress\n */\nexport const Progress = ({ value = 0, getRootRef, className, ...restProps }: ProgressProps) => {\n const progress = clamp(value, PROGRESS_MIN_VALUE, PROGRESS_MAX_VALUE);\n\n return (\n <div\n aria-valuenow={value}\n {...restProps}\n role=\"progressbar\"\n aria-valuemin={PROGRESS_MIN_VALUE}\n aria-valuemax={PROGRESS_MAX_VALUE}\n ref={getRootRef}\n className={classNames(styles['Progress'], className)}\n >\n <div className={styles['Progress__in']} style={{ width: `${progress}%` }} />\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,UAAU,QAAQ,iBAAiB;AAAC;AAU7C,IAAMC,kBAAkB,GAAG,CAAC;AAC5B,IAAMC,kBAAkB,GAAG,GAAG;;AAE9B;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,OAA0E;EAAA,sBAApEC,KAAK;IAALA,KAAK,2BAAG,CAAC;IAAEC,UAAU,QAAVA,UAAU;IAAEC,SAAS,QAATA,SAAS;IAAKC,SAAS;EACvE,IAAMC,QAAQ,GAAGT,KAAK,CAACK,KAAK,EAAEH,kBAAkB,EAAEC,kBAAkB,CAAC;EAErE,oBACE;IACE,iBAAeE;EAAM,GACjBG,SAAS;IACb,IAAI,EAAC,aAAa;IAClB,iBAAeN,kBAAmB;IAClC,iBAAeC,kBAAmB;IAClC,GAAG,EAAEG,UAAW;IAChB,SAAS,EAAEL,UAAU,iBAAqBM,SAAS;EAAE,iBAErD;IAAK,SAAS,oBAAyB;IAAC,KAAK,EAAE;MAAEG,KAAK,YAAKD,QAAQ;IAAI;EAAE,EAAG,CACxE;AAEV,CAAC"}
1
+ {"version":3,"file":"Progress.js","names":["React","clamp","classNames","PROGRESS_MIN_VALUE","PROGRESS_MAX_VALUE","Progress","value","getRootRef","className","restProps","progress","title","width"],"sources":["../../../../src/components/Progress/Progress.tsx"],"sourcesContent":["import * as React from 'react';\nimport { clamp } from '../../helpers/math';\nimport { classNames } from '@vkontakte/vkjs';\nimport { HasRootRef } from '../../types';\nimport styles from './Progress.module.css';\n\nexport interface ProgressProps\n extends React.HTMLAttributes<HTMLDivElement>,\n HasRootRef<HTMLDivElement> {\n value?: number;\n}\n\nconst PROGRESS_MIN_VALUE = 0;\nconst PROGRESS_MAX_VALUE = 100;\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Progress\n */\nexport const Progress = ({ value = 0, getRootRef, className, ...restProps }: ProgressProps) => {\n const progress = clamp(value, PROGRESS_MIN_VALUE, PROGRESS_MAX_VALUE);\n const title = `${progress} / ${PROGRESS_MAX_VALUE}`;\n\n return (\n <div\n aria-valuenow={value}\n title={title}\n {...restProps}\n role=\"progressbar\"\n aria-valuemin={PROGRESS_MIN_VALUE}\n aria-valuemax={PROGRESS_MAX_VALUE}\n ref={getRootRef}\n className={classNames(styles['Progress'], className)}\n >\n <div className={styles['Progress__in']} style={{ width: `${progress}%` }} />\n </div>\n );\n};\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,UAAU,QAAQ,iBAAiB;AAAC;AAU7C,IAAMC,kBAAkB,GAAG,CAAC;AAC5B,IAAMC,kBAAkB,GAAG,GAAG;;AAE9B;AACA;AACA;AACA,OAAO,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,OAA0E;EAAA,sBAApEC,KAAK;IAALA,KAAK,2BAAG,CAAC;IAAEC,UAAU,QAAVA,UAAU;IAAEC,SAAS,QAATA,SAAS;IAAKC,SAAS;EACvE,IAAMC,QAAQ,GAAGT,KAAK,CAACK,KAAK,EAAEH,kBAAkB,EAAEC,kBAAkB,CAAC;EACrE,IAAMO,KAAK,aAAMD,QAAQ,gBAAMN,kBAAkB,CAAE;EAEnD,oBACE;IACE,iBAAeE,KAAM;IACrB,KAAK,EAAEK;EAAM,GACTF,SAAS;IACb,IAAI,EAAC,aAAa;IAClB,iBAAeN,kBAAmB;IAClC,iBAAeC,kBAAmB;IAClC,GAAG,EAAEG,UAAW;IAChB,SAAS,EAAEL,UAAU,iBAAqBM,SAAS;EAAE,iBAErD;IAAK,SAAS,oBAAyB;IAAC,KAAK,EAAE;MAAEI,KAAK,YAAKF,QAAQ;IAAI;EAAE,EAAG,CACxE;AAEV,CAAC"}
@@ -1 +1 @@
1
- .vkuiProgress{background:var(--vkui--color_track_background);border-radius:1px;height:2px}.vkuiProgress__in{background:var(--vkui--color_stroke_accent);border-radius:inherit;height:100%;transition:width .2s ease}
1
+ .vkuiProgress{background:#e1e3e6;background:var(--vkui--color_track_background);border-radius:1px;height:2px}.vkuiProgress__in{background:#2688eb;background:var(--vkui--color_stroke_accent);border-radius:inherit;height:100%;transition:width .2s ease}
@@ -1 +1 @@
1
- .vkuiPromoBanner{background:var(--vkui--color_background_content);box-sizing:border-box;color:var(--vkui--color_text_primary);outline:1px solid var(--vkui--color_separator_primary_alpha);outline:var(--vkui_internal--thin_border) solid var(--vkui--color_separator_primary_alpha);padding-bottom:10px;position:relative;width:100%}.vkuiPromoBanner__head{color:var(--vkui--color_text_secondary);display:flex;padding:14px var(--vkui--size_base_padding_horizontal--regular) 10px}.vkuiPromoBanner__age{margin-left:6px}.vkuiPromoBanner__close{align-items:center;color:var(--vkui--color_icon_secondary);display:flex;height:48px;justify-content:center;position:absolute;right:0;top:0;width:48px}.vkuiPromoBanner__close:active{opacity:.7}.vkuiPromoBanner__pixels{display:none}
1
+ .vkuiPromoBanner{background:#fff;background:var(--vkui--color_background_content);box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);outline:1px solid rgba(0,0,0,.12);outline:var(--vkui_internal--thin_border) solid var(--vkui--color_separator_primary_alpha);padding-bottom:10px;position:relative;width:100%}.vkuiPromoBanner__head{color:#818c99;color:var(--vkui--color_text_secondary);display:flex;padding:14px 16px 10px;padding:14px var(--vkui--size_base_padding_horizontal--regular) 10px}.vkuiPromoBanner__age{margin-left:6px}.vkuiPromoBanner__close{align-items:center;color:#99a2ad;color:var(--vkui--color_icon_secondary);display:flex;height:48px;justify-content:center;position:absolute;right:0;top:0;width:48px}.vkuiPromoBanner__close:active{opacity:.7}.vkuiPromoBanner__pixels{display:none}
@@ -1 +1 @@
1
- .vkuiPullToRefresh{flex-grow:1}.vkuiPullToRefresh--refreshing{pointer-events:none;touch-action:none}.vkuiPullToRefresh__controls{pointer-events:none;width:100%;z-index:1;z-index:var(--vkui_internal--z_index_pull_to_refresh)}.vkuiPullToRefresh__spinner{align-items:center;background:var(--vkui--color_background_modal);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);box-sizing:border-box;color:var(--vkui--color_icon_accent);display:flex;height:40px;justify-content:center;margin:auto;opacity:0;transition:transform .3s cubic-bezier(.1,0,.25,1),opacity .22s ease-out;width:40px}.vkuiPullToRefresh--ios .vkuiPullToRefresh__spinner{background:none;border-radius:0;box-shadow:none;color:var(--vkui--color_icon_medium)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner{transition:opacity .22s ease-out}.vkuiPullToRefresh__spinner-self{stroke:currentColor}.vkuiPullToRefresh--ios.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-self{animation:vkui-PullToRefreshToRefreshing .38s ease-out}.vkuiPullToRefresh__spinner-path{transform:rotate(-90deg);transform-origin:center center;transition:stroke-dashoffset 167ms ease-out}.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-path,.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner-path{transition:none}.vkuiPullToRefresh__spinner--on .vkuiPullToRefresh__spinner-path{animation:vkui-rotator .7s linear infinite;animation:vkui-rotator var(--vkui_internal--duration) linear infinite}.vkuiPullToRefresh__content{overflow:hidden;transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__content{transition:none}@keyframes vkui-PullToRefreshToRefreshing{0%{transform:scale(1)}30%{transform:scale(.6)}90%{transform:scale(1.1)}to{transform:scale(1)}}
1
+ .vkuiPullToRefresh{flex-grow:1}.vkuiPullToRefresh--refreshing{pointer-events:none;touch-action:none}.vkuiPullToRefresh__controls{pointer-events:none;width:100%;z-index:1;z-index:var(--vkui_internal--z_index_pull_to_refresh)}.vkuiPullToRefresh__spinner{align-items:center;background:#fff;background:var(--vkui--color_background_modal);border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.2);box-sizing:border-box;color:#2688eb;color:var(--vkui--color_icon_accent);display:flex;height:40px;justify-content:center;margin:auto;opacity:0;transition:transform .3s cubic-bezier(.1,0,.25,1),opacity .22s ease-out;width:40px}.vkuiPullToRefresh--ios .vkuiPullToRefresh__spinner{background:none;border-radius:0;box-shadow:none;color:#818c99;color:var(--vkui--color_icon_medium)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner{transition:opacity .22s ease-out}.vkuiPullToRefresh__spinner-self{stroke:currentColor}.vkuiPullToRefresh--ios.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-self{animation:vkui-PullToRefreshToRefreshing .38s ease-out}.vkuiPullToRefresh__spinner-path{transform:rotate(-90deg);transform-origin:center center;transition:stroke-dashoffset 167ms ease-out}.vkuiPullToRefresh--refreshing .vkuiPullToRefresh__spinner-path,.vkuiPullToRefresh--watching .vkuiPullToRefresh__spinner-path{transition:none}.vkuiPullToRefresh__spinner--on .vkuiPullToRefresh__spinner-path{animation:vkui-rotator .7s linear infinite;animation:vkui-rotator var(--vkui_internal--duration) linear infinite}.vkuiPullToRefresh__content{overflow:hidden;transition:transform .4s cubic-bezier(.4,0,.2,1);transition:transform .4s var(--vkui--animation_easing_platform)}.vkuiPullToRefresh--watching .vkuiPullToRefresh__content{transition:none}@keyframes vkui-PullToRefreshToRefreshing{0%{transform:scale(1)}30%{transform:scale(.6)}90%{transform:scale(1.1)}to{transform:scale(1)}}
@@ -1 +1 @@
1
- .vkuiRadio{display:block;font-family:var(--vkui--font_family_base);padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem .vkuiRadio{box-sizing:initial;margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiRadio__container{align-items:center;display:flex;justify-content:flex-start}.vkuiRadio__input:disabled~.vkuiRadio__container{opacity:var(--vkui--opacity_disable_accessibility)}.vkuiRadio__icon{color:var(--vkui--color_icon_tertiary);flex-shrink:0;height:22px;margin-right:14px;transition:color .15s var(--vkui--animation_easing_platform);width:22px}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon{color:var(--vkui--color_icon_accent)}.vkuiRadio__icon .vkuiRadio__pin{transform:scale(0);transform-origin:12px 12px;transition:transform .15s var(--vkui--animation_easing_platform)}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon .vkuiRadio__pin{transform:none}.vkuiRadio__content{color:var(--vkui--color_text_primary);display:block;flex-grow:1;max-width:100%}.vkuiRadio__description{color:var(--vkui--color_text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiRadio__children{margin-top:12px}.vkuiRadio__children:last-child{margin-bottom:12px}.vkuiRadio--sizeY-compact .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-compact .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-compact .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-compact .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-compact .vkuiRadio__icon:after{height:12px;width:12px}@media (max-height:414px),(pointer:fine) and (min-width:768px){.vkuiRadio--sizeY-none .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-none .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-none .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-none .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-none .vkuiRadio__icon:after{height:12px;width:12px}}.vkuiRadioGroup .vkuiRadio{box-sizing:border-box;flex:1;margin:0}
1
+ .vkuiRadio{display:block;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);padding:0 16px;padding:0 var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem .vkuiRadio{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular));width:100%}.vkuiRadio__container{align-items:center;display:flex;justify-content:flex-start}.vkuiRadio__input:disabled~.vkuiRadio__container{opacity:.64;opacity:var(--vkui--opacity_disable_accessibility)}.vkuiRadio__icon{color:#b8c1cc;color:var(--vkui--color_icon_tertiary);flex-shrink:0;height:22px;margin-right:14px;transition:color .15s cubic-bezier(.4,0,.2,1);transition:color .15s var(--vkui--animation_easing_platform);width:22px}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon{color:#2688eb;color:var(--vkui--color_icon_accent)}.vkuiRadio__icon .vkuiRadio__pin{transform:scale(0);transform-origin:12px 12px;transition:transform .15s cubic-bezier(.4,0,.2,1);transition:transform .15s var(--vkui--animation_easing_platform)}.vkuiRadio__input:checked~.vkuiRadio__container .vkuiRadio__icon .vkuiRadio__pin{transform:none}.vkuiRadio__content{color:#000;color:var(--vkui--color_text_primary);display:block;flex-grow:1;max-width:100%}.vkuiRadio__description{color:#818c99;color:var(--vkui--color_text_secondary);display:block;margin-bottom:12px;margin-top:2px}.vkuiRadio__children{margin-top:12px}.vkuiRadio__children:last-child{margin-bottom:12px}.vkuiRadio--sizeY-compact .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-compact .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-compact .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-compact .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-compact .vkuiRadio__icon:after{height:12px;width:12px}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiRadio--sizeY-none .vkuiRadio__children{margin-top:8px}.vkuiRadio--sizeY-none .vkuiRadio__children:last-child{margin-bottom:8px}.vkuiRadio--sizeY-none .vkuiRadio__description{margin-bottom:7px}.vkuiRadio--sizeY-none .vkuiRadio__icon{height:18px;width:18px}.vkuiRadio--sizeY-none .vkuiRadio__icon:after{height:12px;width:12px}}.vkuiRadioGroup .vkuiRadio{box-sizing:border-box;flex:1;margin:0}
@@ -1 +1 @@
1
- .vkuiRadioGroup--mode-horizontal{display:flex}.vkuiFormItem .vkuiRadioGroup{box-sizing:initial;margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}
1
+ .vkuiRadioGroup--mode-horizontal{display:flex}.vkuiFormItem .vkuiRadioGroup{box-sizing:initial;margin:0 calc(-1 * 16px);margin:0 calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}
@@ -1 +1 @@
1
- .vkuiRemovable__content{align-items:center;display:flex;padding-left:var(--vkui--size_base_padding_horizontal--regular);position:relative}.vkuiRemovable__action{border:none;flex-grow:0;flex-shrink:0;position:relative}.vkuiRemovable__action.vkuiRemovable__action{color:var(--vkui--color_icon_secondary)}.vkuiRemovable--align-start .vkuiRemovable__action{align-self:flex-start}.vkuiRemovable--ios{overflow:hidden}.vkuiRemovable__remove{background-color:var(--vkui--color_background_negative);border:none;border-radius:0;color:#fff;color:var(--vkui_internal--white);font-size:15px;height:100%;left:100%;line-height:45px;padding:0 10px;position:absolute;top:0}.vkuiRemovable__remove-in{align-items:center;display:flex;height:100%;justify-content:center;width:100%}@media (prefers-reduced-motion:no-preference){.vkuiRemovable--ios .vkuiRemovable__content{transition:transform .6s var(--vkui--animation_easing_platform)}}.vkuiRemovable__toggle{background:none;display:block;height:44px;margin:0 2px;width:44px}.vkuiRemovable__toggle-in{align-content:center;align-items:center;border:none;display:flex;height:100%;justify-content:center;position:relative;width:100%}.vkuiRemovable__toggle-in:after{background-color:var(--vkui--color_background_negative);border-radius:50%;content:"";height:22px;width:22px}.vkuiRemovable__toggle-in:before{background-color:#fff;background-color:var(--vkui_internal--white);content:"";display:block;height:2px;position:absolute;width:12px}.vkuiRemovable--ios .vkuiRemovable__content{padding-left:0;padding-right:var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem--removable .vkuiRemovable__content,.vkuiFormLayoutGroup--removable .vkuiRemovable__content{align-items:flex-start;flex-wrap:wrap}.vkuiRemovable__offset{display:none}.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{display:block;height:calc(2px + var(--vkui--font_subhead--line_height--regular) + 8px);order:-1;width:100%}.vkuiFormItem--sizeY-compact.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--sizeY-compact.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{height:calc(2px + var(--vkui--font_subhead--line_height--compact) + 6px)}@media (max-height:414px),(pointer:fine) and (min-width:768px){.vkuiFormItem--sizeY-none.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--sizeY-none.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{height:calc(2px + var(--vkui--font_subhead--line_height--compact) + 6px)}}
1
+ .vkuiRemovable__content{align-items:center;display:flex;padding-left:16px;padding-left:var(--vkui--size_base_padding_horizontal--regular);position:relative}.vkuiRemovable__action{border:none;flex-grow:0;flex-shrink:0;position:relative}.vkuiRemovable__action.vkuiRemovable__action{color:#99a2ad;color:var(--vkui--color_icon_secondary)}.vkuiRemovable--align-start .vkuiRemovable__action{align-self:flex-start}.vkuiRemovable--ios{overflow:hidden}.vkuiRemovable__remove{background-color:#e64646;background-color:var(--vkui--color_background_negative);border:none;border-radius:0;color:#fff;color:var(--vkui_internal--white);font-size:15px;height:100%;left:100%;line-height:45px;padding:0 10px;position:absolute;top:0}.vkuiRemovable__remove-in{align-items:center;display:flex;height:100%;justify-content:center;width:100%}@media (prefers-reduced-motion:no-preference){.vkuiRemovable--ios .vkuiRemovable__content{transition:transform .6s cubic-bezier(.4,0,.2,1);transition:transform .6s var(--vkui--animation_easing_platform)}}.vkuiRemovable__toggle{background:none;display:block;height:44px;margin:0 2px;width:44px}.vkuiRemovable__toggle-in{align-content:center;align-items:center;border:none;display:flex;height:100%;justify-content:center;position:relative;width:100%}.vkuiRemovable__toggle-in:after{background-color:#e64646;background-color:var(--vkui--color_background_negative);border-radius:50%;content:"";height:22px;width:22px}.vkuiRemovable__toggle-in:before{background-color:#fff;background-color:var(--vkui_internal--white);content:"";display:block;height:2px;position:absolute;width:12px}.vkuiRemovable--ios .vkuiRemovable__content{padding-left:0;padding-right:16px;padding-right:var(--vkui--size_base_padding_horizontal--regular)}.vkuiFormItem--removable .vkuiRemovable__content,.vkuiFormLayoutGroup--removable .vkuiRemovable__content{align-items:flex-start;flex-wrap:wrap}.vkuiRemovable__offset{display:none}.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{display:block;height:calc(2px + 18px + 8px);height:calc(2px + var(--vkui--font_subhead--line_height--regular) + 8px);order:-1;width:100%}.vkuiFormItem--sizeY-compact.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--sizeY-compact.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{height:calc(2px + 16px + 6px);height:calc(2px + var(--vkui--font_subhead--line_height--compact) + 6px)}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiFormItem--sizeY-none.vkuiFormItem--withTop .vkuiFormItem__removable~.vkuiRemovable__offset,.vkuiFormLayoutGroup--sizeY-none.vkuiFormLayoutGroup--removable .vkuiFormItem--withTop~.vkuiRemovable__offset{height:calc(2px + 16px + 6px);height:calc(2px + var(--vkui--font_subhead--line_height--compact) + 6px)}}
@@ -1 +1 @@
1
- .vkuiRichCell{box-sizing:border-box;color:var(--vkui--color_text_primary);display:flex;font-family:var(--vkui--font_family_base);min-height:64px;padding:8px var(--vkui--size_base_padding_horizontal--regular);text-decoration:none}.vkuiRichCell--sizeY-compact{min-height:60px}.vkuiRichCell__before{margin-right:12px}.vkuiRichCell__in{display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;min-width:0}.vkuiRichCell__content{display:flex}.vkuiRichCell__content-before{flex-grow:1;min-width:0}.vkuiRichCell__content-after{align-items:flex-end;box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;padding-left:4px}.vkuiRichCell__after-children{font-weight:var(--vkui--font_weight_accent2)}.vkuiRichCell__after-caption{color:var(--vkui--color_text_secondary);font-size:var(--vkui--font_footnote--font_size--regular);line-height:var(--vkui--font_footnote--line_height--regular);margin-top:2px}.vkuiRichCell--sizeY-compact .vkuiRichCell__after-caption{font-size:var(--vkui--font_caption1--font_size--regular);line-height:var(--vkui--font_caption1--line_height--regular)}@media (max-height:414px),(pointer:fine) and (min-width:768px){.vkuiRichCell--sizeY-none .vkuiRichCell__after-caption{font-size:var(--vkui--font_caption1--font_size--regular);line-height:var(--vkui--font_caption1--line_height--regular)}}.vkuiRichCell__caption,.vkuiRichCell__subhead{color:var(--vkui--color_text_secondary)}.vkuiRichCell__caption{margin-top:1px}.vkuiRichCell__children{font-weight:var(--vkui--font_weight_accent2)}.vkuiRichCell--text-ellipsis .vkuiRichCell__caption,.vkuiRichCell--text-ellipsis .vkuiRichCell__children,.vkuiRichCell--text-ellipsis .vkuiRichCell__subhead,.vkuiRichCell--text-ellipsis .vkuiRichCell__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiRichCell__bottom{margin-top:5px}.vkuiRichCell__actions{margin-top:8px}.vkuiRichCell__after-children,.vkuiRichCell__children,.vkuiRichCell__text{font-size:var(--vkui--font_paragraph--font_size--regular);line-height:var(--vkui--font_paragraph--line_height--regular)}.vkuiRichCell--sizeY-compact .vkuiRichCell__after-children,.vkuiRichCell--sizeY-compact .vkuiRichCell__children,.vkuiRichCell--sizeY-compact .vkuiRichCell__text{font-size:var(--vkui--font_subhead--font_size--regular);line-height:var(--vkui--font_subhead--line_height--regular)}@media (max-height:414px),(pointer:fine) and (min-width:768px){.vkuiRichCell--sizeY-none .vkuiRichCell__after-children,.vkuiRichCell--sizeY-none .vkuiRichCell__children,.vkuiRichCell--sizeY-none .vkuiRichCell__text{font-size:var(--vkui--font_subhead--font_size--regular);line-height:var(--vkui--font_subhead--line_height--regular)}}.vkuiFormItem .vkuiRichCell{margin-left:calc(-1 * var(--vkui--size_base_padding_horizontal--regular));margin-right:calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}@media (max-height:414px),(pointer:fine) and (min-width:768px){.vkuiRichCell--sizeY-none{min-height:60px}}
1
+ .vkuiRichCell{box-sizing:border-box;color:#000;color:var(--vkui--color_text_primary);display:flex;font-family:-apple-system,system-ui,Helvetica Neue,Roboto,sans-serif;font-family:var(--vkui--font_family_base);min-height:64px;padding:8px 16px;padding:8px var(--vkui--size_base_padding_horizontal--regular);text-decoration:none}.vkuiRichCell--sizeY-compact{min-height:60px}.vkuiRichCell__before{margin-right:12px}.vkuiRichCell__in{display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;min-width:0}.vkuiRichCell__content{display:flex}.vkuiRichCell__content-before{flex-grow:1;min-width:0}.vkuiRichCell__content-after{align-items:flex-end;box-sizing:border-box;display:flex;flex-direction:column;flex-shrink:0;padding-left:4px}.vkuiRichCell__after-children{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiRichCell__after-caption{color:#818c99;color:var(--vkui--color_text_secondary);font-size:13px;font-size:var(--vkui--font_footnote--font_size--regular);line-height:16px;line-height:var(--vkui--font_footnote--line_height--regular);margin-top:2px}.vkuiRichCell--sizeY-compact .vkuiRichCell__after-caption{font-size:12px;font-size:var(--vkui--font_caption1--font_size--regular);line-height:14px;line-height:var(--vkui--font_caption1--line_height--regular)}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiRichCell--sizeY-none .vkuiRichCell__after-caption{font-size:12px;font-size:var(--vkui--font_caption1--font_size--regular);line-height:14px;line-height:var(--vkui--font_caption1--line_height--regular)}}.vkuiRichCell__caption,.vkuiRichCell__subhead{color:#818c99;color:var(--vkui--color_text_secondary)}.vkuiRichCell__caption{margin-top:1px}.vkuiRichCell__children{font-weight:500;font-weight:var(--vkui--font_weight_accent2)}.vkuiRichCell--text-ellipsis .vkuiRichCell__caption,.vkuiRichCell--text-ellipsis .vkuiRichCell__children,.vkuiRichCell--text-ellipsis .vkuiRichCell__subhead,.vkuiRichCell--text-ellipsis .vkuiRichCell__text{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vkuiRichCell__bottom{margin-top:5px}.vkuiRichCell__actions{margin-top:8px}.vkuiRichCell__after-children,.vkuiRichCell__children,.vkuiRichCell__text{font-size:15px;font-size:var(--vkui--font_paragraph--font_size--regular);line-height:20px;line-height:var(--vkui--font_paragraph--line_height--regular)}.vkuiRichCell--sizeY-compact .vkuiRichCell__after-children,.vkuiRichCell--sizeY-compact .vkuiRichCell__children,.vkuiRichCell--sizeY-compact .vkuiRichCell__text{font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiRichCell--sizeY-none .vkuiRichCell__after-children,.vkuiRichCell--sizeY-none .vkuiRichCell__children,.vkuiRichCell--sizeY-none .vkuiRichCell__text{font-size:14px;font-size:var(--vkui--font_subhead--font_size--regular);line-height:18px;line-height:var(--vkui--font_subhead--line_height--regular)}}.vkuiFormItem .vkuiRichCell{margin-left:calc(-1 * 16px);margin-left:calc(-1 * var(--vkui--size_base_padding_horizontal--regular));margin-right:calc(-1 * 16px);margin-right:calc(-1 * var(--vkui--size_base_padding_horizontal--regular))}@media (pointer:fine) and (min-width:768px),not (min-height:415px){.vkuiRichCell--sizeY-none{min-height:60px}}
@@ -1 +1 @@
1
- .vkuiRichTooltip{animation:vkui-popper-fadein .2s ease;background-color:var(--vkui--color_background_modal);border-radius:var(--vkui--size_border_radius--regular);box-shadow:var(--vkui--elevation3);color:var(--vkui--color_text_primary)}.vkuiRichTooltip__arrow{color:var(--vkui--color_background_modal)}.vkuiRichTooltip--appearance-accent{background-color:var(--vkui--color_background_accent_tint);color:var(--vkui--color_text_contrast)}.vkuiRichTooltip--appearance-accent .vkuiRichTooltip__arrow{color:var(--vkui--color_background_accent_tint)}.vkuiRichTooltip--appearance-white{background-color:var(--vkui--color_background_contrast);color:var(--vkui--color_text_primary_invariably)}.vkuiRichTooltip--appearance-white .vkuiRichTooltip__arrow{color:var(--vkui--color_background_contrast)}.vkuiRichTooltip--appearance-black{background-color:var(--vkui--color_background_contrast_inverse);color:var(--vkui--color_text_contrast)}.vkuiRichTooltip--appearance-black .vkuiRichTooltip__arrow{color:var(--vkui--color_background_contrast_inverse)}.vkuiRichTooltip--appearance-inversion{background-color:var(--vkui--color_background_modal_inverse);color:var(--vkui--color_text_contrast_themed)}.vkuiRichTooltip--appearance-inversion .vkuiRichTooltip__arrow{color:var(--vkui--color_background_modal_inverse)}
1
+ .vkuiRichTooltip{animation:vkui-popper-fadein .2s ease;background-color:#fff;background-color:var(--vkui--color_background_modal);border-radius:8px;border-radius:var(--vkui--size_border_radius--regular);box-shadow:0 0 2px rgba(0,0,0,.08),0 4px 16px rgba(0,0,0,.08);box-shadow:var(--vkui--elevation3);color:#000;color:var(--vkui--color_text_primary)}.vkuiRichTooltip__arrow{color:#fff;color:var(--vkui--color_background_modal)}.vkuiRichTooltip--appearance-accent{background-color:#5a9eff;background-color:var(--vkui--color_background_accent_tint);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiRichTooltip--appearance-accent .vkuiRichTooltip__arrow{color:#5a9eff;color:var(--vkui--color_background_accent_tint)}.vkuiRichTooltip--appearance-white{background-color:#fff;background-color:var(--vkui--color_background_contrast);color:#000;color:var(--vkui--color_text_primary_invariably)}.vkuiRichTooltip--appearance-white .vkuiRichTooltip__arrow{color:#fff;color:var(--vkui--color_background_contrast)}.vkuiRichTooltip--appearance-black{background-color:#2d2d2e;background-color:var(--vkui--color_background_contrast_inverse);color:#fff;color:var(--vkui--color_text_contrast)}.vkuiRichTooltip--appearance-black .vkuiRichTooltip__arrow{color:#2d2d2e;color:var(--vkui--color_background_contrast_inverse)}.vkuiRichTooltip--appearance-inversion{background-color:#2d2d2e;background-color:var(--vkui--color_background_modal_inverse);color:#fff;color:var(--vkui--color_text_contrast_themed)}.vkuiRichTooltip--appearance-inversion .vkuiRichTooltip__arrow{color:#2d2d2e;color:var(--vkui--color_background_modal_inverse)}
@@ -6,7 +6,7 @@ import * as React from 'react';
6
6
  import { classNames } from '@vkontakte/vkjs';
7
7
  import { Platform } from '../../lib/platform';
8
8
  import { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';
9
- import { SplitColContext } from '../SplitCol/SplitCol';
9
+ import { SplitColContext } from '../SplitCol/SplitColContext';
10
10
  import { ScrollContext } from '../AppRoot/ScrollContext';
11
11
  import { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';
12
12
  import { getNavId } from '../../lib/getNavId';