@doyourjob/gravity-ui-page-constructor-addons 2.1.34 → 2.1.36

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 (77) hide show
  1. package/build/cjs/components/NewHeader/NewHeader.css +5 -7
  2. package/build/cjs/components/NewHeader/NewHeader.js +7 -5
  3. package/build/cjs/components/NewHeader/components/NHBanner/NHBanner.css +42 -0
  4. package/build/cjs/components/NewHeader/components/NHBanner/NHBanner.d.ts +3 -0
  5. package/build/cjs/components/NewHeader/components/NHBanner/NHBanner.js +17 -0
  6. package/build/cjs/components/NewHeader/components/NHDefaultPopup/NHDefaultPopup.css +38 -90
  7. package/build/cjs/components/NewHeader/components/NHDefaultPopup/NHDefaultPopup.js +28 -33
  8. package/build/cjs/components/NewHeader/components/NHEventCard/NHEventCard.css +48 -0
  9. package/build/cjs/components/NewHeader/components/NHEventCard/NHEventCard.d.ts +3 -0
  10. package/build/cjs/components/NewHeader/components/NHEventCard/NHEventCard.js +15 -0
  11. package/build/cjs/components/NewHeader/components/NHLogo/NHLogo.css +4 -0
  12. package/build/cjs/components/NewHeader/components/NHLogo/NHLogo.d.ts +6 -0
  13. package/build/cjs/components/NewHeader/components/NHLogo/NHLogo.js +12 -0
  14. package/build/cjs/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.css +43 -8
  15. package/build/cjs/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.d.ts +4 -3
  16. package/build/cjs/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.js +19 -12
  17. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.css +41 -40
  18. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.d.ts +6 -2
  19. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.js +15 -11
  20. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.css +56 -0
  21. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.d.ts +5 -0
  22. package/build/cjs/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.js +32 -0
  23. package/build/cjs/components/NewHeader/components/NHMobileNavigationPopup/NHMobileNavigationPopup.css +11 -30
  24. package/build/cjs/components/NewHeader/components/NHMobileNavigationPopup/NHMobileNavigationPopup.js +1 -5
  25. package/build/cjs/components/NewHeader/components/NHNavigation/NHNavigation.js +1 -4
  26. package/build/cjs/components/NewHeader/components/NHNavigationItem/NHNavigationItem.js +2 -2
  27. package/build/cjs/components/NewHeader/components/NHPopupItem/NHPopupItem.css +15 -1
  28. package/build/cjs/components/NewHeader/components/NHStock/NHStock.css +47 -0
  29. package/build/cjs/components/NewHeader/components/NHStock/NHStock.d.ts +3 -0
  30. package/build/cjs/components/NewHeader/components/NHStock/NHStock.js +21 -0
  31. package/build/cjs/components/NewHeader/components/NHStoryCard/NHStoryCard.css +42 -0
  32. package/build/cjs/components/NewHeader/components/NHStoryCard/NHStoryCard.d.ts +3 -0
  33. package/build/cjs/components/NewHeader/components/NHStoryCard/NHStoryCard.js +14 -0
  34. package/build/cjs/components/NewHeader/models.d.ts +3 -41
  35. package/build/cjs/components/NewHeader/models.js +0 -1
  36. package/build/esm/components/NewHeader/NewHeader.css +5 -7
  37. package/build/esm/components/NewHeader/NewHeader.js +8 -6
  38. package/build/esm/components/NewHeader/components/NHBanner/NHBanner.css +42 -0
  39. package/build/esm/components/NewHeader/components/NHBanner/NHBanner.d.ts +4 -0
  40. package/build/esm/components/NewHeader/components/NHBanner/NHBanner.js +13 -0
  41. package/build/esm/components/NewHeader/components/NHDefaultPopup/NHDefaultPopup.css +38 -90
  42. package/build/esm/components/NewHeader/components/NHDefaultPopup/NHDefaultPopup.js +26 -31
  43. package/build/esm/components/NewHeader/components/NHEventCard/NHEventCard.css +48 -0
  44. package/build/esm/components/NewHeader/components/NHEventCard/NHEventCard.d.ts +4 -0
  45. package/build/esm/components/NewHeader/components/NHEventCard/NHEventCard.js +11 -0
  46. package/build/esm/components/NewHeader/components/NHLogo/NHLogo.css +4 -0
  47. package/build/esm/components/NewHeader/components/NHLogo/NHLogo.d.ts +7 -0
  48. package/build/esm/components/NewHeader/components/NHLogo/NHLogo.js +8 -0
  49. package/build/esm/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.css +43 -8
  50. package/build/esm/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.d.ts +4 -3
  51. package/build/esm/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.js +19 -12
  52. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.css +41 -40
  53. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.d.ts +6 -2
  54. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/NHMobileNavigationItem.js +15 -11
  55. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.css +56 -0
  56. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.d.ts +6 -0
  57. package/build/esm/components/NewHeader/components/NHMobileNavigationItem/components/NHDefaultPopupContent/NHDefaultPopupContent.js +28 -0
  58. package/build/esm/components/NewHeader/components/NHMobileNavigationPopup/NHMobileNavigationPopup.css +11 -30
  59. package/build/esm/components/NewHeader/components/NHMobileNavigationPopup/NHMobileNavigationPopup.js +1 -5
  60. package/build/esm/components/NewHeader/components/NHNavigation/NHNavigation.js +1 -4
  61. package/build/esm/components/NewHeader/components/NHNavigationItem/NHNavigationItem.js +2 -2
  62. package/build/esm/components/NewHeader/components/NHPopupItem/NHPopupItem.css +15 -1
  63. package/build/esm/components/NewHeader/components/NHStock/NHStock.css +47 -0
  64. package/build/esm/components/NewHeader/components/NHStock/NHStock.d.ts +4 -0
  65. package/build/esm/components/NewHeader/components/NHStock/NHStock.js +17 -0
  66. package/build/esm/components/NewHeader/components/NHStoryCard/NHStoryCard.css +42 -0
  67. package/build/esm/components/NewHeader/components/NHStoryCard/NHStoryCard.d.ts +4 -0
  68. package/build/esm/components/NewHeader/components/NHStoryCard/NHStoryCard.js +10 -0
  69. package/build/esm/components/NewHeader/models.d.ts +3 -41
  70. package/build/esm/components/NewHeader/models.js +0 -1
  71. package/package.json +1 -1
  72. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +0 -118
  73. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.d.ts +0 -3
  74. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.js +0 -43
  75. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +0 -118
  76. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.d.ts +0 -4
  77. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.js +0 -39
