@doyourjob/gravity-ui-page-constructor-addons 2.1.30 → 2.1.31

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 (31) hide show
  1. package/build/cjs/components/NewHeader/components/NHCompanyPopup/NHCompanyPopup.js +1 -3
  2. package/build/cjs/components/NewHeader/components/NHInvestorPopup/NHInvestorPopup.js +1 -1
  3. package/build/cjs/components/NewHeader/components/NHLoginButton/NHLoginButton.css +1 -1
  4. package/build/cjs/components/NewHeader/components/NHMediumPopup/NHMediumPopup.js +1 -5
  5. package/build/cjs/components/NewHeader/components/NHPopupItem/ArrowRight.d.ts +2 -0
  6. package/build/cjs/components/NewHeader/components/NHPopupItem/ArrowRight.js +8 -0
  7. package/build/cjs/components/NewHeader/components/NHPopupItem/NHPopupItem.css +38 -59
  8. package/build/cjs/components/NewHeader/components/NHPopupItem/NHPopupItem.d.ts +1 -5
  9. package/build/cjs/components/NewHeader/components/NHPopupItem/NHPopupItem.js +12 -17
  10. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +55 -60
  11. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.d.ts +1 -1
  12. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.js +27 -49
  13. package/build/cjs/components/NewHeader/components/NHSolutionsPopup/NHSolutionsPopup.js +1 -4
  14. package/build/cjs/components/NewHeader/components/NHWhyPopup/NHWhyPopup.js +1 -1
  15. package/build/cjs/components/NewHeader/models.d.ts +19 -10
  16. package/build/esm/components/NewHeader/components/NHCompanyPopup/NHCompanyPopup.js +1 -3
  17. package/build/esm/components/NewHeader/components/NHInvestorPopup/NHInvestorPopup.js +2 -2
  18. package/build/esm/components/NewHeader/components/NHLoginButton/NHLoginButton.css +1 -1
  19. package/build/esm/components/NewHeader/components/NHMediumPopup/NHMediumPopup.js +2 -6
  20. package/build/esm/components/NewHeader/components/NHPopupItem/ArrowRight.d.ts +2 -0
  21. package/build/esm/components/NewHeader/components/NHPopupItem/ArrowRight.js +3 -0
  22. package/build/esm/components/NewHeader/components/NHPopupItem/NHPopupItem.css +38 -59
  23. package/build/esm/components/NewHeader/components/NHPopupItem/NHPopupItem.d.ts +1 -5
  24. package/build/esm/components/NewHeader/components/NHPopupItem/NHPopupItem.js +13 -18
  25. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +55 -60
  26. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.d.ts +1 -1
  27. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.js +28 -50
  28. package/build/esm/components/NewHeader/components/NHSolutionsPopup/NHSolutionsPopup.js +2 -5
  29. package/build/esm/components/NewHeader/components/NHWhyPopup/NHWhyPopup.js +2 -2
  30. package/build/esm/components/NewHeader/models.d.ts +19 -10
  31. package/package.json +1 -1
@@ -14,7 +14,5 @@ const NHCompanyPopup = ({ sections }) => (react_1.default.createElement(gravity_
14
14
  react_1.default.createElement(gravity_ui_page_constructor_1.Row, null,
15
15
  react_1.default.createElement(gravity_ui_page_constructor_1.Col, null,
16
16
  react_1.default.createElement("div", { className: b('title') }, section.title))),
17
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, section.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title, hover: true }, item, { sizes: index === 0
18
- ? { [gravity_ui_page_constructor_1.GridColumnSize.All]: 12 }
19
- : { [gravity_ui_page_constructor_1.GridColumnSize.All]: 12, [gravity_ui_page_constructor_1.GridColumnSize.Md]: 6 } })))))))))));
17
+ react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, section.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title, hover: true }, item)))))))))));
20
18
  exports.NHCompanyPopup = NHCompanyPopup;
@@ -13,7 +13,7 @@ const NHInvestorPopup = ({ title, subtitle, url, items, stock }) => (react_1.def
13
13
  react_1.default.createElement(gravity_ui_page_constructor_1.Col, null,
14
14
  react_1.default.createElement("a", Object.assign({ href: url, className: b('title') }, (0, gravity_ui_page_constructor_1.getLinkProps)(url)), title),
15
15
  react_1.default.createElement("div", { className: b('subtitle') }, subtitle))),
