@gravity-ui/page-constructor 4.55.0 → 5.0.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 (407) hide show
  1. package/README.md +6 -4
  2. package/build/cjs/blocks/Banner/schema.d.ts +0 -264
  3. package/build/cjs/blocks/FilterBlock/FilterBlock.js +2 -2
  4. package/build/cjs/blocks/FilterBlock/i18n/index.d.ts +1 -2
  5. package/build/cjs/blocks/FilterBlock/i18n/index.js +4 -3
  6. package/build/cjs/blocks/Map/schema.d.ts +0 -88
  7. package/build/cjs/blocks/Media/schema.d.ts +0 -176
  8. package/build/cjs/blocks/Security/i18n/index.d.ts +1 -2
  9. package/build/cjs/blocks/Security/i18n/index.js +4 -3
  10. package/build/cjs/blocks/Share/Share.css +2 -1
  11. package/build/cjs/blocks/Share/Share.js +4 -4
  12. package/build/cjs/blocks/Share/i18n/index.d.ts +1 -2
  13. package/build/cjs/blocks/Share/i18n/index.js +4 -3
  14. package/build/cjs/blocks/Slider/Arrow/Arrow.js +2 -2
  15. package/build/cjs/blocks/Slider/i18n/index.d.ts +1 -2
  16. package/build/cjs/blocks/Slider/i18n/index.js +4 -3
  17. package/build/cjs/components/BackLink/BackLink.js +2 -2
  18. package/build/cjs/components/Button/Button.css +1 -5
  19. package/build/cjs/components/Button/Button.js +4 -7
  20. package/build/cjs/components/Button/i18n/index.d.ts +1 -2
  21. package/build/cjs/components/Button/i18n/index.js +4 -3
  22. package/build/cjs/components/ButtonTabs/ButtonTabs.css +0 -4
  23. package/build/cjs/components/Buttons/Buttons.css +11 -0
  24. package/build/cjs/components/Buttons/Buttons.d.ts +12 -0
  25. package/build/cjs/components/Buttons/Buttons.js +18 -0
  26. package/build/cjs/components/CardBase/CardBase.d.ts +3 -6
  27. package/build/cjs/components/CardBase/CardBase.js +6 -10
  28. package/build/cjs/components/Control/Control.js +2 -2
  29. package/build/cjs/components/Control/i18n/index.d.ts +1 -2
  30. package/build/cjs/components/Control/i18n/index.js +4 -3
  31. package/build/cjs/components/FileLink/FileLink.css +4 -5
  32. package/build/cjs/components/FullscreenImage/FullscreenImage.css +1 -0
  33. package/build/cjs/components/FullscreenImage/FullscreenImage.js +9 -10
  34. package/build/cjs/components/FullscreenImage/i18n/index.d.ts +1 -2
  35. package/build/cjs/components/FullscreenImage/i18n/index.js +4 -3
  36. package/build/cjs/components/FullscreenMedia/FullscreenMedia.css +1 -0
  37. package/build/cjs/components/FullscreenMedia/FullscreenMedia.js +14 -15
  38. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +3 -6
  39. package/build/cjs/components/Link/Link.css +1 -2
  40. package/build/cjs/components/Link/Link.js +3 -6
  41. package/build/cjs/components/Links/Links.css +14 -0
  42. package/build/cjs/components/Links/Links.d.ts +12 -0
  43. package/build/cjs/components/Links/Links.js +18 -0
  44. package/build/cjs/components/Map/GoogleMap.js +2 -2
  45. package/build/cjs/components/Map/YMap/YandexMap.js +2 -2
  46. package/build/cjs/components/Map/YMap/i18n/index.d.ts +1 -2
  47. package/build/cjs/components/Map/YMap/i18n/index.js +4 -3
  48. package/build/cjs/components/Media/DataLens/DataLens.js +2 -2
  49. package/build/cjs/components/Media/DataLens/i18n/index.d.ts +1 -2
  50. package/build/cjs/components/Media/DataLens/i18n/index.js +4 -3
  51. package/build/cjs/components/Media/Iframe/Iframe.js +2 -2
  52. package/build/cjs/components/Media/Iframe/i18n/index.d.ts +1 -2
  53. package/build/cjs/components/Media/Iframe/i18n/index.js +4 -3
  54. package/build/cjs/components/Media/Media.js +1 -3
  55. package/build/cjs/components/Media/Video/Video.js +2 -3
  56. package/build/cjs/components/OverflowScroller/OverflowScroller.js +2 -2
  57. package/build/cjs/components/OverflowScroller/i18n/index.d.ts +1 -2
  58. package/build/cjs/components/OverflowScroller/i18n/index.js +4 -3
  59. package/build/cjs/components/ReactPlayer/CustomBarControls.js +5 -7
  60. package/build/cjs/components/ReactPlayer/ReactPlayer.css +1 -1
  61. package/build/cjs/components/ReactPlayer/ReactPlayer.js +7 -31
  62. package/build/cjs/components/ReactPlayer/i18n/index.d.ts +1 -2
  63. package/build/cjs/components/ReactPlayer/i18n/index.js +4 -3
  64. package/build/cjs/components/Table/Table.css +6 -0
  65. package/build/cjs/components/Table/Table.js +2 -2
  66. package/build/cjs/components/UnpublishedLabel/UnpublishedLabel.js +2 -2
  67. package/build/cjs/components/UnpublishedLabel/i18n/index.d.ts +1 -2
  68. package/build/cjs/components/UnpublishedLabel/i18n/index.js +4 -3
  69. package/build/cjs/components/VideoBlock/VideoBlock.css +1 -1
  70. package/build/cjs/components/VideoBlock/VideoBlock.js +4 -4
  71. package/build/cjs/components/VideoBlock/i18n/index.d.ts +1 -2
  72. package/build/cjs/components/VideoBlock/i18n/index.js +4 -3
  73. package/build/cjs/components/YandexForm/YandexForm.js +2 -13
  74. package/build/cjs/components/index.d.ts +2 -1
  75. package/build/cjs/components/index.js +4 -2
  76. package/build/cjs/constructor-items.d.ts +1 -1
  77. package/build/cjs/containers/Loadable/Loadable.js +2 -2
  78. package/build/cjs/containers/Loadable/i18n/index.d.ts +1 -2
  79. package/build/cjs/containers/Loadable/i18n/index.js +4 -3
  80. package/build/cjs/containers/PageConstructor/PageConstructor.css +1 -1
  81. package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +1 -1
  82. package/build/cjs/containers/PageConstructor/PageConstructor.js +1 -1
  83. package/build/cjs/containers/PageConstructor/Provider.d.ts +0 -2
  84. package/build/cjs/containers/PageConstructor/Provider.js +1 -3
  85. package/build/cjs/context/localeContext/localeContext.d.ts +2 -2
  86. package/build/cjs/context/localeContext/localeContext.js +2 -2
  87. package/build/cjs/editor/components/ControlPanel/ControlPanel.js +3 -3
  88. package/build/cjs/editor/components/ControlPanel/i18n/en.json +2 -1
  89. package/build/cjs/editor/components/ControlPanel/i18n/index.d.ts +1 -2
  90. package/build/cjs/editor/components/ControlPanel/i18n/index.js +4 -3
  91. package/build/cjs/editor/components/ControlPanel/i18n/ru.json +2 -1
  92. package/build/cjs/editor/components/ErrorBoundary/ErrorBoundary.js +3 -3
  93. package/build/cjs/editor/components/ErrorBoundary/i18n/index.d.ts +1 -2
  94. package/build/cjs/editor/components/ErrorBoundary/i18n/index.js +4 -3
  95. package/build/cjs/editor/components/NotFoundBlock/NotFoundBlock.js +2 -2
  96. package/build/cjs/editor/components/NotFoundBlock/i18n/index.d.ts +1 -2
  97. package/build/cjs/editor/components/NotFoundBlock/i18n/index.js +4 -3
  98. package/build/cjs/editor/containers/Form/Form.css +1 -1
  99. package/build/cjs/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +1 -1
  100. package/build/cjs/hooks/useAnalytics.d.ts +2 -2
  101. package/build/cjs/hooks/useMetrika.d.ts +1 -13
  102. package/build/cjs/hooks/useMetrika.js +0 -41
  103. package/build/cjs/icons/index.d.ts +0 -9
  104. package/build/cjs/icons/index.js +0 -9
  105. package/build/cjs/index.d.ts +0 -1
  106. package/build/cjs/index.js +0 -1
  107. package/build/cjs/models/common.d.ts +2 -53
  108. package/build/cjs/models/common.js +1 -25
  109. package/build/cjs/models/constructor-items/common.d.ts +7 -28
  110. package/build/cjs/models/constructor-items/sub-blocks.d.ts +6 -6
  111. package/build/cjs/models/guards.d.ts +0 -2
  112. package/build/cjs/models/guards.js +1 -5
  113. package/build/cjs/navigation/components/MobileMenuButton/MobileMenuButton.js +3 -3
  114. package/build/cjs/schema/constants.d.ts +12 -176
  115. package/build/cjs/schema/constants.js +2 -0
  116. package/build/cjs/schema/validators/common.d.ts +0 -188
  117. package/build/cjs/schema/validators/common.js +0 -31
  118. package/build/cjs/schema/validators/index.d.ts +0 -2
  119. package/build/cjs/schema/validators/index.js +0 -2
  120. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +15 -3
  121. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +4 -0
  122. package/build/cjs/sub-blocks/BackgroundCard/schema.js +3 -0
  123. package/build/cjs/sub-blocks/BasicCard/BasicCard.js +17 -8
  124. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +4 -0
  125. package/build/cjs/sub-blocks/BasicCard/schema.js +3 -0
  126. package/build/cjs/sub-blocks/Content/Content.css +0 -22
  127. package/build/cjs/sub-blocks/Content/Content.js +10 -21
  128. package/build/cjs/sub-blocks/HubspotForm/HubspotForm.css +0 -1
  129. package/build/cjs/sub-blocks/HubspotForm/index.js +1 -6
  130. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.css +6 -0
  131. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  132. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +16 -4
  133. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +4 -0
  134. package/build/cjs/sub-blocks/LayoutItem/schema.js +3 -0
  135. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +1 -15
  136. package/build/cjs/sub-blocks/PriceCard/PriceCard.css +2 -5
  137. package/build/cjs/sub-blocks/PriceCard/PriceCard.js +3 -3
  138. package/build/cjs/sub-blocks/PriceCard/schema.d.ts +4 -88
  139. package/build/cjs/sub-blocks/PriceCard/schema.js +3 -0
  140. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.d.ts +1 -0
  141. package/build/cjs/sub-blocks/PriceDetailed/PriceDetailed.js +2 -0
  142. package/build/cjs/sub-blocks/PriceDetailed/schema.d.ts +1 -0
  143. package/build/cjs/sub-blocks/PriceDetailed/schema.js +1 -0
  144. package/build/cjs/sub-blocks/renderCardFooterControlsContainer/CardFooterControlsContainer.css +3 -0
  145. package/build/cjs/sub-blocks/renderCardFooterControlsContainer/renderCardFooterControlsContainer.d.ts +3 -0
  146. package/build/cjs/sub-blocks/renderCardFooterControlsContainer/renderCardFooterControlsContainer.js +9 -0
  147. package/build/cjs/text-transform/common.d.ts +5 -5
  148. package/build/cjs/text-transform/common.js +1 -1
  149. package/build/cjs/text-transform/filter.js +1 -1
  150. package/build/cjs/text-transform/transformers.d.ts +3 -3
  151. package/build/cjs/text-transform/utils.d.ts +7 -7
  152. package/build/cjs/text-transform/utils.js +6 -6
  153. package/build/cjs/utils/index.d.ts +0 -1
  154. package/build/cjs/utils/index.js +1 -4
  155. package/build/cjs/utils/renderContentControls/ContentControls.css +6 -0
  156. package/build/cjs/utils/renderContentControls/renderContentControls.d.ts +11 -0
  157. package/build/cjs/utils/renderContentControls/renderContentControls.js +16 -0
  158. package/build/esm/blocks/Banner/schema.d.ts +0 -264
  159. package/build/esm/blocks/FilterBlock/FilterBlock.js +1 -1
  160. package/build/esm/blocks/FilterBlock/i18n/index.d.ts +1 -2
  161. package/build/esm/blocks/FilterBlock/i18n/index.js +3 -3
  162. package/build/esm/blocks/Map/schema.d.ts +0 -88
  163. package/build/esm/blocks/Media/schema.d.ts +0 -176
  164. package/build/esm/blocks/Security/i18n/index.d.ts +1 -2
  165. package/build/esm/blocks/Security/i18n/index.js +3 -3
  166. package/build/esm/blocks/Share/Share.css +2 -1
  167. package/build/esm/blocks/Share/Share.js +1 -1
  168. package/build/esm/blocks/Share/i18n/index.d.ts +1 -2
  169. package/build/esm/blocks/Share/i18n/index.js +3 -3
  170. package/build/esm/blocks/Slider/Arrow/Arrow.js +1 -1
  171. package/build/esm/blocks/Slider/i18n/index.d.ts +1 -2
  172. package/build/esm/blocks/Slider/i18n/index.js +3 -3
  173. package/build/esm/components/BackLink/BackLink.js +2 -2
  174. package/build/esm/components/Button/Button.css +1 -5
  175. package/build/esm/components/Button/Button.js +3 -6
  176. package/build/esm/components/Button/i18n/index.d.ts +1 -2
  177. package/build/esm/components/Button/i18n/index.js +3 -3
  178. package/build/esm/components/ButtonTabs/ButtonTabs.css +0 -4
  179. package/build/esm/components/Buttons/Buttons.css +11 -0
  180. package/build/esm/components/Buttons/Buttons.d.ts +13 -0
  181. package/build/esm/components/Buttons/Buttons.js +16 -0
  182. package/build/esm/components/CardBase/CardBase.d.ts +3 -6
  183. package/build/esm/components/CardBase/CardBase.js +7 -11
  184. package/build/esm/components/Control/Control.js +1 -1
  185. package/build/esm/components/Control/i18n/index.d.ts +1 -2
  186. package/build/esm/components/Control/i18n/index.js +3 -3
  187. package/build/esm/components/FileLink/FileLink.css +4 -5
  188. package/build/esm/components/FullscreenImage/FullscreenImage.css +1 -0
  189. package/build/esm/components/FullscreenImage/FullscreenImage.js +8 -9
  190. package/build/esm/components/FullscreenImage/i18n/index.d.ts +1 -2
  191. package/build/esm/components/FullscreenImage/i18n/index.js +3 -3
  192. package/build/esm/components/FullscreenMedia/FullscreenMedia.css +1 -0
  193. package/build/esm/components/FullscreenMedia/FullscreenMedia.js +14 -15
  194. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +3 -6
  195. package/build/esm/components/Link/Link.css +1 -2
  196. package/build/esm/components/Link/Link.js +3 -6
  197. package/build/esm/components/Links/Links.css +14 -0
  198. package/build/esm/components/Links/Links.d.ts +13 -0
  199. package/build/esm/components/Links/Links.js +16 -0
  200. package/build/esm/components/Map/GoogleMap.js +1 -1
  201. package/build/esm/components/Map/YMap/YandexMap.js +1 -1
  202. package/build/esm/components/Map/YMap/i18n/index.d.ts +1 -2
  203. package/build/esm/components/Map/YMap/i18n/index.js +3 -3
  204. package/build/esm/components/Media/DataLens/DataLens.js +1 -1
  205. package/build/esm/components/Media/DataLens/i18n/index.d.ts +1 -2
  206. package/build/esm/components/Media/DataLens/i18n/index.js +3 -3
  207. package/build/esm/components/Media/Iframe/Iframe.js +1 -1
  208. package/build/esm/components/Media/Iframe/i18n/index.d.ts +1 -2
  209. package/build/esm/components/Media/Iframe/i18n/index.js +3 -3
  210. package/build/esm/components/Media/Media.js +1 -3
  211. package/build/esm/components/Media/Video/Video.js +2 -3
  212. package/build/esm/components/OverflowScroller/OverflowScroller.js +1 -1
  213. package/build/esm/components/OverflowScroller/i18n/index.d.ts +1 -2
  214. package/build/esm/components/OverflowScroller/i18n/index.js +3 -3
  215. package/build/esm/components/ReactPlayer/CustomBarControls.js +4 -6
  216. package/build/esm/components/ReactPlayer/ReactPlayer.css +1 -1
  217. package/build/esm/components/ReactPlayer/ReactPlayer.js +6 -30
  218. package/build/esm/components/ReactPlayer/i18n/index.d.ts +1 -2
  219. package/build/esm/components/ReactPlayer/i18n/index.js +3 -3
  220. package/build/esm/components/Table/Table.css +6 -0
  221. package/build/esm/components/Table/Table.js +2 -2
  222. package/build/esm/components/UnpublishedLabel/UnpublishedLabel.js +1 -1
  223. package/build/esm/components/UnpublishedLabel/i18n/index.d.ts +1 -2
  224. package/build/esm/components/UnpublishedLabel/i18n/index.js +3 -3
  225. package/build/esm/components/VideoBlock/VideoBlock.css +1 -1
  226. package/build/esm/components/VideoBlock/VideoBlock.js +3 -3
  227. package/build/esm/components/VideoBlock/i18n/index.d.ts +1 -2
  228. package/build/esm/components/VideoBlock/i18n/index.js +3 -3
  229. package/build/esm/components/YandexForm/YandexForm.js +2 -13
  230. package/build/esm/components/index.d.ts +2 -1
  231. package/build/esm/components/index.js +2 -1
  232. package/build/esm/constructor-items.d.ts +1 -1
  233. package/build/esm/containers/Loadable/Loadable.js +1 -1
  234. package/build/esm/containers/Loadable/i18n/index.d.ts +1 -2
  235. package/build/esm/containers/Loadable/i18n/index.js +3 -3
  236. package/build/esm/containers/PageConstructor/PageConstructor.css +1 -1
  237. package/build/esm/containers/PageConstructor/PageConstructor.d.ts +1 -1
  238. package/build/esm/containers/PageConstructor/PageConstructor.js +1 -1
  239. package/build/esm/containers/PageConstructor/Provider.d.ts +0 -2
  240. package/build/esm/containers/PageConstructor/Provider.js +1 -3
  241. package/build/esm/context/localeContext/localeContext.d.ts +2 -2
  242. package/build/esm/context/localeContext/localeContext.js +1 -1
  243. package/build/esm/editor/components/ControlPanel/ControlPanel.js +2 -2
  244. package/build/esm/editor/components/ControlPanel/i18n/en.json +2 -1
  245. package/build/esm/editor/components/ControlPanel/i18n/index.d.ts +1 -2
  246. package/build/esm/editor/components/ControlPanel/i18n/index.js +3 -3
  247. package/build/esm/editor/components/ControlPanel/i18n/ru.json +2 -1
  248. package/build/esm/editor/components/ErrorBoundary/ErrorBoundary.js +1 -1
  249. package/build/esm/editor/components/ErrorBoundary/i18n/index.d.ts +1 -2
  250. package/build/esm/editor/components/ErrorBoundary/i18n/index.js +3 -3
  251. package/build/esm/editor/components/NotFoundBlock/NotFoundBlock.js +1 -1
  252. package/build/esm/editor/components/NotFoundBlock/i18n/index.d.ts +1 -2
  253. package/build/esm/editor/components/NotFoundBlock/i18n/index.js +3 -3
  254. package/build/esm/editor/containers/Form/Form.css +1 -1
  255. package/build/esm/editor/dynamic-forms-custom/hooks/useOneOf.d.ts +1 -1
  256. package/build/esm/hooks/useAnalytics.d.ts +2 -2
  257. package/build/esm/hooks/useMetrika.d.ts +1 -13
  258. package/build/esm/hooks/useMetrika.js +1 -38
  259. package/build/esm/icons/index.d.ts +0 -9
  260. package/build/esm/icons/index.js +0 -9
  261. package/build/esm/index.d.ts +0 -1
  262. package/build/esm/index.js +0 -1
  263. package/build/esm/models/common.d.ts +2 -53
  264. package/build/esm/models/common.js +0 -24
  265. package/build/esm/models/constructor-items/common.d.ts +7 -28
  266. package/build/esm/models/constructor-items/sub-blocks.d.ts +6 -6
  267. package/build/esm/models/guards.d.ts +0 -2
  268. package/build/esm/models/guards.js +0 -3
  269. package/build/esm/navigation/components/MobileMenuButton/MobileMenuButton.js +3 -3
  270. package/build/esm/schema/constants.d.ts +12 -176
  271. package/build/esm/schema/constants.js +2 -0
  272. package/build/esm/schema/validators/common.d.ts +0 -188
  273. package/build/esm/schema/validators/common.js +0 -31
  274. package/build/esm/schema/validators/index.d.ts +0 -2
  275. package/build/esm/schema/validators/index.js +0 -2
  276. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +15 -3
  277. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +4 -0
  278. package/build/esm/sub-blocks/BackgroundCard/schema.js +3 -0
  279. package/build/esm/sub-blocks/BasicCard/BasicCard.js +14 -5
  280. package/build/esm/sub-blocks/BasicCard/schema.d.ts +4 -0
  281. package/build/esm/sub-blocks/BasicCard/schema.js +3 -0
  282. package/build/esm/sub-blocks/Content/Content.css +0 -22
  283. package/build/esm/sub-blocks/Content/Content.js +11 -22
  284. package/build/esm/sub-blocks/HubspotForm/HubspotForm.css +0 -1
  285. package/build/esm/sub-blocks/HubspotForm/index.js +1 -6
  286. package/build/esm/sub-blocks/LayoutItem/LayoutItem.css +6 -0
  287. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  288. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +16 -4
  289. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +4 -0
  290. package/build/esm/sub-blocks/LayoutItem/schema.js +3 -0
  291. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +1 -15
  292. package/build/esm/sub-blocks/PriceCard/PriceCard.css +2 -5
  293. package/build/esm/sub-blocks/PriceCard/PriceCard.js +4 -4
  294. package/build/esm/sub-blocks/PriceCard/schema.d.ts +4 -88
  295. package/build/esm/sub-blocks/PriceCard/schema.js +3 -0
  296. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.d.ts +1 -0
  297. package/build/esm/sub-blocks/PriceDetailed/PriceDetailed.js +2 -0
  298. package/build/esm/sub-blocks/PriceDetailed/schema.d.ts +1 -0
  299. package/build/esm/sub-blocks/PriceDetailed/schema.js +1 -0
  300. package/build/esm/sub-blocks/renderCardFooterControlsContainer/CardFooterControlsContainer.css +3 -0
  301. package/build/esm/sub-blocks/renderCardFooterControlsContainer/renderCardFooterControlsContainer.d.ts +3 -0
  302. package/build/esm/sub-blocks/renderCardFooterControlsContainer/renderCardFooterControlsContainer.js +6 -0
  303. package/build/esm/text-transform/common.d.ts +5 -5
  304. package/build/esm/text-transform/common.js +1 -1
  305. package/build/esm/text-transform/filter.js +1 -1
  306. package/build/esm/text-transform/transformers.d.ts +3 -3
  307. package/build/esm/text-transform/utils.d.ts +7 -7
  308. package/build/esm/text-transform/utils.js +2 -2
  309. package/build/esm/utils/index.d.ts +0 -1
  310. package/build/esm/utils/index.js +0 -1
  311. package/build/esm/utils/renderContentControls/ContentControls.css +6 -0
  312. package/build/esm/utils/renderContentControls/renderContentControls.d.ts +12 -0
  313. package/build/esm/utils/renderContentControls/renderContentControls.js +14 -0
  314. package/package.json +16 -15
  315. package/server/models/common.d.ts +2 -53
  316. package/server/models/common.js +1 -25
  317. package/server/models/constructor-items/common.d.ts +7 -28
  318. package/server/models/constructor-items/sub-blocks.d.ts +6 -6
  319. package/server/models/guards.d.ts +0 -2
  320. package/server/models/guards.js +1 -5
  321. package/server/text-transform/common.d.ts +5 -5
  322. package/server/text-transform/common.js +1 -1
  323. package/server/text-transform/filter.js +1 -1
  324. package/server/text-transform/transformers.d.ts +3 -3
  325. package/server/text-transform/utils.d.ts +7 -7
  326. package/server/text-transform/utils.js +6 -6
  327. package/server/utils/index.d.ts +0 -1
  328. package/server/utils/index.js +1 -4
  329. package/styles/mixins.scss +0 -4
  330. package/styles/storybook/index.scss +1 -1
  331. package/styles/styles.css +1 -1
  332. package/styles/yfm.scss +1 -1
  333. package/widget/index.js +1 -1
  334. package/build/cjs/components/Link/Links.d.ts +0 -6
  335. package/build/cjs/components/Link/Links.js +0 -13
  336. package/build/cjs/context/metrikaContext/index.d.ts +0 -1
  337. package/build/cjs/context/metrikaContext/index.js +0 -4
  338. package/build/cjs/context/metrikaContext/metrikaContext.d.ts +0 -13
  339. package/build/cjs/context/metrikaContext/metrikaContext.js +0 -6
  340. package/build/cjs/i18n.d.ts +0 -2
  341. package/build/cjs/i18n.js +0 -12
  342. package/build/cjs/icons/ArrowConstructor.d.ts +0 -2
  343. package/build/cjs/icons/ArrowConstructor.js +0 -9
  344. package/build/cjs/icons/ArrowSidebar.d.ts +0 -2
  345. package/build/cjs/icons/ArrowSidebar.js +0 -9
  346. package/build/cjs/icons/Fullscreen.d.ts +0 -2
  347. package/build/cjs/icons/Fullscreen.js +0 -9
  348. package/build/cjs/icons/Minus.d.ts +0 -2
  349. package/build/cjs/icons/Minus.js +0 -9
  350. package/build/cjs/icons/Mute.d.ts +0 -2
  351. package/build/cjs/icons/Mute.js +0 -12
  352. package/build/cjs/icons/NavigationClose.d.ts +0 -2
  353. package/build/cjs/icons/NavigationClose.js +0 -9
  354. package/build/cjs/icons/NavigationOpen.d.ts +0 -2
  355. package/build/cjs/icons/NavigationOpen.js +0 -11
  356. package/build/cjs/icons/PlayVideo.d.ts +0 -2
  357. package/build/cjs/icons/PlayVideo.js +0 -9
  358. package/build/cjs/icons/PreviewClose.d.ts +0 -2
  359. package/build/cjs/icons/PreviewClose.js +0 -9
  360. package/build/cjs/icons/Tick.d.ts +0 -2
  361. package/build/cjs/icons/Tick.js +0 -13
  362. package/build/cjs/icons/Unmute.d.ts +0 -2
  363. package/build/cjs/icons/Unmute.js +0 -12
  364. package/build/cjs/schema/validators/pixel.d.ts +0 -57
  365. package/build/cjs/schema/validators/pixel.js +0 -63
  366. package/build/cjs/utils/configure.d.ts +0 -12
  367. package/build/cjs/utils/configure.js +0 -26
  368. package/build/cjs/utils/registerKeyset.d.ts +0 -5
  369. package/build/cjs/utils/registerKeyset.js +0 -9
  370. package/build/esm/components/Link/Links.d.ts +0 -6
  371. package/build/esm/components/Link/Links.js +0 -10
  372. package/build/esm/context/metrikaContext/index.d.ts +0 -1
  373. package/build/esm/context/metrikaContext/index.js +0 -1
  374. package/build/esm/context/metrikaContext/metrikaContext.d.ts +0 -13
  375. package/build/esm/context/metrikaContext/metrikaContext.js +0 -2
  376. package/build/esm/i18n.d.ts +0 -2
  377. package/build/esm/i18n.js +0 -9
  378. package/build/esm/icons/ArrowConstructor.d.ts +0 -2
  379. package/build/esm/icons/ArrowConstructor.js +0 -4
  380. package/build/esm/icons/ArrowSidebar.d.ts +0 -2
  381. package/build/esm/icons/ArrowSidebar.js +0 -4
  382. package/build/esm/icons/Fullscreen.d.ts +0 -2
  383. package/build/esm/icons/Fullscreen.js +0 -4
  384. package/build/esm/icons/Minus.d.ts +0 -2
  385. package/build/esm/icons/Minus.js +0 -4
  386. package/build/esm/icons/Mute.d.ts +0 -2
  387. package/build/esm/icons/Mute.js +0 -7
  388. package/build/esm/icons/NavigationClose.d.ts +0 -2
  389. package/build/esm/icons/NavigationClose.js +0 -4
  390. package/build/esm/icons/NavigationOpen.d.ts +0 -2
  391. package/build/esm/icons/NavigationOpen.js +0 -6
  392. package/build/esm/icons/PlayVideo.d.ts +0 -2
  393. package/build/esm/icons/PlayVideo.js +0 -4
  394. package/build/esm/icons/PreviewClose.d.ts +0 -2
  395. package/build/esm/icons/PreviewClose.js +0 -4
  396. package/build/esm/icons/Tick.d.ts +0 -2
  397. package/build/esm/icons/Tick.js +0 -8
  398. package/build/esm/icons/Unmute.d.ts +0 -2
  399. package/build/esm/icons/Unmute.js +0 -7
  400. package/build/esm/schema/validators/pixel.d.ts +0 -57
  401. package/build/esm/schema/validators/pixel.js +0 -60
  402. package/build/esm/utils/configure.d.ts +0 -12
  403. package/build/esm/utils/configure.js +0 -20
  404. package/build/esm/utils/registerKeyset.d.ts +0 -5
  405. package/build/esm/utils/registerKeyset.js +0 -5
  406. package/server/utils/configure.d.ts +0 -12
  407. package/server/utils/configure.js +0 -26
