@comicrelief/component-library 8.54.1 → 8.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Atoms/Logo/Logo.js +0 -5
- package/dist/components/Atoms/Logo/Logo.test.js +1 -1
- package/dist/components/Atoms/LogoNav2026/LogoNav2026.test.js +94 -0
- package/dist/components/Atoms/LogoNav2026/_LogoNav2026.js +63 -0
- package/dist/components/Atoms/LogoNav2026/assets/cr-logo-mob.svg +14 -0
- package/dist/components/Atoms/LogoNav2026/assets/cr-logo.svg +14 -0
- package/dist/components/Molecules/LogoLinked/LogoLinked.md +6 -1
- package/dist/components/Organisms/Header/HeaderNav/HeaderNav.style.js +3 -3
- package/dist/components/Organisms/Header2025/Header2025.md +1 -1
- package/dist/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.js +1 -1
- package/dist/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.style.js +3 -3
- package/dist/components/Organisms/Header2026/Burger/BurgerMenu.js +25 -0
- package/dist/components/Organisms/Header2026/Burger/BurgerMenu.style.js +58 -0
- package/dist/components/Organisms/Header2026/Header2026.js +148 -0
- package/dist/components/Organisms/Header2026/Header2026.md +14 -0
- package/dist/components/Organisms/Header2026/Header2026.style.js +129 -0
- package/dist/components/Organisms/Header2026/Navs/Navs.js +209 -0
- package/dist/components/Organisms/Header2026/Navs/Navs.style.js +104 -0
- package/dist/components/Organisms/Header2026/Navs/PrimaryNavItem.js +227 -0
- package/dist/components/Organisms/Header2026/Navs/PrimaryNavItem.style.js +401 -0
- package/dist/components/Organisms/Header2026/Navs/arrow-right.png +0 -0
- package/dist/components/Organisms/Header2026/Navs/arrow.svg +6 -0
- package/dist/components/Organisms/Header2026/Navs/chevron-down.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/arrow-icon.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/chevron-icon.svg +3 -0
- package/dist/components/Organisms/Header2026/assets/search-icon.svg +10 -0
- package/dist/components/Organisms/Header2026/header2026.test.js +24 -0
- package/dist/components/Organisms/Header2026/mockData/mockData.json +569 -0
- package/dist/components/Organisms/Header2026/mockData/query.graphql +64 -0
- package/dist/theme/shared/animations.js +6 -1
- package/dist/utils/navHelper.js +75 -3
- package/dist/utils/remove-extra-styles-in-preview.css +14 -0
- package/dist/utils/urlHelper.js +30 -0
- package/package.json +1 -1
- package/src/components/Atoms/Logo/Logo.js +0 -4
- package/src/components/Atoms/Logo/Logo.test.js +5 -5
- package/src/components/Atoms/LogoNav2026/LogoNav2026.test.js +91 -0
- package/src/components/Atoms/LogoNav2026/_LogoNav2026.js +75 -0
- package/src/components/Atoms/LogoNav2026/assets/cr-logo-mob.svg +14 -0
- package/src/components/Atoms/LogoNav2026/assets/cr-logo.svg +14 -0
- package/src/components/Molecules/LogoLinked/LogoLinked.md +6 -1
- package/src/components/Organisms/Header/HeaderNav/HeaderNav.style.js +2 -2
- package/src/components/Organisms/Header2025/Header2025.md +1 -1
- package/src/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.js +1 -1
- package/src/components/Organisms/Header2025/HeaderNav2025/HeaderNav2025.style.js +2 -2
- package/src/components/Organisms/Header2026/Burger/BurgerMenu.js +26 -0
- package/src/components/Organisms/Header2026/Burger/BurgerMenu.style.js +104 -0
- package/src/components/Organisms/Header2026/Header2026.js +215 -0
- package/src/components/Organisms/Header2026/Header2026.md +14 -0
- package/src/components/Organisms/Header2026/Header2026.style.js +195 -0
- package/src/components/Organisms/Header2026/Navs/Navs.js +251 -0
- package/src/components/Organisms/Header2026/Navs/Navs.style.js +168 -0
- package/src/components/Organisms/Header2026/Navs/PrimaryNavItem.js +354 -0
- package/src/components/Organisms/Header2026/Navs/PrimaryNavItem.style.js +658 -0
- package/src/components/Organisms/Header2026/Navs/arrow-right.png +0 -0
- package/src/components/Organisms/Header2026/Navs/arrow.svg +6 -0
- package/src/components/Organisms/Header2026/Navs/chevron-down.svg +3 -0
- package/src/components/Organisms/Header2026/assets/arrow-icon.svg +3 -0
- package/src/components/Organisms/Header2026/assets/chevron-icon.svg +3 -0
- package/src/components/Organisms/Header2026/assets/search-icon.svg +10 -0
- package/src/components/Organisms/Header2026/header2026.test.js +22 -0
- package/src/components/Organisms/Header2026/mockData/mockData.json +569 -0
- package/src/components/Organisms/Header2026/mockData/query.graphql +64 -0
- package/src/theme/crTheme/theme.js +0 -1
- package/src/theme/shared/animations.js +43 -2
- package/src/utils/navHelper.js +82 -2
- package/src/utils/remove-extra-styles-in-preview.css +14 -0
- package/src/utils/urlHelper.js +27 -0
|
@@ -17,11 +17,6 @@ const Image = _styledComponents.default.img.withConfig({
|
|
|
17
17
|
displayName: "Logo__Image",
|
|
18
18
|
componentId: "sc-18yiye8-0"
|
|
19
19
|
})(["object-fit:cover;width:100%;display:block;height:auto;margin-right:", ";"], (0, _spacing.default)('md'));
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Logo wrapper
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
20
|
const LogoWrapper = _styledComponents.default.div.withConfig({
|
|
26
21
|
displayName: "Logo__LogoWrapper",
|
|
27
22
|
componentId: "sc-18yiye8-1"
|
|
@@ -5,7 +5,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
5
5
|
require("jest-styled-components");
|
|
6
6
|
var _shallowWithTheme = _interopRequireDefault(require("../../../../tests/hoc/shallowWithTheme"));
|
|
7
7
|
var _Logo = _interopRequireDefault(require("./Logo"));
|
|
8
|
-
it(
|
|
8
|
+
it('renders correctly', () => {
|
|
9
9
|
const tree = (0, _shallowWithTheme.default)( /*#__PURE__*/_react.default.createElement(_Logo.default, {
|
|
10
10
|
rotate: true
|
|
11
11
|
})).toJSON();
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
require("jest-styled-components");
|
|
6
|
+
var _shallowWithTheme = _interopRequireDefault(require("../../../../tests/hoc/shallowWithTheme"));
|
|
7
|
+
var _LogoNav = _interopRequireDefault(require("./_LogoNav2026"));
|
|
8
|
+
it('renders correctly', () => {
|
|
9
|
+
const tree = (0, _shallowWithTheme.default)( /*#__PURE__*/_react.default.createElement(_LogoNav.default, {
|
|
10
|
+
rotate: true
|
|
11
|
+
})).toJSON();
|
|
12
|
+
expect(tree).toMatchInlineSnapshot(`
|
|
13
|
+
.c0 img {
|
|
14
|
+
-webkit-animation: jaJSCW 0.4s ease-in-out forwards;
|
|
15
|
+
animation: jaJSCW 0.4s ease-in-out forwards;
|
|
16
|
+
-webkit-animation-name: blCpAO;
|
|
17
|
+
animation-name: blCpAO;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.c0:hover img,
|
|
21
|
+
.c0:focus img {
|
|
22
|
+
-webkit-animation: jaJSCW 0.4s ease-in-out forwards;
|
|
23
|
+
animation: jaJSCW 0.4s ease-in-out forwards;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.c1 {
|
|
27
|
+
display: block;
|
|
28
|
+
width: auto;
|
|
29
|
+
height: 100%;
|
|
30
|
+
max-width: 100%;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.c2 {
|
|
34
|
+
z-index: 3;
|
|
35
|
+
width: 49px;
|
|
36
|
+
height: 32px;
|
|
37
|
+
display: block;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.c3 {
|
|
41
|
+
z-index: 3;
|
|
42
|
+
display: none;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@media (min-width:320px) {
|
|
46
|
+
.c2 {
|
|
47
|
+
display: none;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@media (min-width:320px) {
|
|
52
|
+
.c3 {
|
|
53
|
+
display: block;
|
|
54
|
+
width: 132px;
|
|
55
|
+
height: 20px;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@media (min-width:740px) {
|
|
60
|
+
.c3 {
|
|
61
|
+
width: 162px;
|
|
62
|
+
height: 25px;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@media (min-width:1024px) {
|
|
67
|
+
.c3 {
|
|
68
|
+
width: 162px;
|
|
69
|
+
min-width: 162px;
|
|
70
|
+
height: 46px;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
<a
|
|
75
|
+
className="c0"
|
|
76
|
+
data-testid="LogoLink"
|
|
77
|
+
href="/"
|
|
78
|
+
title="Go to Comic Relief homepage"
|
|
79
|
+
>
|
|
80
|
+
<img
|
|
81
|
+
alt="Comic Relief logo"
|
|
82
|
+
className="c1 c2"
|
|
83
|
+
data-testid="MobileImage"
|
|
84
|
+
src="mock.asset"
|
|
85
|
+
/>
|
|
86
|
+
<img
|
|
87
|
+
alt="Comic Relief logo"
|
|
88
|
+
className="c1 c3"
|
|
89
|
+
data-testid="DesktopImage"
|
|
90
|
+
src="mock.asset"
|
|
91
|
+
/>
|
|
92
|
+
</a>
|
|
93
|
+
`);
|
|
94
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
10
|
+
var _zIndex = _interopRequireDefault(require("../../../theme/shared/zIndex"));
|
|
11
|
+
var _crLogo = _interopRequireDefault(require("./assets/cr-logo.svg"));
|
|
12
|
+
var _crLogoMob = _interopRequireDefault(require("./assets/cr-logo-mob.svg"));
|
|
13
|
+
var _animations = require("../../../theme/shared/animations");
|
|
14
|
+
const LogoLink = _styledComponents.default.a.withConfig({
|
|
15
|
+
displayName: "_LogoNav2026__LogoLink",
|
|
16
|
+
componentId: "sc-309o9d-0"
|
|
17
|
+
})(["img{", ";}&:hover,&:focus{img{", ";}}"], _animations.pulseOutAnimation, _animations.pulseInAnimation);
|
|
18
|
+
const Image = _styledComponents.default.img.withConfig({
|
|
19
|
+
displayName: "_LogoNav2026__Image",
|
|
20
|
+
componentId: "sc-309o9d-1"
|
|
21
|
+
})(["display:block;width:auto;height:100%;max-width:100%;"]);
|
|
22
|
+
const MobileNavLogo = (0, _styledComponents.default)(Image).withConfig({
|
|
23
|
+
displayName: "_LogoNav2026__MobileNavLogo",
|
|
24
|
+
componentId: "sc-309o9d-2"
|
|
25
|
+
})(["", " width:49px;height:32px;display:block;@media ", "{display:none}"], (0, _zIndex.default)('high'), _ref => {
|
|
26
|
+
let {
|
|
27
|
+
theme
|
|
28
|
+
} = _ref;
|
|
29
|
+
return theme.breakpoints2026('S');
|
|
30
|
+
});
|
|
31
|
+
const DesktopNavLogo = (0, _styledComponents.default)(Image).withConfig({
|
|
32
|
+
displayName: "_LogoNav2026__DesktopNavLogo",
|
|
33
|
+
componentId: "sc-309o9d-3"
|
|
34
|
+
})(["", " display:none;@media ", "{display:block;width:132px;height:20px;}@media ", "{width:162px;height:25px;}@media ", "{width:162px;min-width:162px;height:46px;}"], (0, _zIndex.default)('high'), _ref2 => {
|
|
35
|
+
let {
|
|
36
|
+
theme
|
|
37
|
+
} = _ref2;
|
|
38
|
+
return theme.breakpoints2026('S');
|
|
39
|
+
}, _ref3 => {
|
|
40
|
+
let {
|
|
41
|
+
theme
|
|
42
|
+
} = _ref3;
|
|
43
|
+
return theme.breakpoints2026('M');
|
|
44
|
+
}, _ref4 => {
|
|
45
|
+
let {
|
|
46
|
+
theme
|
|
47
|
+
} = _ref4;
|
|
48
|
+
return theme.breakpoints2026('L');
|
|
49
|
+
});
|
|
50
|
+
const LogoNav2026 = () => /*#__PURE__*/_react.default.createElement(LogoLink, {
|
|
51
|
+
"data-testid": "LogoLink",
|
|
52
|
+
href: "/",
|
|
53
|
+
title: "Go to Comic Relief homepage"
|
|
54
|
+
}, /*#__PURE__*/_react.default.createElement(MobileNavLogo, {
|
|
55
|
+
"data-testid": "MobileImage",
|
|
56
|
+
src: _crLogoMob.default,
|
|
57
|
+
alt: "Comic Relief logo"
|
|
58
|
+
}), /*#__PURE__*/_react.default.createElement(DesktopNavLogo, {
|
|
59
|
+
"data-testid": "DesktopImage",
|
|
60
|
+
src: _crLogo.default,
|
|
61
|
+
alt: "Comic Relief logo"
|
|
62
|
+
}));
|
|
63
|
+
var _default = exports.default = LogoNav2026;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<svg viewBox="0 0 49 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M5.94034 31.9872C5.75158 31.4083 5.70125 30.5149 5.60058 28.6903C5.52508 27.2432 5.17274 26.5008 4.0528 26.5008H3.59979V31.9998H0.101562V16.7988H4.46806C7.86562 16.7988 9.38823 18.5857 9.38823 21.2786C9.38823 23.6695 8.30605 24.8523 6.75827 25.1166C8.3438 25.4815 8.88489 26.614 8.99814 28.5141C9.12398 30.5149 9.09881 31.2825 9.42598 31.9872H5.94034ZM3.93955 23.6946C5.36149 23.6946 5.91517 23.2416 5.91517 21.6938C5.91517 20.3222 5.36149 19.6427 3.93955 19.6427H3.59979V23.6946H3.93955Z" fill="#E52631"/>
|
|
4
|
+
<path d="M18.1212 31.9872H10.4326V16.7988H18.1212V19.7182H13.9057V22.8264H17.039V25.7206H13.9057V29.0678H18.1212V31.9872Z" fill="#E52631"/>
|
|
5
|
+
<path d="M22.7391 16.7988V29.0678H26.8413V31.9872H19.2031V16.7988H22.7391Z" fill="#E52631"/>
|
|
6
|
+
<path d="M31.2829 16.7988V31.9872H27.7344V16.7988H31.2829Z" fill="#E52631"/>
|
|
7
|
+
<path d="M40.3057 31.9872H32.6172V16.7988H40.3057V19.7182H36.0903V22.8264H39.2236V25.7206H36.0903V29.0678H40.3057V31.9872Z" fill="#E52631"/>
|
|
8
|
+
<path d="M41.3623 31.9872V16.7988H48.7614V19.7182H44.9109V23.2416H47.7296V26.1107H44.9109V31.9872H41.3623Z" fill="#E52631"/>
|
|
9
|
+
<path d="M3.63665 10.4695C3.63665 11.816 3.80024 12.6842 4.84467 12.6842C5.88911 12.6842 6.05269 11.816 6.05269 10.4695V8.83366H9.50059V9.53834C9.50059 13.0869 8.36807 15.5659 4.92017 15.5659C1.37161 15.5659 0 13.175 0 8.82108V6.74479C0 2.37829 1.37161 0 4.92017 0C8.36807 0 9.50059 2.47896 9.50059 6.02753V6.73221H6.05269V5.09634C6.05269 3.7499 5.88911 2.88164 4.84467 2.88164C3.80024 2.88164 3.63665 3.7499 3.63665 5.09634V10.4695Z" fill="#E52631"/>
|
|
10
|
+
<path d="M20.1353 8.72041C20.1353 13.0869 18.7637 15.5659 15.2151 15.5659C11.6665 15.5659 10.2949 13.0869 10.2949 8.72041V6.84546C10.2949 2.47896 11.6665 0 15.2151 0C18.7637 0 20.1353 2.47896 20.1353 6.84546V8.72041ZM13.9567 10.4192C13.9567 11.7656 14.1707 12.6842 15.2151 12.6842C16.2469 12.6842 16.4735 11.7656 16.4735 10.4192V5.12151C16.4735 3.77507 16.2595 2.85647 15.2151 2.85647C14.1832 2.85647 13.9567 3.77507 13.9567 5.12151V10.4192Z" fill="#E52631"/>
|
|
11
|
+
<path d="M27.3827 7.88999H27.4834L28.9305 0.17627H33.3851V15.3646H30.1134V6.70714H30.0127L28.3517 15.3646H26.137L24.4256 6.70714H24.3249V15.3646H21.2168V0.17627H25.772L27.3827 7.88999Z" fill="#E52631"/>
|
|
12
|
+
<path d="M38.2917 0.17627V15.3646H34.7432V0.17627H38.2917Z" fill="#E52631"/>
|
|
13
|
+
<path d="M43.0497 10.4695C43.0497 11.816 43.2133 12.6842 44.2578 12.6842C45.3022 12.6842 45.4658 11.816 45.4658 10.4695V8.83366H48.9137V9.53834C48.9137 13.0869 47.7812 15.5659 44.3333 15.5659C40.7847 15.5659 39.4131 13.175 39.4131 8.82108V6.74479C39.4131 2.37829 40.7847 0 44.3333 0C47.7812 0 48.9137 2.47896 48.9137 6.02753V6.73221H45.4658V5.09634C45.4658 3.7499 45.3022 2.88164 44.2578 2.88164C43.2133 2.88164 43.0497 3.7499 43.0497 5.09634V10.4695Z" fill="#E52631"/>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<svg viewBox="0 0 813 124" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M28.9 83.3C28.9 94 30.2 100.9 38.5 100.9C46.8 100.9 48.1 94 48.1 83.3V70.3H75.5V75.9C75.5 104.1 66.5 123.8 39.1 123.8C10.9 123.8 0 104.8 0 70.2V53.7C0 19 10.9 0.0999756 39.1 0.0999756C66.5 0.0999756 75.5 19.8 75.5 48V53.6H48.1V40.6C48.1 29.9 46.8 23 38.5 23C30.2 23 28.9 29.9 28.9 40.6V83.3Z" fill="#E52630"/>
|
|
4
|
+
<path d="M160 69.3C160 104 149.1 123.7 120.9 123.7C92.6998 123.7 81.7998 104 81.7998 69.3V54.4C81.7998 19.7 92.6998 0 120.9 0C149.1 0 160 19.7 160 54.4V69.3ZM111 82.9C111 93.6 112.7 100.9 121 100.9C129.2 100.9 131 93.6 131 82.9V40.8C131 30.1 129.3 22.8 121 22.8C112.8 22.8 111 30.1 111 40.8V82.9Z" fill="#E52630"/>
|
|
5
|
+
<path d="M217.7 62.8H218.5L230 1.5H265.4V122.2H239.3V53.4H238.5L225.3 122.2H207.7L194.1 53.4H193.3V122.2H168.6V1.5H204.8L217.7 62.8Z" fill="#E52630"/>
|
|
6
|
+
<path d="M304.3 1.5V122.2H276.1V1.5H304.3Z" fill="#E52630"/>
|
|
7
|
+
<path d="M342.1 83.3C342.1 94 343.4 100.9 351.7 100.9C359.9 100.9 361.3 94 361.3 83.3V70.3H388.7V75.9C388.7 104.1 379.7 123.8 352.3 123.8C324.1 123.8 313.2 104.8 313.2 70.2V53.7C313.2 19 324.1 0.0999756 352.3 0.0999756C379.7 0.0999756 388.7 19.8 388.7 48V53.6H361.3V40.6C361.3 29.9 360 23 351.7 23C343.5 23 342.1 29.9 342.1 40.6V83.3Z" fill="#E52630"/>
|
|
8
|
+
<path d="M472.2 122.2C470.7 117.6 470.3 110.5 469.5 96C468.9 84.5 466.1 78.6 457.2 78.6H453.6V122.3H425.8V1.5H460.5C487.5 1.5 499.6 15.7 499.6 37.1C499.6 56.1 491 65.5 478.7 67.6C491.3 70.5 495.6 79.5 496.5 94.6C497.5 110.5 497.3 116.6 499.9 122.2H472.2ZM456.3 56.3C467.6 56.3 472 52.7 472 40.4C472 29.5 467.6 24.1 456.3 24.1H453.6V56.3H456.3Z" fill="#E52630"/>
|
|
9
|
+
<path d="M569 122.2H507.9V1.5H569V24.7H535.5V49.4H560.4V72.4H535.5V99H569V122.2Z" fill="#E52630"/>
|
|
10
|
+
<path d="M605.6 1.5V99H638.2V122.2H577.5V1.5H605.6Z" fill="#E52630"/>
|
|
11
|
+
<path d="M673.5 1.5V122.2H645.4V1.5H673.5Z" fill="#E52630"/>
|
|
12
|
+
<path d="M745.2 122.2H684.1V1.5H745.2V24.7H711.7V49.4H736.6V72.4H711.7V99H745.2V122.2Z" fill="#E52630"/>
|
|
13
|
+
<path d="M753.7 122.2V1.5H812.5V24.7H781.9V52.7H804.3V75.5H781.9V122.2H753.7Z" fill="#E52630"/>
|
|
14
|
+
</svg>
|
|
@@ -7,5 +7,10 @@
|
|
|
7
7
|
# Comic Relief Logo with hover animation and custom hovertext
|
|
8
8
|
|
|
9
9
|
```js
|
|
10
|
-
<LogoLinked
|
|
10
|
+
<LogoLinked
|
|
11
|
+
animateRotate
|
|
12
|
+
sizeSm="50px"
|
|
13
|
+
sizeMd="60px"
|
|
14
|
+
title="I'm a custom title"
|
|
15
|
+
/>
|
|
11
16
|
```
|
|
@@ -9,7 +9,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
9
9
|
var _Link = _interopRequireDefault(require("../../../Atoms/Link/Link"));
|
|
10
10
|
var _hideVisually = _interopRequireDefault(require("../../../../theme/shared/hideVisually"));
|
|
11
11
|
var _zIndex = _interopRequireDefault(require("../../../../theme/shared/zIndex"));
|
|
12
|
-
var
|
|
12
|
+
var _arrow = _interopRequireDefault(require("../../Header2026/Navs/arrow.svg"));
|
|
13
13
|
const transitionDuration = 0.2;
|
|
14
14
|
const NavLinkClass = (0, _styledComponents.default)(_Link.default).withConfig({
|
|
15
15
|
displayName: "HeaderNavstyle__NavLinkClass",
|
|
@@ -210,12 +210,12 @@ const ChevronWrapper = exports.ChevronWrapper = _styledComponents.default.div.wi
|
|
|
210
210
|
const NavMetaIcons = exports.NavMetaIcons = _styledComponents.default.div.withConfig({
|
|
211
211
|
displayName: "HeaderNavstyle__NavMetaIcons",
|
|
212
212
|
componentId: "sc-1eihosl-9"
|
|
213
|
-
})(["width:auto;display:flex;align-items:center;flex-direction:column;background-color:inherit;> div{height:60px;width:100%;display:flex;border-bottom:1px solid ", ";> a{height:inherit;width:100%;padding:15px 20px;position:relative;&:after{position:absolute;right:20px;top:50%;transform:translateY(-50%);content:\"\";width:20px;height:20px;background-image:url(", ");background-size:100%;background-repeat:no-repeat;}img{padding:5px;height:35px;width:35px;}span{transition:color 0.15s ease-out;}&:focus,&:hover{span{color:", ";}}}&:first-child{margin-top:20px;}}@media ", "{display:none;}"], _ref27 => {
|
|
213
|
+
})(["width:auto;display:flex;align-items:center;flex-direction:column;background-color:inherit;> div{height:60px;width:100%;display:flex;border-bottom:1px solid ", ";> a{height:inherit;width:100%;padding:15px 20px;position:relative;&:after{position:absolute;right:20px;top:50%;transform:translateY(-50%) rotate(180deg);content:\"\";width:20px;height:20px;background-image:url(", ");background-size:100%;background-repeat:no-repeat;}img{padding:5px;height:35px;width:35px;}span{transition:color 0.15s ease-out;}&:focus,&:hover{span{color:", ";}}}&:first-child{margin-top:20px;}}@media ", "{display:none;}"], _ref27 => {
|
|
214
214
|
let {
|
|
215
215
|
theme
|
|
216
216
|
} = _ref27;
|
|
217
217
|
return theme.color('grey_medium');
|
|
218
|
-
},
|
|
218
|
+
}, _arrow.default, _ref28 => {
|
|
219
219
|
let {
|
|
220
220
|
theme
|
|
221
221
|
} = _ref28;
|
|
@@ -664,4 +664,4 @@ const [success, setSuccess] = React.useState(false);
|
|
|
664
664
|
<img style={{width: "100%", maxWidth:"1440px", margin: "0 auto", display: "block"}} src="https://images.ctfassets.net/zsfivwzfgl3t/ecqrPx7BesE3JsYR2ns0E/a374276ba6d8024b9cd7c6d27c911303/Manchester_Marathon.jpeg"/>
|
|
665
665
|
</div>
|
|
666
666
|
</>;
|
|
667
|
-
```
|
|
667
|
+
```
|
|
@@ -10,7 +10,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
10
10
|
var _Link = _interopRequireDefault(require("../../../Atoms/Link/Link"));
|
|
11
11
|
var _hideVisually = _interopRequireDefault(require("../../../../theme/shared/hideVisually"));
|
|
12
12
|
var _zIndex = _interopRequireDefault(require("../../../../theme/shared/zIndex"));
|
|
13
|
-
var
|
|
13
|
+
var _arrow = _interopRequireDefault(require("../../Header2026/Navs/arrow.svg"));
|
|
14
14
|
var _Text = _interopRequireDefault(require("../../../Atoms/Text/Text"));
|
|
15
15
|
const transitionDuration = 0.2;
|
|
16
16
|
const NavLinkClass = (0, _styledComponents.default)(_Link.default).withConfig({
|
|
@@ -267,12 +267,12 @@ const ChevronWrapper = exports.ChevronWrapper = _styledComponents.default.div.wi
|
|
|
267
267
|
const NavMetaIcons = exports.NavMetaIcons = _styledComponents.default.div.withConfig({
|
|
268
268
|
displayName: "HeaderNav2025style__NavMetaIcons",
|
|
269
269
|
componentId: "sc-xflhtq-10"
|
|
270
|
-
})(["width:auto;display:flex;align-items:center;flex-direction:column;background-color:inherit;> div{height:60px;width:100%;display:flex;border-bottom:1px solid ", ";> a{height:inherit;width:100%;padding:15px 20px;position:relative;&:after{position:absolute;right:20px;top:50%;transform:translateY(-50%);content:\"\";width:20px;height:20px;background-image:url(", ");background-size:100%;background-repeat:no-repeat;}img{padding:5px;height:35px;width:35px;}span{transition:color 0.15s ease-out;}@media ", "{&:focus,&:hover{span{color:", ";}}}}&:first-child{margin-top:20px;}}@media ", "{display:none;}"], _ref37 => {
|
|
270
|
+
})(["width:auto;display:flex;align-items:center;flex-direction:column;background-color:inherit;> div{height:60px;width:100%;display:flex;border-bottom:1px solid ", ";> a{height:inherit;width:100%;padding:15px 20px;position:relative;&:after{position:absolute;right:20px;top:50%;transform:translateY(-50%) rotate(180deg);content:\"\";width:20px;height:20px;background-image:url(", ");background-size:100%;background-repeat:no-repeat;}img{padding:5px;height:35px;width:35px;}span{transition:color 0.15s ease-out;}@media ", "{&:focus,&:hover{span{color:", ";}}}}&:first-child{margin-top:20px;}}@media ", "{display:none;}"], _ref37 => {
|
|
271
271
|
let {
|
|
272
272
|
theme
|
|
273
273
|
} = _ref37;
|
|
274
274
|
return theme.color('grey_medium');
|
|
275
|
-
},
|
|
275
|
+
}, _arrow.default, _ref38 => {
|
|
276
276
|
let {
|
|
277
277
|
theme
|
|
278
278
|
} = _ref38;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _BurgerMenu = require("./BurgerMenu.style");
|
|
10
|
+
const BurgerMenu = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
toggle,
|
|
13
|
+
isMenuOpen
|
|
14
|
+
} = _ref;
|
|
15
|
+
return /*#__PURE__*/_react.default.createElement(_BurgerMenu.BurgerWrapper, {
|
|
16
|
+
"data-testid": "BurgerWrapper",
|
|
17
|
+
type: "button",
|
|
18
|
+
"aria-haspopup": "true",
|
|
19
|
+
"aria-expanded": isMenuOpen,
|
|
20
|
+
"aria-label": "Open and close Navigation Menu",
|
|
21
|
+
onClick: toggle,
|
|
22
|
+
isMenuOpen: isMenuOpen
|
|
23
|
+
}, /*#__PURE__*/_react.default.createElement(_BurgerMenu.BurgerHiddenText, null, "Open and close nav menu"), /*#__PURE__*/_react.default.createElement(_BurgerMenu.BurgerBar, null));
|
|
24
|
+
};
|
|
25
|
+
var _default = exports.default = BurgerMenu;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.BurgerWrapper = exports.BurgerHiddenText = exports.BurgerBar = void 0;
|
|
8
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
+
var _hideVisually = _interopRequireDefault(require("../../../../theme/shared/hideVisually"));
|
|
10
|
+
var _Text = _interopRequireDefault(require("../../../Atoms/Text/Text"));
|
|
11
|
+
var _zIndex = _interopRequireDefault(require("../../../../theme/shared/zIndex"));
|
|
12
|
+
const BurgerHiddenText = exports.BurgerHiddenText = (0, _styledComponents.default)(_Text.default).withConfig({
|
|
13
|
+
displayName: "BurgerMenustyle__BurgerHiddenText",
|
|
14
|
+
componentId: "sc-1xlapnr-0"
|
|
15
|
+
})(["", ";"], _hideVisually.default);
|
|
16
|
+
const BurgerBar = exports.BurgerBar = _styledComponents.default.span.withConfig({
|
|
17
|
+
displayName: "BurgerMenustyle__BurgerBar",
|
|
18
|
+
componentId: "sc-1xlapnr-1"
|
|
19
|
+
})(["background-color:", ";margin:0 auto;"], _ref => {
|
|
20
|
+
let {
|
|
21
|
+
theme
|
|
22
|
+
} = _ref;
|
|
23
|
+
return theme.color('black');
|
|
24
|
+
});
|
|
25
|
+
const BurgerWrapper = exports.BurgerWrapper = _styledComponents.default.button.withConfig({
|
|
26
|
+
displayName: "BurgerMenustyle__BurgerWrapper",
|
|
27
|
+
componentId: "sc-1xlapnr-2"
|
|
28
|
+
})(["position:relative;display:flex;align-items:center;height:36px;width:36px;background-color:", ";", ";border-radius:8px;border:none;order:1;cursor:pointer;transition:all 0.2s;margin-left:10px;padding:0;@media ", "{margin-left:12px;}", "{position:relative;&,::before,::after{width:19px;height:3px;border-radius:2px;display:inline-block;}background-color:currentColor;opacity:", ";transition:opacity 0.3s ease-in-out;::before,::after{content:'';position:absolute;left:0;background-color:currentColor;opacity:1;transition:opacity 0.2s ease-in-out;}::before{top:-0.5rem;}::after{top:0.5rem;}}&::before,&::after{content:'';position:absolute;width:24px;height:3px;border-radius:2px;background-color:", ";left:50%;top:50%;margin-left:-12px;margin-top:-1.5px;opacity:", ";transition:opacity 0.2s ease-in-out;pointer-events:none;}&::before{transform:rotate(45deg);}&::after{transform:rotate(-45deg);}@media ", "{display:none;}"], _ref2 => {
|
|
29
|
+
let {
|
|
30
|
+
theme
|
|
31
|
+
} = _ref2;
|
|
32
|
+
return theme.color('grey_medium');
|
|
33
|
+
}, (0, _zIndex.default)('medium'), _ref3 => {
|
|
34
|
+
let {
|
|
35
|
+
theme
|
|
36
|
+
} = _ref3;
|
|
37
|
+
return theme.breakpoints2026('XS');
|
|
38
|
+
}, BurgerBar, _ref4 => {
|
|
39
|
+
let {
|
|
40
|
+
isMenuOpen
|
|
41
|
+
} = _ref4;
|
|
42
|
+
return isMenuOpen ? '0' : '1';
|
|
43
|
+
}, _ref5 => {
|
|
44
|
+
let {
|
|
45
|
+
theme
|
|
46
|
+
} = _ref5;
|
|
47
|
+
return theme.color('black');
|
|
48
|
+
}, _ref6 => {
|
|
49
|
+
let {
|
|
50
|
+
isMenuOpen
|
|
51
|
+
} = _ref6;
|
|
52
|
+
return isMenuOpen ? '1' : '0';
|
|
53
|
+
}, _ref7 => {
|
|
54
|
+
let {
|
|
55
|
+
theme
|
|
56
|
+
} = _ref7;
|
|
57
|
+
return theme.breakpoints2026('L');
|
|
58
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.pageLinksPropTypes = exports.default = void 0;
|
|
9
|
+
require("../../../utils/remove-extra-styles-in-preview.css");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
|
+
var _LogoNav = _interopRequireDefault(require("../../Atoms/LogoNav2026/_LogoNav2026"));
|
|
13
|
+
var _Navs = _interopRequireDefault(require("./Navs/Navs"));
|
|
14
|
+
var _Link = _interopRequireDefault(require("../../Atoms/Link/Link"));
|
|
15
|
+
var _Header = require("./Header2026.style");
|
|
16
|
+
var _searchIcon = _interopRequireDefault(require("./assets/search-icon.svg"));
|
|
17
|
+
var _chevronIcon = _interopRequireDefault(require("./assets/chevron-icon.svg"));
|
|
18
|
+
var _Icon = _interopRequireDefault(require("../../Atoms/SocialIcons/Icon/Icon"));
|
|
19
|
+
var _urlHelper = _interopRequireDefault(require("../../../utils/urlHelper"));
|
|
20
|
+
var _breakpoints = require("../../../theme/shared/breakpoints2026");
|
|
21
|
+
const Header2026 = _ref => {
|
|
22
|
+
let {
|
|
23
|
+
data = {},
|
|
24
|
+
characterLimit = 60,
|
|
25
|
+
devMode = false,
|
|
26
|
+
...rest
|
|
27
|
+
} = _ref;
|
|
28
|
+
const [isMenuOpen, setIsMenuOpen] = (0, _react.useState)(false);
|
|
29
|
+
const [isSubMenuOpen, setIsSubMenuOpen] = (0, _react.useState)(false);
|
|
30
|
+
const [isTertiaryMenuOpen, setIsTertiaryMenuOpen] = (0, _react.useState)(false);
|
|
31
|
+
const [tertiaryParentName, setTertiaryParentName] = (0, _react.useState)(null);
|
|
32
|
+
const closeSubMenusRef = (0, _react.useRef)(null);
|
|
33
|
+
const closeTertiaryRef = (0, _react.useRef)(null);
|
|
34
|
+
const handleSubMenuChange = (0, _react.useCallback)((isOpen, closeFunction) => {
|
|
35
|
+
setIsSubMenuOpen(isOpen);
|
|
36
|
+
closeSubMenusRef.current = closeFunction;
|
|
37
|
+
}, []);
|
|
38
|
+
const handleTertiaryMenuChange = (0, _react.useCallback)((isOpen, parentName, closeFunction) => {
|
|
39
|
+
setIsTertiaryMenuOpen(isOpen);
|
|
40
|
+
setTertiaryParentName(parentName);
|
|
41
|
+
closeTertiaryRef.current = closeFunction;
|
|
42
|
+
}, []);
|
|
43
|
+
|
|
44
|
+
// Prevent body scroll when mobile menu is open
|
|
45
|
+
(0, _react.useEffect)(() => {
|
|
46
|
+
document.body.style.overflow = isMenuOpen ? 'hidden' : '';
|
|
47
|
+
return () => {
|
|
48
|
+
document.body.style.overflow = '';
|
|
49
|
+
};
|
|
50
|
+
}, [isMenuOpen]);
|
|
51
|
+
|
|
52
|
+
// Reset mobile nav state when resizing to desktop
|
|
53
|
+
(0, _react.useEffect)(() => {
|
|
54
|
+
let timeoutId;
|
|
55
|
+
const handleResize = () => {
|
|
56
|
+
clearTimeout(timeoutId);
|
|
57
|
+
timeoutId = setTimeout(() => {
|
|
58
|
+
if (window.innerWidth >= _breakpoints.breakpointValues2026.L) {
|
|
59
|
+
setIsMenuOpen(false);
|
|
60
|
+
setIsSubMenuOpen(false);
|
|
61
|
+
setIsTertiaryMenuOpen(false);
|
|
62
|
+
setTertiaryParentName(null);
|
|
63
|
+
}
|
|
64
|
+
}, 150);
|
|
65
|
+
};
|
|
66
|
+
window.addEventListener('resize', handleResize);
|
|
67
|
+
return () => {
|
|
68
|
+
window.removeEventListener('resize', handleResize);
|
|
69
|
+
clearTimeout(timeoutId);
|
|
70
|
+
};
|
|
71
|
+
}, []);
|
|
72
|
+
const handleBackClick = () => {
|
|
73
|
+
if (isTertiaryMenuOpen && closeTertiaryRef.current) {
|
|
74
|
+
closeTertiaryRef.current();
|
|
75
|
+
setIsTertiaryMenuOpen(false);
|
|
76
|
+
setTertiaryParentName(null);
|
|
77
|
+
} else if (closeSubMenusRef.current) {
|
|
78
|
+
closeSubMenusRef.current();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Header.MobileMenuOverlay, {
|
|
82
|
+
isVisible: isMenuOpen
|
|
83
|
+
}), /*#__PURE__*/_react.default.createElement(_Header.Header2026Wrapper, Object.assign({
|
|
84
|
+
"data-testid": "Header2026Wrapper",
|
|
85
|
+
role: "banner"
|
|
86
|
+
}, rest), /*#__PURE__*/_react.default.createElement(_Header.InnerWrapper, {
|
|
87
|
+
"data-testid": "InnerWrapper"
|
|
88
|
+
}, isSubMenuOpen || isTertiaryMenuOpen ? /*#__PURE__*/_react.default.createElement(_Header.MobileBackHeader, {
|
|
89
|
+
"data-testid": "MobileBackHeader",
|
|
90
|
+
onClick: handleBackClick,
|
|
91
|
+
type: "button",
|
|
92
|
+
"aria-label": isTertiaryMenuOpen ? `Go back to ${tertiaryParentName}` : 'Go back to main menu'
|
|
93
|
+
}, /*#__PURE__*/_react.default.createElement(_Header.BackChevron, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
94
|
+
src: _chevronIcon.default,
|
|
95
|
+
alt: "chevron icon"
|
|
96
|
+
})), isTertiaryMenuOpen ? tertiaryParentName : 'Main menu') : /*#__PURE__*/_react.default.createElement(_Header.Brand, {
|
|
97
|
+
"data-testid": "Brand"
|
|
98
|
+
}, /*#__PURE__*/_react.default.createElement(_LogoNav.default, {
|
|
99
|
+
"data-testid": "LogoNav2026"
|
|
100
|
+
})), /*#__PURE__*/_react.default.createElement(_Navs.default, {
|
|
101
|
+
"data-testid": "Navs",
|
|
102
|
+
navItems: data,
|
|
103
|
+
characterLimit: characterLimit,
|
|
104
|
+
isMenuOpen: isMenuOpen,
|
|
105
|
+
setIsMenuOpen: setIsMenuOpen,
|
|
106
|
+
devMode: devMode,
|
|
107
|
+
onSubMenuChange: handleSubMenuChange,
|
|
108
|
+
onTertiaryMenuChange: handleTertiaryMenuChange
|
|
109
|
+
}), /*#__PURE__*/_react.default.createElement(_Header.ButtonsAndIcons, {
|
|
110
|
+
"data-testid": "ButtonsAndIcons"
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement(_Header.SearchIconWrapperDesktop, {
|
|
112
|
+
"data-testid": "SearchIconWrapperDesktop"
|
|
113
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
114
|
+
icon: _searchIcon.default,
|
|
115
|
+
title: "Search",
|
|
116
|
+
target: "self",
|
|
117
|
+
role: "button",
|
|
118
|
+
href: (0, _urlHelper.default)('/search', devMode),
|
|
119
|
+
brand: "comicrelief",
|
|
120
|
+
tabIndex: "0",
|
|
121
|
+
id: "search"
|
|
122
|
+
})), !isMenuOpen && /*#__PURE__*/_react.default.createElement(_Header.DonateButtonTopBarWrapper, {
|
|
123
|
+
"data-testid": "DonateButtonTopBarWrapper"
|
|
124
|
+
}, /*#__PURE__*/_react.default.createElement(_Link.default, {
|
|
125
|
+
color: "red",
|
|
126
|
+
type: "button",
|
|
127
|
+
href: "https://donation.comicrelief.com/"
|
|
128
|
+
}, "Donate"))))));
|
|
129
|
+
};
|
|
130
|
+
const pageLinksPropTypes = exports.pageLinksPropTypes = _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
131
|
+
pageName: _propTypes.default.string.isRequired,
|
|
132
|
+
pageUrlIfExternal: _propTypes.default.string,
|
|
133
|
+
pageLevel: _propTypes.default.bool.isRequired,
|
|
134
|
+
pageSelector: _propTypes.default.shape({
|
|
135
|
+
title: _propTypes.default.string,
|
|
136
|
+
path: _propTypes.default.string,
|
|
137
|
+
header_page_link: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
138
|
+
pageName: _propTypes.default.string.isRequired,
|
|
139
|
+
pageSelector: _propTypes.default.shape({
|
|
140
|
+
path: _propTypes.default.string.isRequired,
|
|
141
|
+
title: _propTypes.default.string.isRequired
|
|
142
|
+
}).isRequired,
|
|
143
|
+
pageUrlIfExternal: _propTypes.default.string,
|
|
144
|
+
pageLevel: _propTypes.default.bool.isRequired
|
|
145
|
+
}))
|
|
146
|
+
})
|
|
147
|
+
}));
|
|
148
|
+
var _default = exports.default = Header2026;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Header 2026 - Comic Relief
|
|
2
|
+
|
|
3
|
+
#### Dev Mode - prepends `https://www.comicrelief.com` to page links
|
|
4
|
+
|
|
5
|
+
```js
|
|
6
|
+
import mockData from './mockData/mockData.json';
|
|
7
|
+
|
|
8
|
+
const headerMenuNode = mockData.data.allContentfulHeaderMenu.edges[0].node;
|
|
9
|
+
|
|
10
|
+
<Header2026
|
|
11
|
+
data={headerMenuNode}
|
|
12
|
+
devMode
|
|
13
|
+
/>;
|
|
14
|
+
```
|