@@ -1,10 +1,11 @@
1
1
  /* use this for style redefinitions to awoid problems with
2
2
  unpredictable css rules order in build */
3
3
  .pc-addons-nh-mobile-navigation-item {
4
+ padding: 16px 8px 16px 0;
5
+ cursor: pointer;
4
6
  display: flex;
5
7
  justify-content: space-between;
6
- position: relative;
7
- padding: 12px 0;
8
+ align-items: center;
8
9
  }
9
10
 
10
11
  .pc-addons-nh-mobile-navigation-item_type_link {
@@ -12,64 +13,64 @@ unpredictable css rules order in build */
12
13
  text-decoration: none;
13
14
  display: block;
14
15
  color: var(--g-color-text-primary);
15
- }
16
-
17
- .pc-addons-nh-mobile-navigation-item__arrow {
18
- display: flex;
19
- justify-content: center;
20
- align-items: center;
21
- width: 20px;
22
- height: 20px;
23
- min-width: 20px;
16
+ font-weight: 500;
17
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
18
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
24
19
  }
25
20
 
26
21
  .pc-addons-nh-mobile-navigation-item__text {
27
- padding-right: 20px;
22
+ font-weight: 500;
23
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
24
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
25
+ color: var(--g-color-text-primary);
28
26
  }
29
27
 
