@doyourjob/gravity-ui-page-constructor 5.31.135 → 5.31.136-dev.2

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 (45) hide show
  1. package/build/cjs/blocks/Advantages/Advantages.css +132 -0
  2. package/build/cjs/blocks/Advantages/Advantages.d.ts +3 -0
  3. package/build/cjs/blocks/Advantages/Advantages.js +34 -0
  4. package/build/cjs/blocks/Advantages/schema.d.ts +56 -0
  5. package/build/cjs/blocks/Advantages/schema.js +36 -0
  6. package/build/cjs/blocks/index.d.ts +1 -0
  7. package/build/cjs/blocks/index.js +3 -1
  8. package/build/cjs/blocks/validators.d.ts +1 -0
  9. package/build/cjs/blocks/validators.js +1 -0
  10. package/build/cjs/constructor-items.d.ts +1 -0
  11. package/build/cjs/constructor-items.js +1 -0
  12. package/build/cjs/containers/PageConstructor/PageConstructor.css +3 -0
  13. package/build/cjs/models/constructor-items/blocks.d.ts +16 -1
  14. package/build/cjs/models/constructor-items/blocks.js +1 -0
  15. package/build/cjs/schema/constants.js +2 -1
  16. package/build/cjs/schema/validators/blocks.d.ts +1 -0
  17. package/build/cjs/schema/validators/blocks.js +1 -0
  18. package/build/cjs/text-transform/config.js +4 -0
  19. package/build/esm/blocks/Advantages/Advantages.css +132 -0
  20. package/build/esm/blocks/Advantages/Advantages.d.ts +4 -0
  21. package/build/esm/blocks/Advantages/Advantages.js +30 -0
  22. package/build/esm/blocks/Advantages/schema.d.ts +56 -0
  23. package/build/esm/blocks/Advantages/schema.js +33 -0
  24. package/build/esm/blocks/index.d.ts +1 -0
  25. package/build/esm/blocks/index.js +1 -0
  26. package/build/esm/blocks/validators.d.ts +1 -0
  27. package/build/esm/blocks/validators.js +1 -0
  28. package/build/esm/constructor-items.d.ts +1 -0
  29. package/build/esm/constructor-items.js +2 -1
  30. package/build/esm/containers/PageConstructor/PageConstructor.css +3 -0
  31. package/build/esm/models/constructor-items/blocks.d.ts +16 -1
  32. package/build/esm/models/constructor-items/blocks.js +1 -0
  33. package/build/esm/schema/constants.js +3 -2
  34. package/build/esm/schema/validators/blocks.d.ts +1 -0
  35. package/build/esm/schema/validators/blocks.js +1 -0
  36. package/build/esm/text-transform/config.js +4 -0
  37. package/package.json +1 -1
  38. package/schema/index.js +1 -1
  39. package/server/models/constructor-items/blocks.d.ts +16 -1
  40. package/server/models/constructor-items/blocks.js +1 -0
  41. package/server/text-transform/config.js +4 -0
  42. package/styles/mixins.scss +8 -0
  43. package/styles/root.scss +4 -0
  44. package/styles/styles.css +3 -0
  45. package/widget/index.js +1 -1
