@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
@@ -9,16 +9,13 @@ import styles from "./AspectRatio.module.css";
9
9
 
10
10
  * @since 5.5.0
11
11
  * @see https://vkcom.github.io/VKUI/#/AspectRatio
12
- */ export function AspectRatio({ ratio, mode = 'stretch', style: styleProp, ...props }) {
12
+ */ export function AspectRatio({ ratio, mode = 'stretch', ...props }) {
13
13
  const style = {
14
14
  '--vkui_internal--aspect_ratio': String(ratio)
15
15
  };
16
16
  return /*#__PURE__*/ _jsx(RootComponent, {
17
17
  baseClassName: classNames(styles.host, mode === 'stretch' && styles.modeStretch),
18
- style: {
19
- ...styleProp,
20
- ...style
21
- },
18
+ baseStyle: style,
22
19
  ...props
23
20
  });
24
21
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/AspectRatio/AspectRatio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './AspectRatio.module.css';\n\nexport interface AspectRatioProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n className?: string;\n /**\n * По умолчанию, вложенный контент будет растягиваться и заполнять весь блок.\n */\n mode?: 'stretch' | 'none';\n /**\n * Например 16 / 9, 4 / 3, 1920 / 1080\n */\n ratio: number;\n}\n\n/**\n * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.\n * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.\n\n * @since 5.5.0\n * @see https://vkcom.github.io/VKUI/#/AspectRatio\n */\nexport function AspectRatio({\n ratio,\n mode = 'stretch',\n style: styleProp,\n ...props\n}: AspectRatioProps): JSX.Element {\n const style: React.CSSProperties & CSSCustomProperties = {\n '--vkui_internal--aspect_ratio': String(ratio),\n };\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, mode === 'stretch' && styles.modeStretch)}\n style={{ ...styleProp, ...style }}\n {...props}\n />\n );\n}\n"],"names":["React","classNames","RootComponent","styles","AspectRatio","ratio","mode","style","styleProp","props","String","baseClassName","host","modeStretch"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAiC,oCAAiC;AACxF,OAAOC,YAAY,2BAA2B;AAc9C;;;;;;CAMC,GACD,OAAO,SAASC,YAAY,EAC1BC,KAAK,EACLC,OAAO,SAAS,EAChBC,OAAOC,SAAS,EAChB,GAAGC,OACc;IACjB,MAAMF,QAAmD;QACvD,iCAAiCG,OAAOL;IAC1C;IAEA,qBACE,KAACH;QACCS,eAAeV,WAAWE,OAAOS,IAAI,EAAEN,SAAS,aAAaH,OAAOU,WAAW;QAC/EN,OAAO;YAAE,GAAGC,SAAS;YAAE,GAAGD,KAAK;QAAC;QAC/B,GAAGE,KAAK;;AAGf"}
1
+ {"version":3,"sources":["../../../../src/components/AspectRatio/AspectRatio.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport type { CSSCustomProperties } from '../../types';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport styles from './AspectRatio.module.css';\n\nexport interface AspectRatioProps extends Omit<RootComponentProps<HTMLElement>, 'baseClassName'> {\n className?: string;\n /**\n * По умолчанию, вложенный контент будет растягиваться и заполнять весь блок.\n */\n mode?: 'stretch' | 'none';\n /**\n * Например 16 / 9, 4 / 3, 1920 / 1080\n */\n ratio: number;\n}\n\n/**\n * `AspectRatio` позволяет поддерживать постоянное соотношение ширины и высоты.\n * Его можно использовать для отображения изображений, карт, видео и других медиафайлов.\n\n * @since 5.5.0\n * @see https://vkcom.github.io/VKUI/#/AspectRatio\n */\nexport function AspectRatio({ ratio, mode = 'stretch', ...props }: AspectRatioProps): JSX.Element {\n const style: React.CSSProperties & CSSCustomProperties = {\n '--vkui_internal--aspect_ratio': String(ratio),\n };\n\n return (\n <RootComponent\n baseClassName={classNames(styles.host, mode === 'stretch' && styles.modeStretch)}\n baseStyle={style}\n {...props}\n />\n );\n}\n"],"names":["React","classNames","RootComponent","styles","AspectRatio","ratio","mode","props","style","String","baseClassName","host","modeStretch","baseStyle"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,aAAa,QAAiC,oCAAiC;AACxF,OAAOC,YAAY,2BAA2B;AAc9C;;;;;;CAMC,GACD,OAAO,SAASC,YAAY,EAAEC,KAAK,EAAEC,OAAO,SAAS,EAAE,GAAGC,OAAyB;IACjF,MAAMC,QAAmD;QACvD,iCAAiCC,OAAOJ;IAC1C;IAEA,qBACE,KAACH;QACCQ,eAAeT,WAAWE,OAAOQ,IAAI,EAAEL,SAAS,aAAaH,OAAOS,WAAW;QAC/EC,WAAWL;QACV,GAAGD,KAAK;;AAGf"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { classNames } from "@vkontakte/vkjs";
3
3
  import { ImageBase } from "../ImageBase/ImageBase.js";
4
+ import { ImageBaseOverlay } from "../ImageBase/ImageBaseOverlay/ImageBaseOverlay.js";
4
5
  import { AvatarBadge } from "./AvatarBadge/AvatarBadge.js";
5
6
  import { AvatarBadgeWithPreset } from "./AvatarBadge/AvatarBadgeWithPreset.js";
6
7
  import { getInitialsFontSize } from "./helpers.js";
@@ -48,7 +49,7 @@ Avatar.Badge = AvatarBadge;
48
49
  Avatar.Badge.displayName = 'Avatar.Badge';
49
50
  Avatar.BadgeWithPreset = AvatarBadgeWithPreset;
50
51
  Avatar.BadgeWithPreset.displayName = 'Avatar.BadgeWithPreset';
51
- Avatar.Overlay = ImageBase.Overlay;
52
+ Avatar.Overlay = ImageBaseOverlay;
52
53
  Avatar.Overlay.displayName = 'Avatar.Overlay';
53
54
  Avatar.getInitialsFontSize = getInitialsFontSize;
54
55
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseOverlayProps, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport { AvatarBadge, type AvatarBadgeProps } from './AvatarBadge/AvatarBadge';\nimport {\n AvatarBadgeWithPreset,\n type AvatarBadgeWithPresetProps,\n} from './AvatarBadge/AvatarBadgeWithPreset';\nimport { getInitialsFontSize } from './helpers';\nimport styles from './Avatar.module.css';\n\nexport type {\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n ImageBaseOverlayProps as AvatarOverlayProps,\n};\n\nconst AVATAR_DEFAULT_SIZE = 48;\n\nconst COLORS_NUMBER_TO_TEXT_MAP = {\n 1: 'red',\n 2: 'orange',\n 3: 'yellow',\n 4: 'green',\n 5: 'l-blue',\n 6: 'violet',\n} as const;\n\n/**\n * Градиенты, которые можно использовать в алгоритме поиска градиентов по числовому идентификатору пользователя.\n * @example user.id % 6 + 1\n */\nexport type InitialsAvatarNumberGradients = keyof typeof COLORS_NUMBER_TO_TEXT_MAP;\n\nexport type InitialsAvatarTextGradients =\n | (typeof COLORS_NUMBER_TO_TEXT_MAP)[InitialsAvatarNumberGradients]\n | 'blue';\n\nconst gradientStyles = {\n 'red': styles.gradientRed,\n 'orange': styles.gradientOrange,\n 'yellow': styles.gradientYellow,\n 'green': styles.gradientGreen,\n 'blue': styles.gradientBlue,\n 'l-blue': styles.gradientLBlue,\n 'violet': styles.gradientViolet,\n};\n\nexport interface AvatarProps extends Omit<ImageBaseProps, 'widthSize' | 'heightSize'> {\n /**\n * Инициалы пользователя.\n *\n * > Note: Если аватарка не прогрузится, то пользователь увидит инициалы.\n *\n * > ⚠️ Перебивает `fallbackIcon`.\n */\n initials?: string;\n /**\n * Задаёт градиент для фона.\n *\n * Если передано число, то оно будет сконвертировано в строчное представление цвета по следующей схеме:\n *\n * 1: 'red'\n * 2: 'orange'\n * 3: 'yellow'\n * 4: 'green'\n * 5: 'l-blue'\n * 6: 'violet'\n *\n * > Если необходимо задать свой градиент, то используйте значение `\"custom\"` и определите цвет градиента либо через\n * > свой класс в `className`, либо через `style={{ backgroundImage: \"...\" }}`.\n */\n gradientColor?: InitialsAvatarNumberGradients | InitialsAvatarTextGradients | 'custom';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Avatar\n */\nexport const Avatar: React.FC<AvatarProps> & {\n Badge: typeof AvatarBadge;\n BadgeWithPreset: typeof AvatarBadgeWithPreset;\n Overlay: typeof ImageBase.Overlay;\n getInitialsFontSize: typeof getInitialsFontSize;\n} = ({\n size = AVATAR_DEFAULT_SIZE,\n className,\n gradientColor,\n initials,\n fallbackIcon: fallbackIconProp,\n children,\n ...restProps\n}: AvatarProps) => {\n const gradientName =\n typeof gradientColor === 'number' ? COLORS_NUMBER_TO_TEXT_MAP[gradientColor] : gradientColor;\n const isGradientNotCustom = gradientName && gradientName !== 'custom';\n\n const fallbackIcon = initials ? (\n <div\n className={styles.initials}\n style={{\n fontSize: getInitialsFontSize(size),\n }}\n >\n {initials}\n </div>\n ) : (\n fallbackIconProp\n );\n\n return (\n <ImageBase\n {...restProps}\n size={size}\n fallbackIcon={fallbackIcon}\n className={classNames(\n styles.host,\n gradientName && styles.hasGradient,\n isGradientNotCustom && gradientStyles[gradientName],\n className,\n )}\n >\n {children}\n </ImageBase>\n );\n};\n\nAvatar.displayName = 'Avatar';\n\nAvatar.Badge = AvatarBadge;\nAvatar.Badge.displayName = 'Avatar.Badge';\n\nAvatar.BadgeWithPreset = AvatarBadgeWithPreset;\nAvatar.BadgeWithPreset.displayName = 'Avatar.BadgeWithPreset';\n\nAvatar.Overlay = ImageBase.Overlay;\nAvatar.Overlay.displayName = 'Avatar.Overlay';\n\nAvatar.getInitialsFontSize = getInitialsFontSize;\n"],"names":["classNames","ImageBase","AvatarBadge","AvatarBadgeWithPreset","getInitialsFontSize","styles","AVATAR_DEFAULT_SIZE","COLORS_NUMBER_TO_TEXT_MAP","gradientStyles","gradientRed","gradientOrange","gradientYellow","gradientGreen","gradientBlue","gradientLBlue","gradientViolet","Avatar","size","className","gradientColor","initials","fallbackIcon","fallbackIconProp","children","restProps","gradientName","isGradientNotCustom","div","style","fontSize","host","hasGradient","displayName","Badge","BadgeWithPreset","Overlay"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,QAAyD,4BAAyB;AACpG,SAASC,WAAW,QAA+B,+BAA4B;AAC/E,SACEC,qBAAqB,QAEhB,yCAAsC;AAC7C,SAASC,mBAAmB,QAAQ,eAAY;AAChD,OAAOC,YAAY,sBAAsB;AAQzC,MAAMC,sBAAsB;AAE5B,MAAMC,4BAA4B;IAChC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAYA,MAAMC,iBAAiB;IACrB,OAAOH,OAAOI,WAAW;IACzB,UAAUJ,OAAOK,cAAc;IAC/B,UAAUL,OAAOM,cAAc;IAC/B,SAASN,OAAOO,aAAa;IAC7B,QAAQP,OAAOQ,YAAY;IAC3B,UAAUR,OAAOS,aAAa;IAC9B,UAAUT,OAAOU,cAAc;AACjC;AA6BA;;CAEC,GACD,OAAO,MAAMC,SAKT,CAAC,EACHC,OAAOX,mBAAmB,EAC1BY,SAAS,EACTC,aAAa,EACbC,QAAQ,EACRC,cAAcC,gBAAgB,EAC9BC,QAAQ,EACR,GAAGC,WACS;IACZ,MAAMC,eACJ,OAAON,kBAAkB,WAAWZ,yBAAyB,CAACY,cAAc,GAAGA;IACjF,MAAMO,sBAAsBD,gBAAgBA,iBAAiB;IAE7D,MAAMJ,eAAeD,yBACnB,KAACO;QACCT,WAAWb,OAAOe,QAAQ;QAC1BQ,OAAO;YACLC,UAAUzB,oBAAoBa;QAChC;kBAECG;SAGHE;IAGF,qBACE,KAACrB;QACE,GAAGuB,SAAS;QACbP,MAAMA;QACNI,cAAcA;QACdH,WAAWlB,WACTK,OAAOyB,IAAI,EACXL,gBAAgBpB,OAAO0B,WAAW,EAClCL,uBAAuBlB,cAAc,CAACiB,aAAa,EACnDP;kBAGDK;;AAGP,EAAE;AAEFP,OAAOgB,WAAW,GAAG;AAErBhB,OAAOiB,KAAK,GAAG/B;AACfc,OAAOiB,KAAK,CAACD,WAAW,GAAG;AAE3BhB,OAAOkB,eAAe,GAAG/B;AACzBa,OAAOkB,eAAe,CAACF,WAAW,GAAG;AAErChB,OAAOmB,OAAO,GAAGlC,UAAUkC,OAAO;AAClCnB,OAAOmB,OAAO,CAACH,WAAW,GAAG;AAE7BhB,OAAOZ,mBAAmB,GAAGA"}
1
+ {"version":3,"sources":["../../../../src/components/Avatar/Avatar.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { ImageBase, type ImageBaseProps } from '../ImageBase/ImageBase';\nimport {\n ImageBaseOverlay,\n type ImageBaseOverlayProps,\n} from '../ImageBase/ImageBaseOverlay/ImageBaseOverlay';\nimport { AvatarBadge, type AvatarBadgeProps } from './AvatarBadge/AvatarBadge';\nimport {\n AvatarBadgeWithPreset,\n type AvatarBadgeWithPresetProps,\n} from './AvatarBadge/AvatarBadgeWithPreset';\nimport { getInitialsFontSize } from './helpers';\nimport styles from './Avatar.module.css';\n\nexport type {\n AvatarBadgeProps,\n AvatarBadgeWithPresetProps,\n ImageBaseOverlayProps as AvatarOverlayProps,\n};\n\nconst AVATAR_DEFAULT_SIZE = 48;\n\nconst COLORS_NUMBER_TO_TEXT_MAP = {\n 1: 'red',\n 2: 'orange',\n 3: 'yellow',\n 4: 'green',\n 5: 'l-blue',\n 6: 'violet',\n} as const;\n\n/**\n * Градиенты, которые можно использовать в алгоритме поиска градиентов по числовому идентификатору пользователя.\n * @example user.id % 6 + 1\n */\nexport type InitialsAvatarNumberGradients = keyof typeof COLORS_NUMBER_TO_TEXT_MAP;\n\nexport type InitialsAvatarTextGradients =\n | (typeof COLORS_NUMBER_TO_TEXT_MAP)[InitialsAvatarNumberGradients]\n | 'blue';\n\nconst gradientStyles = {\n 'red': styles.gradientRed,\n 'orange': styles.gradientOrange,\n 'yellow': styles.gradientYellow,\n 'green': styles.gradientGreen,\n 'blue': styles.gradientBlue,\n 'l-blue': styles.gradientLBlue,\n 'violet': styles.gradientViolet,\n};\n\nexport interface AvatarProps extends Omit<ImageBaseProps, 'widthSize' | 'heightSize'> {\n /**\n * Инициалы пользователя.\n *\n * > Note: Если аватарка не прогрузится, то пользователь увидит инициалы.\n *\n * > ⚠️ Перебивает `fallbackIcon`.\n */\n initials?: string;\n /**\n * Задаёт градиент для фона.\n *\n * Если передано число, то оно будет сконвертировано в строчное представление цвета по следующей схеме:\n *\n * 1: 'red'\n * 2: 'orange'\n * 3: 'yellow'\n * 4: 'green'\n * 5: 'l-blue'\n * 6: 'violet'\n *\n * > Если необходимо задать свой градиент, то используйте значение `\"custom\"` и определите цвет градиента либо через\n * > свой класс в `className`, либо через `style={{ backgroundImage: \"...\" }}`.\n */\n gradientColor?: InitialsAvatarNumberGradients | InitialsAvatarTextGradients | 'custom';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Avatar\n */\nexport const Avatar: React.FC<AvatarProps> & {\n Badge: typeof AvatarBadge;\n BadgeWithPreset: typeof AvatarBadgeWithPreset;\n Overlay: typeof ImageBase.Overlay;\n getInitialsFontSize: typeof getInitialsFontSize;\n} = ({\n size = AVATAR_DEFAULT_SIZE,\n className,\n gradientColor,\n initials,\n fallbackIcon: fallbackIconProp,\n children,\n ...restProps\n}: AvatarProps) => {\n const gradientName =\n typeof gradientColor === 'number' ? COLORS_NUMBER_TO_TEXT_MAP[gradientColor] : gradientColor;\n const isGradientNotCustom = gradientName && gradientName !== 'custom';\n\n const fallbackIcon = initials ? (\n <div\n className={styles.initials}\n style={{\n fontSize: getInitialsFontSize(size),\n }}\n >\n {initials}\n </div>\n ) : (\n fallbackIconProp\n );\n\n return (\n <ImageBase\n {...restProps}\n size={size}\n fallbackIcon={fallbackIcon}\n className={classNames(\n styles.host,\n gradientName && styles.hasGradient,\n isGradientNotCustom && gradientStyles[gradientName],\n className,\n )}\n >\n {children}\n </ImageBase>\n );\n};\n\nAvatar.displayName = 'Avatar';\n\nAvatar.Badge = AvatarBadge;\nAvatar.Badge.displayName = 'Avatar.Badge';\n\nAvatar.BadgeWithPreset = AvatarBadgeWithPreset;\nAvatar.BadgeWithPreset.displayName = 'Avatar.BadgeWithPreset';\n\nAvatar.Overlay = ImageBaseOverlay;\nAvatar.Overlay.displayName = 'Avatar.Overlay';\n\nAvatar.getInitialsFontSize = getInitialsFontSize;\n"],"names":["classNames","ImageBase","ImageBaseOverlay","AvatarBadge","AvatarBadgeWithPreset","getInitialsFontSize","styles","AVATAR_DEFAULT_SIZE","COLORS_NUMBER_TO_TEXT_MAP","gradientStyles","gradientRed","gradientOrange","gradientYellow","gradientGreen","gradientBlue","gradientLBlue","gradientViolet","Avatar","size","className","gradientColor","initials","fallbackIcon","fallbackIconProp","children","restProps","gradientName","isGradientNotCustom","div","style","fontSize","host","hasGradient","displayName","Badge","BadgeWithPreset","Overlay"],"mappings":";AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,SAAS,QAA6B,4BAAyB;AACxE,SACEC,gBAAgB,QAEX,oDAAiD;AACxD,SAASC,WAAW,QAA+B,+BAA4B;AAC/E,SACEC,qBAAqB,QAEhB,yCAAsC;AAC7C,SAASC,mBAAmB,QAAQ,eAAY;AAChD,OAAOC,YAAY,sBAAsB;AAQzC,MAAMC,sBAAsB;AAE5B,MAAMC,4BAA4B;IAChC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;AACL;AAYA,MAAMC,iBAAiB;IACrB,OAAOH,OAAOI,WAAW;IACzB,UAAUJ,OAAOK,cAAc;IAC/B,UAAUL,OAAOM,cAAc;IAC/B,SAASN,OAAOO,aAAa;IAC7B,QAAQP,OAAOQ,YAAY;IAC3B,UAAUR,OAAOS,aAAa;IAC9B,UAAUT,OAAOU,cAAc;AACjC;AA6BA;;CAEC,GACD,OAAO,MAAMC,SAKT,CAAC,EACHC,OAAOX,mBAAmB,EAC1BY,SAAS,EACTC,aAAa,EACbC,QAAQ,EACRC,cAAcC,gBAAgB,EAC9BC,QAAQ,EACR,GAAGC,WACS;IACZ,MAAMC,eACJ,OAAON,kBAAkB,WAAWZ,yBAAyB,CAACY,cAAc,GAAGA;IACjF,MAAMO,sBAAsBD,gBAAgBA,iBAAiB;IAE7D,MAAMJ,eAAeD,yBACnB,KAACO;QACCT,WAAWb,OAAOe,QAAQ;QAC1BQ,OAAO;YACLC,UAAUzB,oBAAoBa;QAChC;kBAECG;SAGHE;IAGF,qBACE,KAACtB;QACE,GAAGwB,SAAS;QACbP,MAAMA;QACNI,cAAcA;QACdH,WAAWnB,WACTM,OAAOyB,IAAI,EACXL,gBAAgBpB,OAAO0B,WAAW,EAClCL,uBAAuBlB,cAAc,CAACiB,aAAa,EACnDP;kBAGDK;;AAGP,EAAE;AAEFP,OAAOgB,WAAW,GAAG;AAErBhB,OAAOiB,KAAK,GAAG/B;AACfc,OAAOiB,KAAK,CAACD,WAAW,GAAG;AAE3BhB,OAAOkB,eAAe,GAAG/B;AACzBa,OAAOkB,eAAe,CAACF,WAAW,GAAG;AAErChB,OAAOmB,OAAO,GAAGlC;AACjBe,OAAOmB,OAAO,CAACH,WAAW,GAAG;AAE7BhB,OAAOZ,mBAAmB,GAAGA"}
@@ -13,7 +13,7 @@ import { Title } from "../Typography/Title/Title.js";
13
13
  import styles from "./Banner.module.css";
14
14
  /**
15
15
  * @see https://vkcom.github.io/VKUI/#/Banner
16
- */ export const Banner = ({ mode = 'tint', imageTheme = 'dark', size = 's', before, after: afterProp, title, subtitle, extraSubtitle, children, background, actions, onDismiss, dismissLabel = 'Скрыть', className, Component, ...restProps })=>{
16
+ */ export const Banner = ({ mode = 'tint', imageTheme = 'dark', size = 's', before, after: afterProp, title, subtitle, extraSubtitle, children, background, actions, onDismiss, dismissLabel = 'Скрыть', Component, ...restProps })=>{
17
17
  const platform = usePlatform();
18
18
  const HeaderTypography = size === 'm' ? Title : Headline;
19
19
  const SubheadTypography = size === 'm' ? Text : Subhead;
@@ -77,7 +77,7 @@ import styles from "./Banner.module.css";
77
77
  return /*#__PURE__*/ _jsxs(Tappable, {
78
78
  Component: Component || (!isClickable ? 'section' : undefined),
79
79
  activeMode: platform === 'ios' ? 'opacity' : 'background',
80
- baseClassName: classNames(styles.host, platform === 'ios' && styles.ios, mode === 'image' && styles.modeImage, size === 'm' && styles.sizeM, mode === 'image' && imageTheme === 'dark' && styles.inverted, className),
80
+ baseClassName: classNames(styles.host, platform === 'ios' && styles.ios, mode === 'image' && styles.modeImage, size === 'm' && styles.sizeM, mode === 'image' && imageTheme === 'dark' && styles.inverted),
81
81
  ...restProps,
82
82
  children: [
83
83
  content,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon24Cancel, Icon24Chevron, Icon24Dismiss, Icon24DismissDark } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Banner.module.css';\n\nexport interface BannerProps extends Omit<TappableProps, 'title' | 'size'> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `chevron` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n after?: 'dismiss' | 'chevron' | React.ReactNode;\n /**\n * Срабатывает при клике на иконку крестика при `after=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок.\n */\n title?: React.ReactNode;\n /**\n * Подзаголовок.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительный подзаголовок баннера.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button).\n *\n * - В режиме `tint` или `image` со светлым фоном используйте только с параметрами:\n * - `mode=\"primary\"`\n * - `mode=\"secondary\"`\n * - В режиме `image` с тёмным фоном используйте с параметрами:\n * - `appearance=\"overlay\"`.\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"m\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Banner\n */\nexport const Banner = ({\n mode = 'tint',\n imageTheme = 'dark',\n size = 's',\n before,\n after: afterProp,\n title,\n subtitle,\n extraSubtitle,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel = 'Скрыть',\n className,\n Component,\n ...restProps\n}: BannerProps): React.ReactNode => {\n const platform = usePlatform();\n\n const HeaderTypography = size === 'm' ? Title : Headline;\n const SubheadTypography = size === 'm' ? Text : Subhead;\n\n const IconDismissIOS = mode === 'image' ? Icon24DismissDark : Icon24Dismiss;\n\n const content = (\n <>\n {mode === 'image' && background && (\n <div aria-hidden className={styles.bg}>\n {background}\n </div>\n )}\n\n {before && <div className={styles.before}>{before}</div>}\n\n <div className={styles.content}>\n {hasReactNode(title) && (\n <HeaderTypography Component=\"div\" weight=\"2\" level={size === 'm' ? '2' : '1'}>\n {title}\n </HeaderTypography>\n )}\n {hasReactNode(subtitle) && (\n <SubheadTypography Component=\"div\" className={styles.subtitle}>\n {subtitle}\n </SubheadTypography>\n )}\n {hasReactNode(extraSubtitle) && (\n <Text Component=\"div\" className={styles.extraSubtitle}>\n {extraSubtitle}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div className={styles.actions}>{actions}</div>\n )}\n </div>\n </>\n );\n\n const afterMap: Record<string, React.ReactNode> = {\n chevron: <Icon24Chevron className={styles.chevron} />,\n dismiss: (\n <IconButton\n label={dismissLabel}\n className={styles.dismiss}\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {platform === 'ios' ? <IconDismissIOS /> : <Icon24Cancel />}\n </IconButton>\n ),\n };\n\n const after = afterProp && (\n <div className={styles.after}>\n {typeof afterProp === 'string' ? afterMap[afterProp] : afterProp}\n </div>\n );\n\n const isClickable = restProps.onClick || restProps.onClickCapture || restProps.href;\n\n return (\n <Tappable\n Component={Component || (!isClickable ? 'section' : undefined)}\n activeMode={platform === 'ios' ? 'opacity' : 'background'}\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n mode === 'image' && styles.modeImage,\n size === 'm' && styles.sizeM,\n mode === 'image' && imageTheme === 'dark' && styles.inverted,\n className,\n )}\n {...restProps}\n >\n {content}\n {after}\n </Tappable>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24Dismiss","Icon24DismissDark","classNames","hasReactNode","usePlatform","IconButton","Tappable","Headline","Subhead","Text","Title","styles","Banner","mode","imageTheme","size","before","after","afterProp","title","subtitle","extraSubtitle","children","background","actions","onDismiss","dismissLabel","className","Component","restProps","platform","HeaderTypography","SubheadTypography","IconDismissIOS","content","div","aria-hidden","bg","weight","level","Children","count","afterMap","chevron","dismiss","label","onClick","hoverMode","hasActive","isClickable","onClickCapture","href","undefined","activeMode","baseClassName","host","ios","modeImage","sizeM","inverted"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,EAAEC,aAAa,EAAEC,aAAa,EAAEC,iBAAiB,QAAQ,mBAAmB;AACjG,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,SAASC,KAAK,QAAQ,+BAA4B;AAClD,OAAOC,YAAY,sBAAsB;AAqEzC;;CAEC,GACD,OAAO,MAAMC,SAAS,CAAC,EACrBC,OAAO,MAAM,EACbC,aAAa,MAAM,EACnBC,OAAO,GAAG,EACVC,MAAM,EACNC,OAAOC,SAAS,EAChBC,KAAK,EACLC,QAAQ,EACRC,aAAa,EACbC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,eAAe,QAAQ,EACvBC,SAAS,EACTC,SAAS,EACT,GAAGC,WACS;IACZ,MAAMC,WAAW1B;IAEjB,MAAM2B,mBAAmBhB,SAAS,MAAML,QAAQH;IAChD,MAAMyB,oBAAoBjB,SAAS,MAAMN,OAAOD;IAEhD,MAAMyB,iBAAiBpB,SAAS,UAAUZ,oBAAoBD;IAE9D,MAAMkC,wBACJ;;YACGrB,SAAS,WAAWU,4BACnB,KAACY;gBAAIC,aAAW;gBAACT,WAAWhB,OAAO0B,EAAE;0BAClCd;;YAIJP,wBAAU,KAACmB;gBAAIR,WAAWhB,OAAOK,MAAM;0BAAGA;;0BAE3C,MAACmB;gBAAIR,WAAWhB,OAAOuB,OAAO;;oBAC3B/B,aAAagB,wBACZ,KAACY;wBAAiBH,WAAU;wBAAMU,QAAO;wBAAIC,OAAOxB,SAAS,MAAM,MAAM;kCACtEI;;oBAGJhB,aAAaiB,2BACZ,KAACY;wBAAkBJ,WAAU;wBAAMD,WAAWhB,OAAOS,QAAQ;kCAC1DA;;oBAGJjB,aAAakB,gCACZ,KAACZ;wBAAKmB,WAAU;wBAAMD,WAAWhB,OAAOU,aAAa;kCAClDA;;oBAGJlB,aAAaqB,YAAY3B,MAAM2C,QAAQ,CAACC,KAAK,CAACjB,WAAW,mBACxD,KAACW;wBAAIR,WAAWhB,OAAOa,OAAO;kCAAGA;;;;;;IAMzC,MAAMkB,WAA4C;QAChDC,uBAAS,KAAC5C;YAAc4B,WAAWhB,OAAOgC,OAAO;;QACjDC,uBACE,KAACvC;YACCwC,OAAOnB;YACPC,WAAWhB,OAAOiC,OAAO;YACzBE,SAASrB;YACTsB,WAAU;YACVC,WAAW;sBAEVlB,aAAa,sBAAQ,KAACG,oCAAoB,KAACnC;;IAGlD;IAEA,MAAMmB,QAAQC,2BACZ,KAACiB;QAAIR,WAAWhB,OAAOM,KAAK;kBACzB,OAAOC,cAAc,WAAWwB,QAAQ,CAACxB,UAAU,GAAGA;;IAI3D,MAAM+B,cAAcpB,UAAUiB,OAAO,IAAIjB,UAAUqB,cAAc,IAAIrB,UAAUsB,IAAI;IAEnF,qBACE,MAAC7C;QACCsB,WAAWA,aAAc,CAAA,CAACqB,cAAc,YAAYG,SAAQ;QAC5DC,YAAYvB,aAAa,QAAQ,YAAY;QAC7CwB,eAAepD,WACbS,OAAO4C,IAAI,EACXzB,aAAa,SAASnB,OAAO6C,GAAG,EAChC3C,SAAS,WAAWF,OAAO8C,SAAS,EACpC1C,SAAS,OAAOJ,OAAO+C,KAAK,EAC5B7C,SAAS,WAAWC,eAAe,UAAUH,OAAOgD,QAAQ,EAC5DhC;QAED,GAAGE,SAAS;;YAEZK;YACAjB;;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Banner/Banner.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Icon24Cancel, Icon24Chevron, Icon24Dismiss, Icon24DismissDark } from '@vkontakte/icons';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { IconButton } from '../IconButton/IconButton';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Subhead } from '../Typography/Subhead/Subhead';\nimport { Text } from '../Typography/Text/Text';\nimport { Title } from '../Typography/Title/Title';\nimport styles from './Banner.module.css';\n\nexport interface BannerProps extends Omit<TappableProps, 'title' | 'size'> {\n /**\n * Тип баннера.\n */\n mode?: 'tint' | 'image';\n size?: 's' | 'm';\n /**\n * Тип действия в правой части баннера.\n *\n * - `dismiss` – отображается иконка крестика, при клике на неё сработает свойство `onDismiss`.\n * - `chevron` – отображается иконка шеврона, которая подразумевает, что при клике на баннер можно куда-то перейти.\n */\n after?: 'dismiss' | 'chevron' | React.ReactNode;\n /**\n * Срабатывает при клике на иконку крестика при `after=\"dismiss\"`.\n */\n onDismiss?: React.MouseEventHandler<HTMLButtonElement>;\n /**\n * Текст кнопки закрытия. Делает ее доступной для ассистивных технологий\n */\n dismissLabel?: string;\n /**\n * Содержимое, отображаемое в левой части баннера.\n */\n before?: React.ReactNode;\n /**\n * Заголовок.\n */\n title?: React.ReactNode;\n /**\n * Подзаголовок.\n */\n subtitle?: React.ReactNode;\n /**\n * Дополнительный подзаголовок баннера.\n */\n extraSubtitle?: React.ReactNode;\n /**\n * При использовании `mode=\"image\"`.\n *\n * - `light` – в качестве фона используется светлое изображение, цвет текста в баннере будет тёмным.\n * - `dark` – в качестве фона используется тёмное изображение, цвет текста будет светлым.\n */\n imageTheme?: 'light' | 'dark';\n /**\n * При использовании `mode=\"image\"`.\n *\n * Элемент, который нужно стилизовать цветом и/или фоном. Этот элемент будет растянут на 100% ширины и высоты баннера.\n */\n background?: React.ReactNode;\n /**\n * Кнопки-действия. Принимает [`Button`](https://vkcom.github.io/VKUI/#/Button).\n *\n * - В режиме `tint` или `image` со светлым фоном используйте только с параметрами:\n * - `mode=\"primary\"`\n * - `mode=\"secondary\"`\n * - В режиме `image` с тёмным фоном используйте с параметрами:\n * - `appearance=\"overlay\"`.\n *\n * Для набора кнопок используйте [`ButtonGroup`](https://vkcom.github.io/VKUI/#/ButtonGroup) с параметрами:\n *\n * - `gap=\"m\" mode=\"horizontal\" stretched`\n * - `gap=\"m\" mode=\"vertical\" stretched`\n */\n actions?: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Banner\n */\nexport const Banner = ({\n mode = 'tint',\n imageTheme = 'dark',\n size = 's',\n before,\n after: afterProp,\n title,\n subtitle,\n extraSubtitle,\n children,\n background,\n actions,\n onDismiss,\n dismissLabel = 'Скрыть',\n Component,\n ...restProps\n}: BannerProps): React.ReactNode => {\n const platform = usePlatform();\n\n const HeaderTypography = size === 'm' ? Title : Headline;\n const SubheadTypography = size === 'm' ? Text : Subhead;\n\n const IconDismissIOS = mode === 'image' ? Icon24DismissDark : Icon24Dismiss;\n\n const content = (\n <>\n {mode === 'image' && background && (\n <div aria-hidden className={styles.bg}>\n {background}\n </div>\n )}\n\n {before && <div className={styles.before}>{before}</div>}\n\n <div className={styles.content}>\n {hasReactNode(title) && (\n <HeaderTypography Component=\"div\" weight=\"2\" level={size === 'm' ? '2' : '1'}>\n {title}\n </HeaderTypography>\n )}\n {hasReactNode(subtitle) && (\n <SubheadTypography Component=\"div\" className={styles.subtitle}>\n {subtitle}\n </SubheadTypography>\n )}\n {hasReactNode(extraSubtitle) && (\n <Text Component=\"div\" className={styles.extraSubtitle}>\n {extraSubtitle}\n </Text>\n )}\n {hasReactNode(actions) && React.Children.count(actions) > 0 && (\n <div className={styles.actions}>{actions}</div>\n )}\n </div>\n </>\n );\n\n const afterMap: Record<string, React.ReactNode> = {\n chevron: <Icon24Chevron className={styles.chevron} />,\n dismiss: (\n <IconButton\n label={dismissLabel}\n className={styles.dismiss}\n onClick={onDismiss}\n hoverMode=\"opacity\"\n hasActive={false}\n >\n {platform === 'ios' ? <IconDismissIOS /> : <Icon24Cancel />}\n </IconButton>\n ),\n };\n\n const after = afterProp && (\n <div className={styles.after}>\n {typeof afterProp === 'string' ? afterMap[afterProp] : afterProp}\n </div>\n );\n\n const isClickable = restProps.onClick || restProps.onClickCapture || restProps.href;\n\n return (\n <Tappable\n Component={Component || (!isClickable ? 'section' : undefined)}\n activeMode={platform === 'ios' ? 'opacity' : 'background'}\n baseClassName={classNames(\n styles.host,\n platform === 'ios' && styles.ios,\n mode === 'image' && styles.modeImage,\n size === 'm' && styles.sizeM,\n mode === 'image' && imageTheme === 'dark' && styles.inverted,\n )}\n {...restProps}\n >\n {content}\n {after}\n </Tappable>\n );\n};\n"],"names":["React","Icon24Cancel","Icon24Chevron","Icon24Dismiss","Icon24DismissDark","classNames","hasReactNode","usePlatform","IconButton","Tappable","Headline","Subhead","Text","Title","styles","Banner","mode","imageTheme","size","before","after","afterProp","title","subtitle","extraSubtitle","children","background","actions","onDismiss","dismissLabel","Component","restProps","platform","HeaderTypography","SubheadTypography","IconDismissIOS","content","div","aria-hidden","className","bg","weight","level","Children","count","afterMap","chevron","dismiss","label","onClick","hoverMode","hasActive","isClickable","onClickCapture","href","undefined","activeMode","baseClassName","host","ios","modeImage","sizeM","inverted"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,YAAY,EAAEC,aAAa,EAAEC,aAAa,EAAEC,iBAAiB,QAAQ,mBAAmB;AACjG,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,WAAW,QAAQ,6BAA0B;AACtD,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,QAAQ,QAA4B,0BAAuB;AACpE,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,IAAI,QAAQ,6BAA0B;AAC/C,SAASC,KAAK,QAAQ,+BAA4B;AAClD,OAAOC,YAAY,sBAAsB;AAqEzC;;CAEC,GACD,OAAO,MAAMC,SAAS,CAAC,EACrBC,OAAO,MAAM,EACbC,aAAa,MAAM,EACnBC,OAAO,GAAG,EACVC,MAAM,EACNC,OAAOC,SAAS,EAChBC,KAAK,EACLC,QAAQ,EACRC,aAAa,EACbC,QAAQ,EACRC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,eAAe,QAAQ,EACvBC,SAAS,EACT,GAAGC,WACS;IACZ,MAAMC,WAAWzB;IAEjB,MAAM0B,mBAAmBf,SAAS,MAAML,QAAQH;IAChD,MAAMwB,oBAAoBhB,SAAS,MAAMN,OAAOD;IAEhD,MAAMwB,iBAAiBnB,SAAS,UAAUZ,oBAAoBD;IAE9D,MAAMiC,wBACJ;;YACGpB,SAAS,WAAWU,4BACnB,KAACW;gBAAIC,aAAW;gBAACC,WAAWzB,OAAO0B,EAAE;0BAClCd;;YAIJP,wBAAU,KAACkB;gBAAIE,WAAWzB,OAAOK,MAAM;0BAAGA;;0BAE3C,MAACkB;gBAAIE,WAAWzB,OAAOsB,OAAO;;oBAC3B9B,aAAagB,wBACZ,KAACW;wBAAiBH,WAAU;wBAAMW,QAAO;wBAAIC,OAAOxB,SAAS,MAAM,MAAM;kCACtEI;;oBAGJhB,aAAaiB,2BACZ,KAACW;wBAAkBJ,WAAU;wBAAMS,WAAWzB,OAAOS,QAAQ;kCAC1DA;;oBAGJjB,aAAakB,gCACZ,KAACZ;wBAAKkB,WAAU;wBAAMS,WAAWzB,OAAOU,aAAa;kCAClDA;;oBAGJlB,aAAaqB,YAAY3B,MAAM2C,QAAQ,CAACC,KAAK,CAACjB,WAAW,mBACxD,KAACU;wBAAIE,WAAWzB,OAAOa,OAAO;kCAAGA;;;;;;IAMzC,MAAMkB,WAA4C;QAChDC,uBAAS,KAAC5C;YAAcqC,WAAWzB,OAAOgC,OAAO;;QACjDC,uBACE,KAACvC;YACCwC,OAAOnB;YACPU,WAAWzB,OAAOiC,OAAO;YACzBE,SAASrB;YACTsB,WAAU;YACVC,WAAW;sBAEVnB,aAAa,sBAAQ,KAACG,oCAAoB,KAAClC;;IAGlD;IAEA,MAAMmB,QAAQC,2BACZ,KAACgB;QAAIE,WAAWzB,OAAOM,KAAK;kBACzB,OAAOC,cAAc,WAAWwB,QAAQ,CAACxB,UAAU,GAAGA;;IAI3D,MAAM+B,cAAcrB,UAAUkB,OAAO,IAAIlB,UAAUsB,cAAc,IAAItB,UAAUuB,IAAI;IAEnF,qBACE,MAAC7C;QACCqB,WAAWA,aAAc,CAAA,CAACsB,cAAc,YAAYG,SAAQ;QAC5DC,YAAYxB,aAAa,QAAQ,YAAY;QAC7CyB,eAAepD,WACbS,OAAO4C,IAAI,EACX1B,aAAa,SAASlB,OAAO6C,GAAG,EAChC3C,SAAS,WAAWF,OAAO8C,SAAS,EACpC1C,SAAS,OAAOJ,OAAO+C,KAAK,EAC5B7C,SAAS,WAAWC,eAAe,UAAUH,OAAOgD,QAAQ;QAE7D,GAAG/B,SAAS;;YAEZK;YACAhB;;;AAGP,EAAE"}
@@ -39,7 +39,7 @@ const sizeYClassNames = {
39
39
  };
40
40
  /**
41
41
  * @see https://vkcom.github.io/VKUI/#/Button
42
- */ export const Button = ({ size = 's', mode = 'primary', appearance = 'accent', stretched = false, align = 'center', children, before, after, getRootRef, loading, onClick, className, disableSpinnerAnimation, rounded, disabled, ...restProps })=>{
42
+ */ export const Button = ({ size = 's', mode = 'primary', appearance = 'accent', stretched = false, align = 'center', children, before, after, getRootRef, loading, onClick, disableSpinnerAnimation, rounded, disabled, ...restProps })=>{
43
43
  const hasIconOnly = !children && Boolean(after) !== Boolean(before);
44
44
  const { sizeY = 'none' } = useAdaptivity();
45
45
  const platform = usePlatform();
@@ -51,7 +51,7 @@ const sizeYClassNames = {
51
51
  disabled: loading || disabled,
52
52
  ...restProps,
53
53
  onClick: loading ? undefined : onClick,
54
- className: classNames(className, styles.host, stylesSize[size], stylesMode[mode], stylesAppearance[appearance], align !== 'center' && stylesAlign[align], sizeY !== 'compact' && sizeYClassNames[sizeY], platform === 'ios' && styles.ios, stretched && styles.stretched, hasIconOnly && !stretched && styles.singleIcon, loading && styles.loading, rounded && styles.rounded, disabled && styles.disabled),
54
+ baseClassName: classNames(styles.host, stylesSize[size], stylesMode[mode], stylesAppearance[appearance], align !== 'center' && stylesAlign[align], sizeY !== 'compact' && sizeYClassNames[sizeY], platform === 'ios' && styles.ios, stretched && styles.stretched, hasIconOnly && !stretched && styles.singleIcon, loading && styles.loading, rounded && styles.rounded, disabled && styles.disabled),
55
55
  getRootRef: getRootRef,
56
56
  children: [
57
57
  loading && /*#__PURE__*/ _jsx(Spinner, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasAlign } from '../../types';\nimport { Spinner } from '../Spinner/Spinner';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport '../Tappable/Tappable.module.css';\nimport '../Spinner/Spinner.module.css';\nimport styles from './Button.module.css';\n\nconst stylesSize = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst stylesMode = {\n primary: styles.modePrimary,\n secondary: styles.modeSecondary,\n tertiary: styles.modeTertiary,\n outline: styles.modeOutline,\n link: styles.modeLink,\n};\n\nconst stylesAppearance = {\n 'accent': styles.appearanceAccent,\n 'positive': styles.appearancePositive,\n 'negative': styles.appearanceNegative,\n 'neutral': styles.appearanceNeutral,\n 'overlay': styles.appearanceOverlay,\n 'accent-invariable': styles.appearanceAccentInvariable,\n};\n\nconst stylesAlign = {\n left: styles.alignLeft,\n right: styles.alignRight,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface VKUIButtonProps extends HasAlign {\n mode?: 'primary' | 'secondary' | 'tertiary' | 'outline' | 'link';\n appearance?: 'accent' | 'positive' | 'negative' | 'neutral' | 'overlay' | 'accent-invariable';\n size?: 's' | 'm' | 'l';\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n disableSpinnerAnimation?: boolean;\n rounded?: boolean;\n}\n\nexport interface ButtonProps extends Omit<TappableProps, 'size'>, VKUIButtonProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = ({\n size = 's',\n mode = 'primary',\n appearance = 'accent',\n stretched = false,\n align = 'center',\n children,\n before,\n after,\n getRootRef,\n loading,\n onClick,\n className,\n disableSpinnerAnimation,\n rounded,\n disabled,\n ...restProps\n}: ButtonProps): React.ReactNode => {\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n return (\n <Tappable\n hoverMode={styles.hover}\n activeMode={styles.active}\n Component={restProps.href ? 'a' : 'button'}\n focusVisibleMode=\"outside\"\n disabled={loading || disabled}\n {...restProps}\n onClick={loading ? undefined : onClick}\n className={classNames(\n className,\n styles.host,\n stylesSize[size],\n stylesMode[mode],\n stylesAppearance[appearance],\n align !== 'center' && stylesAlign[align],\n sizeY !== 'compact' && sizeYClassNames[sizeY],\n platform === 'ios' && styles.ios,\n stretched && styles.stretched,\n hasIconOnly && !stretched && styles.singleIcon,\n loading && styles.loading,\n rounded && styles.rounded,\n disabled && styles.disabled,\n )}\n getRootRef={getRootRef}\n >\n {loading && (\n <Spinner\n size=\"s\"\n className={styles.spinner}\n disableAnimation={disableSpinnerAnimation}\n noColor\n />\n )}\n <span className={styles.in}>\n {hasReactNode(before) && (\n <span\n className={styles.before}\n role=\"presentation\"\n data-testid={process.env.NODE_ENV === 'test' ? 'before' : undefined}\n >\n {before}\n </span>\n )}\n {hasReactNode(children) && (\n <span\n className={styles.content}\n data-testid={process.env.NODE_ENV === 'test' ? 'children' : undefined}\n >\n {children}\n </span>\n )}\n {hasReactNode(after) && (\n <span\n className={styles.after}\n role=\"presentation\"\n data-testid={process.env.NODE_ENV === 'test' ? 'after' : undefined}\n >\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","Spinner","Tappable","styles","stylesSize","s","sizeS","m","sizeM","l","sizeL","stylesMode","primary","modePrimary","secondary","modeSecondary","tertiary","modeTertiary","outline","modeOutline","link","modeLink","stylesAppearance","appearanceAccent","appearancePositive","appearanceNegative","appearanceNeutral","appearanceOverlay","appearanceAccentInvariable","stylesAlign","left","alignLeft","right","alignRight","sizeYClassNames","none","sizeYNone","regular","sizeYRegular","Button","size","mode","appearance","stretched","align","children","before","after","getRootRef","loading","onClick","className","disableSpinnerAnimation","rounded","disabled","restProps","hasIconOnly","Boolean","sizeY","platform","hoverMode","hover","activeMode","active","Component","href","focusVisibleMode","undefined","host","ios","singleIcon","spinner","disableAnimation","noColor","span","in","role","data-testid","process","env","NODE_ENV","content"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/Button/Button.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport type { HasAlign } from '../../types';\nimport { Spinner } from '../Spinner/Spinner';\nimport { Tappable, type TappableProps } from '../Tappable/Tappable';\nimport '../Tappable/Tappable.module.css';\nimport '../Spinner/Spinner.module.css';\nimport styles from './Button.module.css';\n\nconst stylesSize = {\n s: styles.sizeS,\n m: styles.sizeM,\n l: styles.sizeL,\n};\n\nconst stylesMode = {\n primary: styles.modePrimary,\n secondary: styles.modeSecondary,\n tertiary: styles.modeTertiary,\n outline: styles.modeOutline,\n link: styles.modeLink,\n};\n\nconst stylesAppearance = {\n 'accent': styles.appearanceAccent,\n 'positive': styles.appearancePositive,\n 'negative': styles.appearanceNegative,\n 'neutral': styles.appearanceNeutral,\n 'overlay': styles.appearanceOverlay,\n 'accent-invariable': styles.appearanceAccentInvariable,\n};\n\nconst stylesAlign = {\n left: styles.alignLeft,\n right: styles.alignRight,\n};\n\nconst sizeYClassNames = {\n none: styles.sizeYNone,\n regular: styles.sizeYRegular,\n};\n\nexport interface VKUIButtonProps extends HasAlign {\n mode?: 'primary' | 'secondary' | 'tertiary' | 'outline' | 'link';\n appearance?: 'accent' | 'positive' | 'negative' | 'neutral' | 'overlay' | 'accent-invariable';\n size?: 's' | 'm' | 'l';\n stretched?: boolean;\n before?: React.ReactNode;\n after?: React.ReactNode;\n loading?: boolean;\n disableSpinnerAnimation?: boolean;\n rounded?: boolean;\n}\n\nexport interface ButtonProps extends Omit<TappableProps, 'size'>, VKUIButtonProps {}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Button\n */\nexport const Button = ({\n size = 's',\n mode = 'primary',\n appearance = 'accent',\n stretched = false,\n align = 'center',\n children,\n before,\n after,\n getRootRef,\n loading,\n onClick,\n disableSpinnerAnimation,\n rounded,\n disabled,\n ...restProps\n}: ButtonProps): React.ReactNode => {\n const hasIconOnly = !children && Boolean(after) !== Boolean(before);\n const { sizeY = 'none' } = useAdaptivity();\n const platform = usePlatform();\n\n return (\n <Tappable\n hoverMode={styles.hover}\n activeMode={styles.active}\n Component={restProps.href ? 'a' : 'button'}\n focusVisibleMode=\"outside\"\n disabled={loading || disabled}\n {...restProps}\n onClick={loading ? undefined : onClick}\n baseClassName={classNames(\n styles.host,\n stylesSize[size],\n stylesMode[mode],\n stylesAppearance[appearance],\n align !== 'center' && stylesAlign[align],\n sizeY !== 'compact' && sizeYClassNames[sizeY],\n platform === 'ios' && styles.ios,\n stretched && styles.stretched,\n hasIconOnly && !stretched && styles.singleIcon,\n loading && styles.loading,\n rounded && styles.rounded,\n disabled && styles.disabled,\n )}\n getRootRef={getRootRef}\n >\n {loading && (\n <Spinner\n size=\"s\"\n className={styles.spinner}\n disableAnimation={disableSpinnerAnimation}\n noColor\n />\n )}\n <span className={styles.in}>\n {hasReactNode(before) && (\n <span\n className={styles.before}\n role=\"presentation\"\n data-testid={process.env.NODE_ENV === 'test' ? 'before' : undefined}\n >\n {before}\n </span>\n )}\n {hasReactNode(children) && (\n <span\n className={styles.content}\n data-testid={process.env.NODE_ENV === 'test' ? 'children' : undefined}\n >\n {children}\n </span>\n )}\n {hasReactNode(after) && (\n <span\n className={styles.after}\n role=\"presentation\"\n data-testid={process.env.NODE_ENV === 'test' ? 'after' : undefined}\n >\n {after}\n </span>\n )}\n </span>\n </Tappable>\n );\n};\n"],"names":["React","classNames","hasReactNode","useAdaptivity","usePlatform","Spinner","Tappable","styles","stylesSize","s","sizeS","m","sizeM","l","sizeL","stylesMode","primary","modePrimary","secondary","modeSecondary","tertiary","modeTertiary","outline","modeOutline","link","modeLink","stylesAppearance","appearanceAccent","appearancePositive","appearanceNegative","appearanceNeutral","appearanceOverlay","appearanceAccentInvariable","stylesAlign","left","alignLeft","right","alignRight","sizeYClassNames","none","sizeYNone","regular","sizeYRegular","Button","size","mode","appearance","stretched","align","children","before","after","getRootRef","loading","onClick","disableSpinnerAnimation","rounded","disabled","restProps","hasIconOnly","Boolean","sizeY","platform","hoverMode","hover","activeMode","active","Component","href","focusVisibleMode","undefined","baseClassName","host","ios","singleIcon","className","spinner","disableAnimation","noColor","span","in","role","data-testid","process","env","NODE_ENV","content"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { useConfigProvider } from "../ConfigProvider/ConfigProviderContext.js";
7
7
  import { Tappable } from "../Tappable/Tappable.js";
8
8
  import { VisuallyHidden } from "../VisuallyHidden/VisuallyHidden.js";
9
9
  import styles from "./CalendarDay.module.css";
10
- export const CalendarDay = /*#__PURE__*/ React.memo(({ day, today, selected, onChange, hidden, disabled, active, selectionStart, selectionEnd, focused, onEnter, onLeave, hinted, hintedSelectionStart, hintedSelectionEnd, sameMonth, size, className, children, renderDayContent, testId, ...restProps })=>{
10
+ export const CalendarDay = /*#__PURE__*/ React.memo(({ day, today, selected, onChange, hidden, disabled, active, selectionStart, selectionEnd, focused, onEnter, onLeave, hinted, hintedSelectionStart, hintedSelectionEnd, sameMonth, size, children, renderDayContent, testId, ...restProps })=>{
11
11
  const { locale } = useConfigProvider();
12
12
  const ref = React.useRef(null);
13
13
  const onClick = React.useCallback(()=>onChange(day), [
@@ -66,7 +66,7 @@ export const CalendarDay = /*#__PURE__*/ React.memo(({ day, today, selected, onC
66
66
  });
67
67
  }
68
68
  return /*#__PURE__*/ _jsx(Tappable, {
69
- className: classNames(styles.host, size === 's' && styles.sizeS, className),
69
+ baseClassName: classNames(styles.host, size === 's' && styles.sizeS),
70
70
  hoverMode: styles.hostHovered,
71
71
  activeMode: styles.hostActivated,
72
72
  hasActive: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ENABLE_KEYBOARD_INPUT_EVENT_NAME } from '../../hooks/useKeyboardInputTracker';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDay.module.css';\n\nexport type CalendarDayElementProps = Omit<\n React.AllHTMLAttributes<HTMLElement>,\n 'onChange' | 'size' | 'disabled' | 'selected'\n>;\n\nexport type CalendarDayTestsProps = {\n testId?: string | ((day: Date) => string);\n};\n\nexport interface CalendarDayProps extends CalendarDayElementProps, CalendarDayTestsProps {\n day: Date;\n today?: boolean;\n selected?: boolean;\n selectionStart?: boolean;\n selectionEnd?: boolean;\n hintedSelectionStart?: boolean;\n hintedSelectionEnd?: boolean;\n active?: boolean;\n hidden?: boolean;\n disabled?: boolean;\n focused?: boolean;\n hinted?: boolean;\n sameMonth?: boolean;\n size?: 's' | 'm';\n onChange: (value: Date) => void;\n onEnter?: (value: Date) => void;\n onLeave?: (value: Date) => void;\n // Функция отрисовки контента в ячейке дня\n renderDayContent?: (day: Date) => React.ReactNode;\n}\n\nexport const CalendarDay: React.FC<CalendarDayProps> = React.memo(\n ({\n day,\n today,\n selected,\n onChange,\n hidden,\n disabled,\n active,\n selectionStart,\n selectionEnd,\n focused,\n onEnter,\n onLeave,\n hinted,\n hintedSelectionStart,\n hintedSelectionEnd,\n sameMonth,\n size,\n className,\n children,\n renderDayContent,\n testId,\n ...restProps\n }: CalendarDayProps) => {\n const { locale } = useConfigProvider();\n const ref = React.useRef<HTMLElement>(null);\n const onClick = React.useCallback(() => onChange(day), [day, onChange]);\n const handleEnter = React.useCallback(() => onEnter?.(day), [day, onEnter]);\n const handleLeave = React.useCallback(() => onLeave?.(day), [day, onLeave]);\n\n const label = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(day);\n\n React.useEffect(() => {\n if (focused && ref.current) {\n ref.current.dispatchEvent(new Event(ENABLE_KEYBOARD_INPUT_EVENT_NAME, { bubbles: true }));\n ref.current.focus();\n }\n }, [focused]);\n\n const content = React.useMemo(() => {\n if (renderDayContent) {\n return renderDayContent(day);\n }\n return (\n <div className={styles.dayNumber}>\n <VisuallyHidden>{children ?? label}</VisuallyHidden>\n <span aria-hidden>{day.getDate()}</span>\n </div>\n );\n }, [renderDayContent, day, children, label]);\n\n if (hidden) {\n return <div className={classNames(styles.hidden, size === 's' && styles.sizeS)} />;\n }\n\n return (\n <Tappable\n className={classNames(styles.host, size === 's' && styles.sizeS, className)}\n hoverMode={styles.hostHovered}\n activeMode={styles.hostActivated}\n hasActive={false}\n onClick={onClick}\n disabled={disabled}\n tabIndex={-1}\n getRootRef={ref}\n focusVisibleMode={active ? 'outside' : 'inside'}\n onPointerEnter={handleEnter}\n onPointerLeave={handleLeave}\n data-testid={typeof testId === 'string' ? testId : testId?.(day)}\n {...restProps}\n >\n <div\n className={classNames(\n styles.content,\n size === 's' && styles.sizeS,\n today && styles.today,\n selected && !disabled && styles.selected,\n selectionStart && styles.selectionStart,\n selectionEnd && styles.selectionEnd,\n disabled && styles.disabled,\n !sameMonth && styles.notSameMonth,\n )}\n >\n <div\n className={classNames(\n styles.hinted,\n hinted && styles.hintedActive,\n hintedSelectionStart && styles.hintedSelectionStart,\n hintedSelectionEnd && styles.hintedSelectionEnd,\n )}\n >\n <div className={classNames(styles.inner, active && !disabled && styles.innerActive)}>\n {content}\n </div>\n </div>\n </div>\n </Tappable>\n );\n },\n);\n\nCalendarDay.displayName = 'CalendarDay';\n"],"names":["React","classNames","ENABLE_KEYBOARD_INPUT_EVENT_NAME","useConfigProvider","Tappable","VisuallyHidden","styles","CalendarDay","memo","day","today","selected","onChange","hidden","disabled","active","selectionStart","selectionEnd","focused","onEnter","onLeave","hinted","hintedSelectionStart","hintedSelectionEnd","sameMonth","size","className","children","renderDayContent","testId","restProps","locale","ref","useRef","onClick","useCallback","handleEnter","handleLeave","label","Intl","DateTimeFormat","weekday","year","month","format","useEffect","current","dispatchEvent","Event","bubbles","focus","content","useMemo","div","dayNumber","span","aria-hidden","getDate","sizeS","host","hoverMode","hostHovered","activeMode","hostActivated","hasActive","tabIndex","getRootRef","focusVisibleMode","onPointerEnter","onPointerLeave","data-testid","notSameMonth","hintedActive","inner","innerActive","displayName"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { ENABLE_KEYBOARD_INPUT_EVENT_NAME } from '../../hooks/useKeyboardInputTracker';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { Tappable } from '../Tappable/Tappable';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarDay.module.css';\n\nexport type CalendarDayElementProps = Omit<\n React.AllHTMLAttributes<HTMLElement>,\n 'onChange' | 'size' | 'disabled' | 'selected'\n>;\n\nexport type CalendarDayTestsProps = {\n testId?: string | ((day: Date) => string);\n};\n\nexport interface CalendarDayProps extends CalendarDayElementProps, CalendarDayTestsProps {\n day: Date;\n today?: boolean;\n selected?: boolean;\n selectionStart?: boolean;\n selectionEnd?: boolean;\n hintedSelectionStart?: boolean;\n hintedSelectionEnd?: boolean;\n active?: boolean;\n hidden?: boolean;\n disabled?: boolean;\n focused?: boolean;\n hinted?: boolean;\n sameMonth?: boolean;\n size?: 's' | 'm';\n onChange: (value: Date) => void;\n onEnter?: (value: Date) => void;\n onLeave?: (value: Date) => void;\n // Функция отрисовки контента в ячейке дня\n renderDayContent?: (day: Date) => React.ReactNode;\n}\n\nexport const CalendarDay: React.FC<CalendarDayProps> = React.memo(\n ({\n day,\n today,\n selected,\n onChange,\n hidden,\n disabled,\n active,\n selectionStart,\n selectionEnd,\n focused,\n onEnter,\n onLeave,\n hinted,\n hintedSelectionStart,\n hintedSelectionEnd,\n sameMonth,\n size,\n children,\n renderDayContent,\n testId,\n ...restProps\n }: CalendarDayProps) => {\n const { locale } = useConfigProvider();\n const ref = React.useRef<HTMLElement>(null);\n const onClick = React.useCallback(() => onChange(day), [day, onChange]);\n const handleEnter = React.useCallback(() => onEnter?.(day), [day, onEnter]);\n const handleLeave = React.useCallback(() => onLeave?.(day), [day, onLeave]);\n\n const label = new Intl.DateTimeFormat(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(day);\n\n React.useEffect(() => {\n if (focused && ref.current) {\n ref.current.dispatchEvent(new Event(ENABLE_KEYBOARD_INPUT_EVENT_NAME, { bubbles: true }));\n ref.current.focus();\n }\n }, [focused]);\n\n const content = React.useMemo(() => {\n if (renderDayContent) {\n return renderDayContent(day);\n }\n return (\n <div className={styles.dayNumber}>\n <VisuallyHidden>{children ?? label}</VisuallyHidden>\n <span aria-hidden>{day.getDate()}</span>\n </div>\n );\n }, [renderDayContent, day, children, label]);\n\n if (hidden) {\n return <div className={classNames(styles.hidden, size === 's' && styles.sizeS)} />;\n }\n\n return (\n <Tappable\n baseClassName={classNames(styles.host, size === 's' && styles.sizeS)}\n hoverMode={styles.hostHovered}\n activeMode={styles.hostActivated}\n hasActive={false}\n onClick={onClick}\n disabled={disabled}\n tabIndex={-1}\n getRootRef={ref}\n focusVisibleMode={active ? 'outside' : 'inside'}\n onPointerEnter={handleEnter}\n onPointerLeave={handleLeave}\n data-testid={typeof testId === 'string' ? testId : testId?.(day)}\n {...restProps}\n >\n <div\n className={classNames(\n styles.content,\n size === 's' && styles.sizeS,\n today && styles.today,\n selected && !disabled && styles.selected,\n selectionStart && styles.selectionStart,\n selectionEnd && styles.selectionEnd,\n disabled && styles.disabled,\n !sameMonth && styles.notSameMonth,\n )}\n >\n <div\n className={classNames(\n styles.hinted,\n hinted && styles.hintedActive,\n hintedSelectionStart && styles.hintedSelectionStart,\n hintedSelectionEnd && styles.hintedSelectionEnd,\n )}\n >\n <div className={classNames(styles.inner, active && !disabled && styles.innerActive)}>\n {content}\n </div>\n </div>\n </div>\n </Tappable>\n );\n },\n);\n\nCalendarDay.displayName = 'CalendarDay';\n"],"names":["React","classNames","ENABLE_KEYBOARD_INPUT_EVENT_NAME","useConfigProvider","Tappable","VisuallyHidden","styles","CalendarDay","memo","day","today","selected","onChange","hidden","disabled","active","selectionStart","selectionEnd","focused","onEnter","onLeave","hinted","hintedSelectionStart","hintedSelectionEnd","sameMonth","size","children","renderDayContent","testId","restProps","locale","ref","useRef","onClick","useCallback","handleEnter","handleLeave","label","Intl","DateTimeFormat","weekday","year","month","format","useEffect","current","dispatchEvent","Event","bubbles","focus","content","useMemo","div","className","dayNumber","span","aria-hidden","getDate","sizeS","baseClassName","host","hoverMode","hostHovered","activeMode","hostActivated","hasActive","tabIndex","getRootRef","focusVisibleMode","onPointerEnter","onPointerLeave","data-testid","notSameMonth","hintedActive","inner","innerActive","displayName"],"mappings":"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"}
@@ -72,7 +72,7 @@ export const CalendarHeader = ({ viewDate, onChange, prevMonthHidden: prevMonthH
72
72
  !prevMonthHidden && /*#__PURE__*/ _jsx(AdaptivityProvider, {
73
73
  sizeX: "regular",
74
74
  children: /*#__PURE__*/ _jsxs(Tappable, {
75
- className: classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName),
75
+ baseClassName: classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName),
76
76
  onClick: onPrevMonth,
77
77
  "data-testid": prevMonthButtonTestId,
78
78
  ...restPrevMonthProps,
@@ -140,7 +140,7 @@ export const CalendarHeader = ({ viewDate, onChange, prevMonthHidden: prevMonthH
140
140
  !nextMonthHidden && /*#__PURE__*/ _jsx(AdaptivityProvider, {
141
141
  sizeX: "regular",
142
142
  children: /*#__PURE__*/ _jsxs(Tappable, {
143
- className: classNames(styles.navIcon, styles.navIconNext, nextMonthClassName),
143
+ baseClassName: classNames(styles.navIcon, styles.navIconNext, nextMonthClassName),
144
144
  onClick: onNextMonth,
145
145
  "data-testid": nextMonthButtonTestId,
146
146
  ...restNextMonthProps,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { addMonths, setMonth, setYear, subMonths } from 'date-fns';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n monthDropdownTestId?: string | ((monthIndex: number) => string);\n yearDropdownTestId?: string | ((year: number) => string);\n nextMonthButtonTestId?: string;\n prevMonthButtonTestId?: string;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n\n const currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles.month}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n &nbsp;\n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n data-testid={\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth)\n }\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n data-testid={yearDropdownTestId}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n className={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","addMonths","setMonth","setYear","subMonths","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","styles","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","navIconAccent","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","month","disabled","years","year","formatter","Intl","DateTimeFormat","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","baseClassName","host","sizeX","navIcon","navIconPrev","onClick","data-testid","format","pickers","weight","sizeY","div","picker","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","aria-label","navIconNext"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["'use client';\n\nimport { type ChangeEvent } from 'react';\nimport * as React from 'react';\nimport {\n Icon12Dropdown,\n Icon20ChevronLeftOutline,\n Icon20ChevronRightOutline,\n} from '@vkontakte/icons';\nimport { classNames } from '@vkontakte/vkjs';\nimport { addMonths, setMonth, setYear, subMonths } from 'date-fns';\nimport { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, getMonths, getYears } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport { Tappable } from '../Tappable/Tappable';\nimport { Paragraph } from '../Typography/Paragraph/Paragraph';\nimport { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden';\nimport styles from './CalendarHeader.module.css';\n\ntype ArrowMonthProps = Omit<React.AllHTMLAttributes<HTMLElement>, 'onClick' | 'aria-label'>;\n\nexport type CalendarHeaderTestsProps = {\n monthDropdownTestId?: string | ((monthIndex: number) => string);\n yearDropdownTestId?: string | ((year: number) => string);\n nextMonthButtonTestId?: string;\n prevMonthButtonTestId?: string;\n};\n\nexport interface CalendarHeaderProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n CalendarHeaderTestsProps {\n viewDate: Date;\n /**\n * Скрывает иконку для переключения на предыдущий месяц\n */\n prevMonthHidden?: boolean;\n /**\n * Скрывает иконку для переключения на следующий месяц\n */\n nextMonthHidden?: boolean;\n disablePickers?: boolean;\n prevMonthLabel?: string;\n nextMonthLabel?: string;\n changeMonthLabel?: string;\n changeYearLabel?: string;\n prevMonthIcon?: React.ReactNode;\n nextMonthIcon?: React.ReactNode;\n prevMonthProps?: ArrowMonthProps;\n nextMonthProps?: ArrowMonthProps;\n isMonthDisabled?: (monthNumber: number, year?: number) => boolean;\n isYearDisabled?: (yearNumber: number) => boolean;\n onChange: (viewDate: Date) => void;\n /**\n * Нажатие на кнопку переключения на следующий месяц.\n */\n onNextMonth?: () => void;\n /**\n * Нажатие на кнопку переключения на предыдущий месяц.\n */\n onPrevMonth?: () => void;\n}\n\nexport const CalendarHeader = ({\n viewDate,\n onChange,\n prevMonthHidden: prevMonthHiddenProp = false,\n nextMonthHidden: nextMonthHiddenProp = false,\n disablePickers = false,\n onNextMonth,\n onPrevMonth,\n prevMonthProps = {},\n nextMonthProps = {},\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n prevMonthIcon = (\n <Icon20ChevronLeftOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n nextMonthIcon = (\n <Icon20ChevronRightOutline className={styles.navIconAccent} width={30} height={30} />\n ),\n isMonthDisabled,\n isYearDisabled,\n monthDropdownTestId,\n yearDropdownTestId,\n prevMonthButtonTestId,\n nextMonthButtonTestId,\n ...restProps\n}: CalendarHeaderProps): React.ReactNode => {\n const { locale } = useConfigProvider();\n const onMonthsChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setMonth(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n const onYearChange = React.useCallback(\n (_: ChangeEvent<HTMLSelectElement>, newValue: SelectProps['value']) =>\n onChange(setYear(viewDate, Number(newValue))),\n [onChange, viewDate],\n );\n\n const currentYear = viewDate.getFullYear();\n const currentMonth = viewDate.getMonth();\n\n const months = React.useMemo(\n () =>\n getMonths(locale).map(({ value, label }) => ({\n value,\n label: <span className={styles.month}>{label}</span>,\n disabled: isMonthDisabled && isMonthDisabled(value),\n })),\n [locale, isMonthDisabled],\n );\n\n const years = React.useMemo(\n () =>\n getYears(currentYear, 100).map((year) => ({\n ...year,\n disabled: isYearDisabled && isYearDisabled(year.value),\n })),\n [currentYear, isYearDisabled],\n );\n\n const formatter = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n });\n\n const { className: prevMonthClassName, ...restPrevMonthProps } = prevMonthProps;\n const { className: nextMonthClassName, ...restNextMonthProps } = nextMonthProps;\n\n let nextMonthHidden =\n nextMonthHiddenProp || (currentMonth === 11 && currentYear === DEFAULT_MAX_YEAR);\n if (isMonthDisabled && !nextMonthHidden) {\n nextMonthHidden = isMonthDisabled(\n currentMonth === 11 ? 0 : currentMonth + 1,\n currentMonth === 11 ? Math.min(currentYear + 1, DEFAULT_MAX_YEAR) : currentYear,\n );\n }\n\n let prevMonthHidden =\n prevMonthHiddenProp || (currentMonth === 0 && currentYear === DEFAULT_MIN_YEAR);\n if (isMonthDisabled && !prevMonthHidden) {\n prevMonthHidden = isMonthDisabled(\n currentMonth === 0 ? 11 : currentMonth - 1,\n currentMonth === 0 ? Math.max(currentYear - 1, DEFAULT_MIN_YEAR) : currentYear,\n );\n }\n\n return (\n <RootComponent baseClassName={styles.host} {...restProps}>\n {!prevMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconPrev, prevMonthClassName)}\n onClick={onPrevMonth}\n data-testid={prevMonthButtonTestId}\n {...restPrevMonthProps}\n >\n <VisuallyHidden>\n {prevMonthLabel}, {formatter.format(subMonths(viewDate, 1))}\n </VisuallyHidden>\n {prevMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n {disablePickers ? (\n <Paragraph\n className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}\n weight=\"2\"\n >\n <span className={styles.month}>\n {new Intl.DateTimeFormat(locale, {\n month: 'long',\n }).format(viewDate)}\n </span>\n &nbsp;\n {new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n }).format(viewDate)}\n </Paragraph>\n ) : (\n <AdaptivityProvider sizeY=\"compact\">\n <div className={classNames(styles.pickers, 'vkuiInternalCalendarHeader__pickers')}>\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentMonth}\n options={months}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onMonthsChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeMonthLabel}\n data-testid={\n typeof monthDropdownTestId === 'string'\n ? monthDropdownTestId\n : monthDropdownTestId?.(currentMonth)\n }\n />\n <CustomSelect\n className={classNames(styles.picker, 'vkuiInternalCalendarHeader__picker')}\n value={currentYear}\n options={years}\n dropdownOffsetDistance={4}\n dropdownAutoWidth\n icon={<Icon12Dropdown />}\n onChange={onYearChange}\n forceDropdownPortal={false}\n selectType=\"accent\"\n aria-label={changeYearLabel}\n data-testid={yearDropdownTestId}\n />\n </div>\n </AdaptivityProvider>\n )}\n {!nextMonthHidden && (\n <AdaptivityProvider sizeX=\"regular\">\n <Tappable\n baseClassName={classNames(styles.navIcon, styles.navIconNext, nextMonthClassName)}\n onClick={onNextMonth}\n data-testid={nextMonthButtonTestId}\n {...restNextMonthProps}\n >\n <VisuallyHidden>\n {nextMonthLabel}, {formatter.format(addMonths(viewDate, 1))}\n </VisuallyHidden>\n {nextMonthIcon}\n </Tappable>\n </AdaptivityProvider>\n )}\n </RootComponent>\n );\n};\n"],"names":["React","Icon12Dropdown","Icon20ChevronLeftOutline","Icon20ChevronRightOutline","classNames","addMonths","setMonth","setYear","subMonths","DEFAULT_MAX_YEAR","DEFAULT_MIN_YEAR","getMonths","getYears","AdaptivityProvider","useConfigProvider","CustomSelect","RootComponent","Tappable","Paragraph","VisuallyHidden","styles","CalendarHeader","viewDate","onChange","prevMonthHidden","prevMonthHiddenProp","nextMonthHidden","nextMonthHiddenProp","disablePickers","onNextMonth","onPrevMonth","prevMonthProps","nextMonthProps","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","prevMonthIcon","className","navIconAccent","width","height","nextMonthIcon","isMonthDisabled","isYearDisabled","monthDropdownTestId","yearDropdownTestId","prevMonthButtonTestId","nextMonthButtonTestId","restProps","locale","onMonthsChange","useCallback","_","newValue","Number","onYearChange","currentYear","getFullYear","currentMonth","getMonth","months","useMemo","map","value","label","span","month","disabled","years","year","formatter","Intl","DateTimeFormat","prevMonthClassName","restPrevMonthProps","nextMonthClassName","restNextMonthProps","Math","min","max","baseClassName","host","sizeX","navIcon","navIconPrev","onClick","data-testid","format","pickers","weight","sizeY","div","picker","options","dropdownOffsetDistance","dropdownAutoWidth","icon","forceDropdownPortal","selectType","aria-label","navIconNext"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
+ 'use client';
1
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ // TODO [@vkontakte/icons-sprite>=2.3.1]: Удалить use client, если он появился в IconAppearanceProvider
2
4
  import * as React from "react";
3
5
  import { IconAppearanceProvider } from "@vkontakte/icons";
4
6
  import { TokensClassProvider } from "../../lib/tokens/index.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ColorSchemeProvider/ColorSchemeProvider.tsx"],"sourcesContent":["import * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { TokensClassProvider } from '../../lib/tokens';\nimport { ConfigProviderOverride } from '../ConfigProvider/ConfigProviderOverride';\n\nexport interface ColorSchemeProviderProps {\n value: ColorSchemeType;\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ColorSchemeProvider\n */\nexport const ColorSchemeProvider = ({\n value,\n children,\n}: ColorSchemeProviderProps): React.ReactNode => {\n return (\n <ConfigProviderOverride colorScheme={value}>\n <IconAppearanceProvider value={value}>\n <TokensClassProvider>{children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderOverride>\n );\n};\n"],"names":["React","IconAppearanceProvider","TokensClassProvider","ConfigProviderOverride","ColorSchemeProvider","value","children","colorScheme"],"mappings":";AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAE1D,SAASC,mBAAmB,QAAQ,4BAAmB;AACvD,SAASC,sBAAsB,QAAQ,8CAA2C;AAOlF;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,KAAK,EACLC,QAAQ,EACiB;IACzB,qBACE,KAACH;QAAuBI,aAAaF;kBACnC,cAAA,KAACJ;YAAuBI,OAAOA;sBAC7B,cAAA,KAACH;0BAAqBI;;;;AAI9B,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/ColorSchemeProvider/ColorSchemeProvider.tsx"],"sourcesContent":["'use client';\n\n// TODO [@vkontakte/icons-sprite>=2.3.1]: Удалить use client, если он появился в IconAppearanceProvider\n\nimport * as React from 'react';\nimport { IconAppearanceProvider } from '@vkontakte/icons';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { TokensClassProvider } from '../../lib/tokens';\nimport { ConfigProviderOverride } from '../ConfigProvider/ConfigProviderOverride';\n\nexport interface ColorSchemeProviderProps {\n value: ColorSchemeType;\n children: React.ReactNode;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ColorSchemeProvider\n */\nexport const ColorSchemeProvider = ({\n value,\n children,\n}: ColorSchemeProviderProps): React.ReactNode => {\n return (\n <ConfigProviderOverride colorScheme={value}>\n <IconAppearanceProvider value={value}>\n <TokensClassProvider>{children}</TokensClassProvider>\n </IconAppearanceProvider>\n </ConfigProviderOverride>\n );\n};\n"],"names":["React","IconAppearanceProvider","TokensClassProvider","ConfigProviderOverride","ColorSchemeProvider","value","children","colorScheme"],"mappings":"AAAA;;AAEA,uGAAuG;AAEvG,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,mBAAmB;AAE1D,SAASC,mBAAmB,QAAQ,4BAAmB;AACvD,SAASC,sBAAsB,QAAQ,8CAA2C;AAOlF;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,KAAK,EACLC,QAAQ,EACiB;IACzB,qBACE,KAACH;QAAuBI,aAAaF;kBACnC,cAAA,KAACJ;YAAuBI,OAAOA;sBAC7B,cAAA,KAACH;0BAAqBI;;;;AAI9B,EAAE"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import * as React from "react";
2
3
  import { platform } from "../../lib/platform.js";
3
4
  import { DEFAULT_TOKENS_CLASS_NAMES } from "../../lib/tokens/index.js";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { platform, type PlatformType } from '../../lib/platform';\nimport { DEFAULT_TOKENS_CLASS_NAMES, type TokensClassNames } from '../../lib/tokens';\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере.\n *\n * В условиях когда:\n * - `isWebView={true}`\n * - platform=\"ios\"\n *\n * для компонента `View` включается возможность навигации через смахивание.\n */\n isWebView: boolean;\n /**\n * При `true` слот `after` у `PanelHeader` игнорируется под размещение пользовательского\n * \"плавающего\" элемента (например, панель управления webview).\n *\n * > Note: Правило не распространяется на `PanelHeader` внутри модальных окон, предоставляемых\n * > библиотекой.\n */\n hasCustomPanelHeaderAfter: boolean;\n /**\n * Задаёт необходимый минимальную ширину слота `after` в `PanelHeader` под пользовательский\n * \"плавающий\" элемент (например, ширина панели управления webview).\n *\n * Учитывается только при `hasCustomPanelHeaderAfter={true}` (см. документацию `hasCustomPanelHeaderAfter`).\n *\n * @default 90\n */\n customPanelHeaderAfterMinWidth: number | string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n colorScheme: ColorSchemeType | undefined;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n /**\n * CSS классы, определяющие набор токенов.\n *\n * - Используйте `{ light?: '<css_class>', dark?: '<css_class>' }`, чтобы задать для всех платформ одинаковый набор токенов для светлой и/или тёмной тем.\n * - Используйте `{ [key in 'android' | 'ios' | 'vkcom']?: '<css_class>' }`, чтобы задать для одной или нескольких платформ свой набор токенов.\n *\n * @default\n * {\n * android: {\n * light: 'vkui--vkBase--light',\n * dark: 'vkui--vkBase--dark',\n * },\n * ios: {\n * light: 'vkui--vkIOS--light',\n * dark: 'vkui--vkIOS--dark',\n * },\n * vkcom: {\n * light: 'vkui--vkCom--light',\n * dark: 'vkui--vkCom--dark',\n * }\n * }\n */\n tokensClassNames: TokensClassNames;\n /**\n * Строка с языковой меткой BCP 47\n */\n locale: string;\n}\n\nexport const ConfigProviderContext: React.Context<ConfigProviderContextInterface> =\n React.createContext<ConfigProviderContextInterface>({\n hasCustomPanelHeaderAfter: false,\n customPanelHeaderAfterMinWidth: 90,\n isWebView: false,\n transitionMotionEnabled: true,\n platform: platform(),\n colorScheme: undefined, // undefined обозначает что тема должна определиться автоматически\n tokensClassNames: DEFAULT_TOKENS_CLASS_NAMES,\n locale: 'ru',\n });\n\nexport const useConfigProvider = (): ConfigProviderContextInterface =>\n React.useContext(ConfigProviderContext);\n"],"names":["React","platform","DEFAULT_TOKENS_CLASS_NAMES","ConfigProviderContext","createContext","hasCustomPanelHeaderAfter","customPanelHeaderAfterMinWidth","isWebView","transitionMotionEnabled","colorScheme","undefined","tokensClassNames","locale","useConfigProvider","useContext"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,QAAQ,QAA2B,wBAAqB;AACjE,SAASC,0BAA0B,QAA+B,4BAAmB;AAuErF,OAAO,MAAMC,sCACXH,MAAMI,aAAa,CAAiC;IAClDC,2BAA2B;IAC3BC,gCAAgC;IAChCC,WAAW;IACXC,yBAAyB;IACzBP,UAAUA;IACVQ,aAAaC;IACbC,kBAAkBT;IAClBU,QAAQ;AACV,GAAG;AAEL,OAAO,MAAMC,oBAAoB,IAC/Bb,MAAMc,UAAU,CAACX,uBAAuB"}
1
+ {"version":3,"sources":["../../../../src/components/ConfigProvider/ConfigProviderContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ColorSchemeType } from '../../lib/colorScheme';\nimport { platform, type PlatformType } from '../../lib/platform';\nimport { DEFAULT_TOKENS_CLASS_NAMES, type TokensClassNames } from '../../lib/tokens';\n\nexport interface ConfigProviderContextInterface {\n /**\n * Подсказывает приложению, обёрнутому в `ConfigProvider`, где открыто приложение: внутри webview или в мобильном браузере.\n *\n * В условиях когда:\n * - `isWebView={true}`\n * - platform=\"ios\"\n *\n * для компонента `View` включается возможность навигации через смахивание.\n */\n isWebView: boolean;\n /**\n * При `true` слот `after` у `PanelHeader` игнорируется под размещение пользовательского\n * \"плавающего\" элемента (например, панель управления webview).\n *\n * > Note: Правило не распространяется на `PanelHeader` внутри модальных окон, предоставляемых\n * > библиотекой.\n */\n hasCustomPanelHeaderAfter: boolean;\n /**\n * Задаёт необходимый минимальную ширину слота `after` в `PanelHeader` под пользовательский\n * \"плавающий\" элемент (например, ширина панели управления webview).\n *\n * Учитывается только при `hasCustomPanelHeaderAfter={true}` (см. документацию `hasCustomPanelHeaderAfter`).\n *\n * @default 90\n */\n customPanelHeaderAfterMinWidth: number | string;\n /**\n * Тип цветовой схемы – `light` или `dark`\n */\n colorScheme: ColorSchemeType | undefined;\n /**\n * Включена ли анимация переходов между экранами в `Root` и `View`\n */\n transitionMotionEnabled: boolean;\n /**\n * Платформа\n */\n platform: PlatformType;\n /**\n * CSS классы, определяющие набор токенов.\n *\n * - Используйте `{ light?: '<css_class>', dark?: '<css_class>' }`, чтобы задать для всех платформ одинаковый набор токенов для светлой и/или тёмной тем.\n * - Используйте `{ [key in 'android' | 'ios' | 'vkcom']?: '<css_class>' }`, чтобы задать для одной или нескольких платформ свой набор токенов.\n *\n * @default\n * {\n * android: {\n * light: 'vkui--vkBase--light',\n * dark: 'vkui--vkBase--dark',\n * },\n * ios: {\n * light: 'vkui--vkIOS--light',\n * dark: 'vkui--vkIOS--dark',\n * },\n * vkcom: {\n * light: 'vkui--vkCom--light',\n * dark: 'vkui--vkCom--dark',\n * }\n * }\n */\n tokensClassNames: TokensClassNames;\n /**\n * Строка с языковой меткой BCP 47\n */\n locale: string;\n}\n\nexport const ConfigProviderContext: React.Context<ConfigProviderContextInterface> =\n React.createContext<ConfigProviderContextInterface>({\n hasCustomPanelHeaderAfter: false,\n customPanelHeaderAfterMinWidth: 90,\n isWebView: false,\n transitionMotionEnabled: true,\n platform: platform(),\n colorScheme: undefined, // undefined обозначает что тема должна определиться автоматически\n tokensClassNames: DEFAULT_TOKENS_CLASS_NAMES,\n locale: 'ru',\n });\n\nexport const useConfigProvider = (): ConfigProviderContextInterface =>\n React.useContext(ConfigProviderContext);\n"],"names":["React","platform","DEFAULT_TOKENS_CLASS_NAMES","ConfigProviderContext","createContext","hasCustomPanelHeaderAfter","customPanelHeaderAfterMinWidth","isWebView","transitionMotionEnabled","colorScheme","undefined","tokensClassNames","locale","useConfigProvider","useContext"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,QAAQ,QAA2B,wBAAqB;AACjE,SAASC,0BAA0B,QAA+B,4BAAmB;AAuErF,OAAO,MAAMC,sCACXH,MAAMI,aAAa,CAAiC;IAClDC,2BAA2B;IAC3BC,gCAAgC;IAChCC,WAAW;IACXC,yBAAyB;IACzBP,UAAUA;IACVQ,aAAaC;IACbC,kBAAkBT;IAClBU,QAAQ;AACV,GAAG;AAEL,OAAO,MAAMC,oBAAoB,IAC/Bb,MAAMc,UAAU,CAACX,uBAAuB"}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import * as React from "react";
2
3
  /**
3
4
  * Контекст для внутреннего использовния.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ContentBadge/ContentBadgeContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ContentBadgeSizeType } from './types';\n\ntype ContentBadgeContextValue = {\n isSingleChild: boolean;\n size: ContentBadgeSizeType;\n};\n\n/**\n * Контекст для внутреннего использовния.\n * @private\n */\nexport const ContentBadgeContext: React.Context<ContentBadgeContextValue> =\n React.createContext<ContentBadgeContextValue>({\n isSingleChild: false,\n size: 'm',\n });\n"],"names":["React","ContentBadgeContext","createContext","isSingleChild","size"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAQ/B;;;CAGC,GACD,OAAO,MAAMC,oCACXD,MAAME,aAAa,CAA2B;IAC5CC,eAAe;IACfC,MAAM;AACR,GAAG"}
1
+ {"version":3,"sources":["../../../../src/components/ContentBadge/ContentBadgeContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ContentBadgeSizeType } from './types';\n\ntype ContentBadgeContextValue = {\n isSingleChild: boolean;\n size: ContentBadgeSizeType;\n};\n\n/**\n * Контекст для внутреннего использовния.\n * @private\n */\nexport const ContentBadgeContext: React.Context<ContentBadgeContextValue> =\n React.createContext<ContentBadgeContextValue>({\n isSingleChild: false,\n size: 'm',\n });\n"],"names":["React","ContentBadgeContext","createContext","isSingleChild","size"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAQ/B;;;CAGC,GACD,OAAO,MAAMC,oCACXD,MAAME,aAAa,CAA2B;IAC5CC,eAAe;IACfC,MAAM;AACR,GAAG"}
@@ -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 { Caption } from "../Typography/Caption/Caption.js";
6
7
  import { Headline } from "../Typography/Headline/Headline.js";
7
8
  import styles from "./Counter.module.css";
@@ -39,27 +40,23 @@ const sizeClassNames = {
39
40
  ]);
40
41
  const style = React.useMemo(()=>{
41
42
  if (mode === 'inherit' || appearance !== 'custom' || !color) {
42
- return styleProp;
43
+ return undefined;
43
44
  }
44
45
  switch(mode){
45
46
  case 'primary':
46
47
  return {
47
- ...styleProp,
48
48
  '--vkui_internal--counter_background': color
49
49
  };
50
50
  case 'contrast':
51
51
  case 'tertiary':
52
52
  return {
53
- ...styleProp,
54
53
  '--vkui_internal--counter_foreground': color
55
54
  };
56
55
  }
57
- return styleProp;
58
56
  }, [
59
57
  appearance,
60
58
  color,
61
- mode,
62
- styleProp
59
+ mode
63
60
  ]);
64
61
  if (React.Children.count(children) === 0) {
65
62
  return null;
@@ -68,7 +65,7 @@ const sizeClassNames = {
68
65
  const counterLevel = size === 's' ? '1' : '2';
69
66
  return /*#__PURE__*/ _jsx(CounterTypography, {
70
67
  ...restProps,
71
- style: style,
68
+ style: mergeStyle(style, styleProp),
72
69
  Component: "span",
73
70
  className: classNames('vkuiInternalCounter', styles.host, modeClassNames[mode], !!appearance && appearanceClassNames[appearance], sizeClassNames[size], className),
74
71
  level: counterLevel,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { type HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit';\n\n /**\n * Внешний вид счетчика\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom';\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает\n */\n color?: string;\n\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style = React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return styleProp;\n }\n switch (mode) {\n case 'primary':\n return {\n ...styleProp,\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n ...styleProp,\n '--vkui_internal--counter_foreground': color,\n };\n }\n return styleProp;\n }, [appearance, color, mode, styleProp]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={style}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","Caption","Headline","styles","modeClassNames","primary","modePrimary","contrast","modeContrast","tertiary","modeTertiary","inherit","modeInherit","appearanceClassNames","appearanceCustom","appearanceAccent","appearanceNeutral","appearanceAccentGreen","appearanceAccentRed","sizeClassNames","s","sizeS","m","sizeM","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","host","level"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,OAAOC,YAAY,uBAAuB;AAE1C,MAAMC,iBAAiB;IACrBC,SAASF,OAAOG,WAAW;IAC3BC,UAAUJ,OAAOK,YAAY;IAC7BC,UAAUN,OAAOO,YAAY;IAC7BC,SAASR,OAAOS,WAAW;AAC7B;AAEA,MAAMC,uBAA+C;IACnD,UAAUV,OAAOW,gBAAgB;IACjC,UAAUX,OAAOY,gBAAgB;IACjC,WAAWZ,OAAOa,iBAAiB;IACnC,gBAAgBb,OAAOc,qBAAqB;IAC5C,cAAcd,OAAOe,mBAAmB;AAC1C;AAEA,MAAMC,iBAAiB;IACrBC,GAAGjB,OAAOkB,KAAK;IACfC,GAAGnB,OAAOoB,KAAK;AACjB;AAyBA;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAChB,GAAGC,WACU;IACb,MAAMR,aAAa3B,MAAMoC,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QAAQjC,MAAMoC,OAAO,CAAC;QAC1B,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOK;QACT;QACA,OAAQR;YACN,KAAK;gBACH,OAAO;oBACL,GAAGQ,SAAS;oBACZ,uCAAuCL;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,GAAGK,SAAS;oBACZ,uCAAuCL;gBACzC;QACJ;QACA,OAAOK;IACT,GAAG;QAACP;QAAYE;QAAOH;QAAMQ;KAAU;IAEvC,IAAIlC,MAAMsC,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAM5B,UAAUC;IACnD,MAAMsC,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU;QACE,GAAGL,SAAS;QACbF,OAAOA;QACPS,WAAU;QACVV,WAAW/B,WACT,uBACAG,OAAOuC,IAAI,EACXtC,cAAc,CAACqB,KAAK,EACpB,CAAC,CAACC,cAAcb,oBAAoB,CAACa,WAAW,EAChDP,cAAc,CAACU,KAAK,EACpBE;QAEFY,OAAOH;kBAENV;;AAGP,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/Counter/Counter.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { mergeStyle } from '../../helpers/mergeStyle';\nimport { type CSSCustomProperties, type HTMLAttributesWithRootRef } from '../../types';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Headline } from '../Typography/Headline/Headline';\nimport styles from './Counter.module.css';\n\nconst modeClassNames = {\n primary: styles.modePrimary,\n contrast: styles.modeContrast,\n tertiary: styles.modeTertiary,\n inherit: styles.modeInherit,\n};\n\nconst appearanceClassNames: Record<string, string> = {\n 'custom': styles.appearanceCustom,\n 'accent': styles.appearanceAccent,\n 'neutral': styles.appearanceNeutral,\n 'accent-green': styles.appearanceAccentGreen,\n 'accent-red': styles.appearanceAccentRed,\n};\n\nconst sizeClassNames = {\n s: styles.sizeS,\n m: styles.sizeM,\n};\n\nexport interface CounterProps extends HTMLAttributesWithRootRef<HTMLSpanElement> {\n /**\n * Режим отображения счетчика\n */\n mode?: 'primary' | 'contrast' | 'tertiary' | 'inherit';\n\n /**\n * Внешний вид счетчика\n */\n appearance?: 'accent' | 'neutral' | 'accent-green' | 'accent-red' | 'custom';\n\n /**\n * Пользовательский цвет (работает только при appearance=\"custom\")\n * - При mode=\"primary\" - изменяет фон\n * - При mode=\"contrast\" - изменяет цвет текста\n * - При mode=\"tertiary\" - изменяет цвет текста\n * - При mode=\"inherit\" - не работает\n */\n color?: string;\n\n size?: 's' | 'm';\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Counter\n */\nexport const Counter = ({\n mode = 'inherit',\n appearance: appearanceProp,\n color,\n size = 'm',\n children,\n className,\n style: styleProp,\n ...restProps\n}: CounterProps): React.ReactNode => {\n const appearance = React.useMemo<CounterProps['appearance']>(() => {\n if (mode === 'inherit') {\n return undefined;\n }\n if (appearanceProp) {\n return appearanceProp;\n }\n return 'accent';\n }, [appearanceProp, mode]);\n\n const style: (React.CSSProperties & CSSCustomProperties<string | undefined>) | undefined =\n React.useMemo(() => {\n if (mode === 'inherit' || appearance !== 'custom' || !color) {\n return undefined;\n }\n switch (mode) {\n case 'primary':\n return {\n '--vkui_internal--counter_background': color,\n };\n case 'contrast':\n case 'tertiary':\n return {\n '--vkui_internal--counter_foreground': color,\n };\n }\n }, [appearance, color, mode]);\n\n if (React.Children.count(children) === 0) {\n return null;\n }\n\n const CounterTypography = size === 's' ? Caption : Headline;\n const counterLevel = size === 's' ? '1' : '2';\n\n return (\n <CounterTypography\n {...restProps}\n style={mergeStyle(style, styleProp)}\n Component=\"span\"\n className={classNames(\n 'vkuiInternalCounter',\n styles.host,\n modeClassNames[mode],\n !!appearance && appearanceClassNames[appearance],\n sizeClassNames[size],\n className,\n )}\n level={counterLevel}\n >\n {children}\n </CounterTypography>\n );\n};\n"],"names":["React","classNames","mergeStyle","Caption","Headline","styles","modeClassNames","primary","modePrimary","contrast","modeContrast","tertiary","modeTertiary","inherit","modeInherit","appearanceClassNames","appearanceCustom","appearanceAccent","appearanceNeutral","appearanceAccentGreen","appearanceAccentRed","sizeClassNames","s","sizeS","m","sizeM","Counter","mode","appearance","appearanceProp","color","size","children","className","style","styleProp","restProps","useMemo","undefined","Children","count","CounterTypography","counterLevel","Component","host","level"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,UAAU,QAAQ,8BAA2B;AAEtD,SAASC,OAAO,QAAQ,mCAAgC;AACxD,SAASC,QAAQ,QAAQ,qCAAkC;AAC3D,OAAOC,YAAY,uBAAuB;AAE1C,MAAMC,iBAAiB;IACrBC,SAASF,OAAOG,WAAW;IAC3BC,UAAUJ,OAAOK,YAAY;IAC7BC,UAAUN,OAAOO,YAAY;IAC7BC,SAASR,OAAOS,WAAW;AAC7B;AAEA,MAAMC,uBAA+C;IACnD,UAAUV,OAAOW,gBAAgB;IACjC,UAAUX,OAAOY,gBAAgB;IACjC,WAAWZ,OAAOa,iBAAiB;IACnC,gBAAgBb,OAAOc,qBAAqB;IAC5C,cAAcd,OAAOe,mBAAmB;AAC1C;AAEA,MAAMC,iBAAiB;IACrBC,GAAGjB,OAAOkB,KAAK;IACfC,GAAGnB,OAAOoB,KAAK;AACjB;AAyBA;;CAEC,GACD,OAAO,MAAMC,UAAU,CAAC,EACtBC,OAAO,SAAS,EAChBC,YAAYC,cAAc,EAC1BC,KAAK,EACLC,OAAO,GAAG,EACVC,QAAQ,EACRC,SAAS,EACTC,OAAOC,SAAS,EAChB,GAAGC,WACU;IACb,MAAMR,aAAa5B,MAAMqC,OAAO,CAA6B;QAC3D,IAAIV,SAAS,WAAW;YACtB,OAAOW;QACT;QACA,IAAIT,gBAAgB;YAClB,OAAOA;QACT;QACA,OAAO;IACT,GAAG;QAACA;QAAgBF;KAAK;IAEzB,MAAMO,QACJlC,MAAMqC,OAAO,CAAC;QACZ,IAAIV,SAAS,aAAaC,eAAe,YAAY,CAACE,OAAO;YAC3D,OAAOQ;QACT;QACA,OAAQX;YACN,KAAK;gBACH,OAAO;oBACL,uCAAuCG;gBACzC;YACF,KAAK;YACL,KAAK;gBACH,OAAO;oBACL,uCAAuCA;gBACzC;QACJ;IACF,GAAG;QAACF;QAAYE;QAAOH;KAAK;IAE9B,IAAI3B,MAAMuC,QAAQ,CAACC,KAAK,CAACR,cAAc,GAAG;QACxC,OAAO;IACT;IAEA,MAAMS,oBAAoBV,SAAS,MAAM5B,UAAUC;IACnD,MAAMsC,eAAeX,SAAS,MAAM,MAAM;IAE1C,qBACE,KAACU;QACE,GAAGL,SAAS;QACbF,OAAOhC,WAAWgC,OAAOC;QACzBQ,WAAU;QACVV,WAAWhC,WACT,uBACAI,OAAOuC,IAAI,EACXtC,cAAc,CAACqB,KAAK,EACpB,CAAC,CAACC,cAAcb,oBAAoB,CAACa,WAAW,EAChDP,cAAc,CAACU,KAAK,EACpBE;QAEFY,OAAOH;kBAENV;;AAGP,EAAE"}
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from "react";
4
4
  import { Icon16Done } from "@vkontakte/icons";
5
5
  import { classNames, hasReactNode } from "@vkontakte/vkjs";
6
+ import { mergeStyle } from "../../helpers/mergeStyle.js";
6
7
  import { useAdaptivity } from "../../hooks/useAdaptivity.js";
7
8
  import { Footnote } from "../Typography/Footnote/Footnote.js";
8
9
  import { Paragraph } from "../Typography/Paragraph/Paragraph.js";
@@ -17,11 +18,9 @@ const sizeYClassNames = {
17
18
  */ export const CustomSelectOption = ({ children, hierarchy = 0, hovered: hoveredProp, selected, before, after, description, disabled, style: styleProp, className, onClick, ...restProps })=>{
18
19
  const { sizeY = 'none' } = useAdaptivity();
19
20
  const style = React.useMemo(()=>hierarchy > 0 ? {
20
- '--vkui_internal--custom_select_option_hierarchy_level': hierarchy,
21
- ...styleProp
22
- } : styleProp, [
23
- hierarchy,
24
- styleProp
21
+ '--vkui_internal--custom_select_option_hierarchy_level': hierarchy
22
+ } : undefined, [
23
+ hierarchy
25
24
  ]);
26
25
  const hovered = hoveredProp && !disabled ? true : false;
27
26
  return /*#__PURE__*/ _jsxs(Paragraph, {
@@ -33,7 +32,7 @@ const sizeYClassNames = {
33
32
  "aria-selected": selected,
34
33
  "data-hovered": hovered,
35
34
  className: classNames(styles.host, sizeY !== 'compact' && sizeYClassNames[sizeY], hovered && styles.hover, disabled && styles.disabled, hierarchy > 0 && styles.hierarchy, className),
36
- style: style,
35
+ style: mergeStyle(style, styleProp),
37
36
  children: [
38
37
  hasReactNode(before) && /*#__PURE__*/ _jsx("div", {
39
38
  className: styles.before,