@gravity-ui/page-constructor 8.0.0-beta.2 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/README.md +39 -2
  2. package/build/cjs/_vendor/swiper-modules.js +1309 -0
  3. package/build/cjs/_vendor/swiper-modules.js.map +7 -0
  4. package/build/cjs/_vendor/swiper-react.js +4651 -0
  5. package/build/cjs/_vendor/swiper-react.js.map +7 -0
  6. package/build/cjs/_vendor/swiper.js +3822 -0
  7. package/build/cjs/_vendor/swiper.js.map +7 -0
  8. package/build/cjs/blocks/CardLayout/CardLayout.css +6 -0
  9. package/build/cjs/blocks/CardLayout/CardLayout.d.ts +1 -1
  10. package/build/cjs/blocks/CardLayout/CardLayout.js +2 -2
  11. package/build/cjs/blocks/CardLayout/CardLayout.js.map +1 -1
  12. package/build/cjs/blocks/Companies/schema.d.ts +1 -0
  13. package/build/cjs/blocks/Companies/schema.js +2 -1
  14. package/build/cjs/blocks/Companies/schema.js.map +1 -1
  15. package/build/cjs/blocks/ContentLayout/ContentLayout.js +4 -2
  16. package/build/cjs/blocks/ContentLayout/ContentLayout.js.map +1 -1
  17. package/build/cjs/blocks/ContentLayout/schema.d.ts +11 -0
  18. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +5 -5
  19. package/build/cjs/blocks/FilterBlock/FilterBlock.d.ts +1 -2
  20. package/build/cjs/blocks/FilterBlock/FilterBlock.js.map +1 -1
  21. package/build/cjs/blocks/FoldableList/schema.d.ts +11 -0
  22. package/build/cjs/blocks/Form/Form.css +5 -2
  23. package/build/cjs/blocks/Form/Form.d.ts +2 -3
  24. package/build/cjs/blocks/Form/Form.js +14 -11
  25. package/build/cjs/blocks/Form/Form.js.map +1 -1
  26. package/build/cjs/blocks/Form/schema.d.ts +12 -4
  27. package/build/cjs/blocks/Form/schema.js +1 -4
  28. package/build/cjs/blocks/Form/schema.js.map +1 -1
  29. package/build/cjs/blocks/Form/utils.d.ts +3 -0
  30. package/build/cjs/blocks/Form/utils.js +20 -0
  31. package/build/cjs/blocks/Form/utils.js.map +1 -0
  32. package/build/cjs/blocks/Header/Header.css +13 -0
  33. package/build/cjs/blocks/Header/Header.d.ts +7 -1
  34. package/build/cjs/blocks/Header/Header.js +11 -18
  35. package/build/cjs/blocks/Header/Header.js.map +1 -1
  36. package/build/cjs/blocks/Header/schema.d.ts +77 -0
  37. package/build/cjs/blocks/Header/schema.js +13 -1
  38. package/build/cjs/blocks/Header/schema.js.map +1 -1
  39. package/build/cjs/blocks/HeaderSlider/schema.d.ts +29 -0
  40. package/build/cjs/blocks/Info/schema.d.ts +22 -0
  41. package/build/cjs/blocks/Map/Map.js.map +1 -1
  42. package/build/cjs/blocks/Map/schema.d.ts +101 -0
  43. package/build/cjs/blocks/Media/Media.js +1 -1
  44. package/build/cjs/blocks/Media/Media.js.map +1 -1
  45. package/build/cjs/blocks/Media/schema.d.ts +22 -0
  46. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +3 -4
  47. package/build/cjs/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
  48. package/build/cjs/blocks/Questions/Questions.js +32 -7
  49. package/build/cjs/blocks/Questions/Questions.js.map +1 -1
  50. package/build/cjs/blocks/Questions/schema.d.ts +11 -0
  51. package/build/cjs/blocks/Share/Share.js +1 -3
  52. package/build/cjs/blocks/Share/Share.js.map +1 -1
  53. package/build/cjs/blocks/Slider/Slider.css +62 -1
  54. package/build/cjs/blocks/Slider/Slider.d.ts +6 -4
  55. package/build/cjs/blocks/Slider/Slider.js +7 -7
  56. package/build/cjs/blocks/Slider/Slider.js.map +1 -1
  57. package/build/cjs/blocks/Slider/useSlider.d.ts +1 -2
  58. package/build/cjs/blocks/Slider/useSlider.js +3 -7
  59. package/build/cjs/blocks/Slider/useSlider.js.map +1 -1
  60. package/build/cjs/blocks/Slider/useSliderPagination.d.ts +1 -1
  61. package/build/cjs/blocks/Slider/useSliderPagination.js.map +1 -1
  62. package/build/cjs/blocks/Slider/utils.d.ts +1 -1
  63. package/build/cjs/blocks/Slider/utils.js.map +1 -1
  64. package/build/cjs/blocks/Table/Table.js +16 -3
  65. package/build/cjs/blocks/Table/Table.js.map +1 -1
  66. package/build/cjs/blocks/Tabs/TabContent/TabContent.js +12 -12
  67. package/build/cjs/blocks/Tabs/TabContent/TabContent.js.map +1 -1
  68. package/build/cjs/blocks/Tabs/Tabs.js +1 -1
  69. package/build/cjs/blocks/Tabs/Tabs.js.map +1 -1
  70. package/build/cjs/blocks/Tabs/schema.d.ts +11 -0
  71. package/build/cjs/components/Button/Button.css +2 -7
  72. package/build/cjs/components/Button/Button.js +29 -4
  73. package/build/cjs/components/Button/Button.js.map +1 -1
  74. package/build/cjs/components/ButtonTabs/ButtonTabs.d.ts +1 -1
  75. package/build/cjs/components/ButtonTabs/ButtonTabs.js.map +1 -1
  76. package/build/cjs/components/Buttons/Buttons.css +3 -0
  77. package/build/cjs/components/Buttons/Buttons.d.ts +1 -2
  78. package/build/cjs/components/Buttons/Buttons.js +1 -1
  79. package/build/cjs/components/Buttons/Buttons.js.map +1 -1
  80. package/build/cjs/components/CardBase/CardBase.css +15 -0
  81. package/build/cjs/components/CardBase/CardBase.d.ts +3 -5
  82. package/build/cjs/components/CardBase/CardBase.js.map +1 -1
  83. package/build/cjs/components/ContentIcon/ContentIcon.d.ts +8 -0
  84. package/build/cjs/components/ContentIcon/ContentIcon.js +22 -0
  85. package/build/cjs/components/ContentIcon/ContentIcon.js.map +1 -0
  86. package/build/cjs/components/ContentLabels/ContentLabels.css +53 -0
  87. package/build/cjs/components/ContentLabels/ContentLabels.d.ts +3 -0
  88. package/build/cjs/components/ContentLabels/ContentLabels.js +16 -0
  89. package/build/cjs/components/ContentLabels/ContentLabels.js.map +1 -0
  90. package/build/cjs/components/ContentList/ContentList.js +3 -3
  91. package/build/cjs/components/ContentList/ContentList.js.map +1 -1
  92. package/build/cjs/components/DefaultVideo/DefaultVideo.js +23 -2
  93. package/build/cjs/components/DefaultVideo/DefaultVideo.js.map +1 -1
  94. package/build/cjs/components/FullscreenMedia/FullscreenMedia.css +3 -1
  95. package/build/cjs/components/Icon/Icon.css +10 -0
  96. package/build/cjs/components/Icon/Icon.d.ts +9 -0
  97. package/build/cjs/components/Icon/Icon.js +24 -0
  98. package/build/cjs/components/Icon/Icon.js.map +1 -0
  99. package/build/cjs/components/IconWrapper/IconWrapper.css +16 -1
  100. package/build/cjs/components/IconWrapper/IconWrapper.js +10 -6
  101. package/build/cjs/components/IconWrapper/IconWrapper.js.map +1 -1
  102. package/build/cjs/components/InnerForm/InnerForm.d.ts +1 -2
  103. package/build/cjs/components/InnerForm/InnerForm.js.map +1 -1
  104. package/build/cjs/components/Link/Link.d.ts +2 -2
  105. package/build/cjs/components/Link/Link.js +2 -2
  106. package/build/cjs/components/Link/Link.js.map +1 -1
  107. package/build/cjs/components/Links/Links.d.ts +1 -1
  108. package/build/cjs/components/Links/Links.js +1 -1
  109. package/build/cjs/components/Links/Links.js.map +1 -1
  110. package/build/cjs/components/Map/GoogleMap.d.ts +1 -2
  111. package/build/cjs/components/Map/GoogleMap.js +19 -3
  112. package/build/cjs/components/Map/GoogleMap.js.map +1 -1
  113. package/build/cjs/components/Map/YMap/YMap.d.ts +4 -4
  114. package/build/cjs/components/Map/YMap/YMap.js +46 -15
  115. package/build/cjs/components/Map/YMap/YMap.js.map +1 -1
  116. package/build/cjs/components/Map/YMap/YandexMap.d.ts +1 -2
  117. package/build/cjs/components/Map/YMap/YandexMap.js +73 -7
  118. package/build/cjs/components/Map/YMap/YandexMap.js.map +1 -1
  119. package/build/cjs/components/Map/YMap/utils.d.ts +8 -0
  120. package/build/cjs/components/Map/YMap/utils.js +96 -0
  121. package/build/cjs/components/Map/YMap/utils.js.map +1 -0
  122. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.d.ts +1 -2
  123. package/build/cjs/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
  124. package/build/cjs/components/Media/Video/Video.js +2 -13
  125. package/build/cjs/components/Media/Video/Video.js.map +1 -1
  126. package/build/cjs/components/MediaBase/MediaBase.d.ts +1 -3
  127. package/build/cjs/components/MediaBase/MediaBase.js.map +1 -1
  128. package/build/cjs/components/ReactPlayer/ReactPlayer.d.ts +1 -2
  129. package/build/cjs/components/ReactPlayer/ReactPlayer.js +19 -13
  130. package/build/cjs/components/ReactPlayer/ReactPlayer.js.map +1 -1
  131. package/build/cjs/components/Title/Title.d.ts +3 -2
  132. package/build/cjs/components/Title/Title.js +2 -2
  133. package/build/cjs/components/Title/Title.js.map +1 -1
  134. package/build/cjs/components/UnpublishedLabel/UnpublishedLabel.js.map +1 -1
  135. package/build/cjs/components/YandexForm/YandexForm.js +1 -1
  136. package/build/cjs/components/YandexForm/YandexForm.js.map +1 -1
  137. package/build/cjs/components/index.d.ts +2 -0
  138. package/build/cjs/components/index.js +5 -1
  139. package/build/cjs/components/index.js.map +1 -1
  140. package/build/cjs/constructor-items.d.ts +7 -7
  141. package/build/cjs/containers/PageConstructor/PageConstructor.css +0 -1
  142. package/build/cjs/containers/PageConstructor/Provider.js +2 -0
  143. package/build/cjs/containers/PageConstructor/Provider.js.map +1 -1
  144. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.d.ts +1 -2
  145. package/build/cjs/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
  146. package/build/cjs/context/locationContext/locationContext.d.ts +1 -1
  147. package/build/cjs/context/locationContext/locationContext.js.map +1 -1
  148. package/build/cjs/context/mapsContext/mapsProvider.d.ts +1 -1
  149. package/build/cjs/context/mapsContext/mapsProvider.js.map +1 -1
  150. package/build/cjs/context/windowWidthContext/WindowWidthContext.d.ts +4 -0
  151. package/build/cjs/context/windowWidthContext/WindowWidthContext.js +28 -0
  152. package/build/cjs/context/windowWidthContext/WindowWidthContext.js.map +1 -0
  153. package/build/cjs/context/windowWidthContext/index.d.ts +1 -0
  154. package/build/cjs/context/windowWidthContext/index.js +5 -0
  155. package/build/cjs/context/windowWidthContext/index.js.map +1 -0
  156. package/build/cjs/editor/components/AddBlock/AddBlock.d.ts +1 -2
  157. package/build/cjs/editor/components/AddBlock/AddBlock.js.map +1 -1
  158. package/build/cjs/editor/components/Layout/Layout.d.ts +2 -6
  159. package/build/cjs/editor/components/Layout/Layout.js.map +1 -1
  160. package/build/cjs/editor/data/previews/default-preview.d.ts +1 -1
  161. package/build/cjs/editor/data/previews/default-preview.js.map +1 -1
  162. package/build/cjs/editor/data/previews/header-block.d.ts +1 -1
  163. package/build/cjs/editor/data/previews/header-block.js.map +1 -1
  164. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +2 -3
  165. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +1 -1
  166. package/build/cjs/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
  167. package/build/cjs/editor/icons/Tablet.d.ts +1 -1
  168. package/build/cjs/editor/icons/Tablet.js.map +1 -1
  169. package/build/cjs/grid/Grid/Grid.js.map +1 -1
  170. package/build/cjs/grid/Row/Row.d.ts +1 -1
  171. package/build/cjs/grid/Row/Row.js.map +1 -1
  172. package/build/cjs/hooks/useDeviceValue.d.ts +2 -0
  173. package/build/cjs/hooks/useDeviceValue.js +33 -0
  174. package/build/cjs/hooks/useDeviceValue.js.map +1 -0
  175. package/build/cjs/icons/BrandIconDark.d.ts +1 -1
  176. package/build/cjs/icons/BrandIconDark.js.map +1 -1
  177. package/build/cjs/icons/BrandIconLight.d.ts +1 -1
  178. package/build/cjs/icons/BrandIconLight.js.map +1 -1
  179. package/build/cjs/icons/BrandName.d.ts +1 -1
  180. package/build/cjs/icons/BrandName.js.map +1 -1
  181. package/build/cjs/icons/Chevron.d.ts +1 -1
  182. package/build/cjs/icons/Chevron.js.map +1 -1
  183. package/build/cjs/icons/Facebook.d.ts +1 -1
  184. package/build/cjs/icons/Facebook.js.map +1 -1
  185. package/build/cjs/icons/Github.d.ts +1 -1
  186. package/build/cjs/icons/Github.js.map +1 -1
  187. package/build/cjs/icons/Linkedin.d.ts +1 -1
  188. package/build/cjs/icons/Linkedin.js.map +1 -1
  189. package/build/cjs/icons/NavigationArrow.d.ts +1 -1
  190. package/build/cjs/icons/NavigationArrow.js.map +1 -1
  191. package/build/cjs/icons/NavigationChevron.d.ts +1 -1
  192. package/build/cjs/icons/NavigationChevron.js.map +1 -1
  193. package/build/cjs/icons/Telegram.d.ts +1 -1
  194. package/build/cjs/icons/Telegram.js.map +1 -1
  195. package/build/cjs/icons/Twitter.d.ts +1 -1
  196. package/build/cjs/icons/Twitter.js.map +1 -1
  197. package/build/cjs/icons/Vk.d.ts +1 -1
  198. package/build/cjs/icons/Vk.js.map +1 -1
  199. package/build/cjs/internal-typings/global.d.ts +4 -2
  200. package/build/cjs/models/constructor-items/blocks.d.ts +42 -17
  201. package/build/cjs/models/constructor-items/blocks.js.map +1 -1
  202. package/build/cjs/models/constructor-items/common.d.ts +42 -4
  203. package/build/cjs/models/constructor-items/common.js.map +1 -1
  204. package/build/cjs/models/constructor-items/sub-blocks.d.ts +17 -6
  205. package/build/cjs/models/constructor-items/sub-blocks.js.map +1 -1
  206. package/build/cjs/models/navigation.d.ts +2 -1
  207. package/build/cjs/models/navigation.js.map +1 -1
  208. package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.d.ts +1 -2
  209. package/build/cjs/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
  210. package/build/cjs/navigation/components/Logo/Logo.d.ts +1 -2
  211. package/build/cjs/navigation/components/Logo/Logo.js.map +1 -1
  212. package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.d.ts +1 -2
  213. package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.js.map +1 -1
  214. package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.d.ts +1 -2
  215. package/build/cjs/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
  216. package/build/cjs/navigation/components/Navigation/Navigation.d.ts +2 -1
  217. package/build/cjs/navigation/components/Navigation/Navigation.js +5 -2
  218. package/build/cjs/navigation/components/Navigation/Navigation.js.map +1 -1
  219. package/build/cjs/navigation/components/NavigationItem/NavigationItem.d.ts +1 -2
  220. package/build/cjs/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
  221. package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.d.ts +1 -2
  222. package/build/cjs/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
  223. package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.d.ts +1 -2
  224. package/build/cjs/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
  225. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.d.ts +1 -2
  226. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +12 -3
  227. package/build/cjs/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
  228. package/build/cjs/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +3 -4
  229. package/build/cjs/navigation/components/NavigationList/NavigationList.d.ts +1 -2
  230. package/build/cjs/navigation/components/NavigationList/NavigationList.js.map +1 -1
  231. package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.d.ts +1 -2
  232. package/build/cjs/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
  233. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -2
  234. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
  235. package/build/cjs/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
  236. package/build/cjs/navigation/components/SocialIcon/SocialIcon.d.ts +1 -2
  237. package/build/cjs/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
  238. package/build/cjs/navigation/containers/Layout/Layout.d.ts +1 -1
  239. package/build/cjs/navigation/containers/Layout/Layout.js.map +1 -1
  240. package/build/cjs/navigation/hooks/useActiveNavItem.d.ts +8 -7
  241. package/build/cjs/navigation/utils.d.ts +4 -3
  242. package/build/cjs/node_modules/swiper/modules/a11y.css +9 -0
  243. package/build/cjs/node_modules/swiper/modules/autoplay.css +0 -0
  244. package/build/cjs/node_modules/swiper/modules/index.js +1309 -0
  245. package/build/cjs/node_modules/swiper/modules/pagination.css +181 -0
  246. package/build/cjs/node_modules/swiper/package.json +14 -0
  247. package/build/cjs/node_modules/swiper/swiper-react.d.ts +497 -0
  248. package/build/cjs/node_modules/swiper/swiper-react.js +4651 -0
  249. package/build/cjs/node_modules/swiper/swiper.css +229 -0
  250. package/build/cjs/node_modules/swiper/swiper.d.ts +5 -0
  251. package/build/cjs/node_modules/swiper/swiper.js +3822 -0
  252. package/build/cjs/node_modules/swiper/types/index.d.ts +6 -0
  253. package/build/cjs/node_modules/swiper/types/modules/index.d.ts +53 -0
  254. package/build/cjs/schema/constants.d.ts +62 -0
  255. package/build/cjs/schema/validators/common.d.ts +156 -1
  256. package/build/cjs/schema/validators/common.js +74 -1
  257. package/build/cjs/schema/validators/common.js.map +1 -1
  258. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
  259. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
  260. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +16 -0
  261. package/build/cjs/sub-blocks/BackgroundCard/schema.js +1 -0
  262. package/build/cjs/sub-blocks/BackgroundCard/schema.js.map +1 -1
  263. package/build/cjs/sub-blocks/BasicCard/BasicCard.js +15 -2
  264. package/build/cjs/sub-blocks/BasicCard/BasicCard.js.map +1 -1
  265. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +38 -0
  266. package/build/cjs/sub-blocks/BasicCard/schema.js +7 -0
  267. package/build/cjs/sub-blocks/BasicCard/schema.js.map +1 -1
  268. package/build/cjs/sub-blocks/Content/Content.css +16 -2
  269. package/build/cjs/sub-blocks/Content/Content.js +12 -3
  270. package/build/cjs/sub-blocks/Content/Content.js.map +1 -1
  271. package/build/cjs/sub-blocks/Content/schema.d.ts +134 -1
  272. package/build/cjs/sub-blocks/Content/schema.js +23 -2
  273. package/build/cjs/sub-blocks/Content/schema.js.map +1 -1
  274. package/build/cjs/sub-blocks/ImageCard/schema.d.ts +11 -0
  275. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +2 -2
  276. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
  277. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +11 -0
  278. package/build/cjs/text-transform/common.d.ts +2 -1
  279. package/build/cjs/text-transform/common.js +2 -2
  280. package/build/cjs/text-transform/common.js.map +1 -1
  281. package/build/cjs/text-transform/config.js +16 -11
  282. package/build/cjs/text-transform/config.js.map +1 -1
  283. package/build/cjs/utils/breakpoint.d.ts +7 -0
  284. package/build/cjs/utils/breakpoint.js +12 -0
  285. package/build/cjs/utils/breakpoint.js.map +1 -0
  286. package/build/cjs/utils/icons.d.ts +3 -0
  287. package/build/cjs/utils/icons.js +16 -0
  288. package/build/cjs/utils/icons.js.map +1 -0
  289. package/build/cjs/utils/index.d.ts +2 -0
  290. package/build/cjs/utils/index.js +2 -0
  291. package/build/cjs/utils/index.js.map +1 -1
  292. package/build/esm/blocks/CardLayout/CardLayout.css +6 -0
  293. package/build/esm/blocks/CardLayout/CardLayout.d.ts +1 -1
  294. package/build/esm/blocks/CardLayout/CardLayout.js +3 -3
  295. package/build/esm/blocks/CardLayout/CardLayout.js.map +1 -1
  296. package/build/esm/blocks/Companies/schema.d.ts +1 -0
  297. package/build/esm/blocks/Companies/schema.js +2 -1
  298. package/build/esm/blocks/Companies/schema.js.map +1 -1
  299. package/build/esm/blocks/ContentLayout/ContentLayout.js +4 -2
  300. package/build/esm/blocks/ContentLayout/ContentLayout.js.map +1 -1
  301. package/build/esm/blocks/ContentLayout/schema.d.ts +11 -0
  302. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +5 -5
  303. package/build/esm/blocks/FilterBlock/FilterBlock.d.ts +1 -2
  304. package/build/esm/blocks/FilterBlock/FilterBlock.js.map +1 -1
  305. package/build/esm/blocks/FoldableList/schema.d.ts +11 -0
  306. package/build/esm/blocks/Form/Form.css +5 -2
  307. package/build/esm/blocks/Form/Form.d.ts +2 -3
  308. package/build/esm/blocks/Form/Form.js +14 -11
  309. package/build/esm/blocks/Form/Form.js.map +1 -1
  310. package/build/esm/blocks/Form/schema.d.ts +12 -4
  311. package/build/esm/blocks/Form/schema.js +1 -4
  312. package/build/esm/blocks/Form/schema.js.map +1 -1
  313. package/build/esm/blocks/Form/utils.d.ts +3 -0
  314. package/build/esm/blocks/Form/utils.js +16 -0
  315. package/build/esm/blocks/Form/utils.js.map +1 -0
  316. package/build/esm/blocks/Header/Header.css +13 -0
  317. package/build/esm/blocks/Header/Header.d.ts +7 -1
  318. package/build/esm/blocks/Header/Header.js +11 -18
  319. package/build/esm/blocks/Header/Header.js.map +1 -1
  320. package/build/esm/blocks/Header/schema.d.ts +77 -0
  321. package/build/esm/blocks/Header/schema.js +12 -0
  322. package/build/esm/blocks/Header/schema.js.map +1 -1
  323. package/build/esm/blocks/HeaderSlider/schema.d.ts +29 -0
  324. package/build/esm/blocks/Info/schema.d.ts +22 -0
  325. package/build/esm/blocks/Map/Map.js.map +1 -1
  326. package/build/esm/blocks/Map/schema.d.ts +101 -0
  327. package/build/esm/blocks/Media/Media.js +1 -1
  328. package/build/esm/blocks/Media/Media.js.map +1 -1
  329. package/build/esm/blocks/Media/schema.d.ts +22 -0
  330. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js +3 -4
  331. package/build/esm/blocks/Questions/QuestionBlockItem/QuestionBlockItem.js.map +1 -1
  332. package/build/esm/blocks/Questions/Questions.js +32 -7
  333. package/build/esm/blocks/Questions/Questions.js.map +1 -1
  334. package/build/esm/blocks/Questions/schema.d.ts +11 -0
  335. package/build/esm/blocks/Share/Share.js +1 -3
  336. package/build/esm/blocks/Share/Share.js.map +1 -1
  337. package/build/esm/blocks/Slider/Slider.css +62 -1
  338. package/build/esm/blocks/Slider/Slider.d.ts +6 -4
  339. package/build/esm/blocks/Slider/Slider.js +7 -7
  340. package/build/esm/blocks/Slider/Slider.js.map +1 -1
  341. package/build/esm/blocks/Slider/useSlider.d.ts +2 -3
  342. package/build/esm/blocks/Slider/useSlider.js +3 -7
  343. package/build/esm/blocks/Slider/useSlider.js.map +1 -1
  344. package/build/esm/blocks/Slider/useSliderPagination.d.ts +1 -1
  345. package/build/esm/blocks/Slider/useSliderPagination.js.map +1 -1
  346. package/build/esm/blocks/Slider/utils.d.ts +1 -1
  347. package/build/esm/blocks/Slider/utils.js.map +1 -1
  348. package/build/esm/blocks/Table/Table.js +15 -3
  349. package/build/esm/blocks/Table/Table.js.map +1 -1
  350. package/build/esm/blocks/Tabs/TabContent/TabContent.js +7 -7
  351. package/build/esm/blocks/Tabs/TabContent/TabContent.js.map +1 -1
  352. package/build/esm/blocks/Tabs/Tabs.js +2 -2
  353. package/build/esm/blocks/Tabs/Tabs.js.map +1 -1
  354. package/build/esm/blocks/Tabs/schema.d.ts +11 -0
  355. package/build/esm/components/Button/Button.css +2 -7
  356. package/build/esm/components/Button/Button.js +29 -4
  357. package/build/esm/components/Button/Button.js.map +1 -1
  358. package/build/esm/components/ButtonTabs/ButtonTabs.d.ts +1 -1
  359. package/build/esm/components/ButtonTabs/ButtonTabs.js.map +1 -1
  360. package/build/esm/components/Buttons/Buttons.css +3 -0
  361. package/build/esm/components/Buttons/Buttons.d.ts +1 -2
  362. package/build/esm/components/Buttons/Buttons.js +1 -1
  363. package/build/esm/components/Buttons/Buttons.js.map +1 -1
  364. package/build/esm/components/CardBase/CardBase.css +15 -0
  365. package/build/esm/components/CardBase/CardBase.d.ts +3 -5
  366. package/build/esm/components/CardBase/CardBase.js.map +1 -1
  367. package/build/esm/components/ContentIcon/ContentIcon.d.ts +8 -0
  368. package/build/esm/components/ContentIcon/ContentIcon.js +19 -0
  369. package/build/esm/components/ContentIcon/ContentIcon.js.map +1 -0
  370. package/build/esm/components/ContentLabels/ContentLabels.css +53 -0
  371. package/build/esm/components/ContentLabels/ContentLabels.d.ts +4 -0
  372. package/build/esm/components/ContentLabels/ContentLabels.js +14 -0
  373. package/build/esm/components/ContentLabels/ContentLabels.js.map +1 -0
  374. package/build/esm/components/ContentList/ContentList.js +3 -3
  375. package/build/esm/components/ContentList/ContentList.js.map +1 -1
  376. package/build/esm/components/DefaultVideo/DefaultVideo.js +23 -2
  377. package/build/esm/components/DefaultVideo/DefaultVideo.js.map +1 -1
  378. package/build/esm/components/FullscreenMedia/FullscreenMedia.css +3 -1
  379. package/build/esm/components/Icon/Icon.css +10 -0
  380. package/build/esm/components/Icon/Icon.d.ts +10 -0
  381. package/build/esm/components/Icon/Icon.js +22 -0
  382. package/build/esm/components/Icon/Icon.js.map +1 -0
  383. package/build/esm/components/IconWrapper/IconWrapper.css +16 -1
  384. package/build/esm/components/IconWrapper/IconWrapper.js +10 -6
  385. package/build/esm/components/IconWrapper/IconWrapper.js.map +1 -1
  386. package/build/esm/components/InnerForm/InnerForm.d.ts +1 -2
  387. package/build/esm/components/InnerForm/InnerForm.js.map +1 -1
  388. package/build/esm/components/Link/Link.d.ts +2 -2
  389. package/build/esm/components/Link/Link.js +2 -2
  390. package/build/esm/components/Link/Link.js.map +1 -1
  391. package/build/esm/components/Links/Links.d.ts +1 -1
  392. package/build/esm/components/Links/Links.js +1 -1
  393. package/build/esm/components/Links/Links.js.map +1 -1
  394. package/build/esm/components/Map/GoogleMap.d.ts +1 -2
  395. package/build/esm/components/Map/GoogleMap.js +19 -3
  396. package/build/esm/components/Map/GoogleMap.js.map +1 -1
  397. package/build/esm/components/Map/YMap/YMap.d.ts +4 -4
  398. package/build/esm/components/Map/YMap/YMap.js +46 -15
  399. package/build/esm/components/Map/YMap/YMap.js.map +1 -1
  400. package/build/esm/components/Map/YMap/YandexMap.d.ts +1 -2
  401. package/build/esm/components/Map/YMap/YandexMap.js +73 -7
  402. package/build/esm/components/Map/YMap/YandexMap.js.map +1 -1
  403. package/build/esm/components/Map/YMap/utils.d.ts +8 -0
  404. package/build/esm/components/Map/YMap/utils.js +90 -0
  405. package/build/esm/components/Map/YMap/utils.js.map +1 -0
  406. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.d.ts +1 -2
  407. package/build/esm/components/Media/FullscreenVideo/FullscreenVideo.js.map +1 -1
  408. package/build/esm/components/Media/Video/Video.js +2 -13
  409. package/build/esm/components/Media/Video/Video.js.map +1 -1
  410. package/build/esm/components/MediaBase/MediaBase.d.ts +1 -3
  411. package/build/esm/components/MediaBase/MediaBase.js.map +1 -1
  412. package/build/esm/components/ReactPlayer/ReactPlayer.d.ts +1 -2
  413. package/build/esm/components/ReactPlayer/ReactPlayer.js +19 -13
  414. package/build/esm/components/ReactPlayer/ReactPlayer.js.map +1 -1
  415. package/build/esm/components/Title/Title.d.ts +3 -2
  416. package/build/esm/components/Title/Title.js +2 -2
  417. package/build/esm/components/Title/Title.js.map +1 -1
  418. package/build/esm/components/UnpublishedLabel/UnpublishedLabel.js.map +1 -1
  419. package/build/esm/components/YandexForm/YandexForm.js +1 -1
  420. package/build/esm/components/YandexForm/YandexForm.js.map +1 -1
  421. package/build/esm/components/index.d.ts +2 -0
  422. package/build/esm/components/index.js +2 -0
  423. package/build/esm/components/index.js.map +1 -1
  424. package/build/esm/constructor-items.d.ts +7 -7
  425. package/build/esm/containers/PageConstructor/PageConstructor.css +0 -1
  426. package/build/esm/containers/PageConstructor/Provider.js +2 -0
  427. package/build/esm/containers/PageConstructor/Provider.js.map +1 -1
  428. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.d.ts +1 -2
  429. package/build/esm/containers/PageConstructor/components/ConstructorBlocks/ConstructorBlocks.js.map +1 -1
  430. package/build/esm/context/locationContext/locationContext.d.ts +1 -1
  431. package/build/esm/context/locationContext/locationContext.js.map +1 -1
  432. package/build/esm/context/mapsContext/mapsProvider.d.ts +1 -1
  433. package/build/esm/context/mapsContext/mapsProvider.js.map +1 -1
  434. package/build/esm/context/windowWidthContext/WindowWidthContext.d.ts +4 -0
  435. package/build/esm/context/windowWidthContext/WindowWidthContext.js +22 -0
  436. package/build/esm/context/windowWidthContext/WindowWidthContext.js.map +1 -0
  437. package/build/esm/context/windowWidthContext/index.d.ts +1 -0
  438. package/build/esm/context/windowWidthContext/index.js +2 -0
  439. package/build/esm/context/windowWidthContext/index.js.map +1 -0
  440. package/build/esm/editor/components/AddBlock/AddBlock.d.ts +1 -2
  441. package/build/esm/editor/components/AddBlock/AddBlock.js.map +1 -1
  442. package/build/esm/editor/components/Layout/Layout.d.ts +2 -6
  443. package/build/esm/editor/components/Layout/Layout.js.map +1 -1
  444. package/build/esm/editor/data/previews/default-preview.d.ts +1 -1
  445. package/build/esm/editor/data/previews/default-preview.js.map +1 -1
  446. package/build/esm/editor/data/previews/header-block.d.ts +1 -1
  447. package/build/esm/editor/data/previews/header-block.js.map +1 -1
  448. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.d.ts +2 -3
  449. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js +1 -1
  450. package/build/esm/editor/dynamic-forms-custom/components/OneOfCustom/OneOfCustom.js.map +1 -1
  451. package/build/esm/editor/icons/Tablet.d.ts +1 -1
  452. package/build/esm/editor/icons/Tablet.js.map +1 -1
  453. package/build/esm/grid/Grid/Grid.d.ts +1 -1
  454. package/build/esm/grid/Grid/Grid.js +1 -1
  455. package/build/esm/grid/Grid/Grid.js.map +1 -1
  456. package/build/esm/grid/Row/Row.d.ts +1 -1
  457. package/build/esm/grid/Row/Row.js.map +1 -1
  458. package/build/esm/hooks/useDeviceValue.d.ts +2 -0
  459. package/build/esm/hooks/useDeviceValue.js +29 -0
  460. package/build/esm/hooks/useDeviceValue.js.map +1 -0
  461. package/build/esm/icons/BrandIconDark.d.ts +1 -1
  462. package/build/esm/icons/BrandIconDark.js.map +1 -1
  463. package/build/esm/icons/BrandIconLight.d.ts +1 -1
  464. package/build/esm/icons/BrandIconLight.js.map +1 -1
  465. package/build/esm/icons/BrandName.d.ts +1 -1
  466. package/build/esm/icons/BrandName.js.map +1 -1
  467. package/build/esm/icons/Chevron.d.ts +1 -1
  468. package/build/esm/icons/Chevron.js.map +1 -1
  469. package/build/esm/icons/Facebook.d.ts +1 -1
  470. package/build/esm/icons/Facebook.js.map +1 -1
  471. package/build/esm/icons/Github.d.ts +1 -1
  472. package/build/esm/icons/Github.js.map +1 -1
  473. package/build/esm/icons/Linkedin.d.ts +1 -1
  474. package/build/esm/icons/Linkedin.js.map +1 -1
  475. package/build/esm/icons/NavigationArrow.d.ts +1 -1
  476. package/build/esm/icons/NavigationArrow.js.map +1 -1
  477. package/build/esm/icons/NavigationChevron.d.ts +1 -1
  478. package/build/esm/icons/NavigationChevron.js.map +1 -1
  479. package/build/esm/icons/Telegram.d.ts +1 -1
  480. package/build/esm/icons/Telegram.js.map +1 -1
  481. package/build/esm/icons/Twitter.d.ts +1 -1
  482. package/build/esm/icons/Twitter.js.map +1 -1
  483. package/build/esm/icons/Vk.d.ts +1 -1
  484. package/build/esm/icons/Vk.js.map +1 -1
  485. package/build/esm/internal-typings/global.d.ts +4 -2
  486. package/build/esm/models/constructor-items/blocks.d.ts +42 -17
  487. package/build/esm/models/constructor-items/blocks.js.map +1 -1
  488. package/build/esm/models/constructor-items/common.d.ts +42 -4
  489. package/build/esm/models/constructor-items/common.js.map +1 -1
  490. package/build/esm/models/constructor-items/sub-blocks.d.ts +17 -6
  491. package/build/esm/models/constructor-items/sub-blocks.js.map +1 -1
  492. package/build/esm/models/navigation.d.ts +2 -1
  493. package/build/esm/models/navigation.js.map +1 -1
  494. package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.d.ts +1 -2
  495. package/build/esm/navigation/components/DesktopNavigation/DesktopNavigation.js.map +1 -1
  496. package/build/esm/navigation/components/Logo/Logo.d.ts +1 -2
  497. package/build/esm/navigation/components/Logo/Logo.js.map +1 -1
  498. package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.d.ts +1 -2
  499. package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.js.map +1 -1
  500. package/build/esm/navigation/components/MobileNavigation/MobileNavigation.d.ts +1 -2
  501. package/build/esm/navigation/components/MobileNavigation/MobileNavigation.js.map +1 -1
  502. package/build/esm/navigation/components/Navigation/Navigation.d.ts +2 -1
  503. package/build/esm/navigation/components/Navigation/Navigation.js +5 -2
  504. package/build/esm/navigation/components/Navigation/Navigation.js.map +1 -1
  505. package/build/esm/navigation/components/NavigationItem/NavigationItem.d.ts +1 -2
  506. package/build/esm/navigation/components/NavigationItem/NavigationItem.js.map +1 -1
  507. package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.d.ts +1 -2
  508. package/build/esm/navigation/components/NavigationItem/components/ContentWrapper/ContentWrapper.js.map +1 -1
  509. package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.d.ts +1 -2
  510. package/build/esm/navigation/components/NavigationItem/components/NavigationButton/NavigationButton.js.map +1 -1
  511. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.d.ts +1 -2
  512. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js +12 -3
  513. package/build/esm/navigation/components/NavigationItem/components/NavigationLink/NavigationLink.js.map +1 -1
  514. package/build/esm/navigation/components/NavigationItem/hooks/useNavigationItemMap.d.ts +3 -4
  515. package/build/esm/navigation/components/NavigationList/NavigationList.d.ts +1 -2
  516. package/build/esm/navigation/components/NavigationList/NavigationList.js.map +1 -1
  517. package/build/esm/navigation/components/NavigationListItem/NavigationListItem.d.ts +1 -2
  518. package/build/esm/navigation/components/NavigationListItem/NavigationListItem.js.map +1 -1
  519. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.d.ts +1 -2
  520. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js +1 -1
  521. package/build/esm/navigation/components/NavigationPopup/NavigationPopup.js.map +1 -1
  522. package/build/esm/navigation/components/SocialIcon/SocialIcon.d.ts +1 -2
  523. package/build/esm/navigation/components/SocialIcon/SocialIcon.js.map +1 -1
  524. package/build/esm/navigation/containers/Layout/Layout.d.ts +1 -1
  525. package/build/esm/navigation/containers/Layout/Layout.js.map +1 -1
  526. package/build/esm/navigation/hooks/useActiveNavItem.d.ts +8 -7
  527. package/build/esm/navigation/utils.d.ts +4 -3
  528. package/build/esm/schema/constants.d.ts +62 -0
  529. package/build/esm/schema/validators/common.d.ts +156 -1
  530. package/build/esm/schema/validators/common.js +73 -2
  531. package/build/esm/schema/validators/common.js.map +1 -1
  532. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
  533. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js.map +1 -1
  534. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +16 -0
  535. package/build/esm/sub-blocks/BackgroundCard/schema.js +2 -1
  536. package/build/esm/sub-blocks/BackgroundCard/schema.js.map +1 -1
  537. package/build/esm/sub-blocks/BasicCard/BasicCard.js +15 -2
  538. package/build/esm/sub-blocks/BasicCard/BasicCard.js.map +1 -1
  539. package/build/esm/sub-blocks/BasicCard/schema.d.ts +38 -0
  540. package/build/esm/sub-blocks/BasicCard/schema.js +8 -1
  541. package/build/esm/sub-blocks/BasicCard/schema.js.map +1 -1
  542. package/build/esm/sub-blocks/Content/Content.css +16 -2
  543. package/build/esm/sub-blocks/Content/Content.js +11 -3
  544. package/build/esm/sub-blocks/Content/Content.js.map +1 -1
  545. package/build/esm/sub-blocks/Content/schema.d.ts +134 -1
  546. package/build/esm/sub-blocks/Content/schema.js +23 -2
  547. package/build/esm/sub-blocks/Content/schema.js.map +1 -1
  548. package/build/esm/sub-blocks/ImageCard/schema.d.ts +11 -0
  549. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +2 -2
  550. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js.map +1 -1
  551. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +11 -0
  552. package/build/esm/text-transform/common.d.ts +2 -1
  553. package/build/esm/text-transform/common.js +2 -2
  554. package/build/esm/text-transform/common.js.map +1 -1
  555. package/build/esm/text-transform/config.js +16 -11
  556. package/build/esm/text-transform/config.js.map +1 -1
  557. package/build/esm/utils/breakpoint.d.ts +7 -0
  558. package/build/esm/utils/breakpoint.js +9 -0
  559. package/build/esm/utils/breakpoint.js.map +1 -0
  560. package/build/esm/utils/icons.d.ts +3 -0
  561. package/build/esm/utils/icons.js +11 -0
  562. package/build/esm/utils/icons.js.map +1 -0
  563. package/build/esm/utils/index.d.ts +2 -0
  564. package/build/esm/utils/index.js +2 -0
  565. package/build/esm/utils/index.js.map +1 -1
  566. package/package.json +7 -5
  567. package/schema/index.js +1 -1
  568. package/server/models/constructor-items/blocks.d.ts +42 -17
  569. package/server/models/constructor-items/common.d.ts +42 -4
  570. package/server/models/constructor-items/sub-blocks.d.ts +17 -6
  571. package/server/models/navigation.d.ts +2 -1
  572. package/server/text-transform/common.d.ts +2 -1
  573. package/server/text-transform/common.js +2 -2
  574. package/server/text-transform/config.js +16 -11
  575. package/server/utils/breakpoint.d.ts +7 -0
  576. package/server/utils/breakpoint.js +11 -0
  577. package/server/utils/icons.d.ts +3 -0
  578. package/server/utils/icons.js +47 -0
  579. package/server/utils/index.d.ts +2 -0
  580. package/server/utils/index.js +2 -0
  581. package/styles/mixins.scss +20 -0
  582. package/styles/root.scss +0 -1
  583. package/styles/storybook/index.scss +1 -0
  584. package/build/cjs/blocks/Questions/models.d.ts +0 -11
  585. package/build/cjs/blocks/Questions/models.js +0 -15
  586. package/build/cjs/blocks/Questions/models.js.map +0 -1
  587. package/build/cjs/components/ContentList/ContentListItemIcon.d.ts +0 -7
  588. package/build/cjs/components/ContentList/ContentListItemIcon.js +0 -23
  589. package/build/cjs/components/ContentList/ContentListItemIcon.js.map +0 -1
  590. package/build/esm/blocks/Questions/models.d.ts +0 -11
  591. package/build/esm/blocks/Questions/models.js +0 -12
  592. package/build/esm/blocks/Questions/models.js.map +0 -1
  593. package/build/esm/components/ContentList/ContentListItemIcon.d.ts +0 -7
  594. package/build/esm/components/ContentList/ContentListItemIcon.js +0 -20
  595. package/build/esm/components/ContentList/ContentListItemIcon.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sourceRoot":"../../../../src","sources":["blocks/Tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport ButtonTabs, {ButtonTabsItemProps} from '../../components/ButtonTabs/ButtonTabs';\nimport Title from '../../components/Title/Title';\nimport {Col, GridJustifyContent, Row} from '../../grid';\nimport {TabsBlockProps} from '../../models';\nimport {block} from '../../utils';\nimport './Tabs.scss';\nimport {TabContent} from './TabContent/TabContent';\nimport {getUniqId} from '@gravity-ui/uikit';\n\nconst b = block('tabs-block');\n\nexport const TabsBlock = ({\n items,\n title,\n description,\n animated,\n tabsColSizes,\n centered,\n direction = 'media-content',\n contentSize = 's',\n}: TabsBlockProps) => {\n const [activeTab, setActiveTab] = React.useState<string | null>(items[0].tabName);\n const [play, setPlay] = React.useState<boolean>(false);\n\n const tabs: ButtonTabsItemProps[] = items.map(({tabName}) => ({title: tabName, id: tabName}));\n const isReverse = direction === 'content-media';\n\n const tabIds = React.useMemo(\n () =>\n items.reduce(\n (acc, {tabName}) => Object.assign(acc, {[tabName]: getUniqId()}),\n {} as Record<string, string>,\n ),\n [items],\n );\n\n const getTabElementId = (tabId: string) => `${tabIds[tabId]}`;\n const getTabContentElementId = (tabId: string) => `${tabIds[tabId]}-content`;\n\n const onSelectTab = React.useCallback(\n (tabId: string | null, e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n setActiveTab(tabId);\n e.currentTarget.scrollIntoView({\n inline: 'center',\n behavior: 'smooth',\n block: 'nearest',\n });\n },\n [],\n );\n\n return (\n <AnimateBlock className={b()} onScroll={() => setPlay(true)} animate={animated}>\n <Title\n title={title}\n subtitle={description}\n className={b('title', {centered: centered})}\n />\n <Row justifyContent={centered ? GridJustifyContent.Center : undefined}>\n <Col sizes={tabsColSizes}>\n <ButtonTabs\n items={tabs}\n onSelectTab={onSelectTab}\n activeTab={activeTab}\n className={b('tabs', {centered: centered})}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n </Col>\n </Row>\n {items.map((tabData) => {\n const {tabName} = tabData;\n\n return (\n <TabContent\n key={tabName}\n tabData={tabData}\n isActive={tabName === activeTab}\n isReverse={isReverse}\n contentSize={contentSize}\n centered={centered}\n play={play}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n );\n })}\n </AnimateBlock>\n );\n};\n\nexport default TabsBlock;\n"]}