16
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title, hover: true }, item, { sizes: { [gravity_ui_page_constructor_1.GridColumnSize.All]: 12, [gravity_ui_page_constructor_1.GridColumnSize.Md]: 6 } })))))),
16
+ react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title, hover: true }, item)))))),
17
17
  stock && (react_1.default.createElement("div", { className: b('card') },
18
18
  react_1.default.createElement("div", { className: b('card-title') }, stock.title),
19
19
  react_1.default.createElement("div", { className: b('card-wrap') },
@@ -8,7 +8,7 @@ unpredictable css rules order in build */
8
8
  padding: 0 8px 0 12px;
9
9
  background: var(--g-color-base-brand);
10
10
  color: var(--g-color-text-brand-contrast);
11
- border-radius: var(--g-button-border-radius, 8px);
11
+ border-radius: 24px;
12
12
  font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
13
13
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
14
14
  font-weight: 500;
@@ -9,9 +9,5 @@ const NHPopupItem_1 = require("../NHPopupItem/NHPopupItem");
9
9
  const b = (0, cn_1.block)('nh-medium-popup');
10
10
  const NHMediumPopup = ({ groups }) => (react_1.default.createElement(gravity_ui_page_constructor_1.Grid, null,
11
11
  react_1.default.createElement(gravity_ui_page_constructor_1.Row, null,
12
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b() }, groups.map((dataItem) => dataItem.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({}, item, { key: item.title, hover: true, imageSize: dataItem.imageSize, sizes: {
13
- [gravity_ui_page_constructor_1.GridColumnSize.Xl]: 3,
14
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 4,
15
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
16
- } })))))))));
12
+ react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b() }, groups.map((dataItem) => dataItem.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({}, item, { key: item.title, hover: true })))))))));
17
13
  exports.NHMediumPopup = NHMediumPopup;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ArrowRight: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrowRight = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const ArrowRight = (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", "aria-hidden": "true" }, props),
7
+ react_1.default.createElement("path", { xmlns: "http://www.w3.org/2000/svg", d: "M3.00073 8.49151L3.00024 6.96175L10.6817 6.96059L7.76622 4.04513L8.82439 3.00146L13.5493 7.72639L8.8238 12.4519L7.76495 11.3931L10.6822 8.49035L3.00073 8.49151Z", fill: "currentColor" })));
8
+ exports.ArrowRight = ArrowRight;
@@ -1,75 +1,64 @@
1
1
  /* use this for style redefinitions to awoid problems with
2
2
  unpredictable css rules order in build */
3
3
  .pc-addons-nh-navigation-popup-item {
4
- font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
5
- line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
6
- margin-bottom: 2px;
7
- }
8
-
9
- .pc-addons-nh-navigation-popup-item__content {
10
- outline: none;
11
4
  color: inherit;
12
5
  text-decoration: none;
13
6
  display: flex;
7
+ align-items: flex-start;
14
8
  border-radius: var(--g-border-radius-xl);
15
9
  height: 100%;
10
+ gap: 16px;
16
11
  }
17
12
 