@@ -0,0 +1,132 @@
1
+ .pc-advantages-block__item-desc, .pc-advantages-block__item-title, .pc-advantages-block__link, .pc-advantages-block__title {
2
+ margin: 0;
3
+ }
4
+
5
+ /* use this for style redefinitions to awoid problems with
6
+ unpredictable css rules order in build */
7
+ @media (min-width: 769px) {
8
+ .pc-advantages-block.pc-AnimateBlock, .pc-AnimateBlock .pc-advantages-block {
9
+ position: relative;
10
+ top: 100px;
11
+ opacity: 0;
12
+ }
13
+ .pc-advantages-block.pc-AnimateBlock.animate, .pc-AnimateBlock .pc-advantages-block.animate {
14
+ top: 0;
15
+ opacity: 1;
16
+ transition: top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
17
+ transition-delay: 0s;
18
+ }
19
+ }
20
+ .pc-advantages-block__header {
21
+ flex: 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ }
25
+ .pc-advantages-block__header.pc-advantages-block__header {
26
+ padding-top: 32px;
27
+ padding-bottom: 32px;
28
+ }
29
+
30
+ .pc-advantages-block__title {
31
+ font-weight: var(--g-text-accent-font-weight);
32
+ font-size: 48px;
33
+ line-height: 52px;
34
+ color: var(--pc-color-ab-base);
35
+ }
36
+ .pc-advantages-block__title p {
37
+ margin: 0;
38
+ }
39
+ @media (max-width: 577px) {
40
+ .pc-advantages-block__title {
41
+ font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
42
+ line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
43
+ }
44
+ }
45
+ .pc-advantages-block__link {
46
+ font-weight: var(--g-text-accent-font-weight);
47
+ font-size: 48px;
48
+ line-height: 52px;
49
+ transition: color 0.3s ease;
50
+ color: var(--pc-color-ab-second);
51
+ margin-bottom: 32px;
52
+ }
53
+ @media (hover: hover) and (pointer: fine) {
54
+ .pc-advantages-block__link:hover {
55
+ color: var(--pc-color-ab-base);
56
+ }
57
+ }
58
+ @media (max-width: 577px) {
59
+ .pc-advantages-block__link {
60
+ font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
61
+ line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
62
+ }
63
+ }
64
+ .pc-advantages-block__wrap-logo {
65
+ margin-top: auto;
66
+ }
67
+ .pc-advantages-block__logo {
68
+ display: block;
69
+ object-fit: contain;
70
+ height: 76px;
71
+ }
72
+ .pc-advantages-block__item {
73
+ display: flex;
74
+ margin-left: 0;
75
+ margin-bottom: 16px;
76
+ border-left: none;
77
+ border-right: none;
78
+ border-top: 1px var(--pc-color-ab-border) solid;
79
+ transition: opacity 0.3s ease;
80
+ }
81
+ @media (hover: hover) and (pointer: fine) {
82
+ .pc-advantages-block__item:hover {
83
+ opacity: 0.5;
84
+ }
85
+ }
86
+ .pc-advantages-block__item-wrap {
87
+ padding: 32px 0;
88
+ }
89
+ .pc-advantages-block__item-image {
90
+ width: 230px;
91
+ height: 230px;
92
+ display: block;
93
+ margin-left: 32px;
94
+ }
95
+ .pc-advantages-block__item-title {
96
+ font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
97
+ line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
98
+ color: var(--pc-text-header-color);
99
+ font-weight: var(--g-text-accent-font-weight);
100
+ color: var(--pc-color-ab-second);
101
+ margin-bottom: 8px;
102
+ }
103
+ .pc-advantages-block__item-desc {
104
+ font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
105
+ line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
106
+ color: var(--pc-text-header-color);
107
+ font-weight: var(--g-text-accent-font-weight);
108
+ color: var(--pc-color-ab-base);
109
+ opacity: 0.6;
110
+ }
111
+ @media (min-width: 1185px) {
112
+ .pc-advantages-block__item {
113
+ border-left: 1px var(--pc-color-ab-border) solid;
114
+ border-right: 1px var(--pc-color-ab-border) solid;
115
+ margin-left: 8px;
116
+ margin-bottom: 0;
117
+ }
118
+ .pc-advantages-block__item + .pc-advantages-block__item {
119
+ border-top: 1px var(--pc-color-ab-border) solid;
120
+ }
121
+ .pc-advantages-block__item-wrap {
122
+ padding: 32px;
123
+ }
124
+ }
125
+ @media (max-width: 769px) {
126
+ .pc-advantages-block__item {
127
+ flex-direction: column;
128
+ }
129
+ .pc-advantages-block__item-wrap {
130
+ padding: 16px 0;
131
+ }
132
+ }
@@ -0,0 +1,3 @@
1
+ import { AdvantagesBlockProps } from '../../models';
2
+ export declare const AdvantagesBlock: (props: AdvantagesBlockProps) => JSX.Element;
3
+ export default AdvantagesBlock;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdvantagesBlock = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const uikit_1 = require("@gravity-ui/uikit");
7
+ const components_1 = require("../../components");
8
+ const AnimateBlock_1 = tslib_1.__importDefault(require("../../components/AnimateBlock/AnimateBlock"));
9
+ const grid_1 = require("../../grid");
10
+ const utils_1 = require("../../utils");
11
+ const b = (0, utils_1.block)('advantages-block');
12
+ const colSizesHeader = { all: 12, xl: 6 };
13
+ const colSizesBody = { all: 12, xl: 6 };
14
+ const AdvantagesBlock = (props) => {
15
+ const { animated, title, link, logo, items } = props;
16
+ return (react_1.default.createElement(AnimateBlock_1.default, { className: b(), animate: animated },
17
+ react_1.default.createElement(grid_1.Grid, null,
18
+ react_1.default.createElement(grid_1.Row, null,
19
+ react_1.default.createElement(grid_1.Col, { sizes: colSizesHeader, className: b('header') },
20
+ title && (react_1.default.createElement("h2", { className: b('title') },
21
+ react_1.default.createElement(components_1.HTML, null, title))),
22
+ link && (react_1.default.createElement(uikit_1.Link, { className: b('link'), href: link.url }, link.text)),
23
+ logo && (react_1.default.createElement("div", { className: b('wrap-logo') },
24
+ react_1.default.createElement(components_1.Image, { className: b('logo'), src: logo, alt: "", "aria-hidden": "true" })))),
25
+ react_1.default.createElement(grid_1.Col, { sizes: colSizesBody },
26
+ react_1.default.createElement(grid_1.Grid, null, items === null || items === void 0 ? void 0 : items.map((item, index) => (react_1.default.createElement(components_1.RouterLink, { href: item.url, key: index },
27
+ react_1.default.createElement(uikit_1.Link, { href: item.url, className: b('item') },
28
+ react_1.default.createElement("div", { className: b('item-wrap') },
29
+ react_1.default.createElement("h3", { className: b('item-title') }, item.title),
30
+ react_1.default.createElement("div", { className: b('item-desc') }, item.description)),
31
+ item.image && (react_1.default.createElement(components_1.Image, { className: b('item-image'), src: item.image, alt: "", "aria-hidden": "true" }))))))))))));
32
+ };
33
+ exports.AdvantagesBlock = AdvantagesBlock;
34
+ exports.default = exports.AdvantagesBlock;
@@ -0,0 +1,56 @@
1
+ export declare const AdvantagesBlock: {
2
+ 'advantages-block': {
3
+ additionalProperties: boolean;
4
+ required: boolean;
5
+ properties: {
6
+ title: {
7
+ type: string;
8
+ };
9
+ link: {
10
+ type: string;
11
+ additionalProperties: boolean;
12
+ required: boolean;
13
+ properties: {
14
+ url: {
15
+ type: string;
16
+ };
17
+ text: {
18
+ type: string;
19
+ };
20
+ };
21
+ };
22
+ logo: {
23
+ type: string;
24
+ };
25
+ items: {
26
+ type: string;
27
+ items: {
28
+ type: string;
29
+ additionalProperties: boolean;
30
+ required: boolean;
31
+ properties: {
32
+ url: {
33
+ type: string;
34
+ };
35
+ image: {
36
+ type: string;
37
+ };
38
+ title: {
39
+ type: string;
40
+ };
41
+ description: {
42
+ type: string;
43
+ };
44
+ };
45
+ };
46
+ };
47
+ animated: {
48
+ type: string;
49
+ };
50
+ type: {};
51
+ when: {
52
+ type: string;
53
+ };
54
+ };
55
+ };
56
+ };
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdvantagesBlock = void 0;
4
+ const common_1 = require("../../schema/validators/common");
5
+ exports.AdvantagesBlock = {
6
+ 'advantages-block': {
7
+ additionalProperties: false,
8
+ required: false,
9
+ properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.AnimatableProps), { title: {
10
+ type: 'string',
11
+ }, link: {
12
+ type: 'object',
13
+ additionalProperties: false,
14
+ required: true,
15
+ properties: {
16
+ url: { type: 'string' },
17
+ text: { type: 'string' },
18
+ },
19
+ }, logo: {
20
+ type: 'string',
21
+ }, items: {
22
+ type: 'array',
23
+ items: {
24
+ type: 'object',
25
+ additionalProperties: false,
26
+ required: true,
27
+ properties: {
28
+ url: { type: 'string' },
29
+ image: { type: 'string' },
30
+ title: { type: 'string' },
31
+ description: { type: 'string' },
32
+ },
33
+ },
34
+ } }),
35
+ },
36
+ };
@@ -8,6 +8,7 @@ export { default as SliderBlock } from './Slider/Slider';
8
8
  export { default as SliderNewBlock } from './SliderNew/Slider';
