@gravity-ui/blog-constructor 1.0.0-alpha.1

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 (410) hide show
  1. package/CHANGELOG.md +231 -0
  2. package/LICENSE +21 -0
  3. package/README.md +14 -0
  4. package/build/cjs/blocks/Author/Author.css +31 -0
  5. package/build/cjs/blocks/Author/Author.d.ts +3 -0
  6. package/build/cjs/blocks/Author/Author.js +60 -0
  7. package/build/cjs/blocks/Banner/Banner.css +58 -0
  8. package/build/cjs/blocks/Banner/Banner.d.ts +3 -0
  9. package/build/cjs/blocks/Banner/Banner.js +51 -0
  10. package/build/cjs/blocks/CTA/CTA.css +56 -0
  11. package/build/cjs/blocks/CTA/CTA.d.ts +3 -0
  12. package/build/cjs/blocks/CTA/CTA.js +44 -0
  13. package/build/cjs/blocks/ColoredText/ColoredText.css +28 -0
  14. package/build/cjs/blocks/ColoredText/ColoredText.d.ts +3 -0
  15. package/build/cjs/blocks/ColoredText/ColoredText.js +37 -0
  16. package/build/cjs/blocks/Feed/Feed.d.ts +3 -0
  17. package/build/cjs/blocks/Feed/Feed.js +183 -0
  18. package/build/cjs/blocks/Feed/reducer.d.ts +65 -0
  19. package/build/cjs/blocks/Feed/reducer.js +40 -0
  20. package/build/cjs/blocks/Header/Header.d.ts +3 -0
  21. package/build/cjs/blocks/Header/Header.js +63 -0
  22. package/build/cjs/blocks/Layout/Layout.css +22 -0
  23. package/build/cjs/blocks/Layout/Layout.d.ts +3 -0
  24. package/build/cjs/blocks/Layout/Layout.js +78 -0
  25. package/build/cjs/blocks/Media/Media.css +41 -0
  26. package/build/cjs/blocks/Media/Media.d.ts +3 -0
  27. package/build/cjs/blocks/Media/Media.js +38 -0
  28. package/build/cjs/blocks/Meta/Meta.css +7 -0
  29. package/build/cjs/blocks/Meta/Meta.d.ts +3 -0
  30. package/build/cjs/blocks/Meta/Meta.js +66 -0
  31. package/build/cjs/blocks/Suggest/Suggest.d.ts +12 -0
  32. package/build/cjs/blocks/Suggest/Suggest.js +61 -0
  33. package/build/cjs/blocks/YFM/YFM.d.ts +3 -0
  34. package/build/cjs/blocks/YFM/YFM.js +24 -0
  35. package/build/cjs/blocks/constants.d.ts +8 -0
  36. package/build/cjs/blocks/constants.js +8 -0
  37. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.css +76 -0
  38. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.d.ts +12 -0
  39. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.js +13 -0
  40. package/build/cjs/components/FeedHeader/FeedHeader.css +54 -0
  41. package/build/cjs/components/FeedHeader/FeedHeader.d.ts +8 -0
  42. package/build/cjs/components/FeedHeader/FeedHeader.js +24 -0
  43. package/build/cjs/components/FeedHeader/components/Controls/Controls.css +106 -0
  44. package/build/cjs/components/FeedHeader/components/Controls/Controls.d.ts +16 -0
  45. package/build/cjs/components/FeedHeader/components/Controls/Controls.js +106 -0
  46. package/build/cjs/components/FeedHeader/components/Controls/customRenders.d.ts +11 -0
  47. package/build/cjs/components/FeedHeader/components/Controls/customRenders.js +22 -0
  48. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.css +14 -0
  49. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +8 -0
  50. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +13 -0
  51. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +53 -0
  52. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +11 -0
  53. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +47 -0
  54. package/build/cjs/components/MetaWrapper/MetaWrapper.d.ts +10 -0
  55. package/build/cjs/components/MetaWrapper/MetaWrapper.js +18 -0
  56. package/build/cjs/components/Paginator/Paginator.css +54 -0
  57. package/build/cjs/components/Paginator/Paginator.d.ts +2 -0
  58. package/build/cjs/components/Paginator/Paginator.js +118 -0
  59. package/build/cjs/components/Paginator/components/NavigationButton.d.ts +6 -0
  60. package/build/cjs/components/Paginator/components/NavigationButton.js +13 -0
  61. package/build/cjs/components/Paginator/components/PaginatorItem.d.ts +2 -0
  62. package/build/cjs/components/Paginator/components/PaginatorItem.js +15 -0
  63. package/build/cjs/components/Paginator/types.d.ts +29 -0
  64. package/build/cjs/components/Paginator/types.js +8 -0
  65. package/build/cjs/components/Paginator/utils.d.ts +3 -0
  66. package/build/cjs/components/Paginator/utils.js +32 -0
  67. package/build/cjs/components/PostCard/PostCard.css +85 -0
  68. package/build/cjs/components/PostCard/PostCard.d.ts +12 -0
  69. package/build/cjs/components/PostCard/PostCard.js +60 -0
  70. package/build/cjs/components/PostInfo/PostInfo.css +88 -0
  71. package/build/cjs/components/PostInfo/PostInfo.d.ts +28 -0
  72. package/build/cjs/components/PostInfo/PostInfo.js +55 -0
  73. package/build/cjs/components/PostInfo/SuggestPostInfo.d.ts +27 -0
  74. package/build/cjs/components/PostInfo/SuggestPostInfo.js +41 -0
  75. package/build/cjs/components/PostInfo/components/Date.d.ts +7 -0
  76. package/build/cjs/components/PostInfo/components/Date.js +36 -0
  77. package/build/cjs/components/PostInfo/components/ReadingTime.d.ts +7 -0
  78. package/build/cjs/components/PostInfo/components/ReadingTime.js +18 -0
  79. package/build/cjs/components/PostInfo/components/Save.d.ts +25 -0
  80. package/build/cjs/components/PostInfo/components/Save.js +73 -0
  81. package/build/cjs/components/PostInfo/components/Sharing.d.ts +7 -0
  82. package/build/cjs/components/PostInfo/components/Sharing.js +54 -0
  83. package/build/cjs/components/Posts/Posts.css +28 -0
  84. package/build/cjs/components/Posts/Posts.d.ts +19 -0
  85. package/build/cjs/components/Posts/Posts.js +32 -0
  86. package/build/cjs/components/PostsEmpty/PostsEmpty.css +25 -0
  87. package/build/cjs/components/PostsEmpty/PostsEmpty.d.ts +2 -0
  88. package/build/cjs/components/PostsEmpty/PostsEmpty.js +14 -0
  89. package/build/cjs/components/PostsError/PostError.css +30 -0
  90. package/build/cjs/components/PostsError/PostsError.d.ts +6 -0
  91. package/build/cjs/components/PostsError/PostsError.js +20 -0
  92. package/build/cjs/components/Search/Search.css +33 -0
  93. package/build/cjs/components/Search/Search.d.ts +15 -0
  94. package/build/cjs/components/Search/Search.js +67 -0
  95. package/build/cjs/components/Wrapper/Wrapper.css +32 -0
  96. package/build/cjs/components/Wrapper/Wrapper.d.ts +10 -0
  97. package/build/cjs/components/Wrapper/Wrapper.js +17 -0
  98. package/build/cjs/configure.d.ts +5 -0
  99. package/build/cjs/configure.js +8 -0
  100. package/build/cjs/constants.d.ts +27 -0
  101. package/build/cjs/constants.js +34 -0
  102. package/build/cjs/constructor/BlogConstructorProvider.d.ts +16 -0
  103. package/build/cjs/constructor/BlogConstructorProvider.js +46 -0
  104. package/build/cjs/constructor/blocksMap.d.ts +18 -0
  105. package/build/cjs/constructor/blocksMap.js +30 -0
  106. package/build/cjs/containers/BlogPage/BlogPage.css +21 -0
  107. package/build/cjs/containers/BlogPage/BlogPage.d.ts +15 -0
  108. package/build/cjs/containers/BlogPage/BlogPage.js +30 -0
  109. package/build/cjs/containers/BlogPostPage/BlogPostPage.css +251 -0
  110. package/build/cjs/containers/BlogPostPage/BlogPostPage.d.ts +18 -0
  111. package/build/cjs/containers/BlogPostPage/BlogPostPage.js +42 -0
  112. package/build/cjs/contexts/DeviceContext.d.ts +4 -0
  113. package/build/cjs/contexts/DeviceContext.js +8 -0
  114. package/build/cjs/contexts/FeedContext.d.ts +13 -0
  115. package/build/cjs/contexts/FeedContext.js +8 -0
  116. package/build/cjs/contexts/LikesContext.d.ts +7 -0
  117. package/build/cjs/contexts/LikesContext.js +8 -0
  118. package/build/cjs/contexts/LocaleContext.d.ts +6 -0
  119. package/build/cjs/contexts/LocaleContext.js +16 -0
  120. package/build/cjs/contexts/MobileContext.d.ts +2 -0
  121. package/build/cjs/contexts/MobileContext.js +8 -0
  122. package/build/cjs/contexts/PostPageContext.d.ts +14 -0
  123. package/build/cjs/contexts/PostPageContext.js +8 -0
  124. package/build/cjs/contexts/RouterContext.d.ts +9 -0
  125. package/build/cjs/contexts/RouterContext.js +8 -0
  126. package/build/cjs/contexts/UserContext.d.ts +18 -0
  127. package/build/cjs/contexts/UserContext.js +8 -0
  128. package/build/cjs/contexts/theme/ThemeContext.d.ts +8 -0
  129. package/build/cjs/contexts/theme/ThemeContext.js +13 -0
  130. package/build/cjs/contexts/theme/ThemeProvider.d.ts +23 -0
  131. package/build/cjs/contexts/theme/ThemeProvider.js +51 -0
  132. package/build/cjs/contexts/theme/ThemeValueContext.d.ts +7 -0
  133. package/build/cjs/contexts/theme/ThemeValueContext.js +11 -0
  134. package/build/cjs/contexts/theme/index.d.ts +6 -0
  135. package/build/cjs/contexts/theme/index.js +22 -0
  136. package/build/cjs/contexts/theme/useTheme.d.ts +2 -0
  137. package/build/cjs/contexts/theme/useTheme.js +13 -0
  138. package/build/cjs/contexts/theme/useThemeValue.d.ts +2 -0
  139. package/build/cjs/contexts/theme/useThemeValue.js +13 -0
  140. package/build/cjs/contexts/theme/withTheme.d.ts +6 -0
  141. package/build/cjs/contexts/theme/withTheme.js +21 -0
  142. package/build/cjs/contexts/theme/withThemeValue.d.ts +6 -0
  143. package/build/cjs/contexts/theme/withThemeValue.js +21 -0
  144. package/build/cjs/counters/metrika.d.ts +59 -0
  145. package/build/cjs/counters/metrika.js +170 -0
  146. package/build/cjs/counters/utils.d.ts +5 -0
  147. package/build/cjs/counters/utils.js +9 -0
  148. package/build/cjs/hooks/useIsIPhone.d.ts +1 -0
  149. package/build/cjs/hooks/useIsIPhone.js +10 -0
  150. package/build/cjs/hooks/useLikes.d.ts +15 -0
  151. package/build/cjs/hooks/useLikes.js +35 -0
  152. package/build/cjs/i18n/index.d.ts +22 -0
  153. package/build/cjs/i18n/index.js +74 -0
  154. package/build/cjs/icons/Close.d.ts +2 -0
  155. package/build/cjs/icons/Close.js +11 -0
  156. package/build/cjs/icons/DropdownArrow.d.ts +2 -0
  157. package/build/cjs/icons/DropdownArrow.js +11 -0
  158. package/build/cjs/icons/Save.d.ts +2 -0
  159. package/build/cjs/icons/Save.js +11 -0
  160. package/build/cjs/icons/SaveFilled.d.ts +2 -0
  161. package/build/cjs/icons/SaveFilled.js +11 -0
  162. package/build/cjs/icons/SearchIcon.d.ts +2 -0
  163. package/build/cjs/icons/SearchIcon.js +11 -0
  164. package/build/cjs/icons/ShareArrowUp.d.ts +2 -0
  165. package/build/cjs/icons/ShareArrowUp.js +11 -0
  166. package/build/cjs/icons/Time.d.ts +2 -0
  167. package/build/cjs/icons/Time.js +11 -0
  168. package/build/cjs/index.d.ts +7 -0
  169. package/build/cjs/index.js +29 -0
  170. package/build/cjs/internal-typings/bem-cn-lite.d.ts +17 -0
  171. package/build/cjs/internal-typings/global.d.ts +5 -0
  172. package/build/cjs/models/blocks.d.ts +84 -0
  173. package/build/cjs/models/blocks.js +2 -0
  174. package/build/cjs/models/common.d.ts +151 -0
  175. package/build/cjs/models/common.js +22 -0
  176. package/build/cjs/models/locale.d.ts +29 -0
  177. package/build/cjs/models/locale.js +14 -0
  178. package/build/cjs/models/paddings.d.ts +16 -0
  179. package/build/cjs/models/paddings.js +10 -0
  180. package/build/cjs/utils/cn.d.ts +4 -0
  181. package/build/cjs/utils/cn.js +12 -0
  182. package/build/cjs/utils/common.d.ts +42 -0
  183. package/build/cjs/utils/common.js +120 -0
  184. package/build/cjs/utils/date.d.ts +13 -0
  185. package/build/cjs/utils/date.js +59 -0
  186. package/build/cjs/utils/svg.d.ts +3 -0
  187. package/build/cjs/utils/svg.js +7 -0
  188. package/build/esm/blocks/Author/Author.css +31 -0
  189. package/build/esm/blocks/Author/Author.d.ts +4 -0
  190. package/build/esm/blocks/Author/Author.js +34 -0
  191. package/build/esm/blocks/Banner/Banner.css +58 -0
  192. package/build/esm/blocks/Banner/Banner.d.ts +4 -0
  193. package/build/esm/blocks/Banner/Banner.js +45 -0
  194. package/build/esm/blocks/CTA/CTA.css +56 -0
  195. package/build/esm/blocks/CTA/CTA.d.ts +4 -0
  196. package/build/esm/blocks/CTA/CTA.js +38 -0
  197. package/build/esm/blocks/ColoredText/ColoredText.css +28 -0
  198. package/build/esm/blocks/ColoredText/ColoredText.d.ts +4 -0
  199. package/build/esm/blocks/ColoredText/ColoredText.js +31 -0
  200. package/build/esm/blocks/Feed/Feed.d.ts +3 -0
  201. package/build/esm/blocks/Feed/Feed.js +153 -0
  202. package/build/esm/blocks/Feed/reducer.d.ts +65 -0
  203. package/build/esm/blocks/Feed/reducer.js +36 -0
  204. package/build/esm/blocks/Header/Header.d.ts +3 -0
  205. package/build/esm/blocks/Header/Header.js +36 -0
  206. package/build/esm/blocks/Layout/Layout.css +22 -0
  207. package/build/esm/blocks/Layout/Layout.d.ts +4 -0
  208. package/build/esm/blocks/Layout/Layout.js +52 -0
  209. package/build/esm/blocks/Media/Media.css +41 -0
  210. package/build/esm/blocks/Media/Media.d.ts +4 -0
  211. package/build/esm/blocks/Media/Media.js +32 -0
  212. package/build/esm/blocks/Meta/Meta.css +7 -0
  213. package/build/esm/blocks/Meta/Meta.d.ts +4 -0
  214. package/build/esm/blocks/Meta/Meta.js +40 -0
  215. package/build/esm/blocks/Suggest/Suggest.d.ts +12 -0
  216. package/build/esm/blocks/Suggest/Suggest.js +34 -0
  217. package/build/esm/blocks/YFM/YFM.d.ts +3 -0
  218. package/build/esm/blocks/YFM/YFM.js +17 -0
  219. package/build/esm/blocks/constants.d.ts +8 -0
  220. package/build/esm/blocks/constants.js +5 -0
  221. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.css +76 -0
  222. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.d.ts +13 -0
  223. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.js +7 -0
  224. package/build/esm/components/FeedHeader/FeedHeader.css +54 -0
  225. package/build/esm/components/FeedHeader/FeedHeader.d.ts +9 -0
  226. package/build/esm/components/FeedHeader/FeedHeader.js +18 -0
  227. package/build/esm/components/FeedHeader/components/Controls/Controls.css +106 -0
  228. package/build/esm/components/FeedHeader/components/Controls/Controls.d.ts +17 -0
  229. package/build/esm/components/FeedHeader/components/Controls/Controls.js +77 -0
  230. package/build/esm/components/FeedHeader/components/Controls/customRenders.d.ts +12 -0
  231. package/build/esm/components/FeedHeader/components/Controls/customRenders.js +14 -0
  232. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.css +14 -0
  233. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +9 -0
  234. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +7 -0
  235. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +53 -0
  236. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +12 -0
  237. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +21 -0
  238. package/build/esm/components/MetaWrapper/MetaWrapper.d.ts +10 -0
  239. package/build/esm/components/MetaWrapper/MetaWrapper.js +11 -0
  240. package/build/esm/components/Paginator/Paginator.css +54 -0
  241. package/build/esm/components/Paginator/Paginator.d.ts +3 -0
  242. package/build/esm/components/Paginator/Paginator.js +89 -0
  243. package/build/esm/components/Paginator/components/NavigationButton.d.ts +7 -0
  244. package/build/esm/components/Paginator/components/NavigationButton.js +7 -0
  245. package/build/esm/components/Paginator/components/PaginatorItem.d.ts +3 -0
  246. package/build/esm/components/Paginator/components/PaginatorItem.js +9 -0
  247. package/build/esm/components/Paginator/types.d.ts +29 -0
  248. package/build/esm/components/Paginator/types.js +5 -0
  249. package/build/esm/components/Paginator/utils.d.ts +3 -0
  250. package/build/esm/components/Paginator/utils.js +27 -0
  251. package/build/esm/components/PostCard/PostCard.css +85 -0
  252. package/build/esm/components/PostCard/PostCard.d.ts +13 -0
  253. package/build/esm/components/PostCard/PostCard.js +34 -0
  254. package/build/esm/components/PostInfo/PostInfo.css +88 -0
  255. package/build/esm/components/PostInfo/PostInfo.d.ts +29 -0
  256. package/build/esm/components/PostInfo/PostInfo.js +29 -0
  257. package/build/esm/components/PostInfo/SuggestPostInfo.d.ts +28 -0
  258. package/build/esm/components/PostInfo/SuggestPostInfo.js +35 -0
  259. package/build/esm/components/PostInfo/components/Date.d.ts +8 -0
  260. package/build/esm/components/PostInfo/components/Date.js +10 -0
  261. package/build/esm/components/PostInfo/components/ReadingTime.d.ts +8 -0
  262. package/build/esm/components/PostInfo/components/ReadingTime.js +12 -0
  263. package/build/esm/components/PostInfo/components/Save.d.ts +26 -0
  264. package/build/esm/components/PostInfo/components/Save.js +44 -0
  265. package/build/esm/components/PostInfo/components/Sharing.d.ts +8 -0
  266. package/build/esm/components/PostInfo/components/Sharing.js +25 -0
  267. package/build/esm/components/Posts/Posts.css +28 -0
  268. package/build/esm/components/Posts/Posts.d.ts +20 -0
  269. package/build/esm/components/Posts/Posts.js +26 -0
  270. package/build/esm/components/PostsEmpty/PostsEmpty.css +25 -0
  271. package/build/esm/components/PostsEmpty/PostsEmpty.d.ts +3 -0
  272. package/build/esm/components/PostsEmpty/PostsEmpty.js +8 -0
  273. package/build/esm/components/PostsError/PostError.css +30 -0
  274. package/build/esm/components/PostsError/PostsError.d.ts +7 -0
  275. package/build/esm/components/PostsError/PostsError.js +14 -0
  276. package/build/esm/components/Search/Search.css +33 -0
  277. package/build/esm/components/Search/Search.d.ts +16 -0
  278. package/build/esm/components/Search/Search.js +41 -0
  279. package/build/esm/components/Wrapper/Wrapper.css +32 -0
  280. package/build/esm/components/Wrapper/Wrapper.d.ts +11 -0
  281. package/build/esm/components/Wrapper/Wrapper.js +11 -0
  282. package/build/esm/configure.d.ts +5 -0
  283. package/build/esm/configure.js +4 -0
  284. package/build/esm/constants.d.ts +27 -0
  285. package/build/esm/constants.js +31 -0
  286. package/build/esm/constructor/BlogConstructorProvider.d.ts +16 -0
  287. package/build/esm/constructor/BlogConstructorProvider.js +19 -0
  288. package/build/esm/constructor/blocksMap.d.ts +18 -0
  289. package/build/esm/constructor/blocksMap.js +28 -0
  290. package/build/esm/containers/BlogPage/BlogPage.css +21 -0
  291. package/build/esm/containers/BlogPage/BlogPage.d.ts +16 -0
  292. package/build/esm/containers/BlogPage/BlogPage.js +24 -0
  293. package/build/esm/containers/BlogPostPage/BlogPostPage.css +251 -0
  294. package/build/esm/containers/BlogPostPage/BlogPostPage.d.ts +19 -0
  295. package/build/esm/containers/BlogPostPage/BlogPostPage.js +36 -0
  296. package/build/esm/contexts/DeviceContext.d.ts +4 -0
  297. package/build/esm/contexts/DeviceContext.js +2 -0
  298. package/build/esm/contexts/FeedContext.d.ts +13 -0
  299. package/build/esm/contexts/FeedContext.js +2 -0
  300. package/build/esm/contexts/LikesContext.d.ts +7 -0
  301. package/build/esm/contexts/LikesContext.js +2 -0
  302. package/build/esm/contexts/LocaleContext.d.ts +6 -0
  303. package/build/esm/contexts/LocaleContext.js +10 -0
  304. package/build/esm/contexts/MobileContext.d.ts +2 -0
  305. package/build/esm/contexts/MobileContext.js +2 -0
  306. package/build/esm/contexts/PostPageContext.d.ts +14 -0
  307. package/build/esm/contexts/PostPageContext.js +2 -0
  308. package/build/esm/contexts/RouterContext.d.ts +9 -0
  309. package/build/esm/contexts/RouterContext.js +2 -0
  310. package/build/esm/contexts/UserContext.d.ts +18 -0
  311. package/build/esm/contexts/UserContext.js +2 -0
  312. package/build/esm/contexts/theme/ThemeContext.d.ts +8 -0
  313. package/build/esm/contexts/theme/ThemeContext.js +7 -0
  314. package/build/esm/contexts/theme/ThemeProvider.d.ts +23 -0
  315. package/build/esm/contexts/theme/ThemeProvider.js +44 -0
  316. package/build/esm/contexts/theme/ThemeValueContext.d.ts +7 -0
  317. package/build/esm/contexts/theme/ThemeValueContext.js +5 -0
  318. package/build/esm/contexts/theme/index.d.ts +6 -0
  319. package/build/esm/contexts/theme/index.js +6 -0
  320. package/build/esm/contexts/theme/useTheme.d.ts +2 -0
  321. package/build/esm/contexts/theme/useTheme.js +6 -0
  322. package/build/esm/contexts/theme/useThemeValue.d.ts +2 -0
  323. package/build/esm/contexts/theme/useThemeValue.js +6 -0
  324. package/build/esm/contexts/theme/withTheme.d.ts +6 -0
  325. package/build/esm/contexts/theme/withTheme.js +14 -0
  326. package/build/esm/contexts/theme/withThemeValue.d.ts +6 -0
  327. package/build/esm/contexts/theme/withThemeValue.js +14 -0
  328. package/build/esm/counters/metrika.d.ts +59 -0
  329. package/build/esm/counters/metrika.js +166 -0
  330. package/build/esm/counters/utils.d.ts +5 -0
  331. package/build/esm/counters/utils.js +6 -0
  332. package/build/esm/hooks/useIsIPhone.d.ts +1 -0
  333. package/build/esm/hooks/useIsIPhone.js +6 -0
  334. package/build/esm/hooks/useLikes.d.ts +15 -0
  335. package/build/esm/hooks/useLikes.js +31 -0
  336. package/build/esm/i18n/index.d.ts +22 -0
  337. package/build/esm/i18n/index.js +71 -0
  338. package/build/esm/icons/Close.d.ts +2 -0
  339. package/build/esm/icons/Close.js +4 -0
  340. package/build/esm/icons/DropdownArrow.d.ts +2 -0
  341. package/build/esm/icons/DropdownArrow.js +4 -0
  342. package/build/esm/icons/Save.d.ts +2 -0
  343. package/build/esm/icons/Save.js +4 -0
  344. package/build/esm/icons/SaveFilled.d.ts +2 -0
  345. package/build/esm/icons/SaveFilled.js +4 -0
  346. package/build/esm/icons/SearchIcon.d.ts +2 -0
  347. package/build/esm/icons/SearchIcon.js +4 -0
  348. package/build/esm/icons/ShareArrowUp.d.ts +2 -0
  349. package/build/esm/icons/ShareArrowUp.js +4 -0
  350. package/build/esm/icons/Time.d.ts +2 -0
  351. package/build/esm/icons/Time.js +4 -0
  352. package/build/esm/index.d.ts +7 -0
  353. package/build/esm/index.js +7 -0
  354. package/build/esm/internal-typings/bem-cn-lite.d.ts +17 -0
  355. package/build/esm/internal-typings/global.d.ts +5 -0
  356. package/build/esm/models/blocks.d.ts +84 -0
  357. package/build/esm/models/blocks.js +1 -0
  358. package/build/esm/models/common.d.ts +151 -0
  359. package/build/esm/models/common.js +19 -0
  360. package/build/esm/models/locale.d.ts +29 -0
  361. package/build/esm/models/locale.js +11 -0
  362. package/build/esm/models/paddings.d.ts +16 -0
  363. package/build/esm/models/paddings.js +7 -0
  364. package/build/esm/utils/cn.d.ts +4 -0
  365. package/build/esm/utils/cn.js +5 -0
  366. package/build/esm/utils/common.d.ts +42 -0
  367. package/build/esm/utils/common.js +107 -0
  368. package/build/esm/utils/date.d.ts +13 -0
  369. package/build/esm/utils/date.js +55 -0
  370. package/build/esm/utils/svg.d.ts +3 -0
  371. package/build/esm/utils/svg.js +4 -0
  372. package/package.json +140 -0
  373. package/server/data/config.d.ts +32 -0
  374. package/server/data/config.js +39 -0
  375. package/server/data/contentFilter.d.ts +27 -0
  376. package/server/data/contentFilter.js +61 -0
  377. package/server/data/createReadableContent.d.ts +17 -0
  378. package/server/data/createReadableContent.js +47 -0
  379. package/server/data/sanitizeMeta.d.ts +24 -0
  380. package/server/data/sanitizeMeta.js +18 -0
  381. package/server/data/transformPageContent.d.ts +21 -0
  382. package/server/data/transformPageContent.js +35 -0
  383. package/server/data/transformPost.d.ts +11 -0
  384. package/server/data/transformPost.js +34 -0
  385. package/server/index.d.ts +4 -0
  386. package/server/index.js +11 -0
  387. package/server/models/blocks.d.ts +84 -0
  388. package/server/models/blocks.js +2 -0
  389. package/server/models/common.d.ts +151 -0
  390. package/server/models/common.js +22 -0
  391. package/server/models/locale.d.ts +29 -0
  392. package/server/models/locale.js +14 -0
  393. package/server/models/paddings.d.ts +16 -0
  394. package/server/models/paddings.js +10 -0
  395. package/styles/fonts.css +195 -0
  396. package/styles/fonts.scss +223 -0
  397. package/styles/mixins.css +2 -0
  398. package/styles/mixins.scss +59 -0
  399. package/styles/root.css +21 -0
  400. package/styles/root.scss +25 -0
  401. package/styles/storybook/common.scss +29 -0
  402. package/styles/storybook/index.scss +21 -0
  403. package/styles/storybook/palette.scss +75 -0
  404. package/styles/storybook/typography.scss +139 -0
  405. package/styles/styles.css +196 -0
  406. package/styles/styles.scss +2 -0
  407. package/styles/variables.css +0 -0
  408. package/styles/variables.scss +7 -0
  409. package/styles/yfm.css +103 -0
  410. package/styles/yfm.scss +123 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,231 @@