1
+ {"version":3,"file":"Tabs.js","sourceRoot":"../../../../src","sources":["blocks/Tabs/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {getUniqId} from '@gravity-ui/uikit';\n\nimport AnimateBlock from '../../components/AnimateBlock/AnimateBlock';\nimport ButtonTabs, {ButtonTabsItemProps} from '../../components/ButtonTabs/ButtonTabs';\nimport Title from '../../components/Title/Title';\nimport {Col, GridJustifyContent, Row} from '../../grid';\nimport {TabsBlockProps} from '../../models';\nimport {block} from '../../utils';\n\nimport {TabContent} from './TabContent/TabContent';\n\nimport './Tabs.scss';\n\nconst b = block('tabs-block');\n\nexport const TabsBlock = ({\n items,\n title,\n description,\n animated,\n tabsColSizes,\n centered,\n direction = 'media-content',\n contentSize = 's',\n}: TabsBlockProps) => {\n const [activeTab, setActiveTab] = React.useState<string | null>(items[0].tabName);\n const [play, setPlay] = React.useState<boolean>(false);\n\n const tabs: ButtonTabsItemProps[] = items.map(({tabName}) => ({title: tabName, id: tabName}));\n const isReverse = direction === 'content-media';\n\n const tabIds = React.useMemo(\n () =>\n items.reduce(\n (acc, {tabName}) => Object.assign(acc, {[tabName]: getUniqId()}),\n {} as Record<string, string>,\n ),\n [items],\n );\n\n const getTabElementId = (tabId: string) => `${tabIds[tabId]}`;\n const getTabContentElementId = (tabId: string) => `${tabIds[tabId]}-content`;\n\n const onSelectTab = React.useCallback(\n (tabId: string | null, e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n setActiveTab(tabId);\n e.currentTarget.scrollIntoView({\n inline: 'center',\n behavior: 'smooth',\n block: 'nearest',\n });\n },\n [],\n );\n\n return (\n <AnimateBlock className={b()} onScroll={() => setPlay(true)} animate={animated}>\n <Title\n title={title}\n subtitle={description}\n className={b('title', {centered: centered})}\n />\n <Row justifyContent={centered ? GridJustifyContent.Center : undefined}>\n <Col sizes={tabsColSizes}>\n <ButtonTabs\n items={tabs}\n onSelectTab={onSelectTab}\n activeTab={activeTab}\n className={b('tabs', {centered: centered})}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n </Col>\n </Row>\n {items.map((tabData) => {\n const {tabName} = tabData;\n\n return (\n <TabContent\n key={tabName}\n tabData={tabData}\n isActive={tabName === activeTab}\n isReverse={isReverse}\n contentSize={contentSize}\n centered={centered}\n play={play}\n getTabElementId={getTabElementId}\n getTabContentElementId={getTabContentElementId}\n />\n );\n })}\n </AnimateBlock>\n );\n};\n\nexport default TabsBlock;\n"]}
@@ -571,6 +571,17 @@ export declare const tabsItem: {
571
571
  };