9
9
  export { default as ExtendedFeaturesBlock } from './ExtendedFeatures/ExtendedFeatures';
10
10
  export { default as PromoFeaturesBlock } from './PromoFeaturesBlock/PromoFeaturesBlock';
11
+ export { default as AdvantagesBlock } from './Advantages/Advantages';
11
12
  export { default as QuestionsBlock } from './Questions/Questions';
12
13
  export { default as TableBlock } from './Table/Table';
13
14
  export { default as TabsBlock } from './Tabs/Tabs';
@@ -3,7 +3,7 @@ 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.MiniCaseBlock = exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = 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.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = 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.BlogFeedBlock = exports.EventsSectionBlock = 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.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = 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
7
  var Banner_1 = require("./Banner/Banner");
8
8
  Object.defineProperty(exports, "BannerBlock", { enumerable: true, get: function () { return __importDefault(Banner_1).default; } });
9
9
  var LogoRotator_1 = require("./LogoRotator/LogoRotator");
@@ -24,6 +24,8 @@ var ExtendedFeatures_1 = require("./ExtendedFeatures/ExtendedFeatures");
24
24
  Object.defineProperty(exports, "ExtendedFeaturesBlock", { enumerable: true, get: function () { return __importDefault(ExtendedFeatures_1).default; } });
