@vkontakte/vkui 7.0.0-dev-efd91c.2 → 7.0.0-dev-efd91c.3

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 (426) hide show
  1. package/dist/components/ActionSheet/ActionSheet.js +2 -2
  2. package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
  3. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +1 -1
  4. package/dist/components/ActionSheetItem/ActionSheetItem.d.ts.map +1 -1
  5. package/dist/components/ActionSheetItem/ActionSheetItem.js +2 -3
  6. package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  7. package/dist/components/AdaptivityProvider/AdaptivityContext.d.ts.map +1 -1
  8. package/dist/components/AdaptivityProvider/AdaptivityContext.js +1 -0
  9. package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  10. package/dist/components/Alert/Alert.js +2 -2
  11. package/dist/components/Alert/Alert.js.map +1 -1
  12. package/dist/components/Alert/AlertAction.js +1 -1
  13. package/dist/components/Alert/AlertAction.js.map +1 -1
  14. package/dist/components/AppRoot/AppRoot.d.ts +1 -1
  15. package/dist/components/AppRoot/AppRoot.d.ts.map +1 -1
  16. package/dist/components/AppRoot/AppRoot.js +6 -43
  17. package/dist/components/AppRoot/AppRoot.js.map +1 -1
  18. package/dist/components/AppRoot/AppRootContext.d.ts +1 -3
  19. package/dist/components/AppRoot/AppRootContext.d.ts.map +1 -1
  20. package/dist/components/AppRoot/AppRootContext.js +0 -3
  21. package/dist/components/AppRoot/AppRootContext.js.map +1 -1
  22. package/dist/components/AppRoot/AppRootPortal.d.ts +5 -5
  23. package/dist/components/AppRoot/AppRootPortal.d.ts.map +1 -1
  24. package/dist/components/AppRoot/AppRootPortal.js +12 -29
  25. package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
  26. package/dist/components/AppRoot/helpers.d.ts +0 -1
  27. package/dist/components/AppRoot/helpers.d.ts.map +1 -1
  28. package/dist/components/AppRoot/helpers.js +0 -1
  29. package/dist/components/AppRoot/helpers.js.map +1 -1
  30. package/dist/components/AspectRatio/AspectRatio.d.ts +1 -1
  31. package/dist/components/AspectRatio/AspectRatio.d.ts.map +1 -1
  32. package/dist/components/AspectRatio/AspectRatio.js +3 -4
  33. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  34. package/dist/components/Avatar/Avatar.d.ts +2 -1
  35. package/dist/components/Avatar/Avatar.d.ts.map +1 -1
  36. package/dist/components/Avatar/Avatar.js +2 -1
  37. package/dist/components/Avatar/Avatar.js.map +1 -1
  38. package/dist/components/Banner/Banner.d.ts +1 -1
  39. package/dist/components/Banner/Banner.d.ts.map +1 -1
  40. package/dist/components/Banner/Banner.js +2 -3
  41. package/dist/components/Banner/Banner.js.map +1 -1
  42. package/dist/components/Button/Button.d.ts +1 -1
  43. package/dist/components/Button/Button.d.ts.map +1 -1
  44. package/dist/components/Button/Button.js +2 -3
  45. package/dist/components/Button/Button.js.map +1 -1
  46. package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
  47. package/dist/components/CalendarDay/CalendarDay.js +2 -3
  48. package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
  49. package/dist/components/CalendarHeader/CalendarHeader.js +2 -2
  50. package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
  51. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.d.ts.map +1 -1
  52. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js +2 -0
  53. package/dist/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  54. package/dist/components/ConfigProvider/ConfigProviderContext.d.ts.map +1 -1
  55. package/dist/components/ConfigProvider/ConfigProviderContext.js +1 -0
  56. package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  57. package/dist/components/ContentBadge/ContentBadgeContext.d.ts.map +1 -1
  58. package/dist/components/ContentBadge/ContentBadgeContext.js +1 -0
  59. package/dist/components/ContentBadge/ContentBadgeContext.js.map +1 -1
  60. package/dist/components/Counter/Counter.d.ts.map +1 -1
  61. package/dist/components/Counter/Counter.js +8 -9
  62. package/dist/components/Counter/Counter.js.map +1 -1
  63. package/dist/components/CustomSelectOption/CustomSelectOption.d.ts.map +1 -1
  64. package/dist/components/CustomSelectOption/CustomSelectOption.js +5 -5
  65. package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  66. package/dist/components/Flex/Flex.d.ts.map +1 -1
  67. package/dist/components/Flex/Flex.js +2 -3
  68. package/dist/components/Flex/Flex.js.map +1 -1
  69. package/dist/components/Flex/FlexItem/FlexItem.d.ts +1 -1
  70. package/dist/components/Flex/FlexItem/FlexItem.d.ts.map +1 -1
  71. package/dist/components/Flex/FlexItem/FlexItem.js +4 -5
  72. package/dist/components/Flex/FlexItem/FlexItem.js.map +1 -1
  73. package/dist/components/FloatingArrow/DefaultIcon.d.ts +7 -3
  74. package/dist/components/FloatingArrow/DefaultIcon.d.ts.map +1 -1
  75. package/dist/components/FloatingArrow/DefaultIcon.js +10 -6
  76. package/dist/components/FloatingArrow/DefaultIcon.js.map +1 -1
  77. package/dist/components/FloatingArrow/FloatingArrow.d.ts +9 -2
  78. package/dist/components/FloatingArrow/FloatingArrow.d.ts.map +1 -1
  79. package/dist/components/FloatingArrow/FloatingArrow.js +9 -8
  80. package/dist/components/FloatingArrow/FloatingArrow.js.map +1 -1
  81. package/dist/components/HorizontalCell/HorizontalCell.d.ts +11 -1
  82. package/dist/components/HorizontalCell/HorizontalCell.d.ts.map +1 -1
  83. package/dist/components/HorizontalCell/HorizontalCell.js +15 -7
  84. package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
  85. package/dist/components/IconButton/IconButton.d.ts +1 -1
  86. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  87. package/dist/components/IconButton/IconButton.js +3 -4
  88. package/dist/components/IconButton/IconButton.js.map +1 -1
  89. package/dist/components/Image/Image.d.ts.map +1 -1
  90. package/dist/components/Image/Image.js +2 -1
  91. package/dist/components/Image/Image.js.map +1 -1
  92. package/dist/components/ImageBase/ImageBase.d.ts.map +1 -1
  93. package/dist/components/ImageBase/ImageBase.js +3 -4
  94. package/dist/components/ImageBase/ImageBase.js.map +1 -1
  95. package/dist/components/Link/Link.d.ts +1 -1
  96. package/dist/components/Link/Link.d.ts.map +1 -1
  97. package/dist/components/Link/Link.js +3 -4
  98. package/dist/components/Link/Link.js.map +1 -1
  99. package/dist/components/List/List.d.ts +1 -1
  100. package/dist/components/List/List.d.ts.map +1 -1
  101. package/dist/components/List/List.js +5 -8
  102. package/dist/components/List/List.js.map +1 -1
  103. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +1 -1
  104. package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
  105. package/dist/components/MiniInfoCell/MiniInfoCell.js +4 -5
  106. package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  107. package/dist/components/ModalCardBase/ModalCardBase.d.ts +1 -1
  108. package/dist/components/ModalCardBase/ModalCardBase.d.ts.map +1 -1
  109. package/dist/components/ModalCardBase/ModalCardBase.js +3 -4
  110. package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
  111. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +1 -1
  112. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts.map +1 -1
  113. package/dist/components/ModalDismissButton/ModalDismissButton.js +3 -5
  114. package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  115. package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
  116. package/dist/components/ModalRoot/ModalRoot.js +3 -2
  117. package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
  118. package/dist/components/ModalRoot/ModalRootContext.d.ts.map +1 -1
  119. package/dist/components/ModalRoot/ModalRootContext.js +1 -0
  120. package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
  121. package/dist/components/ModalRoot/types.d.ts.map +1 -1
  122. package/dist/components/ModalRoot/types.js.map +1 -1
  123. package/dist/components/NavIdContext/NavIdContext.d.ts.map +1 -1
  124. package/dist/components/NavIdContext/NavIdContext.js +1 -0
  125. package/dist/components/NavIdContext/NavIdContext.js.map +1 -1
  126. package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
  127. package/dist/components/OnboardingTooltip/OnboardingTooltip.js +2 -4
  128. package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  129. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts +1 -1
  130. package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
  131. package/dist/components/PanelHeaderButton/PanelHeaderButton.js +3 -4
  132. package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  133. package/dist/components/Popper/Popper.d.ts +1 -1
  134. package/dist/components/Popper/Popper.d.ts.map +1 -1
  135. package/dist/components/Popper/Popper.js +2 -3
  136. package/dist/components/Popper/Popper.js.map +1 -1
  137. package/dist/components/Progress/Progress.d.ts +1 -1
  138. package/dist/components/Progress/Progress.d.ts.map +1 -1
  139. package/dist/components/Progress/Progress.js +4 -5
  140. package/dist/components/Progress/Progress.js.map +1 -1
  141. package/dist/components/RichCell/RichCell.d.ts.map +1 -1
  142. package/dist/components/RichCell/RichCell.js +2 -3
  143. package/dist/components/RichCell/RichCell.js.map +1 -1
  144. package/dist/components/RootComponent/RootComponent.d.ts +2 -1
  145. package/dist/components/RootComponent/RootComponent.d.ts.map +1 -1
  146. package/dist/components/RootComponent/RootComponent.js +6 -2
  147. package/dist/components/RootComponent/RootComponent.js.map +1 -1
  148. package/dist/components/ScreenSpinner/ScreenSpinner.js +2 -2
  149. package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  150. package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
  151. package/dist/components/ScreenSpinner/context.js +1 -0
  152. package/dist/components/ScreenSpinner/context.js.map +1 -1
  153. package/dist/components/Separator/Separator.d.ts +1 -1
  154. package/dist/components/Separator/Separator.d.ts.map +1 -1
  155. package/dist/components/Separator/Separator.js +2 -3
  156. package/dist/components/Separator/Separator.js.map +1 -1
  157. package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
  158. package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
  159. package/dist/components/SimpleCell/SimpleCell.js +2 -3
  160. package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
  161. package/dist/components/SimpleGrid/SimpleGrid.d.ts +1 -1
  162. package/dist/components/SimpleGrid/SimpleGrid.d.ts.map +1 -1
  163. package/dist/components/SimpleGrid/SimpleGrid.js +2 -3
  164. package/dist/components/SimpleGrid/SimpleGrid.js.map +1 -1
  165. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  166. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
  167. package/dist/components/Skeleton/Skeleton.js +2 -3
  168. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  169. package/dist/components/Snackbar/Snackbar.d.ts.map +1 -1
  170. package/dist/components/Snackbar/Snackbar.js +2 -3
  171. package/dist/components/Snackbar/Snackbar.js.map +1 -1
  172. package/dist/components/Snackbar/utils.d.ts +1 -1
  173. package/dist/components/Snackbar/utils.d.ts.map +1 -1
  174. package/dist/components/Snackbar/utils.js +6 -8
  175. package/dist/components/Snackbar/utils.js.map +1 -1
  176. package/dist/components/Spacing/Spacing.d.ts +1 -1
  177. package/dist/components/Spacing/Spacing.d.ts.map +1 -1
  178. package/dist/components/Spacing/Spacing.js +3 -4
  179. package/dist/components/Spacing/Spacing.js.map +1 -1
  180. package/dist/components/SplitCol/SplitCol.d.ts.map +1 -1
  181. package/dist/components/SplitCol/SplitCol.js +3 -4
  182. package/dist/components/SplitCol/SplitCol.js.map +1 -1
  183. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  184. package/dist/components/SplitLayout/SplitLayout.js +1 -5
  185. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  186. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts +1 -1
  187. package/dist/components/SubnavigationButton/SubnavigationButton.d.ts.map +1 -1
  188. package/dist/components/SubnavigationButton/SubnavigationButton.js +3 -4
  189. package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  190. package/dist/components/TabsItem/TabsItem.d.ts +1 -1
  191. package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
  192. package/dist/components/TabsItem/TabsItem.js +2 -3
  193. package/dist/components/TabsItem/TabsItem.js.map +1 -1
  194. package/dist/components/ToolButton/ToolButton.d.ts +1 -1
  195. package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
  196. package/dist/components/ToolButton/ToolButton.js +2 -3
  197. package/dist/components/ToolButton/ToolButton.js.map +1 -1
  198. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts +1 -1
  199. package/dist/components/WriteBarIcon/WriteBarIcon.d.ts.map +1 -1
  200. package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -3
  201. package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  202. package/dist/components.css +1 -1
  203. package/dist/components.css.map +1 -1
  204. package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
  205. package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
  206. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +2 -2
  207. package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
  208. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js +1 -0
  209. package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
  210. package/dist/cssm/components/Alert/Alert.js +2 -2
  211. package/dist/cssm/components/Alert/Alert.js.map +1 -1
  212. package/dist/cssm/components/Alert/AlertAction.js +1 -1
  213. package/dist/cssm/components/Alert/AlertAction.js.map +1 -1
  214. package/dist/cssm/components/AppRoot/AppRoot.js +6 -43
  215. package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
  216. package/dist/cssm/components/AppRoot/AppRootContext.js +0 -3
  217. package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
  218. package/dist/cssm/components/AppRoot/AppRootPortal.js +12 -29
  219. package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
  220. package/dist/cssm/components/AppRoot/helpers.js +0 -1
  221. package/dist/cssm/components/AppRoot/helpers.js.map +1 -1
  222. package/dist/cssm/components/AspectRatio/AspectRatio.js +2 -5
  223. package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
  224. package/dist/cssm/components/Avatar/Avatar.js +2 -1
  225. package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
  226. package/dist/cssm/components/Banner/Banner.js +2 -2
  227. package/dist/cssm/components/Banner/Banner.js.map +1 -1
  228. package/dist/cssm/components/Button/Button.js +2 -2
  229. package/dist/cssm/components/Button/Button.js.map +1 -1
  230. package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
  231. package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
  232. package/dist/cssm/components/CalendarHeader/CalendarHeader.js +2 -2
  233. package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
  234. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js +2 -0
  235. package/dist/cssm/components/ColorSchemeProvider/ColorSchemeProvider.js.map +1 -1
  236. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js +1 -0
  237. package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
  238. package/dist/cssm/components/ContentBadge/ContentBadgeContext.js +1 -0
  239. package/dist/cssm/components/ContentBadge/ContentBadgeContext.js.map +1 -1
  240. package/dist/cssm/components/Counter/Counter.js +4 -7
  241. package/dist/cssm/components/Counter/Counter.js.map +1 -1
  242. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +5 -6
  243. package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
  244. package/dist/cssm/components/Flex/Flex.js +2 -5
  245. package/dist/cssm/components/Flex/Flex.js.map +1 -1
  246. package/dist/cssm/components/Flex/FlexItem/FlexItem.js +3 -4
  247. package/dist/cssm/components/Flex/FlexItem/FlexItem.js.map +1 -1
  248. package/dist/cssm/components/FloatingArrow/DefaultIcon.js +10 -6
  249. package/dist/cssm/components/FloatingArrow/DefaultIcon.js.map +1 -1
  250. package/dist/cssm/components/FloatingArrow/FloatingArrow.js +9 -7
  251. package/dist/cssm/components/FloatingArrow/FloatingArrow.js.map +1 -1
  252. package/dist/cssm/components/FloatingArrow/FloatingArrow.module.css +1 -1
  253. package/dist/cssm/components/HorizontalCell/HorizontalCell.js +12 -9
  254. package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
  255. package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +23 -6
  256. package/dist/cssm/components/IconButton/IconButton.js +2 -2
  257. package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
  258. package/dist/cssm/components/Image/Image.js +2 -4
  259. package/dist/cssm/components/Image/Image.js.map +1 -1
  260. package/dist/cssm/components/ImageBase/ImageBase.js +3 -4
  261. package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
  262. package/dist/cssm/components/Link/Link.js +2 -2
  263. package/dist/cssm/components/Link/Link.js.map +1 -1
  264. package/dist/cssm/components/List/List.js +4 -6
  265. package/dist/cssm/components/List/List.js.map +1 -1
  266. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +3 -3
  267. package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
  268. package/dist/cssm/components/ModalCardBase/ModalCardBase.js +3 -4
  269. package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
  270. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +2 -3
  271. package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
  272. package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -0
  273. package/dist/cssm/components/ModalRoot/ModalRoot.js +3 -2
  274. package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
  275. package/dist/cssm/components/ModalRoot/ModalRootContext.js +1 -0
  276. package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
  277. package/dist/cssm/components/ModalRoot/types.js.map +1 -1
  278. package/dist/cssm/components/NavIdContext/NavIdContext.js +1 -0
  279. package/dist/cssm/components/NavIdContext/NavIdContext.js.map +1 -1
  280. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +2 -4
  281. package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
  282. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
  283. package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
  284. package/dist/cssm/components/Popper/Popper.js +2 -5
  285. package/dist/cssm/components/Popper/Popper.js.map +1 -1
  286. package/dist/cssm/components/Progress/Progress.js +2 -5
  287. package/dist/cssm/components/Progress/Progress.js.map +1 -1
  288. package/dist/cssm/components/RichCell/RichCell.js +2 -2
  289. package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
  290. package/dist/cssm/components/RootComponent/RootComponent.js +3 -1
  291. package/dist/cssm/components/RootComponent/RootComponent.js.map +1 -1
  292. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -2
  293. package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
  294. package/dist/cssm/components/ScreenSpinner/context.js +1 -0
  295. package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
  296. package/dist/cssm/components/Separator/Separator.js +2 -5
  297. package/dist/cssm/components/Separator/Separator.js.map +1 -1
  298. package/dist/cssm/components/SimpleCell/SimpleCell.js +2 -2
  299. package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
  300. package/dist/cssm/components/SimpleGrid/SimpleGrid.js +2 -5
  301. package/dist/cssm/components/SimpleGrid/SimpleGrid.js.map +1 -1
  302. package/dist/cssm/components/Skeleton/Skeleton.js +2 -5
  303. package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
  304. package/dist/cssm/components/Snackbar/Snackbar.js +2 -2
  305. package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
  306. package/dist/cssm/components/Snackbar/utils.js +2 -4
  307. package/dist/cssm/components/Snackbar/utils.js.map +1 -1
  308. package/dist/cssm/components/Spacing/Spacing.js +2 -5
  309. package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
  310. package/dist/cssm/components/SplitCol/SplitCol.js +3 -4
  311. package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
  312. package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -5
  313. package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
  314. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -2
  315. package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
  316. package/dist/cssm/components/TabsItem/TabsItem.js +2 -2
  317. package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
  318. package/dist/cssm/components/ToolButton/ToolButton.js +2 -2
  319. package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
  320. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
  321. package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
  322. package/dist/cssm/helpers/mergeStyle.js +16 -0
  323. package/dist/cssm/helpers/mergeStyle.js.map +1 -0
  324. package/dist/cssm/hooks/useBooleanState.js +2 -4
  325. package/dist/cssm/hooks/useBooleanState.js.map +1 -1
  326. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js +13 -5
  327. package/dist/cssm/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  328. package/dist/cssm/index.js +1 -1
  329. package/dist/cssm/index.js.map +1 -1
  330. package/dist/cssm/styles/common.css +5 -0
  331. package/dist/cssm/styles/themes.css +7 -9
  332. package/dist/cssm/types.js.map +1 -1
  333. package/dist/helpers/getMergedSameEventsByProps.d.ts.map +1 -1
  334. package/dist/helpers/mergeStyle.d.ts +11 -0
  335. package/dist/helpers/mergeStyle.d.ts.map +1 -0
  336. package/dist/helpers/mergeStyle.js +14 -0
  337. package/dist/helpers/mergeStyle.js.map +1 -0
  338. package/dist/hooks/useBooleanState.js +2 -4
  339. package/dist/hooks/useBooleanState.js.map +1 -1
  340. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.d.ts.map +1 -1
  341. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js +15 -6
  342. package/dist/hooks/useSyncHTMLWithBaseVKUIClasses.js.map +1 -1
  343. package/dist/index.d.ts +1 -1
  344. package/dist/index.d.ts.map +1 -1
  345. package/dist/index.js +1 -1
  346. package/dist/index.js.map +1 -1
  347. package/dist/types.d.ts +1 -1
  348. package/dist/types.d.ts.map +1 -1
  349. package/dist/types.js.map +1 -1
  350. package/dist/vkui.css +1 -1
  351. package/dist/vkui.css.map +1 -1
  352. package/package.json +8 -6
  353. package/src/components/ActionSheet/ActionSheet.tsx +3 -3
  354. package/src/components/ActionSheetItem/ActionSheetItem.tsx +1 -3
  355. package/src/components/AdaptivityProvider/AdaptivityContext.tsx +2 -0
  356. package/src/components/Alert/Alert.tsx +3 -3
  357. package/src/components/Alert/AlertAction.tsx +1 -1
  358. package/src/components/AppRoot/AppRoot.tsx +4 -49
  359. package/src/components/AppRoot/AppRootContext.ts +1 -6
  360. package/src/components/AppRoot/AppRootPortal.tsx +22 -40
  361. package/src/components/AppRoot/helpers.ts +0 -3
  362. package/src/components/AspectRatio/AspectRatio.tsx +2 -7
  363. package/src/components/Avatar/Avatar.tsx +6 -2
  364. package/src/components/Banner/Banner.tsx +0 -2
  365. package/src/components/Button/Button.tsx +1 -3
  366. package/src/components/CalendarDay/CalendarDay.tsx +1 -2
  367. package/src/components/CalendarHeader/CalendarHeader.tsx +2 -2
  368. package/src/components/ColorSchemeProvider/ColorSchemeProvider.tsx +4 -0
  369. package/src/components/ConfigProvider/ConfigProviderContext.tsx +2 -0
  370. package/src/components/ContentBadge/ContentBadgeContext.tsx +2 -0
  371. package/src/components/Counter/Counter.tsx +20 -21
  372. package/src/components/CustomSelectOption/CustomSelectOption.tsx +6 -6
  373. package/src/components/Flex/Flex.tsx +1 -2
  374. package/src/components/Flex/FlexItem/FlexItem.tsx +1 -2
  375. package/src/components/FloatingArrow/DefaultIcon.tsx +11 -8
  376. package/src/components/FloatingArrow/FloatingArrow.module.css +1 -1
  377. package/src/components/FloatingArrow/FloatingArrow.tsx +9 -8
  378. package/src/components/HorizontalCell/HorizontalCell.module.css +23 -6
  379. package/src/components/HorizontalCell/HorizontalCell.tsx +38 -6
  380. package/src/components/IconButton/IconButton.tsx +2 -8
  381. package/src/components/Image/Image.tsx +4 -2
  382. package/src/components/ImageBase/ImageBase.tsx +1 -2
  383. package/src/components/Link/Link.tsx +1 -3
  384. package/src/components/List/List.tsx +3 -11
  385. package/src/components/MiniInfoCell/MiniInfoCell.tsx +1 -3
  386. package/src/components/ModalCardBase/ModalCardBase.tsx +1 -3
  387. package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -3
  388. package/src/components/ModalOverlay/ModalOverlay.module.css +1 -0
  389. package/src/components/ModalRoot/ModalRoot.tsx +8 -4
  390. package/src/components/ModalRoot/ModalRootContext.tsx +2 -0
  391. package/src/components/ModalRoot/types.ts +1 -0
  392. package/src/components/NavIdContext/NavIdContext.tsx +2 -0
  393. package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +2 -5
  394. package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -3
  395. package/src/components/Popper/Popper.tsx +7 -11
  396. package/src/components/Progress/Progress.tsx +1 -2
  397. package/src/components/RichCell/RichCell.tsx +1 -3
  398. package/src/components/RootComponent/RootComponent.tsx +5 -0
  399. package/src/components/ScreenSpinner/ScreenSpinner.tsx +3 -3
  400. package/src/components/ScreenSpinner/context.ts +2 -0
  401. package/src/components/Separator/Separator.tsx +1 -9
  402. package/src/components/SimpleCell/SimpleCell.tsx +1 -3
  403. package/src/components/SimpleGrid/SimpleGrid.tsx +1 -2
  404. package/src/components/Skeleton/Skeleton.tsx +1 -2
  405. package/src/components/Snackbar/Snackbar.tsx +1 -2
  406. package/src/components/Snackbar/utils.ts +3 -4
  407. package/src/components/Spacing/Spacing.tsx +2 -9
  408. package/src/components/SplitCol/SplitCol.tsx +1 -3
  409. package/src/components/SplitLayout/SplitLayout.tsx +1 -7
  410. package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -3
  411. package/src/components/TabsItem/TabsItem.tsx +1 -3
  412. package/src/components/ToolButton/ToolButton.tsx +1 -3
  413. package/src/components/WriteBarIcon/WriteBarIcon.tsx +1 -3
  414. package/src/helpers/mergeStyle.ts +15 -0
  415. package/src/hooks/useBooleanState.ts +2 -2
  416. package/src/hooks/useSyncHTMLWithBaseVKUIClasses.ts +10 -5
  417. package/src/index.ts +3 -3
  418. package/src/styles/common.css +7 -0
  419. package/src/types.ts +4 -1
  420. package/dist/components/AppRoot/ModalPopoutPortal.d.ts +0 -11
  421. package/dist/components/AppRoot/ModalPopoutPortal.d.ts.map +0 -1
  422. package/dist/components/AppRoot/ModalPopoutPortal.js +0 -28
  423. package/dist/components/AppRoot/ModalPopoutPortal.js.map +0 -1
  424. package/dist/cssm/components/AppRoot/ModalPopoutPortal.js +0 -27
  425. package/dist/cssm/components/AppRoot/ModalPopoutPortal.js.map +0 -1
  426. package/src/components/AppRoot/ModalPopoutPortal.tsx +0 -27
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Done } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectOption.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface CustomSelectOptionProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Добавляет описание под основным блоком.\n */\n description?: React.ReactNode;\n /**\n * Вставляет элемент в начало блока перед основным контентом.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n before?: React.ReactNode;\n /**\n * Вставляет элемент в конец блока после основного контента.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n after?: React.ReactNode;\n /**\n * Позволяет создавать вложенность.\n */\n hierarchy?: number;\n /**\n * Включает состояние выбранного элемента списка.\n */\n selected?: boolean;\n /**\n * Включает состояние наведения.\n */\n hovered?: boolean;\n /**\n * Включает состояние фокуса.\n */\n focused?: boolean;\n /**\n * Блокирует весь блок.\n *\n * > ⚠️ Важно: если CustomSelectOption используется внутри [Select](https://vkcom.github.io/VKUI/#/Select), [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) или [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect), то свойство явно должно выставляться только через структуру `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) и [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect) не будут знать об актуальном состоянии\n * опции.\n */\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelectOption\n */\nexport const CustomSelectOption = ({\n children,\n hierarchy = 0,\n hovered: hoveredProp,\n selected,\n before,\n after,\n description,\n disabled,\n style: styleProp,\n className,\n onClick,\n ...restProps\n}: CustomSelectOptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const style = React.useMemo(\n () =>\n hierarchy > 0\n ? {\n '--vkui_internal--custom_select_option_hierarchy_level': hierarchy,\n ...styleProp,\n }\n : styleProp,\n [hierarchy, styleProp],\n );\n const hovered = hoveredProp && !disabled ? true : false;\n\n return (\n <Paragraph\n {...restProps}\n onClick={disabled ? undefined : onClick}\n Component=\"div\"\n role=\"option\"\n aria-disabled={disabled}\n aria-selected={selected}\n data-hovered={hovered}\n className={classNames(\n styles.host,\n sizeY !== 'compact' && sizeYClassNames[sizeY],\n hovered && styles.hover,\n disabled && styles.disabled,\n hierarchy > 0 && styles.hierarchy,\n className,\n )}\n style={style}\n >\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n <div className={styles.main}>\n <div className={styles.children}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles.description}>\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {description}\n </Footnote>\n )}\n </div>\n <div className={styles.after}>\n {hasReactNode(after) && <div>{after}</div>}\n {selected && <Icon16Done className={styles.selectedIcon} />}\n </div>\n </Paragraph>\n );\n};\n"],"names":["React","Icon16Done","classNames","hasReactNode","useAdaptivity","Footnote","Paragraph","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","regular","sizeYRegular","CustomSelectOption","children","hierarchy","hovered","hoveredProp","selected","before","after","description","disabled","style","styleProp","className","onClick","restProps","sizeY","useMemo","undefined","Component","role","aria-disabled","aria-selected","data-hovered","host","hover","div","main","selectedIcon"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,SAAS,QAAQ,uCAAoC;AAC9D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,kCAAkC;AAErD,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AA2CA;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,QAAQ,EACRC,YAAY,CAAC,EACbC,SAASC,WAAW,EACpBC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,WAAW,EACXC,QAAQ,EACRC,OAAOC,SAAS,EAChBC,SAAS,EACTC,OAAO,EACP,GAAGC,WACqB;IACxB,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAGzB;IAC3B,MAAMoB,QAAQxB,MAAM8B,OAAO,CACzB,IACEd,YAAY,IACR;YACE,yDAAyDA;YACzD,GAAGS,SAAS;QACd,IACAA,WACN;QAACT;QAAWS;KAAU;IAExB,MAAMR,UAAUC,eAAe,CAACK,WAAW,OAAO;IAElD,qBACE,MAACjB;QACE,GAAGsB,SAAS;QACbD,SAASJ,WAAWQ,YAAYJ;QAChCK,WAAU;QACVC,MAAK;QACLC,iBAAeX;QACfY,iBAAehB;QACfiB,gBAAcnB;QACdS,WAAWxB,WACTM,OAAO6B,IAAI,EACXR,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CZ,WAAWT,OAAO8B,KAAK,EACvBf,YAAYf,OAAOe,QAAQ,EAC3BP,YAAY,KAAKR,OAAOQ,SAAS,EACjCU;QAEFF,OAAOA;;YAENrB,aAAaiB,yBAAW,KAACmB;gBAAIb,WAAWlB,OAAOY,MAAM;0BAAGA;;0BACzD,MAACmB;gBAAIb,WAAWlB,OAAOgC,IAAI;;kCACzB,KAACD;wBAAIb,WAAWlB,OAAOO,QAAQ;kCAAGA;;oBACjCZ,aAAamB,8BACZ,MAACjB;wBAASqB,WAAWlB,OAAOc,WAAW;;0CACrC,KAACf;0CAAe;;4BACfe;;;;;0BAIP,MAACiB;gBAAIb,WAAWlB,OAAOa,KAAK;;oBACzBlB,aAAakB,wBAAU,KAACkB;kCAAKlB;;oBAC7BF,0BAAY,KAAClB;wBAAWyB,WAAWlB,OAAOiC,YAAY;;;;;;AAI/D,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/CustomSelectOption/CustomSelectOption.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon16Done } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { CSSCustomProperties, HTMLAttributesWithRootRef } from '../../types';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CustomSelectOption.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface CustomSelectOptionProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n /**\n * Добавляет описание под основным блоком.\n */\n description?: React.ReactNode;\n /**\n * Вставляет элемент в начало блока перед основным контентом.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n before?: React.ReactNode;\n /**\n * Вставляет элемент в конец блока после основного контента.\n * Например, можно передать компонент `Avatar`, `Icon<Name>` или другие изображения.\n */\n after?: React.ReactNode;\n /**\n * Позволяет создавать вложенность.\n */\n hierarchy?: number;\n /**\n * Включает состояние выбранного элемента списка.\n */\n selected?: boolean;\n /**\n * Включает состояние наведения.\n */\n hovered?: boolean;\n /**\n * Включает состояние фокуса.\n */\n focused?: boolean;\n /**\n * Блокирует весь блок.\n *\n * > ⚠️ Важно: если CustomSelectOption используется внутри [Select](https://vkcom.github.io/VKUI/#/Select), [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) или [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect), то свойство явно должно выставляться только через структуру `options`.\n * > Запрещается выставлять `disabled` проп опциям в обход `options`, иначе [CustomSelect](https://vkcom.github.io/VKUI/#/CustomSelect) и [ChipsSelect](https://vkcom.github.io/VKUI/#/ChipsSelect) не будут знать об актуальном состоянии\n * опции.\n */\n disabled?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelectOption\n */\nexport const CustomSelectOption = ({\n children,\n hierarchy = 0,\n hovered: hoveredProp,\n selected,\n before,\n after,\n description,\n disabled,\n style: styleProp,\n className,\n onClick,\n ...restProps\n}: CustomSelectOptionProps): React.ReactNode => {\n const { sizeY = 'none' } = useAdaptivity();\n const style: (React.CSSProperties & CSSCustomProperties<number>) | undefined = React.useMemo(\n () =>\n hierarchy > 0\n ? {\n '--vkui_internal--custom_select_option_hierarchy_level': hierarchy,\n }\n : undefined,\n [hierarchy],\n );\n const hovered = hoveredProp && !disabled ? true : false;\n\n return (\n <Paragraph\n {...restProps}\n onClick={disabled ? undefined : onClick}\n Component=\"div\"\n role=\"option\"\n aria-disabled={disabled}\n aria-selected={selected}\n data-hovered={hovered}\n className={classNames(\n styles.host,\n sizeY !== 'compact' && sizeYClassNames[sizeY],\n hovered && styles.hover,\n disabled && styles.disabled,\n hierarchy > 0 && styles.hierarchy,\n className,\n )}\n style={mergeStyle(style, styleProp)}\n >\n {hasReactNode(before) && <div className={styles.before}>{before}</div>}\n <div className={styles.main}>\n <div className={styles.children}>{children}</div>\n {hasReactNode(description) && (\n <Footnote className={styles.description}>\n <VisuallyHidden>&nbsp;</VisuallyHidden>\n {description}\n </Footnote>\n )}\n </div>\n <div className={styles.after}>\n {hasReactNode(after) && <div>{after}</div>}\n {selected && <Icon16Done className={styles.selectedIcon} />}\n </div>\n </Paragraph>\n );\n};\n"],"names":["React","Icon16Done","classNames","hasReactNode","mergeStyle","useAdaptivity","Footnote","Paragraph","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","regular","sizeYRegular","CustomSelectOption","children","hierarchy","hovered","hoveredProp","selected","before","after","description","disabled","style","styleProp","className","onClick","restProps","sizeY","useMemo","undefined","Component","role","aria-disabled","aria-selected","data-hovered","host","hover","div","main","selectedIcon"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,aAAa,QAAQ,+BAA4B;AAE1D,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,SAAS,QAAQ,uCAAoC;AAC9D,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,kCAAkC;AAErD,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AA2CA;;CAEC,GACD,OAAO,MAAMC,qBAAqB,CAAC,EACjCC,QAAQ,EACRC,YAAY,CAAC,EACbC,SAASC,WAAW,EACpBC,QAAQ,EACRC,MAAM,EACNC,KAAK,EACLC,WAAW,EACXC,QAAQ,EACRC,OAAOC,SAAS,EAChBC,SAAS,EACTC,OAAO,EACP,GAAGC,WACqB;IACxB,MAAM,EAAEC,QAAQ,MAAM,EAAE,GAAGzB;IAC3B,MAAMoB,QAAyEzB,MAAM+B,OAAO,CAC1F,IACEd,YAAY,IACR;YACE,yDAAyDA;QAC3D,IACAe,WACN;QAACf;KAAU;IAEb,MAAMC,UAAUC,eAAe,CAACK,WAAW,OAAO;IAElD,qBACE,MAACjB;QACE,GAAGsB,SAAS;QACbD,SAASJ,WAAWQ,YAAYJ;QAChCK,WAAU;QACVC,MAAK;QACLC,iBAAeX;QACfY,iBAAehB;QACfiB,gBAAcnB;QACdS,WAAWzB,WACTO,OAAO6B,IAAI,EACXR,UAAU,aAAapB,eAAe,CAACoB,MAAM,EAC7CZ,WAAWT,OAAO8B,KAAK,EACvBf,YAAYf,OAAOe,QAAQ,EAC3BP,YAAY,KAAKR,OAAOQ,SAAS,EACjCU;QAEFF,OAAOrB,WAAWqB,OAAOC;;YAExBvB,aAAakB,yBAAW,KAACmB;gBAAIb,WAAWlB,OAAOY,MAAM;0BAAGA;;0BACzD,MAACmB;gBAAIb,WAAWlB,OAAOgC,IAAI;;kCACzB,KAACD;wBAAIb,WAAWlB,OAAOO,QAAQ;kCAAGA;;oBACjCb,aAAaoB,8BACZ,MAACjB;wBAASqB,WAAWlB,OAAOc,WAAW;;0CACrC,KAACf;0CAAe;;4BACfe;;;;;0BAIP,MAACiB;gBAAIb,WAAWlB,OAAOa,KAAK;;oBACzBnB,aAAamB,wBAAU,KAACkB;kCAAKlB;;oBAC7BF,0BAAY,KAACnB;wBAAW0B,WAAWlB,OAAOiC,YAAY;;;;;;AAI/D,EAAE"}
@@ -20,16 +20,13 @@ const alignClassNames = {
20
20
  stretch: styles.alignStretch,
21
21
  baseline: styles.alignBaseline
22
22
  };
23
- export const Flex = ({ gap, align, justify, margin = 'none', noWrap = false, direction = 'row', style: styleProp, reverse = false, children, ...props })=>{
23
+ export const Flex = ({ gap, align, justify, margin = 'none', noWrap = false, direction = 'row', reverse = false, children, ...props })=>{
24
24
  const withGaps = Children.count(children) > 1 && gap;
25
25
  const [rowGap, columnGap] = calculateGap(withGaps ? gap : undefined);
26
26
  return /*#__PURE__*/ _jsx(RootComponent, {
27
27
  ...props,
28
28
  baseClassName: classNames(styles.host, !noWrap && styles.wrap, reverse && styles.reverse, direction !== 'row' && styles.directionColumn, margin !== 'none' && styles.marginAuto, align && alignClassNames[align], justify && justifyClassNames[justify], withGaps && styles.withGaps, withGaps && getGapsPresets(rowGap, columnGap)),
29
- style: withGaps ? {
30
- ...getGapsByUser(rowGap, columnGap),
31
- ...styleProp
32
- } : styleProp,
29
+ baseStyle: getGapsByUser(rowGap, columnGap),
33
30
  children: children
34
31
  });
35
32
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Flex/Flex.tsx"],"sourcesContent":["import { Children } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapProp,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport { FlexItem, type FlexItemProps } from './FlexItem/FlexItem';\nimport styles from './Flex.module.css';\n\nexport type { FlexItemProps };\n\nconst justifyClassNames = {\n 'start': styles.justifyStart,\n 'end': styles.justifyEnd,\n 'center': styles.justifyCenter,\n 'space-around': styles.justifySpaceAround,\n 'space-between': styles.justifySpaceBetween,\n 'space-evenly': styles.justifySpaceEvenly,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\ntype FlexContentProps =\n | 'start'\n | 'end'\n | 'center'\n | 'space-around'\n | 'space-between'\n | 'space-evenly';\n\nexport interface FlexProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Направление осей, эквивалентно `flex-direction`.\n */\n direction?: 'row' | 'column';\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Отключает перенос контента, эквивалентно `flex-wrap=nowrap`.\n */\n noWrap?: boolean;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n /**\n * Выравнивание элементов по главной оси, эквивалентно `justify-content`.\n */\n justify?: FlexContentProps;\n /**\n * Значение `auto` позволяет задать платформенные отступы вокруг контейнера.\n */\n margin?: 'none' | 'auto';\n /**\n * Для инвертирования направления, эквивалентно `row-reverse` `column-reverse`.\n */\n reverse?: boolean;\n}\n\nexport const Flex: React.FC<FlexProps> & {\n Item: typeof FlexItem;\n} = ({\n gap,\n align,\n justify,\n margin = 'none',\n noWrap = false,\n direction = 'row',\n style: styleProp,\n reverse = false,\n children,\n ...props\n}: FlexProps) => {\n const withGaps = Children.count(children) > 1 && gap;\n const [rowGap, columnGap] = calculateGap(withGaps ? gap : undefined);\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(\n styles.host,\n !noWrap && styles.wrap,\n reverse && styles.reverse,\n direction !== 'row' && styles.directionColumn,\n margin !== 'none' && styles.marginAuto,\n align && alignClassNames[align],\n justify && justifyClassNames[justify],\n withGaps && styles.withGaps,\n withGaps && getGapsPresets(rowGap, columnGap),\n )}\n style={withGaps ? { ...getGapsByUser(rowGap, columnGap), ...styleProp } : styleProp}\n >\n {children}\n </RootComponent>\n );\n};\n\nfunction getGapsPresets(rowGap?: GapProp, columnGap?: GapProp) {\n return classNames(\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n );\n}\n\nfunction getGapsByUser(rowGap?: GapProp, columnGap?: GapProp) {\n const style: CSSCustomProperties = {};\n\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n\n return style;\n}\n\nFlex.Item = FlexItem;\n"],"names":["Children","classNames","calculateGap","columnGapClassNames","rowGapClassNames","RootComponent","FlexItem","styles","justifyClassNames","justifyStart","justifyEnd","justifyCenter","justifySpaceAround","justifySpaceBetween","justifySpaceEvenly","alignClassNames","start","alignStart","end","alignEnd","center","alignCenter","stretch","alignStretch","baseline","alignBaseline","Flex","gap","align","justify","margin","noWrap","direction","style","styleProp","reverse","children","props","withGaps","count","rowGap","columnGap","undefined","baseClassName","host","wrap","directionColumn","marginAuto","getGapsPresets","getGapsByUser","Item"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAGnBC,gBAAgB,QACX,6BAAoB;AAE3B,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,SAASC,QAAQ,QAA4B,yBAAsB;AACnE,OAAOC,YAAY,oBAAoB;AAIvC,MAAMC,oBAAoB;IACxB,SAASD,OAAOE,YAAY;IAC5B,OAAOF,OAAOG,UAAU;IACxB,UAAUH,OAAOI,aAAa;IAC9B,gBAAgBJ,OAAOK,kBAAkB;IACzC,iBAAiBL,OAAOM,mBAAmB;IAC3C,gBAAgBN,OAAOO,kBAAkB;AAC3C;AAEA,MAAMC,kBAAkB;IACtBC,OAAOT,OAAOU,UAAU;IACxBC,KAAKX,OAAOY,QAAQ;IACpBC,QAAQb,OAAOc,WAAW;IAC1BC,SAASf,OAAOgB,YAAY;IAC5BC,UAAUjB,OAAOkB,aAAa;AAChC;AA2CA,OAAO,MAAMC,OAET,CAAC,EACHC,GAAG,EACHC,KAAK,EACLC,OAAO,EACPC,SAAS,MAAM,EACfC,SAAS,KAAK,EACdC,YAAY,KAAK,EACjBC,OAAOC,SAAS,EAChBC,UAAU,KAAK,EACfC,QAAQ,EACR,GAAGC,OACO;IACV,MAAMC,WAAWtC,SAASuC,KAAK,CAACH,YAAY,KAAKT;IACjD,MAAM,CAACa,QAAQC,UAAU,GAAGvC,aAAaoC,WAAWX,MAAMe;IAE1D,qBACE,KAACrC;QACE,GAAGgC,KAAK;QACTM,eAAe1C,WACbM,OAAOqC,IAAI,EACX,CAACb,UAAUxB,OAAOsC,IAAI,EACtBV,WAAW5B,OAAO4B,OAAO,EACzBH,cAAc,SAASzB,OAAOuC,eAAe,EAC7ChB,WAAW,UAAUvB,OAAOwC,UAAU,EACtCnB,SAASb,eAAe,CAACa,MAAM,EAC/BC,WAAWrB,iBAAiB,CAACqB,QAAQ,EACrCS,YAAY/B,OAAO+B,QAAQ,EAC3BA,YAAYU,eAAeR,QAAQC;QAErCR,OAAOK,WAAW;YAAE,GAAGW,cAAcT,QAAQC,UAAU;YAAE,GAAGP,SAAS;QAAC,IAAIA;kBAEzEE;;AAGP,EAAE;AAEF,SAASY,eAAeR,MAAgB,EAAEC,SAAmB;IAC3D,OAAOxC,WACL,OAAOuC,WAAW,YAAYpC,gBAAgB,CAACoC,OAAO,EACtD,OAAOC,cAAc,YAAYtC,mBAAmB,CAACsC,UAAU;AAEnE;AAEA,SAASQ,cAAcT,MAAgB,EAAEC,SAAmB;IAC1D,MAAMR,QAA6B,CAAC;IAEpC,IAAI,OAAOO,WAAW,UAAU;QAC9BP,KAAK,CAAC,2BAA2B,GAAG,GAAGO,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCR,KAAK,CAAC,8BAA8B,GAAG,GAAGQ,UAAU,EAAE,CAAC;IACzD;IAEA,OAAOR;AACT;AAEAP,KAAKwB,IAAI,GAAG5C"}
1
+ {"version":3,"sources":["../../../../src/components/Flex/Flex.tsx"],"sourcesContent":["import { Children } from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport {\n calculateGap,\n columnGapClassNames,\n type GapProp,\n type GapsProp,\n rowGapClassNames,\n} from '../../lib/layouts';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../RootComponent/RootComponent';\nimport { FlexItem, type FlexItemProps } from './FlexItem/FlexItem';\nimport styles from './Flex.module.css';\n\nexport type { FlexItemProps };\n\nconst justifyClassNames = {\n 'start': styles.justifyStart,\n 'end': styles.justifyEnd,\n 'center': styles.justifyCenter,\n 'space-around': styles.justifySpaceAround,\n 'space-between': styles.justifySpaceBetween,\n 'space-evenly': styles.justifySpaceEvenly,\n};\n\nconst alignClassNames = {\n start: styles.alignStart,\n end: styles.alignEnd,\n center: styles.alignCenter,\n stretch: styles.alignStretch,\n baseline: styles.alignBaseline,\n};\n\ntype FlexContentProps =\n | 'start'\n | 'end'\n | 'center'\n | 'space-around'\n | 'space-between'\n | 'space-evenly';\n\nexport interface FlexProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n /**\n * Направление осей, эквивалентно `flex-direction`.\n */\n direction?: 'row' | 'column';\n /**\n * Отступы между элементами.\n * Значение из списка предопределённых пресетов или число, которое будет приведено к пикселям.\n * Через массив можно задать отступ между столбцами и строками [row, column], если они отличаются.\n */\n gap?: GapsProp;\n /**\n * Отключает перенос контента, эквивалентно `flex-wrap=nowrap`.\n */\n noWrap?: boolean;\n /**\n * Выравнивание элементов по вспомогательной оси, эквивалентно `align-items`.\n */\n align?: 'start' | 'end' | 'center' | 'stretch' | 'baseline';\n /**\n * Выравнивание элементов по главной оси, эквивалентно `justify-content`.\n */\n justify?: FlexContentProps;\n /**\n * Значение `auto` позволяет задать платформенные отступы вокруг контейнера.\n */\n margin?: 'none' | 'auto';\n /**\n * Для инвертирования направления, эквивалентно `row-reverse` `column-reverse`.\n */\n reverse?: boolean;\n}\n\nexport const Flex: React.FC<FlexProps> & {\n Item: typeof FlexItem;\n} = ({\n gap,\n align,\n justify,\n margin = 'none',\n noWrap = false,\n direction = 'row',\n reverse = false,\n children,\n ...props\n}: FlexProps) => {\n const withGaps = Children.count(children) > 1 && gap;\n const [rowGap, columnGap] = calculateGap(withGaps ? gap : undefined);\n\n return (\n <RootComponent\n {...props}\n baseClassName={classNames(\n styles.host,\n !noWrap && styles.wrap,\n reverse && styles.reverse,\n direction !== 'row' && styles.directionColumn,\n margin !== 'none' && styles.marginAuto,\n align && alignClassNames[align],\n justify && justifyClassNames[justify],\n withGaps && styles.withGaps,\n withGaps && getGapsPresets(rowGap, columnGap),\n )}\n baseStyle={getGapsByUser(rowGap, columnGap)}\n >\n {children}\n </RootComponent>\n );\n};\n\nfunction getGapsPresets(rowGap?: GapProp, columnGap?: GapProp) {\n return classNames(\n typeof rowGap === 'string' && rowGapClassNames[rowGap],\n typeof columnGap === 'string' && columnGapClassNames[columnGap],\n );\n}\n\nfunction getGapsByUser(rowGap?: GapProp, columnGap?: GapProp) {\n const style: CSSCustomProperties = {};\n\n if (typeof rowGap === 'number') {\n style['--vkui_internal--row_gap'] = `${rowGap}px`;\n }\n if (typeof columnGap === 'number') {\n style['--vkui_internal--column_gap'] = `${columnGap}px`;\n }\n\n return style;\n}\n\nFlex.Item = FlexItem;\n"],"names":["Children","classNames","calculateGap","columnGapClassNames","rowGapClassNames","RootComponent","FlexItem","styles","justifyClassNames","justifyStart","justifyEnd","justifyCenter","justifySpaceAround","justifySpaceBetween","justifySpaceEvenly","alignClassNames","start","alignStart","end","alignEnd","center","alignCenter","stretch","alignStretch","baseline","alignBaseline","Flex","gap","align","justify","margin","noWrap","direction","reverse","children","props","withGaps","count","rowGap","columnGap","undefined","baseClassName","host","wrap","directionColumn","marginAuto","getGapsPresets","baseStyle","getGapsByUser","style","Item"],"mappings":";AAAA,SAASA,QAAQ,QAAQ,QAAQ;AACjC,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SACEC,YAAY,EACZC,mBAAmB,EAGnBC,gBAAgB,QACX,6BAAoB;AAE3B,SAASC,aAAa,QAAQ,oCAAiC;AAE/D,SAASC,QAAQ,QAA4B,yBAAsB;AACnE,OAAOC,YAAY,oBAAoB;AAIvC,MAAMC,oBAAoB;IACxB,SAASD,OAAOE,YAAY;IAC5B,OAAOF,OAAOG,UAAU;IACxB,UAAUH,OAAOI,aAAa;IAC9B,gBAAgBJ,OAAOK,kBAAkB;IACzC,iBAAiBL,OAAOM,mBAAmB;IAC3C,gBAAgBN,OAAOO,kBAAkB;AAC3C;AAEA,MAAMC,kBAAkB;IACtBC,OAAOT,OAAOU,UAAU;IACxBC,KAAKX,OAAOY,QAAQ;IACpBC,QAAQb,OAAOc,WAAW;IAC1BC,SAASf,OAAOgB,YAAY;IAC5BC,UAAUjB,OAAOkB,aAAa;AAChC;AA2CA,OAAO,MAAMC,OAET,CAAC,EACHC,GAAG,EACHC,KAAK,EACLC,OAAO,EACPC,SAAS,MAAM,EACfC,SAAS,KAAK,EACdC,YAAY,KAAK,EACjBC,UAAU,KAAK,EACfC,QAAQ,EACR,GAAGC,OACO;IACV,MAAMC,WAAWpC,SAASqC,KAAK,CAACH,YAAY,KAAKP;IACjD,MAAM,CAACW,QAAQC,UAAU,GAAGrC,aAAakC,WAAWT,MAAMa;IAE1D,qBACE,KAACnC;QACE,GAAG8B,KAAK;QACTM,eAAexC,WACbM,OAAOmC,IAAI,EACX,CAACX,UAAUxB,OAAOoC,IAAI,EACtBV,WAAW1B,OAAO0B,OAAO,EACzBD,cAAc,SAASzB,OAAOqC,eAAe,EAC7Cd,WAAW,UAAUvB,OAAOsC,UAAU,EACtCjB,SAASb,eAAe,CAACa,MAAM,EAC/BC,WAAWrB,iBAAiB,CAACqB,QAAQ,EACrCO,YAAY7B,OAAO6B,QAAQ,EAC3BA,YAAYU,eAAeR,QAAQC;QAErCQ,WAAWC,cAAcV,QAAQC;kBAEhCL;;AAGP,EAAE;AAEF,SAASY,eAAeR,MAAgB,EAAEC,SAAmB;IAC3D,OAAOtC,WACL,OAAOqC,WAAW,YAAYlC,gBAAgB,CAACkC,OAAO,EACtD,OAAOC,cAAc,YAAYpC,mBAAmB,CAACoC,UAAU;AAEnE;AAEA,SAASS,cAAcV,MAAgB,EAAEC,SAAmB;IAC1D,MAAMU,QAA6B,CAAC;IAEpC,IAAI,OAAOX,WAAW,UAAU;QAC9BW,KAAK,CAAC,2BAA2B,GAAG,GAAGX,OAAO,EAAE,CAAC;IACnD;IACA,IAAI,OAAOC,cAAc,UAAU;QACjCU,KAAK,CAAC,8BAA8B,GAAG,GAAGV,UAAU,EAAE,CAAC;IACzD;IAEA,OAAOU;AACT;AAEAvB,KAAKwB,IAAI,GAAG5C"}
@@ -15,12 +15,11 @@ const alignSelfClassNames = {
15
15
  baseline: styles.alignSelfBaseline,
16
16
  stretch: styles.alignSelfStretch
17
17
  };
18
- export const FlexItem = ({ children, alignSelf, flex, flexBasis, style, ...rest })=>{
18
+ export const FlexItem = ({ children, alignSelf, flex, flexBasis, ...rest })=>{
19
19
  return /*#__PURE__*/ _jsx(RootComponent, {
20
20
  ...rest,
21
- style: {
22
- flexBasis,
23
- ...style
21
+ baseStyle: {
22
+ flexBasis
24
23
  },
25
24
  baseClassName: classNames(alignSelf && alignSelfClassNames[alignSelf], flex && flexClassNames[flex]),
26
25
  children: children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Flex/FlexItem/FlexItem.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasChildren } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../../RootComponent/RootComponent';\nimport styles from './FlexItem.module.css';\n\nconst flexClassNames = {\n grow: styles.flexGrow,\n shrink: styles.flexShrink,\n content: styles.flexContent,\n fixed: styles.flexFixed,\n};\n\nconst alignSelfClassNames = {\n start: styles.alignSelfStart,\n end: styles.alignSelfEnd,\n center: styles.alignSelfCenter,\n baseline: styles.alignSelfBaseline,\n stretch: styles.alignSelfStretch,\n};\n\nexport interface FlexItemProps\n extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'>,\n HasChildren {\n /**\n * Для задания выравнивания, отлично от родительского, эквивалентно `align-self`\n */\n alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\n /**\n * Позволяет задать предопределенные значения свойства `flex`:\n *\n * - `grow` соответствует значению `1 0 auto`\n * - `shrink` соответствует значению `0 1 auto`\n * - `content` соответствует значению `1 1 auto`\n * - `fixed` соответствует значению `0 0 auto`\n */\n flex?: 'grow' | 'shrink' | 'content' | 'fixed';\n /**\n * Изначальный размер элемента, эквивалентно `flex-basis`\n */\n flexBasis?: number | string;\n}\n\nexport const FlexItem = ({\n children,\n alignSelf,\n flex,\n flexBasis,\n style,\n ...rest\n}: FlexItemProps): React.ReactNode => {\n return (\n <RootComponent\n {...rest}\n style={{ flexBasis, ...style }}\n baseClassName={classNames(\n alignSelf && alignSelfClassNames[alignSelf],\n flex && flexClassNames[flex],\n )}\n >\n {children}\n </RootComponent>\n );\n};\n"],"names":["classNames","RootComponent","styles","flexClassNames","grow","flexGrow","shrink","flexShrink","content","flexContent","fixed","flexFixed","alignSelfClassNames","start","alignSelfStart","end","alignSelfEnd","center","alignSelfCenter","baseline","alignSelfBaseline","stretch","alignSelfStretch","FlexItem","children","alignSelf","flex","flexBasis","style","rest","baseClassName"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,uCAAoC;AAElE,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,iBAAiB;IACrBC,MAAMF,OAAOG,QAAQ;IACrBC,QAAQJ,OAAOK,UAAU;IACzBC,SAASN,OAAOO,WAAW;IAC3BC,OAAOR,OAAOS,SAAS;AACzB;AAEA,MAAMC,sBAAsB;IAC1BC,OAAOX,OAAOY,cAAc;IAC5BC,KAAKb,OAAOc,YAAY;IACxBC,QAAQf,OAAOgB,eAAe;IAC9BC,UAAUjB,OAAOkB,iBAAiB;IAClCC,SAASnB,OAAOoB,gBAAgB;AAClC;AAwBA,OAAO,MAAMC,WAAW,CAAC,EACvBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,SAAS,EACTC,KAAK,EACL,GAAGC,MACW;IACd,qBACE,KAAC5B;QACE,GAAG4B,IAAI;QACRD,OAAO;YAAED;YAAW,GAAGC,KAAK;QAAC;QAC7BE,eAAe9B,WACbyB,aAAab,mBAAmB,CAACa,UAAU,EAC3CC,QAAQvB,cAAc,CAACuB,KAAK;kBAG7BF;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../../src/components/Flex/FlexItem/FlexItem.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport type { HasChildren } from '../../../types';\nimport { RootComponent } from '../../RootComponent/RootComponent';\nimport type { RootComponentProps } from '../../RootComponent/RootComponent';\nimport styles from './FlexItem.module.css';\n\nconst flexClassNames = {\n grow: styles.flexGrow,\n shrink: styles.flexShrink,\n content: styles.flexContent,\n fixed: styles.flexFixed,\n};\n\nconst alignSelfClassNames = {\n start: styles.alignSelfStart,\n end: styles.alignSelfEnd,\n center: styles.alignSelfCenter,\n baseline: styles.alignSelfBaseline,\n stretch: styles.alignSelfStretch,\n};\n\nexport interface FlexItemProps\n extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'>,\n HasChildren {\n /**\n * Для задания выравнивания, отлично от родительского, эквивалентно `align-self`\n */\n alignSelf?: 'start' | 'end' | 'center' | 'baseline' | 'stretch';\n /**\n * Позволяет задать предопределенные значения свойства `flex`:\n *\n * - `grow` соответствует значению `1 0 auto`\n * - `shrink` соответствует значению `0 1 auto`\n * - `content` соответствует значению `1 1 auto`\n * - `fixed` соответствует значению `0 0 auto`\n */\n flex?: 'grow' | 'shrink' | 'content' | 'fixed';\n /**\n * Изначальный размер элемента, эквивалентно `flex-basis`\n */\n flexBasis?: number | string;\n}\n\nexport const FlexItem = ({\n children,\n alignSelf,\n flex,\n flexBasis,\n ...rest\n}: FlexItemProps): React.ReactNode => {\n return (\n <RootComponent\n {...rest}\n baseStyle={{ flexBasis }}\n baseClassName={classNames(\n alignSelf && alignSelfClassNames[alignSelf],\n flex && flexClassNames[flex],\n )}\n >\n {children}\n </RootComponent>\n );\n};\n"],"names":["classNames","RootComponent","styles","flexClassNames","grow","flexGrow","shrink","flexShrink","content","flexContent","fixed","flexFixed","alignSelfClassNames","start","alignSelfStart","end","alignSelfEnd","center","alignSelfCenter","baseline","alignSelfBaseline","stretch","alignSelfStretch","FlexItem","children","alignSelf","flex","flexBasis","rest","baseStyle","baseClassName"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAQ,uCAAoC;AAElE,OAAOC,YAAY,wBAAwB;AAE3C,MAAMC,iBAAiB;IACrBC,MAAMF,OAAOG,QAAQ;IACrBC,QAAQJ,OAAOK,UAAU;IACzBC,SAASN,OAAOO,WAAW;IAC3BC,OAAOR,OAAOS,SAAS;AACzB;AAEA,MAAMC,sBAAsB;IAC1BC,OAAOX,OAAOY,cAAc;IAC5BC,KAAKb,OAAOc,YAAY;IACxBC,QAAQf,OAAOgB,eAAe;IAC9BC,UAAUjB,OAAOkB,iBAAiB;IAClCC,SAASnB,OAAOoB,gBAAgB;AAClC;AAwBA,OAAO,MAAMC,WAAW,CAAC,EACvBC,QAAQ,EACRC,SAAS,EACTC,IAAI,EACJC,SAAS,EACT,GAAGC,MACW;IACd,qBACE,KAAC3B;QACE,GAAG2B,IAAI;QACRC,WAAW;YAAEF;QAAU;QACvBG,eAAe9B,WACbyB,aAAab,mBAAmB,CAACa,UAAU,EAC3CC,QAAQvB,cAAc,CAACuB,KAAK;kBAG7BF;;AAGP,EAAE"}
@@ -1,6 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
+ export const DEFAULT_ARROW_WIDTH = 20;
4
+ export const DEFAULT_ARROW_HEIGHT = 8;
5
+ export const DEFAULT_ARROW_PADDING = 10;
6
+ const PLATFORM_HEIGHT = 1;
7
+ const ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;
3
8
  /**
9
+ * Стрелка для всплывающих окон.
10
+ *
4
11
  * Примечание 1.
5
12
  *
6
13
  * В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа
@@ -12,12 +19,9 @@ import * as React from "react";
12
19
  * 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.
13
20
  *
14
21
  * https://github.com/VKCOM/VKUI/issues/2123
15
- */ export const DEFAULT_ARROW_WIDTH = 20;
16
- export const DEFAULT_ARROW_HEIGHT = 8;
17
- export const DEFAULT_ARROW_PADDING = 10;
18
- const PLATFORM_HEIGHT = 1;
19
- const ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;
20
- export const DefaultIcon = (props)=>{
22
+ *
23
+ * @since 7.0.0
24
+ */ export const DefaultIcon = (props)=>{
21
25
  return /*#__PURE__*/ _jsx("svg", {
22
26
  width: DEFAULT_ARROW_WIDTH,
23
27
  height: ARROW_HEIGHT_WITH_WHITE_SPACE,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/FloatingArrow/DefaultIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Примечание 1.\n *\n * В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа\n * служит для исправления проблемы с белой полоской между контентом и стрелкой, которая зачастую проявляется при\n * изменении масштаба страницы.\n *\n * Чтобы исправление сработало нужно:\n * 1. Прибавить высоту платформы к `height` и `viewBox` SVG контейнера.\n * 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.\n *\n * https://github.com/VKCOM/VKUI/issues/2123\n */\n\nexport const DEFAULT_ARROW_WIDTH = 20;\nexport const DEFAULT_ARROW_HEIGHT = 8;\nexport const DEFAULT_ARROW_PADDING = 10;\n\nconst PLATFORM_HEIGHT = 1;\nconst ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;\n\nexport const DefaultIcon = (props: React.SVGAttributes<SVGSVGElement>): React.ReactNode => {\n return (\n <svg\n width={DEFAULT_ARROW_WIDTH}\n height={ARROW_HEIGHT_WITH_WHITE_SPACE}\n viewBox={`0 0 ${DEFAULT_ARROW_WIDTH} ${ARROW_HEIGHT_WITH_WHITE_SPACE}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M10 0c3 0 6 8 10 8v1H0V8c3.975 0 7-8 10-8Z\" fill=\"currentColor\" />\n </svg>\n );\n};\n"],"names":["React","DEFAULT_ARROW_WIDTH","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","PLATFORM_HEIGHT","ARROW_HEIGHT_WITH_WHITE_SPACE","DefaultIcon","props","svg","width","height","viewBox","xmlns","path","d","fill"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAE/B;;;;;;;;;;;;CAYC,GAED,OAAO,MAAMC,sBAAsB,GAAG;AACtC,OAAO,MAAMC,uBAAuB,EAAE;AACtC,OAAO,MAAMC,wBAAwB,GAAG;AAExC,MAAMC,kBAAkB;AACxB,MAAMC,gCAAgCH,uBAAuBE;AAE7D,OAAO,MAAME,cAAc,CAACC;IAC1B,qBACE,KAACC;QACCC,OAAOR;QACPS,QAAQL;QACRM,SAAS,CAAC,IAAI,EAAEV,oBAAoB,CAAC,EAAEI,+BAA+B;QACtEO,OAAM;QACL,GAAGL,KAAK;kBAET,cAAA,KAACM;YAAKC,GAAE;YAA6CC,MAAK;;;AAGhE,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/FloatingArrow/DefaultIcon.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport const DEFAULT_ARROW_WIDTH = 20;\nexport const DEFAULT_ARROW_HEIGHT = 8;\nexport const DEFAULT_ARROW_PADDING = 10;\n\nconst PLATFORM_HEIGHT = 1;\nconst ARROW_HEIGHT_WITH_WHITE_SPACE = DEFAULT_ARROW_HEIGHT + PLATFORM_HEIGHT;\n\n/**\n * Стрелка для всплывающих окон.\n *\n * Примечание 1.\n *\n * В компоненте, SVG элемент `<path />` представляет собой стрелку с платформой в виде прямоугольника в 1px. Платформа\n * служит для исправления проблемы с белой полоской между контентом и стрелкой, которая зачастую проявляется при\n * изменении масштаба страницы.\n *\n * Чтобы исправление сработало нужно:\n * 1. Прибавить высоту платформы к `height` и `viewBox` SVG контейнера.\n * 2. Сместить положение SVG контейнера на высоту платформы – сделано в CSS через `translateY(1px)`.\n *\n * https://github.com/VKCOM/VKUI/issues/2123\n *\n * @since 7.0.0\n */\nexport const DefaultIcon = (props: React.SVGAttributes<SVGSVGElement>): React.ReactNode => {\n return (\n <svg\n width={DEFAULT_ARROW_WIDTH}\n height={ARROW_HEIGHT_WITH_WHITE_SPACE}\n viewBox={`0 0 ${DEFAULT_ARROW_WIDTH} ${ARROW_HEIGHT_WITH_WHITE_SPACE}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path d=\"M10 0c3 0 6 8 10 8v1H0V8c3.975 0 7-8 10-8Z\" fill=\"currentColor\" />\n </svg>\n );\n};\n"],"names":["React","DEFAULT_ARROW_WIDTH","DEFAULT_ARROW_HEIGHT","DEFAULT_ARROW_PADDING","PLATFORM_HEIGHT","ARROW_HEIGHT_WITH_WHITE_SPACE","DefaultIcon","props","svg","width","height","viewBox","xmlns","path","d","fill"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAE/B,OAAO,MAAMC,sBAAsB,GAAG;AACtC,OAAO,MAAMC,uBAAuB,EAAE;AACtC,OAAO,MAAMC,wBAAwB,GAAG;AAExC,MAAMC,kBAAkB;AACxB,MAAMC,gCAAgCH,uBAAuBE;AAE7D;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,MAAME,cAAc,CAACC;IAC1B,qBACE,KAACC;QACCC,OAAOR;QACPS,QAAQL;QACRM,SAAS,CAAC,IAAI,EAAEV,oBAAoB,CAAC,EAAEI,+BAA+B;QACtEO,OAAM;QACL,GAAGL,KAAK;kBAET,cAAA,KAACM;YAAKC,GAAE;YAA6CC,MAAK;;;AAGhE,EAAE"}
@@ -1,21 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { classNames } from "@vkontakte/vkjs";
4
+ import { RootComponent } from "../RootComponent/RootComponent.js";
4
5
  import { DefaultIcon } from "./DefaultIcon.js";
5
6
  import styles from "./FloatingArrow.module.css";
6
- const placementClassNames = {
7
+ export const placementClassNames = {
7
8
  right: styles.placementRight,
8
9
  bottom: styles.placementBottom,
9
10
  left: styles.placementLeft
10
11
  };
11
12
  /**
12
- * @private
13
- */ export const FloatingArrow = ({ offset, isStaticOffset, coords, iconStyle, iconClassName, placement = 'bottom', getRootRef, Icon = DefaultIcon, ...restProps })=>{
13
+ * Иконка-стрелка для всплывающих окон.
14
+ *
15
+ * @since 7.0.0
16
+ */ export const FloatingArrow = ({ offset, isStaticOffset, coords, iconStyle, iconClassName, placement = 'bottom', Icon = DefaultIcon, ...restProps })=>{
14
17
  const [arrowPlacement, arrowStyles] = getArrowPositionData(placement, coords, offset, isStaticOffset);
15
- return /*#__PURE__*/ _jsx("div", {
16
- ref: getRootRef,
17
- style: arrowStyles,
18
- className: classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement]),
18
+ return /*#__PURE__*/ _jsx(RootComponent, {
19
+ baseStyle: arrowStyles,
20
+ baseClassName: classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement]),
19
21
  ...restProps,
20
22
  children: /*#__PURE__*/ _jsx(Icon, {
21
23
  className: classNames(styles.in, iconClassName),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasDataAttribute, HTMLAttributesWithRootRef } from '../../types';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './FloatingArrow.module.css';\n\nexport type Coords = {\n x?: number;\n y?: number;\n};\n\nconst placementClassNames = {\n right: styles.placementRight,\n bottom: styles.placementBottom,\n left: styles.placementLeft,\n};\n\nexport interface FloatingArrowProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasDataAttribute {\n /**\n * Сдвиг стрелки относительно текущих координат.\n */\n offset?: number;\n /**\n * Включает абсолютное смещение по `offset`.\n */\n isStaticOffset?: boolean;\n coords?: Coords;\n placement?: Placement;\n iconStyle?: React.CSSProperties;\n iconClassName?: string;\n Icon?: React.ComponentType<React.SVGAttributes<SVGSVGElement>>;\n}\n\n/**\n * @private\n */\nexport const FloatingArrow = ({\n offset,\n isStaticOffset,\n coords,\n iconStyle,\n iconClassName,\n placement = 'bottom',\n getRootRef,\n Icon = DefaultIcon,\n ...restProps\n}: FloatingArrowProps): React.ReactNode => {\n const [arrowPlacement, arrowStyles] = getArrowPositionData(\n placement,\n coords,\n offset,\n isStaticOffset,\n );\n\n return (\n <div\n ref={getRootRef}\n style={arrowStyles}\n className={classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement])}\n {...restProps}\n >\n <Icon className={classNames(styles.in, iconClassName)} style={iconStyle} />\n </div>\n );\n};\n\nfunction getArrowPositionData(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n offset = 0,\n isStaticOffset = false,\n): [undefined | 'right' | 'bottom' | 'left', React.CSSProperties] {\n const withOffset = (isVerticalPlacement: boolean) => {\n const parsedCoords = { x: coords.x || 0, y: coords.y || 0 };\n\n if (isVerticalPlacement) {\n return isStaticOffset ? offset : parsedCoords.y + offset;\n } else {\n return isStaticOffset ? offset : parsedCoords.x + offset;\n }\n };\n\n if (placement.startsWith('top')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n 'bottom',\n {\n top: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else if (placement.startsWith('right')) {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'left',\n {\n [yOffsetProp]: withOffset(true),\n left: 0,\n },\n ];\n } else if (placement.startsWith('bottom')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n undefined,\n {\n bottom: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'right',\n {\n [yOffsetProp]: withOffset(true),\n right: 0,\n },\n ];\n }\n}\n\nfunction getXOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'right' : 'left';\n}\n\nfunction getYOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'bottom' : 'top';\n}\n"],"names":["React","classNames","DefaultIcon","styles","placementClassNames","right","placementRight","bottom","placementBottom","left","placementLeft","FloatingArrow","offset","isStaticOffset","coords","iconStyle","iconClassName","placement","getRootRef","Icon","restProps","arrowPlacement","arrowStyles","getArrowPositionData","div","ref","style","className","host","in","x","y","withOffset","isVerticalPlacement","parsedCoords","startsWith","xOffsetProp","getXOffsetProp","top","yOffsetProp","getYOffsetProp","undefined","endsWith"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,OAAOC,YAAY,6BAA6B;AAOhD,MAAMC,sBAAsB;IAC1BC,OAAOF,OAAOG,cAAc;IAC5BC,QAAQJ,OAAOK,eAAe;IAC9BC,MAAMN,OAAOO,aAAa;AAC5B;AAoBA;;CAEC,GACD,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,MAAM,EACNC,cAAc,EACdC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,YAAY,QAAQ,EACpBC,UAAU,EACVC,OAAOjB,WAAW,EAClB,GAAGkB,WACgB;IACnB,MAAM,CAACC,gBAAgBC,YAAY,GAAGC,qBACpCN,WACAH,QACAF,QACAC;IAGF,qBACE,KAACW;QACCC,KAAKP;QACLQ,OAAOJ;QACPK,WAAW1B,WAAWE,OAAOyB,IAAI,EAAEP,kBAAkBjB,mBAAmB,CAACiB,eAAe;QACvF,GAAGD,SAAS;kBAEb,cAAA,KAACD;YAAKQ,WAAW1B,WAAWE,OAAO0B,EAAE,EAAEb;YAAgBU,OAAOX;;;AAGpE,EAAE;AAEF,SAASQ,qBACPN,SAAoB,EACpBH,SAAiB;IAAEgB,GAAG;IAAGC,GAAG;AAAE,CAAC,EAC/BnB,SAAS,CAAC,EACVC,iBAAiB,KAAK;IAEtB,MAAMmB,aAAa,CAACC;QAClB,MAAMC,eAAe;YAAEJ,GAAGhB,OAAOgB,CAAC,IAAI;YAAGC,GAAGjB,OAAOiB,CAAC,IAAI;QAAE;QAE1D,IAAIE,qBAAqB;YACvB,OAAOpB,iBAAiBD,SAASsB,aAAaH,CAAC,GAAGnB;QACpD,OAAO;YACL,OAAOC,iBAAiBD,SAASsB,aAAaJ,CAAC,GAAGlB;QACpD;IACF;IAEA,IAAIK,UAAUkB,UAAU,CAAC,QAAQ;QAC/B,MAAMC,cAAcC,eAAepB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACEyB,KAAK;gBACL,CAACF,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO,IAAIf,UAAUkB,UAAU,CAAC,UAAU;QACxC,MAAMI,cAAcC,eAAevB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAAC0B,YAAY,EAAEP,WAAW;gBAC1BvB,MAAM;YACR;SACD;IACH,OAAO,IAAIQ,UAAUkB,UAAU,CAAC,WAAW;QACzC,MAAMC,cAAcC,eAAepB,WAAWJ;QAC9C,OAAO;YACL4B;YACA;gBACElC,QAAQ;gBACR,CAAC6B,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO;QACL,MAAMO,cAAcC,eAAevB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAAC0B,YAAY,EAAEP,WAAW;gBAC1B3B,OAAO;YACT;SACD;IACH;AACF;AAEA,SAASgC,eAAepB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUyB,QAAQ,CAAC,UAAU7B,iBAAiB,UAAU;AACjE;AAEA,SAAS2B,eAAevB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUyB,QAAQ,CAAC,UAAU7B,iBAAiB,WAAW;AAClE"}
1
+ {"version":3,"sources":["../../../../src/components/FloatingArrow/FloatingArrow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { Placement } from '../../lib/floating';\nimport type { HasDataAttribute, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { DefaultIcon } from './DefaultIcon';\nimport styles from './FloatingArrow.module.css';\n\nexport type Coords = {\n x?: number;\n y?: number;\n};\n\nexport const placementClassNames = {\n right: styles.placementRight,\n bottom: styles.placementBottom,\n left: styles.placementLeft,\n};\n\nexport interface FloatingArrowProps\n extends HTMLAttributesWithRootRef<HTMLDivElement>,\n HasDataAttribute {\n /**\n * Сдвиг стрелки относительно текущих координат.\n */\n offset?: number;\n /**\n * Включает абсолютное смещение по `offset`.\n */\n isStaticOffset?: boolean;\n coords?: Coords;\n placement?: Placement;\n iconStyle?: React.CSSProperties;\n iconClassName?: string;\n Icon?: React.ComponentType<React.SVGAttributes<SVGSVGElement>>;\n}\n\n/**\n * Иконка-стрелка для всплывающих окон.\n *\n * @since 7.0.0\n */\nexport const FloatingArrow = ({\n offset,\n isStaticOffset,\n coords,\n iconStyle,\n iconClassName,\n placement = 'bottom',\n Icon = DefaultIcon,\n ...restProps\n}: FloatingArrowProps): React.ReactNode => {\n const [arrowPlacement, arrowStyles] = getArrowPositionData(\n placement,\n coords,\n offset,\n isStaticOffset,\n );\n\n return (\n <RootComponent\n baseStyle={arrowStyles}\n baseClassName={classNames(styles.host, arrowPlacement && placementClassNames[arrowPlacement])}\n {...restProps}\n >\n <Icon className={classNames(styles.in, iconClassName)} style={iconStyle} />\n </RootComponent>\n );\n};\n\nfunction getArrowPositionData(\n placement: Placement,\n coords: Coords = { x: 0, y: 0 },\n offset = 0,\n isStaticOffset = false,\n): [undefined | 'right' | 'bottom' | 'left', React.CSSProperties] {\n const withOffset = (isVerticalPlacement: boolean) => {\n const parsedCoords = { x: coords.x || 0, y: coords.y || 0 };\n\n if (isVerticalPlacement) {\n return isStaticOffset ? offset : parsedCoords.y + offset;\n } else {\n return isStaticOffset ? offset : parsedCoords.x + offset;\n }\n };\n\n if (placement.startsWith('top')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n 'bottom',\n {\n top: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else if (placement.startsWith('right')) {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'left',\n {\n [yOffsetProp]: withOffset(true),\n left: 0,\n },\n ];\n } else if (placement.startsWith('bottom')) {\n const xOffsetProp = getXOffsetProp(placement, isStaticOffset);\n return [\n undefined,\n {\n bottom: '100%',\n [xOffsetProp]: withOffset(false),\n },\n ];\n } else {\n const yOffsetProp = getYOffsetProp(placement, isStaticOffset);\n return [\n 'right',\n {\n [yOffsetProp]: withOffset(true),\n right: 0,\n },\n ];\n }\n}\n\nfunction getXOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'right' : 'left';\n}\n\nfunction getYOffsetProp(placement: Placement, isStaticOffset: boolean) {\n return placement.endsWith('end') && isStaticOffset ? 'bottom' : 'top';\n}\n"],"names":["React","classNames","RootComponent","DefaultIcon","styles","placementClassNames","right","placementRight","bottom","placementBottom","left","placementLeft","FloatingArrow","offset","isStaticOffset","coords","iconStyle","iconClassName","placement","Icon","restProps","arrowPlacement","arrowStyles","getArrowPositionData","baseStyle","baseClassName","host","className","in","style","x","y","withOffset","isVerticalPlacement","parsedCoords","startsWith","xOffsetProp","getXOffsetProp","top","yOffsetProp","getYOffsetProp","undefined","endsWith"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAG7C,SAASC,aAAa,QAAQ,oCAAiC;AAC/D,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,OAAOC,YAAY,6BAA6B;AAOhD,OAAO,MAAMC,sBAAsB;IACjCC,OAAOF,OAAOG,cAAc;IAC5BC,QAAQJ,OAAOK,eAAe;IAC9BC,MAAMN,OAAOO,aAAa;AAC5B,EAAE;AAoBF;;;;CAIC,GACD,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,MAAM,EACNC,cAAc,EACdC,MAAM,EACNC,SAAS,EACTC,aAAa,EACbC,YAAY,QAAQ,EACpBC,OAAOhB,WAAW,EAClB,GAAGiB,WACgB;IACnB,MAAM,CAACC,gBAAgBC,YAAY,GAAGC,qBACpCL,WACAH,QACAF,QACAC;IAGF,qBACE,KAACZ;QACCsB,WAAWF;QACXG,eAAexB,WAAWG,OAAOsB,IAAI,EAAEL,kBAAkBhB,mBAAmB,CAACgB,eAAe;QAC3F,GAAGD,SAAS;kBAEb,cAAA,KAACD;YAAKQ,WAAW1B,WAAWG,OAAOwB,EAAE,EAAEX;YAAgBY,OAAOb;;;AAGpE,EAAE;AAEF,SAASO,qBACPL,SAAoB,EACpBH,SAAiB;IAAEe,GAAG;IAAGC,GAAG;AAAE,CAAC,EAC/BlB,SAAS,CAAC,EACVC,iBAAiB,KAAK;IAEtB,MAAMkB,aAAa,CAACC;QAClB,MAAMC,eAAe;YAAEJ,GAAGf,OAAOe,CAAC,IAAI;YAAGC,GAAGhB,OAAOgB,CAAC,IAAI;QAAE;QAE1D,IAAIE,qBAAqB;YACvB,OAAOnB,iBAAiBD,SAASqB,aAAaH,CAAC,GAAGlB;QACpD,OAAO;YACL,OAAOC,iBAAiBD,SAASqB,aAAaJ,CAAC,GAAGjB;QACpD;IACF;IAEA,IAAIK,UAAUiB,UAAU,CAAC,QAAQ;QAC/B,MAAMC,cAAcC,eAAenB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACEwB,KAAK;gBACL,CAACF,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO,IAAId,UAAUiB,UAAU,CAAC,UAAU;QACxC,MAAMI,cAAcC,eAAetB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAACyB,YAAY,EAAEP,WAAW;gBAC1BtB,MAAM;YACR;SACD;IACH,OAAO,IAAIQ,UAAUiB,UAAU,CAAC,WAAW;QACzC,MAAMC,cAAcC,eAAenB,WAAWJ;QAC9C,OAAO;YACL2B;YACA;gBACEjC,QAAQ;gBACR,CAAC4B,YAAY,EAAEJ,WAAW;YAC5B;SACD;IACH,OAAO;QACL,MAAMO,cAAcC,eAAetB,WAAWJ;QAC9C,OAAO;YACL;YACA;gBACE,CAACyB,YAAY,EAAEP,WAAW;gBAC1B1B,OAAO;YACT;SACD;IACH;AACF;AAEA,SAAS+B,eAAenB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUwB,QAAQ,CAAC,UAAU5B,iBAAiB,UAAU;AACjE;AAEA,SAAS0B,eAAetB,SAAoB,EAAEJ,cAAuB;IACnE,OAAOI,UAAUwB,QAAQ,CAAC,UAAU5B,iBAAiB,WAAW;AAClE"}
@@ -6,7 +6,7 @@
6
6
  content: '';
7
7
  display: block;
8
8
 
9
- /* см. Примечание 1 в FloatingArrow.tsx. */
9
+ /* см. "Примечание" в DefaultIcon.tsx. */
10
10
  transform: translateY(1px);
11
11
  }
12
12
 
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { classNames, hasReactNode } from "@vkontakte/vkjs";
4
+ import { mergeStyle } from "../../helpers/mergeStyle.js";
4
5
  import { Avatar } from "../Avatar/Avatar.js";
5
6
  import { Tappable } from "../Tappable/Tappable.js";
6
7
  import { Caption } from "../Typography/Caption/Caption.js";
@@ -15,6 +16,10 @@ const stylesSize = {
15
16
  xl: styles.sizeXL,
16
17
  auto: styles.sizeAuto
17
18
  };
19
+ const textAlignClassNames = {
20
+ center: styles.textAlignCenter,
21
+ end: styles.textAlignEnd
22
+ };
18
23
  const CellTypography = ({ size, children, ...restProps })=>{
19
24
  return size === 's' ? /*#__PURE__*/ _jsx(Caption, {
20
25
  ...restProps,
@@ -28,17 +33,15 @@ const CellTypography = ({ size, children, ...restProps })=>{
28
33
  * @see https://vkcom.github.io/VKUI/#/HorizontalCell
29
34
  */ export const HorizontalCell = ({ className, title, style, subtitle, size = 's', children = /*#__PURE__*/ _jsx(Avatar, {
30
35
  size: 56
31
- }), getRootRef, getRef, extraSubtitle, ...restProps })=>{
36
+ }), getRootRef, getRef, extraSubtitle, textAlign = size === 's' ? 'center' : 'start', noPadding = false, ...restProps })=>{
32
37
  const hasTypography = hasReactNode(title) || hasReactNode(subtitle) || hasReactNode(extraSubtitle);
38
+ const customProperties = typeof size === 'number' ? {
39
+ [CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px`
40
+ } : undefined;
33
41
  return /*#__PURE__*/ _jsx("div", {
34
42
  ref: getRootRef,
35
- style: {
36
- ...typeof size === 'number' && {
37
- [CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px`
38
- },
39
- ...style
40
- },
41
- className: classNames(styles.host, typeof size === 'string' && stylesSize[size], size !== 'auto' && styles.sized, className),
43
+ style: mergeStyle(customProperties, style),
44
+ className: classNames(styles.host, typeof size === 'string' && stylesSize[size], size !== 'auto' && styles.sized, typeof size === 'number' && styles.customSize, noPadding && styles.noPadding, className),
42
45
  children: /*#__PURE__*/ _jsxs(Tappable, {
43
46
  className: styles.body,
44
47
  getRootRef: getRef,
@@ -49,7 +52,7 @@ const CellTypography = ({ size, children, ...restProps })=>{
49
52
  children: children
50
53
  }),
51
54
  hasTypography && /*#__PURE__*/ _jsxs("div", {
52
- className: styles.content,
55
+ className: classNames(styles.content, textAlign !== 'start' && textAlignClassNames[textAlign]),
53
56
  children: [
54
57
  hasReactNode(title) && /*#__PURE__*/ _jsx(CellTypography, {
55
58
  size: size,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport type { HasRef, HasRootRef, HTMLAttributesWithRootRef, LiteralUnion } from '../../types';\nimport { Avatar } from '../Avatar/Avatar';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './HorizontalCell.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH = '--vkui_internal--cell_width';\n\nconst stylesSize = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n xl: styles.sizeXL,\n auto: styles.sizeAuto,\n};\n\ntype HorizontalCellSizes = 's' | 'm' | 'l' | 'xl' | 'auto';\n\ninterface CellTypographyProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n size: HorizontalCellProps['size'];\n}\n\nconst CellTypography = ({ size, children, ...restProps }: CellTypographyProps) => {\n return size === 's' ? (\n <Caption {...restProps}>{children}</Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends Omit<TappableProps, 'size' | 'getRootRef' | 'title' | 'borderRadiusMode'>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Ширина компонента\n *\n * Значения `'s' | 'm' | 'l' | 'xl'` определяются дизайн-системой.\n * Значение `auto` позволяет задать динамическую ширину, определяемую контентом.\n * Пользовательскую ширину можно задать через числовое значение.\n */\n size?: LiteralUnion<HorizontalCellSizes, number>;\n /**\n * Заголовок\n */\n title?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n title,\n style,\n subtitle,\n size = 's',\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n extraSubtitle,\n ...restProps\n}: HorizontalCellProps): React.ReactNode => {\n const hasTypography =\n hasReactNode(title) || hasReactNode(subtitle) || hasReactNode(extraSubtitle);\n return (\n <div\n ref={getRootRef}\n style={{\n ...(typeof size === 'number' && { [CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px` }),\n ...style,\n }}\n className={classNames(\n styles.host,\n typeof size === 'string' && stylesSize[size],\n size !== 'auto' && styles.sized,\n className,\n )}\n >\n <Tappable className={styles.body} getRootRef={getRef} {...restProps}>\n {hasReactNode(children) && <div className={styles.image}>{children}</div>}\n {hasTypography && (\n <div className={styles.content}>\n {hasReactNode(title) && <CellTypography size={size}>{title}</CellTypography>}\n {hasReactNode(subtitle) && <Footnote className={styles.subtitle}>{subtitle}</Footnote>}\n {hasReactNode(extraSubtitle) && (\n <Footnote className={styles.subtitle}>{extraSubtitle}</Footnote>\n )}\n </div>\n )}\n </Tappable>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","Avatar","Tappable","Caption","Footnote","Subhead","styles","CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH","stylesSize","s","sizeS","m","sizeM","l","sizeL","xl","sizeXL","auto","sizeAuto","CellTypography","size","children","restProps","HorizontalCell","className","title","style","subtitle","getRootRef","getRef","extraSubtitle","hasTypography","div","ref","host","sized","body","image","content"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAE3D,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,OAAOC,YAAY,8BAA8B;AAEjD,OAAO,MAAMC,kCAAkC,8BAA8B;AAE7E,MAAMC,aAAa;IACjBC,GAAGH,OAAOI,KAAK;IACfC,GAAGL,OAAOM,KAAK;IACfC,GAAGP,OAAOQ,KAAK;IACfC,IAAIT,OAAOU,MAAM;IACjBC,MAAMX,OAAOY,QAAQ;AACvB;AAQA,MAAMC,iBAAiB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,WAAgC;IAC3E,OAAOF,SAAS,oBACd,KAACjB;QAAS,GAAGmB,SAAS;kBAAGD;uBAEzB,KAAChB;QAAS,GAAGiB,SAAS;kBAAGD;;AAE7B;AA4BA;;CAEC,GACD,OAAO,MAAME,iBAAiB,CAAC,EAC7BC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,QAAQ,EACRP,OAAO,GAAG,EACVC,yBAAW,KAACpB;IAAOmB,MAAM;EAAM,EAC/BQ,UAAU,EACVC,MAAM,EACNC,aAAa,EACb,GAAGR,WACiB;IACpB,MAAMS,gBACJ/B,aAAayB,UAAUzB,aAAa2B,aAAa3B,aAAa8B;IAChE,qBACE,KAACE;QACCC,KAAKL;QACLF,OAAO;YACL,GAAI,OAAON,SAAS,YAAY;gBAAE,CAACb,gCAAgC,EAAE,GAAGa,KAAK,EAAE,CAAC;YAAC,CAAC;YAClF,GAAGM,KAAK;QACV;QACAF,WAAWzB,WACTO,OAAO4B,IAAI,EACX,OAAOd,SAAS,YAAYZ,UAAU,CAACY,KAAK,EAC5CA,SAAS,UAAUd,OAAO6B,KAAK,EAC/BX;kBAGF,cAAA,MAACtB;YAASsB,WAAWlB,OAAO8B,IAAI;YAAER,YAAYC;YAAS,GAAGP,SAAS;;gBAChEtB,aAAaqB,2BAAa,KAACW;oBAAIR,WAAWlB,OAAO+B,KAAK;8BAAGhB;;gBACzDU,+BACC,MAACC;oBAAIR,WAAWlB,OAAOgC,OAAO;;wBAC3BtC,aAAayB,wBAAU,KAACN;4BAAeC,MAAMA;sCAAOK;;wBACpDzB,aAAa2B,2BAAa,KAACvB;4BAASoB,WAAWlB,OAAOqB,QAAQ;sCAAGA;;wBACjE3B,aAAa8B,gCACZ,KAAC1B;4BAASoB,WAAWlB,OAAOqB,QAAQ;sCAAGG;;;;;;;AAOrD,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/HorizontalCell/HorizontalCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport type {\n CSSCustomProperties,\n HasRef,\n HasRootRef,\n HTMLAttributesWithRootRef,\n LiteralUnion,\n} from '../../types';\nimport { Avatar } from '../Avatar/Avatar';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport styles from './HorizontalCell.module.css';\n\nexport const CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH = '--vkui_internal--cell_width';\n\nconst stylesSize = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n xl: styles.sizeXL,\n auto: styles.sizeAuto,\n};\n\nconst textAlignClassNames = {\n center: styles.textAlignCenter,\n end: styles.textAlignEnd,\n};\n\ntype HorizontalCellSizes = 's' | 'm' | 'l' | 'xl' | 'auto';\n\ninterface CellTypographyProps extends HTMLAttributesWithRootRef<HTMLDivElement> {\n size: HorizontalCellProps['size'];\n}\n\nconst CellTypography = ({ size, children, ...restProps }: CellTypographyProps) => {\n return size === 's' ? (\n <Caption {...restProps}>{children}</Caption>\n ) : (\n <Subhead {...restProps}>{children}</Subhead>\n );\n};\n\nexport interface HorizontalCellProps\n extends Omit<TappableProps, 'size' | 'getRootRef' | 'title' | 'borderRadiusMode'>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLDivElement> {\n /**\n * Ширина компонента\n *\n * Значения `'s' | 'm' | 'l' | 'xl'` определяются дизайн-системой.\n * Значение `auto` позволяет задать динамическую ширину, определяемую контентом.\n * Пользовательскую ширину можно задать через числовое значение.\n */\n size?: LiteralUnion<HorizontalCellSizes, number>;\n /**\n * Заголовок\n */\n title?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children`.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительная строка текста под `children` и `subtitle`.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * Задает выравнивание типографики. По умолчанию `center` для `size=s`, иначе `start`\n */\n textAlign?: 'start' | 'center' | 'end';\n /**\n * Отключает формирование отступов у крайних элементов\n *\n * Актуально для использования в многострочных списках\n */\n noPadding?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/HorizontalCell\n */\nexport const HorizontalCell = ({\n className,\n title,\n style,\n subtitle,\n size = 's',\n children = <Avatar size={56} />,\n getRootRef,\n getRef,\n extraSubtitle,\n textAlign = size === 's' ? 'center' : 'start',\n noPadding = false,\n ...restProps\n}: HorizontalCellProps): React.ReactNode => {\n const hasTypography =\n hasReactNode(title) || hasReactNode(subtitle) || hasReactNode(extraSubtitle);\n\n const customProperties: CSSCustomProperties | undefined =\n typeof size === 'number' ? { [CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH]: `${size}px` } : undefined;\n\n return (\n <div\n ref={getRootRef}\n style={mergeStyle(customProperties, style)}\n className={classNames(\n styles.host,\n typeof size === 'string' && stylesSize[size],\n size !== 'auto' && styles.sized,\n typeof size === 'number' && styles.customSize,\n noPadding && styles.noPadding,\n className,\n )}\n >\n <Tappable className={styles.body} getRootRef={getRef} {...restProps}>\n {hasReactNode(children) && <div className={styles.image}>{children}</div>}\n {hasTypography && (\n <div\n className={classNames(\n styles.content,\n textAlign !== 'start' && textAlignClassNames[textAlign],\n )}\n >\n {hasReactNode(title) && <CellTypography size={size}>{title}</CellTypography>}\n {hasReactNode(subtitle) && <Footnote className={styles.subtitle}>{subtitle}</Footnote>}\n {hasReactNode(extraSubtitle) && (\n <Footnote className={styles.subtitle}>{extraSubtitle}</Footnote>\n )}\n </div>\n )}\n </Tappable>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","mergeStyle","Avatar","Tappable","Caption","Footnote","Subhead","styles","CUSTOM_CSS_TOKEN_FOR_CELL_WIDTH","stylesSize","s","sizeS","m","sizeM","l","sizeL","xl","sizeXL","auto","sizeAuto","textAlignClassNames","center","textAlignCenter","end","textAlignEnd","CellTypography","size","children","restProps","HorizontalCell","className","title","style","subtitle","getRootRef","getRef","extraSubtitle","textAlign","noPadding","hasTypography","customProperties","undefined","div","ref","host","sized","customSize","body","image","content"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,UAAU,QAAQ,8BAA2B;AAQtD,SAASC,MAAM,QAAQ,sBAAmB;AAC1C,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,OAAOC,YAAY,8BAA8B;AAEjD,OAAO,MAAMC,kCAAkC,8BAA8B;AAE7E,MAAMC,aAAa;IACjBC,GAAGH,OAAOI,KAAK;IACfC,GAAGL,OAAOM,KAAK;IACfC,GAAGP,OAAOQ,KAAK;IACfC,IAAIT,OAAOU,MAAM;IACjBC,MAAMX,OAAOY,QAAQ;AACvB;AAEA,MAAMC,sBAAsB;IAC1BC,QAAQd,OAAOe,eAAe;IAC9BC,KAAKhB,OAAOiB,YAAY;AAC1B;AAQA,MAAMC,iBAAiB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,WAAgC;IAC3E,OAAOF,SAAS,oBACd,KAACtB;QAAS,GAAGwB,SAAS;kBAAGD;uBAEzB,KAACrB;QAAS,GAAGsB,SAAS;kBAAGD;;AAE7B;AAsCA;;CAEC,GACD,OAAO,MAAME,iBAAiB,CAAC,EAC7BC,SAAS,EACTC,KAAK,EACLC,KAAK,EACLC,QAAQ,EACRP,OAAO,GAAG,EACVC,yBAAW,KAACzB;IAAOwB,MAAM;EAAM,EAC/BQ,UAAU,EACVC,MAAM,EACNC,aAAa,EACbC,YAAYX,SAAS,MAAM,WAAW,OAAO,EAC7CY,YAAY,KAAK,EACjB,GAAGV,WACiB;IACpB,MAAMW,gBACJvC,aAAa+B,UAAU/B,aAAaiC,aAAajC,aAAaoC;IAEhE,MAAMI,mBACJ,OAAOd,SAAS,WAAW;QAAE,CAAClB,gCAAgC,EAAE,GAAGkB,KAAK,EAAE,CAAC;IAAC,IAAIe;IAElF,qBACE,KAACC;QACCC,KAAKT;QACLF,OAAO/B,WAAWuC,kBAAkBR;QACpCF,WAAW/B,WACTQ,OAAOqC,IAAI,EACX,OAAOlB,SAAS,YAAYjB,UAAU,CAACiB,KAAK,EAC5CA,SAAS,UAAUnB,OAAOsC,KAAK,EAC/B,OAAOnB,SAAS,YAAYnB,OAAOuC,UAAU,EAC7CR,aAAa/B,OAAO+B,SAAS,EAC7BR;kBAGF,cAAA,MAAC3B;YAAS2B,WAAWvB,OAAOwC,IAAI;YAAEb,YAAYC;YAAS,GAAGP,SAAS;;gBAChE5B,aAAa2B,2BAAa,KAACe;oBAAIZ,WAAWvB,OAAOyC,KAAK;8BAAGrB;;gBACzDY,+BACC,MAACG;oBACCZ,WAAW/B,WACTQ,OAAO0C,OAAO,EACdZ,cAAc,WAAWjB,mBAAmB,CAACiB,UAAU;;wBAGxDrC,aAAa+B,wBAAU,KAACN;4BAAeC,MAAMA;sCAAOK;;wBACpD/B,aAAaiC,2BAAa,KAAC5B;4BAASyB,WAAWvB,OAAO0B,QAAQ;sCAAGA;;wBACjEjC,aAAaoC,gCACZ,KAAC/B;4BAASyB,WAAWvB,OAAO0B,QAAQ;sCAAGG;;;;;;;AAOrD,EAAE"}
@@ -36,13 +36,13 @@
36
36
  }
37
37
 
38
38
  .sized {
39
- --vkui_internal--side_cell_width: calc(
40
- var(--vkui_internal--cell_width) + var(--vkui_internal--side_cell_gap)
41
- );
42
-
43
39
  max-inline-size: var(--vkui_internal--cell_width);
44
40
  }
45
41
 
42
+ .customSize .body {
43
+ inline-size: var(--vkui_internal--cell_width);
44
+ }
45
+
46
46
  .sizeS {
47
47
  --vkui_internal--side_cell_gap: calc(
48
48
  var(--vkui--size_base_padding_horizontal--regular) - var(--vkui--spacing_size_m)
@@ -50,6 +50,10 @@
50
50
  --vkui_internal--cell_width: 72px;
51
51
  }
52
52
 
53
+ .noPadding {
54
+ --vkui_internal--side_cell_gap: 0px;
55
+ }
56
+
53
57
  .image {
54
58
  padding-block: 4px;
55
59
  padding-inline: var(--vkui--spacing_size_s);
@@ -61,6 +65,14 @@
61
65
  text-align: start;
62
66
  }
63
67
 
68
+ .textAlignCenter {
69
+ text-align: center;
70
+ }
71
+
72
+ .textAlignEnd {
73
+ text-align: end;
74
+ }
75
+
64
76
  .sizeS .image {
65
77
  padding-block: 4px;
66
78
  padding-inline: var(--vkui--spacing_size_m);
@@ -69,7 +81,6 @@
69
81
  .sizeS .content {
70
82
  padding-block: 2px 8px;
71
83
  padding-inline: 4px;
72
- text-align: center;
73
84
  }
74
85
 
75
86
  .sizeM {
@@ -96,7 +107,13 @@
96
107
 
97
108
  .sized:first-child,
98
109
  .sized:last-child {
99
- max-inline-size: var(--vkui_internal--side_cell_width);
110
+ max-inline-size: calc(var(--vkui_internal--cell_width) + var(--vkui_internal--side_cell_gap));
111
+ }
112
+
113
+ .sized:first-child:last-child {
114
+ max-inline-size: calc(
115
+ var(--vkui_internal--cell_width) + (2 * (var(--vkui_internal--side_cell_gap)))
116
+ );
100
117
  }
101
118
 
102
119
  .sized:first-child .body,
@@ -15,7 +15,7 @@ const sizeYClassNames = {
15
15
  const warn = warnOnce('IconButton');
16
16
  /**
17
17
  * @see https://vkcom.github.io/VKUI/#/IconButton
18
- */ export const IconButton = ({ label, children, className, ...restProps })=>{
18
+ */ export const IconButton = ({ label, children, ...restProps })=>{
19
19
  const platform = usePlatform();
20
20
  const { sizeY = 'none' } = useAdaptivity();
21
21
  if (process.env.NODE_ENV === 'development') {
@@ -35,7 +35,7 @@ const warn = warnOnce('IconButton');
35
35
  activeMode: "background",
36
36
  Component: restProps.href ? 'a' : 'button',
37
37
  ...restProps,
38
- className: classNames(styles.host, sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' && styles.ios, className),
38
+ baseClassName: classNames(styles.host, sizeY !== 'regular' && sizeYClassNames[sizeY], platform === 'ios' && styles.ios),
39
39
  children: [
40
40
  label && /*#__PURE__*/ _jsx(VisuallyHidden, {
41
41
  children: label
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий\n */\n label?: string;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({\n label,\n children,\n className,\n ...restProps\n}: IconButtonProps): React.ReactNode => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n className={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' && styles.ios,\n className,\n )}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","useAdaptivity","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","warn","IconButton","label","children","className","restProps","platform","sizeY","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","host","ios"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AASA,MAAMC,OAAOT,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMU,aAAa,CAAC,EACzBC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACT,GAAGC,WACa;IAChB,MAAMC,WAAWlB;IACjB,MAAM,EAAEmB,QAAQ,MAAM,EAAE,GAAGpB;IAE3B,IAAIqB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAetB,kBAAkB;YACrCc,UAAU;gBAACA;gBAAUD;aAAM;YAC3B,GAAGG,SAAS;QACd;QAEA,IAAI,CAACM,cAAc;YACjBX,KAAKV,gBAAgBsB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,MAACrB;QACCsB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbD,WAAWlB,WACTQ,OAAOuB,IAAI,EACXV,UAAU,aAAaZ,eAAe,CAACY,MAAM,EAC7CD,aAAa,SAASZ,OAAOwB,GAAG,EAChCd;;YAGDF,uBAAS,KAACT;0BAAgBS;;YAC1BC;;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/IconButton/IconButton.tsx"],"sourcesContent":["'use client';\n\nimport { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { hasAccessibleName } from '../../lib/accessibility';\nimport { COMMON_WARNINGS, warnOnce } from '../../lib/warnOnce';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './IconButton.module.css';\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n compact: styles.sizeYCompact,\n} as const;\n\nexport interface IconButtonProps extends TappableProps {\n /**\n * Текст кнопки-иконки. Делает ее доступной для ассистивных технологий\n */\n label?: string;\n}\n\nconst warn = warnOnce('IconButton');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/IconButton\n */\nexport const IconButton = ({ label, children, ...restProps }: IconButtonProps): React.ReactNode => {\n const platform = usePlatform();\n const { sizeY = 'none' } = useAdaptivity();\n\n if (process.env.NODE_ENV === 'development') {\n /* istanbul ignore next: проверка в dev mode, тест на hasAccessibleName() есть в lib/accessibility.test.tsx */\n const isAccessible = hasAccessibleName({\n children: [children, label],\n ...restProps,\n });\n\n if (!isAccessible) {\n warn(COMMON_WARNINGS.a11y[restProps.href ? 'link-name' : 'button-name'], 'error');\n }\n }\n\n return (\n <Tappable\n activeEffectDelay={200}\n activeMode=\"background\"\n Component={restProps.href ? 'a' : 'button'}\n {...restProps}\n baseClassName={classNames(\n styles.host,\n sizeY !== 'regular' && sizeYClassNames[sizeY],\n platform === 'ios' && styles.ios,\n )}\n >\n {label && <VisuallyHidden>{label}</VisuallyHidden>}\n {children}\n </Tappable>\n );\n};\n"],"names":["classNames","useAdaptivity","usePlatform","hasAccessibleName","COMMON_WARNINGS","warnOnce","Tappable","VisuallyHidden","styles","sizeYClassNames","none","sizeYNone","compact","sizeYCompact","warn","IconButton","label","children","restProps","platform","sizeY","process","env","NODE_ENV","isAccessible","a11y","href","activeEffectDelay","activeMode","Component","baseClassName","host","ios"],"mappings":"AAAA;;AAEA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,aAAa,QAAQ,+BAA4B;AAC1D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,iBAAiB,QAAQ,6BAA0B;AAC5D,SAASC,eAAe,EAAEC,QAAQ,QAAQ,wBAAqB;AAC/D,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,cAAc,QAAQ,sCAAmC;AAClE,OAAOC,YAAY,0BAA0B;AAE7C,MAAMC,kBAAkB;IACtBC,MAAMF,OAAOG,SAAS;IACtBC,SAASJ,OAAOK,YAAY;AAC9B;AASA,MAAMC,OAAOT,SAAS;AAEtB;;CAEC,GACD,OAAO,MAAMU,aAAa,CAAC,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGC,WAA4B;IAC3E,MAAMC,WAAWjB;IACjB,MAAM,EAAEkB,QAAQ,MAAM,EAAE,GAAGnB;IAE3B,IAAIoB,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1C,4GAA4G,GAC5G,MAAMC,eAAerB,kBAAkB;YACrCc,UAAU;gBAACA;gBAAUD;aAAM;YAC3B,GAAGE,SAAS;QACd;QAEA,IAAI,CAACM,cAAc;YACjBV,KAAKV,gBAAgBqB,IAAI,CAACP,UAAUQ,IAAI,GAAG,cAAc,cAAc,EAAE;QAC3E;IACF;IAEA,qBACE,MAACpB;QACCqB,mBAAmB;QACnBC,YAAW;QACXC,WAAWX,UAAUQ,IAAI,GAAG,MAAM;QACjC,GAAGR,SAAS;QACbY,eAAe9B,WACbQ,OAAOuB,IAAI,EACXX,UAAU,aAAaX,eAAe,CAACW,MAAM,EAC7CD,aAAa,SAASX,OAAOwB,GAAG;;YAGjChB,uBAAS,KAACT;0BAAgBS;;YAC1BC;;;AAGP,EAAE"}
@@ -2,6 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { classNames } from "@vkontakte/vkjs";
5
+ import { mergeStyle } from "../../helpers/mergeStyle.js";
5
6
  import { ImageBase } from "../ImageBase/ImageBase.js";
6
7
  import { ImageBadge } from "./ImageBadge/ImageBadge.js";
7
8
  import styles from "./Image.module.css";
@@ -88,10 +89,7 @@ const getBorderRadiusBySizeInPx = (size, borderRadius)=>{
88
89
  ...restProps,
89
90
  objectFit: objectFit,
90
91
  size: size,
91
- style: {
92
- ...borderStyles,
93
- ...style
94
- },
92
+ style: mergeStyle(borderStyles, style),
95
93
  className: classNames(className, styles.host, borderStartStartRadius && styles.borderStartStartRadius, borderStartEndRadius && styles.borderStartEndRadius, borderEndStartRadius && styles.borderEndStartRadius, borderEndEndRadius && styles.borderEndEndRadius)
96
94
  });
97
95
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nconst IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами начала блока и строки\n */\n borderStartStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки\n */\n borderStartEndRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки\n */\n borderEndStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами конца блока и строки\n */\n borderEndEndRadius?: 's' | 'l' | 'm';\n}\n\nconst getBorderRadiusBySize = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: Exclude<ImageProps['borderRadius'], undefined>,\n) => {\n switch (borderRadius) {\n case 's': {\n if (size <= 32) {\n return 2;\n }\n if (size <= 56) {\n return 3;\n }\n return 4;\n }\n case 'm': {\n if (size <= 32) {\n return 3;\n }\n if (size <= 48) {\n return 4;\n }\n if (size <= 72) {\n return 6;\n }\n if (size <= 80) {\n return 8;\n }\n return 10;\n }\n case 'l': {\n if (size <= 16) {\n return 4;\n }\n if (size <= 20) {\n return 5;\n }\n if (size <= 32) {\n return 6;\n }\n if (size <= 40) {\n return 8;\n }\n if (size <= 48) {\n return 10;\n }\n if (size <= 56) {\n return 12;\n }\n if (size <= 64) {\n return 14;\n }\n return 16;\n }\n }\n};\n\nconst getBorderRadiusBySizeInPx = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: ImageProps['borderRadius'],\n) => {\n if (!borderRadius) {\n return undefined;\n }\n\n return `${getBorderRadiusBySize(size, borderRadius)}px`;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n} = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius = 'm',\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n style,\n className,\n objectFit = 'cover',\n ...restProps\n}: ImageProps) => {\n const borderStyles = React.useMemo(\n () => ({\n '--vkui_internal--Image_border_radius': getBorderRadiusBySizeInPx(size, borderRadius),\n '--vkui_internal--Image_border_start_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartStartRadius,\n ),\n '--vkui_internal--Image_border_start_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartEndRadius,\n ),\n '--vkui_internal--Image_border_end_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndStartRadius,\n ),\n '--vkui_internal--Image_border_end_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndEndRadius,\n ),\n }),\n [\n borderRadius,\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n size,\n ],\n );\n\n return (\n <ImageBase\n {...restProps}\n objectFit={objectFit}\n size={size}\n style={{ ...borderStyles, ...style }}\n className={classNames(\n className,\n styles.host,\n borderStartStartRadius && styles.borderStartStartRadius,\n borderStartEndRadius && styles.borderStartEndRadius,\n borderEndStartRadius && styles.borderEndStartRadius,\n borderEndEndRadius && styles.borderEndEndRadius,\n )}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nImage.Badge = ImageBadge;\nImage.Badge.displayName = 'Image.Badge';\n\nImage.Overlay = ImageBase.Overlay;\nImage.Overlay.displayName = 'Image.Overlay';\n"],"names":["React","classNames","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","host","displayName","Badge","Overlay"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,UAAU,QAA8B,6BAA0B;AAC3E,OAAOC,YAAY,qBAAqB;AAIxC,MAAMC,qBAAqB;AAyB3B,MAAMC,wBAAwB,CAC5BC,MACAC;IAEA,OAAQA;QACN,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;IACF;AACF;AAEA,MAAME,4BAA4B,CAChCF,MACAC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAOE;IACT;IAEA,OAAO,GAAGJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAGT,CAAC,EACHJ,OAAOF,kBAAkB,EACzBG,eAAe,GAAG,EAClBI,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,EAClBC,KAAK,EACLC,SAAS,EACTC,YAAY,OAAO,EACnB,GAAGC,WACQ;IACX,MAAMC,eAAepB,MAAMqB,OAAO,CAChC,IAAO,CAAA;YACL,wCAAwCZ,0BAA0BF,MAAMC;YACxE,oDAAoDC,0BAClDF,MACAK;YAEF,kDAAkDH,0BAChDF,MACAM;YAEF,kDAAkDJ,0BAChDF,MACAO;YAEF,gDAAgDL,0BAC9CF,MACAQ;QAEJ,CAAA,GACA;QACEP;QACAI;QACAC;QACAC;QACAC;QACAR;KACD;IAGH,qBACE,KAACL;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXX,MAAMA;QACNS,OAAO;YAAE,GAAGI,YAAY;YAAE,GAAGJ,KAAK;QAAC;QACnCC,WAAWhB,WACTgB,WACAb,OAAOkB,IAAI,EACXV,0BAA0BR,OAAOQ,sBAAsB,EACvDC,wBAAwBT,OAAOS,oBAAoB,EACnDC,wBAAwBV,OAAOU,oBAAoB,EACnDC,sBAAsBX,OAAOW,kBAAkB;;AAIvD,EAAE;AAEFJ,MAAMY,WAAW,GAAG;AAEpBZ,MAAMa,KAAK,GAAGrB;AACdQ,MAAMa,KAAK,CAACD,WAAW,GAAG;AAE1BZ,MAAMc,OAAO,GAAGvB,UAAUuB,OAAO;AACjCd,MAAMc,OAAO,CAACF,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/Image/Image.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { type CSSCustomProperties } from '../../types';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { ImageBadge, type ImageBadgeProps } from './ImageBadge/ImageBadge';\nimport styles from './Image.module.css';\n\nexport type { ImageBadgeProps, ImageBaseOverlayProps as ImageOverlayProps };\n\nconst IMAGE_DEFAULT_SIZE = 48;\n\nexport interface ImageProps extends Omit<ImageBaseProps, 'badge'> {\n /**\n * Размер закругления.\n */\n borderRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами начала блока и строки\n */\n borderStartStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной начала блока и стороной конца строки\n */\n borderStartEndRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между стороной конца блока и стороной начала строки\n */\n borderEndStartRadius?: 's' | 'l' | 'm';\n /**\n * Размер закругления угла между сторонами конца блока и строки\n */\n borderEndEndRadius?: 's' | 'l' | 'm';\n}\n\nconst getBorderRadiusBySize = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: Exclude<ImageProps['borderRadius'], undefined>,\n) => {\n switch (borderRadius) {\n case 's': {\n if (size <= 32) {\n return 2;\n }\n if (size <= 56) {\n return 3;\n }\n return 4;\n }\n case 'm': {\n if (size <= 32) {\n return 3;\n }\n if (size <= 48) {\n return 4;\n }\n if (size <= 72) {\n return 6;\n }\n if (size <= 80) {\n return 8;\n }\n return 10;\n }\n case 'l': {\n if (size <= 16) {\n return 4;\n }\n if (size <= 20) {\n return 5;\n }\n if (size <= 32) {\n return 6;\n }\n if (size <= 40) {\n return 8;\n }\n if (size <= 48) {\n return 10;\n }\n if (size <= 56) {\n return 12;\n }\n if (size <= 64) {\n return 14;\n }\n return 16;\n }\n }\n};\n\nconst getBorderRadiusBySizeInPx = (\n size: Exclude<ImageBaseProps['size'], undefined>,\n borderRadius: ImageProps['borderRadius'],\n) => {\n if (!borderRadius) {\n return undefined;\n }\n\n return `${getBorderRadiusBySize(size, borderRadius)}px`;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Image\n */\nexport const Image: React.FC<ImageProps> & {\n Badge: typeof ImageBadge;\n Overlay: typeof ImageBase.Overlay;\n} = ({\n size = IMAGE_DEFAULT_SIZE,\n borderRadius = 'm',\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n style,\n className,\n objectFit = 'cover',\n ...restProps\n}: ImageProps) => {\n const borderStyles: CSSCustomProperties<string | undefined> = React.useMemo(\n () => ({\n '--vkui_internal--Image_border_radius': getBorderRadiusBySizeInPx(size, borderRadius),\n '--vkui_internal--Image_border_start_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartStartRadius,\n ),\n '--vkui_internal--Image_border_start_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderStartEndRadius,\n ),\n '--vkui_internal--Image_border_end_start_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndStartRadius,\n ),\n '--vkui_internal--Image_border_end_end_radius': getBorderRadiusBySizeInPx(\n size,\n borderEndEndRadius,\n ),\n }),\n [\n borderRadius,\n borderStartStartRadius,\n borderStartEndRadius,\n borderEndStartRadius,\n borderEndEndRadius,\n size,\n ],\n );\n\n return (\n <ImageBase\n {...restProps}\n objectFit={objectFit}\n size={size}\n style={mergeStyle(borderStyles, style)}\n className={classNames(\n className,\n styles.host,\n borderStartStartRadius && styles.borderStartStartRadius,\n borderStartEndRadius && styles.borderStartEndRadius,\n borderEndStartRadius && styles.borderEndStartRadius,\n borderEndEndRadius && styles.borderEndEndRadius,\n )}\n />\n );\n};\n\nImage.displayName = 'Image';\n\nImage.Badge = ImageBadge;\nImage.Badge.displayName = 'Image.Badge';\n\nImage.Overlay = ImageBase.Overlay;\nImage.Overlay.displayName = 'Image.Overlay';\n"],"names":["React","classNames","mergeStyle","ImageBase","ImageBadge","styles","IMAGE_DEFAULT_SIZE","getBorderRadiusBySize","size","borderRadius","getBorderRadiusBySizeInPx","undefined","Image","borderStartStartRadius","borderStartEndRadius","borderEndStartRadius","borderEndEndRadius","style","className","objectFit","restProps","borderStyles","useMemo","host","displayName","Badge","Overlay"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,UAAU,QAA8B,6BAA0B;AAC3E,OAAOC,YAAY,qBAAqB;AAIxC,MAAMC,qBAAqB;AAyB3B,MAAMC,wBAAwB,CAC5BC,MACAC;IAEA,OAAQA;QACN,KAAK;YAAK;gBACR,IAAID,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;QACA,KAAK;YAAK;gBACR,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,IAAIA,QAAQ,IAAI;oBACd,OAAO;gBACT;gBACA,OAAO;YACT;IACF;AACF;AAEA,MAAME,4BAA4B,CAChCF,MACAC;IAEA,IAAI,CAACA,cAAc;QACjB,OAAOE;IACT;IAEA,OAAO,GAAGJ,sBAAsBC,MAAMC,cAAc,EAAE,CAAC;AACzD;AAEA;;CAEC,GACD,OAAO,MAAMG,QAGT,CAAC,EACHJ,OAAOF,kBAAkB,EACzBG,eAAe,GAAG,EAClBI,sBAAsB,EACtBC,oBAAoB,EACpBC,oBAAoB,EACpBC,kBAAkB,EAClBC,KAAK,EACLC,SAAS,EACTC,YAAY,OAAO,EACnB,GAAGC,WACQ;IACX,MAAMC,eAAwDrB,MAAMsB,OAAO,CACzE,IAAO,CAAA;YACL,wCAAwCZ,0BAA0BF,MAAMC;YACxE,oDAAoDC,0BAClDF,MACAK;YAEF,kDAAkDH,0BAChDF,MACAM;YAEF,kDAAkDJ,0BAChDF,MACAO;YAEF,gDAAgDL,0BAC9CF,MACAQ;QAEJ,CAAA,GACA;QACEP;QACAI;QACAC;QACAC;QACAC;QACAR;KACD;IAGH,qBACE,KAACL;QACE,GAAGiB,SAAS;QACbD,WAAWA;QACXX,MAAMA;QACNS,OAAOf,WAAWmB,cAAcJ;QAChCC,WAAWjB,WACTiB,WACAb,OAAOkB,IAAI,EACXV,0BAA0BR,OAAOQ,sBAAsB,EACvDC,wBAAwBT,OAAOS,oBAAoB,EACnDC,wBAAwBV,OAAOU,oBAAoB,EACnDC,sBAAsBX,OAAOW,kBAAkB;;AAIvD,EAAE;AAEFJ,MAAMY,WAAW,GAAG;AAEpBZ,MAAMa,KAAK,GAAGrB;AACdQ,MAAMa,KAAK,CAACD,WAAW,GAAG;AAE1BZ,MAAMc,OAAO,GAAGvB,UAAUuB,OAAO;AACjCd,MAAMc,OAAO,CAACF,WAAW,GAAG"}
@@ -43,7 +43,7 @@ const sizeToNumber = (size)=>{
43
43
  };
44
44
  /**
45
45
  * @see https://vkcom.github.io/VKUI/#/ImageBase
46
- */ export const ImageBase = ({ alt, crossOrigin, decoding, loading, referrerPolicy, sizes, src, srcSet, useMap, fetchPriority, getRef, size: sizeProp, width: widthImg, height: heightImg, widthSize, heightSize, style, noBorder = false, fallbackIcon: fallbackIconProp, children, onLoad, onError, withTransparentBackground, objectFit = 'cover', keepAspectRatio = false, ...restProps })=>{
46
+ */ export const ImageBase = ({ alt, crossOrigin, decoding, loading, referrerPolicy, sizes, src, srcSet, useMap, fetchPriority, getRef, size: sizeProp, width: widthImg, height: heightImg, widthSize, heightSize, noBorder = false, fallbackIcon: fallbackIconProp, children, onLoad, onError, withTransparentBackground, objectFit = 'cover', keepAspectRatio = false, ...restProps })=>{
47
47
  const size = sizeProp ?? minOr([
48
48
  sizeToNumber(widthSize),
49
49
  sizeToNumber(heightSize)
@@ -97,10 +97,9 @@ const sizeToNumber = (size)=>{
97
97
  size
98
98
  },
99
99
  children: /*#__PURE__*/ _jsxs(Clickable, {
100
- style: {
100
+ baseStyle: {
101
101
  width,
102
- height,
103
- ...style
102
+ height
104
103
  },
105
104
  baseClassName: classNames(styles.host, loaded && styles.loaded, withTransparentBackground && styles.transparentBackground),
106
105
  ...restProps,