30
- .pc-addons-nh-mobile-navigation-item__list {
31
- padding: 10px 20px;
32
- background-color: var(--g-color-base-generic);
33
- border-radius: var(--g-border-radius-l);
28
+ .pc-addons-nh-mobile-navigation-item__arrow {
29
+ color: var(--g-color-text-secondary);
34
30
  }
35
31
 
36
- .pc-addons-nh-mobile-navigation-item__list:not(:first-child) {
37
- margin-top: 12px;
32
+ .pc-addons-nh-mobile-navigation-item__content {
33
+ padding: 32px 0 40px;
34
+ display: flex;
35
+ flex-direction: column;
36
+ gap: 40px;
37
+ background: var(--g-color-base-background);
38
38
  }
39
39
 
40
- .pc-addons-nh-mobile-navigation-item__list-items {
41
- margin: 0;
42
- padding: 0;
43
- list-style: none;
40
+ .pc-addons-nh-mobile-navigation-item__section {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 20px;
44
44
  }
45
45
 
46
- .pc-addons-nh-mobile-navigation-item__list-title {
46
+ .pc-addons-nh-mobile-navigation-item__section-title {
47
47
  font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
48
48
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
49
- margin: 0;
50
- padding: 10px 0;
51
- }
52
-
53
- .pc-addons-nh-mobile-navigation-item__list-item {
54
- color: inherit;
55
- text-decoration: none;
56
- display: block;
57
49
  color: var(--g-color-text-primary);
58
- padding: 10px 0;
50
+ font-weight: 500;
59
51
  }
60
52
 
61
- .pc-addons-nh-mobile-navigation-item__list-item:hover, .pc-addons-nh-mobile-navigation-item__list-item:active {
62
- --pc-text-header-color: inherit;
63
- color: inherit;
53
+ .pc-addons-nh-mobile-navigation-item__section-items {
54
+ display: grid;
55
+ grid-template-columns: 1fr;
56
+ gap: 20px;
64
57
  }
65
58
 
59
+ @media (min-width: 577px) {
60
+ .pc-addons-nh-mobile-navigation-item__section-items {
61
+ gap: 24px 40px;
62
+ grid-template-columns: 1fr 1fr;
63
+ }
64
+ }
66
65
  .pc-addons-nh-mobile-navigation-item__list-link {
67
66
  color: inherit;
68
67
  text-decoration: none;
69
- outline: none;
68
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
69
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
70
+ color: var(--g-color-text-primary);
71
+ padding: 12px 0;
72
+ }
73
+
74
+ .pc-addons-nh-mobile-navigation-item__list-link:hover {
70
75
  color: var(--g-color-text-link);
71
- text-decoration: none;
72
- cursor: pointer;
73
- display: block;
74
- padding: 10px 0;
75
76
  }
@@ -1,3 +1,7 @@
1
1
  import React from 'react';
2
- import { NHMobileNavigationItemData } from '../../models';
3
- export declare const NHMobileNavigationItem: (props: NHMobileNavigationItemData) => React.JSX.Element | null;
2
+ import { NHNavigationItemData } from '../../models';
3
+ interface NHMobileNavigationItemProps {
4
+ item?: NHNavigationItemData;
5
+ }
6
+ export declare const NHMobileNavigationItem: ({ item }: NHMobileNavigationItemProps) => React.JSX.Element | null;
7
+ export {};
@@ -5,25 +5,29 @@ const tslib_1 = require("tslib");
5
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
+ const models_1 = require("../../models");
9
+ const NHDefaultPopupContent_1 = require("./components/NHDefaultPopupContent/NHDefaultPopupContent");
8
10
  const b = (0, cn_1.block)('nh-mobile-navigation-item');
9
- const NHMobileNavigationItem = (props) => {
11
+ const NHMobileNavigationItem = ({ item }) => {
10
12
  const [isOpened, setIsOpened] = (0, react_1.useState)(false);
11
13
  const toggleOpen = (0, react_1.useCallback)(() => {
12
14
  setIsOpened(!isOpened);
13
15
  }, [isOpened]);
14
- if ('link' in props) {
15
- return (react_1.default.createElement("a", Object.assign({ href: props.link.url, className: b({ type: 'link' }) }, (0, gravity_ui_page_constructor_1.getLinkProps)(props.link.url || '', undefined, props.link.target)), props.title));
16
- }
17
- if ('data' in props) {
16
+ const handleKeyDown = (0, react_1.useCallback)((e) => {
17
+ if (e.key === 'Enter' || e.key === ' ') {
18
+ toggleOpen();
19
+ }
20
+ }, [toggleOpen]);
21
+ if (item) {
22
+ if (item.type === models_1.NHNavigationItemType.Link) {
23
+ return (react_1.default.createElement("a", Object.assign({ href: item.data.url, className: b({ type: 'link' }) }, (0, gravity_ui_page_constructor_1.getLinkProps)(item.data.url || '', undefined, item.data.target)), item.title));
24
+ }
18
25
  return (react_1.default.createElement(react_1.Fragment, null,
19
- react_1.default.createElement("div", { className: b({ opened: isOpened }), onClick: toggleOpen },
20
- react_1.default.createElement("div", { className: b('text') }, props.title),
26
+ react_1.default.createElement("div", { className: b(), onClick: toggleOpen, role: "button", tabIndex: 0, onKeyDown: handleKeyDown },
27
+ react_1.default.createElement("div", { className: b('text') }, item.title),
21
28
  react_1.default.createElement("div", { className: b('arrow') },
22
29
  react_1.default.createElement(gravity_ui_page_constructor_1.ToggleArrow, { size: 12, type: "vertical", open: isOpened, iconType: "navigation" }))),
23
- react_1.default.createElement(gravity_ui_page_constructor_1.Foldable, { isOpened: isOpened }, props.data.map(({ title: itemTitle, items, }) => (react_1.default.createElement("div", { className: b('list'), key: items[0].title },
24
- itemTitle && react_1.default.createElement("h5", { className: b('list-title') }, itemTitle),
25
- react_1.default.createElement("ul", { className: b('list-items') }, items.map((linkItem) => (react_1.default.createElement("li", { className: b('li'), key: linkItem.title },
26
- react_1.default.createElement("a", Object.assign({ href: linkItem.url, className: b('list-item') }, (0, gravity_ui_page_constructor_1.getLinkProps)(linkItem.url || '')), linkItem.title)))))))))));
30
+ react_1.default.createElement(gravity_ui_page_constructor_1.Foldable, { isOpened: isOpened }, item.type === models_1.NHNavigationItemType.NHDefaultPopup && (react_1.default.createElement(NHDefaultPopupContent_1.NHDefaultPopupContent, { data: item.data })))));
27
31
  }
28
32
  return null;
29
33
  };
@@ -0,0 +1,56 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-addons-nh-default-popup-content {
4
+ padding: 32px 0 40px;
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: 40px;
8
+ background: var(--g-color-base-background);
9
+ }
10
+
11
+ .pc-addons-nh-default-popup-content__section, .pc-addons-nh-default-popup-content__section-items {
12
+ display: flex;
13
+ flex-direction: column;
14
+ gap: 20px;
15
+ }
16
+
17
+ .pc-addons-nh-default-popup-content__banner-container {
18
+ margin-top: 16px;
19
+ }
20
+
21
+ .pc-addons-nh-default-popup-content__section-title {
22
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
23
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
24
+ color: var(--g-color-text-primary);
25
+ font-weight: 500;
26
+ }
27
+
28
+ .pc-addons-nh-default-popup-content__section-items {
29
+ display: grid;
30
+ grid-template-columns: 1fr;
31
+ gap: 20px;
32
+ }
33
+
34
+ @media (min-width: 577px) {
35
+ .pc-addons-nh-default-popup-content__section-items {
36
+ gap: 24px 40px;
37
+ grid-template-columns: 1fr 1fr;
38
+ }
39
+ }
40
+ .pc-addons-nh-default-popup-content__right-section {
41
+ display: flex;
42
+ flex-direction: column;
43
+ gap: 20px;
44
+ }
45
+
46
+ .pc-addons-nh-default-popup-content__right-items {
47
+ display: grid;
48
+ grid-template-columns: 1fr;
49
+ gap: 20px;
50
+ }
51
+
52
+ @media (min-width: 577px) {
53
+ .pc-addons-nh-default-popup-content__right-items {
54
+ grid-template-columns: 1fr 1fr;
55
+ }
56
+ }
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import { NHDefaultPopupData } from '../../../../models';
3
+ export declare const NHDefaultPopupContent: ({ data }: {
4
+ data: NHDefaultPopupData;
5
+ }) => React.JSX.Element;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NHDefaultPopupContent = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const cn_1 = require("../../../../../../utils/cn");
7
+ const NHBanner_1 = require("../../../NHBanner/NHBanner");
8
+ const NHEventCard_1 = require("../../../NHEventCard/NHEventCard");
9
+ const NHPopupItem_1 = require("../../../NHPopupItem/NHPopupItem");
10
+ const NHStock_1 = require("../../../NHStock/NHStock");
11
+ const NHStoryCard_1 = require("../../../NHStoryCard/NHStoryCard");
12
+ const b = (0, cn_1.block)('nh-default-popup-content');
13
+ const NHDefaultPopupContent = ({ data }) => {
14
+ var _a, _b;
15
+ return (react_1.default.createElement("div", { className: b() },
16
+ data.sections.map((section, idx) => {
17
+ const isRun = section.mode === 'run';
18
+ const hasSideHead = Boolean(section.mode);
19
+ return (react_1.default.createElement("div", { key: idx, className: b('section') },
20
+ section.title && react_1.default.createElement("div", { className: b('section-title') }, section.title),
21
+ react_1.default.createElement("div", { className: b('section-items') }, section.items.map((item, index) => (react_1.default.createElement(NHPopupItem_1.NHPopupItem, Object.assign({ key: index, imageColor: hasSideHead && !isRun ? data.primaryColor : undefined, imageColorHover: hasSideHead && !isRun ? data.primaryColorHover : undefined }, item, { column: isRun }))))),
22
+ section.banner && (react_1.default.createElement("div", { className: b('banner-container') },
23
+ react_1.default.createElement(NHBanner_1.NHBanner, Object.assign({}, section.banner))))));
24
+ }),
25
+ data.right && (react_1.default.createElement("div", { className: b('right-section') },
26
+ data.right.title && react_1.default.createElement("div", { className: b('section-title') }, data.right.title),
27
+ react_1.default.createElement("div", { className: b('right-items') }, (_a = data.right.stories) === null || _a === void 0 ? void 0 :
28
+ _a.map((story, i) => (react_1.default.createElement(NHStoryCard_1.NHStoryCard, Object.assign({ key: i }, story)))), (_b = data.right.events) === null || _b === void 0 ? void 0 :
29
+ _b.map((event, i) => (react_1.default.createElement(NHEventCard_1.NHEventCard, Object.assign({ key: i }, event)))),
30
+ data.right.stock && react_1.default.createElement(NHStock_1.NHStock, Object.assign({}, data.right.stock)))))));
31
+ };
32
+ exports.NHDefaultPopupContent = NHDefaultPopupContent;
@@ -3,53 +3,34 @@ unpredictable css rules order in build */
3
3
  .pc-addons-nh-mobile-navigation-popup {
4
4
  width: 100%;
5
5
  position: fixed;
6
- top: 0;
7
- z-index: 99;
8
- padding: 48px 0 32px;
6
+ top: 64px;
7
+ left: 0;
8
+ z-index: 1000;
9
+ height: calc(100vh - 64px);
9
10
  background-color: var(--g-color-base-background);
10
- border-radius: 0 0 var(--pc-border-radius, 24px) var(--pc-border-radius, 24px);
11
- box-shadow: 0 3px 10px var(--g-color-base-generic);
11
+ box-shadow: none;
12
12
  }
13
13
 
14
14
  .pc-addons-nh-mobile-navigation-popup__transition-enter {
15
- transform: translateY(-30px);
16
- opacity: 0;
15
+ transform: translateY(-100%);
17
16
  }
18
17
 
19
18
  .pc-addons-nh-mobile-navigation-popup__transition-enter-active {
20
19
  transform: translateY(0);
21
- opacity: 1;
22
- transition: transform 0.4s, opacity 0.4s;
20
+ transition: transform 0.4s ease-out;
23
21
  }
24
22
 
25
23
  .pc-addons-nh-mobile-navigation-popup__transition-exit {
26
24
  transform: translateY(0);
27
- opacity: 1;
28
- }
29
-
30
- .pc-addons-nh-mobile-navigation-popup__transition-exit .pc-addons-nh-mobile-navigation-popup__container {
31
- opacity: 0;
32
25
  }
33
26
 
34
27
  .pc-addons-nh-mobile-navigation-popup__transition-exit-active {
35
- transform: translateY(-30px);
36
- opacity: 0;
37
- transition: transform 0.4s, opacity 0.4s;
38
- }
39
-
40
- .pc-addons-nh-mobile-navigation-popup__no-scroll {
41
- overflow: hidden;
28
+ transform: translateY(-100%);
29
+ transition: transform 0.4s ease-in;
42
30
  }
43
31
 
44
32
  .pc-addons-nh-mobile-navigation-popup__container {
45
- padding: 4px 48px 0;
46
- overflow: scroll;
33
+ padding: 0;
34
+ overflow-y: auto;
47
35
  height: 100%;
48
- }
49
-
50
- @media (max-width: 576px) {
51
- .pc-addons-nh-mobile-navigation-popup__container {
52
- padding-left: 24px;
53
- padding-right: 24px;
54
- }
55
36
  }
@@ -10,12 +10,9 @@ const react_transition_group_1 = require("react-transition-group");
10
10
  const cn_1 = require("../../../../utils/cn");
11
11
  const b = (0, cn_1.block)('nh-mobile-navigation-popup');
12
12
  const TRANSITION_TIME = 400;
13
- const POPUP_MARGIN = 80;
14
- const HEADER_HEIGHT = 68;
15
13
  const NHMobileNavigationPopup = ({ isOpened, onClose, children, onMenuScroll, }) => {
16
14
  const [body, setBody] = (0, react_1.useState)();
17
15
  const ref = (0, react_1.useRef)(null);
18
- const [containerHeight, setContainerHeight] = (0, react_1.useState)(0);
19
16
  const handleScroll = (0, react_1.useCallback)(() => {
20
17
  var _a;
21
18
  const containerScrollTop = (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.scrollTop;
@@ -26,7 +23,6 @@ const NHMobileNavigationPopup = ({ isOpened, onClose, children, onMenuScroll, })
26
23
  (0, uikit_1.useBodyScrollLock)({ enabled: isOpened });
27
24
  (0, react_1.useEffect)(() => {
28
25
  setBody(document.body);
29
- setContainerHeight((window === null || window === void 0 ? void 0 : window.innerHeight) - POPUP_MARGIN - HEADER_HEIGHT);
30
26
  const element = ref.current;
31
27
  if (element) {
32
28
  element.addEventListener('scroll', handleScroll);
@@ -42,6 +38,6 @@ const NHMobileNavigationPopup = ({ isOpened, onClose, children, onMenuScroll, })
42
38
  }
43
39
  return react_dom_1.default.createPortal(react_1.default.createElement(react_transition_group_1.CSSTransition, { in: isOpened, classNames: b('transition'), unmountOnExit: true, timeout: TRANSITION_TIME },
44
40
  react_1.default.createElement(gravity_ui_page_constructor_1.OutsideClick, { className: b(), onOutsideClick: onClose },
45
- react_1.default.createElement("div", { ref: ref, className: b('container'), style: { maxHeight: `${containerHeight}px` } }, children))), body);
41
+ react_1.default.createElement("div", { ref: ref, className: b('container') }, children))), body);
46
42
  };
47
43
  exports.NHMobileNavigationPopup = NHMobileNavigationPopup;
@@ -9,13 +9,10 @@ const models_1 = require("../../models");
9
9
  const NHDefaultPopup_1 = require("../NHDefaultPopup/NHDefaultPopup");
10
10
  const NHNavigationItem_1 = require("../NHNavigationItem/NHNavigationItem");
11
11
  const NHNavigationPopup_1 = require("../NHNavigationPopup/NHNavigationPopup");
12
- const NHProductsPopup_1 = require("../NHProductsPopup/NHProductsPopup");
13
12
  const b = (0, cn_1.block)('nh-navigation');
14
13
  const tooltipPrefixId = 'navigation-item-key';
15
14
  const getPopupContent = (sectionData) => {
16
15
  switch (sectionData.type) {
17
- case models_1.NHNavigationItemType.NHProductsPopup:
18
- return react_1.default.createElement(NHProductsPopup_1.NHProductsPopup, Object.assign({}, sectionData.data));
19
16
  case models_1.NHNavigationItemType.NHDefaultPopup:
20
17
  return react_1.default.createElement(NHDefaultPopup_1.NHDefaultPopup, Object.assign({}, sectionData.data));
21
18
  default:
@@ -53,6 +50,6 @@ const NHNavigation = ({ data, headerRef, setupRouteChangeHandler }) => {
53
50
  };
54
51
  }, [onEscapeKeyDown]);
55
52
  return (react_1.default.createElement("nav", null,
56
- react_1.default.createElement("ul", { className: b() }, data.map((item, i) => (react_1.default.createElement(NHNavigationItem_1.NHNavigationItem, { key: item.title, item: item, handleActiveTab: handleActiveTab, index: i, isActive: activeTab === i, tooltipId: `${tooltipPrefixId}-${i}` }, activeTab === i && item.type !== models_1.NHNavigationItemType.Link && (react_1.default.createElement(NHNavigationPopup_1.NHNavigationPopup, { headerRef: headerRef, id: `${tooltipPrefixId}-${i}` }, getPopupContent(item)))))))));
53
+ react_1.default.createElement("ul", { className: b() }, data.map((item, i) => (react_1.default.createElement(NHNavigationItem_1.NHNavigationItem, { key: i, item: item, handleActiveTab: handleActiveTab, index: i, isActive: activeTab === i, tooltipId: `${tooltipPrefixId}-${i}` }, activeTab === i && item.type !== models_1.NHNavigationItemType.Link && (react_1.default.createElement(NHNavigationPopup_1.NHNavigationPopup, { headerRef: headerRef, id: `${tooltipPrefixId}-${i}` }, getPopupContent(item)))))))));
57
54
  };
58
55
  exports.NHNavigation = NHNavigation;
@@ -21,11 +21,11 @@ const NHNavigationItem = ({ item, isActive, handleActiveTab, index, children, to
21
21
  handleMouseLeave();
22
22
  }), [handleMouseLeave, setupRouteChangeHandler]);
23
23
  if (item.type === models_1.NHNavigationItemType.Link) {
24
- return (react_1.default.createElement("li", { key: item.title, className: b({ disable: !((_a = item.data) === null || _a === void 0 ? void 0 : _a.url) }), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
24
+ return (react_1.default.createElement("li", { className: b({ disable: !((_a = item.data) === null || _a === void 0 ? void 0 : _a.url) }), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
25
25
  react_1.default.createElement("a", Object.assign({ className: b('text', { active: isActive }), href: (_b = item.data) === null || _b === void 0 ? void 0 : _b.url }, (0, gravity_ui_page_constructor_1.getLinkProps)(((_c = item.data) === null || _c === void 0 ? void 0 : _c.url) || '', undefined, (_d = item.data) === null || _d === void 0 ? void 0 : _d.target)), item.title),
26
26
  children));
27
27
  }
28
- return (react_1.default.createElement("li", { key: item.title, className: b({}), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
28
+ return (react_1.default.createElement("li", { className: b({}), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
29
29
  react_1.default.createElement("button", { className: b('text', { active: isActive, cursor: 'default' }), onClick: handleMouseEnter, "aria-expanded": isActive, "aria-controls": tooltipId },
30
30
  item.title,
31
31
  react_1.default.createElement(uikit_1.Icon, { className: b('icon'), data: isActive ? ChevronUp_1.ChevronUp : ChevronDown_1.ChevronDown, size: 16 })),
@@ -30,6 +30,20 @@ unpredictable css rules order in build */
30
30
  align-self: initial;
31
31
  }
32
32
 
33
+ @media (max-width: 769px) {
34
+ .pc-addons-nh-navigation-popup-item_column {
35
+ flex-direction: row;
36
+ }
37
+ .pc-addons-nh-navigation-popup-item_column .pc-addons-nh-navigation-popup-item__image {
38
+ width: 30px;
39
+ height: 30px;
40
+ }
41
+ .pc-addons-nh-navigation-popup-item_column .pc-addons-nh-navigation-popup-item__image-container {
42
+ padding: 5px;
43
+ border-radius: 0;
44
+ border: none;
45
+ }
46
+ }
33
47
  .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 {
34
48
  color: var(--g-color-text-primary);
35
49
  }
@@ -55,7 +69,7 @@ unpredictable css rules order in build */
55
69
  position: relative;
56
70
  font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
57
71
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
58
- font-weight: 600;
72
+ font-weight: 500;
59
73
  color: var(--g-color-text-primary);
60
74
  }
61
75
 
@@ -0,0 +1,47 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-addons-nh-stock {
4
+ position: relative;
5
+ padding: 20px;
6
+ display: flex;
7
+ flex-direction: column;
8
+ border-radius: 8px;
9
+ overflow: hidden;
10
+ min-height: 240px;
11
+ }
12
+
13
+ .pc-addons-nh-stock__background {
14
+ position: absolute;
15
+ top: 0;
16
+ left: 0;
17
+ width: 100%;
18
+ height: 100%;
19
+ object-fit: cover;
20
+ display: block;
21
+ }
22
+
23
+ .pc-addons-nh-stock__title {
24
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
25
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
26
+ color: var(--g-color-text-primary);
27
+ font-weight: 600;
28
+ z-index: 1;
29
+ margin-bottom: 4px;
30
+ }
31
+
32
+ .pc-addons-nh-stock__value {
33
+ color: var(--g-color-text-primary);
34
+ font-size: 36px;
35
+ line-height: 48px;
36
+ font-weight: 600;
37
+ z-index: 1;
38
+ margin-top: auto;
39
+ }
40
+
41
+ .pc-addons-nh-stock__date {
42
+ font-size: var(--g-text-body-1-font-size, var(--pc-text-body-1-font-size));
43
+ line-height: var(--g-text-body-1-line-height, var(--pc-text-body-1-line-height));
44
+ color: var(--g-color-text-secondary);
45
+ z-index: 1;
46
+ margin-top: 4px;
47
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { NHStockData } from '../../models';
3
+ export declare const NHStock: ({ title, delayed, image }: NHStockData) => React.JSX.Element | null;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NHStock = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const gravity_ui_page_constructor_1 = require("@doyourjob/gravity-ui-page-constructor");
7
+ const cn_1 = require("../../../../utils/cn");
8
+ const b = (0, cn_1.block)('nh-stock');
9
+ const NHStock = ({ title, delayed, image }) => {
10
+ const data = (0, react_1.useContext)(gravity_ui_page_constructor_1.HeaderStockContext);
11
+ if (!data.price)
12
+ return null;
13
+ return (react_1.default.createElement("div", { className: b() },
14
+ image ? react_1.default.createElement("img", { className: b('background'), src: image, alt: "Stock background" }) : null,
15
+ react_1.default.createElement("div", { className: b('title') }, title),
16
+ react_1.default.createElement("div", { className: b('title') }, data.price.percent),
17
+ react_1.default.createElement("div", { className: b('value') }, data.price.price),
18
+ react_1.default.createElement("div", { className: b('date') }, data.price.update),
19
+ react_1.default.createElement("div", { className: b('date') }, delayed)));
20
+ };
21
+ exports.NHStock = NHStock;
@@ -0,0 +1,42 @@
1
+ /* use this for style redefinitions to awoid problems with
2
+ unpredictable css rules order in build */
3
+ .pc-addons-nh-story-card {
4
+ color: inherit;
5
+ text-decoration: none;
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 12px;
9
+ cursor: pointer;
10
+ transition: opacity 0.2s;
11
+ }
12
+
13
+ .pc-addons-nh-story-card:hover {
14
+ opacity: 0.8;
15
+ }
16
+
17
+ .pc-addons-nh-story-card__wrap {
18
+ display: flex;
19
+ flex-direction: column;
20
+ gap: 4px;
21
+ }
22
+
23
+ .pc-addons-nh-story-card__title {
24
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
25
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
26
+ color: var(--g-color-text-primary);
27
+ font-weight: 600;
28
+ }
29
+
30
+ .pc-addons-nh-story-card__description {
31
+ font-size: var(--g-text-body-1-font-size, var(--pc-text-body-1-font-size));
32
+ line-height: var(--g-text-body-1-line-height, var(--pc-text-body-1-line-height));
33
+ color: var(--g-color-text-secondary);
34
+ }
35
+
36
+ .pc-addons-nh-story-card__image {
37
+ display: block;
38
+ width: 100%;
39
+ aspect-ratio: 16/9;
40
+ object-fit: cover;
41
+ border-radius: 16px;
42
+ }
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { NHStoryCardData } from '../../models';
3
+ export declare const NHStoryCard: ({ title, description, image, url }: NHStoryCardData) => React.JSX.Element;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NHStoryCard = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const gravity_ui_page_constructor_1 = require("@doyourjob/gravity-ui-page-constructor");
7
+ const cn_1 = require("../../../../utils/cn");
8
+ const b = (0, cn_1.block)('nh-story-card');
9
+ const NHStoryCard = ({ title, description, image, url }) => (react_1.default.createElement("a", Object.assign({ href: url, className: b() }, (0, gravity_ui_page_constructor_1.getLinkProps)(url)),
10
+ react_1.default.createElement(gravity_ui_page_constructor_1.Image, { className: b('image'), src: image }),
11
+ react_1.default.createElement("div", { className: b('wrap') },
12
+ react_1.default.createElement("div", { className: b('title') }, title),
13
+ react_1.default.createElement("div", { className: b('description') }, description))));
14
+ exports.NHStoryCard = NHStoryCard;
@@ -1,6 +1,5 @@
1
1
  import type { ButtonProps, LinkProps } from '@doyourjob/gravity-ui-page-constructor';
2
2
  export declare enum NHNavigationItemType {
3
- NHProductsPopup = "products-popup",
4
3
  NHDefaultPopup = "default-popup",
5
4
  Link = "link"
6
5
  }
@@ -29,29 +28,13 @@ export interface NHProductBannerData {
29
28
  color?: string;
30
29
  border?: boolean;
31
30
  }
32
- export interface NHProductsPopupSectionBase {
33
- title: string;
34
- subtitle: string;
35
- items?: NHPopupItemData[];
36
- }
37
- export interface NHProductsPopupSectionRun extends NHProductsPopupSectionBase {
38
- mode: 'run';
39
- }
40
- export interface NHProductsPopupSectionScale extends NHProductsPopupSectionBase {
41
- mode: 'scale';
42
- banner?: NHProductBannerData;
43
- }
44
- export type NHProductsPopupSection = NHProductsPopupSectionRun | NHProductsPopupSectionScale | NHProductsPopupSectionBase;
45
- export interface NHProductsPopupData {
46
- primaryColor?: string;
47
- primaryColorHover?: string;
48
- sections: NHProductsPopupSection[];
49
- }
50
31
  export interface NHDefaultPopupSection {
51
32
  title: string;
52
33
  subtitle: string;
53
34
  items: NHPopupItemData[];
54
35
  columns?: number;
36
+ mode?: 'run' | 'scale' | 'build';
37
+ banner?: NHProductBannerData;
55
38
  }
56
39
  export interface NHStoryCardData {
57
40
  title: string;
@@ -99,35 +82,14 @@ export interface NHNavigationLinkData extends NHNavigationDefaultData {
99
82
  type: NHNavigationItemType.Link;
100
83
  data: LinkProps;
101
84
  }
102
- export interface NHNavigationProductsPopupData extends NHNavigationDefaultData {
103
- type: NHNavigationItemType.NHProductsPopup;
104
- data: NHProductsPopupData;
105
- }
106
85
  export interface NHNavigationDefaultPopupData extends NHNavigationDefaultData {
107
86
  type: NHNavigationItemType.NHDefaultPopup;
108
87
  data: NHDefaultPopupData;
109
88
  }
110
- export type NHNavigationItemData = NHNavigationLinkData | NHNavigationProductsPopupData | NHNavigationDefaultPopupData;
111
- export interface NHMobileNavigationDefaultData {
112
- title: string;
113
- }
114
- export interface NHMobileNavigationLinkData extends NHMobileNavigationDefaultData {
115
- link: LinkProps;
116
- }
117
- export interface NHMobileNavigationGroupData extends NHMobileNavigationDefaultData {
118
- data: {
119
- title?: string;
120
- items: {
121
- title: string;
122
- url: string;
123
- }[];
124
- }[];
125
- }
126
- export type NHMobileNavigationItemData = NHMobileNavigationLinkData | NHMobileNavigationGroupData;
89
+ export type NHNavigationItemData = NHNavigationLinkData | NHNavigationDefaultPopupData;
127
90
  export interface NHNavigationData {
128
91
  left?: NHNavigationItemData[];
129
92
  right?: NHNavigationItemData[];
130
- mobile?: NHMobileNavigationItemData[];
131
93
  login?: NHLoginPopupData;
132
94
  logo?: NHLogoData;
133
95
  buttons?: ButtonProps[];
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NHNavigationItemType = void 0;
4
4
  var NHNavigationItemType;
5
5
  (function (NHNavigationItemType) {
6
- NHNavigationItemType["NHProductsPopup"] = "products-popup";
7
6
  NHNavigationItemType["NHDefaultPopup"] = "default-popup";
8
7
  NHNavigationItemType["Link"] = "link";
9
8
  })(NHNavigationItemType = exports.NHNavigationItemType || (exports.NHNavigationItemType = {}));