25
25
  var PromoFeaturesBlock_1 = require("./PromoFeaturesBlock/PromoFeaturesBlock");
26
26
  Object.defineProperty(exports, "PromoFeaturesBlock", { enumerable: true, get: function () { return __importDefault(PromoFeaturesBlock_1).default; } });
27
+ var Advantages_1 = require("./Advantages/Advantages");
28
+ Object.defineProperty(exports, "AdvantagesBlock", { enumerable: true, get: function () { return __importDefault(Advantages_1).default; } });
27
29
  var Questions_1 = require("./Questions/Questions");
28
30
  Object.defineProperty(exports, "QuestionsBlock", { enumerable: true, get: function () { return __importDefault(Questions_1).default; } });
29
31
  var Table_1 = require("./Table/Table");
@@ -9,6 +9,7 @@ export * from './Icons/schema';
9
9
  export * from './Info/schema';
10
10
  export * from './Media/schema';
11
11
  export * from './PromoFeaturesBlock/schema';
12
+ export * from './Advantages/schema';
12
13
  export * from './Questions/schema';
13
14
  export * from './Slider/schema';
14
15
  export * from './Table/schema';
@@ -12,6 +12,7 @@ tslib_1.__exportStar(require("./Icons/schema"), exports);
12
12
  tslib_1.__exportStar(require("./Info/schema"), exports);
13
13
  tslib_1.__exportStar(require("./Media/schema"), exports);
14
14
  tslib_1.__exportStar(require("./PromoFeaturesBlock/schema"), exports);
15
+ tslib_1.__exportStar(require("./Advantages/schema"), exports);
15
16
  tslib_1.__exportStar(require("./Questions/schema"), exports);
16
17
  tslib_1.__exportStar(require("./Slider/schema"), exports);
17
18
  tslib_1.__exportStar(require("./Table/schema"), exports);
