@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,5 +1,4 @@
1
- import * as React from 'react';
2
1
  import { FilterBlockProps } from "../../models/index.js";
3
2
  import './FilterBlock.css';
4
- declare const FilterBlock: React.FC<FilterBlockProps>;
3
+ declare const FilterBlock: ({ title, description, tags, tagButtonSize, allTag, items, colSizes, centered, animated, }: FilterBlockProps) => import("react/jsx-runtime").JSX.Element;
5
4
  export default FilterBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterBlock.js","sourceRoot":"../../../../src","sources":["blocks/FilterBlock/FilterBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,eAAe,EAAC,oBAAW;AACnC,OAAO,EAAC,YAAY,EAAE,KAAK,EAAC,kCAAyB;AACrD,OAAO,UAAiC,kDAA+C;AACvF,OAAO,EAAC,eAAe,EAAC,6EAAoE;AAC5F,OAAO,EAAC,GAAG,EAAE,GAAG,EAAC,4BAAmB;AAEpC,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,6BAAoB;AAE/C,OAAO,EAAC,IAAI,EAAC,wBAAe;AAC5B,OAAO,mBAAmB,CAAC;AAE3B,MAAM,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAEhC,MAAM,WAAW,GAA+B,CAAC,EAC7C,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAa,EACb,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,SAAS,GAAoC,MAAM;YACrD,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC;YACjF,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,YAAY,GACd,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9C,CAAC;IAEF,MAAM,SAAS,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChD,OAAO,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC;YACzE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YAClB,CAAC,CAAC,WAAW,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,WAAW,GAAiB,SAAS;YACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC,CAAC,KAAK,CAAC;QAEZ,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,CACH,MAAC,YAAY,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,aAC1C,KAAK,IAAI,CACN,KAAC,KAAK,IACF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,EAC3C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,GACvB,CACL,EACA,UAAU,CAAC,MAAM,IAAI,CAClB,KAAC,GAAG,cACA,KAAC,GAAG,cACA,KAAC,UAAU,IACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,EAC1C,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,aAAa,GACxB,GACA,GACJ,CACT,EACD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,YAChC,KAAC,eAAe,IAAC,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,YACxE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACvB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAErC,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAO,GAAG,CAAI,CAAC;oBACpE,CAAC,CAAC,GACY,GAChB,IACK,CAClB,CAAC;AACN,CAAC,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {CardLayoutBlock} from '..';\nimport {AnimateBlock, Title} from '../../components';\nimport ButtonTabs, {ButtonTabsItemProps} from '../../components/ButtonTabs/ButtonTabs';\nimport {ConstructorItem} from '../../containers/PageConstructor/components/ConstructorItem';\nimport {Col, Row} from '../../grid';\nimport {FilterBlockProps, FilterItem} from '../../models';\nimport {block, getBlockKey} from '../../utils';\n\nimport {i18n} from './i18n';\nimport './FilterBlock.scss';\n\nconst b = block('filter-block');\n\nconst FilterBlock: React.FC<FilterBlockProps> = ({\n title,\n description,\n tags,\n tagButtonSize,\n allTag,\n items,\n colSizes,\n centered,\n animated,\n}) => {\n const tabButtons = React.useMemo(() => {\n const allButton: ButtonTabsItemProps | undefined = allTag\n ? {id: null, title: typeof allTag === 'boolean' ? i18n('label-all-tag') : allTag}\n : undefined;\n const otherButtons: ButtonTabsItemProps[] | undefined =\n tags && tags.map((tag) => ({id: tag.id, title: tag.label}));\n return [...(allButton ? [allButton] : []), ...(otherButtons ? otherButtons : [])];\n }, [allTag, tags]);\n\n const [selectedTag, setSelectedTag] = React.useState(\n tabButtons.length ? tabButtons[0].id : null,\n );\n\n const actualTag: string | null = React.useMemo(() => {\n return tabButtons.length && !tabButtons.find((tab) => tab.id === selectedTag)\n ? tabButtons[0].id\n : selectedTag;\n }, [tabButtons, selectedTag]);\n\n const cards = React.useMemo(() => {\n const itemsToShow: FilterItem[] = actualTag\n ? items.filter((item) => item.tags.includes(actualTag))\n : items;\n\n return itemsToShow.map((item) => item.card);\n }, [actualTag, items]);\n\n return (\n <AnimateBlock className={b()} animate={animated}>\n {title && (\n <Title\n className={b('title', {centered: centered})}\n title={title}\n subtitle={description}\n />\n )}\n {tabButtons.length && (\n <Row>\n <Col>\n <ButtonTabs\n className={b('tabs', {centered: centered})}\n items={tabButtons}\n activeTab={selectedTag}\n onSelectTab={setSelectedTag}\n tabSize={tagButtonSize}\n />\n </Col>\n </Row>\n )}\n <Row className={b('block-container')}>\n <CardLayoutBlock title=\"\" colSizes={colSizes} className={b('cards-container')}>\n {cards.map((card, index) => {\n const key = getBlockKey(card, index);\n\n return <ConstructorItem data={card} blockKey={key} key={key} />;\n })}\n </CardLayoutBlock>\n </Row>\n </AnimateBlock>\n );\n};\nexport default FilterBlock;\n"]}