@@ -1,9 +1,9 @@
1
1
  import { ClassNameProps, QuoteType } from '../../models';
2
2
  import { ThemeSupporting } from '../../utils';
3
3
  import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
4
- import { AnalyticsEventsBase, PixelEvent } from '../common';
4
+ import { AnalyticsEventsBase } from '../common';
5
5
  import { ContentBlockProps } from './blocks';
6
- import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageCardMargins, ImageObjectProps, ImageProps, LinkProps, MediaProps, MediaView, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
6
+ import { AuthorItem, ButtonProps, CardBaseProps, CardLayoutProps, ContentTheme, DividerSize, ImageCardMargins, ImageObjectProps, ImageProps, LinkProps, MediaProps, MediaView, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
7
7
  export declare enum SubBlockType {
8
8
  Divider = "divider",
9
9
  Quote = "quote",
@@ -70,7 +70,6 @@ export interface HubspotFormProps extends HubspotEventHandlers, AnalyticsEventsB
70
70
  * To use this handler for component that is rendered in iframe, set up useLoopBackHubspotEvents hook on top level frame
71
71
  */
72
72
  onLoad?: (arg: HubspotEventData) => void;
73
- pixelEvents?: string | string[] | PixelEvent | PixelEvent[] | ButtonPixel;
74
73
  hubspotEvents?: string[];
75
74
  createDOMElement?: boolean;
76
75
  }
@@ -97,14 +96,14 @@ export interface QuoteProps extends Themable, CardBaseProps {
97
96
  quoteType?: QuoteType;
98
97
  button?: ButtonProps;
99
98
  }
100
- export interface BackgroundCardProps extends CardBaseProps, AnalyticsEventsBase, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
99
+ export interface BackgroundCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
101
100
  url?: string;
102
101
  urlTitle?: string;
103
102
  background?: ThemeSupporting<ImageObjectProps>;
104
103
  paddingBottom?: 's' | 'm' | 'l' | 'xl';
105
104
  backgroundColor?: string;
106
105
  }