@@ -2,6 +2,7 @@ export declare const blockMap: {
2
2
  "slider-block": (props: import("react").PropsWithChildren<import("./blocks/Slider/Slider").SliderProps>) => JSX.Element;
3
3
  "extended-features-block": ({ title, description, items, colSizes, animated, }: import("./models").ExtendedFeaturesProps) => JSX.Element;
4
4
  "promo-features-block": (props: import("./models").PromoFeaturesProps) => JSX.Element;
5
+ "advantages-block": (props: import("./models").AdvantagesBlockProps) => JSX.Element;
5
6
  "questions-block": (props: import("./models").QuestionsProps) => JSX.Element;
6
7
  "banner-block": (props: import("./models").BannerBlockProps) => JSX.Element;
7
8
  "logo-rotator-block": (props: import("./models").LogoRotatorBlockProps) => JSX.Element;
@@ -11,6 +11,7 @@ exports.blockMap = {
11
11
  [models_1.BlockType.SliderBlock]: blocks_1.SliderBlock,
12
12
  [models_1.BlockType.ExtendedFeaturesBlock]: blocks_1.ExtendedFeaturesBlock,
13
13
  [models_1.BlockType.PromoFeaturesBlock]: blocks_1.PromoFeaturesBlock,
14
+ [models_1.BlockType.AdvantagesBlock]: blocks_1.AdvantagesBlock,
14
15
  [models_1.BlockType.QuestionsBlock]: blocks_1.QuestionsBlock,
15
16
  [models_1.BlockType.BannerBlock]: blocks_1.BannerBlock,
16
17
  [models_1.BlockType.LogoRotatorBlock]: blocks_1.LogoRotatorBlock,
@@ -51,6 +51,9 @@ unpredictable css rules order in build */
51
51
  --pc-color-line-focus-light: var(--g-color-text-brand);
52
52
  --pc-color-line-focus-dark: var(--g-color-text-light-primary);
53
53
  --pc-color-progress-circular: #262626;
54
+ --pc-color-ab-base: #ffffff;
55
+ --pc-color-ab-second: #e0ff4f;
56
+ --pc-color-ab-border: #9e9e9e;
54
57
  }
55
58
  .g-root_theme_light {
56
59
  --pc-color-base-silver: #eff2f8;
@@ -6,6 +6,7 @@ import { AnalyticsEventsBase } from '../common';
6
6
  import { AnchorProps, Animatable, BackgroundImageProps, ButtonProps, CardBorder, ContentSize, ContentTextSize, ContentTheme, FileLinkProps, HeaderBreadCrumbsProps, HeaderImageSize, HeaderOffset, HeaderWidth, ImageDeviceProps, ImageProps, Justify, LegendTableMarkerType, LinkProps, MapProps, MediaDirection, MediaProps, MediaView, ReportFileType, TagProps, TextSize, TextTheme, Themable, ThemedImage, ThemedMediaProps, ThemedMediaVideoProps, TitleItemBaseProps, TitleItemProps, WithBorder, YandexFormProps } from './common';
7
7
  import { BannerCardProps, HubspotFormProps, SubBlock, SubBlockModels } from './sub-blocks';
8
8
  export declare enum BlockType {
9
+ AdvantagesBlock = "advantages-block",
9
10
  PromoFeaturesBlock = "promo-features-block",
10
11
  ExtendedFeaturesBlock = "extended-features-block",
11
12
  SliderBlock = "slider-block",
@@ -257,6 +258,17 @@ export interface LogoRotatorBlockProps extends Animatable {
257
258
  count: number;
258
259
  colSizes?: Partial<Record<GridColumnSize, number>>;
259
260
  }
261
+ export interface AdvantagesBlockProps extends Animatable {
262
+ title?: string;
263
+ link?: Pick<LinkProps, 'text' | 'url'>;
264
+ logo?: string;
265
+ items?: {
266
+ image?: string;
267
+ title: string;
268
+ description: string;
269
+ url: string;
270
+ }[];
271
+ }
260
272
  export interface CompaniesBlockProps extends Animatable {
261
273
  title: string;
262
274
  description?: string;
@@ -643,6 +655,9 @@ export type BannerBlockModel = {
643
655
  export type LogoRotatorBlockModel = {
644
656
  type: BlockType.LogoRotatorBlock;
645
657
  } & LogoRotatorBlockProps;
658
+ export type AdvantagesBlockModel = {
659
+ type: BlockType.AdvantagesBlock;
660
+ } & AdvantagesBlockProps;
646
661
  export type CompaniesBlockModel = {
647
662
  type: BlockType.CompaniesBlock;
648
663
  } & CompaniesBlockProps;
@@ -748,6 +763,6 @@ export type FormWallBlockModel = {
748
763
  export type SliderNewBlockModel = {
749
764
  type: BlockType.SliderNewBlock;
750
765
  } & SliderNewProps;
751
- type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel;
766
+ type BlockModels = SliderBlockModel | ExtendedFeaturesBlockModel | PromoFeaturesBlockModel | QuestionsBlockModel | BannerBlockModel | LogoRotatorBlockModel | AdvantagesBlockModel | CompaniesBlockModel | MediaBlockModel | MapBlockModel | InfoBlockModel | TableBlockModel | HighlightTableBlockModel | MiniCaseBlockModel | TabsBlockModel | TabsHighlightTableBlockModel | TabLinksBlockModel | HeaderBlockModel | IconsBlockModel | HeaderSliderBlockModel | CardLayoutBlockModel | ContentLayoutBlockModel | ShareBLockModel | FilterBlockModel | FilterCardLayoutBlockModel | FormBlockModel | MarqueeLinksBlockModel | SolutionsBlockModel | ServicesBlockModel | QuotesBlockModel | ReportsBlockModel | ReportsCardsBlockModel | ReportsSectionsBlockModel | LinkTableBlockModel | EventsFeedBlockModel | EventsSectionBlockModel | BlogFeedBlockModel | RelevantPostsBlockModel | RelevantReportsCardsBlockModel | RelevantReportsBlockModel | PressReleasesBlockModel | FormWallBlockModel | SliderNewBlockModel;
752
767
  export type Block = BlockModels & BlockBaseProps;
753
768
  export {};
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FormBlockDirection = exports.FormBlockDataTypes = exports.PCShareSocialNetwork = exports.HeaderStockType = exports.SliderType = exports.SliderBreakpointNames = exports.HeaderBlockTypes = exports.BlockTypes = exports.BlockType = void 0;
4
4
  var BlockType;
5
5
  (function (BlockType) {
6
+ BlockType["AdvantagesBlock"] = "advantages-block";
6
7
  BlockType["PromoFeaturesBlock"] = "promo-features-block";
7
8
  BlockType["ExtendedFeaturesBlock"] = "extended-features-block";
8
9
  BlockType["SliderBlock"] = "slider-block";
@@ -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({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), 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.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.EventsSectionBlock), blocks_1.BlogFeedBlock), 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({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.AdvantagesBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), 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.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.EventsSectionBlock), blocks_1.BlogFeedBlock), 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({}, 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.FeedCard), sub_blocks_1.EventPersonCard), sub_blocks_1.AttachmentCard), sub_blocks_1.CaseStudyCard);
8
8
  exports.constructorBlockSchemaNames = [
9
9
  'divider',
@@ -53,6 +53,7 @@ exports.constructorBlockSchemaNames = [
53
53
  'relevant-reports-block',
54
54
  'press-releases-block',
55
55
  'mini-case-block',
56
+ 'advantages-block',
56
57
  ];
57
58
  exports.constructorCardSchemaNames = [
58
59
  'media-card',
@@ -2,6 +2,7 @@ export * from '../../blocks/Banner/schema';
2
2
  export * from '../../blocks/Companies/schema';
3
3
  export * from '../../blocks/ExtendedFeatures/schema';
4
4
  export * from '../../blocks/PromoFeaturesBlock/schema';
5
+ export * from '../../blocks/Advantages/schema';
5
6
  export * from '../../blocks/Header/schema';
6
7
  export * from '../../blocks/Info/schema';
7
8
  export * from '../../blocks/Media/schema';
@@ -5,6 +5,7 @@ tslib_1.__exportStar(require("../../blocks/Banner/schema"), exports);
5
5
  tslib_1.__exportStar(require("../../blocks/Companies/schema"), exports);
6
6
  tslib_1.__exportStar(require("../../blocks/ExtendedFeatures/schema"), exports);
7
7
  tslib_1.__exportStar(require("../../blocks/PromoFeaturesBlock/schema"), exports);
8
+ tslib_1.__exportStar(require("../../blocks/Advantages/schema"), exports);
8
9
  tslib_1.__exportStar(require("../../blocks/Header/schema"), exports);
9
10
  tslib_1.__exportStar(require("../../blocks/Info/schema"), exports);
10
11
  tslib_1.__exportStar(require("../../blocks/Media/schema"), exports);
@@ -465,4 +465,8 @@ exports.config = {
465
465
  },
466
466
  ],
467
467
  [models_1.BlockType.MiniCaseBlock]: exports.blockHeaderTransformer,
468
+ [models_1.BlockType.AdvantagesBlock]: {
469
+ fields: ['title'],
470
+ transformer: common_1.yfmTransformer,
471
+ },
468
472
  };
@@ -0,0 +1,132 @@
1
+ .pc-advantages-block__item-desc, .pc-advantages-block__item-title, .pc-advantages-block__link, .pc-advantages-block__title {
2
+ margin: 0;
3
+ }
4
+
5
+ /* use this for style redefinitions to awoid problems with
6
+ unpredictable css rules order in build */
7
+ @media (min-width: 769px) {
8
+ .pc-advantages-block.pc-AnimateBlock, .pc-AnimateBlock .pc-advantages-block {
9
+ position: relative;
10
+ top: 100px;
11
+ opacity: 0;
12
+ }
13
+ .pc-advantages-block.pc-AnimateBlock.animate, .pc-AnimateBlock .pc-advantages-block.animate {
14
+ top: 0;
15
+ opacity: 1;
16
+ transition: top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
17
+ transition-delay: 0s;
18
+ }
19
+ }
20
+ .pc-advantages-block__header {
21
+ flex: 1;
22
+ display: flex;
23
+ flex-direction: column;
24
+ }
25
+ .pc-advantages-block__header.pc-advantages-block__header {
26
+ padding-top: 32px;
27
+ padding-bottom: 32px;
28
+ }
29
+
30
+ .pc-advantages-block__title {
31
+ font-weight: var(--g-text-accent-font-weight);
32
+ font-size: 48px;
33
+ line-height: 52px;
34
+ color: var(--pc-color-ab-base);
35
+ }
36
+ .pc-advantages-block__title p {
37
+ margin: 0;
38
+ }
39
+ @media (max-width: 577px) {
40
+ .pc-advantages-block__title {
41
+ font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
42
+ line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
43
+ }
44
+ }
45
+ .pc-advantages-block__link {
46
+ font-weight: var(--g-text-accent-font-weight);
47
+ font-size: 48px;
48
+ line-height: 52px;
49
+ transition: color 0.3s ease;
50
+ color: var(--pc-color-ab-second);
51
+ margin-bottom: 32px;
52
+ }
53
+ @media (hover: hover) and (pointer: fine) {
54
+ .pc-advantages-block__link:hover {
55
+ color: var(--pc-color-ab-base);
56
+ }
57
+ }
58
+ @media (max-width: 577px) {
59
+ .pc-advantages-block__link {
60
+ font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
61
+ line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
62
+ }
63
+ }
64
+ .pc-advantages-block__wrap-logo {
65
+ margin-top: auto;
66
+ }
67
+ .pc-advantages-block__logo {
68
+ display: block;
69
+ object-fit: contain;
70
+ height: 76px;
71
+ }
72
+ .pc-advantages-block__item {
73
+ display: flex;
74
+ margin-left: 0;
75
+ margin-bottom: 16px;
76
+ border-left: none;
77
+ border-right: none;
78
+ border-top: 1px var(--pc-color-ab-border) solid;
79
+ transition: opacity 0.3s ease;
80
+ }
81
+ @media (hover: hover) and (pointer: fine) {
82
+ .pc-advantages-block__item:hover {
83
+ opacity: 0.5;
84
+ }
85
+ }
86
+ .pc-advantages-block__item-wrap {
87
+ padding: 32px 0;
88
+ }
89
+ .pc-advantages-block__item-image {
90
+ width: 230px;
91
+ height: 230px;
92
+ display: block;
93
+ margin-left: 32px;
94
+ }
95
+ .pc-advantages-block__item-title {
96
+ font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
97
+ line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
98
+ color: var(--pc-text-header-color);
99
+ font-weight: var(--g-text-accent-font-weight);
100
+ color: var(--pc-color-ab-second);
101
+ margin-bottom: 8px;
102
+ }
103
+ .pc-advantages-block__item-desc {
104
+ font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
105
+ line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
106
+ color: var(--pc-text-header-color);
107
+ font-weight: var(--g-text-accent-font-weight);
108
+ color: var(--pc-color-ab-base);
109
+ opacity: 0.6;
110
+ }
111
+ @media (min-width: 1185px) {
112
+ .pc-advantages-block__item {
113
+ border-left: 1px var(--pc-color-ab-border) solid;
114
+ border-right: 1px var(--pc-color-ab-border) solid;
115
+ margin-left: 8px;
116
+ margin-bottom: 0;
117
+ }
118
+ .pc-advantages-block__item + .pc-advantages-block__item {
119
+ border-top: 1px var(--pc-color-ab-border) solid;
120
+ }
121
+ .pc-advantages-block__item-wrap {
122
+ padding: 32px;
123
+ }
124
+ }
125
+ @media (max-width: 769px) {
126
+ .pc-advantages-block__item {
127
+ flex-direction: column;
128
+ }
129
+ .pc-advantages-block__item-wrap {
130
+ padding: 16px 0;
131
+ }
132
+ }
@@ -0,0 +1,4 @@
1
+ import { AdvantagesBlockProps } from '../../models';
2
+ import './Advantages.css';
3
+ export declare const AdvantagesBlock: (props: AdvantagesBlockProps) => JSX.Element;
4
+ export default AdvantagesBlock;
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { Link } from '@gravity-ui/uikit';
3
+ import { HTML, Image, RouterLink } from '../../components';
4
+ import AnimateBlock from '../../components/AnimateBlock/AnimateBlock';
5
+ import { Col, Grid, Row } from '../../grid';
6
+ import { block } from '../../utils';
7
+ import './Advantages.css';
8
+ const b = block('advantages-block');
9
+ const colSizesHeader = { all: 12, xl: 6 };
10
+ const colSizesBody = { all: 12, xl: 6 };
11
+ export const AdvantagesBlock = (props) => {
12
+ const { animated, title, link, logo, items } = props;
13
+ return (React.createElement(AnimateBlock, { className: b(), animate: animated },
14
+ React.createElement(Grid, null,
15
+ React.createElement(Row, null,
16
+ React.createElement(Col, { sizes: colSizesHeader, className: b('header') },
17
+ title && (React.createElement("h2", { className: b('title') },
18
+ React.createElement(HTML, null, title))),
19
+ link && (React.createElement(Link, { className: b('link'), href: link.url }, link.text)),
20
+ logo && (React.createElement("div", { className: b('wrap-logo') },
21
+ React.createElement(Image, { className: b('logo'), src: logo, alt: "", "aria-hidden": "true" })))),
22
+ React.createElement(Col, { sizes: colSizesBody },
23
+ React.createElement(Grid, null, items === null || items === void 0 ? void 0 : items.map((item, index) => (React.createElement(RouterLink, { href: item.url, key: index },
24
+ React.createElement(Link, { href: item.url, className: b('item') },
25
+ React.createElement("div", { className: b('item-wrap') },
26
+ React.createElement("h3", { className: b('item-title') }, item.title),
27
+ React.createElement("div", { className: b('item-desc') }, item.description)),
28
+ item.image && (React.createElement(Image, { className: b('item-image'), src: item.image, alt: "", "aria-hidden": "true" }))))))))))));
29
+ };
30
+ export default AdvantagesBlock;