1
+ {"version":3,"file":"FilterBlock.js","sourceRoot":"../../../../src","sources":["blocks/FilterBlock/FilterBlock.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,eAAe,EAAC,oBAAW;AACnC,OAAO,EAAC,YAAY,EAAE,KAAK,EAAC,kCAAyB;AACrD,OAAO,UAAiC,kDAA+C;AACvF,OAAO,EAAC,eAAe,EAAC,6EAAoE;AAC5F,OAAO,EAAC,GAAG,EAAE,GAAG,EAAC,4BAAmB;AAEpC,OAAO,EAAC,KAAK,EAAE,WAAW,EAAC,6BAAoB;AAE/C,OAAO,EAAC,IAAI,EAAC,wBAAe;AAE5B,OAAO,mBAAmB,CAAC;AAE3B,MAAM,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;AAEhC,MAAM,WAAW,GAAG,CAAC,EACjB,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAa,EACb,MAAM,EACN,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,GACO,EAAE,EAAE;IACnB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,SAAS,GAAoC,MAAM;YACrD,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC;YACjF,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,YAAY,GACd,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAChD,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9C,CAAC;IAEF,MAAM,SAAS,GAAkB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAChD,OAAO,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,WAAW,CAAC;YACzE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;YAClB,CAAC,CAAC,WAAW,CAAC;IACtB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAC7B,MAAM,WAAW,GAAiB,SAAS;YACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC,CAAC,KAAK,CAAC;QAEZ,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvB,OAAO,CACH,MAAC,YAAY,IAAC,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,aAC1C,KAAK,IAAI,CACN,KAAC,KAAK,IACF,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,EAC3C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,GACvB,CACL,EACA,UAAU,CAAC,MAAM,IAAI,CAClB,KAAC,GAAG,cACA,KAAC,GAAG,cACA,KAAC,UAAU,IACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,EAC1C,KAAK,EAAE,UAAU,EACjB,SAAS,EAAE,WAAW,EACtB,WAAW,EAAE,cAAc,EAC3B,OAAO,EAAE,aAAa,GACxB,GACA,GACJ,CACT,EACD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,YAChC,KAAC,eAAe,IAAC,KAAK,EAAC,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,YACxE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;wBACvB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBAErC,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAO,GAAG,CAAI,CAAC;oBACpE,CAAC,CAAC,GACY,GAChB,IACK,CAClB,CAAC;AACN,CAAC,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {CardLayoutBlock} from '..';\nimport {AnimateBlock, Title} from '../../components';\nimport ButtonTabs, {ButtonTabsItemProps} from '../../components/ButtonTabs/ButtonTabs';\nimport {ConstructorItem} from '../../containers/PageConstructor/components/ConstructorItem';\nimport {Col, Row} from '../../grid';\nimport {FilterBlockProps, FilterItem} from '../../models';\nimport {block, getBlockKey} from '../../utils';\n\nimport {i18n} from './i18n';\n\nimport './FilterBlock.scss';\n\nconst b = block('filter-block');\n\nconst FilterBlock = ({\n title,\n description,\n tags,\n tagButtonSize,\n allTag,\n items,\n colSizes,\n centered,\n animated,\n}: FilterBlockProps) => {\n const tabButtons = React.useMemo(() => {\n const allButton: ButtonTabsItemProps | undefined = allTag\n ? {id: null, title: typeof allTag === 'boolean' ? i18n('label-all-tag') : allTag}\n : undefined;\n const otherButtons: ButtonTabsItemProps[] | undefined =\n tags && tags.map((tag) => ({id: tag.id, title: tag.label}));\n return [...(allButton ? [allButton] : []), ...(otherButtons ? otherButtons : [])];\n }, [allTag, tags]);\n\n const [selectedTag, setSelectedTag] = React.useState(\n tabButtons.length ? tabButtons[0].id : null,\n );\n\n const actualTag: string | null = React.useMemo(() => {\n return tabButtons.length && !tabButtons.find((tab) => tab.id === selectedTag)\n ? tabButtons[0].id\n : selectedTag;\n }, [tabButtons, selectedTag]);\n\n const cards = React.useMemo(() => {\n const itemsToShow: FilterItem[] = actualTag\n ? items.filter((item) => item.tags.includes(actualTag))\n : items;\n\n return itemsToShow.map((item) => item.card);\n }, [actualTag, items]);\n\n return (\n <AnimateBlock className={b()} animate={animated}>\n {title && (\n <Title\n className={b('title', {centered: centered})}\n title={title}\n subtitle={description}\n />\n )}\n {tabButtons.length && (\n <Row>\n <Col>\n <ButtonTabs\n className={b('tabs', {centered: centered})}\n items={tabButtons}\n activeTab={selectedTag}\n onSelectTab={setSelectedTag}\n tabSize={tagButtonSize}\n />\n </Col>\n </Row>\n )}\n <Row className={b('block-container')}>\n <CardLayoutBlock title=\"\" colSizes={colSizes} className={b('cards-container')}>\n {cards.map((card, index) => {\n const key = getBlockKey(card, index);\n\n return <ConstructorItem data={card} blockKey={key} key={key} />;\n })}\n </CardLayoutBlock>\n </Row>\n </AnimateBlock>\n );\n};\nexport default FilterBlock;\n"]}
@@ -51,6 +51,17 @@ export declare const FoldableListBlock: {
51
51
  contentType: string;
52
52
  inputType: string;
53
53
  };
54
+ labels: {
55
+ type: string;
56
+ items: {
57
+ type: string;
58
+ properties: {
59
+ when: {
60
+ type: string;
61
+ };
62
+ };
63
+ };
64
+ };
54
65
  additionalInfo: {
55
66
  type: string;
56
67
  contentType: string;
@@ -69,7 +69,7 @@ unpredictable css rules order in build */
69
69
  width: fit-content;
70
70
  }
71
71
  }
72
- @media (max-width: 1081px) and (min-width: 769px) {
72
+ @media (max-width: 1080px) and (min-width: 769px) {
73
73
  .pc-form-block__row {
74
74
  flex-direction: column;
75
75
  }
@@ -94,11 +94,14 @@ unpredictable css rules order in build */
94
94
  text-align: center;
95
95
  padding-bottom: 32px;
96
96
  }
97
+ .pc-form-block_with-background .pc-form-block__row .pc-form-block__content-wrapper .pc-content-labels, .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper .pc-content-labels {
98
+ justify-content: center;
99
+ }
97
100
  .pc-form-block:not(.pc-form-block_with-background) .pc-form-block__row .pc-form-block__content-wrapper {
98
101
  padding: 0 0 32px 0;
99
102
  }
100
103
  }
101
- @media (max-width: 769px) {
104
+ @media (max-width: 768px) {
102
105
  .pc-form-block__full-form {
103
106
  padding: 32px;
104
107
  }
@@ -1,5 +1,4 @@
1
- import * as React from 'react';
2
1
  import type { FormBlockProps } from "../../models/index.js";
3
2
  import './Form.css';
4
- declare const FormBlock: React.FC<FormBlockProps>;
5
- export default FormBlock;
3
+ declare const Form: (props: FormBlockProps) => import("react/jsx-runtime").JSX.Element | null;
4
+ export default Form;
@@ -5,26 +5,29 @@ import InnerForm from "../../components/InnerForm/InnerForm.js";
5
5
  import { MobileContext } from "../../context/mobileContext/index.js";
6
6
  import { useTheme } from "../../context/theme/index.js";
7
7
  import { Col, Grid, GridAlignItems, GridColumnSize, Row } from "../../grid/index.js";
8
+ import { useDeviceValue } from "../../hooks/useDeviceValue.js";
8
9
  import { FormBlockDataTypes, FormBlockDirection, isHubspotDataForm, isYandexDataForm, } from "../../models/index.js";
9
10
  import { Content } from "../../sub-blocks/index.js";
10
11
  import { block, getThemedValue } from "../../utils/index.js";
12
+ import { hasBackgroundCSS } from "./utils.js";
11
13
  import './Form.css';
12
14
  const b = block('form-block');
13
15
  const colSizes = { [GridColumnSize.Lg]: 6, [GridColumnSize.All]: 12 };
14
- const FormBlock = (props) => {
15
- const { formData, title, textContent, direction = FormBlockDirection.Center, background } = props;
16
+ const Form = (props) => {
17
+ const { formData, title, textContent, direction = FormBlockDirection.Center, background, customFormNode, } = props;
16
18
  const [contentLoaded, setContentLoaded] = React.useState(false);
17
19
  const isMobile = React.useContext(MobileContext);
18
20
  const theme = useTheme();
19
21
  const themedBackground = getThemedValue(background, theme) || undefined;
22
+ const themedBackgroundStyle = useDeviceValue(themedBackground?.style) || undefined;
20
23
  const withBackground = Boolean(themedBackground &&
21
24
  (themedBackground.src ||
22
25
  themedBackground.desktop ||
23
- themedBackground.style?.backgroundColor));
26
+ hasBackgroundCSS(themedBackgroundStyle ?? {})));
24
27
  const onContentLoad = React.useCallback(() => {
25
28
  setContentLoaded(true);
26
29
  }, []);
27
- if (!formData) {
30
+ if (!formData && !customFormNode) {
28
31
  return null;
29
32
  }
30
33
  let formType;
@@ -37,16 +40,16 @@ const FormBlock = (props) => {
37
40
  return (_jsxs("div", { className: b({
38
41
  'with-background': withBackground,
39
42
  'form-type': formType,
40
- }), children: [themedBackground && (_jsx(BackgroundImage, { ...themedBackground, className: b('media'), imageClassName: b('image') })), _jsx(Grid, { children: _jsxs(Row, { alignItems: direction === FormBlockDirection.Center
43
+ }), children: [themedBackground && (_jsx(BackgroundImage, { ...themedBackground, style: themedBackgroundStyle, className: b('media'), imageClassName: b('image') })), _jsx(Grid, { children: _jsxs(Row, { alignItems: direction === FormBlockDirection.Center
41
44
  ? GridAlignItems.Center
42
45
  : GridAlignItems.Start, className: b('row', {
43
46
  direction,
44
- }), children: [_jsx(Col, { sizes: colSizes, className: b('content-col'), children: textContent && (_jsx("div", { className: b('content-wrapper'), children: _jsx(Content, { theme: "default", ...textContent, centered: direction === FormBlockDirection.Center, colSizes: { all: 12 }, className: b('content') }) })) }), _jsx(Col, { sizes: colSizes, className: b('form-col'), children: _jsx("div", { className: b('form-wrapper'), children: _jsxs("div", { className: b('full-form', {
47
+ }), children: [_jsx(Col, { sizes: colSizes, className: b('content-col'), children: textContent && (_jsx("div", { className: b('content-wrapper'), children: _jsx(Content, { theme: "default", ...textContent, centered: direction === FormBlockDirection.Center, colSizes: { all: 12 }, className: b('content') }) })) }), _jsx(Col, { sizes: colSizes, className: b('form-col'), children: _jsx("div", { className: b('form-wrapper'), children: _jsx("div", { className: b('full-form', {
45
48
  hidden: !contentLoaded,
46
- }), children: [title && (_jsx(Title, { title: {
47
- text: title,
48
- textSize: 's',
49
- }, className: b('title', { mobile: isMobile }), colSizes: { all: 12 } })), _jsx(InnerForm, { className: b('form'), formData: formData, onContentLoad: onContentLoad })] }) }) })] }) })] }));
49
+ }), children: customFormNode || (_jsxs(React.Fragment, { children: [title && (_jsx(Title, { title: {
50
+ text: title,
51
+ textSize: 's',
52
+ }, className: b('title', { mobile: isMobile }), colSizes: { all: 12 } })), _jsx(InnerForm, { className: b('form'), formData: formData, onContentLoad: onContentLoad })] })) }) }) })] }) })] }));
50
53
  };
