@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.
- package/build/cjs/blocks/Advantages/Advantages.css +132 -0
- package/build/cjs/blocks/Advantages/Advantages.d.ts +3 -0
- package/build/cjs/blocks/Advantages/Advantages.js +34 -0
- package/build/cjs/blocks/Advantages/schema.d.ts +56 -0
- package/build/cjs/blocks/Advantages/schema.js +36 -0
- package/build/cjs/blocks/index.d.ts +1 -0
- package/build/cjs/blocks/index.js +3 -1
- package/build/cjs/blocks/validators.d.ts +1 -0
- package/build/cjs/blocks/validators.js +1 -0
- package/build/cjs/constructor-items.d.ts +1 -0
- package/build/cjs/constructor-items.js +1 -0
- package/build/cjs/containers/PageConstructor/PageConstructor.css +3 -0
- package/build/cjs/models/constructor-items/blocks.d.ts +16 -1
- package/build/cjs/models/constructor-items/blocks.js +1 -0
- package/build/cjs/schema/constants.js +2 -1
- package/build/cjs/schema/validators/blocks.d.ts +1 -0
- package/build/cjs/schema/validators/blocks.js +1 -0
- package/build/cjs/text-transform/config.js +4 -0
- package/build/esm/blocks/Advantages/Advantages.css +132 -0
- package/build/esm/blocks/Advantages/Advantages.d.ts +4 -0
- package/build/esm/blocks/Advantages/Advantages.js +30 -0
- package/build/esm/blocks/Advantages/schema.d.ts +56 -0
- package/build/esm/blocks/Advantages/schema.js +33 -0
- package/build/esm/blocks/index.d.ts +1 -0
- package/build/esm/blocks/index.js +1 -0
- package/build/esm/blocks/validators.d.ts +1 -0
- package/build/esm/blocks/validators.js +1 -0
- package/build/esm/constructor-items.d.ts +1 -0
- package/build/esm/constructor-items.js +2 -1
- package/build/esm/containers/PageConstructor/PageConstructor.css +3 -0
- package/build/esm/models/constructor-items/blocks.d.ts +16 -1
- package/build/esm/models/constructor-items/blocks.js +1 -0
- package/build/esm/schema/constants.js +3 -2
- package/build/esm/schema/validators/blocks.d.ts +1 -0
- package/build/esm/schema/validators/blocks.js +1 -0
- package/build/esm/text-transform/config.js +4 -0
- package/package.json +1 -1
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +16 -1
- package/server/models/constructor-items/blocks.js +1 -0
- package/server/text-transform/config.js +4 -0
- package/styles/mixins.scss +8 -0
- package/styles/root.scss +4 -0
- package/styles/styles.css +3 -0
- 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,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);
|
|
@@ -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,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;
|