@doyourjob/gravity-ui-page-constructor-addons 2.1.26 → 2.1.28

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 (35) hide show
  1. package/build/cjs/components/NewHeader/NewHeader.css +51 -28
  2. package/build/cjs/components/NewHeader/NewHeader.js +8 -16
  3. package/build/cjs/components/NewHeader/components/ChevronDown.d.ts +2 -0
  4. package/build/cjs/components/NewHeader/components/ChevronDown.js +8 -0
  5. package/build/cjs/components/NewHeader/components/ChevronUp.d.ts +2 -0
  6. package/build/cjs/components/NewHeader/components/ChevronUp.js +8 -0
  7. package/build/cjs/components/NewHeader/components/NHLoginButton/NHLoginButton.css +4 -1
  8. package/build/cjs/components/NewHeader/components/NHLoginButton/NHLoginButton.js +3 -2
  9. package/build/cjs/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.css +6 -1
  10. package/build/cjs/components/NewHeader/components/NHNavigation/NHNavigation.css +2 -2
  11. package/build/cjs/components/NewHeader/components/NHNavigationItem/NHNavigationItem.css +9 -6
  12. package/build/cjs/components/NewHeader/components/NHNavigationItem/NHNavigationItem.js +3 -2
  13. package/build/cjs/components/NewHeader/components/NHNavigationPopup/NHNavigationPopup.css +5 -2
  14. package/build/cjs/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +0 -1
  15. package/build/cjs/components/NewHeader/components/NHResourcesPopup/NHResourcesPopup.css +0 -1
  16. package/build/cjs/components/NewHeader/components/NHSolutionsPopup/NHSolutionsPopup.css +0 -1
  17. package/build/cjs/components/NewHeader/components/NHWhyPopup/NHWhyPopup.css +0 -1
  18. package/build/esm/components/NewHeader/NewHeader.css +51 -28
  19. package/build/esm/components/NewHeader/NewHeader.js +8 -16
  20. package/build/esm/components/NewHeader/components/ChevronDown.d.ts +2 -0
  21. package/build/esm/components/NewHeader/components/ChevronDown.js +3 -0
  22. package/build/esm/components/NewHeader/components/ChevronUp.d.ts +2 -0
  23. package/build/esm/components/NewHeader/components/ChevronUp.js +3 -0
  24. package/build/esm/components/NewHeader/components/NHLoginButton/NHLoginButton.css +4 -1
  25. package/build/esm/components/NewHeader/components/NHLoginButton/NHLoginButton.js +3 -2
  26. package/build/esm/components/NewHeader/components/NHMobileNavigation/NHMobileNavigation.css +6 -1
  27. package/build/esm/components/NewHeader/components/NHNavigation/NHNavigation.css +2 -2
  28. package/build/esm/components/NewHeader/components/NHNavigationItem/NHNavigationItem.css +9 -6
  29. package/build/esm/components/NewHeader/components/NHNavigationItem/NHNavigationItem.js +3 -2
  30. package/build/esm/components/NewHeader/components/NHNavigationPopup/NHNavigationPopup.css +5 -2
  31. package/build/esm/components/NewHeader/components/NHProductsPopup/NHProductsPopup.css +0 -1
  32. package/build/esm/components/NewHeader/components/NHResourcesPopup/NHResourcesPopup.css +0 -1
  33. package/build/esm/components/NewHeader/components/NHSolutionsPopup/NHSolutionsPopup.css +0 -1
  34. package/build/esm/components/NewHeader/components/NHWhyPopup/NHWhyPopup.css +0 -1
  35. package/package.json +1 -1
@@ -4,42 +4,52 @@ unpredictable css rules order in build */
4
4
  --g-scrollbar-width: 8px;
5
5
  --g-color-scroll-handle: var(--g-color-base-generic);
6
6
  --g-color-scroll-handle-hover: var(--g-color-line-generic);
7
- position: relative;
8
- max-width: 1328px;
9
- margin: 0 auto;
10
7
  width: 100%;
11
8
  z-index: 100;
9
+ background: var(--pc-transparent);
10
+ }
11
+
12
+ .pc-addons-new-header_with-background {
13
+ background: var(--g-color-base-background);
12
14
  }
13
15
 
14
16
  .pc-addons-new-header__container {
17
+ position: relative;
15
18
  width: 100%;
16
- padding: 0 32px;
19
+ max-width: 1328px;
20
+ padding: 0 40px;
21
+ margin: 0 auto;
17
22
  display: flex;
18
23
  align-items: center;
19
24
  justify-content: space-between;
20
25
  height: 64px;
21
- background: var(--pc-transparent);
22
26
  border-radius: var(--pc-border-radius, 24px);
23
27
  }
24
28
 
