@doyourjob/gravity-ui-page-constructor 5.31.163 → 5.31.165

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 (58) hide show
  1. package/build/cjs/blocks/ScienceFeed/ScienceFeedHeader/ScienceFeedHeader.css +2 -1
  2. package/build/cjs/blocks/ScienceHeader/ScienceHeader.css +125 -0
  3. package/build/cjs/blocks/ScienceHeader/ScienceHeader.d.ts +4 -0
  4. package/build/cjs/blocks/ScienceHeader/ScienceHeader.js +39 -0
  5. package/build/cjs/blocks/ScienceHeader/i18n/en.json +4 -0
  6. package/build/cjs/blocks/ScienceHeader/i18n/index.d.ts +1 -0
  7. package/build/cjs/blocks/ScienceHeader/i18n/index.js +9 -0
  8. package/build/cjs/blocks/ScienceHeader/i18n/ru.json +4 -0
  9. package/build/cjs/blocks/ScienceHeader/schema.d.ts +42 -0
  10. package/build/cjs/blocks/ScienceHeader/schema.js +32 -0
  11. package/build/cjs/blocks/index.d.ts +1 -0
  12. package/build/cjs/blocks/index.js +4 -1
  13. package/build/cjs/constructor-items.d.ts +1 -0
  14. package/build/cjs/constructor-items.js +1 -0
  15. package/build/cjs/icons/ShareArrowUp.d.ts +2 -0
  16. package/build/cjs/icons/ShareArrowUp.js +9 -0
  17. package/build/cjs/icons/index.d.ts +1 -0
  18. package/build/cjs/icons/index.js +1 -0
  19. package/build/cjs/models/constructor-items/blocks.d.ts +17 -1
  20. package/build/cjs/models/constructor-items/blocks.js +1 -0
  21. package/build/cjs/schema/constants.d.ts +2 -2
  22. package/build/cjs/schema/constants.js +2 -1
  23. package/build/cjs/schema/validators/blocks.d.ts +1 -0
  24. package/build/cjs/schema/validators/blocks.js +1 -0
  25. package/build/cjs/sub-blocks/NewPostCard/NewPostCard.css +1 -0
  26. package/build/cjs/text-transform/config.js +6 -0
  27. package/build/esm/blocks/ScienceFeed/ScienceFeedHeader/ScienceFeedHeader.css +2 -1
  28. package/build/esm/blocks/ScienceHeader/ScienceHeader.css +125 -0
  29. package/build/esm/blocks/ScienceHeader/ScienceHeader.d.ts +5 -0
  30. package/build/esm/blocks/ScienceHeader/ScienceHeader.js +37 -0
  31. package/build/esm/blocks/ScienceHeader/i18n/en.json +4 -0
  32. package/build/esm/blocks/ScienceHeader/i18n/index.d.ts +1 -0
  33. package/build/esm/blocks/ScienceHeader/i18n/index.js +5 -0
  34. package/build/esm/blocks/ScienceHeader/i18n/ru.json +4 -0
  35. package/build/esm/blocks/ScienceHeader/schema.d.ts +42 -0
  36. package/build/esm/blocks/ScienceHeader/schema.js +29 -0
  37. package/build/esm/blocks/index.d.ts +1 -0
  38. package/build/esm/blocks/index.js +1 -0
  39. package/build/esm/constructor-items.d.ts +1 -0
  40. package/build/esm/constructor-items.js +2 -1
  41. package/build/esm/icons/ShareArrowUp.d.ts +2 -0
  42. package/build/esm/icons/ShareArrowUp.js +4 -0
  43. package/build/esm/icons/index.d.ts +1 -0
  44. package/build/esm/icons/index.js +1 -0
  45. package/build/esm/models/constructor-items/blocks.d.ts +17 -1
  46. package/build/esm/models/constructor-items/blocks.js +1 -0
  47. package/build/esm/schema/constants.d.ts +2 -2
  48. package/build/esm/schema/constants.js +3 -2
  49. package/build/esm/schema/validators/blocks.d.ts +1 -0
  50. package/build/esm/schema/validators/blocks.js +1 -0
  51. package/build/esm/sub-blocks/NewPostCard/NewPostCard.css +1 -0
  52. package/build/esm/text-transform/config.js +6 -0
  53. package/package.json +1 -1
  54. package/schema/index.js +1 -1
  55. package/server/models/constructor-items/blocks.d.ts +17 -1
  56. package/server/models/constructor-items/blocks.js +1 -0
  57. package/server/text-transform/config.js +6 -0
  58. package/widget/index.js +1 -1