107
- export interface BasicCardProps extends CardBaseProps, AnalyticsEventsBase, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
106
+ export interface BasicCardProps extends CardBaseProps, AnalyticsEventsBase, CardLayoutProps, Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size' | 'theme'> {
108
107
  url: string;
109
108
  urlTitle?: string;
110
109
  icon?: ImageProps;
@@ -134,7 +133,7 @@ export interface PriceCardProps extends CardBaseProps, Pick<ContentBlockProps, '
134
133
  backgroundColor?: string;
135
134
  list?: string[];
136
135
  }
137
- export interface LayoutItemProps extends ClassNameProps, AnalyticsEventsBase {
136
+ export interface LayoutItemProps extends ClassNameProps, CardLayoutProps, AnalyticsEventsBase {
138
137
  content: Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size'>;
139
138
  media?: MediaProps;
140
139
  metaInfo?: string[];
@@ -161,6 +160,7 @@ export type LayoutItemModel = {
161
160
  export type BackgroundCardModel = {
162
161
  type: SubBlockType.BackgroundCard;
163
162
  } & BackgroundCardProps;
163
+ /** @deprecated */
164
164
  export type PriceDetailedModel = {
165
165
  type: SubBlockType.PriceDetailed;
166
166
  } & PriceDetailedProps;
@@ -1,6 +1,4 @@
1
1
  import { Block, ConstructorItem, FormBlockData, FormBlockHubspotData, FormBlockYandexData } from './';
2
- import { MetrikaGoal, NewMetrikaGoal } from './index';
3
2
  export declare function isBlock(block: ConstructorItem): block is Block;
4
- export declare function isNewMetrikaFormat(metrika: MetrikaGoal): metrika is NewMetrikaGoal[];
5
3
  export declare function isYandexDataForm(data: FormBlockData): data is FormBlockYandexData;
6
4
  export declare function isHubspotDataForm(data: FormBlockData): data is FormBlockHubspotData;
@@ -2,9 +2,6 @@ import { BlockTypes, } from './';
2
2
  export function isBlock(block) {
3
3
  return block.type in BlockTypes;
4
4
  }
5
- export function isNewMetrikaFormat(metrika) {
6
- return Boolean(Array.isArray(metrika) && metrika.length && typeof metrika[0] === 'object');
7
- }
8
5
  export function isYandexDataForm(data) {
9
6
  return Boolean(data.yandex);
10
7
  }
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
+ import { Bars, Xmark } from '@gravity-ui/icons';
2
3
  import { Control } from '../../../components';
3
- import { NavigationClose, NavigationOpen } from '../../../icons';
4
4
  import { block } from '../../../utils';
5
5
  import './MobileMenuButton.css';
6
6
  const b = block('mobile-menu-button');
7
- const ICON_SIZE = 36;
7
+ const ICON_SIZE = 24;
8
8
  export const MobileMenuButton = ({ isSidebarOpened, onSidebarOpenedChange, }) => (React.createElement(Control, { className: b(), onClick: (e) => {
9
9
  e.stopPropagation();
10
10
  e.nativeEvent.stopImmediatePropagation();
11
11
  onSidebarOpenedChange(!isSidebarOpened);
12
- }, size: "l", icon: isSidebarOpened ? NavigationClose : NavigationOpen, iconSize: ICON_SIZE }));
12
+ }, size: "l", icon: isSidebarOpened ? Xmark : Bars, iconSize: ICON_SIZE }));
@@ -154,94 +154,6 @@ export declare const cardSchemas: {
154
154
  optionName: string;
155
155
  })[];