25
- .pc-addons-new-header__container_with-background {
26
- background: var(--g-color-base-background);
27
- box-shadow: 0 4px 24px var(--g-color-base-generic);
29
+ @media (max-width: 1248px) {
30
+ .pc-addons-new-header__container {
31
+ padding: 0 16px;
32
+ }
28
33
  }
29
-
30
34
  .pc-addons-new-header__left, .pc-addons-new-header__right {
31
35
  display: flex;
32
36
  align-items: center;
33
- gap: 40px;
34
37
  }
35
38
 
36
39
  .pc-addons-new-header__left {
37
40
  margin-right: 32px;
41
+ gap: 20px;
38
42
  }
39
43
 
44
+ @media (max-width: 1248px) {
45
+ .pc-addons-new-header__left {
46
+ gap: 12px;
47
+ }
48
+ }
40
49
  .pc-addons-new-header__right {
41
50
  justify-content: flex-end;
42
51
  width: 100%;
52
+ gap: 8px;
43
53
  }
44
54
 
45
55
  .pc-addons-new-header__wrap {
@@ -127,20 +137,43 @@ unpredictable css rules order in build */
127
137
  box-shadow: 0 3px 10px var(--g-color-base-generic-hover);
128
138
  }
129
139
 
140
+ .pc-addons-new-header__logo-img {
141
+ display: block;
142
+ height: 36px;
143
+ }
144
+
145
+ .pc-addons-new-header_search .pc-addons-new-header__left,
146
+ .pc-addons-new-header_search .pc-addons-new-header__right > div:not(.pc-addons-new-header__icons-container) {
147
+ display: none;
148
+ }
149
+
150
+ .pc-addons-new-header__buttons {
151
+ display: flex;
152
+ gap: 8px;
153
+ }
154
+
155
+ @media (max-width: 577px) {
156
+ .pc-addons-new-header__buttons {
157
+ display: none;
158
+ }
159
+ }
160
+ .pc-addons-new-header__button {
161
+ display: flex;
162
+ align-items: center;
163
+ padding: 0 12px;
164
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
165
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
166
+ font-weight: 500;
167
+ }
168
+
130
169
  @media (max-width: 1081px) {
131
170
  .pc-addons-new-header__left {
132
171
  margin-right: 0;
133
172
  }
134
173
  }
135
- @media (min-width: 769px) {
136
- .pc-addons-new-header__logo-img {
137
- height: 30px;
138
- }
139
- }
140
- @media (max-width: 768px) {
174
+ @media (max-width: 769px) {
141
175
  .pc-addons-new-header {
142
176
  max-width: 100%;
143
- padding: 16px 40px 16px 48px;
144
177
  border-top-left-radius: 0;
145
178
  border-top-right-radius: 0;
146
179
  }
@@ -151,18 +184,8 @@ unpredictable css rules order in build */
151
184
  flex-direction: row-reverse;
152
185
  justify-content: flex-start;
153
186
  }
154
- .pc-addons-new-header_search .pc-addons-new-header__logo {
155
- display: none;
156
- }
157
- .pc-addons-new-header_search .pc-addons-new-header__back {
158
- display: block;
159
- }
160
187
  }
161
- @media (max-width: 576px) {
162
- .pc-addons-new-header {
163
- padding-left: 24px;
164
- padding-right: 16px;
165
- }
188
+ @media (max-width: 577px) {
166
189
  .pc-addons-new-header__container {
167
190
  height: 64px;
168
191
  }
@@ -15,7 +15,6 @@ const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, className, scr
15
15
  const { logo, buttons, left, right, mobile, login } = data;
16
16
  const headerRef = (0, react_1.useRef)(null);
17
17
  const [withBackground, setWithBackground] = (0, react_1.useState)(false);
18
- const [withShadow, setWithShadow] = (0, react_1.useState)(true);
19
18
  const [isSearchMode, setIsSearchMode] = (0, react_1.useState)(false);
20
19
  const [isMobileNavigationOpen, setIsMobileNavigationOpen] = (0, react_1.useState)(false);
21
20
  const [pageHasScroll, setPageHasScroll] = (0, react_1.useState)(false);
@@ -23,14 +22,8 @@ const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, className, scr
23
22
  const toggleSearch = (0, react_1.useCallback)((isActive) => setIsSearchMode(isActive), []);
24
23
  const toggleMobileNavigationPopup = (0, react_1.useCallback)((isOpened) => {
25
24
  setIsMobileNavigationOpen(isOpened);
26
- // disable header's shadow on mobile with opened menu and if page was scrolled
27
- if (isOpened && pageHasScroll) {
28
- setWithShadow(false);
29
- }
30
- }, [pageHasScroll]);
25
+ }, []);
31
26
  const onMenuScroll = (0, react_1.useCallback)((scrollTop) => {
32
- // enable header's shadow on mobile if mobile menu started to scroll
33
- setWithShadow(scrollTop > 0);
34
27
  if (!pageHasScroll) {
35
28
  setWithBackground(scrollTop > 0);
36
29
  }
@@ -58,11 +51,9 @@ const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, className, scr
58
51
  return (react_1.default.createElement(route_change_1.RouteChangeHandlerContext.Provider, { value: setupRouteChangeHandler },
59
52
  react_1.default.createElement("header", { className: b({
60
53
  search: isSearchMode,
54
+ 'with-background': withBackground,
61
55
  }, className), ref: headerRef },
62
- react_1.default.createElement("div", { className: b('container', {
63
- 'with-background': withBackground,
64
- 'with-shadow': withShadow,
65
- }) },
56
+ react_1.default.createElement("div", { className: b('container') },
66
57
  react_1.default.createElement("div", { className: b('left') },
67
58
  logo && (react_1.default.createElement("a", Object.assign({ href: logo.href, className: b('logo') }, (0, gravity_ui_page_constructor_1.getLinkProps)(logo.href || '')), logo.src && (react_1.default.createElement("img", { className: b('logo-img'), alt: logo.alt, src: logo.src })))),
68
59
  left ? (react_1.default.createElement("div", { className: b('navigation') },
@@ -71,10 +62,11 @@ const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, className, scr
71
62
  right ? (react_1.default.createElement("div", { className: b('navigation') },
72
63
  react_1.default.createElement(NHNavigation_1.NHNavigation, { data: right, headerRef: headerRef }))) : null,
73
64
  react_1.default.createElement("div", { className: b('wrap') },
74
- react_1.default.createElement("div", { className: b('icons-container') }, renderSearch && renderSearch({ onActiveToggle: toggleSearch })),
75
- showButtonsContainer &&
76
- (buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (react_1.default.createElement(gravity_ui_page_constructor_1.Button, Object.assign({}, button, { size: "l", key: button.text }))))),
77
- login && react_1.default.createElement(NHLoginButton_1.NHLoginButton, { data: login, headerRef: headerRef }),
65
+ renderSearch && (react_1.default.createElement("div", { className: b('icons-container') }, renderSearch({ onActiveToggle: toggleSearch }))),
66
+ react_1.default.createElement("div", { className: b('buttons') },
67
+ showButtonsContainer &&
68
+ (buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (react_1.default.createElement(gravity_ui_page_constructor_1.Button, Object.assign({}, button, { className: b('button'), size: "l", key: button.text }))))),
69
+ login && react_1.default.createElement(NHLoginButton_1.NHLoginButton, { data: login, headerRef: headerRef })),
78
70
  mobile ? (react_1.default.createElement(NHMobileNavigation_1.NHMobileNavigation, { toogleOpen: toggleMobileNavigationPopup, isOpened: isMobileNavigationOpen, isSearchOpen: isSearchMode, data: mobile, buttons: buttons, onMenuScroll: onMenuScroll, popupClassName: b('user-popup') })) : null))))));
79
71
  };
80
72
  exports.NewHeader = NewHeader;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ChevronDown: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChevronDown = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const ChevronDown = (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: "M10.4697 6.46967C10.7626 6.17678 11.2373 6.17678 11.5302 6.46967C11.8231 6.76256 11.8231 7.23732 11.5302 7.53022L8.53705 10.5234C8.24031 10.8199 7.75957 10.8199 7.46283 10.5234L4.46967 7.53022C4.17678 7.23732 4.17678 6.76256 4.46967 6.46967C4.76256 6.17678 5.23732 6.17678 5.53022 6.46967L7.99994 8.9394L10.4697 6.46967Z", fill: "currentColor" })));