@@ -15,7 +15,7 @@ unpredictable css rules order in build */
15
15
  gap: 28px;
16
16
  text-align: center;
17
17
  padding: 34px 16px;
18
- max-width: 780px;
18
+ max-width: 740px;
19
19
  }
20
20
  @media (max-width: 769px) {
21
21
  .pc-science-feed-header__content {
@@ -30,6 +30,7 @@ unpredictable css rules order in build */
30
30
  letter-spacing: -1%;
31
31
  font-family: var(--g-font-family-science-tiempos);
32
32
  color: var(--g-color-science-inverse-primary);
33
+ font-weight: 400;
33
34
  }
34
35
  @media (max-width: 769px) {
35
36
  .pc-science-feed-header__title {
@@ -0,0 +1,125 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-science-header-block {
4
+ border-radius: 20px;
5
+ background-color: var(--g-color-science-bg-secondary);
6
+ padding: 8px;
7
+ }
8
+ @media (max-width: 769px) {
9
+ .pc-science-header-block {
10
+ padding: 16px 8px;
11
+ }
12
+ }
13
+ .pc-science-header-block__img {
14
+ width: 100%;
15
+ height: 100%;
16
+ border-radius: 20px;
17
+ aspect-ratio: 641/402;
18
+ object-fit: cover;
19
+ }
20
+ @media (max-width: 769px) {
21
+ .pc-science-header-block__img {
22
+ border-radius: 15px;
23
+ }
24
+ }
25
+ .pc-science-header-block__left {
26
+ padding: 17px 34px;
27
+ height: 100%;
28
+ display: flex;
29
+ flex-direction: column;
30
+ justify-content: space-between;
31
+ gap: 24px;
32
+ }
33
+ @media (max-width: 769px) {
34
+ .pc-science-header-block__left {
35
+ padding: 8px 18px 24px;
36
+ }
37
+ }
38
+ .pc-science-header-block__title {
39
+ margin: 0;
40
+ font-size: 28px;
41
+ line-height: 120%;
42
+ font-weight: 400;
43
+ color: var(--g-color-science-primary);
44
+ font-family: var(--g-font-family-science-tiempos);
45
+ margin-bottom: 12px;
46
+ letter-spacing: -2%;
47
+ font-style: italic;
48
+ }
49
+ @media (max-width: 769px) {
50
+ .pc-science-header-block__title {
51
+ margin-bottom: 6px;
52
+ }
53
+ }
54
+ .pc-science-header-block__tag {
55
+ color: var(--g-color-science-tertiary);
56
+ font-style: italic;
57
+ font-size: 14px;
58
+ line-height: 120%;
59
+ font-family: var(--g-font-family-science-tiempos);
60
+ margin-bottom: 16px;
61
+ }
62
+ @media (max-width: 769px) {
63
+ .pc-science-header-block__tag {
64
+ margin-bottom: 6px;
65
+ }
66
+ }
67
+ .pc-science-header-block__description {
68
+ color: var(--g-color-science-secondary);
69
+ font-family: var(--g-font-family-science-inter);
70
+ font-size: 16px;
71
+ line-height: 136%;
72
+ margin-bottom: 45px;
73
+ }
74
+ @media (max-width: 769px) {
75
+ .pc-science-header-block__description {
76
+ margin-bottom: 6px;
77
+ }
78
+ }
79
+ .pc-science-header-block__description p {
80
+ margin: 0;
81
+ }
82
+ .pc-science-header-block__author {
83
+ font-family: var(--g-font-family-science-tiempos);
84
+ font-size: 14px;
85
+ line-height: 120%;
86
+ color: var(--g-color-science-tertiary);
87
+ }
88
+ .pc-science-header-block__footer {
89
+ display: flex;
90
+ align-items: flex-start;
91
+ flex-wrap: wrap;
92
+ color: var(--g-color-science-tertiary);
93
+ column-gap: 22px;
94
+ row-gap: 12px;
95
+ }
96
+ @media (max-width: 769px) {
97
+ .pc-science-header-block__footer {
98
+ column-gap: 20px;
99
+ }
100
+ }
101
+ .pc-science-header-block__item {
102
+ font-size: 14px;
103
+ line-height: 120%;
104
+ font-family: var(--g-font-family-science-inter);
105
+ display: flex;
106
+ flex-wrap: nowrap;
107
+ align-items: center;
108
+ }
109
+ .pc-science-header-block__icon {
110
+ margin-right: 6px;
111
+ display: flex;
112
+ align-items: center;
113
+ }
114
+ .pc-science-header-block__switcher {
115
+ font-size: 14px;
116
+ line-height: 120%;
117
+ font-family: var(--g-font-family-science-inter);
118
+ color: var(--g-color-science-tertiary);
119
+ }
120
+ .pc-science-header-block__switcher:hover {
121
+ color: var(--g-color-science-secondary);
122
+ }
123
+ .pc-science-header-block__switcher > div + div {
124
+ padding-inline-start: 5px;
125
+ }
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { ScienceHeaderBlockProps } from '../../models';
3
+ declare const _default: React.MemoExoticComponent<({ topic, title, description, author, date, readingTime, image, shareOptions, shareUrl, }: ScienceHeaderBlockProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const components_1 = require("@gravity-ui/components");
6
+ const uikit_1 = require("@gravity-ui/uikit");
7
+ const components_2 = require("../../components");
8
+ const mobileContext_1 = require("../../context/mobileContext");
9
+ const grid_1 = require("../../grid");
10
+ const icons_1 = require("../../icons");
11
+ const TimeIcon_1 = require("../../icons/TimeIcon");
12
+ const cn_1 = require("../../utils/cn");
13
+ const i18n_1 = require("./i18n");
14
+ const b = (0, cn_1.block)('science-header-block');
15
+ const leftColumn = { all: 12, md: 5 };
16
+ const rightColumn = { all: 12, md: 7 };
17
+ const ScienceHeaderBlock = ({ topic, title, description, author, date, readingTime, image, shareOptions, shareUrl, }) => {
18
+ const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
19
+ return (react_1.default.createElement("div", { className: b() },
20
+ react_1.default.createElement(grid_1.Row, null,
21
+ react_1.default.createElement(grid_1.Col, { sizes: leftColumn },
22
+ react_1.default.createElement("div", { className: b('left') },
23
+ react_1.default.createElement("div", { className: b('body') },
24
+ react_1.default.createElement("div", { className: b('tag') }, topic),
25
+ title && (react_1.default.createElement("h2", { className: b('title') },
26
+ react_1.default.createElement(components_2.HTML, null, title))),
27
+ description && react_1.default.createElement(components_2.HTML, { className: b('description') }, description),
28
+ author && react_1.default.createElement("div", { className: b('author') }, author)),
29
+ react_1.default.createElement("div", { className: b('footer') },
30
+ date && react_1.default.createElement("div", { className: b('item') }, date),
31
+ readingTime && (react_1.default.createElement("div", { className: b('item') },
32
+ react_1.default.createElement("span", { className: b('icon') },
33
+ react_1.default.createElement(uikit_1.Icon, { data: TimeIcon_1.TimeIcon, size: 16, className: b('icon-color') })),
34
+ (0, i18n_1.i18n)('reading_time', { count: readingTime }))),
35
+ (shareOptions === null || shareOptions === void 0 ? void 0 : shareOptions.length) && (react_1.default.createElement(components_1.SharePopover, { url: shareUrl || '', switcherClassName: b('switcher'), useWebShareApi: isMobile, direction: components_1.ShareLayoutDirection.Column, buttonTitle: (0, i18n_1.i18n)('share'), customIcon: icons_1.ShareArrowUp, placement: "bottom", openByHover: false, shareOptions: shareOptions }))))),
36
+ react_1.default.createElement(grid_1.Col, { sizes: rightColumn, className: b('right') },
37
+ react_1.default.createElement(components_2.Image, { src: image, className: b('img') })))));
38
+ };
39
+ exports.default = react_1.default.memo(ScienceHeaderBlock);
@@ -0,0 +1,4 @@
1
+ {
2
+ "reading_time": ["{{count}} min to read", "{{count}} mins to read", "{{count}} mins to read"],
3
+ "share": "Share"
4
+ }
@@ -0,0 +1 @@
1
+ export declare const i18n: (key: "reading_time" | "share", params?: import("@gravity-ui/i18n").Params | undefined) => string;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.i18n = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const i18n_1 = require("@gravity-ui/uikit/i18n");
6
+ const cn_1 = require("../../../utils/cn");
7
+ const en_json_1 = tslib_1.__importDefault(require("./en.json"));
8
+ const ru_json_1 = tslib_1.__importDefault(require("./ru.json"));
9
+ exports.i18n = (0, i18n_1.addComponentKeysets)({ en: en_json_1.default, ru: ru_json_1.default }, `${cn_1.NAMESPACE}ScienceHeaderBlock`);
@@ -0,0 +1,4 @@
1
+ {
2
+ "reading_time": ["{{count}} минута чтения", "{{count}} минуты чтения", "{{count}} минут чтения"],
3
+ "share": "Поделиться"
4
+ }
@@ -0,0 +1,42 @@
1
+ export declare const ScienceHeaderBlock: {
2
+ 'science-header-block': {
3
+ additionalProperties: boolean;
4
+ required: never[];
5
+ properties: {
6
+ title: {
7
+ type: string;
8
+ };
9
+ date: {
10
+ type: string;
11
+ };
12
+ readingTime: {
13
+ type: string;
14
+ };
15
+ image: {
16
+ type: string;
17
+ };
18
+ description: {
19
+ type: string;
20
+ };
21
+ topic: {
22
+ type: string;
23
+ };
24
+ author: {
25
+ type: string;
26
+ };
27
+ shareOptions: {
28
+ type: string;
29
+ items: {
30
+ type: string;
31
+ };
32
+ };
33
+ shareUrl: {
34
+ type: string;
35
+ };
36
+ type: {};
37
+ when: {
38
+ type: string;
39
+ };
40
+ };
41
+ };
42
+ };
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScienceHeaderBlock = void 0;
4
+ const common_1 = require("../../schema/validators/common");
5
+ exports.ScienceHeaderBlock = {
6
+ 'science-header-block': {
7
+ additionalProperties: false,
8
+ required: [],
9
+ properties: Object.assign(Object.assign({}, common_1.BaseProps), { title: {
10
+ type: 'string',
11
+ }, date: {
12
+ type: 'string',
13
+ }, readingTime: {
14
+ type: 'number',
15
+ }, image: {
16
+ type: 'string',
17
+ }, description: {
18
+ type: 'string',
19
+ }, topic: {
20
+ type: 'string',
21
+ }, author: {
22
+ type: 'string',
23
+ }, shareOptions: {
24
+ type: 'array',
25
+ items: {
26
+ type: 'string',
27
+ },
28
+ }, shareUrl: {
29
+ type: 'string',
30
+ } }),
31
+ },
32
+ };
@@ -32,6 +32,7 @@ export { default as SolutionsBlock } from './Solutions/Solutions';
32
32
  export { default as ServicesBlock } from './Services/Services';
33
33
  export { default as QuotesBlock } from './Quotes/Quotes';
34
34
  export { default as ReportsBlock } from './Reports/Reports';
35
+ export { default as ScienceHeaderBlock } from './ScienceHeader/ScienceHeader';
35
36
  export { default as ReportsCardsBlock } from './ReportsCards/ReportsCards';
36
37
  export { default as ReportsSectionsBlock } from './ReportsSections/ReportsSections';
37
38
  export { default as FormWallBlock } from './FormWallBlock/FormWallBlock';
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BenchmarkBlock = exports.MiniCaseBlock = exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.ScienceFeedBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.ResourceHubPostsBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.ScrollerBlock = exports.BenefitsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
6
+ exports.MiniCaseBlock = exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.ScienceFeedBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.ResourceHubPostsBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.ScienceHeaderBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.ScrollerBlock = exports.BenefitsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
7
+ exports.BenchmarkBlock = void 0;
7
8
  var Banner_1 = require("./Banner/Banner");
8
9
  Object.defineProperty(exports, "BannerBlock", { enumerable: true, get: function () { return __importDefault(Banner_1).default; } });
9
10
  var LogoRotator_1 = require("./LogoRotator/LogoRotator");
@@ -72,6 +73,8 @@ var Quotes_1 = require("./Quotes/Quotes");
72
73
  Object.defineProperty(exports, "QuotesBlock", { enumerable: true, get: function () { return __importDefault(Quotes_1).default; } });
73
74
  var Reports_1 = require("./Reports/Reports");
74
75
  Object.defineProperty(exports, "ReportsBlock", { enumerable: true, get: function () { return __importDefault(Reports_1).default; } });
76
+ var ScienceHeader_1 = require("./ScienceHeader/ScienceHeader");
77
+ Object.defineProperty(exports, "ScienceHeaderBlock", { enumerable: true, get: function () { return __importDefault(ScienceHeader_1).default; } });
75
78
  var ReportsCards_1 = require("./ReportsCards/ReportsCards");
76
79
  Object.defineProperty(exports, "ReportsCardsBlock", { enumerable: true, get: function () { return __importDefault(ReportsCards_1).default; } });
77
80
  var ReportsSections_1 = require("./ReportsSections/ReportsSections");
@@ -45,6 +45,7 @@ export declare const blockMap: {
45
45
  "services-block": ({ title, serviceLinkType }: import("./models").ServicesBlockProps) => JSX.Element;
46
46
  "quotes-block": ({ theme: localTheme, items, background, backgroundColor, }: import("./models").QuotesBlockProps) => JSX.Element;
47
47
  "reports-block": ({ title, typeKey, empty }: import("./models").ReportsBlockProps) => JSX.Element;
48
+ "science-header-block": import("react").MemoExoticComponent<({ topic, title, description, author, date, readingTime, image, shareOptions, shareUrl, }: import("./models").ScienceHeaderBlockProps) => JSX.Element>;
48
49
  "reports-cards-block": ({ title, typeKey, postscript, empty }: import("./models").ReportsCardsBlockProps) => JSX.Element;
49
50
  "reports-sections-block": ({ title, typeKey, empty }: import("./models").ReportsSectionsBlockProps) => JSX.Element;
50
51
  "form-wall-block": (props: import("./models").FormWallBlockProps) => JSX.Element;
@@ -54,6 +54,7 @@ exports.blockMap = {
54
54
  [models_1.BlockType.ServicesBlock]: blocks_1.ServicesBlock,
55
55
  [models_1.BlockType.QuotesBlock]: blocks_1.QuotesBlock,
56
56
  [models_1.BlockType.ReportsBlock]: blocks_1.ReportsBlock,
57
+ [models_1.BlockType.ScienceHeaderBlock]: blocks_1.ScienceHeaderBlock,
57
58
  [models_1.BlockType.ReportsCardsBlock]: blocks_1.ReportsCardsBlock,
58
59
  [models_1.BlockType.ReportsSectionsBlock]: blocks_1.ReportsSectionsBlock,
59
60
  [models_1.BlockType.FormWallBlock]: blocks_1.FormWallBlock,
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ShareArrowUp: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShareArrowUp = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const svg_1 = require("../utils/svg");
7
+ const ShareArrowUp = (props) => (react_1.default.createElement("svg", Object.assign({ xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentColor" }, svg_1.a11yHiddenSvgProps, props),
8
+ react_1.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.798 3.16a.5.5 0 0 0 .363.842H7V9a1 1 0 0 0 2 0V4.002h1.839a.5.5 0 0 0 .363-.844L8.363.156a.5.5 0 0 0-.726 0l-2.84 3.002.001.001ZM13 7a1 1 0 0 1 2 0v6.5a1.5 1.5 0 0 1-1.5 1.5h-11A1.5 1.5 0 0 1 1 13.5V7a1 1 0 0 1 2 0v6h10V7Z" })));
9
+ exports.ShareArrowUp = ShareArrowUp;
@@ -9,3 +9,4 @@ export * from './ArrowLeftIcon';
9
9
  export * from './ArrowRightIcon';
10
10
  export * from './VideoIcon';
11
11
  export * from './DocumentIcon';
12
+ export * from './ShareArrowUp';
@@ -12,3 +12,4 @@ tslib_1.__exportStar(require("./ArrowLeftIcon"), exports);
12
12
  tslib_1.__exportStar(require("./ArrowRightIcon"), exports);
13
13
  tslib_1.__exportStar(require("./VideoIcon"), exports);
14
14
  tslib_1.__exportStar(require("./DocumentIcon"), exports);
15
+ tslib_1.__exportStar(require("./ShareArrowUp"), exports);
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { ShareOptions } from '@gravity-ui/components';
2
3
  import { ButtonSize } from '@gravity-ui/uikit';
3
4
  import { GridColumnSize, GridColumnSizesType, IndentValue } from '../../grid/types';
4
5
  import { BlockBackgroundType, ThemeSupporting } from '../../utils';
@@ -39,6 +40,7 @@ export declare enum BlockType {
39
40
  ServicesBlock = "services-block",
40
41
  QuotesBlock = "quotes-block",
41
42
  ReportsBlock = "reports-block",
43
+ ScienceHeaderBlock = "science-header-block",
42
44
  ReportsCardsBlock = "reports-cards-block",
43
45
  ReportsSectionsBlock = "reports-sections-block",
44
46
  FormWallBlock = "form-wall-block",
@@ -739,6 +741,17 @@ export interface FormBlockProps {
739
741
  fullWidth?: boolean;
740
742
  fullWidthContent?: boolean;
741
743
  }
744
+ export interface ScienceHeaderBlockProps {
745
+ title: string;
746
+ description?: string;
747
+ topic?: string;
748
+ author?: string;
749
+ date: string;
750
+ image: string;
751
+ readingTime?: number;
752
+ shareOptions?: ShareOptions[];
753
+ shareUrl?: string;
754
+ }
742
755
  export type HeaderBlockModel = {
743
756
  type: BlockType.HeaderBlock;
744
757
  } & HeaderBlockProps;
@@ -841,6 +854,9 @@ export type QuotesBlockModel = {
841
854
  export type ReportsBlockModel = {
842
855
  type: BlockType.ReportsBlock;
843
856
  } & ReportsBlockProps;
857
+ export type ScienceHeaderBlockModel = {
858
+ type: BlockType.ScienceHeaderBlock;
859
+ } & ScienceHeaderBlockProps;
844
860
  export type ReportsCardsBlockModel = {
845
861
  type: BlockType.ReportsCardsBlock;
846
862
  } & ReportsCardsBlockProps;
@@ -889,6 +905,6 @@ export type FormWallBlockModel = {
889
905
  export type SliderNewBlockModel = {
890
906
  type: BlockType.SliderNewBlock;
891
907
  } & SliderNewProps;
892
- type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | AdvantagesBlockModel | BenefitsBlockModel | ScrollerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | HeaderMinifyBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | BannerMinifyBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | ResourceHubPostsBlockModel | BenchmarkBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | ScienceFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel;
908
+ type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | AdvantagesBlockModel | BenefitsBlockModel | ScrollerBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | HeaderMinifyBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | BannerMinifyBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ScienceHeaderBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | ResourceHubPostsBlockModel | BenchmarkBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | ScienceFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel;
893
909
  export type Block = BlockModels & BlockBaseProps;
894
910
  export {};
@@ -36,6 +36,7 @@ var BlockType;
36
36
  BlockType["ServicesBlock"] = "services-block";
37
37
  BlockType["QuotesBlock"] = "quotes-block";
38
38
  BlockType["ReportsBlock"] = "reports-block";
39
+ BlockType["ScienceHeaderBlock"] = "science-header-block";
39
40
  BlockType["ReportsCardsBlock"] = "reports-cards-block";
40
41
  BlockType["ReportsSectionsBlock"] = "reports-sections-block";
41
42
  BlockType["FormWallBlock"] = "form-wall-block";
@@ -3261,7 +3261,7 @@ export declare const cardSchemas: {
3261
3261
  type: string;
3262
3262
  enum: string[];
3263
3263
  default: string;
3264
- };
3264
+ }; /** @deprecated */
3265
3265
  numberGroupItems: {
3266
3266
  type: string;
3267
3267
  enum: number[];
@@ -3757,7 +3757,7 @@ export declare const cardSchemas: {
3757
3757
  };
3758
3758
  controls: {
3759
3759
  type: string;
3760
- enum: import("../models").MediaVideoControlsType[]; /** @deprecated */
3760
+ enum: import("../models").MediaVideoControlsType[];
3761
3761
  };
3762
3762
  customControlsOptions: {
3763
3763
  type: string;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.constructorCardSchemaNames = exports.constructorBlockSchemaNames = exports.cardSchemas = exports.blockSchemas = void 0;
4
4
  const blocks_1 = require("./validators/blocks");
5
5
  const sub_blocks_1 = require("./validators/sub-blocks");
6
- exports.blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.AdvantagesBlock), blocks_1.BenefitsBlock), blocks_1.ScrollerBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.HeaderMinifyBlock), blocks_1.BannerBlock), blocks_1.LogoRotatorBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.MiniCaseBlock), blocks_1.TabsBlock), blocks_1.TabsHighlightTableBlock), blocks_1.TabLinksBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.BannerMinifyBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FilterCardLayoutBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.ReportsCardsBlock), blocks_1.ReportsSectionsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.ResourceHubPostsBlock), blocks_1.BenchmarkBlock), blocks_1.EventsSectionBlock), blocks_1.BlogFeedBlock), blocks_1.ScienceFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.RelevantReportsCardsBlock), blocks_1.RelevantReportsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock);
6
+ exports.blockSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.AdvantagesBlock), blocks_1.BenefitsBlock), blocks_1.ScrollerBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.HeaderMinifyBlock), blocks_1.BannerBlock), blocks_1.LogoRotatorBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.MapBlock), blocks_1.InfoBlock), blocks_1.TableBlock), blocks_1.HighlightTableBlock), blocks_1.MiniCaseBlock), blocks_1.TabsBlock), blocks_1.TabsHighlightTableBlock), blocks_1.TabLinksBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.BannerMinifyBlock), blocks_1.ShareBlock), blocks_1.FilterBlock), blocks_1.FilterCardLayoutBlock), blocks_1.FormBlock), blocks_1.SliderNewBlock), blocks_1.MarqueeLinksBlock), blocks_1.SolutionsBlock), blocks_1.ServicesBlock), blocks_1.QuotesBlock), blocks_1.ReportsBlock), blocks_1.ScienceHeaderBlock), blocks_1.ReportsCardsBlock), blocks_1.ReportsSectionsBlock), blocks_1.LinkTableBlock), blocks_1.EventsFeedBlock), blocks_1.ResourceHubPostsBlock), blocks_1.BenchmarkBlock), blocks_1.EventsSectionBlock), blocks_1.BlogFeedBlock), blocks_1.ScienceFeedBlock), blocks_1.RelevantPostsBlock), blocks_1.RelevantReportsCardsBlock), blocks_1.RelevantReportsBlock), blocks_1.PressReleasesBlock), blocks_1.FormWallBlock);
7
7
  exports.cardSchemas = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.MediaCardBlock), blocks_1.BannerCard), sub_blocks_1.PriceDetailedBlock), sub_blocks_1.BackgroundCard), sub_blocks_1.Quote), sub_blocks_1.BasicCard), sub_blocks_1.PriceCardBlock), sub_blocks_1.ImageCard), sub_blocks_1.ContentLayoutCard), sub_blocks_1.Card), sub_blocks_1.PostCard), sub_blocks_1.NewPostCard), sub_blocks_1.FeedCard), sub_blocks_1.EventPersonCard), sub_blocks_1.AttachmentCard), sub_blocks_1.CaseStudyCard), sub_blocks_1.StoryCard);