18
- .utilityfocus .pc-addons-nh-navigation-popup-item__content:focus {
19
- outline: 2px solid #ffdb4d;
20
- }
21
-
22
- .pc-addons-nh-navigation-popup-item__content:focus {
23
- outline: 2px solid var(--g-color-line-focus);
24
- outline-offset: -2px;
13
+ .pc-addons-nh-navigation-popup-item_column {
14
+ flex-direction: column;
25
15
  }
26
16
 
27
- .pc-addons-nh-navigation-popup-item__content:focus:not(:focus-visible) {
28
- outline: 0;
17
+ .pc-addons-nh-navigation-popup-item_column .pc-addons-nh-navigation-popup-item__image {
18
+ width: auto;
19
+ max-width: 100%;
20
+ height: 30px;
29
21
  }
30
22
 
31
- .pc-addons-nh-navigation-popup-item__content_padding_default {
32
- padding: 12px;
23
+ .pc-addons-nh-navigation-popup-item_column .pc-addons-nh-navigation-popup-item__image-container {
24
+ padding: 0;
25
+ border-radius: 0;
26
+ border: none;
33
27
  }
34
28
 
35
- .pc-addons-nh-navigation-popup-item__content_padding_s {
36
- padding: 6px 12px;
29
+ .pc-addons-nh-navigation-popup-item:hover .pc-addons-nh-navigation-popup-item__description, .pc-addons-nh-navigation-popup-item:active .pc-addons-nh-navigation-popup-item__description {
30
+ color: var(--g-color-text-primary);
37
31
  }
38
32
 
39
- .pc-addons-nh-navigation-popup-item__content_hover:hover, .pc-addons-nh-navigation-popup-item__content_hover:active {
40
- color: inherit;
33
+ .pc-addons-nh-navigation-popup-item:hover .pc-addons-nh-navigation-popup-item__image-container, .pc-addons-nh-navigation-popup-item:active .pc-addons-nh-navigation-popup-item__image-container {
34
+ background: var(--nh-popup-item-color-hover);
41
35
  }
42
36
 
43
- .pc-addons-nh-navigation-popup-item__content_hover:hover {
44
- background-color: var(--g-color-base-simple-hover);
37
+ .pc-addons-nh-navigation-popup-item:hover .pc-addons-nh-navigation-popup-item__title > svg, .pc-addons-nh-navigation-popup-item:active .pc-addons-nh-navigation-popup-item__title > svg {
38
+ display: inline-block;
45
39
  }
46
40
 
47
- .pc-addons-nh-navigation-popup-item__content_disable {
41
+ .pc-addons-nh-navigation-popup-item_disable {
48
42
  pointer-events: none;
49
43
  }
50
44
 
51
- .pc-addons-nh-navigation-popup-item__icon {
52
- color: var(--g-color-base-brand);
53
- }
54
-
55
- .pc-addons-nh-navigation-popup-item__icon-container {
56
- position: absolute;
57
- width: 20px;
58
- height: 20px;
59
- display: flex;
60
- justify-content: center;
61
- align-items: center;
45
+ .pc-addons-nh-navigation-popup-item__title {
46
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
47
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
48
+ font-weight: 600;
49
+ color: var(--g-color-text-primary);
62
50
  }
63
51
 
64
- .pc-addons-nh-navigation-popup-item__container_with-margin {
65
- margin-left: 28px;
52
+ .pc-addons-nh-navigation-popup-item__title > svg {
53
+ display: none;
54
+ vertical-align: sub;
66
55
  }
67
56
 
68
57
  .pc-addons-nh-navigation-popup-item__description {
69
58
  font-size: var(--g-text-body-1-font-size, var(--pc-text-body-1-font-size));
70
59
  line-height: var(--g-text-body-1-line-height, var(--pc-text-body-1-line-height));
71
60
  display: block;
72
- margin-top: 2px;
61
+ margin-top: 1px;
73
62
  color: var(--g-color-text-secondary);
74
63
  }
75
64
 
@@ -80,28 +69,18 @@ unpredictable css rules order in build */
80
69
 
81
70
  .pc-addons-nh-navigation-popup-item__image {
82
71
  display: block;
83
- position: relative;
84
- top: 2px;
85
- }
86
-
87
- .pc-addons-nh-navigation-popup-item__image_size_m {
88
- width: 18px;
89
- height: 18px;
72
+ width: 24px;
73
+ height: 24px;
90
74
  }
91
75
 
92
- .pc-addons-nh-navigation-popup-item__image_size_xm {
93
- width: 16px;
94
- height: 16px;
95
- }
96
-
97
- .pc-addons-nh-navigation-popup-item__image_size_s {
98
- width: 14px;
99
- height: 14px;
76
+ .pc-addons-nh-navigation-popup-item__image-container {
77
+ padding: 8px;
78
+ border-radius: 8px;
79
+ background: var(--nh-popup-item-color);
100
80
  }
101
81
 
102
- .pc-addons-nh-navigation-popup-item__image-container {
103
- display: flex;
104
- justify-content: center;
105
- min-width: 20px;
106
- margin-right: 8px;
82
+ .pc-addons-nh-navigation-popup-item__image-container_no-bg {
83
+ border: 1px solid var(--g-color-line-generic-solid);
84
+ padding: 7px;
85
+ background: transparent;
107
86
  }
@@ -1,12 +1,8 @@
1
1
  import React from 'react';
2
- import type { GridColumnSizesType } from '@doyourjob/gravity-ui-page-constructor';
3
2
  import { NHPopupItemData } from '../../models';
4
3
  export interface NHPopupItemProps extends Partial<NHPopupItemData> {
5
4
  hover?: boolean;
6
- sizes?: GridColumnSizesType;
7
- className?: string;
8
- padding?: 'default' | 's';
9
- imageSize?: 's' | 'xm' | 'm';
5
+ column?: boolean;
10
6
  target?: string;
11
7
  }
12
8
  export declare const NHPopupItem: (props: NHPopupItemProps) => React.JSX.Element;
@@ -2,27 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NHPopupItem = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
6
  const gravity_ui_page_constructor_1 = require("@doyourjob/gravity-ui-page-constructor");
7
7
  const uikit_1 = require("@gravity-ui/uikit");
8
8
  const cn_1 = require("../../../../utils/cn");
9
- const constants_1 = require("../../constants");
10
- const NHTag_1 = require("../NHTag/NHTag");
9
+ const ArrowRight_1 = require("./ArrowRight");
11
10
  const b = (0, cn_1.block)('nh-navigation-popup-item');
12
11
  const NHPopupItem = (props) => {
13
- const { icon, url, target, title, tag, description, image, imageSize = 'm', hover, className, sizes = constants_1.DefaultCategorizedItemSizes, padding = 'default', } = props;
14
- const navigationTag = tag && react_1.default.createElement(NHTag_1.NHNavigationTag, Object.assign({ className: b('tag'), size: "s" }, tag));
15
- return (react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b(null, className), sizes: sizes },
16
- react_1.default.createElement("a", Object.assign({ className: b('content', { hover, padding, disable: !url }), href: url }, (0, gravity_ui_page_constructor_1.getLinkProps)(url || '', undefined, target)),
17
- icon && (react_1.default.createElement("div", { className: b('icon-container') },
18
- react_1.default.createElement(uikit_1.Icon, { className: b('icon'), data: icon, size: 16 }))),
19
- image && (react_1.default.createElement("div", { className: b('image-container') },
20
- react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('image', { size: imageSize }), src: image }))),
21
- react_1.default.createElement("div", { className: b('container', { 'with-margin': Boolean(icon) }) },
22
- react_1.default.createElement("div", { className: b('title-tag-wrapper') },
23
- react_1.default.createElement("span", { className: b('title') }, title),
24
- "\u00A0",
25
- navigationTag),
26
- description && react_1.default.createElement(gravity_ui_page_constructor_1.HTML, { className: b('description') }, description)))));
12
+ const { url, target, title, description, image, imageColor, imageColorHover, column } = props;
13
+ const styleImageContainer = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, (imageColor ? { '--nh-popup-item-color': imageColor } : {})), (imageColorHover ? { '--nh-popup-item-color-hover': imageColorHover } : {}))), [imageColor, imageColorHover]);
14
+ return (react_1.default.createElement("a", Object.assign({ className: b({ disable: !url, column }), href: url }, (0, gravity_ui_page_constructor_1.getLinkProps)(url || '', undefined, target)),
15
+ image && (react_1.default.createElement("div", { className: b('image-container', { 'no-bg': !imageColor }), style: styleImageContainer },
16
+ react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('image'), src: image }))),
17
+ react_1.default.createElement("div", { className: b('container') },
18
+ react_1.default.createElement("div", { className: b('title') },
19
+ title,
20
+ react_1.default.createElement(uikit_1.Icon, { data: ArrowRight_1.ArrowRight, size: 16 })),
21
+ description && react_1.default.createElement(gravity_ui_page_constructor_1.HTML, { className: b('description') }, description))));
27
22
  };
28
23
  exports.NHPopupItem = NHPopupItem;
@@ -14,111 +14,106 @@ unpredictable css rules order in build */
14
14
  display: none;
15
15
  }