8
+ exports.ChevronDown = ChevronDown;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ChevronUp: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChevronUp = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importDefault(require("react"));
6
+ const ChevronUp = (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: "M7.52039 5.42501C7.81886 5.18147 8.2587 5.19859 8.53699 5.47677L11.5302 8.46993C11.8229 8.76283 11.823 9.23762 11.5302 9.53048C11.2373 9.82321 10.7625 9.82321 10.4696 9.53048L7.99988 7.06075L5.53016 9.53048C5.23729 9.82321 4.76247 9.82321 4.46961 9.53048C4.17676 9.23762 4.17684 8.76283 4.46961 8.46993L7.46277 5.47677L7.52039 5.42501Z", fill: "currentColor" })));
8
+ exports.ChevronUp = ChevronUp;
@@ -6,9 +6,12 @@ unpredictable css rules order in build */
6
6
  height: 36px;
7
7
  gap: 4px;
8
8
  padding: 0 8px 0 12px;
9
- border-radius: 8px;
10
9
  background: var(--g-color-base-brand);
11
10
  color: var(--g-color-text-brand-contrast);
11
+ border-radius: var(--g-button-border-radius, 8px);
12
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
13
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
14
+ font-weight: 500;
12
15
  }
13
16
 
14
17
  .pc-addons-nh-login-button:hover {
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NHLoginButton = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
- const icons_1 = require("@gravity-ui/icons");
7
6
  const uikit_1 = require("@gravity-ui/uikit");
8
7
  const cn_1 = require("../../../../utils/cn");
9
8
  const constants_1 = require("../../constants");
9
+ const ChevronDown_1 = require("../ChevronDown");
10
+ const ChevronUp_1 = require("../ChevronUp");
10
11
  const NHLoginPopup_1 = require("../NHLoginPopup/NHLoginPopup");
11
12
  const NHNavigationPopup_1 = require("../NHNavigationPopup/NHNavigationPopup");
12
13
  const b = (0, cn_1.block)('nh-login-button');
@@ -44,7 +45,7 @@ const NHLoginButton = ({ data, headerRef, setupRouteChangeHandler }) => {
44
45
  }), [handleMouseLeave, setupRouteChangeHandler]);