51
- export default FormBlock;
54
+ export default Form;
52
55
  //# sourceMappingURL=Form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","sourceRoot":"../../../../src","sources":["blocks/Form/Form.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {BackgroundImage, Title} from '../../components';\nimport InnerForm from '../../components/InnerForm/InnerForm';\nimport {MobileContext} from '../../context/mobileContext';\nimport {useTheme} from '../../context/theme';\nimport {Col, Grid, GridAlignItems, GridColumnSize, Row} from '../../grid';\nimport type {FormBlockProps} from '../../models';\nimport {\n FormBlockDataTypes,\n FormBlockDirection,\n isHubspotDataForm,\n isYandexDataForm,\n} from '../../models';\nimport {Content} from '../../sub-blocks';\nimport {block, getThemedValue} from '../../utils';\n\nimport './Form.scss';\n\nconst b = block('form-block');\n\nconst colSizes = {[GridColumnSize.Lg]: 6, [GridColumnSize.All]: 12};\n\nconst FormBlock: React.FC<FormBlockProps> = (props) => {\n const {formData, title, textContent, direction = FormBlockDirection.Center, background} = props;\n const [contentLoaded, setContentLoaded] = React.useState(false);\n const isMobile = React.useContext(MobileContext);\n const theme = useTheme();\n\n const themedBackground = getThemedValue(background, theme) || undefined;\n\n const withBackground = Boolean(\n themedBackground &&\n (themedBackground.src ||\n themedBackground.desktop ||\n themedBackground.style?.backgroundColor),\n );\n const onContentLoad = React.useCallback(() => {\n setContentLoaded(true);\n }, []);\n\n if (!formData) {\n return null;\n }\n\n let formType;\n\n if (isYandexDataForm(formData)) {\n formType = FormBlockDataTypes.YANDEX;\n } else if (isHubspotDataForm(formData)) {\n formType = FormBlockDataTypes.HUBSPOT;\n }\n\n return (\n <div\n className={b({\n 'with-background': withBackground,\n 'form-type': formType,\n })}\n >\n {themedBackground && (\n <BackgroundImage\n {...themedBackground}\n className={b('media')}\n imageClassName={b('image')}\n />\n )}\n <Grid>\n <Row\n alignItems={\n direction === FormBlockDirection.Center\n ? GridAlignItems.Center\n : GridAlignItems.Start\n }\n className={b('row', {\n direction,\n })}\n >\n <Col sizes={colSizes} className={b('content-col')}>\n {textContent && (\n <div className={b('content-wrapper')}>\n <Content\n theme=\"default\"\n {...textContent}\n centered={direction === FormBlockDirection.Center}\n colSizes={{all: 12}}\n className={b('content')}\n />\n </div>\n )}\n </Col>\n <Col sizes={colSizes} className={b('form-col')}>\n <div className={b('form-wrapper')}>\n <div\n className={b('full-form', {\n hidden: !contentLoaded,\n })}\n >\n {title && (\n <Title\n title={{\n text: title,\n textSize: 's',\n }}\n className={b('title', {mobile: isMobile})}\n colSizes={{all: 12}}\n />\n )}\n <InnerForm\n className={b('form')}\n formData={formData}\n onContentLoad={onContentLoad}\n />\n </div>\n </div>\n </Col>\n </Row>\n </Grid>\n </div>\n );\n};\n\nexport default FormBlock;\n"]}
1
+ {"version":3,"file":"Form.js","sourceRoot":"../../../../src","sources":["blocks/Form/Form.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {BackgroundImage, Title} from '../../components';\nimport InnerForm from '../../components/InnerForm/InnerForm';\nimport {MobileContext} from '../../context/mobileContext';\nimport {useTheme} from '../../context/theme';\nimport {Col, Grid, GridAlignItems, GridColumnSize, Row} from '../../grid';\nimport {useDeviceValue} from '../../hooks/useDeviceValue';\nimport type {FormBlockProps} from '../../models';\nimport {\n FormBlockDataTypes,\n FormBlockDirection,\n isHubspotDataForm,\n isYandexDataForm,\n} from '../../models';\nimport {Content} from '../../sub-blocks';\nimport {block, getThemedValue} from '../../utils';\n\nimport {hasBackgroundCSS} from './utils';\n\nimport './Form.scss';\n\nconst b = block('form-block');\n\nconst colSizes = {[GridColumnSize.Lg]: 6, [GridColumnSize.All]: 12};\n\nconst Form = (props: FormBlockProps) => {\n const {\n formData,\n title,\n textContent,\n direction = FormBlockDirection.Center,\n background,\n customFormNode,\n } = props;\n const [contentLoaded, setContentLoaded] = React.useState(false);\n const isMobile = React.useContext(MobileContext);\n const theme = useTheme();\n\n const themedBackground = getThemedValue(background, theme) || undefined;\n const themedBackgroundStyle = useDeviceValue(themedBackground?.style) || undefined;\n\n const withBackground = Boolean(\n themedBackground &&\n (themedBackground.src ||\n themedBackground.desktop ||\n hasBackgroundCSS(themedBackgroundStyle ?? {})),\n );\n\n const onContentLoad = React.useCallback(() => {\n setContentLoaded(true);\n }, []);\n\n if (!formData && !customFormNode) {\n return null;\n }\n\n let formType;\n\n if (isYandexDataForm(formData)) {\n formType = FormBlockDataTypes.YANDEX;\n } else if (isHubspotDataForm(formData)) {\n formType = FormBlockDataTypes.HUBSPOT;\n }\n\n return (\n <div\n className={b({\n 'with-background': withBackground,\n 'form-type': formType,\n })}\n >\n {themedBackground && (\n <BackgroundImage\n {...themedBackground}\n style={themedBackgroundStyle}\n className={b('media')}\n imageClassName={b('image')}\n />\n )}\n <Grid>\n <Row\n alignItems={\n direction === FormBlockDirection.Center\n ? GridAlignItems.Center\n : GridAlignItems.Start\n }\n className={b('row', {\n direction,\n })}\n >\n <Col sizes={colSizes} className={b('content-col')}>\n {textContent && (\n <div className={b('content-wrapper')}>\n <Content\n theme=\"default\"\n {...textContent}\n centered={direction === FormBlockDirection.Center}\n colSizes={{all: 12}}\n className={b('content')}\n />\n </div>\n )}\n </Col>\n <Col sizes={colSizes} className={b('form-col')}>\n <div className={b('form-wrapper')}>\n <div\n className={b('full-form', {\n hidden: !contentLoaded,\n })}\n >\n {customFormNode || (\n <React.Fragment>\n {title && (\n <Title\n title={{\n text: title,\n textSize: 's',\n }}\n className={b('title', {mobile: isMobile})}\n colSizes={{all: 12}}\n />\n )}\n <InnerForm\n className={b('form')}\n formData={formData}\n onContentLoad={onContentLoad}\n />\n </React.Fragment>\n )}\n </div>\n </div>\n </Col>\n </Row>\n </Grid>\n </div>\n );\n};\n\nexport default Form;\n"]}
@@ -164,6 +164,17 @@ export declare const FormBlock: {
164
164
  };