572
572
  };
573
573
  } | undefined;
574
+ labels?: {
575
+ type: string;
576
+ items: {
577
+ type: string;
578
+ properties: {
579
+ when: {
580
+ type: string;
581
+ };
582
+ };
583
+ };
584
+ } | undefined;
574
585
  controlPosition?: {
575
586
  type: string;
576
587
  enum: string[];
@@ -6,13 +6,8 @@ unpredictable css rules order in build */
6
6
  .pc-button-block__content {
7
7
  display: flex;
8
8
  align-items: center;
9
- }
10
- .pc-button-block__image {
11
- width: 18px;
12
- height: 18px;
13
- }
14
- .pc-button-block__image + .pc-button-block__text, .pc-button-block__text + .pc-button-block__image {
15
- margin-left: var(--btn-image-margin);
9
+ justify-content: center;
10
+ gap: var(--g-spacing-2);
16
11
  }
17
12
  .pc-button-block_theme_github.pc-button-block_theme_github.pc-button-block_theme_github.pc-button-block_theme_github {
18
13
  --g-button-background-color: var(--pc-monochrome-button-background-color);
@@ -10,8 +10,10 @@ const hooks_1 = require("../../hooks/index.js");
10
10
  const icons_1 = require("../../icons/index.js");
11
11
  const models_1 = require("../../models/index.js");
12
12
  const utils_1 = require("../../utils/index.js");
13
+ const icons_2 = require("../../utils/icons.js");
13
14
  const i18n_1 = require("./i18n/index.js");
14
15
  const utils_2 = require("./utils.js");
16
+ const DEFAULT_IMG_SIZE = 16;
15
17
  const b = (0, utils_1.block)('button-block');
16
18
  // eslint-disable-next-line complexity
17
19
  const Button = (props) => {
@@ -27,10 +29,18 @@ const Button = (props) => {
27
29
  }, [handleAnalytics, analyticsEvents, onClickOrigin]);
28
30
  const buttonModifiers = { size, theme, width };
29
31
  const buttonImg = img instanceof Object
30
- ? { url: img.url, position: img.position || defaultImgPosition, alt: img.alt }
32
+ ? {
33
+ url: img.url,
34
+ iconData: img.iconData,
35
+ iconSize: img.iconSize,
36
+ className: img.className,
37
+ position: img.position || defaultImgPosition,
38
+ alt: img.alt,
39
+ }
31
40
  : { url: img, position: defaultImgPosition };
41
+ const { position, iconData, iconSize, className: iconClassName, url: imgUrl, alt } = buttonImg;
32
42
  const buttonClass = img
33
- ? b({ position: buttonImg.position, ...buttonModifiers }, className)
43
+ ? b({ position, ...buttonModifiers }, className)
34
44
  : b({ ...buttonModifiers }, className);
35
45
  const buttonProps = {
36
46
  ...rest,
@@ -42,13 +52,28 @@ const Button = (props) => {
42
52
  return (0, jsx_runtime_1.jsx)(components_1.StoreBadge, { className: buttonClass, platform: platform, href: url });
43
53
  }
44
54
  let icon;
45
- let image = img && ((0, jsx_runtime_1.jsx)("img", { className: b('image'), src: buttonImg.url, alt: buttonImg.alt || (0, i18n_1.i18n)('image-alt') }));
55
+ let image;
56
+ if (img && iconData) {
57
+ let finalIconData = iconData;
58
+ if (typeof iconData === 'string') {
59
+ const gravityIcon = (0, icons_2.getGravityIcon)(iconData);
60
+ if (gravityIcon) {
61
+ finalIconData = gravityIcon;
62
+ }
63
+ }
64
+ const finalIconClassName = iconClassName ? b('icon', iconClassName) : b('icon');
65
+ icon = ((0, jsx_runtime_1.jsx)(uikit_1.Icon, { className: finalIconClassName, data: finalIconData, size: iconSize, qa: utils_2.ICON_QA }));
66
+ }
67
+ else if (img && imgUrl) {
68
+ image = ((0, jsx_runtime_1.jsx)("img", { className: b('image'), width: iconSize || DEFAULT_IMG_SIZE, height: iconSize || DEFAULT_IMG_SIZE, src: imgUrl, alt: alt || (0, i18n_1.i18n)('image-alt') }));
69
+ }
70
+ // Special handling for github theme (for backwards compatibility)
46
71
  if (theme === 'github') {
47
72
  icon = (0, jsx_runtime_1.jsx)(uikit_1.Icon, { className: b('icon'), data: icons_1.Github, size: 24, qa: utils_2.ICON_QA });
48
73
  image = undefined;
49
74
  }
50
75
  const buttonTheme = theme === 'scale' ? 'accent' : theme;
51
- return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, { className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), title: urlTitle, width: width, ...buttonProps, children: [icon && buttonImg.position === 'left' ? icon : null, (0, jsx_runtime_1.jsxs)("span", { className: b('content'), children: [image && buttonImg.position === 'left' ? image : null, (0, jsx_runtime_1.jsx)("span", { className: b('text'), children: text }), image && buttonImg.position === 'right' ? image : null] }), icon && buttonImg.position === 'right' ? icon : null] }));
76
+ return ((0, jsx_runtime_1.jsxs)(uikit_1.Button, { className: buttonClass, view: (0, utils_2.toCommonView)(buttonTheme), size: (0, utils_2.toCommonSize)(size), title: urlTitle, width: width, ...buttonProps, children: [icon && position === 'left' ? icon : null, (0, jsx_runtime_1.jsxs)("span", { className: b('content'), children: [image && position === 'left' ? image : null, (0, jsx_runtime_1.jsx)("span", { className: b('text'), children: text }), image && position === 'right' ? image : null] }), icon && position === 'right' ? icon : null] }));
52
77
  };