45
46
  return (react_1.default.createElement("div", { className: b(), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
46
47
  data.text,
47
- react_1.default.createElement(uikit_1.Icon, { data: isActive ? icons_1.ChevronUp : icons_1.ChevronDown, size: 14 }),
48
+ react_1.default.createElement(uikit_1.Icon, { data: isActive ? ChevronUp_1.ChevronUp : ChevronDown_1.ChevronDown, size: 16 }),
48
49
  isActive && (react_1.default.createElement(NHNavigationPopup_1.NHNavigationPopup, { headerRef: headerRef },
49
50
  react_1.default.createElement(NHLoginPopup_1.NHLoginPopup, Object.assign({}, data))))));
50
51
  };
@@ -8,6 +8,11 @@ unpredictable css rules order in build */
8
8
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
9
9
  }
10
10
 
11
+ @media (min-width: 1081px) {
12
+ .pc-addons-nh-mobile-navigation {
13
+ display: none;
14
+ }
15
+ }
11
16
  .pc-addons-nh-mobile-navigation__icon {
12
17
  display: none;
13
18
  }
@@ -37,7 +42,7 @@ unpredictable css rules order in build */
37
42
  margin-top: 8px;
38
43
  }
39
44
 
40
- @media (max-width: 769px) {
45
+ @media (max-width: 1081px) {
41
46
  .pc-addons-nh-mobile-navigation__icon {
42
47
  display: block;
43
48
  }
@@ -8,7 +8,7 @@ unpredictable css rules order in build */
8
8
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
9
9
  display: flex;
10
10
  align-items: center;
11
- gap: 20px;
11
+ gap: 4px;
12
12
  }
13
13
 
14
14
  @media (max-width: 768px) {
@@ -16,7 +16,7 @@ unpredictable css rules order in build */
16
16
  display: none;
17
17
  }
18
18
  }