8
8
  exports.constructorBlockSchemaNames = [
9
9
  'divider',
@@ -50,6 +50,7 @@ exports.constructorBlockSchemaNames = [
50
50
  'events-section-block',
51
51
  'blog-feed-block',
52
52
  'science-feed-block',
53
+ 'science-header-block',
53
54
  'highlight-table-block',
54
55
  'relevant-posts-block',
55
56
  'relevant-reports-cards-block',
@@ -48,3 +48,4 @@ export * from '../../blocks/MiniCase/schema';
48
48
  export * from '../../blocks/LogoRotator/schema';
49
49
  export * from '../../blocks/Benchmark/schema';
50
50
  export * from '../../blocks/HeaderMinify/schema';
51
+ export * from '../../blocks/ScienceHeader/schema';
@@ -51,3 +51,4 @@ tslib_1.__exportStar(require("../../blocks/MiniCase/schema"), exports);
51
51
  tslib_1.__exportStar(require("../../blocks/LogoRotator/schema"), exports);
52
52
  tslib_1.__exportStar(require("../../blocks/Benchmark/schema"), exports);
53
53
  tslib_1.__exportStar(require("../../blocks/HeaderMinify/schema"), exports);
54
+ tslib_1.__exportStar(require("../../blocks/ScienceHeader/schema"), exports);
@@ -87,6 +87,7 @@ unpredictable css rules order in build */
87
87
  letter-spacing: -2%;
88
88
  font-style: italic;
89
89
  font-family: var(--g-font-family-science-tiempos);
90
+ font-weight: 400;
90
91
  }
91
92
  }