53
78
  exports.default = Button;
54
79
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {StoreBadge} from '@gravity-ui/components';\nimport {\n Button as CommonButton,\n Icon,\n Platform,\n ButtonProps as UIKitButtonProps,\n} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext/localeContext';\nimport {useAnalytics} from '../../hooks';\nimport {Github} from '../../icons';\nimport {ButtonProps as ButtonParams, DefaultEventNames, QAProps} from '../../models';\nimport {block, setUrlTld} from '../../utils';\n\nimport {i18n} from './i18n';\nimport {ICON_QA, OldButtonSize, OldButtonTheme, toCommonSize, toCommonView} from './utils';\n\nimport './Button.scss';\n\nexport interface ButtonProps extends Omit<ButtonParams, 'url'>, QAProps {\n className?: string;\n id?: string;\n url?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nconst b = block('button-block');\n\n// eslint-disable-next-line complexity\nconst Button = (props: ButtonProps) => {\n const {tld} = React.useContext(LocaleContext);\n const {\n className,\n analyticsEvents,\n size = 'l',\n theme = 'normal',\n url,\n urlTitle,\n img,\n onClick: onClickOrigin,\n text,\n width,\n ...rest\n } = props;\n const defaultImgPosition = 'left';\n const handleAnalytics = useAnalytics(DefaultEventNames.Button, url);\n const onClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n handleAnalytics(analyticsEvents);\n\n if (onClickOrigin) {\n onClickOrigin(e);\n }\n },\n [handleAnalytics, analyticsEvents, onClickOrigin],\n );\n\n const buttonModifiers = {size, theme, width};\n\n const buttonImg =\n img instanceof Object\n ? {url: img.url, position: img.position || defaultImgPosition, alt: img.alt}\n : {url: img, position: defaultImgPosition};\n\n const buttonClass = img\n ? b({position: buttonImg.position, ...buttonModifiers}, className)\n : b({...buttonModifiers}, className);\n\n const buttonProps = {\n ...rest,\n href: url ? setUrlTld(url, tld) : undefined,\n onClick,\n };\n\n if (theme === 'app-store' || theme === 'google-play') {\n const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;\n\n return <StoreBadge className={buttonClass} platform={platform} href={url as string} />;\n }\n\n let icon;\n let image = img && (\n <img className={b('image')} src={buttonImg.url} alt={buttonImg.alt || i18n('image-alt')} />\n );\n\n if (theme === 'github') {\n icon = <Icon className={b('icon')} data={Github} size={24} qa={ICON_QA} />;\n image = undefined;\n }\n\n const buttonTheme = theme === 'scale' ? 'accent' : theme;\n\n return (\n <CommonButton\n className={buttonClass}\n view={toCommonView(buttonTheme as OldButtonTheme)}\n size={toCommonSize(size as OldButtonSize)}\n title={urlTitle}\n width={width}\n {...(buttonProps as UIKitButtonProps)}\n >\n {icon && buttonImg.position === 'left' ? icon : null}\n <span className={b('content')}>\n {image && buttonImg.position === 'left' ? image : null}\n <span className={b('text')}>{text}</span>\n {image && buttonImg.position === 'right' ? image : null}\n </span>\n {icon && buttonImg.position === 'right' ? icon : null}\n </CommonButton>\n );\n};\n\nexport default Button;\n"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"../../../../src","sources":["components/Button/Button.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {StoreBadge} from '@gravity-ui/components';\nimport {\n Button as CommonButton,\n Icon,\n Platform,\n ButtonProps as UIKitButtonProps,\n} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../context/localeContext/localeContext';\nimport {useAnalytics} from '../../hooks';\nimport {Github} from '../../icons';\nimport {ButtonProps as ButtonParams, DefaultEventNames, QAProps} from '../../models';\nimport {block, setUrlTld} from '../../utils';\nimport {getGravityIcon} from '../../utils/icons';\n\nimport {i18n} from './i18n';\nimport {ICON_QA, OldButtonSize, OldButtonTheme, toCommonSize, toCommonView} from './utils';\n\nimport './Button.scss';\n\nconst DEFAULT_IMG_SIZE = 16;\n\nexport interface ButtonProps extends Omit<ButtonParams, 'url'>, QAProps {\n className?: string;\n id?: string;\n url?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\n}\n\nconst b = block('button-block');\n\n// eslint-disable-next-line complexity\nconst Button = (props: ButtonProps) => {\n const {tld} = React.useContext(LocaleContext);\n const {\n className,\n analyticsEvents,\n size = 'l',\n theme = 'normal',\n url,\n urlTitle,\n img,\n onClick: onClickOrigin,\n text,\n width,\n ...rest\n } = props;\n const defaultImgPosition = 'left';\n const handleAnalytics = useAnalytics(DefaultEventNames.Button, url);\n const onClick = React.useCallback(\n (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n handleAnalytics(analyticsEvents);\n\n if (onClickOrigin) {\n onClickOrigin(e);\n }\n },\n [handleAnalytics, analyticsEvents, onClickOrigin],\n );\n\n const buttonModifiers = {size, theme, width};\n\n const buttonImg =\n img instanceof Object\n ? {\n url: img.url,\n iconData: img.iconData,\n iconSize: img.iconSize,\n className: img.className,\n position: img.position || defaultImgPosition,\n alt: img.alt,\n }\n : {url: img, position: defaultImgPosition};\n\n const {position, iconData, iconSize, className: iconClassName, url: imgUrl, alt} = buttonImg;\n\n const buttonClass = img\n ? b({position, ...buttonModifiers}, className)\n : b({...buttonModifiers}, className);\n\n const buttonProps = {\n ...rest,\n href: url ? setUrlTld(url, tld) : undefined,\n onClick,\n };\n\n if (theme === 'app-store' || theme === 'google-play') {\n const platform = theme === 'app-store' ? Platform.IOS : Platform.ANDROID;\n\n return <StoreBadge className={buttonClass} platform={platform} href={url as string} />;\n }\n\n let icon;\n let image;\n\n if (img && iconData) {\n let finalIconData = iconData;\n\n if (typeof iconData === 'string') {\n const gravityIcon = getGravityIcon(iconData);\n if (gravityIcon) {\n finalIconData = gravityIcon;\n }\n }\n\n const finalIconClassName = iconClassName ? b('icon', iconClassName) : b('icon');\n icon = (\n <Icon\n className={finalIconClassName}\n data={finalIconData}\n size={iconSize}\n qa={ICON_QA}\n />\n );\n } else if (img && imgUrl) {\n image = (\n <img\n className={b('image')}\n width={iconSize || DEFAULT_IMG_SIZE}\n height={iconSize || DEFAULT_IMG_SIZE}\n src={imgUrl}\n alt={alt || i18n('image-alt')}\n />\n );\n }\n\n // Special handling for github theme (for backwards compatibility)\n if (theme === 'github') {\n icon = <Icon className={b('icon')} data={Github} size={24} qa={ICON_QA} />;\n image = undefined;\n }\n\n const buttonTheme = theme === 'scale' ? 'accent' : theme;\n\n return (\n <CommonButton\n className={buttonClass}\n view={toCommonView(buttonTheme as OldButtonTheme)}\n size={toCommonSize(size as OldButtonSize)}\n title={urlTitle}\n width={width}\n {...(buttonProps as UIKitButtonProps)}\n >\n {icon && position === 'left' ? icon : null}\n <span className={b('content')}>\n {image && position === 'left' ? image : null}\n <span className={b('text')}>{text}</span>\n {image && position === 'right' ? image : null}\n </span>\n {icon && position === 'right' ? icon : null}\n </CommonButton>\n );\n};\n\nexport default Button;\n"]}
@@ -14,5 +14,5 @@ export interface ButtonTabsProps extends QAProps {
14
14
  getTabElementId?: (tabId: string) => string;
15
15
  getTabContentElementId?: (tabId: string) => string;
16
16
  }