19
- @media (max-width: 769px) {
19
+ @media (max-width: 1081px) {
20
20
  .pc-addons-nh-navigation {
21
21
  display: none;
22
22
  }
@@ -6,7 +6,7 @@ unpredictable css rules order in build */
6
6
  }
7
7
 
8
8
  .pc-addons-nh-navigation-item:hover .pc-addons-nh-navigation-item__text {
9
- color: var(--g-color-text-link);
9
+ background-color: rgb(245, 246, 247);
10
10
  }
11
11
 
12
12
  .pc-addons-nh-navigation-item_disable {
@@ -25,6 +25,11 @@ unpredictable css rules order in build */
25
25
  box-shadow: 0 4px 24px var(--g-color-base-generic-hover), 0 2px 8px var(--g-color-base-generic-hover);
26
26
  }
27
27
 
28
+ @media (max-width: 1248px) {
29
+ .pc-addons-nh-navigation-item__icon {
30
+ display: none;
31
+ }
32
+ }
28
33
  .pc-addons-nh-navigation-item__text {
29
34
  display: inline-block;
30
35
  margin: 0;
@@ -37,17 +42,15 @@ unpredictable css rules order in build */
37
42
  cursor: pointer;
38
43
  color: inherit;
39
44
  text-decoration: none;
45
+ padding: 8px;
46
+ border-radius: 8px;
47
+ font-weight: 500;
40
48
  display: flex;
41
49
  align-items: center;
42
- gap: 4px;
43
50
  color: var(--g-color-text-primary);
44
51
  position: relative;
45
52
  }
46
53
 
47
- .pc-addons-nh-navigation-item__text_active {
48
- color: var(--g-color-text-link);
49
- }
50
-
51
54
  .pc-addons-nh-navigation-item__text_cursor_default {
52
55
  cursor: default;
53
56
  }
@@ -4,12 +4,13 @@ exports.NHNavigationItem = void 0;
4
4
  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
- const icons_1 = require("@gravity-ui/icons");
8
7
  const uikit_1 = require("@gravity-ui/uikit");
9
8
  const cn_1 = require("../../../../utils/cn");
10
9
  const constants_1 = require("../../constants");
11
10
  const route_change_1 = require("../../contexts/route-change");
12
11
  const models_1 = require("../../models");
12
+ const ChevronDown_1 = require("../ChevronDown");
13
+ const ChevronUp_1 = require("../ChevronUp");
13
14
  const b = (0, cn_1.block)('nh-navigation-item');
14
15
  const NHNavigationItem = ({ item, isActive, handleActiveTab, index, children, tooltipId, }) => {
15
16
  var _a, _b, _c, _d;
@@ -27,7 +28,7 @@ const NHNavigationItem = ({ item, isActive, handleActiveTab, index, children, to
27
28
  return (react_1.default.createElement("li", { key: item.title, className: b({}), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
28
29
  react_1.default.createElement("button", { className: b('text', { active: isActive, cursor: 'default' }), onClick: handleMouseEnter, "aria-expanded": isActive, "aria-controls": tooltipId },
29
30
  item.title,
30
- react_1.default.createElement(uikit_1.Icon, { data: isActive ? icons_1.ChevronUp : icons_1.ChevronDown, size: 14 })),
31
+ react_1.default.createElement(uikit_1.Icon, { className: b('icon'), data: isActive ? ChevronUp_1.ChevronUp : ChevronDown_1.ChevronDown, size: 16 })),
31
32
  children));
32
33
  };
33
34
  exports.NHNavigationItem = NHNavigationItem;
@@ -1,7 +1,10 @@
1
1
  .pc-addons-nh-navigation-popup {
2
2
  position: absolute;
3
- margin: 0 32px;
4
- width: calc(100% - 64px);
3
+ left: 0;
4
+ right: 0;
5
+ margin: 0 auto;
6
+ max-width: 1248px;
7
+ width: 100%;
5
8
  z-index: 10;
6
9
  }
7
10
 
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 900px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -4,42 +4,52 @@ unpredictable css rules order in build */
4
4
  --g-scrollbar-width: 8px;
5
5
  --g-color-scroll-handle: var(--g-color-base-generic);
6
6
  --g-color-scroll-handle-hover: var(--g-color-line-generic);
7
- position: relative;
8
- max-width: 1328px;
9
- margin: 0 auto;
10
7
  width: 100%;
11
8
  z-index: 100;
9
+ background: var(--pc-transparent);
10
+ }
11
+
12
+ .pc-addons-new-header_with-background {
13
+ background: var(--g-color-base-background);
12
14
  }
13
15
 
14
16
  .pc-addons-new-header__container {
17
+ position: relative;
15
18
  width: 100%;
16
- padding: 0 32px;
19
+ max-width: 1328px;
20
+ padding: 0 40px;
21
+ margin: 0 auto;
17
22
  display: flex;
18
23
  align-items: center;
19
24
  justify-content: space-between;
20
25
  height: 64px;
21
- background: var(--pc-transparent);
22
26
  border-radius: var(--pc-border-radius, 24px);
23
27
  }
24
28
 
25
- .pc-addons-new-header__container_with-background {
26
- background: var(--g-color-base-background);
27
- box-shadow: 0 4px 24px var(--g-color-base-generic);
29
+ @media (max-width: 1248px) {
30
+ .pc-addons-new-header__container {
31
+ padding: 0 16px;
32
+ }
28
33
  }
29
-
30
34
  .pc-addons-new-header__left, .pc-addons-new-header__right {
31
35
  display: flex;
32
36
  align-items: center;
33
- gap: 40px;
34
37
  }
35
38
 
36
39
  .pc-addons-new-header__left {
37
40
  margin-right: 32px;
41
+ gap: 20px;
38
42
  }
39
43
 
44
+ @media (max-width: 1248px) {
45
+ .pc-addons-new-header__left {
46
+ gap: 12px;
47
+ }
48
+ }
40
49
  .pc-addons-new-header__right {
41
50
  justify-content: flex-end;
42
51
  width: 100%;
52
+ gap: 8px;
43
53
  }
44
54
 
45
55
  .pc-addons-new-header__wrap {
@@ -127,20 +137,43 @@ unpredictable css rules order in build */
127
137
  box-shadow: 0 3px 10px var(--g-color-base-generic-hover);
128
138
  }
129
139
 
140
+ .pc-addons-new-header__logo-img {
141
+ display: block;
142
+ height: 36px;
143
+ }
144
+
145
+ .pc-addons-new-header_search .pc-addons-new-header__left,
146
+ .pc-addons-new-header_search .pc-addons-new-header__right > div:not(.pc-addons-new-header__icons-container) {
147
+ display: none;
148
+ }
149
+
150
+ .pc-addons-new-header__buttons {
151
+ display: flex;
152
+ gap: 8px;
153
+ }
154
+
155
+ @media (max-width: 577px) {
156
+ .pc-addons-new-header__buttons {
157
+ display: none;
158
+ }
159
+ }
160
+ .pc-addons-new-header__button {
161
+ display: flex;
162
+ align-items: center;
163
+ padding: 0 12px;
164
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
165
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
166
+ font-weight: 500;
167
+ }
168
+
130
169
  @media (max-width: 1081px) {
131
170
  .pc-addons-new-header__left {
132
171
  margin-right: 0;
133
172
  }
134
173
  }
135
- @media (min-width: 769px) {
136
- .pc-addons-new-header__logo-img {
137
- height: 30px;
138
- }
139
- }
140
- @media (max-width: 768px) {
174
+ @media (max-width: 769px) {
141
175
  .pc-addons-new-header {
142
176
  max-width: 100%;
143
- padding: 16px 40px 16px 48px;
144
177
  border-top-left-radius: 0;
145
178
  border-top-right-radius: 0;
146
179
  }
@@ -151,18 +184,8 @@ unpredictable css rules order in build */
151
184
  flex-direction: row-reverse;
152
185
  justify-content: flex-start;
153
186
  }
154
- .pc-addons-new-header_search .pc-addons-new-header__logo {
155
- display: none;
156
- }
157
- .pc-addons-new-header_search .pc-addons-new-header__back {
158
- display: block;
159
- }
160
187
  }
161
- @media (max-width: 576px) {
162
- .pc-addons-new-header {
163
- padding-left: 24px;
164
- padding-right: 16px;
165
- }
188
+ @media (max-width: 577px) {
166
189
  .pc-addons-new-header__container {
167
190
  height: 64px;
168
191
  }
@@ -12,7 +12,6 @@ export const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, classNa
12
12
  const { logo, buttons, left, right, mobile, login } = data;
13
13
  const headerRef = useRef(null);
14
14
  const [withBackground, setWithBackground] = useState(false);
15
- const [withShadow, setWithShadow] = useState(true);
16
15
  const [isSearchMode, setIsSearchMode] = useState(false);
17
16
  const [isMobileNavigationOpen, setIsMobileNavigationOpen] = useState(false);
18
17
  const [pageHasScroll, setPageHasScroll] = useState(false);
@@ -20,14 +19,8 @@ export const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, classNa
20
19
  const toggleSearch = useCallback((isActive) => setIsSearchMode(isActive), []);
21
20
  const toggleMobileNavigationPopup = useCallback((isOpened) => {
22
21
  setIsMobileNavigationOpen(isOpened);
23
- // disable header's shadow on mobile with opened menu and if page was scrolled
24
- if (isOpened && pageHasScroll) {
25
- setWithShadow(false);
26
- }
27
- }, [pageHasScroll]);
22
+ }, []);
28
23
  const onMenuScroll = useCallback((scrollTop) => {
29
- // enable header's shadow on mobile if mobile menu started to scroll
30
- setWithShadow(scrollTop > 0);
31
24
  if (!pageHasScroll) {
32
25
  setWithBackground(scrollTop > 0);
33
26
  }
@@ -55,11 +48,9 @@ export const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, classNa
55
48
  return (React.createElement(RouteChangeHandlerContext.Provider, { value: setupRouteChangeHandler },
56
49
  React.createElement("header", { className: b({
57
50
  search: isSearchMode,
51
+ 'with-background': withBackground,
58
52
  }, className), ref: headerRef },
59
- React.createElement("div", { className: b('container', {
60
- 'with-background': withBackground,
61
- 'with-shadow': withShadow,
62
- }) },
53
+ React.createElement("div", { className: b('container') },
63
54
  React.createElement("div", { className: b('left') },
64
55
  logo && (React.createElement("a", Object.assign({ href: logo.href, className: b('logo') }, getLinkProps(logo.href || '')), logo.src && (React.createElement("img", { className: b('logo-img'), alt: logo.alt, src: logo.src })))),
65
56
  left ? (React.createElement("div", { className: b('navigation') },
@@ -68,9 +59,10 @@ export const NewHeader = ({ data, setupRouteChangeHandler, renderSearch, classNa
68
59
  right ? (React.createElement("div", { className: b('navigation') },
69
60
  React.createElement(NHNavigation, { data: right, headerRef: headerRef }))) : null,
70
61
  React.createElement("div", { className: b('wrap') },
71
- React.createElement("div", { className: b('icons-container') }, renderSearch && renderSearch({ onActiveToggle: toggleSearch })),
72
- showButtonsContainer &&
73
- (buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (React.createElement(PCButton, Object.assign({}, button, { size: "l", key: button.text }))))),
74
- login && React.createElement(NHLoginButton, { data: login, headerRef: headerRef }),
62
+ renderSearch && (React.createElement("div", { className: b('icons-container') }, renderSearch({ onActiveToggle: toggleSearch }))),
63
+ React.createElement("div", { className: b('buttons') },
64
+ showButtonsContainer &&
65
+ (buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (React.createElement(PCButton, Object.assign({}, button, { className: b('button'), size: "l", key: button.text }))))),
66
+ login && React.createElement(NHLoginButton, { data: login, headerRef: headerRef })),
75
67
  mobile ? (React.createElement(NHMobileNavigation, { toogleOpen: toggleMobileNavigationPopup, isOpened: isMobileNavigationOpen, isSearchOpen: isSearchMode, data: mobile, buttons: buttons, onMenuScroll: onMenuScroll, popupClassName: b('user-popup') })) : null))))));
76
68
  };
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ChevronDown: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export const ChevronDown = (props) => (React.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),
3
+ React.createElement("path", { xmlns: "http://www.w3.org/2000/svg", d: "M10.4697 6.46967C10.7626 6.17678 11.2373 6.17678 11.5302 6.46967C11.8231 6.76256 11.8231 7.23732 11.5302 7.53022L8.53705 10.5234C8.24031 10.8199 7.75957 10.8199 7.46283 10.5234L4.46967 7.53022C4.17678 7.23732 4.17678 6.76256 4.46967 6.46967C4.76256 6.17678 5.23732 6.17678 5.53022 6.46967L7.99994 8.9394L10.4697 6.46967Z", fill: "currentColor" })));
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const ChevronUp: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export const ChevronUp = (props) => (React.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),
3
+ React.createElement("path", { xmlns: "http://www.w3.org/2000/svg", d: "M7.52039 5.42501C7.81886 5.18147 8.2587 5.19859 8.53699 5.47677L11.5302 8.46993C11.8229 8.76283 11.823 9.23762 11.5302 9.53048C11.2373 9.82321 10.7625 9.82321 10.4696 9.53048L7.99988 7.06075L5.53016 9.53048C5.23729 9.82321 4.76247 9.82321 4.46961 9.53048C4.17676 9.23762 4.17684 8.76283 4.46961 8.46993L7.46277 5.47677L7.52039 5.42501Z", fill: "currentColor" })));
@@ -6,9 +6,12 @@ unpredictable css rules order in build */
6
6
  height: 36px;
7
7
  gap: 4px;
8
8
  padding: 0 8px 0 12px;
9
- border-radius: 8px;
10
9
  background: var(--g-color-base-brand);
11
10
  color: var(--g-color-text-brand-contrast);
11
+ border-radius: var(--g-button-border-radius, 8px);
12
+ font-size: var(--g-text-body-2-font-size, var(--pc-text-body-2-font-size));
13
+ line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
14
+ font-weight: 500;
12
15
  }
13
16
 
14
17
  .pc-addons-nh-login-button:hover {
@@ -1,8 +1,9 @@
1
1
  import React, { useCallback, useEffect, useState } from 'react';
2
- import { ChevronDown, ChevronUp } from '@gravity-ui/icons';
3
2
  import { Icon } from '@gravity-ui/uikit';
4
3
  import { block } from '../../../../utils/cn';
5
4
  import { SWITCH_MENU_TAB_TIMEOUT } from '../../constants';
5
+ import { ChevronDown } from '../ChevronDown';
6
+ import { ChevronUp } from '../ChevronUp';
6
7
  import { NHLoginPopup } from '../NHLoginPopup/NHLoginPopup';
7
8
  import { NHNavigationPopup } from '../NHNavigationPopup/NHNavigationPopup';
8
9
  import './NHLoginButton.css';
@@ -41,7 +42,7 @@ export const NHLoginButton = ({ data, headerRef, setupRouteChangeHandler }) => {
41
42
  }), [handleMouseLeave, setupRouteChangeHandler]);
42
43
  return (React.createElement("div", { className: b(), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
43
44
  data.text,
44
- React.createElement(Icon, { data: isActive ? ChevronUp : ChevronDown, size: 14 }),
45
+ React.createElement(Icon, { data: isActive ? ChevronUp : ChevronDown, size: 16 }),
45
46
  isActive && (React.createElement(NHNavigationPopup, { headerRef: headerRef },
46
47
  React.createElement(NHLoginPopup, Object.assign({}, data))))));
47
48
  };
@@ -8,6 +8,11 @@ unpredictable css rules order in build */
8
8
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
9
9
  }