165
165
  };
166
166
  };
167
+ labels: {
168
+ type: string;
169
+ items: {
170
+ type: string;
171
+ properties: {
172
+ when: {
173
+ type: string;
174
+ };
175
+ };
176
+ };
177
+ };
167
178
  controlPosition: {
168
179
  type: string;
169
180
  enum: string[];
@@ -173,7 +184,7 @@ export declare const FormBlock: {
173
184
  direction: {
174
185
  enum: string[];
175
186
  };
176
- image: {
187
+ background: {
177
188
  oneOf: ({
178
189
  type: string;
179
190
  properties: {
@@ -200,9 +211,6 @@ export declare const FormBlock: {
200
211
  pattern?: undefined;
201
212
  })[];
202
213
  };
203
- backgroundColor: {
204
- type: string;
205
- };
206
214
  anchor: {
207
215
  type: string;
208
216
  additionalProperties: boolean;
@@ -39,10 +39,7 @@ export const FormBlock = {
39
39
  direction: {
40
40
  enum: ['content-form', 'form-content', 'center'],
41
41
  },
42
- image: ImageProps,
43
- backgroundColor: {
44
- type: 'string',
45
- },
42
+ background: ImageProps,
46
43
  },
47
44
  },
48
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../src","sources":["blocks/Form/schema.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,uBAAoB;AAE/B,OAAO,EAAC,UAAU,EAAC,yCAAsC;AACzD,OAAO,EAAC,eAAe,EAAC,8CAA2C;AACnE,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,0CAAuC;AACzE,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAC5D,OAAO,EAAC,gBAAgB,EAAC,+CAA4C;AAErE,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,YAAY,EAAE;QACV,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,UAAU,EAAE;YACR,GAAG,cAAc;YACjB,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,QAAQ;wBACpB,UAAU,EAAE;4BACR,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC;yBACrC;qBACJ;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,SAAS;wBACrB,UAAU,EAAE;4BACR,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;yBACvC;qBACJ;iBACJ;aACJ;YACD,WAAW,EAAE;gBACT,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE,qBAAqB;aACpC;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC;aACnD;YACD,KAAK,EAAE,UAAU;YACjB,eAAe,EAAE;gBACb,IAAI,EAAE,QAAQ;aACjB;SACJ;KACJ;CACJ,CAAC","sourcesContent":["import omit from 'lodash/omit';\n\nimport {ImageProps} from '../../components/Image/schema';\nimport {YandexFormProps} from '../../components/YandexForm/schema';\nimport {BlockBaseProps, withTheme} from '../../schema/validators/common';\nimport {ContentBase} from '../../sub-blocks/Content/schema';\nimport {HubspotFormProps} from '../../sub-blocks/HubspotForm/schema';\n\nconst FormBlockContentProps = omit(ContentBase, ['size', 'centered', 'colSizes']);\n\nexport const FormBlock = {\n 'form-block': {\n additionalProperties: false,\n required: ['formData'],\n properties: {\n ...BlockBaseProps,\n title: {\n type: 'string',\n },\n formData: {\n oneOf: [\n {\n type: 'object',\n optionName: 'yandex',\n properties: {\n yandex: withTheme(YandexFormProps),\n },\n },\n {\n type: 'object',\n optionName: 'hubspot',\n properties: {\n hubspot: withTheme(HubspotFormProps),\n },\n },\n ],\n },\n textContent: {\n additionalProperties: false,\n properties: FormBlockContentProps,\n },\n direction: {\n enum: ['content-form', 'form-content', 'center'],\n },\n image: ImageProps,\n backgroundColor: {\n type: 'string',\n },\n },\n },\n};\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"../../../../src","sources":["blocks/Form/schema.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,uBAAoB;AAE/B,OAAO,EAAC,UAAU,EAAC,yCAAsC;AACzD,OAAO,EAAC,eAAe,EAAC,8CAA2C;AACnE,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,0CAAuC;AACzE,OAAO,EAAC,WAAW,EAAC,2CAAwC;AAC5D,OAAO,EAAC,gBAAgB,EAAC,+CAA4C;AAErE,MAAM,qBAAqB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,SAAS,GAAG;IACrB,YAAY,EAAE;QACV,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,UAAU,CAAC;QACtB,UAAU,EAAE;YACR,GAAG,cAAc;YACjB,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;YACD,QAAQ,EAAE;gBACN,KAAK,EAAE;oBACH;wBACI,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,QAAQ;wBACpB,UAAU,EAAE;4BACR,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC;yBACrC;qBACJ;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,SAAS;wBACrB,UAAU,EAAE;4BACR,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC;yBACvC;qBACJ;iBACJ;aACJ;YACD,WAAW,EAAE;gBACT,oBAAoB,EAAE,KAAK;gBAC3B,UAAU,EAAE,qBAAqB;aACpC;YACD,SAAS,EAAE;gBACP,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,CAAC;aACnD;YACD,UAAU,EAAE,UAAU;SACzB;KACJ;CACJ,CAAC","sourcesContent":["import omit from 'lodash/omit';\n\nimport {ImageProps} from '../../components/Image/schema';\nimport {YandexFormProps} from '../../components/YandexForm/schema';\nimport {BlockBaseProps, withTheme} from '../../schema/validators/common';\nimport {ContentBase} from '../../sub-blocks/Content/schema';\nimport {HubspotFormProps} from '../../sub-blocks/HubspotForm/schema';\n\nconst FormBlockContentProps = omit(ContentBase, ['size', 'centered', 'colSizes']);\n\nexport const FormBlock = {\n 'form-block': {\n additionalProperties: false,\n required: ['formData'],\n properties: {\n ...BlockBaseProps,\n title: {\n type: 'string',\n },\n formData: {\n oneOf: [\n {\n type: 'object',\n optionName: 'yandex',\n properties: {\n yandex: withTheme(YandexFormProps),\n },\n },\n {\n type: 'object',\n optionName: 'hubspot',\n properties: {\n hubspot: withTheme(HubspotFormProps),\n },\n },\n ],\n },\n textContent: {\n additionalProperties: false,\n properties: FormBlockContentProps,\n },\n direction: {\n enum: ['content-form', 'form-content', 'center'],\n },\n background: ImageProps,\n },\n },\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const BACKGROUND_STYLE_PROPS: readonly ["background", "backgroundAttachment", "backgroundBlendMode", "backgroundClip", "backgroundColor", "backgroundImage", "backgroundOrigin", "backgroundPositionX", "backgroundPositionY", "backgroundRepeat", "backgroundSize", "backgroundPosition"];
3
+ export declare const hasBackgroundCSS: (style: React.CSSProperties) => boolean;
@@ -0,0 +1,16 @@
1
+ export const BACKGROUND_STYLE_PROPS = [
2
+ 'background',
3
+ 'backgroundAttachment',
4
+ 'backgroundBlendMode',
5
+ 'backgroundClip',
6
+ 'backgroundColor',
7
+ 'backgroundImage',
8
+ 'backgroundOrigin',
9
+ 'backgroundPositionX',
10
+ 'backgroundPositionY',
11
+ 'backgroundRepeat',
12
+ 'backgroundSize',
13
+ 'backgroundPosition',
14
+ ];
15
+ export const hasBackgroundCSS = (style) => BACKGROUND_STYLE_PROPS.some((backgroundStyleProp) => backgroundStyleProp in style);
16
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["blocks/Form/utils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,YAAY;IACZ,sBAAsB;IACtB,qBAAqB;IACrB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;IAClB,qBAAqB;IACrB,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;CACd,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAA0B,EAAE,EAAE,CAC3D,sBAAsB,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,IAAI,KAAK,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nexport const BACKGROUND_STYLE_PROPS = [\n 'background',\n 'backgroundAttachment',\n 'backgroundBlendMode',\n 'backgroundClip',\n 'backgroundColor',\n 'backgroundImage',\n 'backgroundOrigin',\n 'backgroundPositionX',\n 'backgroundPositionY',\n 'backgroundRepeat',\n 'backgroundSize',\n 'backgroundPosition',\n] as const;\n\nexport const hasBackgroundCSS = (style: React.CSSProperties) =>\n BACKGROUND_STYLE_PROPS.some((backgroundStyleProp) => backgroundStyleProp in style);\n"]}
@@ -145,6 +145,13 @@ unpredictable css rules order in build */
145
145
  object-fit: cover;
146
146
  border-radius: var(--pc-border-radius);
147
147
  }
148
+ .pc-header-block__video-iframe {
149
+ position: absolute;
150
+ top: 50%;
151
+ right: 0;
152
+ left: 0;
153
+ transform: translateY(-50%);
154
+ }
148
155
  .pc-header-block__breadcrumbs {
149
156
  position: absolute;
150
157
  top: 16px;
@@ -220,6 +227,12 @@ unpredictable css rules order in build */
220
227
  left: 50%;
221
228
  transform: translate(-50%, -50%);
222
229
  }
230
+ .pc-header-block_media-view_full .pc-header-block__video-iframe {
231
+ top: 0;
232
+ bottom: 0;
233
+ height: auto !important; /* stylelint-disable-line declaration-no-important */
234
+ transform: none;
235
+ }
223
236
  @media (max-width: 1440px) {
224
237
  .pc-header-block__background, .pc-header-block__background.pc-header-block__background_media {
225
238
  left: 0;
@@ -1,6 +1,12 @@
1
1
  import * as React from 'react';
2
2
  import { ClassNameProps, HeaderBlockProps } from "../../models/index.js";
3
3
  import './Header.css';
4
- type HeaderBlockFullProps = HeaderBlockProps & ClassNameProps;
4
+ type ElementsClassName = {
5
+ gridClassName?: string;
6
+ mediaClassName?: string;
7
+ contentWrapperClassName?: string;
8
+ contentInnerClassName?: string;
9
+ };
10
+ export type HeaderBlockFullProps = HeaderBlockProps & ClassNameProps & ElementsClassName;
5
11
  export declare const HeaderBlock: (props: React.PropsWithChildren<HeaderBlockFullProps>) => import("react/jsx-runtime").JSX.Element;
6
12
  export default HeaderBlock;
@@ -1,13 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /* eslint-disable complexity */
3
2
  import { useUniqId } from '@gravity-ui/uikit';
4
- import * as React from 'react';
5
3
  import { Button, Media, RouterLink } from "../../components/index.js";
6
4
  import HeaderBreadcrumbs from "../../components/HeaderBreadcrumbs/HeaderBreadcrumbs.js";
7
5
  import { getMediaImage } from "../../components/Media/Image/utils.js";
8
6
  import YFMWrapper from "../../components/YFMWrapper/YFMWrapper.js";
9
- import { MobileContext } from "../../context/mobileContext/index.js";
7
+ import { BREAKPOINTS } from "../../constants.js";
10
8
  import { useTheme } from "../../context/theme/index.js";
9
+ import { useWindowWidth } from "../../context/windowWidthContext/index.js";
11
10
  import { Col, Grid, Row } from "../../grid/index.js";
12
11
  import { block, getThemedValue } from "../../utils/index.js";
13
12
  import { mergeVideoMicrodata } from "../../utils/microdata.js";
@@ -22,10 +21,11 @@ const Background = ({ background, isMobile }) => {
22
21
  };
23
22
  const FullWidthBackground = ({ background }) => (_jsx("div", { className: b('background', { ['full-width']: true }), style: { backgroundColor: background?.color } }));
24
23
  export const HeaderBlock = (props) => {
25
- const { title, overtitle, description, buttons, image, video, width = 'm', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, breadcrumbs, status, renderTitle, children, mediaView = 'full', centered, additionalInfo, } = props;
26
- const isMobile = React.useContext(MobileContext);
24
+ const { title, overtitle, description, buttons, image, video, videoIframe, width = 'm', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, gridClassName, breadcrumbs, status, renderTitle, children, mediaView = 'full', centered, additionalInfo, mediaClassName, contentWrapperClassName, contentInnerClassName, } = props;
25
+ const windowWidth = useWindowWidth();
26
+ const isMobile = windowWidth <= BREAKPOINTS.sm;
27
27
  const theme = useTheme();
28
- const hasRightSideImage = Boolean((image || video) && !centered);
28
+ const hasRightSideImage = Boolean((image || video || videoIframe) && !centered);
29
29
  const curImageSize = imageSize || getImageSize(width);
30
30
  const titleSizes = hasRightSideImage ? titleWithImageSizes(curImageSize) : getTitleSizes(width);
31
31
  let curVerticalOffset = verticalOffset;
@@ -35,10 +35,8 @@ export const HeaderBlock = (props) => {
35
35
  const backgroundThemed = background && getThemedValue(background, theme);
36
36
  const imageThemed = image && getThemedValue(image, theme);
37
37
  const videoThemed = video && getThemedValue(video, theme);
38
- const mediaWithMicrodata = mergeVideoMicrodata({ video: videoThemed, image: imageThemed }, {
39
- name: title,
40
- description,
41
- });
38
+ const { src: videoIframeSrc, ...videoIframeProps } = videoIframe ?? {};
39
+ const mediaWithMicrodata = mergeVideoMicrodata({ video: videoThemed, image: imageThemed, videoIframe: videoIframeSrc, ...videoIframeProps }, { name: title, description });
42
40
  const fullWidth = backgroundThemed?.fullWidth || backgroundThemed?.fullWidthMedia;
43
41
  const titleId = useUniqId();
44
42
  return (_jsxs("header", { className: b({
@@ -46,16 +44,11 @@ export const HeaderBlock = (props) => {
46
44
  ['full-width']: fullWidth,
47
45
  ['media-view']: mediaView,
48
46
  ['controls-view']: textTheme,
49
- }, className), children: [backgroundThemed && fullWidth && _jsx(FullWidthBackground, { background: backgroundThemed }), backgroundThemed && _jsx(Background, { background: backgroundThemed, isMobile: isMobile }), _jsxs(Grid, { containerClass: b('container-fluid'), children: [breadcrumbs && (_jsx(Row, { className: b('breadcrumbs'), children: _jsx(Col, { children: _jsx(HeaderBreadcrumbs, { ...breadcrumbs, theme: textTheme }) }) })), _jsx(Row, { children: _jsxs(Col, { reset: true, className: b('content-wrapper'), children: [_jsx(Row, { children: _jsx(Col, { className: b('content', {
47
+ }, className), children: [backgroundThemed && fullWidth && _jsx(FullWidthBackground, { background: backgroundThemed }), backgroundThemed && _jsx(Background, { background: backgroundThemed, isMobile: isMobile }), _jsxs(Grid, { containerClass: b('container-fluid'), className: b(null, gridClassName), children: [breadcrumbs && (_jsx(Row, { className: b('breadcrumbs'), children: _jsx(Col, { children: _jsx(HeaderBreadcrumbs, { ...breadcrumbs, theme: textTheme }) }) })), _jsx(Row, { children: _jsxs(Col, { reset: true, className: b('content-wrapper', contentWrapperClassName), children: [_jsx(Row, { children: _jsx(Col, { className: b('content', {
50
48
  offset,
51
49
  theme: textTheme,
52
50
  'vertical-offset': curVerticalOffset,
53
- }), children: _jsxs(Col, { sizes: titleSizes, className: b('content-inner', { centered }), children: [overtitle && (_jsx("div", { className: b('overtitle'), children: typeof overtitle === 'string' ? (_jsx(YFMWrapper, { tagName: "div", className: b('overtitle'), content: overtitle, modifiers: {
54
- constructor: true,
55
- } })) : (overtitle) })), _jsxs(YFMWrapper, { content: title, contentClassName: b('title'), className: b('title-container'), modifiers: {
56
- constructor: true,
57
- constructorTheme: textTheme,
58
- }, tagName: "h1", contentPosition: "end", children: [status, renderTitle ? renderTitle(title) : null] }), description && (_jsx("div", { className: b('description', { theme: textTheme }), children: _jsx(YFMWrapper, { content: description, modifiers: {
51
+ }), children: _jsxs(Col, { sizes: titleSizes, className: b('content-inner', { centered }, contentInnerClassName), children: [overtitle && (_jsx("div", { className: b('overtitle'), children: typeof overtitle === 'string' ? (_jsx(YFMWrapper, { tagName: "div", className: b('overtitle'), content: overtitle, modifiers: { constructor: true } })) : (overtitle) })), _jsxs(YFMWrapper, { content: title, contentClassName: b('title'), className: b('title-container'), modifiers: { constructor: true, constructorTheme: textTheme }, tagName: "h1", contentPosition: "end", children: [status, renderTitle ? renderTitle(title) : null] }), description && (_jsx("div", { className: b('description', { theme: textTheme }), children: _jsx(YFMWrapper, { content: description, modifiers: {
59
52
  constructor: true,
60
53
  constructorTheme: textTheme,
61
54
  } }) })), additionalInfo && (_jsx("div", { className: b('additional-info', { theme: textTheme }), children: _jsx(YFMWrapper, { content: additionalInfo, modifiers: {
@@ -64,7 +57,7 @@ export const HeaderBlock = (props) => {
64
57
  } }) })), buttons && (_jsx("div", { className: b('buttons'), "data-qa": "header-buttons", children: buttons.map((button, index) => (_jsx(RouterLink, { href: button.url, children: _jsx(Button, { className: b('button'), size: "xl", extraProps: {
65
58
  'aria-describedby': titleId,
66
59
  ...button.extraProps,
67
- }, ...button }, index) }, index))) })), children] }) }) }), hasRightSideImage && (_jsx(Media, { className: b('media', { [curImageSize]: true }), videoClassName: b('video'), imageClassName: b('image'), ...mediaWithMicrodata }))] }) })] })] }));
60
+ }, ...button }, index) }, index))) })), children] }) }) }), hasRightSideImage && (_jsx(Media, { className: b('media', { [curImageSize]: true }, mediaClassName), videoClassName: b('video'), imageClassName: b('image'), youtubeClassName: b('video-iframe'), ...mediaWithMicrodata }))] }) })] })] }));
68
61
  };
69
62
  export default HeaderBlock;
70
63
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"../../../../src","sources":["blocks/Header/Header.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable complexity */\nimport {useUniqId} from '@gravity-ui/uikit';\nimport * as React from 'react';\n\nimport {Button, Media, RouterLink} from '../../components';\nimport HeaderBreadcrumbs from '../../components/HeaderBreadcrumbs/HeaderBreadcrumbs';\nimport {getMediaImage} from '../../components/Media/Image/utils';\nimport YFMWrapper from '../../components/YFMWrapper/YFMWrapper';\nimport {MobileContext} from '../../context/mobileContext';\nimport {useTheme} from '../../context/theme';\nimport {Col, Grid, Row} from '../../grid';\nimport {ClassNameProps, HeaderBlockBackground, HeaderBlockProps} from '../../models';\nimport {block, getThemedValue} from '../../utils';\nimport {mergeVideoMicrodata} from '../../utils/microdata';\n\nimport {getImageSize, getTitleSizes, titleWithImageSizes} from './utils';\nimport './Header.scss';\n\nconst b = block('header-block');\n\ntype HeaderBlockFullProps = HeaderBlockProps & ClassNameProps;\n\ninterface BackgroundProps {\n background: HeaderBlockBackground;\n isMobile: boolean;\n}\n\nconst Background = ({background, isMobile}: BackgroundProps) => {\n const {url, image, fullWidthMedia, video, color} = background;\n const imageObject = url ? getMediaImage(url) : image;\n const renderMedia = !isMobile || (typeof image === 'object' && 'mobile' in image);\n\n return (\n <div\n className={b('background', {media: true, 'full-width-media': fullWidthMedia})}\n style={{backgroundColor: color}}\n >\n {renderMedia && (\n <Media\n {...background}\n className={b('background-media')}\n imageClassName={b('image')}\n videoClassName={b('video')}\n isBackground={true}\n parallax={false}\n video={isMobile ? undefined : video}\n image={imageObject}\n />\n )}\n </div>\n );\n};\n\ninterface FullWidthBackgroundProps {\n background: HeaderBlockBackground;\n}\n\nconst FullWidthBackground = ({background}: FullWidthBackgroundProps) => (\n <div\n className={b('background', {['full-width']: true})}\n style={{backgroundColor: background?.color}}\n />\n);\n\nexport const HeaderBlock = (props: React.PropsWithChildren<HeaderBlockFullProps>) => {\n const {\n title,\n overtitle,\n description,\n buttons,\n image,\n video,\n width = 'm',\n imageSize,\n offset = 'default',\n background,\n theme: textTheme = 'light',\n verticalOffset = 'm',\n className,\n breadcrumbs,\n status,\n renderTitle,\n children,\n mediaView = 'full',\n centered,\n additionalInfo,\n } = props;\n const isMobile = React.useContext(MobileContext);\n const theme = useTheme();\n const hasRightSideImage = Boolean((image || video) && !centered);\n const curImageSize = imageSize || getImageSize(width);\n const titleSizes = hasRightSideImage ? titleWithImageSizes(curImageSize) : getTitleSizes(width);\n let curVerticalOffset = verticalOffset;\n\n if (hasRightSideImage && !verticalOffset) {\n curVerticalOffset = 'm';\n }\n\n const backgroundThemed = background && getThemedValue(background, theme);\n const imageThemed = image && getThemedValue(image, theme);\n const videoThemed = video && getThemedValue(video, theme);\n const mediaWithMicrodata = mergeVideoMicrodata(\n {video: videoThemed, image: imageThemed},\n {\n name: title,\n description,\n },\n );\n const fullWidth = backgroundThemed?.fullWidth || backgroundThemed?.fullWidthMedia;\n const titleId = useUniqId();\n\n return (\n <header\n className={b(\n {\n ['has-media']: hasRightSideImage,\n ['full-width']: fullWidth,\n ['media-view']: mediaView,\n ['controls-view']: textTheme,\n },\n className,\n )}\n >\n {backgroundThemed && fullWidth && <FullWidthBackground background={backgroundThemed} />}\n {backgroundThemed && <Background background={backgroundThemed} isMobile={isMobile} />}\n <Grid containerClass={b('container-fluid')}>\n {breadcrumbs && (\n <Row className={b('breadcrumbs')}>\n <Col>\n <HeaderBreadcrumbs {...breadcrumbs} theme={textTheme} />\n </Col>\n </Row>\n )}\n <Row>\n <Col reset className={b('content-wrapper')}>\n <Row>\n <Col\n className={b('content', {\n offset,\n theme: textTheme,\n 'vertical-offset': curVerticalOffset,\n })}\n >\n <Col sizes={titleSizes} className={b('content-inner', {centered})}>\n {overtitle && (\n <div className={b('overtitle')}>\n {typeof overtitle === 'string' ? (\n <YFMWrapper\n tagName=\"div\"\n className={b('overtitle')}\n content={overtitle}\n modifiers={{\n constructor: true,\n }}\n />\n ) : (\n overtitle\n )}\n </div>\n )}\n <YFMWrapper\n content={title}\n contentClassName={b('title')}\n className={b('title-container')}\n modifiers={{\n constructor: true,\n constructorTheme: textTheme,\n }}\n tagName=\"h1\"\n contentPosition=\"end\"\n >\n {status}\n {renderTitle ? renderTitle(title) : null}\n </YFMWrapper>\n {description && (\n <div className={b('description', {theme: textTheme})}>\n <YFMWrapper\n content={description}\n modifiers={{\n constructor: true,\n constructorTheme: textTheme,\n }}\n />\n </div>\n )}\n {additionalInfo && (\n <div className={b('additional-info', {theme: textTheme})}>\n <YFMWrapper\n content={additionalInfo}\n modifiers={{\n constructor: true,\n constructorTheme: textTheme,\n }}\n />\n </div>\n )}\n {buttons && (\n <div className={b('buttons')} data-qa=\"header-buttons\">\n {buttons.map((button, index) => (\n <RouterLink href={button.url} key={index}>\n <Button\n key={index}\n className={b('button')}\n size=\"xl\"\n extraProps={{\n 'aria-describedby': titleId,\n ...button.extraProps,\n }}\n {...button}\n />\n </RouterLink>\n ))}\n </div>\n )}\n {children}\n </Col>\n </Col>\n </Row>\n {hasRightSideImage && (\n <Media\n className={b('media', {[curImageSize]: true})}\n videoClassName={b('video')}\n imageClassName={b('image')}\n {...mediaWithMicrodata}\n />\n )}\n </Col>\n </Row>\n </Grid>\n </header>\n );\n};\n\nexport default HeaderBlock;\n"]}
1
+ {"version":3,"file":"Header.js","sourceRoot":"../../../../src","sources":["blocks/Header/Header.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable complexity */\nimport * as React from 'react';\n\nimport {useUniqId} from '@gravity-ui/uikit';\n\nimport {Button, Media, RouterLink} from '../../components';\nimport HeaderBreadcrumbs from '../../components/HeaderBreadcrumbs/HeaderBreadcrumbs';\nimport {getMediaImage} from '../../components/Media/Image/utils';\nimport YFMWrapper from '../../components/YFMWrapper/YFMWrapper';\nimport {BREAKPOINTS} from '../../constants';\nimport {useTheme} from '../../context/theme';\nimport {useWindowWidth} from '../../context/windowWidthContext';\nimport {Col, Grid, Row} from '../../grid';\nimport {ClassNameProps, HeaderBlockBackground, HeaderBlockProps} from '../../models';\nimport {block, getThemedValue} from '../../utils';\nimport {mergeVideoMicrodata} from '../../utils/microdata';\n\nimport {getImageSize, getTitleSizes, titleWithImageSizes} from './utils';\n\nimport './Header.scss';\n\nconst b = block('header-block');\n\ntype ElementsClassName = {\n gridClassName?: string;\n mediaClassName?: string;\n contentWrapperClassName?: string;\n contentInnerClassName?: string;\n};\n\nexport type HeaderBlockFullProps = HeaderBlockProps & ClassNameProps & ElementsClassName;\n\ninterface BackgroundProps {\n background: HeaderBlockBackground;\n isMobile: boolean;\n}\n\nconst Background = ({background, isMobile}: BackgroundProps) => {\n const {url, image, fullWidthMedia, video, color} = background;\n const imageObject = url ? getMediaImage(url) : image;\n const renderMedia = !isMobile || (typeof image === 'object' && 'mobile' in image);\n\n return (\n <div\n className={b('background', {media: true, 'full-width-media': fullWidthMedia})}\n style={{backgroundColor: color}}\n >\n {renderMedia && (\n <Media\n {...background}\n className={b('background-media')}\n imageClassName={b('image')}\n videoClassName={b('video')}\n isBackground={true}\n parallax={false}\n video={isMobile ? undefined : video}\n image={imageObject}\n />\n )}\n </div>\n );\n};\n\ninterface FullWidthBackgroundProps {\n background: HeaderBlockBackground;\n}\n\nconst FullWidthBackground = ({background}: FullWidthBackgroundProps) => (\n <div\n className={b('background', {['full-width']: true})}\n style={{backgroundColor: background?.color}}\n />\n);\n\nexport const HeaderBlock = (props: React.PropsWithChildren<HeaderBlockFullProps>) => {\n const {\n title,\n overtitle,\n description,\n buttons,\n image,\n video,\n videoIframe,\n width = 'm',\n imageSize,\n offset = 'default',\n background,\n theme: textTheme = 'light',\n verticalOffset = 'm',\n className,\n gridClassName,\n breadcrumbs,\n status,\n renderTitle,\n children,\n mediaView = 'full',\n centered,\n additionalInfo,\n mediaClassName,\n contentWrapperClassName,\n contentInnerClassName,\n } = props;\n const windowWidth = useWindowWidth();\n const isMobile = windowWidth <= BREAKPOINTS.sm;\n const theme = useTheme();\n const hasRightSideImage = Boolean((image || video || videoIframe) && !centered);\n const curImageSize = imageSize || getImageSize(width);\n const titleSizes = hasRightSideImage ? titleWithImageSizes(curImageSize) : getTitleSizes(width);\n let curVerticalOffset = verticalOffset;\n\n if (hasRightSideImage && !verticalOffset) {\n curVerticalOffset = 'm';\n }\n\n const backgroundThemed = background && getThemedValue(background, theme);\n const imageThemed = image && getThemedValue(image, theme);\n const videoThemed = video && getThemedValue(video, theme);\n const {src: videoIframeSrc, ...videoIframeProps} = videoIframe ?? {};\n const mediaWithMicrodata = mergeVideoMicrodata(\n {video: videoThemed, image: imageThemed, videoIframe: videoIframeSrc, ...videoIframeProps},\n {name: title, description},\n );\n const fullWidth = backgroundThemed?.fullWidth || backgroundThemed?.fullWidthMedia;\n const titleId = useUniqId();\n\n return (\n <header\n className={b(\n {\n ['has-media']: hasRightSideImage,\n ['full-width']: fullWidth,\n ['media-view']: mediaView,\n ['controls-view']: textTheme,\n },\n className,\n )}\n >\n {backgroundThemed && fullWidth && <FullWidthBackground background={backgroundThemed} />}\n {backgroundThemed && <Background background={backgroundThemed} isMobile={isMobile} />}\n <Grid containerClass={b('container-fluid')} className={b(null, gridClassName)}>\n {breadcrumbs && (\n <Row className={b('breadcrumbs')}>\n <Col>\n <HeaderBreadcrumbs {...breadcrumbs} theme={textTheme} />\n </Col>\n </Row>\n )}\n <Row>\n <Col reset className={b('content-wrapper', contentWrapperClassName)}>\n <Row>\n <Col\n className={b('content', {\n offset,\n theme: textTheme,\n 'vertical-offset': curVerticalOffset,\n })}\n >\n <Col\n sizes={titleSizes}\n className={b(\n 'content-inner',\n {centered},\n contentInnerClassName,\n )}\n >\n {overtitle && (\n <div className={b('overtitle')}>\n {typeof overtitle === 'string' ? (\n <YFMWrapper\n tagName=\"div\"\n className={b('overtitle')}\n content={overtitle}\n modifiers={{constructor: true}}\n />\n ) : (\n overtitle\n )}\n </div>\n )}\n <YFMWrapper\n content={title}\n contentClassName={b('title')}\n className={b('title-container')}\n modifiers={{constructor: true, constructorTheme: textTheme}}\n tagName=\"h1\"\n contentPosition=\"end\"\n >\n {status}\n {renderTitle ? renderTitle(title) : null}\n </YFMWrapper>\n {description && (\n <div className={b('description', {theme: textTheme})}>\n <YFMWrapper\n content={description}\n modifiers={{\n constructor: true,\n constructorTheme: textTheme,\n }}\n />\n </div>\n )}\n {additionalInfo && (\n <div className={b('additional-info', {theme: textTheme})}>\n <YFMWrapper\n content={additionalInfo}\n modifiers={{\n constructor: true,\n constructorTheme: textTheme,\n }}\n />\n </div>\n )}\n {buttons && (\n <div className={b('buttons')} data-qa=\"header-buttons\">\n {buttons.map((button, index) => (\n <RouterLink href={button.url} key={index}>\n <Button\n key={index}\n className={b('button')}\n size=\"xl\"\n extraProps={{\n 'aria-describedby': titleId,\n ...button.extraProps,\n }}\n {...button}\n />\n </RouterLink>\n ))}\n </div>\n )}\n {children}\n </Col>\n </Col>\n </Row>\n {hasRightSideImage && (\n <Media\n className={b('media', {[curImageSize]: true}, mediaClassName)}\n videoClassName={b('video')}\n imageClassName={b('image')}\n youtubeClassName={b('video-iframe')}\n {...mediaWithMicrodata}\n />\n )}\n </Col>\n </Row>\n </Grid>\n </header>\n );\n};\n\nexport default HeaderBlock;\n"]}
@@ -1,3 +1,22 @@
1
+ export declare const HeaderVideoIframeProps: {
2
+ type: string;
3
+ additionalProperties: boolean;
4
+ required: string[];
5
+ properties: {
6
+ src: {
7
+ type: string;
8
+ };
9
+ autoplay: {
10
+ type: string;
11
+ };
12
+ previewImg: {
13
+ type: string;
14
+ };
15
+ height: {
16
+ type: string;
17
+ };
18
+ };
19
+ };
1
20
  export declare const HeaderBackgroundProps: {
2
21
  type: string;
3
22
  additionalProperties: boolean;
@@ -492,6 +511,35 @@ export declare const HeaderProperties: {
492
511
  optionName: string;
493
512
  })[];