17
- declare const ButtonTabs: React.FC<ButtonTabsProps>;
17
+ declare const ButtonTabs: ({ className, items, activeTab, onSelectTab, tabSize, qa, getTabElementId, getTabContentElementId, }: ButtonTabsProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export default ButtonTabs;
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonTabs.js","sourceRoot":"../../../../src","sources":["components/ButtonTabs/ButtonTabs.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAK/B,gDAAkC;AAClC,uCAAgC;AAIhC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC;AAqB/B,MAAM,UAAU,GAA8B,CAAC,EAC3C,SAAS,EACT,KAAK,EACL,SAAS,EACT,WAAW,EACX,OAAO,GAAG,GAAG,EACb,EAAE,EACF,eAAe,EACf,sBAAsB,GACzB,EAAE,EAAE;IACD,MAAM,WAAW,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAoB,EAAE,EAAE,CAAC,CAAC,CAA0D,EAAE,EAAE;QACrF,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,EACD,CAAC,WAAW,CAAC,CAChB,CAAC;IAEF,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,aAAU,EAAE,YACzD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,EAAE,KAAK,WAAW,CAAC;YAEpC,OAAO,CACH,uBAAC,cAAM,IACH,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,EAExC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAC/B,UAAU,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,eAAe,EAAE,QAAQ;oBACzB,eAAe,EAAE,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;iBACtD,IARI,KAAK,CASZ,CACL,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {ButtonProps, QAProps} from '../../models';\nimport {block} from '../../utils';\nimport {Button} from '../index';\n\nimport './ButtonTabs.scss';\n\nconst b = block('button-tabs');\n\nexport interface ButtonTabsItemProps\n extends Omit<ButtonProps, 'url' | 'primary' | 'target' | 'text'> {\n id: string | null;\n title: string;\n}\n\nexport interface ButtonTabsProps extends QAProps {\n className?: string;\n items: ButtonTabsItemProps[];\n activeTab?: string | null;\n onSelectTab?: (\n tabId: string | null,\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n ) => void;\n tabSize?: ButtonSize;\n getTabElementId?: (tabId: string) => string;\n getTabContentElementId?: (tabId: string) => string;\n}\n\nconst ButtonTabs: React.FC<ButtonTabsProps> = ({\n className,\n items,\n activeTab,\n onSelectTab,\n tabSize = 'l',\n qa,\n getTabElementId,\n getTabContentElementId,\n}) => {\n const activeTabId: string | null = React.useMemo(() => {\n if (activeTab) {\n return activeTab;\n }\n\n return items[0].id;\n }, [activeTab, items]);\n\n const handleClick = React.useCallback(\n (tabId: string | null) => (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n if (onSelectTab) {\n onSelectTab(tabId, e);\n }\n },\n [onSelectTab],\n );\n\n return (\n <div className={b(null, className)} role=\"tablist\" data-qa={qa}>\n {items.map(({id, title}) => {\n const isActive = id === activeTabId;\n\n return (\n <Button\n text={title}\n className={b('item', {active: isActive})}\n key={title}\n size={tabSize}\n onClick={handleClick(id)}\n id={getTabElementId?.(id ?? '')}\n extraProps={{\n role: 'tab',\n 'aria-selected': isActive,\n 'aria-controls': getTabContentElementId?.(id ?? ''),\n }}\n />\n );\n })}\n </div>\n );\n};\n\nexport default ButtonTabs;\n"]}
1
+ {"version":3,"file":"ButtonTabs.js","sourceRoot":"../../../../src","sources":["components/ButtonTabs/ButtonTabs.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAK/B,gDAAkC;AAClC,uCAAgC;AAIhC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,aAAa,CAAC,CAAC;AAqB/B,MAAM,UAAU,GAAG,CAAC,EAChB,SAAS,EACT,KAAK,EACL,SAAS,EACT,WAAW,EACX,OAAO,GAAG,GAAG,EACb,EAAE,EACF,eAAe,EACf,sBAAsB,GACR,EAAE,EAAE;IAClB,MAAM,WAAW,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClD,IAAI,SAAS,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,KAAoB,EAAE,EAAE,CAAC,CAAC,CAA0D,EAAE,EAAE;QACrF,IAAI,WAAW,EAAE,CAAC;YACd,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC,EACD,CAAC,WAAW,CAAC,CAChB,CAAC;IAEF,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,SAAS,aAAU,EAAE,YACzD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAE,KAAK,EAAC,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,EAAE,KAAK,WAAW,CAAC;YAEpC,OAAO,CACH,uBAAC,cAAM,IACH,IAAI,EAAE,KAAK,EACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,MAAM,EAAE,QAAQ,EAAC,CAAC,EAExC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC,EACxB,EAAE,EAAE,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAC/B,UAAU,EAAE;oBACR,IAAI,EAAE,KAAK;oBACX,eAAe,EAAE,QAAQ;oBACzB,eAAe,EAAE,sBAAsB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;iBACtD,IARI,KAAK,CASZ,CACL,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,UAAU,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ButtonSize} from '@gravity-ui/uikit';\n\nimport {ButtonProps, QAProps} from '../../models';\nimport {block} from '../../utils';\nimport {Button} from '../index';\n\nimport './ButtonTabs.scss';\n\nconst b = block('button-tabs');\n\nexport interface ButtonTabsItemProps\n extends Omit<ButtonProps, 'url' | 'primary' | 'target' | 'text'> {\n id: string | null;\n title: string;\n}\n\nexport interface ButtonTabsProps extends QAProps {\n className?: string;\n items: ButtonTabsItemProps[];\n activeTab?: string | null;\n onSelectTab?: (\n tabId: string | null,\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n ) => void;\n tabSize?: ButtonSize;\n getTabElementId?: (tabId: string) => string;\n getTabContentElementId?: (tabId: string) => string;\n}\n\nconst ButtonTabs = ({\n className,\n items,\n activeTab,\n onSelectTab,\n tabSize = 'l',\n qa,\n getTabElementId,\n getTabContentElementId,\n}: ButtonTabsProps) => {\n const activeTabId: string | null = React.useMemo(() => {\n if (activeTab) {\n return activeTab;\n }\n\n return items[0].id;\n }, [activeTab, items]);\n\n const handleClick = React.useCallback(\n (tabId: string | null) => (e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => {\n if (onSelectTab) {\n onSelectTab(tabId, e);\n }\n },\n [onSelectTab],\n );\n\n return (\n <div className={b(null, className)} role=\"tablist\" data-qa={qa}>\n {items.map(({id, title}) => {\n const isActive = id === activeTabId;\n\n return (\n <Button\n text={title}\n className={b('item', {active: isActive})}\n key={title}\n size={tabSize}\n onClick={handleClick(id)}\n id={getTabElementId?.(id ?? '')}\n extraProps={{\n role: 'tab',\n 'aria-selected': isActive,\n 'aria-controls': getTabContentElementId?.(id ?? ''),\n }}\n />\n );\n })}\n </div>\n );\n};\n\nexport default ButtonTabs;\n"]}
@@ -8,4 +8,7 @@
8
8
  }
9
9
  .pc-buttons_size_l {
10
10
  row-gap: 12px;
11
+ }
12
+ .pc-buttons_size_m {
13
+ row-gap: 12px;
11
14
  }
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
1
  import { ButtonProps, ContentSize } from "../../models/index.js";
3
2
  type ButtonsProps = {
4
3
  className?: string;
@@ -8,5 +7,5 @@ type ButtonsProps = {
8
7
  qa?: string;
9
8
  buttonQa?: string;
10
9
  };
11
- declare const Buttons: React.FC<ButtonsProps>;
10
+ declare const Buttons: ({ className, titleId, buttons, size, qa, buttonQa }: ButtonsProps) => import("react/jsx-runtime").JSX.Element | null;
12
11
  export default Buttons;
@@ -15,7 +15,7 @@ function getButtonSize(size) {
15
15
  return 'xl';
16
16
  }
17
17
  }