10
10
 
11
+ @media (min-width: 1081px) {
12
+ .pc-addons-nh-mobile-navigation {
13
+ display: none;
14
+ }
15
+ }
11
16
  .pc-addons-nh-mobile-navigation__icon {
12
17
  display: none;
13
18
  }
@@ -37,7 +42,7 @@ unpredictable css rules order in build */
37
42
  margin-top: 8px;
38
43
  }
39
44
 
40
- @media (max-width: 769px) {
45
+ @media (max-width: 1081px) {
41
46
  .pc-addons-nh-mobile-navigation__icon {
42
47
  display: block;
43
48
  }
@@ -8,7 +8,7 @@ unpredictable css rules order in build */
8
8
  line-height: var(--g-text-body-2-line-height, var(--pc-text-body-2-line-height));
9
9
  display: flex;
10
10
  align-items: center;
11
- gap: 20px;
11
+ gap: 4px;
12
12
  }
13
13
 
14
14
  @media (max-width: 768px) {
@@ -16,7 +16,7 @@ unpredictable css rules order in build */
16
16
  display: none;
17
17
  }
18
18
  }
19
- @media (max-width: 769px) {
19
+ @media (max-width: 1081px) {
20
20
  .pc-addons-nh-navigation {
21
21
  display: none;
22
22
  }
@@ -6,7 +6,7 @@ unpredictable css rules order in build */
6
6
  }
7
7
 
8
8
  .pc-addons-nh-navigation-item:hover .pc-addons-nh-navigation-item__text {
9
- color: var(--g-color-text-link);
9
+ background-color: rgb(245, 246, 247);
10
10
  }
11
11
 
12
12
  .pc-addons-nh-navigation-item_disable {
@@ -25,6 +25,11 @@ unpredictable css rules order in build */
25
25
  box-shadow: 0 4px 24px var(--g-color-base-generic-hover), 0 2px 8px var(--g-color-base-generic-hover);
26
26
  }
27
27
 
28
+ @media (max-width: 1248px) {
29
+ .pc-addons-nh-navigation-item__icon {
30
+ display: none;
31
+ }
32
+ }
28
33
  .pc-addons-nh-navigation-item__text {
29
34
  display: inline-block;
30
35
  margin: 0;
@@ -37,17 +42,15 @@ unpredictable css rules order in build */
37
42
  cursor: pointer;
38
43
  color: inherit;
39
44
  text-decoration: none;
45
+ padding: 8px;
46
+ border-radius: 8px;
47
+ font-weight: 500;
40
48
  display: flex;
41
49
  align-items: center;
42
- gap: 4px;
43
50
  color: var(--g-color-text-primary);
44
51
  position: relative;
45
52
  }
46
53
 
47
- .pc-addons-nh-navigation-item__text_active {
48
- color: var(--g-color-text-link);
49
- }
50
-
51
54
  .pc-addons-nh-navigation-item__text_cursor_default {
52
55
  cursor: default;
53
56
  }
@@ -1,11 +1,12 @@
1
1
  import React, { useCallback, useContext, useEffect } from 'react';
2
2
  import { getLinkProps } from '@doyourjob/gravity-ui-page-constructor';
3
- import { ChevronDown, ChevronUp } from '@gravity-ui/icons';
4
3
  import { Icon } from '@gravity-ui/uikit';
5
4
  import { block } from '../../../../utils/cn';
6
5
  import { NO_MENU_TAB_SELECTED } from '../../constants';
7
6
  import { RouteChangeHandlerContext } from '../../contexts/route-change';
8
7
  import { NHNavigationItemType } from '../../models';
8
+ import { ChevronDown } from '../ChevronDown';
9
+ import { ChevronUp } from '../ChevronUp';
9
10
  import './NHNavigationItem.css';
10
11
  const b = block('nh-navigation-item');
11
12
  export const NHNavigationItem = ({ item, isActive, handleActiveTab, index, children, tooltipId, }) => {
@@ -24,6 +25,6 @@ export const NHNavigationItem = ({ item, isActive, handleActiveTab, index, child
24
25
  return (React.createElement("li", { key: item.title, className: b({}), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave },
25
26
  React.createElement("button", { className: b('text', { active: isActive, cursor: 'default' }), onClick: handleMouseEnter, "aria-expanded": isActive, "aria-controls": tooltipId },
26
27
  item.title,
27
- React.createElement(Icon, { data: isActive ? ChevronUp : ChevronDown, size: 14 })),
28
+ React.createElement(Icon, { className: b('icon'), data: isActive ? ChevronUp : ChevronDown, size: 16 })),
28
29
  children));
29
30
  };
@@ -1,7 +1,10 @@
1
1
  .pc-addons-nh-navigation-popup {
2
2
  position: absolute;
3
- margin: 0 32px;
4
- width: calc(100% - 64px);
3
+ left: 0;
4
+ right: 0;
5
+ margin: 0 auto;
6
+ max-width: 1248px;
7
+ width: 100%;
5
8
  z-index: 10;
6
9
  }
7
10
 
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 1200px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
@@ -5,7 +5,6 @@ unpredictable css rules order in build */
5
5
  box-shadow: 0 4px 24px var(--g-color-base-generic), 0 2px 8px var(--g-color-base-generic);
6
6
  max-height: calc(100vh - 64px - 64px);
7
7
  overflow: auto;
8
- max-width: 900px;
9
8
  width: 100%;
10
9
  border-radius: var(--pc-border-radius, 24px);
11
10
  scrollbar-width: none;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doyourjob/gravity-ui-page-constructor-addons",
3
- "version": "2.1.26",
3
+ "version": "2.1.28",
4
4
  "description": "Components and plugins for @doyourjob/gravity-ui-page-constructor",
5
5
  "license": "MIT",
6
6
  "repository": {