@financial-times/dotcom-ui-header 11.3.0 → 12.0.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/node/components/drawer/additionalPartials.d.ts +1 -1
- package/dist/node/components/drawer/additionalPartials.js +4 -4
- package/dist/node/components/drawer/topLevelPartials.js +11 -11
- package/dist/node/components/navigation/partials.js +6 -6
- package/dist/node/components/sticky/partials.d.ts +1 -1
- package/dist/node/components/sticky/partials.js +2 -2
- package/dist/node/components/sub-navigation/partials.js +2 -2
- package/dist/node/components/svg-components/BrandFtMasthead.js +1 -1
- package/dist/node/components/top/partials.d.ts +6 -6
- package/dist/node/components/top/partials.js +5 -5
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.js +26 -27
- package/dist/tsconfig.tsbuildinfo +1 -2983
- package/package.json +3 -3
- package/src/__test__/components/Drawer.spec.tsx +1 -1
- package/src/__test__/components/MainHeader.spec.tsx +2 -2
- package/src/__test__/components/NoOutboundLinks.spec.tsx +1 -1
- package/src/__test__/components/StickyHeader.spec.tsx +1 -1
- package/src/__test__/components/TypeaheadIntegration.test.tsx +1 -1
- package/src/__test__/output/component.spec.tsx +1 -1
- package/src/__test__/output/drawer.spec.tsx +1 -1
- package/styles.scss +1 -1
- package/src/__stories__/demos.scss +0 -28
- package/src/__stories__/story.tsx +0 -164
- /package/src/{__stories__/story-data → __test__/fixtures}/actionsUK.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/anon.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/drawerUK.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/editionsInternational.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/editionsUK.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/index.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarRight.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarRightAnon.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarSimple.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarTopRight.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarTopRightAnon.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/navbarUK.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/profile.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/subNavigationProfile.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/subNavigationUK.ts +0 -0
- /package/src/{__stories__/story-data → __test__/fixtures}/user.ts +0 -0
|
@@ -11,26 +11,26 @@ const DrawerParentItem = ({ item, idSuffix }) => {
|
|
|
11
11
|
const selected = item.selected ? 'selected' : 'unselected';
|
|
12
12
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
13
13
|
react_1.default.createElement("div", { key: item.url, className: "o-header__drawer-menu-toggle-wrapper" },
|
|
14
|
-
react_1.default.createElement("a",
|
|
14
|
+
react_1.default.createElement("a", { className: `o-header__drawer-menu-link o-header__drawer-menu-link--${selected} o-header__drawer-menu-link--parent`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": item.label }, item.label),
|
|
15
15
|
react_1.default.createElement("button", { className: `o-header__drawer-menu-toggle o-header__drawer-menu-toggle--${selected}`, "aria-controls": `o-header-drawer-child-${idSuffix}`, "data-trackable": `sub-level-toggle | ${item.label}` }, `Show more ${item.label}`)),
|
|
16
16
|
react_1.default.createElement("ul", { className: "o-header__drawer-menu-list o-header__drawer-menu-list--child", id: `o-header-drawer-child-${idSuffix}`, "data-trackable": "sub-level" }, ((_b = item.submenu) === null || _b === void 0 ? void 0 : _b.items).map((item) => {
|
|
17
17
|
var _a;
|
|
18
18
|
const selected = item.selected ? 'selected' : 'unselected';
|
|
19
19
|
return (react_1.default.createElement("li", { key: item.url, className: "o-header__drawer-menu-item" },
|
|
20
|
-
react_1.default.createElement("a",
|
|
20
|
+
react_1.default.createElement("a", { className: `o-header__drawer-menu-link o-header__drawer-menu-link--${selected} o-header__drawer-menu-link--child`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label, ...(0, utils_1.ariaSelected)(item) }, item.label)));
|
|
21
21
|
}))));
|
|
22
22
|
};
|
|
23
23
|
exports.DrawerParentItem = DrawerParentItem;
|
|
24
24
|
const DrawerSingleItem = (item) => {
|
|
25
25
|
var _a;
|
|
26
26
|
const selected = item.selected ? 'selected' : 'unselected';
|
|
27
|
-
return (react_1.default.createElement("a",
|
|
27
|
+
return (react_1.default.createElement("a", { className: `o-header__drawer-menu-link o-header__drawer-menu-link--${selected}`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label, ...(0, utils_1.ariaSelected)(item) }, item.label));
|
|
28
28
|
};
|
|
29
29
|
exports.DrawerSingleItem = DrawerSingleItem;
|
|
30
30
|
const DrawerSpecialItem = (item) => {
|
|
31
31
|
var _a;
|
|
32
32
|
const selected = item.selected ? 'selected' : 'unselected';
|
|
33
|
-
return (react_1.default.createElement("a",
|
|
33
|
+
return (react_1.default.createElement("a", { className: `o-header__drawer-menu-link o-header__drawer-menu-link--${selected} o-header__drawer-menu-link--secondary`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label, ...(0, utils_1.ariaSelected)(item) }, item.label));
|
|
34
34
|
};
|
|
35
35
|
exports.DrawerSpecialItem = DrawerSpecialItem;
|
|
36
36
|
const EditionsSwitcher = (editions) => {
|
|
@@ -7,7 +7,7 @@ exports.IncludeDrawer = void 0;
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const additionalPartials_1 = require("./additionalPartials");
|
|
9
9
|
const askFtButton_1 = require("../ask-ft/askFtButton");
|
|
10
|
-
const IncludeDrawer = (props) => react_1.default.createElement(Drawer,
|
|
10
|
+
const IncludeDrawer = (props) => react_1.default.createElement(Drawer, { ...props });
|
|
11
11
|
exports.IncludeDrawer = IncludeDrawer;
|
|
12
12
|
const Drawer = (props) => {
|
|
13
13
|
const editions = props.data.editions;
|
|
@@ -18,21 +18,21 @@ const Drawer = (props) => {
|
|
|
18
18
|
const showDrawerActions = props.showAskButton || showSubscribeButton;
|
|
19
19
|
return (react_1.default.createElement("div", { className: "o-header__drawer", id: "o-header-drawer", role: "modal", "aria-label": "Drawer menu", "aria-modal": "true", "data-o-header-drawer": true, "data-o-header-drawer--no-js": true, "data-trackable": "drawer", "data-trackable-terminate": true },
|
|
20
20
|
react_1.default.createElement("div", { className: "o-header__drawer-inner" },
|
|
21
|
-
react_1.default.createElement(DrawerTools,
|
|
21
|
+
react_1.default.createElement(DrawerTools, { ...editions }),
|
|
22
22
|
react_1.default.createElement(Search, null),
|
|
23
23
|
showDrawerActions && (react_1.default.createElement("div", { className: "o-header__drawer-actions" },
|
|
24
24
|
props.showAskButton && (react_1.default.createElement(askFtButton_1.AskFtButton, { variant: "drawer", dataTrackable: "ask-ft-button-drawer", id: "ask-ft-button-drawer" })),
|
|
25
|
-
showSubscribeButton && subscribeAction && react_1.default.createElement(additionalPartials_1.SubscribeButton,
|
|
25
|
+
showSubscribeButton && subscribeAction && react_1.default.createElement(additionalPartials_1.SubscribeButton, { ...subscribeAction }))),
|
|
26
26
|
react_1.default.createElement("nav", { className: "o-header__drawer-menu o-header__drawer-menu--primary" },
|
|
27
|
-
primary ? react_1.default.createElement(SectionPrimary,
|
|
28
|
-
secondary ? react_1.default.createElement(SectionSecondary,
|
|
29
|
-
tertiary ? react_1.default.createElement(SectionTertiary,
|
|
30
|
-
react_1.default.createElement(UserMenu,
|
|
27
|
+
primary ? react_1.default.createElement(SectionPrimary, { ...primary }) : null,
|
|
28
|
+
secondary ? react_1.default.createElement(SectionSecondary, { ...secondary }) : null,
|
|
29
|
+
tertiary ? react_1.default.createElement(SectionTertiary, { ...tertiary }) : null),
|
|
30
|
+
react_1.default.createElement(UserMenu, { ...user }))));
|
|
31
31
|
};
|
|
32
32
|
const DrawerTools = (editions) => (react_1.default.createElement("div", { className: "o-header__drawer-tools" },
|
|
33
33
|
react_1.default.createElement("button", { type: "button", className: "o-header__drawer-tools-close", title: "Close side navigation menu", "aria-controls": "o-header-drawer", "data-trackable": "close" },
|
|
34
34
|
react_1.default.createElement("span", { className: "o-header__visually-hidden" }, "Close side navigation menu")),
|
|
35
|
-
editions && react_1.default.createElement(additionalPartials_1.EditionsSwitcher,
|
|
35
|
+
editions && react_1.default.createElement(additionalPartials_1.EditionsSwitcher, { ...editions })));
|
|
36
36
|
const Search = () => {
|
|
37
37
|
const inputId = 'o-header-drawer-search-term';
|
|
38
38
|
return (react_1.default.createElement("div", { className: "o-header__drawer-search" },
|
|
@@ -52,20 +52,20 @@ const SectionPrimary = (props) => {
|
|
|
52
52
|
const sectionId = props.label.toLowerCase().replace(' ', '-');
|
|
53
53
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
54
54
|
react_1.default.createElement("h2", { id: sectionId, className: "o-header__drawer-menu-item o-header__drawer-menu-item--heading" }, props.label),
|
|
55
|
-
react_1.default.createElement("ul", { "aria-labelledby": sectionId, className: "o-header__drawer-menu-list" }, ((_a = props.submenu) === null || _a === void 0 ? void 0 : _a.items).map((item, index) => (react_1.default.createElement("li", { key: item.url, className: "o-header__drawer-menu-item" }, item.submenu ? (react_1.default.createElement(additionalPartials_1.DrawerParentItem, { item: item, idSuffix: `${index}` })) : (react_1.default.createElement(additionalPartials_1.DrawerSingleItem,
|
|
55
|
+
react_1.default.createElement("ul", { "aria-labelledby": sectionId, className: "o-header__drawer-menu-list" }, ((_a = props.submenu) === null || _a === void 0 ? void 0 : _a.items).map((item, index) => (react_1.default.createElement("li", { key: item.url, className: "o-header__drawer-menu-item" }, item.submenu ? (react_1.default.createElement(additionalPartials_1.DrawerParentItem, { item: item, idSuffix: `${index}` })) : (react_1.default.createElement(additionalPartials_1.DrawerSingleItem, { ...item }))))))));
|
|
56
56
|
};
|
|
57
57
|
const SectionSecondary = (props) => {
|
|
58
58
|
var _a;
|
|
59
59
|
const sectionId = props.label.toLowerCase().replace(' ', '-');
|
|
60
60
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
61
61
|
react_1.default.createElement("h2", { id: sectionId, className: "o-header__drawer-menu-item o-header__drawer-menu-item--heading" }, props.label),
|
|
62
|
-
react_1.default.createElement("ul", { "aria-labelledby": sectionId, className: "o-header__drawer-menu-list" }, ((_a = props.submenu) === null || _a === void 0 ? void 0 : _a.items).map((item, index) => (react_1.default.createElement("li", { key: item.url, className: "o-header__drawer-menu-item" }, item.submenu ? (react_1.default.createElement(additionalPartials_1.DrawerParentItem, { item: item, idSuffix: 'inner' + index })) : (react_1.default.createElement(additionalPartials_1.DrawerSingleItem,
|
|
62
|
+
react_1.default.createElement("ul", { "aria-labelledby": sectionId, className: "o-header__drawer-menu-list" }, ((_a = props.submenu) === null || _a === void 0 ? void 0 : _a.items).map((item, index) => (react_1.default.createElement("li", { key: item.url, className: "o-header__drawer-menu-item" }, item.submenu ? (react_1.default.createElement(additionalPartials_1.DrawerParentItem, { item: item, idSuffix: 'inner' + index })) : (react_1.default.createElement(additionalPartials_1.DrawerSingleItem, { ...item }))))))));
|
|
63
63
|
};
|
|
64
64
|
const SectionTertiary = (props) => {
|
|
65
65
|
var _a;
|
|
66
66
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
67
67
|
react_1.default.createElement("ul", { className: "o-header__drawer-menu-list o-header__drawer-menu-list--divide" }, ((_a = props.submenu) === null || _a === void 0 ? void 0 : _a.items).map((item) => (react_1.default.createElement("li", { key: item.url, className: `o-header__drawer-menu-item` },
|
|
68
|
-
react_1.default.createElement(additionalPartials_1.DrawerSpecialItem,
|
|
68
|
+
react_1.default.createElement(additionalPartials_1.DrawerSpecialItem, { ...item })))))));
|
|
69
69
|
};
|
|
70
70
|
const UserMenu = (props) => (react_1.default.createElement("nav", { className: "o-header__drawer-menu o-header__drawer-menu--user", "data-trackable": "user-nav" },
|
|
71
71
|
react_1.default.createElement("ul", { className: "o-header__drawer-menu-list" }, props.items.map((item) => {
|
|
@@ -17,7 +17,7 @@ const NavMobile = ({ items }) => {
|
|
|
17
17
|
react_1.default.createElement("ul", { className: "o-header__nav-list" }, items.map((item, index) => {
|
|
18
18
|
var _a;
|
|
19
19
|
return (react_1.default.createElement("li", { className: "o-header__nav-item", key: `link-${index}` },
|
|
20
|
-
react_1.default.createElement("a",
|
|
20
|
+
react_1.default.createElement("a", { className: "o-header__nav-link o-header__nav-link--primary", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": item.label }, item.label)));
|
|
21
21
|
}))));
|
|
22
22
|
};
|
|
23
23
|
const NavDesktop = (props) => (react_1.default.createElement("nav", { id: "o-header-nav-desktop", className: "o-header__row o-header__nav o-header__nav--desktop", role: "navigation", "aria-label": "Primary navigation", "data-trackable": "header-nav:desktop" },
|
|
@@ -26,7 +26,7 @@ exports.NavDesktop = NavDesktop;
|
|
|
26
26
|
const NavListLeft = (props) => (react_1.default.createElement("ul", { className: "o-header__nav-list o-header__nav-list--left", "data-trackable": "primary-nav" }, props.data.navbar.items.map((item, index) => {
|
|
27
27
|
var _a;
|
|
28
28
|
return (react_1.default.createElement("li", { className: "o-header__nav-item", key: `link-${index}` },
|
|
29
|
-
react_1.default.createElement("a",
|
|
29
|
+
react_1.default.createElement("a", { className: "o-header__nav-link o-header__nav-link--primary", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, id: `o-header-link-${index}`, ...(0, utils_1.ariaSelected)(item), "data-trackable": item.label }, item.label),
|
|
30
30
|
props.showMegaNav && Array.isArray(item.meganav) ? (react_1.default.createElement(MegaNav, { meganav: item.meganav, label: item.label, index: index })) : null));
|
|
31
31
|
})));
|
|
32
32
|
exports.NavListLeft = NavListLeft;
|
|
@@ -47,8 +47,8 @@ const MegaNav = ({ label, meganav, index }) => {
|
|
|
47
47
|
return (react_1.default.createElement("div", { className: "o-header__mega", id: `o-header-mega-${index}`, role: "group", "aria-labelledby": `o-header-link-${index}`, "data-o-header-mega": true, "data-trackable": `meganav | ${label}` },
|
|
48
48
|
react_1.default.createElement("div", { className: "o-header__container" },
|
|
49
49
|
react_1.default.createElement("div", { className: "o-header__mega-wrapper" },
|
|
50
|
-
sections ? react_1.default.createElement(SectionList,
|
|
51
|
-
articles ? react_1.default.createElement(ArticleList,
|
|
50
|
+
sections ? react_1.default.createElement(SectionList, { ...sections }) : null,
|
|
51
|
+
articles ? react_1.default.createElement(ArticleList, { ...articles }) : null))));
|
|
52
52
|
};
|
|
53
53
|
const SectionList = ({ title, data }) => {
|
|
54
54
|
return (react_1.default.createElement("div", { className: "o-header__mega-column o-header__mega-column--subsections", "data-trackable": "sections" },
|
|
@@ -57,7 +57,7 @@ const SectionList = ({ title, data }) => {
|
|
|
57
57
|
react_1.default.createElement("ul", { className: "o-header__mega-list" }, data === null || data === void 0 ? void 0 : data.map((column) => column.map((item, index) => {
|
|
58
58
|
var _a;
|
|
59
59
|
return (react_1.default.createElement("li", { className: "o-header__mega-item", key: `link-${index}` },
|
|
60
|
-
react_1.default.createElement("a",
|
|
60
|
+
react_1.default.createElement("a", { className: "o-header__mega-link", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": "link" }, item.label)));
|
|
61
61
|
}))))));
|
|
62
62
|
};
|
|
63
63
|
const ArticleList = ({ title, data }) => {
|
|
@@ -67,7 +67,7 @@ const ArticleList = ({ title, data }) => {
|
|
|
67
67
|
react_1.default.createElement("ul", { className: "o-header__mega-list" }, data === null || data === void 0 ? void 0 : data.map((item, index) => {
|
|
68
68
|
var _a;
|
|
69
69
|
return (react_1.default.createElement("li", { className: "o-header__mega-item", key: `link-${index}` },
|
|
70
|
-
react_1.default.createElement("a",
|
|
70
|
+
react_1.default.createElement("a", { className: "o-header__mega-link", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": "link" }, item.label)));
|
|
71
71
|
})))));
|
|
72
72
|
};
|
|
73
73
|
const UserActionsNav = (props) => {
|
|
@@ -4,7 +4,7 @@ declare const StickyHeaderWrapper: (props: THeaderProps & {
|
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
}) => React.JSX.Element;
|
|
6
6
|
declare const TopWrapperSticky: (props: any) => React.JSX.Element;
|
|
7
|
-
declare const TopColumnLeftSticky: (props: Pick<THeaderProps,
|
|
7
|
+
declare const TopColumnLeftSticky: (props: Pick<THeaderProps, "showAskButton">) => React.JSX.Element;
|
|
8
8
|
declare const TopColumnCenterSticky: (props: THeaderProps) => React.JSX.Element;
|
|
9
9
|
declare const TopColumnRightSticky: (props: THeaderProps) => React.JSX.Element;
|
|
10
10
|
export { StickyHeaderWrapper, TopWrapperSticky, TopColumnLeftSticky, TopColumnCenterSticky, TopColumnRightSticky };
|
|
@@ -37,11 +37,11 @@ const TopColumnLeftSticky = (props) => {
|
|
|
37
37
|
exports.TopColumnLeftSticky = TopColumnLeftSticky;
|
|
38
38
|
const TopColumnCenterSticky = (props) => {
|
|
39
39
|
return (react_1.default.createElement("div", { className: "o-header__top-column o-header__top-column--center" },
|
|
40
|
-
react_1.default.createElement(Navigation,
|
|
40
|
+
react_1.default.createElement(Navigation, { ...props }),
|
|
41
41
|
react_1.default.createElement(Logo, null)));
|
|
42
42
|
};
|
|
43
43
|
exports.TopColumnCenterSticky = TopColumnCenterSticky;
|
|
44
44
|
const TopColumnRightSticky = (props) => {
|
|
45
|
-
return react_1.default.createElement(partials_1.TopColumnRight,
|
|
45
|
+
return react_1.default.createElement(partials_1.TopColumnRight, { ...props });
|
|
46
46
|
};
|
|
47
47
|
exports.TopColumnRightSticky = TopColumnRightSticky;
|
|
@@ -22,7 +22,7 @@ const BreadCrumb = ({ items }) => (react_1.default.createElement("ol", { classNa
|
|
|
22
22
|
var _a;
|
|
23
23
|
const selected = item.selected ? 'o-header__subnav-link--highlight' : '';
|
|
24
24
|
return (react_1.default.createElement("li", { className: "o-header__subnav-item", key: `item-${index}` },
|
|
25
|
-
react_1.default.createElement("a",
|
|
25
|
+
react_1.default.createElement("a", { className: `o-header__subnav-link ${selected}`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": item.label }, item.label)));
|
|
26
26
|
})));
|
|
27
27
|
const SubSections = ({ items, rightAlignment }) => {
|
|
28
28
|
if (!items || items.length === 0) {
|
|
@@ -33,6 +33,6 @@ const SubSections = ({ items, rightAlignment }) => {
|
|
|
33
33
|
var _a;
|
|
34
34
|
const selected = item.selected ? 'o-header__subnav-link--highlight' : '';
|
|
35
35
|
return (react_1.default.createElement("li", { className: "o-header__subnav-item", key: `item-${index}` },
|
|
36
|
-
react_1.default.createElement("a",
|
|
36
|
+
react_1.default.createElement("a", { className: `o-header__subnav-link ${selected}`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, ...(0, utils_1.ariaSelected)(item), "data-trackable": item.label }, item.label)));
|
|
37
37
|
})));
|
|
38
38
|
};
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const BrandFtMasthead = ({ title, ...props }) => (react_1.default.createElement("svg",
|
|
8
|
+
const BrandFtMasthead = ({ title, ...props }) => (react_1.default.createElement("svg", { viewBox: "0 0 1054 86", ...props },
|
|
9
9
|
title === undefined ? react_1.default.createElement("title", null, 'brand-ft-masthead') : title ? react_1.default.createElement("title", null, title) : null,
|
|
10
10
|
react_1.default.createElement("path", { d: "M26.177 72.609c0 5.938 1.697 7.295 12.554 7.295v3.732H.9v-3.732c7.464 0 10.01-.679 10.01-7.125V12.215c0-6.447-2.546-7.126-10.01-7.126V1.357h63.448l.34 22.563h-3.054C59.937 6.956 55.696 5.43 39.919 5.43H26.008v33.59h11.196c10.688 0 11.367-1.697 12.215-10.179h3.054v24.599h-3.054c-.848-8.482-1.527-10.01-12.215-10.01H26.008v29.18h.17zm46.314 11.027v-3.732c7.465 0 10.01-.679 10.01-7.125V12.215c0-6.447-2.545-7.126-10.01-7.126V1.357h35.287V5.09c-7.465 0-10.01.679-10.01 7.126v60.564c0 6.446 2.545 7.125 10.01 7.125v3.732H72.49zm115.36 1.357l-56.323-69.725V72.44c0 6.617 4.58 7.634 12.385 7.634v3.733h-29.858v-3.733c7.803 0 12.045-1.017 12.045-7.634V8.991c-3.563-3.732-6.108-3.902-12.045-3.902V1.357h26.465l43.09 55.475V12.554c0-6.616-4.58-7.634-12.384-7.634V1.357h30.027V5.09c-7.803 0-12.045 1.018-12.045 7.635v72.27h-1.357zm40.207-1.357h-29.689v-3.732c7.804 0 11.367-1.018 13.911-7.804L239.085.509h7.464l28.84 72.1c2.545 6.447 3.732 7.125 9.67 7.125v3.732h-34.438v-3.732c10.518 0 11.536-.848 8.99-7.125l-8.481-21.884h-25.787L217.71 71.93c-2.375 6.447 1.357 7.804 10.518 7.804v3.902h-.17zm-1.188-37.153h22.393l-11.705-29.518-10.688 29.518zm135.548 38.51l-56.153-69.725V72.44c0 6.617 4.58 7.634 12.384 7.634v3.733h-29.18v-3.733c7.126 0 11.367-1.017 11.367-7.634V9.161c-4.071-3.732-7.125-4.072-13.91-4.072V1.357h28.16l43.09 55.475V12.554c0-6.616-4.58-7.634-12.383-7.634V1.357h29.858V5.09c-7.804 0-12.045 1.018-12.045 7.635v72.27h-1.188zm83.297-83.805h2.036l1.187 24.598-3.053.17c-2.036-14.08-9.5-21.545-23.242-21.545-15.268 0-26.804 13.063-26.804 33.081 0 25.617 16.116 40.206 33.08 40.206 7.296 0 13.912-2.035 20.358-8.99l2.376 2.374c-5.26 7.465-15.608 13.742-29.52 13.742-20.696 0-41.732-15.608-41.732-41.734C380.4 17.813 399.57 0 422.813 0c11.027 0 16.795 4.75 19.848 4.75 1.357 0 2.375-1.187 3.054-3.562zm12.723 82.448v-3.732c7.465 0 10.01-.679 10.01-7.125V12.215c0-6.447-2.545-7.126-10.01-7.126V1.357h35.287V5.09c-7.464 0-10.01.679-10.01 7.126v60.564c0 6.446 2.546 7.125 10.01 7.125v3.732h-35.287zm68.538 0h-27.653v-3.732c6.108 0 9.331-1.018 11.876-7.804L538.003.509h7.464l28.84 72.1c2.545 6.447 3.733 7.125 9.67 7.125v3.732H549.54v-3.732c10.518 0 11.536-.848 8.991-7.125l-8.482-21.884h-25.786l-7.635 21.205c-2.375 6.447 1.358 7.804 10.519 7.804v3.902h-.17zm-1.188-37.153h22.394l-11.536-29.518-10.858 29.518zm63.957 37.153v-3.732c7.465 0 10.01-.679 10.01-7.125V12.215c0-6.447-2.545-7.126-10.01-7.126V1.357h35.117V5.09c-7.464 0-9.84.679-9.84 7.126v61.073c0 5.428 2.715 6.107 7.126 6.107h4.241c15.947 0 21.036-2.375 25.447-20.527l3.054.339-2.545 24.26h-62.6v.17zM760.75 1.357l.339 23.92h-3.054C756.34 7.634 752.098 5.43 736.32 5.43h-5.089v67.18c0 6.447 2.375 7.295 12.554 7.295v3.732h-40.376v-3.732c10.179 0 12.723-1.018 12.723-7.295V5.429h-5.089c-15.777 0-20.018 2.205-21.715 19.848h-3.053l.339-23.92h74.136zm7.973 82.28v-3.733c7.465 0 10.01-.679 10.01-7.125V12.215c0-6.447-2.545-7.126-10.01-7.126V1.357h35.287V5.09c-7.465 0-10.01.679-10.01 7.126v60.564c0 6.446 2.545 7.125 10.01 7.125v3.732h-35.287zM910.21 1.356V5.09c-7.465 0-10.688.34-10.01 6.956l6.447 61.073c.679 6.277 3.054 6.955 10.518 6.955v3.733h-35.117v-3.733c7.295 0 9.84-.678 9.331-6.955L884.762 8.99l-25.956 76.172h-1.018L832.34 8.822l-6.108 64.126c-.678 6.447 3.733 7.125 11.197 7.125v3.733h-27.483v-3.733c7.465 0 10.01-1.187 10.518-7.125l6.447-61.073c.679-6.446-2.545-6.955-10.01-6.955V1.357h28.84l17.305 56.153 18.661-56.153h28.5zm65.653 52.082h-3.053c-.849-8.482-1.527-10.01-12.215-10.01H948.04v29.859c0 5.428 2.715 6.107 7.125 6.107h6.786c15.947 0 21.036-2.375 25.447-20.527l3.054.339-2.884 24.26h-64.805v-3.733c7.464 0 10.009-.678 10.009-7.125V12.215c0-6.447-2.545-7.126-10.01-7.126V1.357h62.261l.34 20.527h-3.054c-1.866-14.59-5.598-16.286-21.885-16.286H948.21v33.42h12.554c10.687 0 11.366-1.696 12.214-10.178h3.054v24.599h-.17zm65.484 13.232c0-7.464-4.75-11.196-12.893-15.777l-13.063-6.786c-9.84-5.259-15.607-11.027-15.607-21.375C999.783 9.84 1010.81 0 1025.23 0c9.84 0 14.929 4.75 17.813 4.75 1.866 0 2.714-1.187 3.562-3.562h2.375l1.188 23.072-3.054.17c-1.696-11.198-9.67-19.85-20.866-19.85-8.483 0-14.081 5.09-14.081 12.215 0 7.804 5.937 11.027 12.554 14.59l11.196 5.937c10.519 5.768 17.983 11.536 17.983 22.563 0 14.59-12.554 24.939-28.161 24.939-11.028 0-16.456-5.26-19.34-5.26-1.866 0-2.884 1.697-3.732 4.242h-2.376l-1.696-24.43 3.054-.339c2.375 15.268 12.893 21.545 23.411 21.545 8.822-.17 16.286-4.071 16.286-13.91z", fill: "#231F20", fillRule: "evenodd" })));
|
|
11
11
|
exports.default = BrandFtMasthead;
|
|
@@ -3,22 +3,22 @@ import { THeaderProps, THeaderVariant } from '../../interfaces';
|
|
|
3
3
|
import { TNavMenuItem } from '@financial-times/dotcom-types-navigation';
|
|
4
4
|
declare const HeaderWrapper: (props: any) => React.JSX.Element;
|
|
5
5
|
declare const TopWrapper: (props: any) => React.JSX.Element;
|
|
6
|
-
declare const TopColumnLeft: (props: Pick<THeaderProps,
|
|
6
|
+
declare const TopColumnLeft: (props: Pick<THeaderProps, "showAskButton">) => React.JSX.Element;
|
|
7
7
|
declare const TopColumnCenter: () => React.JSX.Element;
|
|
8
8
|
declare const TopColumnCenterNoLink: () => React.JSX.Element;
|
|
9
9
|
declare const SignInLink: ({ item, variant, className }: {
|
|
10
10
|
item: TNavMenuItem;
|
|
11
|
-
variant?:
|
|
12
|
-
className?: string
|
|
11
|
+
variant?: THeaderVariant;
|
|
12
|
+
className?: string;
|
|
13
13
|
}) => React.JSX.Element;
|
|
14
14
|
declare const SubscribeButton: ({ item, variant, className }: {
|
|
15
15
|
item: TNavMenuItem;
|
|
16
|
-
variant?:
|
|
17
|
-
className?: string
|
|
16
|
+
variant?: THeaderVariant;
|
|
17
|
+
className?: string;
|
|
18
18
|
}) => React.JSX.Element;
|
|
19
19
|
declare const TopColumnRightAnon: ({ items, variant }: {
|
|
20
20
|
items: TNavMenuItem[];
|
|
21
|
-
variant?:
|
|
21
|
+
variant?: THeaderVariant;
|
|
22
22
|
}) => React.JSX.Element;
|
|
23
23
|
declare const TopColumnRight: (props: THeaderProps) => React.JSX.Element;
|
|
24
24
|
export { HeaderWrapper, TopWrapper, TopColumnLeft, TopColumnCenter, TopColumnCenterNoLink, TopColumnRight, TopColumnRightAnon, SubscribeButton, SignInLink };
|
|
@@ -17,7 +17,7 @@ const MyAccountLink = ({ item, signedIn, variant }) => {
|
|
|
17
17
|
const classNames = 'o-header__top-myaccount';
|
|
18
18
|
const id = signedIn ? 'o-header-top-link-myaccount' : 'o-header-top-link-signin';
|
|
19
19
|
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null;
|
|
20
|
-
return (react_1.default.createElement("a",
|
|
20
|
+
return (react_1.default.createElement("a", { className: classNames, id: id, href: item.url || undefined, "data-trackable": item.label, ...setTabIndex },
|
|
21
21
|
react_1.default.createElement("span", null, item.label)));
|
|
22
22
|
};
|
|
23
23
|
const TopWrapper = (props) => (react_1.default.createElement("div", { className: "o-header__row o-header__top", "data-trackable": "header-top" },
|
|
@@ -48,16 +48,16 @@ const TopColumnRightLoggedIn = (props) => {
|
|
|
48
48
|
const SignInLink = ({ item, variant, className }) => {
|
|
49
49
|
var _a;
|
|
50
50
|
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null;
|
|
51
|
-
return (react_1.default.createElement("a",
|
|
51
|
+
return (react_1.default.createElement("a", { className: `o-header__top-link ${className}`, href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label, ...setTabIndex }, item.label));
|
|
52
52
|
};
|
|
53
53
|
exports.SignInLink = SignInLink;
|
|
54
54
|
const SubscribeButton = ({ item, variant, className }) => {
|
|
55
55
|
var _a;
|
|
56
56
|
const setTabIndex = variant === 'sticky' ? { tabIndex: -1 } : null;
|
|
57
|
-
return (react_1.default.createElement("a",
|
|
57
|
+
return (react_1.default.createElement("a", { className: `o-header__top-button ${className}`,
|
|
58
58
|
// Added as the result of a DAC audit. This will be confusing for users of voice activation software
|
|
59
59
|
// as it looks like a button but behaves like a link without this role.
|
|
60
|
-
role: "button", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label
|
|
60
|
+
role: "button", href: (_a = item.url) !== null && _a !== void 0 ? _a : undefined, "data-trackable": item.label, ...setTabIndex }, item.label));
|
|
61
61
|
};
|
|
62
62
|
exports.SubscribeButton = SubscribeButton;
|
|
63
63
|
const TopColumnRightAnon = ({ items, variant }) => {
|
|
@@ -70,7 +70,7 @@ const TopColumnRightAnon = ({ items, variant }) => {
|
|
|
70
70
|
exports.TopColumnRightAnon = TopColumnRightAnon;
|
|
71
71
|
const TopColumnRight = (props) => {
|
|
72
72
|
if (props.userIsLoggedIn) {
|
|
73
|
-
return react_1.default.createElement(TopColumnRightLoggedIn,
|
|
73
|
+
return react_1.default.createElement(TopColumnRightLoggedIn, { ...props });
|
|
74
74
|
}
|
|
75
75
|
else {
|
|
76
76
|
const userNavAnonItems = props.data['navbar-top-right-anon'].items;
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { THeaderProps, THeaderOptions } from './interfaces';
|
|
2
|
+
import { THeaderProps, THeaderOptions, THeaderVariant } from './interfaces';
|
|
3
3
|
declare function MainHeader(props: THeaderProps): React.JSX.Element;
|
|
4
4
|
declare namespace MainHeader {
|
|
5
5
|
var defaultProps: {
|
|
6
6
|
showLogoLink: boolean;
|
|
7
|
-
variant?:
|
|
7
|
+
variant?: THeaderVariant | undefined;
|
|
8
8
|
userIsAnonymous?: boolean | undefined;
|
|
9
9
|
userIsLoggedIn?: boolean | undefined;
|
|
10
10
|
userIsSubscribed?: boolean | undefined;
|
package/dist/node/index.js
CHANGED
|
@@ -3,7 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.Header = Header;
|
|
7
|
+
exports.MainHeader = MainHeader;
|
|
8
|
+
exports.StickyHeader = StickyHeader;
|
|
9
|
+
exports.LogoOnly = LogoOnly;
|
|
10
|
+
exports.NoOutboundLinksHeader = NoOutboundLinksHeader;
|
|
11
|
+
exports.Drawer = Drawer;
|
|
7
12
|
const react_1 = __importDefault(require("react"));
|
|
8
13
|
const partials_1 = require("./components/top/partials");
|
|
9
14
|
const partials_2 = require("./components/navigation/partials");
|
|
@@ -23,61 +28,55 @@ const defaultProps = {
|
|
|
23
28
|
function MainHeader(props) {
|
|
24
29
|
const includeUserActionsNav = props.showUserNavigation && !props.userIsLoggedIn;
|
|
25
30
|
const includeSubNavigation = props.showSubNavigation && (props.data.breadcrumb || props.data.subsections);
|
|
26
|
-
return (react_1.default.createElement(partials_1.HeaderWrapper,
|
|
27
|
-
includeUserActionsNav ? react_1.default.createElement(partials_2.UserActionsNav,
|
|
31
|
+
return (react_1.default.createElement(partials_1.HeaderWrapper, { ...props },
|
|
32
|
+
includeUserActionsNav ? react_1.default.createElement(partials_2.UserActionsNav, { ...props }) : null,
|
|
28
33
|
react_1.default.createElement(partials_1.TopWrapper, null,
|
|
29
|
-
react_1.default.createElement(partials_1.TopColumnLeft,
|
|
34
|
+
react_1.default.createElement(partials_1.TopColumnLeft, { ...props }),
|
|
30
35
|
props.showLogoLink ? react_1.default.createElement(partials_1.TopColumnCenter, null) : react_1.default.createElement(partials_1.TopColumnCenterNoLink, null),
|
|
31
|
-
react_1.default.createElement(partials_1.TopColumnRight,
|
|
36
|
+
react_1.default.createElement(partials_1.TopColumnRight, { ...props })),
|
|
32
37
|
react_1.default.createElement(partials_5.Search, { instance: "primary" }),
|
|
33
|
-
react_1.default.createElement(partials_2.MobileNav,
|
|
38
|
+
react_1.default.createElement(partials_2.MobileNav, { ...props }),
|
|
34
39
|
react_1.default.createElement(partials_2.NavDesktop, null,
|
|
35
|
-
react_1.default.createElement(partials_2.NavListLeft,
|
|
36
|
-
props.showUserNavigation ? react_1.default.createElement(partials_2.NavListRight,
|
|
37
|
-
includeSubNavigation ? react_1.default.createElement(partials_4.SubNavigation,
|
|
40
|
+
react_1.default.createElement(partials_2.NavListLeft, { ...props }),
|
|
41
|
+
props.showUserNavigation ? react_1.default.createElement(partials_2.NavListRight, { ...props }) : null),
|
|
42
|
+
includeSubNavigation ? react_1.default.createElement(partials_4.SubNavigation, { ...props }) : null));
|
|
38
43
|
}
|
|
39
|
-
exports.MainHeader = MainHeader;
|
|
40
44
|
MainHeader.defaultProps = { ...defaultProps, showLogoLink: true };
|
|
41
45
|
function StickyHeader(props) {
|
|
42
46
|
const stickyProps = {
|
|
43
47
|
...props,
|
|
44
48
|
variant: 'sticky'
|
|
45
49
|
};
|
|
46
|
-
return props.showStickyHeader ? (react_1.default.createElement(partials_3.StickyHeaderWrapper,
|
|
50
|
+
return props.showStickyHeader ? (react_1.default.createElement(partials_3.StickyHeaderWrapper, { ...stickyProps },
|
|
47
51
|
react_1.default.createElement(partials_3.TopWrapperSticky, null,
|
|
48
|
-
react_1.default.createElement(partials_3.TopColumnLeftSticky,
|
|
49
|
-
react_1.default.createElement(partials_3.TopColumnCenterSticky,
|
|
50
|
-
react_1.default.createElement(partials_3.TopColumnRightSticky,
|
|
52
|
+
react_1.default.createElement(partials_3.TopColumnLeftSticky, { ...stickyProps }),
|
|
53
|
+
react_1.default.createElement(partials_3.TopColumnCenterSticky, { ...stickyProps }),
|
|
54
|
+
react_1.default.createElement(partials_3.TopColumnRightSticky, { ...stickyProps })),
|
|
51
55
|
react_1.default.createElement(partials_5.Search, { instance: "sticky" }))) : null;
|
|
52
56
|
}
|
|
53
|
-
exports.StickyHeader = StickyHeader;
|
|
54
57
|
StickyHeader.defaultProps = defaultProps;
|
|
55
58
|
function Header(props) {
|
|
56
59
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
57
|
-
react_1.default.createElement(MainHeader,
|
|
58
|
-
react_1.default.createElement(StickyHeader,
|
|
60
|
+
react_1.default.createElement(MainHeader, { ...props }),
|
|
61
|
+
react_1.default.createElement(StickyHeader, { ...props })));
|
|
59
62
|
}
|
|
60
|
-
exports.Header = Header;
|
|
61
63
|
Header.defaultProps = defaultProps;
|
|
62
64
|
function LogoOnly(props) {
|
|
63
|
-
return (react_1.default.createElement(partials_1.HeaderWrapper,
|
|
65
|
+
return (react_1.default.createElement(partials_1.HeaderWrapper, { ...props },
|
|
64
66
|
react_1.default.createElement(partials_1.TopWrapper, null, props.showLogoLink ? react_1.default.createElement(partials_1.TopColumnCenter, null) : react_1.default.createElement(partials_1.TopColumnCenterNoLink, null))));
|
|
65
67
|
}
|
|
66
|
-
exports.LogoOnly = LogoOnly;
|
|
67
68
|
LogoOnly.defaultProps = defaultProps;
|
|
68
69
|
function Drawer(props) {
|
|
69
|
-
return react_1.default.createElement(topLevelPartials_1.IncludeDrawer,
|
|
70
|
+
return react_1.default.createElement(topLevelPartials_1.IncludeDrawer, { ...props });
|
|
70
71
|
}
|
|
71
|
-
exports.Drawer = Drawer;
|
|
72
72
|
Drawer.defaultProps = defaultProps;
|
|
73
73
|
function NoOutboundLinksHeader(props) {
|
|
74
74
|
const includeUserActionsNav = props.showUserNavigation && !props.userIsLoggedIn;
|
|
75
75
|
const includeSubNavigation = props.showSubNavigation && (props.data.breadcrumb || props.data.subsections);
|
|
76
|
-
return (react_1.default.createElement(partials_1.HeaderWrapper,
|
|
77
|
-
includeUserActionsNav ? react_1.default.createElement(partials_2.UserActionsNav,
|
|
76
|
+
return (react_1.default.createElement(partials_1.HeaderWrapper, { ...props },
|
|
77
|
+
includeUserActionsNav ? react_1.default.createElement(partials_2.UserActionsNav, { ...props }) : null,
|
|
78
78
|
react_1.default.createElement(partials_1.TopWrapper, null, props.showLogoLink ? react_1.default.createElement(partials_1.TopColumnCenter, null) : react_1.default.createElement(partials_1.TopColumnCenterNoLink, null)),
|
|
79
|
-
react_1.default.createElement(partials_2.NavDesktop, null, props.showUserNavigation ? react_1.default.createElement(partials_2.NavListRight,
|
|
80
|
-
includeSubNavigation ? react_1.default.createElement(partials_4.SubNavigation,
|
|
79
|
+
react_1.default.createElement(partials_2.NavDesktop, null, props.showUserNavigation ? react_1.default.createElement(partials_2.NavListRight, { ...props }) : null),
|
|
80
|
+
includeSubNavigation ? react_1.default.createElement(partials_4.SubNavigation, { ...props }) : null));
|
|
81
81
|
}
|
|
82
|
-
exports.NoOutboundLinksHeader = NoOutboundLinksHeader;
|
|
83
82
|
NoOutboundLinksHeader.defaultProps = defaultProps;
|