1
+ # Change log
2
+
3
+ ## 0.20.1
4
+
5
+ - Rewrite storybook on ts
6
+
7
+ ## 0.20.0
8
+
9
+ - Install @gravity-ui linters
10
+
11
+ ## 0.19.0
12
+
13
+ ### Breaking changes
14
+
15
+ - Refactor and rename types
16
+ - Update react to 18.2.0
17
+ - Update TS to 4.9.3
18
+
19
+ ## 0.18.1
20
+
21
+ - Delete useless utils and small refactor
22
+
23
+ ## 0.18.0
24
+
25
+ ### Breaking changes
26
+
27
+ - Refactor naming
28
+
29
+ ## 0.17.1
30
+
31
+ - @gravity-ui/uikit 3.10.1 (fix share tooltip)
32
+
33
+ ## 0.17.0
34
+
35
+ - @gravity-ui/uikit 3.9.0
36
+
37
+ ## 0.16.1
38
+
39
+ - Fix for treating page number on fetch
40
+
41
+ ## 0.16.0
42
+
43
+ - Show "-" in filters selector switchers when only one broken filter provided in a query
44
+
45
+ ## 0.15.1
46
+
47
+ - Do not show pointer cursor on save button title hover when the button is not clickable
48
+
49
+ ## 0.15.0
50
+
51
+ - Prevent save button to be clickable when user is not logged in
52
+
53
+ ## 0.14.0
54
+
55
+ - Refactor metaProps in BlogPostPage
56
+
57
+ ## 0.13.0
58
+
59
+ - Remove temporal flag of icon selection
60
+
61
+ ## 0.12.4
62
+
63
+ - Prevent collapse of a custom switcher on a blog feed
64
+
65
+ ## 0.12.2
66
+
67
+ - Update types for getBlogPosts handler
68
+
69
+ ## 0.12.1
70
+
71
+ - Render post card title via dangerouslySetInnerHTML
72
+
73
+ ## 0.12.0
74
+
75
+ - Update page change logic when interactions with blog search panel
76
+
77
+ ## 0.11.1
78
+
79
+ - **BlogYFM**: add `yfm_no-list-reset` class
80
+
81
+ ## 0.11.0
82
+
83
+ - Refactor styles (kebab, prefix, variables)
84
+
85
+ ## 0.10.2
86
+
87
+ - Add teamcity publish
88
+
89
+ ## 0.10.1
90
+
91
+ - BlogPostTag types became Partial, BlogPostTagExtended is deleted
92
+
93
+ ## 0.10.0
94
+
95
+ - add props for show support buttons in paginator
96
+
97
+ ## 0.9.2
98
+
99
+ - added yfm headers weight style
100
+
101
+ ## 0.9.1
102
+
103
+ - add specificity for search input styles
104
+
105
+ ## 0.9.0
106
+
107
+ - add customization for sharing options in blog posts
108
+
109
+ ## 0.8.0
110
+
111
+ - add BlogPage with gravity-ui requirements
112
+
113
+ ## 0.7.1
114
+
115
+ - Add info about publish in readme
116
+
117
+ ## 0.7.0
118
+
119
+ - Change packages @yandex-cloud => @gravity-ui
120
+ - Remove i18n from peer dependencies
121
+
122
+ ## 0.6.30
123
+
124
+ - add BlogPage
125
+
126
+ ## 0.5.10
127
+
128
+ - fix yfm styles for table
129
+
130
+ ## 0.5.9
131
+
132
+ - fix yfm styles
133
+
134
+ ## 0.5.8
135
+
136
+ - delete selection of blog structure
137
+
138
+ ## 0.5.7
139
+
140
+ - color variables updates
141
+
142
+ ## 0.5.6
143
+
144
+ - change transformPostTags() routine
145
+
146
+ ## 0.5.5
147
+
148
+ - add page-constructor in peer-dependencies
149
+
150
+ ## 0.5.3
151
+
152
+ - fix yfm styles: add css variables to be able to redefine styles in projects
153
+
154
+ ## 0.5.2
155
+
156
+ - condition for likes in cards
157
+
158
+ ## 0.5.1
159
+
160
+ - refactor LocaleContext
161
+ - refactor RouterContext
162
+ - now likes is not required props
163
+
164
+ ## 0.4.3
165
+
166
+ - Back previously patch
167
+
168
+ ## 0.4.2
169
+
170
+ - Fix meta
171
+
172
+ ## 0.4.1
173
+
174
+ - Fix share button
175
+ - now region props is not required in TransformPageContentPropsType
176
+
177
+ ## 0.4.0
178
+
179
+ - Add likes state update conditions
180
+
181
+ ## 0.3.1
182
+
183
+ - Add metaData render condition
184
+
185
+ ## 0.3.0
186
+
187
+ - Update props metaData
188
+
189
+ ## 0.2.3
190
+
191
+ - Update types and namings
192
+
193
+ ## 0.2.2
194
+
195
+ - Update styles
196
+
197
+ ## 0.2.1
198
+
199
+ - Add default color for avatars (grey)
200
+
201
+ ## 0.2.0
202
+
203
+ - Custom hook for likes
204
+
205
+ - Change props for BlogPostPage
206
+ - delete:
207
+ - data
208
+ - add:
209
+ - likes
210
+ - content
211
+ - post
212
+
213
+ ## 0.1.0
214
+
215
+ - Refactor business-logic BlogSuggets
216
+
217
+ ## 0.0.4
218
+
219
+ - Delete extra requirements
220
+
221
+ ## 0.0.3
222
+
223
+ - Refactor BlogContextProvider
224
+
225
+ ## 0.0.2
226
+
227
+ - Meta fixes
228
+
229
+ ## 0.0.1
230
+
231
+ - Create first version including Blog Post Page
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2023 YANDEX LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # @gravity-ui/blog-constructor ·
2
+
3
+ ## Install
4
+
5
+ ```shell
6
+ npm install @gravity-ui/blog-constructor
7
+ ```
8
+
9
+ ## Development
10
+
11
+ ```bash
12
+ npm ci
13
+ npm run dev
14
+ ```
@@ -0,0 +1,31 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .bc-author__layout {
4
+ display: flex;
5
+ align-items: flex-start;
6
+ flex-direction: row;
7
+ overflow: hidden;
8
+ }
9
+ @media (max-width: 1081px) {
10
+ .bc-author__layout {
11
+ width: 50%;
12
+ }
13
+ }
14
+ @media (max-width: 577px) {
15
+ .bc-author__layout {
16
+ width: 100%;
17
+ }
18
+ }
19
+ .bc-author__description {
20
+ color: var(--yc-color-text-primary);
21
+ }
22
+ .bc-author__content {
23
+ display: flex;
24
+ flex-wrap: wrap;
25
+ justify-content: flex-start;
26
+ align-content: flex-start;
27
+ position: relative;
28
+ }
29
+ .bc-author__container {
30
+ background-color: var(--yc-color-promo-base-silver);
31
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { AuthorProps } from '../../models/blocks';
3
+ export declare const Author: React.FC<AuthorProps>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Author = void 0;
27
+ const react_1 = __importStar(require("react"));
28
+ const page_constructor_1 = require("@gravity-ui/page-constructor");
29
+ const PostPageContext_1 = require("../../contexts/PostPageContext");
30
+ const Wrapper_1 = require("../../components/Wrapper/Wrapper");
31
+ const paddings_1 = require("../../models/paddings");
32
+ const cn_1 = require("../../utils/cn");
33
+ const b = (0, cn_1.block)('author');
34
+ const Author = (props) => {
35
+ var _a;
36
+ const { image, paddingTop, paddingBottom, authorId } = props;
37
+ const { post } = (0, react_1.useContext)(PostPageContext_1.PostPageContext);
38
+ const author = (_a = post === null || post === void 0 ? void 0 : post.authors) === null || _a === void 0 ? void 0 : _a.find(({ id }) => id === authorId);
39
+ const authorItem = (0, react_1.useMemo)(() => {
40
+ var _a;
41
+ const imageUrl = (_a = author === null || author === void 0 ? void 0 : author.avatar) !== null && _a !== void 0 ? _a : image;
42
+ const authorAvatar = react_1.default.createElement("img", { src: imageUrl, alt: "author" });
43
+ return {
44
+ firstName: (author === null || author === void 0 ? void 0 : author.firstName) || '',
45
+ secondName: (author === null || author === void 0 ? void 0 : author.secondName) || '',
46
+ description: (author === null || author === void 0 ? void 0 : author.fullDescription) || '',
47
+ avatar: authorAvatar,
48
+ };
49
+ }, [author === null || author === void 0 ? void 0 : author.avatar, author === null || author === void 0 ? void 0 : author.firstName, author === null || author === void 0 ? void 0 : author.fullDescription, author === null || author === void 0 ? void 0 : author.secondName, image]);
50
+ if (!(authorItem === null || authorItem === void 0 ? void 0 : authorItem.firstName) || !(authorItem === null || authorItem === void 0 ? void 0 : authorItem.secondName)) {
51
+ return null;
52
+ }
53
+ return (react_1.default.createElement(Wrapper_1.Wrapper, { paddings: {
54
+ [paddings_1.PaddingsDirections.top]: paddingTop,
55
+ [paddings_1.PaddingsDirections.bottom]: paddingBottom,
56
+ }, className: b('content') },
57
+ react_1.default.createElement("div", { className: b('layout'), "data-qa": "blog-author-layout" },
58
+ react_1.default.createElement(page_constructor_1.Author, { type: page_constructor_1.AuthorType.Column, author: authorItem, authorContainerClassName: b('container') }))));
59
+ };
60
+ exports.Author = Author;
@@ -0,0 +1,58 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .bc-banner {
4
+ margin-top: 16px;
5
+ padding-bottom: 16px;
6
+ }
7
+ .bc-banner__content {
8
+ width: 100%;
9
+ border-radius: var(--bc-border-radius);
10
+ position: relative;
11
+ display: flex;
12
+ flex-direction: row;
13
+ }
14
+ .bc-banner__container {
15
+ width: 100%;
16
+ border-radius: var(--bc-border-radius);
17
+ display: flex;
18
+ min-height: 220px;
19
+ }
20
+ .bc-banner__container_offset_large {
21
+ padding: calc(128px - 96px) 0 16px;
22
+ margin-bottom: -48px;
23
+ }
24
+ .bc-banner__info, .bc-banner__image {
25
+ flex: 1;
26
+ }
27
+ .bc-banner__info {
28
+ padding: 32px;
29
+ display: flex;
30
+ justify-content: space-between;
31
+ flex-direction: column;
32
+ align-items: baseline;
33
+ }
34
+ .bc-banner__image {
35
+ margin: var(--pc-image-padding);
36
+ border-radius: calc(var(--pc-border-radius) - var(--pc-image-padding));
37
+ width: calc(100% - 8px);
38
+ height: calc(100% - 8px);
39
+ object-fit: cover;
40
+ }
41
+ .bc-banner__image-container {
42
+ height: 100%;
43
+ }
44
+ .bc-banner__image-container_image-size_s {
45
+ width: 25%;
46
+ }
47
+ .bc-banner__image-container_image-size_m {
48
+ width: 50%;
49
+ }
50
+ @media (max-width: 577px) {
51
+ .bc-banner__content {
52
+ flex-direction: column;
53
+ }
54
+ .bc-banner__image-container_image-size_s, .bc-banner__image-container_image-size_m {
55
+ width: 100%;
56
+ height: 236px;
57
+ }
58
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { BannerProps } from '../../models/blocks';
3
+ export declare const Banner: React.FC<BannerProps>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Banner = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const page_constructor_1 = require("@gravity-ui/page-constructor");
20
+ const Wrapper_1 = require("../../components/Wrapper/Wrapper");
21
+ const common_1 = require("../../utils/common");
22
+ const cn_1 = require("../../utils/cn");
23
+ const paddings_1 = require("../../models/paddings");
24
+ const constants_1 = require("../../constants");
25
+ const b = (0, cn_1.block)('banner');
26
+ const Banner = (_a) => {
27
+ var _b;
28
+ var { color, imageSize = 's', image, paddingTop, paddingBottom } = _a, content = __rest(_a, ["color", "imageSize", "image", "paddingTop", "paddingBottom"]);
29
+ const contentStyle = {};
30
+ if (color) {
31
+ contentStyle.backgroundColor = color;
32
+ }
33
+ const contentData = (0, common_1.updateContentSizes)(content);
34
+ const metrikaGoal = {
35
+ name: constants_1.BlogMetrikaGoalIds.bannerCommon,
36
+ isCrossSite: true,
37
+ };
38
+ (_b = contentData.buttons) === null || _b === void 0 ? void 0 : _b.forEach((button) => {
39
+ button.metrikaGoals = (0, common_1.getBlogElementMetrika)(metrikaGoal, button.metrikaGoals);
40
+ });
41
+ return (react_1.default.createElement(Wrapper_1.Wrapper, { paddings: {
42
+ [paddings_1.PaddingsDirections.top]: paddingTop,
43
+ [paddings_1.PaddingsDirections.bottom]: paddingBottom,
44
+ }, className: b('container') },
45
+ react_1.default.createElement("div", { className: b('content'), style: contentStyle, "data-qa": "blog-banner-content" },
46
+ react_1.default.createElement("div", { className: b('info') },
47
+ react_1.default.createElement(page_constructor_1.Content, Object.assign({}, contentData))),
48
+ image && (react_1.default.createElement("div", { className: b('image-container', { ['image-size']: imageSize }) },
49
+ react_1.default.createElement(page_constructor_1.Image, { className: b('image'), src: image }))))));
50
+ };
51
+ exports.Banner = Banner;
@@ -0,0 +1,56 @@
1
+ .bc-cta__card {
2
+ display: flex;
3
+ background-color: var(--yc-color-base-float);
4
+ border-radius: var(--bc-border-radius);
5
+ min-height: 80px;
6
+ align-content: center;
7
+ justify-content: center;
8
+ flex-direction: column;
9
+ flex-grow: 1;
10
+ padding: 32px;
11
+ }
12
+ .bc-cta__button {
13
+ display: flex;
14
+ padding-bottom: 16px;
15
+ }
16
+ .bc-cta__content {
17
+ display: flex;
18
+ flex-direction: column;
19
+ }
20
+ @media (min-width: 577px) {
21
+ .bc-cta__content {
22
+ display: flex;
23
+ flex-direction: row;
24
+ }
25
+ .bc-cta__button {
26
+ padding-bottom: 0px;
27
+ }
28
+ .bc-cta__button_layout {
29
+ width: 100%;
30
+ max-width: 100%;
31
+ margin-right: 0px;
32
+ }
33
+ .bc-cta__button_layout_2 {
34
+ width: calc(50% - (16px / 2));
35
+ max-width: 50%;
36
+ margin-right: 16px;
37
+ }
38
+ .bc-cta__button_layout_2:nth-child(2n) {
39
+ margin-right: 0px;
40
+ }
41
+ .bc-cta__button_layout_3 {
42
+ width: calc(33.3333333333% - (32px / 3));
43
+ margin-right: 16px;
44
+ }
45
+ .bc-cta__button_layout_3:nth-child(3n) {
46
+ margin-right: 0px;
47
+ }
48
+ .bc-cta__button_layout_4 {
49
+ width: calc(25% - (48px / 4));
50
+ max-width: 50%;
51
+ margin-right: 16px;
52
+ }
53
+ .bc-cta__button_layout_4:nth-child(4n) {
54
+ margin-right: 0px;
55
+ }
56
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { CTAProps } from '../../models/blocks';
3
+ export declare const CTA: React.FC<CTAProps>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CTA = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const page_constructor_1 = require("@gravity-ui/page-constructor");
9
+ const Wrapper_1 = require("../../components/Wrapper/Wrapper");
10
+ const common_1 = require("../../utils/common");
11
+ const paddings_1 = require("../../models/paddings");
12
+ const constants_1 = require("../../constants");
13
+ const cn_1 = require("../../utils/cn");
14
+ const b = (0, cn_1.block)('cta');
15
+ const MAX_COLUMN_COUNT = 4, MIN_COLUMN_COUNT = 2, DEFAULT_COLUMN_COUNT = 3;
16
+ const CTA = ({ items, paddingTop, paddingBottom }) => {
17
+ let count = items ? items.length : DEFAULT_COLUMN_COUNT;
18
+ if (count < MIN_COLUMN_COUNT) {
19
+ count = MIN_COLUMN_COUNT;
20
+ }
21
+ else if (count > MAX_COLUMN_COUNT) {
22
+ count = MAX_COLUMN_COUNT;
23
+ }
24
+ const metrikaGoal = {
25
+ name: constants_1.BlogMetrikaGoalIds.cta,
26
+ isCrossSite: true,
27
+ };
28
+ return (react_1.default.createElement(Wrapper_1.Wrapper, { paddings: {
29
+ [paddings_1.PaddingsDirections.top]: paddingTop,
30
+ [paddings_1.PaddingsDirections.bottom]: paddingBottom,
31
+ }, className: b('content'), dataQa: "blog-cta-content" }, items.slice(0, count).map((content, index) => {
32
+ var _a;
33
+ const contentData = (0, common_1.updateContentSizes)(content);
34
+ (_a = contentData.links) === null || _a === void 0 ? void 0 : _a.forEach((link) => {
35
+ link.metrikaGoals = (0, common_1.getBlogElementMetrika)(metrikaGoal, link.metrikaGoals);
36
+ });
37
+ return (react_1.default.createElement("div", { key: index, className: b('button', {
38
+ ['layout']: count,
39
+ }), "data-qa": "blog-cta-card" },
40
+ react_1.default.createElement("div", { className: b('card') },
41
+ react_1.default.createElement(page_constructor_1.Content, Object.assign({}, contentData)))));
42
+ })));
43
+ };
44
+ exports.CTA = CTA;
@@ -0,0 +1,28 @@
1
+ .bc-colored-text__container {
2
+ display: flex;
3
+ border-radius: var(--bc-border-radius);
4
+ overflow: hidden;
5
+ position: relative;
6
+ }
7
+ .bc-colored-text__picture-container {
8
+ position: absolute;
9
+ overflow: hidden;
10
+ width: 100%;
11
+ height: 100%;
12
+ border-radius: var(--bc-border-radius);
13
+ z-index: 1;
14
+ top: 0;
15
+ left: 0;
16
+ }
17
+ .bc-colored-text__picture {
18
+ object-fit: cover;
19
+ height: 100%;
20
+ width: 100%;
21
+ }
22
+ .bc-colored-text__text-content {
23
+ position: inherit;
24
+ z-index: 2;
25
+ height: 100%;
26
+ width: 100%;
27
+ padding: 32px;
28
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { ColoredTextProps } from '../../models/blocks';
3
+ export declare const ColoredText: React.FC<ColoredTextProps>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ColoredText = void 0;
18
+ const react_1 = __importDefault(require("react"));
19
+ const page_constructor_1 = require("@gravity-ui/page-constructor");
20
+ const Wrapper_1 = require("../../components/Wrapper/Wrapper");
21
+ const paddings_1 = require("../../models/paddings");
22
+ const common_1 = require("../../utils/common");
23
+ const cn_1 = require("../../utils/cn");
24
+ const b = (0, cn_1.block)('colored-text');
25
+ const ColoredText = (_a) => {
26
+ var { background, paddingTop, paddingBottom } = _a, content = __rest(_a, ["background", "paddingTop", "paddingBottom"]);
27
+ const contentData = (0, common_1.updateContentSizes)(content);
28
+ return (react_1.default.createElement(Wrapper_1.Wrapper, { paddings: {
29
+ [paddings_1.PaddingsDirections.top]: paddingTop,
30
+ [paddings_1.PaddingsDirections.bottom]: paddingBottom,
31
+ } },
32
+ react_1.default.createElement("div", { className: b('container'), style: { backgroundColor: (background === null || background === void 0 ? void 0 : background.color) || 'none' }, "data-qa": "blog-colored-text-content" },
33
+ react_1.default.createElement("div", { className: b('picture-container') }, (background === null || background === void 0 ? void 0 : background.image) && (react_1.default.createElement(page_constructor_1.BackgroundImage, { className: b('picture'), alt: background === null || background === void 0 ? void 0 : background.altText, src: background === null || background === void 0 ? void 0 : background.image }))),
34
+ react_1.default.createElement("div", { className: b('text-content') },
35
+ react_1.default.createElement(page_constructor_1.Content, Object.assign({}, contentData))))));
36
+ };
37
+ exports.ColoredText = ColoredText;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { FeedProps } from '../../models/blocks';
3
+ export declare const Feed: React.FC<FeedProps>;