18
- const Buttons = ({ className, titleId, buttons, size = 's', qa, buttonQa, }) => buttons ? ((0, jsx_runtime_1.jsx)("div", { className: b({ size }, className), "data-qa": qa, children: buttons.map((item) => ((0, react_1.createElement)(Button_1.default, { className: b('button'), ...item, key: item.url, size: getButtonSize(size), qa: buttonQa, extraProps: {
18
+ const Buttons = ({ className, titleId, buttons, size = 's', qa, buttonQa }) => buttons ? ((0, jsx_runtime_1.jsx)("div", { className: b({ size }, className), "data-qa": qa, children: buttons.map((item) => ((0, react_1.createElement)(Button_1.default, { className: b('button'), ...item, key: item.url, size: getButtonSize(size), qa: buttonQa, extraProps: {
19
19
  'aria-describedby': item.urlTitle ? undefined : titleId,
20
20
  ...item.extraProps,
21
21
  } }))) })) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"Buttons.js","sourceRoot":"../../../../src","sources":["components/Buttons/Buttons.tsx"],"names":[],"mappings":";;;;;AAGA,gDAAkC;AAClC,yEAAsC;AAItC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC;AAW3B,SAAS,aAAa,CAAC,IAAiB;IACpC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG;YACJ,OAAO,GAAG,CAAC;QACf,KAAK,GAAG,CAAC;QACT;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAA2B,CAAC,EACrC,SAAS,EACT,OAAO,EACP,OAAO,EACP,IAAI,GAAG,GAAG,EACV,EAAE,EACF,QAAQ,GACX,EAAE,EAAE,CACD,OAAO,CAAC,CAAC,CAAC,CACN,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,aAAW,EAAE,YAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,2BAAC,gBAAM,IACH,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,KAClB,IAAI,EACR,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EACzB,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE;YACR,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACvD,GAAG,IAAI,CAAC,UAAU;SACrB,GACH,CACL,CAAC,GACA,CACT,CAAC,CAAC,CAAC,IAAI,CAAC;AAEb,kBAAe,OAAO,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ButtonProps, ContentSize} from '../../models';\nimport {block} from '../../utils';\nimport Button from '../Button/Button';\n\nimport './Buttons.scss';\n\nconst b = block('buttons');\n\ntype ButtonsProps = {\n className?: string;\n buttons?: ButtonProps[];\n size?: ContentSize;\n titleId?: string;\n qa?: string;\n buttonQa?: string;\n};\n\nfunction getButtonSize(size: ContentSize) {\n switch (size) {\n case 's':\n return 'm';\n case 'l':\n default:\n return 'xl';\n }\n}\n\nconst Buttons: React.FC<ButtonsProps> = ({\n className,\n titleId,\n buttons,\n size = 's',\n qa,\n buttonQa,\n}) =>\n buttons ? (\n <div className={b({size}, className)} data-qa={qa}>\n {buttons.map((item) => (\n <Button\n className={b('button')}\n {...item}\n key={item.url}\n size={getButtonSize(size)}\n qa={buttonQa}\n extraProps={{\n 'aria-describedby': item.urlTitle ? undefined : titleId,\n ...item.extraProps,\n }}\n />\n ))}\n </div>\n ) : null;\n\nexport default Buttons;\n"]}
1
+ {"version":3,"file":"Buttons.js","sourceRoot":"../../../../src","sources":["components/Buttons/Buttons.tsx"],"names":[],"mappings":";;;;;AACA,gDAAkC;AAClC,yEAAsC;AAItC,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC;AAW3B,SAAS,aAAa,CAAC,IAAiB;IACpC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG;YACJ,OAAO,GAAG,CAAC;QACf,KAAK,GAAG,CAAC;QACT;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,EAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAe,EAAE,EAAE,CACtF,OAAO,CAAC,CAAC,CAAC,CACN,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,aAAW,EAAE,YAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,2BAAC,gBAAM,IACH,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,KAClB,IAAI,EACR,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EACzB,EAAE,EAAE,QAAQ,EACZ,UAAU,EAAE;YACR,kBAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YACvD,GAAG,IAAI,CAAC,UAAU;SACrB,GACH,CACL,CAAC,GACA,CACT,CAAC,CAAC,CAAC,IAAI,CAAC;AAEb,kBAAe,OAAO,CAAC","sourcesContent":["import {ButtonProps, ContentSize} from '../../models';\nimport {block} from '../../utils';\nimport Button from '../Button/Button';\n\nimport './Buttons.scss';\n\nconst b = block('buttons');\n\ntype ButtonsProps = {\n className?: string;\n buttons?: ButtonProps[];\n size?: ContentSize;\n titleId?: string;\n qa?: string;\n buttonQa?: string;\n};\n\nfunction getButtonSize(size: ContentSize) {\n switch (size) {\n case 's':\n return 'm';\n case 'l':\n default:\n return 'xl';\n }\n}\n\nconst Buttons = ({className, titleId, buttons, size = 's', qa, buttonQa}: ButtonsProps) =>\n buttons ? (\n <div className={b({size}, className)} data-qa={qa}>\n {buttons.map((item) => (\n <Button\n className={b('button')}\n {...item}\n key={item.url}\n size={getButtonSize(size)}\n qa={buttonQa}\n extraProps={{\n 'aria-describedby': item.urlTitle ? undefined : titleId,\n ...item.extraProps,\n }}\n />\n ))}\n </div>\n ) : null;\n\nexport default Buttons;\n"]}
@@ -72,6 +72,8 @@ a.pc-card-base-block {
72
72
  border-radius: var(--pc-border-radius);
73
73
  background-color: var(--g-color-base-float);
74
74
  transition: box-shadow 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
75
+ position: relative;
76
+ overflow: hidden;
75
77
  }
76
78
  a.pc-card-base-block:hover, a.pc-card-base-block:active {
77
79
  --pc-text-header-color: inherit;
@@ -94,4 +96,17 @@ a.pc-card-base-block_border_shadow:hover {
94
96
  }
95
97
  a.pc-card-base-block_border_shadow:hover {
96
98
  background-color: var(--pc-color-base-float-hover);
99
+ }
100
+ a.pc-card-base-block::before {
101
+ content: "";
102
+ position: absolute;
103
+ inset: 0;
104
+ background: var(--hover-background-color);
105
+ opacity: 0;
106
+ transition: opacity 240ms ease-in;
107
+ pointer-events: none;
108
+ z-index: -1;
109
+ }
110
+ a.pc-card-base-block:hover::before {
111
+ opacity: 1;
97
112
  }
@@ -20,10 +20,8 @@ export interface CardFooterBaseProps {
20
20
  }
21
21
  export declare const Layout: {
22
22
  (props: CardBasePropsType): import("react/jsx-runtime").JSX.Element;
23
- Header: React.FC<React.PropsWithChildren<CardHeaderBaseProps>>;
24
- Content: React.FC<{
25
- children?: React.ReactNode | undefined;
26
- }>;
27
- Footer: React.FC<React.PropsWithChildren<CardFooterBaseProps>>;
23
+ Header: (props: React.PropsWithChildren<CardHeaderBaseProps>) => React.ReactElement | null;
24
+ Content: (props: React.PropsWithChildren<{}>) => React.ReactElement | null;
25
+ Footer: (props: React.PropsWithChildren<CardFooterBaseProps>) => React.ReactElement | null;
28
26
  };
29
27
  export default Layout;
@@ -1 +1 @@
1
- {"version":3,"file":"CardBase.js","sourceRoot":"../../../../src","sources":["components/CardBase/CardBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {Link} from '@gravity-ui/uikit';\n\nimport {useAnalytics} from '../../hooks';\nimport {\n AnalyticsEventsBase,\n CardBaseProps as CardBaseParams,\n DefaultEventNames,\n ImageProps,\n} from '../../models';\nimport {block, getQaAttrubutes} from '../../utils';\nimport BackgroundImage from '../BackgroundImage/BackgroundImage';\nimport RouterLink from '../RouterLink/RouterLink';\n\nimport './CardBase.scss';\n\ninterface CardBaseProps extends AnalyticsEventsBase, CardBaseParams {\n className?: string;\n bodyClassName?: string;\n contentClassName?: string;\n url?: string;\n urlTitle?: string;\n target?: React.HTMLAttributeAnchorTarget;\n qa?: string;\n extraProps?: React.HTMLAttributes<HTMLElement>;\n}\n\nexport type CardBasePropsType = React.PropsWithChildren<CardBaseProps>;\n\nexport interface CardHeaderBaseProps {\n className?: string;\n image?: ImageProps | null;\n}\n\nexport interface CardFooterBaseProps {\n className?: string;\n}\n\nconst b = block('card-base-block');\n\nconst Header: React.FC<React.PropsWithChildren<CardHeaderBaseProps>> = () => null;\nconst Content: React.FC<React.PropsWithChildren<{}>> = () => null;\nconst Footer: React.FC<React.PropsWithChildren<CardFooterBaseProps>> = () => null;\n\nexport const Layout = (props: CardBasePropsType) => {\n const {\n className,\n bodyClassName,\n analyticsEvents,\n contentClassName,\n children,\n url,\n target,\n border = 'shadow',\n urlTitle,\n qa,\n extraProps = {},\n } = props;\n const handleAnalytics = useAnalytics(DefaultEventNames.CardBase, url);\n let header, content, footer, image, headerClass, footerClass;\n const qaAttributes = getQaAttrubutes(qa, 'header', 'footer', 'body', 'content');\n\n function handleChild(child: React.ReactElement) {\n switch (child.type) {\n case Header:\n header = child.props.children;\n image = child.props.image;\n headerClass = child.props.className;\n break;\n case Content:\n content = child.props.children;\n break;\n case Footer:\n footer = child.props.children;\n footerClass = child.props.className;\n break;\n }\n }\n\n React.Children.toArray(children).forEach((child) => {\n if (React.isValidElement(child)) {\n handleChild(child);\n }\n });\n\n const cardContent = (\n <React.Fragment>\n {(header || image) && (\n <BackgroundImage\n className={b('header', headerClass)}\n {...(typeof image === 'string' ? {src: image} : image)}\n qa={qaAttributes.header}\n >\n <div className={b('header-content')}>{header}</div>\n </BackgroundImage>\n )}\n <div className={b('body', bodyClassName)} data-qa={qaAttributes.body}>\n <div className={b('content', contentClassName)} data-qa={qaAttributes.content}>\n {content}\n </div>\n {footer && (\n <div className={b('footer', footerClass)} data-qa={qaAttributes.footer}>\n {footer}\n </div>\n )}\n </div>\n </React.Fragment>\n );\n\n const fullClassName = b({border}, className);\n\n const onClick = () => {\n handleAnalytics(analyticsEvents);\n };\n\n return url ? (\n <RouterLink href={url}>\n <Link\n href={url}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : undefined}\n className={fullClassName}\n onClick={onClick}\n title={urlTitle}\n extraProps={{\n draggable: false,\n onDragStart: (e: React.DragEvent<HTMLAnchorElement>) => e.preventDefault(),\n ...extraProps,\n }}\n qa={qa}\n >\n {cardContent}\n </Link>\n </RouterLink>\n ) : (\n <div className={fullClassName} data-qa={qa} {...extraProps}>\n {cardContent}\n </div>\n );\n};\n\nLayout.Header = Header;\nLayout.Content = Content;\nLayout.Footer = Footer;\n\nexport default Layout;\n"]}
1
+ {"version":3,"file":"CardBase.js","sourceRoot":"../../../../src","sources":["components/CardBase/CardBase.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {Link} from '@gravity-ui/uikit';\n\nimport {useAnalytics} from '../../hooks';\nimport {\n AnalyticsEventsBase,\n CardBaseProps as CardBaseParams,\n DefaultEventNames,\n ImageProps,\n} from '../../models';\nimport {block, getQaAttrubutes} from '../../utils';\nimport BackgroundImage from '../BackgroundImage/BackgroundImage';\nimport RouterLink from '../RouterLink/RouterLink';\n\nimport './CardBase.scss';\n\ninterface CardBaseProps extends AnalyticsEventsBase, CardBaseParams {\n className?: string;\n bodyClassName?: string;\n contentClassName?: string;\n url?: string;\n urlTitle?: string;\n target?: React.HTMLAttributeAnchorTarget;\n qa?: string;\n extraProps?: React.HTMLAttributes<HTMLElement>;\n}\n\nexport type CardBasePropsType = React.PropsWithChildren<CardBaseProps>;\n\nexport interface CardHeaderBaseProps {\n className?: string;\n image?: ImageProps | null;\n}\n\nexport interface CardFooterBaseProps {\n className?: string;\n}\n\nconst b = block('card-base-block');\n\nconst Header: (\n props: React.PropsWithChildren<CardHeaderBaseProps>,\n) => React.ReactElement | null = () => null;\nconst Content: (props: React.PropsWithChildren<{}>) => React.ReactElement | null = () => null;\nconst Footer: (\n props: React.PropsWithChildren<CardFooterBaseProps>,\n) => React.ReactElement | null = () => null;\n\nexport const Layout = (props: CardBasePropsType) => {\n const {\n className,\n bodyClassName,\n analyticsEvents,\n contentClassName,\n children,\n url,\n target,\n border = 'shadow',\n urlTitle,\n qa,\n extraProps = {},\n } = props;\n const handleAnalytics = useAnalytics(DefaultEventNames.CardBase, url);\n let header, content, footer, image, headerClass, footerClass;\n const qaAttributes = getQaAttrubutes(qa, 'header', 'footer', 'body', 'content');\n\n function handleChild(child: React.ReactElement) {\n switch (child.type) {\n case Header:\n header = child.props.children;\n image = child.props.image;\n headerClass = child.props.className;\n break;\n case Content:\n content = child.props.children;\n break;\n case Footer:\n footer = child.props.children;\n footerClass = child.props.className;\n break;\n }\n }\n\n React.Children.toArray(children).forEach((child) => {\n if (React.isValidElement(child)) {\n handleChild(child);\n }\n });\n\n const cardContent = (\n <React.Fragment>\n {(header || image) && (\n <BackgroundImage\n className={b('header', headerClass)}\n {...(typeof image === 'string' ? {src: image} : image)}\n qa={qaAttributes.header}\n >\n <div className={b('header-content')}>{header}</div>\n </BackgroundImage>\n )}\n <div className={b('body', bodyClassName)} data-qa={qaAttributes.body}>\n <div className={b('content', contentClassName)} data-qa={qaAttributes.content}>\n {content}\n </div>\n {footer && (\n <div className={b('footer', footerClass)} data-qa={qaAttributes.footer}>\n {footer}\n </div>\n )}\n </div>\n </React.Fragment>\n );\n\n const fullClassName = b({border}, className);\n\n const onClick = () => {\n handleAnalytics(analyticsEvents);\n };\n\n return url ? (\n <RouterLink href={url}>\n <Link\n href={url}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : undefined}\n className={fullClassName}\n onClick={onClick}\n title={urlTitle}\n extraProps={{\n draggable: false,\n onDragStart: (e: React.DragEvent<HTMLAnchorElement>) => e.preventDefault(),\n ...extraProps,\n }}\n qa={qa}\n >\n {cardContent}\n </Link>\n </RouterLink>\n ) : (\n <div className={fullClassName} data-qa={qa} {...extraProps}>\n {cardContent}\n </div>\n );\n};\n\nLayout.Header = Header;\nLayout.Content = Content;\nLayout.Footer = Footer;\n\nexport default Layout;\n"]}
@@ -0,0 +1,8 @@
1
+ import { ClassNameProps, GravityIconProps, ImageProps, QAProps, SVGIcon } from "../../models/index.js";
2
+ import { ThemeSupporting } from "../../utils/index.js";
3
+ interface ContentIconProps extends QAProps, ClassNameProps {
4
+ icon?: ThemeSupporting<ImageProps | SVGIcon>;
5
+ gravityIcon?: ThemeSupporting<GravityIconProps>;
6
+ }
7
+ declare const ContentIcon: ({ icon, className, qa, gravityIcon }: ContentIconProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default ContentIcon;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const theme_1 = require("../../context/theme/index.js");
6
+ const utils_1 = require("../../utils/index.js");
7
+ const Icon_1 = tslib_1.__importDefault(require("../Icon/Icon.js"));
8
+ function isIconSvg(icon) {
9
+ return typeof icon === 'function';
10
+ }
11
+ const ContentIcon = ({ icon, className, qa, gravityIcon }) => {
12
+ const theme = (0, theme_1.useTheme)();
13
+ const iconThemed = (0, utils_1.getThemedValue)(icon, theme);
14
+ const gravityIconThemed = (0, utils_1.getThemedValue)(gravityIcon, theme);
15
+ if (iconThemed && isIconSvg(iconThemed)) {
16
+ const IconComponent = iconThemed;
17
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(IconComponent, { className: className }) }));
18
+ }
19
+ return (0, jsx_runtime_1.jsx)(Icon_1.default, { icon: iconThemed, gravityIcon: gravityIconThemed, className: className, qa: qa });
20
+ };
21
+ exports.default = ContentIcon;
22
+ //# sourceMappingURL=ContentIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentIcon.js","sourceRoot":"../../../../src","sources":["components/ContentIcon/ContentIcon.tsx"],"names":[],"mappings":";;;;AAAA,wDAA6C;AAE7C,gDAA4D;AAC5D,mEAAgC;AAOhC,SAAS,SAAS,CAAC,IAA0B;IACzC,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC;AACtC,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAmB,EAAE,EAAE;IACzE,MAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;IACzB,MAAM,UAAU,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,IAAA,sBAAc,EAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE7D,IAAI,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,UAAU,CAAC;QACjC,OAAO,CACH,0CACI,uBAAC,aAAa,IAAC,SAAS,EAAE,SAAS,GAAI,GACrC,CACT,CAAC;IACN,CAAC;IAED,OAAO,uBAAC,cAAI,IAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,GAAI,CAAC;AACpG,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import {useTheme} from '../../context/theme';\nimport {ClassNameProps, GravityIconProps, ImageProps, QAProps, SVGIcon} from '../../models';\nimport {ThemeSupporting, getThemedValue} from '../../utils';\nimport Icon from '../Icon/Icon';\n\ninterface ContentIconProps extends QAProps, ClassNameProps {\n icon?: ThemeSupporting<ImageProps | SVGIcon>;\n gravityIcon?: ThemeSupporting<GravityIconProps>;\n}\n\nfunction isIconSvg(icon: ImageProps | SVGIcon): icon is SVGIcon {\n return typeof icon === 'function';\n}\n\nconst ContentIcon = ({icon, className, qa, gravityIcon}: ContentIconProps) => {\n const theme = useTheme();\n const iconThemed = getThemedValue(icon, theme);\n const gravityIconThemed = getThemedValue(gravityIcon, theme);\n\n if (iconThemed && isIconSvg(iconThemed)) {\n const IconComponent = iconThemed;\n return (\n <div>\n <IconComponent className={className} />\n </div>\n );\n }\n\n return <Icon icon={iconThemed} gravityIcon={gravityIconThemed} className={className} qa={qa} />;\n};\n\nexport default ContentIcon;\n"]}
@@ -0,0 +1,53 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-content-labels {
4
+ display: flex;
5
+ gap: 10px;
6
+ flex-wrap: wrap;
7
+ }
8
+ .pc-content-labels__label {
9
+ display: flex;
10
+ align-items: center;
11
+ flex-wrap: nowrap;
12
+ flex-shrink: 0;
13
+ padding: 5px 11px;
14
+ background-color: var(--g-color-base-generic);
15
+ border-radius: 6px;
16
+ }
17
+ .pc-content-labels__label, .pc-content-labels__label-text {
18
+ color: var(--g-color-text-primary);
19
+ }
20
+ .pc-content-labels__label > .pc-icon, .pc-content-labels__label > picture {
21
+ display: flex;
22
+ }
23
+ .pc-content-labels__label-icon {
24
+ width: 16px;
25
+ height: 16px;
26
+ margin-inline-end: 6px;
27
+ }
28
+ .pc-content-labels__label_theme_light {
29
+ background-color: var(--g-color-private-black-50);
30
+ }
31
+ .pc-content-labels__label_theme_light,
32
+ .pc-content-labels__label_theme_light .pc-content-labels__label-text {
33
+ color: var(--g-color-text-dark-primary);
34
+ }
35
+ .pc-content-labels__label_theme_dark {
36
+ background-color: var(--g-color-private-white-100);
37
+ }
38
+ .pc-content-labels__label_theme_dark,
39
+ .pc-content-labels__label_theme_dark .pc-content-labels__label-text {
40
+ color: var(--g-color-text-light-primary);
41
+ }
42
+ .pc-content-labels_size_l .pc-content-labels__label, .pc-content-labels_size_m .pc-content-labels__label {
43
+ font-family: var(--g-text-body-font-family);
44
+ font-weight: var(--g-text-body-font-weight);
45
+ font-size: var(--g-text-body-3-font-size);
46
+ line-height: var(--g-text-body-3-line-height);
47
+ }
48
+ .pc-content-labels_size_s .pc-content-labels__label {
49
+ font-family: var(--g-text-body-font-family);
50
+ font-weight: var(--g-text-body-font-weight);
51
+ font-size: var(--g-text-body-2-font-size);
52
+ line-height: var(--g-text-body-2-line-height);
53
+ }
@@ -0,0 +1,3 @@
1
+ import { ClassNameProps, ContentLabelsProps, QAProps } from "../../models/index.js";
2
+ declare const ContentLabels: ({ className, labels, theme, size, qa, }: ContentLabelsProps & ClassNameProps & QAProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default ContentLabels;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const utils_1 = require("../../utils/index.js");
6
+ const ContentIcon_1 = tslib_1.__importDefault(require("../ContentIcon/ContentIcon.js"));
7
+ const b = (0, utils_1.block)('content-labels');
8
+ const ContentLabels = ({ className, labels, theme, size = 'l', qa, }) => {
9
+ const qaAttributes = (0, utils_1.getQaAttrubutes)(qa, ['icon', 'text']);
10
+ return ((0, jsx_runtime_1.jsx)("div", { className: b({ size }, className), children: labels.map((label) => {
11
+ const { text, icon, gravityIcon } = label;
12
+ return ((0, jsx_runtime_1.jsxs)("div", { className: b('label', { theme }), children: [(0, jsx_runtime_1.jsx)(ContentIcon_1.default, { className: b('label-icon'), icon: icon, gravityIcon: gravityIcon, qa: qaAttributes.icon }), (0, jsx_runtime_1.jsx)("span", { className: b('label-text'), "data-qa": qaAttributes.text, children: text })] }, text));
13
+ }) }));
14
+ };
15
+ exports.default = ContentLabels;
16
+ //# sourceMappingURL=ContentLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentLabels.js","sourceRoot":"../../../../src","sources":["components/ContentLabels/ContentLabels.tsx"],"names":[],"mappings":";;;;AACA,gDAAmD;AACnD,wFAAqD;AAIrD,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,gBAAgB,CAAC,CAAC;AAElC,MAAM,aAAa,GAAG,CAAC,EACnB,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAI,GAAG,GAAG,EACV,EAAE,GAC0C,EAAE,EAAE;IAChD,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3D,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClB,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,EAAC,GAAG,KAAK,CAAC;YAExC,OAAO,CACH,iCAAgB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,KAAK,EAAC,CAAC,aAC1C,uBAAC,qBAAW,IACR,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAC1B,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,EAAE,EAAE,YAAY,CAAC,IAAI,GACvB,EACF,iCAAM,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,aAAW,YAAY,CAAC,IAAI,YACvD,IAAI,GACF,KATD,IAAI,CAUR,CACT,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC","sourcesContent":["import {ClassNameProps, ContentLabelsProps, QAProps} from '../../models';\nimport {block, getQaAttrubutes} from '../../utils';\nimport ContentIcon from '../ContentIcon/ContentIcon';\n\nimport './ContentLabels.scss';\n\nconst b = block('content-labels');\n\nconst ContentLabels = ({\n className,\n labels,\n theme,\n size = 'l',\n qa,\n}: ContentLabelsProps & ClassNameProps & QAProps) => {\n const qaAttributes = getQaAttrubutes(qa, ['icon', 'text']);\n\n return (\n <div className={b({size}, className)}>\n {labels.map((label) => {\n const {text, icon, gravityIcon} = label;\n\n return (\n <div key={text} className={b('label', {theme})}>\n <ContentIcon\n className={b('label-icon')}\n icon={icon}\n gravityIcon={gravityIcon}\n qa={qaAttributes.icon}\n />\n <span className={b('label-text')} data-qa={qaAttributes.text}>\n {text}\n </span>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ContentLabels;\n"]}
@@ -6,8 +6,8 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const uuid_1 = require("uuid");
7
7
  const utils_1 = require("../../utils/index.js");
8
8
  const blocks_1 = require("../../utils/blocks.js");
9
+ const ContentIcon_1 = tslib_1.__importDefault(require("../ContentIcon/ContentIcon.js"));
9
10
  const YFMWrapper_1 = tslib_1.__importDefault(require("../YFMWrapper/YFMWrapper.js"));
10
- const ContentListItemIcon_1 = tslib_1.__importDefault(require("./ContentListItemIcon.js"));
11
11
  const b = (0, utils_1.block)('content-list');
12
12
  function getHeadingLevel(size) {
13
13
  switch (size) {
@@ -21,8 +21,8 @@ function getHeadingLevel(size) {
21
21
  const ContentList = ({ list, size = 'l', qa, theme }) => {
22
22
  const qaAttributes = (0, blocks_1.getQaAttrubutes)(qa, ['image', 'title', 'text']);
23
23
  return ((0, jsx_runtime_1.jsx)("div", { className: b({ size, theme }), "data-qa": qa, children: list?.map((item) => {
24
- const { icon, title, text } = item;
25
- return ((0, jsx_runtime_1.jsxs)("div", { className: b('item', { 'without-title': !title }), children: [(0, jsx_runtime_1.jsx)(ContentListItemIcon_1.default, { icon: icon, className: b('icon'), qa: qaAttributes.image }), (0, jsx_runtime_1.jsxs)("div", { children: [title &&
24
+ const { icon, title, text, gravityIcon } = item;
25
+ return ((0, jsx_runtime_1.jsxs)("div", { className: b('item', { 'without-title': !title }), children: [(0, jsx_runtime_1.jsx)(ContentIcon_1.default, { icon: icon, className: b('icon'), qa: qaAttributes.image, gravityIcon: gravityIcon }), (0, jsx_runtime_1.jsxs)("div", { children: [title &&
26
26
  React.createElement(getHeadingLevel(size), { className: b('title'), 'data-qa': qaAttributes.title }, (0, jsx_runtime_1.jsx)(YFMWrapper_1.default, { content: title, modifiers: { constructor: true } })), text && ((0, jsx_runtime_1.jsx)(YFMWrapper_1.default, { contentClassName: b('text', { 'without-title': !title }), content: text, modifiers: { constructor: true }, qa: qaAttributes.text }))] })] }, (0, uuid_1.v4)()));
27
27
  }) }));
28
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ContentList.js","sourceRoot":"../../../../src","sources":["components/ContentList/ContentList.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,+BAAkC;AAIlC,gDAAkC;AAClC,kDAAmD;AACnD,qFAAkD;AAElD,2FAA6C;AAI7C,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;AAEhC,SAAS,eAAe,CAAC,IAAiB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG;YACJ,OAAO,IAAI,CAAC;QAChB,KAAK,GAAG,CAAC;QACT;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAA6B,EAAE,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAErE,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,aAAW,EAAE,YACxC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC;YACjC,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,CAAC,KAAK,EAAC,CAAC,aAChD,uBAAC,6BAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,KAAK,GAAI,EACtE,4CACK,KAAK;gCACF,KAAK,CAAC,aAAa,CACf,eAAe,CAAC,IAAI,CAAC,EACrB,EAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,EAAC,EACtD,uBAAC,oBAAU,IAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,GAAI,CACjE,EACJ,IAAI,IAAI,CACL,uBAAC,oBAAU,IACP,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,CAAC,KAAK,EAAC,CAAC,EACtD,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,EAC9B,EAAE,EAAE,YAAY,CAAC,IAAI,GACvB,CACL,IACC,KAjBiD,IAAA,SAAM,GAAE,CAkB7D,CACT,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {v4 as uuidv4} from 'uuid';\n\nimport {ContentListProps, ContentSize} from '../../models';\nimport {QAProps} from '../../models/common';\nimport {block} from '../../utils';\nimport {getQaAttrubutes} from '../../utils/blocks';\nimport YFMWrapper from '../YFMWrapper/YFMWrapper';\n\nimport ItemIcon from './ContentListItemIcon';\n\nimport './ContentList.scss';\n\nconst b = block('content-list');\n\nfunction getHeadingLevel(size: ContentSize) {\n switch (size) {\n case 's':\n return 'h4';\n case 'l':\n default:\n return 'h3';\n }\n}\n\nconst ContentList = ({list, size = 'l', qa, theme}: ContentListProps & QAProps) => {\n const qaAttributes = getQaAttrubutes(qa, ['image', 'title', 'text']);\n\n return (\n <div className={b({size, theme})} data-qa={qa}>\n {list?.map((item) => {\n const {icon, title, text} = item;\n return (\n <div className={b('item', {'without-title': !title})} key={uuidv4()}>\n <ItemIcon icon={icon} className={b('icon')} qa={qaAttributes.image} />\n <div>\n {title &&\n React.createElement(\n getHeadingLevel(size),\n {className: b('title'), 'data-qa': qaAttributes.title},\n <YFMWrapper content={title} modifiers={{constructor: true}} />,\n )}\n {text && (\n <YFMWrapper\n contentClassName={b('text', {'without-title': !title})}\n content={text}\n modifiers={{constructor: true}}\n qa={qaAttributes.text}\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ContentList;\n"]}
1
+ {"version":3,"file":"ContentList.js","sourceRoot":"../../../../src","sources":["components/ContentList/ContentList.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,+BAAkC;AAIlC,gDAAkC;AAClC,kDAAmD;AACnD,wFAAqD;AACrD,qFAAkD;AAIlD,MAAM,CAAC,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC;AAEhC,SAAS,eAAe,CAAC,IAAiB;IACtC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,GAAG;YACJ,OAAO,IAAI,CAAC;QAChB,KAAK,GAAG,CAAC;QACT;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,KAAK,EAA6B,EAAE,EAAE;IAC9E,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAErE,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,aAAW,EAAE,YACxC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC;YAC9C,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,CAAC,KAAK,EAAC,CAAC,aAChD,uBAAC,qBAAW,IACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EACpB,EAAE,EAAE,YAAY,CAAC,KAAK,EACtB,WAAW,EAAE,WAAW,GAC1B,EACF,4CACK,KAAK;gCACF,KAAK,CAAC,aAAa,CACf,eAAe,CAAC,IAAI,CAAC,EACrB,EAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,EAAC,EACtD,uBAAC,oBAAU,IAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,GAAI,CACjE,EACJ,IAAI,IAAI,CACL,uBAAC,oBAAU,IACP,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,eAAe,EAAE,CAAC,KAAK,EAAC,CAAC,EACtD,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,EAC9B,EAAE,EAAE,YAAY,CAAC,IAAI,GACvB,CACL,IACC,KAtBiD,IAAA,SAAM,GAAE,CAuB7D,CACT,CAAC;QACN,CAAC,CAAC,GACA,CACT,CAAC;AACN,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {v4 as uuidv4} from 'uuid';\n\nimport {ContentListProps, ContentSize} from '../../models';\nimport {QAProps} from '../../models/common';\nimport {block} from '../../utils';\nimport {getQaAttrubutes} from '../../utils/blocks';\nimport ContentIcon from '../ContentIcon/ContentIcon';\nimport YFMWrapper from '../YFMWrapper/YFMWrapper';\n\nimport './ContentList.scss';\n\nconst b = block('content-list');\n\nfunction getHeadingLevel(size: ContentSize) {\n switch (size) {\n case 's':\n return 'h4';\n case 'l':\n default:\n return 'h3';\n }\n}\n\nconst ContentList = ({list, size = 'l', qa, theme}: ContentListProps & QAProps) => {\n const qaAttributes = getQaAttrubutes(qa, ['image', 'title', 'text']);\n\n return (\n <div className={b({size, theme})} data-qa={qa}>\n {list?.map((item) => {\n const {icon, title, text, gravityIcon} = item;\n return (\n <div className={b('item', {'without-title': !title})} key={uuidv4()}>\n <ContentIcon\n icon={icon}\n className={b('icon')}\n qa={qaAttributes.image}\n gravityIcon={gravityIcon}\n />\n <div>\n {title &&\n React.createElement(\n getHeadingLevel(size),\n {className: b('title'), 'data-qa': qaAttributes.title},\n <YFMWrapper content={title} modifiers={{constructor: true}} />,\n )}\n {text && (\n <YFMWrapper\n contentClassName={b('text', {'without-title': !title})}\n content={text}\n modifiers={{constructor: true}}\n qa={qaAttributes.text}\n />\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default ContentList;\n"]}
@@ -11,7 +11,7 @@ const CustomBarControls_1 = tslib_1.__importDefault(require("../ReactPlayer/Cust
11
11
  const b = (0, utils_1.block)('default-video');
12
12
  exports.DefaultVideo = React.forwardRef((props, ref) => {
13
13
  const { video, qa, customBarControlsClassName } = props;
14
- const { controls, customControlsOptions, muted: initiallyMuted = true } = video;
14
+ const { controls, customControlsOptions, muted: initiallyMuted = true, onVideoEnd, loop, } = video;
15
15
  const { muteButtonShown, positioning, type: customControlsType, } = customControlsOptions || {};
16
16
  const [isPaused, setIsPaused] = React.useState(false);
17
17
  const [isMuted, setIsMuted] = React.useState(initiallyMuted);
@@ -28,6 +28,13 @@ exports.DefaultVideo = React.forwardRef((props, ref) => {
28
28
  }
29
29
  return videoRef.current;
30
30
  }, [videoRef]);
31
+ // to guarantee setting a muted attribute in HTML. https://github.com/facebook/react/issues/10389
32
+ React.useEffect(() => {
33
+ const videoElement = videoRef.current;
34
+ if (videoElement && initiallyMuted) {
35
+ videoElement.defaultMuted = true;
36
+ }
37
+ }, [videoRef, initiallyMuted]);
31
38
  const onPlayToggle = React.useCallback(() => {
32
39
  setIsPaused((value) => {
33
40
  if (value) {
@@ -47,10 +54,24 @@ exports.DefaultVideo = React.forwardRef((props, ref) => {
47
54
  onPlayToggle();
48
55
  }
49
56
  }, [onPlayToggle, customControlsType]);
57
+ const onEnded = React.useCallback(() => {
58
+ const videoElement = videoRef.current;
59
+ if (!videoElement) {
60
+ return;
61
+ }
62
+ if (loop) {
63
+ const { start = 0, end = videoElement.duration } = typeof loop === 'boolean' ? {} : loop;
64
+ if (videoElement.currentTime >= end) {
65
+ videoElement.currentTime = start;
66
+ videoElement.play();
67
+ }
68
+ }
69
+ onVideoEnd?.();
70
+ }, [loop, onVideoEnd]);
50
71
  return ((0, jsx_runtime_1.jsxs)(React.Fragment, { children: [(0, jsx_runtime_1.jsxs)("video", { disablePictureInPicture: true, playsInline: true,
51
72
  // @ts-ignore
52
73
  // eslint-disable-next-line react/no-unknown-property
53
- pip: "false", className: b(), ref: videoRef, preload: "metadata", muted: isMuted, "aria-label": video.ariaLabel, onClick: onClick, children: [(0, utils_2.getVideoTypesWithPriority)(video.src).map(({ src, type }, index) => ((0, jsx_runtime_1.jsx)("source", { src: src, type: type, "data-qa": qa }, index))), (0, jsx_runtime_1.jsx)("track", { default: true, kind: "captions" })] }), controls === models_1.MediaVideoControlsType.Custom && ((0, jsx_runtime_1.jsx)(CustomBarControls_1.default, { className: customBarControlsClassName, type: customControlsType, isPaused: isPaused, onPlayClick: onPlayToggle, muteButtonShown: muteButtonShown, shown: true, positioning: positioning, mute: {
74
+ pip: "false", className: b(), ref: videoRef, preload: "metadata", muted: isMuted, "aria-label": video.ariaLabel, onClick: onClick, onEnded: onEnded, children: [(0, utils_2.getVideoTypesWithPriority)(video.src).map(({ src, type }, index) => ((0, jsx_runtime_1.jsx)("source", { src: src, type: type, "data-qa": qa }, index))), (0, jsx_runtime_1.jsx)("track", { default: true, kind: "captions" })] }), controls === models_1.MediaVideoControlsType.Custom && ((0, jsx_runtime_1.jsx)(CustomBarControls_1.default, { className: customBarControlsClassName, type: customControlsType, isPaused: isPaused, onPlayClick: onPlayToggle, muteButtonShown: muteButtonShown, shown: true, positioning: positioning, mute: {
54
75
  isMuted: Boolean(isMuted),
55
76
  changeMute: onMuteToggle,
56
77
  } }))] }));
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultVideo.js","sourceRoot":"../../../../src","sources":["components/DefaultVideo/DefaultVideo.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {CustomControlsType, MediaVideoControlsType, MediaVideoProps} from '../../models';\nimport {block} from '../../utils';\nimport {getVideoTypesWithPriority} from '../Media/Video/utils';\nimport CustomBarControls from '../ReactPlayer/CustomBarControls';\n\nimport './DefaultVideo.scss';\n\nconst b = block('default-video');\n\ntype DefaultVideoRefType = HTMLVideoElement | undefined;\n\ninterface DefaultVideoProps {\n video: MediaVideoProps;\n qa?: string;\n customBarControlsClassName?: string;\n className?: string;\n}\n\nexport const DefaultVideo = React.forwardRef<DefaultVideoRefType, DefaultVideoProps>(\n (props, ref) => {\n const {video, qa, customBarControlsClassName} = props;\n const {controls, customControlsOptions, muted: initiallyMuted = true} = video;\n const {\n muteButtonShown,\n positioning,\n type: customControlsType,\n } = customControlsOptions || {};\n const [isPaused, setIsPaused] = React.useState(false);\n const [isMuted, setIsMuted] = React.useState(initiallyMuted);\n const videoRef = React.useRef<HTMLVideoElement>(null);\n\n // one may not use this hook and work with `ref` variable only, but\n // in this case one should support both function type and object type,\n // according to ForwardedRef type.\n // Currently used way with extra ref and useImperativeHandle is more\n // convenient and allows us to work with object typed ref only,\n // avoiding typeof ref === 'function' statements\n React.useImperativeHandle(ref, () => {\n if (!videoRef?.current) {\n return undefined;\n }\n\n return videoRef.current;\n }, [videoRef]);\n const onPlayToggle = React.useCallback(() => {\n setIsPaused((value) => {\n if (value) {\n videoRef?.current?.play();\n } else {\n videoRef?.current?.pause();\n }\n\n return !value;\n });\n }, [videoRef]);\n const onMuteToggle = React.useCallback(() => {\n setIsMuted((value) => !value);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (customControlsType === CustomControlsType.WithPlayPauseButton) {\n onPlayToggle();\n }\n }, [onPlayToggle, customControlsType]);\n\n return (\n <React.Fragment>\n <video\n disablePictureInPicture\n playsInline\n // @ts-ignore\n // eslint-disable-next-line react/no-unknown-property\n pip=\"false\"\n className={b()}\n ref={videoRef}\n preload=\"metadata\"\n muted={isMuted}\n aria-label={video.ariaLabel}\n onClick={onClick}\n >\n {getVideoTypesWithPriority(video.src).map(({src, type}, index) => (\n <source key={index} src={src} type={type} data-qa={qa} />\n ))}\n <track default kind=\"captions\" />\n </video>\n\n {controls === MediaVideoControlsType.Custom && (\n <CustomBarControls\n className={customBarControlsClassName}\n type={customControlsType}\n isPaused={isPaused}\n onPlayClick={onPlayToggle}\n muteButtonShown={muteButtonShown}\n shown\n positioning={positioning}\n mute={{\n isMuted: Boolean(isMuted),\n changeMute: onMuteToggle,\n }}\n />\n )}\n </React.Fragment>\n );\n },\n);\n\nDefaultVideo.displayName = 'DefaultVideo';\n"]}
1
+ {"version":3,"file":"DefaultVideo.js","sourceRoot":"../../../../src","sources":["components/DefaultVideo/DefaultVideo.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {CustomControlsType, MediaVideoControlsType, MediaVideoProps} from '../../models';\nimport {block} from '../../utils';\nimport {getVideoTypesWithPriority} from '../Media/Video/utils';\nimport CustomBarControls from '../ReactPlayer/CustomBarControls';\n\nimport './DefaultVideo.scss';\n\nconst b = block('default-video');\n\ntype DefaultVideoRefType = HTMLVideoElement | undefined;\n\ninterface DefaultVideoProps {\n video: MediaVideoProps;\n qa?: string;\n customBarControlsClassName?: string;\n className?: string;\n}\n\nexport const DefaultVideo = React.forwardRef<DefaultVideoRefType, DefaultVideoProps>(\n (props, ref) => {\n const {video, qa, customBarControlsClassName} = props;\n const {\n controls,\n customControlsOptions,\n muted: initiallyMuted = true,\n onVideoEnd,\n loop,\n } = video;\n const {\n muteButtonShown,\n positioning,\n type: customControlsType,\n } = customControlsOptions || {};\n const [isPaused, setIsPaused] = React.useState(false);\n const [isMuted, setIsMuted] = React.useState(initiallyMuted);\n const videoRef = React.useRef<HTMLVideoElement>(null);\n\n // one may not use this hook and work with `ref` variable only, but\n // in this case one should support both function type and object type,\n // according to ForwardedRef type.\n // Currently used way with extra ref and useImperativeHandle is more\n // convenient and allows us to work with object typed ref only,\n // avoiding typeof ref === 'function' statements\n React.useImperativeHandle(ref, () => {\n if (!videoRef?.current) {\n return undefined;\n }\n\n return videoRef.current;\n }, [videoRef]);\n\n // to guarantee setting a muted attribute in HTML. https://github.com/facebook/react/issues/10389\n React.useEffect(() => {\n const videoElement = videoRef.current;\n\n if (videoElement && initiallyMuted) {\n videoElement.defaultMuted = true;\n }\n }, [videoRef, initiallyMuted]);\n\n const onPlayToggle = React.useCallback(() => {\n setIsPaused((value) => {\n if (value) {\n videoRef?.current?.play();\n } else {\n videoRef?.current?.pause();\n }\n\n return !value;\n });\n }, [videoRef]);\n\n const onMuteToggle = React.useCallback(() => {\n setIsMuted((value) => !value);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (customControlsType === CustomControlsType.WithPlayPauseButton) {\n onPlayToggle();\n }\n }, [onPlayToggle, customControlsType]);\n\n const onEnded = React.useCallback(() => {\n const videoElement = videoRef.current;\n if (!videoElement) {\n return;\n }\n\n if (loop) {\n const {start = 0, end = videoElement.duration} =\n typeof loop === 'boolean' ? {} : loop;\n\n if (videoElement.currentTime >= end) {\n videoElement.currentTime = start;\n videoElement.play();\n }\n }\n\n onVideoEnd?.();\n }, [loop, onVideoEnd]);\n\n return (\n <React.Fragment>\n <video\n disablePictureInPicture\n playsInline\n // @ts-ignore\n // eslint-disable-next-line react/no-unknown-property\n pip=\"false\"\n className={b()}\n ref={videoRef}\n preload=\"metadata\"\n muted={isMuted}\n aria-label={video.ariaLabel}\n onClick={onClick}\n onEnded={onEnded}\n >\n {getVideoTypesWithPriority(video.src).map(({src, type}, index) => (\n <source key={index} src={src} type={type} data-qa={qa} />\n ))}\n <track default kind=\"captions\" />\n </video>\n\n {controls === MediaVideoControlsType.Custom && (\n <CustomBarControls\n className={customBarControlsClassName}\n type={customControlsType}\n isPaused={isPaused}\n onPlayClick={onPlayToggle}\n muteButtonShown={muteButtonShown}\n shown\n positioning={positioning}\n mute={{\n isMuted: Boolean(isMuted),\n changeMute: onMuteToggle,\n }}\n />\n )}\n </React.Fragment>\n );\n },\n);\n\nDefaultVideo.displayName = 'DefaultVideo';\n"]}