156
156
  };
157
- metrikaGoals: {
158
- oneOf: ({
159
- type: string;
160
- optionName: string;
161
- items?: undefined;
162
- } | {
163
- type: string;
164
- items: {
165
- type: string;
166
- additionalProperties?: undefined;
167
- required?: undefined;
168
- properties?: undefined;
169
- };
170
- optionName: string;
171
- } | {
172
- type: string;
173
- items: {
174
- type: string;
175
- additionalProperties: boolean;
176
- required: string[];
177
- properties: {
178
- name: {
179
- type: string;
180
- };
181
- isCrossSite: {
182
- type: string;
183
- };
184
- };
185
- };
186
- optionName: string;
187
- })[];
188
- };
189
- pixelEvents: {
190
- type: string;
191
- items: {
192
- type: string;
193
- required: string[];
194
- additionalProperties: boolean;
195
- properties: {
196
- name: {
197
- type: string;
198
- enum: import("../models").PixelEventType[];
199
- };
200
- data: {};
201
- };
202
- select: {
203
- $data: string;
204
- };
205
- selectCases: {
206
- SubmitApplication: {
207
- additionalProperties: boolean;
208
- properties: {
209
- name: {};
210
- };
211
- };
212
- Contact: {
213
- additionalProperties: boolean;
214
- properties: {
215
- name: {};
216
- };
217
- };
218
- Lead: {
219
- additionalProperties: boolean;
220
- properties: {
221
- name: {};
222
- data: {
223
- type: string;
224
- additionalProperties: boolean;
225
- properties: {
226
- content_category: {
227
- type: string;
228
- };
229
- content_name: {
230
- type: string;
231
- };
232
- currency: {
233
- type: string;
234
- };
235
- value: {
236
- type: string;
237
- };
238
- };
239
- };
240
- };
241
- };
242
- };
243
- };
244
- };
245
157
  analyticsEvents: {
246
158
  oneOf: ({
247
159
  optionName: string;
@@ -476,6 +388,10 @@ export declare const cardSchemas: {
476
388
  type: string;
477
389
  };
478
390
  };
391
+ controlPosition: {
392
+ type: string;
393
+ enum: string[];
394
+ };
479
395
  border: {
480
396
  type: string;
481
397
  enum: string[];
@@ -518,6 +434,10 @@ export declare const cardSchemas: {
518
434
  type: string;
519
435
  enum: string[];
520
436
  };
437
+ controlPosition: {
438
+ type: string;
439
+ enum: string[];
440
+ };
521
441
  title: {
522
442
  oneOf: ({
523
443
  type: string;
@@ -855,6 +775,10 @@ export declare const cardSchemas: {
855
775
  optionName: string;
856
776
  })[];
857
777
  };
778
+ controlPosition: {
779
+ type: string;
780
+ enum: string[];
781
+ };
858
782
  title: {
859
783
  oneOf: ({
860
784
  type: string;
@@ -1142,94 +1066,6 @@ export declare const cardSchemas: {
1142
1066
  optionName: string;
1143
1067
  })[];
1144
1068
  };
1145
- metrikaGoals: {
1146
- oneOf: ({
1147
- type: string;
1148
- optionName: string;
1149
- items?: undefined;
1150
- } | {
1151
- type: string;
1152
- items: {
1153
- type: string;
1154
- additionalProperties?: undefined;
1155
- required?: undefined;
1156
- properties?: undefined;
1157
- };
1158
- optionName: string;
1159
- } | {
1160
- type: string;
1161
- items: {
1162
- type: string;
1163
- additionalProperties: boolean;
1164
- required: string[];
1165
- properties: {
1166
- name: {
1167
- type: string;
1168
- };
1169
- isCrossSite: {
1170
- type: string;
1171
- };
1172
- };
1173
- };
1174
- optionName: string;
1175
- })[];
1176
- };
1177
- pixelEvents: {
1178
- type: string;
1179
- items: {
1180
- type: string;
1181
- required: string[];
1182
- additionalProperties: boolean;
1183
- properties: {
1184
- name: {
1185
- type: string;
1186
- enum: import("../models").PixelEventType[];
1187
- };
1188
- data: {};
1189
- };
1190
- select: {
1191
- $data: string;
1192
- };
1193
- selectCases: {
1194
- SubmitApplication: {
1195
- additionalProperties: boolean;
1196
- properties: {
1197
- name: {};
1198
- };
1199
- };
1200
- Contact: {
1201
- additionalProperties: boolean;
1202
- properties: {
1203
- name: {};
1204
- };
1205
- };
1206
- Lead: {
1207
- additionalProperties: boolean;
1208
- properties: {
1209
- name: {};
1210
- data: {
1211
- type: string;
1212
- additionalProperties: boolean;
1213
- properties: {
1214
- content_category: {
1215
- type: string;
1216
- };
1217
- content_name: {
1218
- type: string;
1219
- };
1220
- currency: {
1221
- type: string;
1222
- };
1223
- value: {
1224
- type: string;
1225
- };
1226
- };
1227
- };
1228
- };
1229
- };
1230
- };
1231
- };
1232
- };
1233
1069
  analyticsEvents: {
1234
1070
  oneOf: ({
1235
1071
  optionName: string;
@@ -19,6 +19,7 @@ export const constructorBlockSchemaNames = [
19
19
  'info-block',
20
20
  'table-block',
21
21
  'tabs-block',
22
+ /** @deprecated */
22
23
  'price-detailed',
23
24
  'header-slider-block',
24
25
  'cards-with-image-block',
@@ -32,6 +33,7 @@ export const constructorBlockSchemaNames = [
32
33
  export const constructorCardSchemaNames = [
33
34
  'media-card',
34
35
  'banner-card',
36
+ /** @deprecated */
35
37
  'price-detailed',
36
38
  'background-card',
37
39
  'quote',
@@ -590,100 +590,6 @@ export declare const ButtonProps: {
590
590
  optionName: string;
591
591
  })[];
592
592
  };
593
- /**
594
- * @deprecated Metrika will be deleted
595
- */
596
- metrikaGoals: {
597
- oneOf: ({
598
- type: string;
599
- optionName: string;
600
- items?: undefined;
601
- } | {
602
- type: string;
603
- items: {
604
- type: string;
605
- additionalProperties?: undefined;
606
- required?: undefined;
607
- properties?: undefined;
608
- };
609
- optionName: string;
610
- } | {
611
- type: string;
612
- items: {
613
- type: string;
614
- additionalProperties: boolean;
615
- required: string[];
616
- properties: {
617
- name: {
618
- type: string;
619
- };
620
- isCrossSite: {
621
- type: string;
622
- };
623
- };
624
- };
625
- optionName: string;
626
- })[];
627
- };
628
- /**
629
- * @deprecated Pixel will be deleted
630
- */
631
- pixelEvents: {
632
- type: string;
633
- items: {
634
- type: string;
635
- required: string[];
636
- additionalProperties: boolean;
637
- properties: {
638
- name: {
639
- type: string;
640
- enum: import("../../models").PixelEventType[];
641
- };
642
- data: {};
643
- };
644
- select: {
645
- $data: string;
646
- };
647
- selectCases: {
648
- SubmitApplication: {
649
- additionalProperties: boolean;
650
- properties: {
651
- name: {};
652
- };
653
- };
654
- Contact: {
655
- additionalProperties: boolean;
656
- properties: {
657
- name: {};
658
- };
659
- };
660
- Lead: {
661
- additionalProperties: boolean;
662
- properties: {
663
- name: {};
664
- data: {
665
- type: string;
666
- additionalProperties: boolean;
667
- properties: {
668
- content_category: {
669
- type: string;
670
- };
671
- content_name: {
672
- type: string;
673
- };
674
- currency: {
675
- type: string;
676
- };
677
- value: {
678
- type: string;
679
- };
680
- };
681
- };
682
- };
683
- };
684
- };
685
- };
686
- };
687
593
  analyticsEvents: {
688
594
  oneOf: ({
689
595
  optionName: string;
@@ -933,100 +839,6 @@ export declare const ButtonBlock: {
933
839
  optionName: string;
934
840
  })[];
935
841
  };
936
- /**
937
- * @deprecated Metrika will be deleted
938
- */
939
- metrikaGoals: {
940
- oneOf: ({
941
- type: string;
942
- optionName: string;
943
- items?: undefined;
944
- } | {
945
- type: string;
946
- items: {
947
- type: string;
948
- additionalProperties?: undefined;
949
- required?: undefined;
950
- properties?: undefined;
951
- };
952
- optionName: string;
953
- } | {
954
- type: string;
955
- items: {
956
- type: string;
957
- additionalProperties: boolean;
958
- required: string[];
959
- properties: {
960
- name: {
961
- type: string;
962
- };
963
- isCrossSite: {
964
- type: string;
965
- };
966
- };
967
- };
968
- optionName: string;
969
- })[];
970
- };
971
- /**
972
- * @deprecated Pixel will be deleted
973
- */
974
- pixelEvents: {
975
- type: string;
976
- items: {
977
- type: string;
978
- required: string[];
979
- additionalProperties: boolean;
980
- properties: {
981
- name: {
982
- type: string;
983
- enum: import("../../models").PixelEventType[];
984
- };
985
- data: {};
986
- };
987
- select: {
988
- $data: string;
989
- };
990
- selectCases: {
991
- SubmitApplication: {
992
- additionalProperties: boolean;
993
- properties: {
994
- name: {};
995
- };
996
- };
997
- Contact: {
998
- additionalProperties: boolean;
999
- properties: {
1000
- name: {};
1001
- };
1002
- };
1003
- Lead: {
1004
- additionalProperties: boolean;
1005
- properties: {
1006
- name: {};
1007
- data: {
1008
- type: string;
1009
- additionalProperties: boolean;
1010
- properties: {
1011
- content_category: {
1012
- type: string;
1013
- };
1014
- content_name: {
1015
- type: string;
1016
- };
1017
- currency: {
1018
- type: string;
1019
- };
1020
- value: {
1021
- type: string;
1022
- };
1023
- };
1024
- };
1025
- };
1026
- };
1027
- };
1028
- };
1029
- };
1030
842
  analyticsEvents: {
1031
843
  oneOf: ({
1032
844
  optionName: string;
@@ -1,7 +1,6 @@
1
1
  import { ImageProps } from '../../components/Image/schema';
2
2
  import { CustomControlsButtonPositioning, CustomControlsType, MediaVideoControlsType, QuoteType, Theme, } from '../../models';
3
3
  import { AnalyticsEventSchema } from './event';
4
- import { pixelEvents } from './pixel';
5
4
  export const mediaDirection = ['media-content', 'content-media'];
6
5
  export const textSize = ['s', 'm', 'l'];
7
6
  export const containerSizesArray = ['sm', 'md', 'lg', 'xl', 'all'];
@@ -365,36 +364,6 @@ export const ButtonProps = {
365
364
  },
366
365
  ],
367
366
  },
368
- /**
369
- * @deprecated Metrika will be deleted
370
- */
371
- metrikaGoals: {
372
- oneOf: [
373
- { type: 'string', optionName: 'single' },
374
- { type: 'array', items: { type: 'string' }, optionName: 'list' },
375
- {
376
- type: 'array',
377
- items: {
378
- type: 'object',
379
- additionalProperties: false,
380
- required: ['name'],
381
- properties: {
382
- name: {
383
- type: 'string',
384
- },
385
- isCrossSite: {
386
- type: 'boolean',
387
- },
388
- },
389
- },
390
- optionName: 'list-extended',
391
- },
392
- ],
393
- },
394
- /**
395
- * @deprecated Pixel will be deleted
396
- */
397
- pixelEvents,
398
367
  analyticsEvents: {
399
368
  oneOf: [
400
369
  Object.assign(Object.assign({}, AnalyticsEventSchema), { optionName: 'single' }),
@@ -2,7 +2,6 @@ import * as blocks from './blocks';
2
2
  import * as common from './common';
3
3
  import * as components from './components';
4
4
  import * as navigation from './navigation';
5
- import * as pixel from './pixel';
6
5
  import * as subBlocks from './sub-blocks';
7
6
  import * as utils from './utils';
8
7
  export declare const validators: {
@@ -10,7 +9,6 @@ export declare const validators: {
10
9
  common: typeof common;
11
10
  components: typeof components;
12
11
  subBlocks: typeof subBlocks;
13
- pixel: typeof pixel;
14
12
  utils: typeof utils;
15
13
  navigation: typeof navigation;
16
14
  };
@@ -2,7 +2,6 @@ import * as blocks from './blocks';
2
2
  import * as common from './common';
3
3
  import * as components from './components';
4
4
  import * as navigation from './navigation';
5
- import * as pixel from './pixel';
6
5
  import * as subBlocks from './sub-blocks';
7
6
  import * as utils from './utils';
8
7
  export const validators = {
@@ -10,7 +9,6 @@ export const validators = {
10
9
  common,
11
10
  components,
12
11
  subBlocks,
13
- pixel,
14
12
  utils,
15
13
  navigation,
16
14
  };
@@ -1,18 +1,30 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
+ import { useUniqId } from '@gravity-ui/uikit';
2
3
  import { BackgroundImage, CardBase } from '../../components/';
3
4
  import { useTheme } from '../../context/theme';
4
5
  import { block, getThemedValue } from '../../utils';
6
+ import renderContentControls from '../../utils/renderContentControls/renderContentControls';
5
7
  import Content from '../Content/Content';
8
+ import renderCardFooterControlsContainer from '../renderCardFooterControlsContainer/renderCardFooterControlsContainer';
6
9
  import './BackgroundCard.css';
7
10
  const b = block('background-card');
8
11
  const BackgroundCard = (props) => {
9
- const { url, title, text, border, background, paddingBottom, backgroundColor, additionalInfo, theme: cardTheme = 'default', links, buttons, analyticsEvents, urlTitle, } = props;
12
+ const { url, title, text, border, background, paddingBottom, backgroundColor, additionalInfo, theme: cardTheme = 'default', links, buttons, analyticsEvents, urlTitle, controlPosition = 'content', } = props;
13
+ const titleId = useUniqId();
10
14
  const theme = useTheme();
11
15
  const hasBackgroundColor = backgroundColor || cardTheme !== 'default';
12
16
  const borderType = hasBackgroundColor ? 'none' : border;
17
+ const areControlsInFooter = !paddingBottom && controlPosition === 'footer';
18
+ const footerControls = useMemo(() => renderContentControls({
19
+ links: areControlsInFooter ? links : undefined,
20
+ buttons: areControlsInFooter ? buttons : undefined,
21
+ size: 's',
22
+ titleId,
23
+ }, renderCardFooterControlsContainer), [areControlsInFooter, links, buttons, titleId]);
13
24
  return (React.createElement(CardBase, { className: b({ padding: paddingBottom, theme: cardTheme }), url: url, border: borderType, analyticsEvents: analyticsEvents, urlTitle: urlTitle },
14
25
  React.createElement(CardBase.Content, null,
15
26
  React.createElement(BackgroundImage, Object.assign({ className: b('image') }, getThemedValue(background, theme), { style: { backgroundColor } })),
16
- React.createElement(Content, { title: title, text: text, additionalInfo: additionalInfo, size: "s", theme: cardTheme, links: links, buttons: buttons, colSizes: { all: 12, md: 12 } }))));
27
+ React.createElement(Content, { titleId: titleId, title: title, text: text, additionalInfo: additionalInfo, size: "s", theme: cardTheme, links: areControlsInFooter ? undefined : links, buttons: areControlsInFooter ? undefined : buttons, colSizes: { all: 12, md: 12 } })),
28
+ footerControls));
17
29
  };
18
30
  export default BackgroundCard;
@@ -144,6 +144,10 @@ export declare const BackgroundCard: {
144
144
  optionName: string;
145
145
  })[];
146
146
  };
147
+ controlPosition: {
148
+ type: string;
149
+ enum: string[];
150
+ };
147
151
  title: {
148
152
  oneOf: ({
149
153
  type: string;
@@ -26,6 +26,9 @@ export const BackgroundCard = {
26
26
  optionName: 'list',
27
27
  },
28
28
  ],
29
+ }, controlPosition: {
30
+ type: 'string',
31
+ enum: ['content', 'footer'],
29
32
  } }),
30
33
  },
31
34
  };