16
16
 
17
- .pc-addons-nh-products-popup__container {
18
- padding: 0;
19
- }
20
-
21
17
  .pc-addons-nh-products-popup > div + div {
22
18
  border-top: 1px solid #e4ebf0;
23
19
  }
24
20
 
25
- .pc-addons-nh-products-popup__wrap {
26
- padding: 24px;
27
- gap: 24px;
21
+ .pc-addons-nh-products-popup__section {
22
+ display: flex;
23
+ padding: 24px 32px;
24
+ }
25
+
26
+ .pc-addons-nh-products-popup__section-head {
28
27
  display: flex;
29
28
  flex-direction: column;
29
+ width: 200px;
30
+ padding-right: 32px;
31
+ flex-shrink: 0;
32
+ gap: 2px;
30
33
  }
31
34
 
32
35
  .pc-addons-nh-products-popup__title {
33
- font-size: var(--g-text-header-1-font-size, var(--pc-text-header-1-font-size));
34
- line-height: var(--g-text-header-1-line-height, var(--pc-text-header-1-line-height));
35
- padding: 24px;
36
- max-width: 108px;
37
- font-weight: 600;
38
- background-color: #e0e0e0;
36
+ font-size: var(--g-text-body-3-font-size, var(--pc-text-body-3-font-size));
37
+ line-height: var(--g-text-body-3-line-height, var(--pc-text-body-3-line-height));
38
+ color: var(--g-color-text-primary);
39
+ font-weight: 500;
39
40
  }
40
41
 
41
42
  .pc-addons-nh-products-popup__subtitle {
42
- font-size: var(--g-text-header-1-font-size, var(--pc-text-header-1-font-size));
43
- line-height: var(--g-text-header-1-line-height, var(--pc-text-header-1-line-height));
44
- font-weight: 700;
45
- color: #e0e0e0;
43
+ font-size: var(--g-text-body-1-font-size, var(--pc-text-body-1-font-size));
44
+ line-height: var(--g-text-body-1-line-height, var(--pc-text-body-1-line-height));
45
+ color: var(--g-color-text-secondary);
46
46
  }
47
47
 
48
- .pc-addons-nh-products-popup__powered-card {
49
- color: inherit;
50
- text-decoration: none;
51
- font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
52
- line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
53
- font-weight: 500;
54
- background-color: #f2f6f9;
55
- border-radius: 16px;
56
- padding: 16px;
57
- display: flex;
58
- gap: 24px;
48
+ .pc-addons-nh-products-popup__wrap, .pc-addons-nh-products-popup__wrap-scale {
49
+ display: grid;
50
+ gap: 24px 40px;
51
+ align-items: flex-start;
59
52
  }
60
53
 
61
- .pc-addons-nh-products-popup__powered-card-wrap {
62
- display: flex;
63
- flex-direction: column;
64
- justify-content: center;
65
- flex: 1;
66
- gap: 20px;
54
+ .pc-addons-nh-products-popup__wrap {
55
+ grid-template-columns: 1fr 1fr 1fr;
67
56
  }
68
57
 
69
- .pc-addons-nh-products-popup__powered-card-description {
70
- color: #9fb1bd;
58
+ .pc-addons-nh-products-popup__wrap-scale {
59
+ grid-template-columns: repeat(12, 1fr);
71
60
  }
72
61
 
73
- .pc-addons-nh-products-popup__powered-card-container-image {
74
- flex: 1;
75
- max-width: 140px;
62
+ .pc-addons-nh-products-popup__wrap-scale > a {
63
+ grid-column: span 4;
64
+ grid-row: 1;
76
65
  }
77
66
 
78
- .pc-addons-nh-products-popup__powered-card-image {
79
- width: 100%;
80
- aspect-ratio: 1;
67
+ .pc-addons-nh-products-popup__wrap-scale > .pc-addons-nh-products-popup__wrap:empty {
68
+ display: none;
81
69
  }
82
70
 
83
- .pc-addons-nh-products-popup__powered-card:hover {
84
- background-color: var(--g-color-base-simple-hover);
71
+ .pc-addons-nh-products-popup__wrap-scale > a + .pc-addons-nh-products-popup__wrap {
72
+ grid-column: span 8;
85
73
  }
86
74
 
87
- .pc-addons-nh-products-popup__run-card {
75
+ .pc-addons-nh-products-popup__wrap-scale > .pc-addons-nh-products-popup__wrap:last-child {
76
+ grid-column: span 12;
77
+ }
78
+
79
+ .pc-addons-nh-products-popup__banner {
88
80
  color: inherit;
89
81
  text-decoration: none;
90
- font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
91
- line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
82
+ grid-area: 1/3/3/4;
92
83
  font-weight: 500;
93
84
  border-radius: 16px;
94
- background-color: #f2f6f9;
95
85
  padding: 16px;
96
86
  display: flex;
97
- flex-direction: column;
98
87
  gap: 20px;
99
- height: 100%;
88
+ background: var(--nh-products-banner-background, transparent);
100
89
  }
101
90
 
102
- .pc-addons-nh-products-popup__run-card_border {
103
- border: 1px solid #e4ebf0;
104
- background-color: transparent;
91
+ .pc-addons-nh-products-popup__banner_border {
92
+ border: 1px solid var(--g-color-line-generic-solid);
105
93
  }
106
94
 
107
- .pc-addons-nh-products-popup__run-card-wrap {
95
+ .pc-addons-nh-products-popup__banner-wrap {
108
96
  display: flex;
109
97
  flex-direction: column;
110
98
  flex: 1;
111
99
  gap: 4px;
112
100
  }
113
101
 
114
- .pc-addons-nh-products-popup__run-card-description {
115
- color: #9fb1bd;
102
+ .pc-addons-nh-products-popup__banner-title {
103
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
104
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
105
+ color: var(--nh-products-banner-color, var(--g-color-text-primary));
106
+ font-weight: 600;
116
107
  }
117
108
 
118
- .pc-addons-nh-products-popup__run-card-image {
119
- height: 40px;
109
+ .pc-addons-nh-products-popup__banner-description {
110
+ font-size: var(--g-text-body-1-font-size, var(--pc-text-body-1-font-size));
111
+ line-height: var(--g-text-body-1-line-height, var(--pc-text-body-1-line-height));
112
+ color: var(--nh-products-banner-color, var(--g-color-text-secondary));
120
113
  }
121
114
 
122
- .pc-addons-nh-products-popup__run-card:hover {
123
- background-color: var(--g-color-base-simple-hover);
115
+ .pc-addons-nh-products-popup__banner-image {
116
+ display: block;
117
+ width: 86px;
118
+ aspect-ratio: 1;
124
119
  }
@@ -1,3 +1,3 @@
1
1
  import React from 'react';
2
2
  import { NHProductsPopupData } from '../../models';
3
- export declare const NHProductsPopup: ({ sections, poweredCard }: NHProductsPopupData) => React.JSX.Element;
3
+ export declare const NHProductsPopup: ({ sections, primaryColor, primaryColorHover, }: NHProductsPopupData) => React.JSX.Element;
@@ -2,64 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NHProductsPopup = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = tslib_1.__importDefault(require("react"));
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
6
  const gravity_ui_page_constructor_1 = require("@doyourjob/gravity-ui-page-constructor");
7
7
  const cn_1 = require("../../../../utils/cn");
8
8
  const NHPopupItem_1 = require("../NHPopupItem/NHPopupItem");
9
9
  const b = (0, cn_1.block)('nh-products-popup');
10
- const PoweredCard = ({ title, description, image, url }) => {
11
- return (react_1.default.createElement("a", Object.assign({ href: url, className: b('powered-card') }, (0, gravity_ui_page_constructor_1.getLinkProps)(url)),
12
- react_1.default.createElement("div", { className: b('powered-card-wrap') },
13
- react_1.default.createElement("div", { className: b('powered-card-title') }, title),
14
- react_1.default.createElement("div", { className: b('powered-card-description') }, description)),
15
- react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('powered-card-image'), containerClassName: b('powered-card-container-image'), src: image })));
10
+ const NHBanner = ({ title, description, image, url, background, color, border, }) => {
11
+ const styles = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, (background ? { '--nh-products-banner-background': background } : {})), (color ? { '--nh-products-banner-color': color } : {}))), [background, color]);
12
+ return (react_1.default.createElement("a", Object.assign({ href: url, className: b('banner', { border }), style: styles }, (0, gravity_ui_page_constructor_1.getLinkProps)(url)),
13
+ react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('banner-image'), src: image }),
14
+ react_1.default.createElement("div", { className: b('banner-wrap') },
15
+ react_1.default.createElement("div", { className: b('banner-title') }, title),
16
+ react_1.default.createElement("div", { className: b('banner-description') }, description))));
16
17
  };
17
- const RunCard = ({ title, description, image, border, url }) => {
18
- return (react_1.default.createElement("a", Object.assign({ href: url, className: b('run-card', { border: border }) }, (0, gravity_ui_page_constructor_1.getLinkProps)(url)),
19
- react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('run-card-image'), src: image }),
20
- react_1.default.createElement("div", { className: b('run-card-wrap') },
21
- react_1.default.createElement("div", { className: b('run-card-title') }, title),
22
- react_1.default.createElement("div", { className: b('run-card-description') }, description))));
23
- };
24
- const NHProductsPopup = ({ sections, poweredCard }) => (react_1.default.createElement(gravity_ui_page_constructor_1.Grid, { className: b(), containerClass: b('container') }, sections.map((section, index) => {
25
- var _a, _b, _c;
26
- const isScaleSection = index === 2; // "Scale" section is usually the 3rd one
27
- const isRunSection = section.runCards && section.runCards.length > 0;
18
+ const NHProductsPopup = ({ sections, primaryColor, primaryColorHover, }) => (react_1.default.createElement("div", { className: b() }, sections.map((section) => {
19
+ var _a, _b, _c, _d, _e;
28
20
  let content;
29
- if (isRunSection) {
30
- content = (react_1.default.createElement(gravity_ui_page_constructor_1.Col, null,
31
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, (_a = section.runCards) === null || _a === void 0 ? void 0 : _a.map((card, cardIndex) => (react_1.default.createElement(gravity_ui_page_constructor_1.Col, { key: `${card.title}-${cardIndex}`, sizes: {
32
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 3,
33
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
34
- } },
35
- react_1.default.createElement(RunCard, Object.assign({}, card))))))));
21
+ if ('mode' in section && section.mode === 'run') {
22
+ content = (react_1.default.createElement("div", { className: b('wrap-scale') },
23
+ ((_a = section.items) === null || _a === void 0 ? void 0 : _a[0]) && react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({}, section.items[0], { hover: true, column: true })),
24
+ react_1.default.createElement("div", { className: b('wrap') }, (_b = section.items) === null || _b === void 0 ? void 0 : _b.slice(1, 4).map((item, cardIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${cardIndex + 1}` }, item, { hover: true, column: true }))))),
25
+ react_1.default.createElement("div", { className: b('wrap') }, (_c = section.items) === null || _c === void 0 ? void 0 : _c.slice(4).map((item, cardIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${cardIndex + 4}` }, item, { hover: true, column: true })))))));
36
26
  }
37
- else if (isScaleSection) {
38
- content = (react_1.default.createElement(react_1.default.Fragment, null,
39
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { sizes: {
40
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 8,
41
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
42
- } },
43
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, (_b = section.items) === null || _b === void 0 ? void 0 : _b.map((item, itemIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${itemIndex}` }, item, { hover: true, sizes: {
44
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 6,
45
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
46
- } })))))),
47
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { sizes: {
48
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 4,
49
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
50
- } }, poweredCard && react_1.default.createElement(PoweredCard, Object.assign({}, poweredCard)))));
27
+ else if ('mode' in section && section.mode === 'scale') {
28
+ content = (react_1.default.createElement("div", { className: b('wrap') }, (_d = section.items) === null || _d === void 0 ? void 0 :
29
+ _d.map((item, itemIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${itemIndex}`, imageColor: primaryColor, imageColorHover: primaryColorHover }, item, { hover: true })))),
30
+ section.banner && react_1.default.createElement(NHBanner, Object.assign({}, section.banner))));
51
31
  }
52
32
  else {
53
- content = (_c = section.items) === null || _c === void 0 ? void 0 : _c.map((item, itemIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${itemIndex}` }, item, { hover: true, sizes: {
54
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 4,
55
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
56
- } }))));
33
+ content = (react_1.default.createElement("div", { className: b('wrap') }, (_e = section.items) === null || _e === void 0 ? void 0 :
34
+ _e.map((item, itemIndex) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: `${item.title}-${itemIndex}`, imageColor: primaryColor, imageColorHover: primaryColorHover }, item, { hover: true })))),
35
+ ' '));
57
36
  }
58
- return (react_1.default.createElement(gravity_ui_page_constructor_1.Row, { key: section.title },
59
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b('title') }, section.title),
60
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b('wrap') },
61
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null,
62
- react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b('subtitle') }, section.subtitle)),
63
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, content))));
37
+ return (react_1.default.createElement("div", { className: b('section'), key: section.title },
38
+ react_1.default.createElement("div", { className: b('section-head') },
39
+ react_1.default.createElement("div", { className: b('title') }, section.title),
40
+ react_1.default.createElement("div", { className: b('subtitle') }, section.subtitle)),
41
+ content));
64
42
  })));
65
43
  exports.NHProductsPopup = NHProductsPopup;
@@ -13,8 +13,5 @@ const NHSolutionsPopup = ({ sections }) => (react_1.default.createElement(gravit
13
13
  react_1.default.createElement(gravity_ui_page_constructor_1.Col, { className: b('head') },
14
14
  react_1.default.createElement("div", { className: b('title') }, section.title),
15
15
  react_1.default.createElement("div", { className: b('subtitle') }, section.subtitle))),
16
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, section.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title }, item, { hover: true, sizes: {
17
- [gravity_ui_page_constructor_1.GridColumnSize.Md]: 4,
18
- [gravity_ui_page_constructor_1.GridColumnSize.All]: 12,
19
- } })))))))))));
16
+ react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, section.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title }, item, { hover: true })))))))))));
20
17
  exports.NHSolutionsPopup = NHSolutionsPopup;
@@ -12,7 +12,7 @@ const NHWhyPopup = ({ groups, card }) => (react_1.default.createElement(gravity_
12
12
  react_1.default.createElement(gravity_ui_page_constructor_1.Row, null,
13
13
  react_1.default.createElement(gravity_ui_page_constructor_1.Col, null,
14
14
  react_1.default.createElement("div", { className: b('title') }, group.title))),
15
- react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, group.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title }, item, { hover: true, sizes: { [gravity_ui_page_constructor_1.GridColumnSize.All]: 12 } }))))))))),
15
+ react_1.default.createElement(gravity_ui_page_constructor_1.Row, null, group.items.map((item) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: item.title }, item, { hover: true }))))))))),
16
16
  card && (react_1.default.createElement("div", { className: b('card') },
17
17
  react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('card-image'), containerClassName: b('card-container-image'), src: card.image }),
18
18
  react_1.default.createElement("div", { className: b('card-wrap') },
@@ -30,9 +30,9 @@ export interface NHPopupItemData {
30
30
  url: string;
31
31
  slug?: string;
32
32
  description?: string;
33
- icon?: string;
34
33
  image?: string | null;
35
- tag?: NHNavigationTag;
34
+ imageColor?: string;
35
+ imageColorHover?: string;
36
36
  }
37
37
  export interface NHCategoryGroupData {
38
38
  title?: string;
@@ -43,28 +43,37 @@ export interface NHCategoryGroupData {
43
43
  export interface NHMediumPopupData {
44
44
  groups: NHCategoryGroupData[];
45
45
  }
46
- export interface NHSpecialCardData {
46
+ export interface NHBannerData {
47
47
  title: string;
48
48
  description: string;
49
49
  image: string;
50
50
  url: string;
51
51
  }
52
- export interface NHRunCardData {
52
+ export interface NHProductBannerData {
53
53
  title: string;
54
54
  description: string;
55
55
  image: string;
56
- border?: boolean;
57
56
  url: string;
57
+ background?: string;
58
+ color?: string;
59
+ border?: boolean;
58
60
  }
59
- export interface NHProductsPopupSection {
61
+ export interface NHProductsPopupSectionBase {
60
62
  title: string;
61
63
  subtitle: string;
62
64
  items?: NHPopupItemData[];
63
- runCards?: NHRunCardData[];
65
+ }
66
+ export interface NHProductsPopupSectionRun extends NHProductsPopupSectionBase {
67
+ mode: 'run';
68
+ }
69
+ export interface NHProductsPopupSectionScale extends NHProductsPopupSectionBase {
70
+ mode: 'scale';
71
+ banner?: NHProductBannerData;
64
72
  }
65
73
  export interface NHProductsPopupData {
66
- sections: NHProductsPopupSection[];
67
- poweredCard: NHSpecialCardData;
74
+ primaryColor?: string;
75
+ primaryColorHover?: string;
76
+ sections: (NHProductsPopupSectionRun | NHProductsPopupSectionBase | NHProductsPopupSectionScale)[];
68
77
  }
69
78
  export interface NHSolutionsPopupSection {
70
79
  title: string;
@@ -80,7 +89,7 @@ export interface NHWhyPopupGroup {
80
89
  }
81
90
  export interface NHWhyPopupData {
82
91
  groups: NHWhyPopupGroup[];
83
- card: NHSpecialCardData;
92
+ card: NHBannerData;
84
93
  }
85
94
  export interface NHBannerData {
86
95
  title: string;
@@ -11,6 +11,4 @@ export const NHCompanyPopup = ({ sections }) => (React.createElement(Grid, { cla
11
11
  React.createElement(Row, null,
12
12
  React.createElement(Col, null,
13
13
  React.createElement("div", { className: b('title') }, section.title))),
14
- React.createElement(Row, null, section.items.map((item) => (React.createElement(NHPopupItem, Object.assign({ key: item.title, hover: true }, item, { sizes: index === 0
15
- ? { [GridColumnSize.All]: 12 }
16
- : { [GridColumnSize.All]: 12, [GridColumnSize.Md]: 6 } })))))))))));
14
+ React.createElement(Row, null, section.items.map((item) => (React.createElement(NHPopupItem, Object.assign({ key: item.title, hover: true }, item)))))))))));