494
513
  };
514
+ videoIframe: {
515
+ oneOf: (({
516
+ type: string;
517
+ additionalProperties: boolean;
518
+ required: string[];
519
+ properties: {
520
+ src: {
521
+ type: string;
522
+ };
523
+ autoplay: {
524
+ type: string;
525
+ };
526
+ previewImg: {
527
+ type: string;
528
+ };
529
+ height: {
530
+ type: string;
531
+ };
532
+ };
533
+ } & {
534
+ optionName: string;
535
+ }) | {
536
+ type: string;
537
+ additionalProperties: boolean;
538
+ required: import("../../index.js").Theme[];
539
+ properties: {};
540
+ optionName: string;
541
+ })[];
542
+ };
495
543
  mediaView: {
496
544
  type: string;
497
545
  enum: string[];
@@ -1064,6 +1112,35 @@ export declare const HeaderBlock: {
1064
1112
  optionName: string;
1065
1113
  })[];
1066
1114
  };
1115
+ videoIframe: {
1116
+ oneOf: (({
1117
+ type: string;
1118
+ additionalProperties: boolean;
1119
+ required: string[];
1120
+ properties: {
1121
+ src: {
1122
+ type: string;
1123
+ };
1124
+ autoplay: {
1125
+ type: string;
1126
+ };
1127
+ previewImg: {
1128
+ type: string;
1129
+ };
1130
+ height: {
1131
+ type: string;
1132
+ };
1133
+ };
1134
+ } & {
1135
+ optionName: string;
1136
+ }) | {
1137
+ type: string;
1138
+ additionalProperties: boolean;
1139
+ required: import("../../index.js").Theme[];
1140
+ properties: {};
1141
+ optionName: string;
1142
+ })[];
1143
+ };
1067
1144
  mediaView: {
1068
1145
  type: string;
1069
1146
  enum: string[];
@@ -1,6 +1,17 @@
1
1
  import { ImageProps } from "../../components/Image/schema.js";
2
2
  import { BlockBaseProps, ButtonBlock, MediaProps, VideoProps, mediaView, withTheme, } from "../../schema/validators/common.js";
3
3
  import { filteredArray } from "../../schema/validators/utils.js";
4
+ export const HeaderVideoIframeProps = {
5
+ type: 'object',
6
+ additionalProperties: false,
7
+ required: ['src'],
8
+ properties: {
9
+ src: { type: 'string' },
10
+ autoplay: { type: 'boolean' },
11
+ previewImg: { type: 'string' },
12
+ height: { type: 'number' },
13
+ },
14
+ };
4
15
  export const HeaderBackgroundProps = {
5
16
  type: 'object',
6
17
  additionalProperties: false,
@@ -41,6 +52,7 @@ export const HeaderProperties = {
41
52
  },
42
53
  image: withTheme(ImageProps),
43
54
  video: withTheme(VideoProps),
55
+ videoIframe: withTheme(HeaderVideoIframeProps),
44
56
  mediaView: {
45
57
  type: 'string',
46
58
  enum: mediaView,