92
93
  .pc-new-post-card__tag {
@@ -496,4 +496,10 @@ exports.config = {
496
496
  transformer: common_1.yfmTransformer,
497
497
  },
498
498
  ],
499
+ [models_1.BlockType.ScienceHeaderBlock]: [
500
+ {
501
+ fields: ['description'],
502
+ transformer: common_1.yfmTransformer,
503
+ },
504
+ ],
499
505
  };
@@ -15,7 +15,7 @@ unpredictable css rules order in build */
15
15
  gap: 28px;
16
16
  text-align: center;
17
17
  padding: 34px 16px;
18
- max-width: 780px;
18
+ max-width: 740px;
19
19
  }
20
20
  @media (max-width: 769px) {
21
21
  .pc-science-feed-header__content {
@@ -30,6 +30,7 @@ unpredictable css rules order in build */
30
30
  letter-spacing: -1%;
31
31
  font-family: var(--g-font-family-science-tiempos);
32
32
  color: var(--g-color-science-inverse-primary);
33
+ font-weight: 400;
33
34
  }
34
35
  @media (max-width: 769px) {
35
36
  .pc-science-feed-header__title {
@@ -0,0 +1,125 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-science-header-block {
4
+ border-radius: 20px;
5
+ background-color: var(--g-color-science-bg-secondary);
6
+ padding: 8px;
7
+ }
8
+ @media (max-width: 769px) {
9
+ .pc-science-header-block {
10
+ padding: 16px 8px;
11
+ }
12
+ }
13
+ .pc-science-header-block__img {
14
+ width: 100%;
15
+ height: 100%;
16
+ border-radius: 20px;
17
+ aspect-ratio: 641/402;
18
+ object-fit: cover;
19
+ }
20
+ @media (max-width: 769px) {
21
+ .pc-science-header-block__img {
22
+ border-radius: 15px;
23
+ }
24
+ }
25
+ .pc-science-header-block__left {
26
+ padding: 17px 34px;
27
+ height: 100%;
28
+ display: flex;
29
+ flex-direction: column;
30
+ justify-content: space-between;
31
+ gap: 24px;
32
+ }
33
+ @media (max-width: 769px) {
34
+ .pc-science-header-block__left {
35
+ padding: 8px 18px 24px;
36
+ }
37
+ }
38
+ .pc-science-header-block__title {
39
+ margin: 0;
40
+ font-size: 28px;
41
+ line-height: 120%;
42
+ font-weight: 400;
43
+ color: var(--g-color-science-primary);
44
+ font-family: var(--g-font-family-science-tiempos);
45
+ margin-bottom: 12px;
46
+ letter-spacing: -2%;
47
+ font-style: italic;
48
+ }
49
+ @media (max-width: 769px) {
50
+ .pc-science-header-block__title {
51
+ margin-bottom: 6px;
52
+ }
53
+ }
54
+ .pc-science-header-block__tag {
55
+ color: var(--g-color-science-tertiary);
56
+ font-style: italic;
57
+ font-size: 14px;
58
+ line-height: 120%;
59
+ font-family: var(--g-font-family-science-tiempos);
60
+ margin-bottom: 16px;
61
+ }
62
+ @media (max-width: 769px) {
63
+ .pc-science-header-block__tag {
64
+ margin-bottom: 6px;
65
+ }
66
+ }
67
+ .pc-science-header-block__description {
68
+ color: var(--g-color-science-secondary);
69
+ font-family: var(--g-font-family-science-inter);
70
+ font-size: 16px;
71
+ line-height: 136%;
72
+ margin-bottom: 45px;
73
+ }
74
+ @media (max-width: 769px) {
75
+ .pc-science-header-block__description {
76
+ margin-bottom: 6px;
77
+ }
78
+ }
79
+ .pc-science-header-block__description p {
80
+ margin: 0;
81
+ }
82
+ .pc-science-header-block__author {
83
+ font-family: var(--g-font-family-science-tiempos);
84
+ font-size: 14px;
85
+ line-height: 120%;
86
+ color: var(--g-color-science-tertiary);
87
+ }
88
+ .pc-science-header-block__footer {
89
+ display: flex;
90
+ align-items: flex-start;
91
+ flex-wrap: wrap;
92
+ color: var(--g-color-science-tertiary);
93
+ column-gap: 22px;
94
+ row-gap: 12px;
95
+ }
96
+ @media (max-width: 769px) {
97
+ .pc-science-header-block__footer {
98
+ column-gap: 20px;
99
+ }
100
+ }
101
+ .pc-science-header-block__item {
102
+ font-size: 14px;
103
+ line-height: 120%;
104
+ font-family: var(--g-font-family-science-inter);
105
+ display: flex;
106
+ flex-wrap: nowrap;
107
+ align-items: center;
108
+ }
109
+ .pc-science-header-block__icon {
110
+ margin-right: 6px;
111
+ display: flex;
112
+ align-items: center;
113
+ }
114
+ .pc-science-header-block__switcher {
115
+ font-size: 14px;
116
+ line-height: 120%;
117
+ font-family: var(--g-font-family-science-inter);
118
+ color: var(--g-color-science-tertiary);
119
+ }
120
+ .pc-science-header-block__switcher:hover {
121
+ color: var(--g-color-science-secondary);
122
+ }
123
+ .pc-science-header-block__switcher > div + div {
124
+ padding-inline-start: 5px;
125
+ }