@arc-ui/components 12.0.0-beta.22 → 12.0.0-beta.23
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/lib/Alert/Alert.cjs +22 -21
- package/lib/Alert/Alert.mjs +22 -21
- package/lib/Alert/styles.css +1 -1
- package/lib/Align/styles.css +1 -1
- package/lib/AppButton/styles.css +1 -1
- package/lib/Avatar/styles.css +1 -1
- package/lib/AvatarGroup/styles.css +1 -1
- package/lib/Badge/styles.css +1 -1
- package/lib/Banner/Banner.cjs +1 -1
- package/lib/Banner/Banner.mjs +1 -1
- package/lib/Box/styles.css +1 -1
- package/lib/BrandLogo/styles.css +1 -1
- package/lib/Breadcrumbs/Breadcrumbs.cjs +12 -3
- package/lib/Breadcrumbs/Breadcrumbs.mjs +12 -3
- package/lib/Breadcrumbs/styles.css +1 -1
- package/lib/Button/styles.css +1 -1
- package/lib/ButtonGroup/styles.css +1 -1
- package/lib/ButtonV2/styles.css +1 -1
- package/lib/Calendar/Calendar.cjs +2 -2
- package/lib/Calendar/Calendar.mjs +2 -2
- package/lib/Calendar/styles.css +1 -1
- package/lib/CardFooter/styles.css +1 -1
- package/lib/CardHeading/styles.css +1 -1
- package/lib/Carousel/Carousel.cjs +11 -5
- package/lib/Carousel/Carousel.mjs +8 -2
- package/lib/Carousel/styles.css +1 -1
- package/lib/Checkbox/Checkbox.cjs +85 -11
- package/lib/Checkbox/Checkbox.mjs +87 -9
- package/lib/Checkbox/styles.css +1 -1
- package/lib/Columns/styles.css +1 -1
- package/lib/ComboBox/ComboBox.cjs +276 -11
- package/lib/ComboBox/ComboBox.mjs +279 -10
- package/lib/ComboBox/styles.css +1 -1
- package/lib/ContentSwitcher/ContentSwitcher.cjs +5 -6
- package/lib/ContentSwitcher/ContentSwitcher.mjs +5 -6
- package/lib/ContentSwitcher/styles.css +1 -1
- package/lib/ContentSwitcherDropdown/styles.css +1 -1
- package/lib/DatePicker/DatePicker.cjs +351 -38
- package/lib/DatePicker/DatePicker.mjs +329 -17
- package/lib/DatePicker/styles.css +1 -1
- package/lib/Disclosure/styles.css +1 -1
- package/lib/DisclosureMini/styles.css +1 -1
- package/lib/Download/styles.css +1 -1
- package/lib/Drawer/styles.css +1 -1
- package/lib/Elevation/styles.css +1 -1
- package/lib/Filter/styles.css +1 -1
- package/lib/FormControl/styles.css +1 -1
- package/lib/GhostedHeroBanner/styles.css +1 -1
- package/lib/GradientPageBackground/GradientPageBackground.cjs +55 -43
- package/lib/GradientPageBackground/GradientPageBackground.mjs +55 -43
- package/lib/GradientPageBackground/styles.css +1 -1
- package/lib/Grid/styles.css +1 -1
- package/lib/Group/styles.css +1 -1
- package/lib/Heading/styles.css +1 -1
- package/lib/HeroBanner/HeroBanner.cjs +1 -1
- package/lib/HeroBanner/HeroBanner.mjs +1 -1
- package/lib/HeroBanner/styles.css +1 -1
- package/lib/HeroButton/HeroButton.cjs +77 -9
- package/lib/HeroButton/HeroButton.mjs +80 -8
- package/lib/HeroButton/styles.css +1 -1
- package/lib/Hidden/styles.css +1 -1
- package/lib/HorizontalCard/styles.css +1 -1
- package/lib/Icon/styles.css +1 -1
- package/lib/Image/styles.css +1 -1
- package/lib/ImpactCard/ImpactCard.cjs +3 -3
- package/lib/ImpactCard/ImpactCard.mjs +3 -3
- package/lib/ImpactCard/styles.css +1 -1
- package/lib/InformationCard/InformationCard.cjs +6 -6
- package/lib/InformationCard/InformationCard.mjs +6 -6
- package/lib/InformationCard/styles.css +1 -1
- package/lib/Link/Link.cjs +1 -1
- package/lib/Link/Link.mjs +1 -1
- package/lib/Link/styles.css +1 -1
- package/lib/Markup/styles.css +1 -1
- package/lib/MediaCard/MediaCard.cjs +53 -14
- package/lib/MediaCard/MediaCard.mjs +55 -12
- package/lib/MediaCard/styles.css +1 -1
- package/lib/Menu/Menu.cjs +1327 -25
- package/lib/Menu/Menu.mjs +1292 -9
- package/lib/Menu/styles.css +1 -1
- package/lib/Modal/styles.css +1 -1
- package/lib/NavigationHeader/NavigationHeader.cjs +743 -16
- package/lib/NavigationHeader/NavigationHeader.mjs +734 -7
- package/lib/NavigationHeader/styles.css +1 -1
- package/lib/Pagination/styles.css +1 -1
- package/lib/PaginationSimple/styles.css +1 -1
- package/lib/Popover/styles.css +1 -1
- package/lib/Poster/styles.css +1 -1
- package/lib/ProgressBar/styles.css +1 -1
- package/lib/ProgressStepper/styles.css +1 -1
- package/lib/ProgressStepperOverflow/ProgressStepperOverflow.cjs +138 -7
- package/lib/ProgressStepperOverflow/ProgressStepperOverflow.mjs +140 -5
- package/lib/ProgressStepperOverflow/styles.css +1 -1
- package/lib/RadioCardGroup/RadioCardGroup.cjs +48 -7
- package/lib/RadioCardGroup/RadioCardGroup.mjs +48 -8
- package/lib/RadioCardGroup/styles.css +1 -1
- package/lib/RadioGroup/RadioGroup.cjs +50 -8
- package/lib/RadioGroup/RadioGroup.mjs +49 -8
- package/lib/RadioGroup/styles.css +1 -1
- package/lib/Rule/styles.css +1 -1
- package/lib/ScrollToTop/styles.css +1 -1
- package/lib/Section/Section.cjs +1 -1
- package/lib/Section/Section.mjs +1 -1
- package/lib/Section/styles.css +1 -1
- package/lib/Select/styles.css +1 -1
- package/lib/SiteFooter/SiteFooter.cjs +1 -1
- package/lib/SiteFooter/SiteFooter.mjs +1 -1
- package/lib/SiteFooter/styles.css +1 -1
- package/lib/SiteFooterV2/SiteFooterV2.cjs +6 -5
- package/lib/SiteFooterV2/SiteFooterV2.mjs +6 -5
- package/lib/SiteFooterV2/styles.css +1 -1
- package/lib/SiteHeaderV2/SiteHeaderV2.cjs +440 -15
- package/lib/SiteHeaderV2/SiteHeaderV2.mjs +435 -11
- package/lib/SiteHeaderV2/styles.css +1 -1
- package/lib/Skeleton/styles.css +1 -1
- package/lib/SkipLink/styles.css +1 -1
- package/lib/Spinner/styles.css +1 -1
- package/lib/Surface/styles.css +1 -1
- package/lib/Switch/styles.css +1 -1
- package/lib/TabbedBanner/TabbedBanner.cjs +4 -5
- package/lib/TabbedBanner/TabbedBanner.mjs +4 -5
- package/lib/TabbedBanner/styles.css +1 -1
- package/lib/Tabs/Tabs.mjs +1 -1
- package/lib/Tabs/styles.css +1 -1
- package/lib/Tag/Tag.cjs +9 -9
- package/lib/Tag/Tag.mjs +9 -9
- package/lib/Tag/styles.css +1 -1
- package/lib/TemplateBanner/TemplateBanner.cjs +1 -1
- package/lib/TemplateBanner/TemplateBanner.mjs +1 -1
- package/lib/TemplateBanner/styles.css +1 -1
- package/lib/Text/styles.css +1 -1
- package/lib/TextArea/TextArea.cjs +2 -53
- package/lib/TextArea/TextArea.mjs +2 -53
- package/lib/TextArea/styles.css +1 -1
- package/lib/TextInput/styles.css +1 -1
- package/lib/Theme/Theme.cjs +1 -1
- package/lib/Theme/Theme.mjs +1 -1
- package/lib/Theme/styles.css +1 -1
- package/lib/ThemeIcon/styles.css +1 -1
- package/lib/ThumbnailSignpost/styles.css +1 -1
- package/lib/Toast/styles.css +1 -1
- package/lib/Tooltip/styles.css +1 -1
- package/lib/Truncate/styles.css +1 -1
- package/lib/TypographyCard/TypographyCard.cjs +3 -3
- package/lib/TypographyCard/TypographyCard.mjs +3 -3
- package/lib/TypographyCard/styles.css +1 -1
- package/lib/UniversalHeader/styles.css +1 -1
- package/lib/VerticalSpace/styles.css +1 -1
- package/lib/VideoPlayer/styles.css +1 -1
- package/lib/Visible/styles.css +1 -1
- package/lib/VisuallyHidden/styles.css +1 -1
- package/lib/_shared/cjs/{Calendar-B-va25n2.cjs → Calendar-Bfdgf5q1.cjs} +1 -1
- package/lib/_shared/cjs/{ContentSwitcherList-bCEzIPN2.cjs → ContentSwitcherList-pcYtuT6L.cjs} +8 -0
- package/lib/_shared/cjs/{Link-7xUgVf1I.cjs → Link-C3OSQIIk.cjs} +3 -1
- package/lib/_shared/cjs/{Section-wUVdzmGA.cjs → Section-Bz2fwj8Z.cjs} +2 -2
- package/lib/_shared/cjs/{TemplateBanner-CImrJ9ON.cjs → TemplateBanner-COymAI91.cjs} +2 -2
- package/lib/_shared/cjs/{arc-breakpoints-DWUgmeLA.cjs → arc-breakpoints-CS8JVk5T.cjs} +1 -1
- package/lib/_shared/cjs/{index.es-DlNskPlN.cjs → index.es-fkulh7qu.cjs} +1 -1
- package/lib/_shared/esm/{Calendar-Bd2_eT1Y.mjs → Calendar-Drh_NJ9I.mjs} +1 -1
- package/lib/_shared/esm/{ContentSwitcherList-bCQz0qkU.mjs → ContentSwitcherList-DwHfU3no.mjs} +10 -3
- package/lib/_shared/esm/{Link-Biyg9qBH.mjs → Link-DxjGH_7f.mjs} +3 -1
- package/lib/_shared/esm/{Section-DDygQ5Az.mjs → Section-7InCvzfh.mjs} +2 -2
- package/lib/_shared/esm/{TemplateBanner-DeHjliNP.mjs → TemplateBanner-Dkgzu3A5.mjs} +2 -2
- package/lib/_shared/esm/{arc-breakpoints-D5hR5m3t.mjs → arc-breakpoints-D7Ie4kBt.mjs} +1 -1
- package/lib/_shared/esm/{index-BDWwJ5x2.mjs → index-BWkI4Dwz.mjs} +1 -1
- package/lib/_shared/esm/{index.es-C3WqfFKH.mjs → index.es-CtRkzfKP.mjs} +2 -2
- package/lib/index.cjs +300 -283
- package/lib/index.cjs.map +1 -1
- package/lib/index.d.cts +28 -3
- package/lib/index.d.mts +28 -3
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +301 -284
- package/lib/index.mjs.map +1 -1
- package/lib/styles.css +10 -10
- package/package.json +8 -8
- package/lib/_shared/cjs/BreadcrumbsLink-CDmk3Y3m.cjs +0 -18
- package/lib/_shared/cjs/Checkbox-DfZMjO1Y.cjs +0 -88
- package/lib/_shared/cjs/ComboBox-BGUhlqx1.cjs +0 -281
- package/lib/_shared/cjs/ContentSwitcherTab-B387Qs3I.cjs +0 -14
- package/lib/_shared/cjs/DatePicker-Dt4faA_N.cjs +0 -334
- package/lib/_shared/cjs/HeroButton-CrzkTUwP.cjs +0 -82
- package/lib/_shared/cjs/MediaCard-BEZFbiYO.cjs +0 -57
- package/lib/_shared/cjs/MenuItemMultiLevelContent-vLr6hSBm.cjs +0 -1328
- package/lib/_shared/cjs/ProgressStepperOverflow-BAGZNC26.cjs +0 -142
- package/lib/_shared/cjs/RadioCardGroupInput-CeUM3yPS.cjs +0 -53
- package/lib/_shared/cjs/RadioGroupInput-w2qkfsnG.cjs +0 -54
- package/lib/_shared/cjs/SiteHeaderV2NavItemWithSubNav-CagFKPEa.cjs +0 -445
- package/lib/_shared/cjs/kebabCase-D5yA6u-V.cjs +0 -743
- package/lib/_shared/cjs/keynames-Cx13-hWr.cjs +0 -8
- package/lib/_shared/esm/BreadcrumbsLink-BxTurGNa.mjs +0 -16
- package/lib/_shared/esm/Checkbox-CwOHzlQF.mjs +0 -86
- package/lib/_shared/esm/ComboBox-CRlJjeev.mjs +0 -279
- package/lib/_shared/esm/ContentSwitcherTab-CfC3PGeZ.mjs +0 -12
- package/lib/_shared/esm/DatePicker-DT4OEzxP.mjs +0 -324
- package/lib/_shared/esm/HeroButton-jdjjV_Gf.mjs +0 -80
- package/lib/_shared/esm/MediaCard-DqMaNWsE.mjs +0 -55
- package/lib/_shared/esm/MenuItemMultiLevelContent-JTOHqpzg.mjs +0 -1296
- package/lib/_shared/esm/ProgressStepperOverflow-fPkLltVO.mjs +0 -140
- package/lib/_shared/esm/RadioCardGroupInput-D7W28geB.mjs +0 -50
- package/lib/_shared/esm/RadioGroupInput-zAWSV29m.mjs +0 -50
- package/lib/_shared/esm/SiteHeaderV2NavItemWithSubNav-CxGwdV6u.mjs +0 -439
- package/lib/_shared/esm/kebabCase-CCEMRBfd.mjs +0 -737
- package/lib/_shared/esm/keynames-B5whqsjh.mjs +0 -8
|
@@ -1,24 +1,128 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var SiteHeaderV2NavItemWithSubNav = require('../_shared/cjs/SiteHeaderV2NavItemWithSubNav-CagFKPEa.cjs');
|
|
5
4
|
var filterAttrs = require('../_shared/cjs/filter-attrs-eK6E_34o.cjs');
|
|
6
5
|
var React = require('react');
|
|
7
6
|
var index = require('../_shared/cjs/index-CTlXMLug.cjs');
|
|
8
|
-
var
|
|
7
|
+
var index_es = require('../_shared/cjs/index.es-fkulh7qu.cjs');
|
|
8
|
+
var BtIconChevronRight2Px = require('../_shared/cjs/BtIconChevronRight2Px-CIRaur2B.cjs');
|
|
9
|
+
var BrandLogo = require('../_shared/cjs/BrandLogo-D5wlIFmm.cjs');
|
|
10
|
+
var useMediaQuery = require('../_shared/cjs/use-media-query-BsUfHjPZ.cjs');
|
|
11
|
+
var Surface = require('../_shared/cjs/Surface-BFx1yNsq.cjs');
|
|
9
12
|
var handleLinkClick = require('../_shared/cjs/handle-link-click-C7BvOIYa.cjs');
|
|
10
13
|
var Icon = require('../_shared/cjs/Icon-CzhyKqMd.cjs');
|
|
11
|
-
var
|
|
14
|
+
var BtIconChevronRightMid = require('../_shared/cjs/BtIconChevronRightMid-eGxk3ae6.cjs');
|
|
12
15
|
var ConditionalWrapper = require('../_shared/cjs/ConditionalWrapper-C09Kw6EG.cjs');
|
|
13
|
-
var
|
|
14
|
-
var BtIconChevronRight2Px = require('../_shared/cjs/BtIconChevronRight2Px-CIRaur2B.cjs');
|
|
16
|
+
var ButtonV2 = require('../_shared/cjs/ButtonV2-Bta5SVVY.cjs');
|
|
15
17
|
var suffixModifier = require('../_shared/cjs/suffix-modifier-DLUGR-yG.cjs');
|
|
16
18
|
var Text = require('../_shared/cjs/Text-Cr5nmYmx.cjs');
|
|
17
|
-
require('../_shared/cjs/Surface-BFx1yNsq.cjs');
|
|
18
19
|
require('../_shared/cjs/index-DR8Rkav9.cjs');
|
|
19
|
-
require('../_shared/cjs/ButtonV2-Bta5SVVY.cjs');
|
|
20
20
|
require('../_shared/cjs/Spinner-bbrOwxv2.cjs');
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
var SiteHeaderV2MenuButton = function (_a) {
|
|
23
|
+
var _b;
|
|
24
|
+
var menuOpen = _a.menuOpen, setMenuOpen = _a.setMenuOpen;
|
|
25
|
+
return (React.createElement("button", { "aria-expanded": menuOpen, className: index.classNames((_b = {},
|
|
26
|
+
_b["arc-SiteHeaderV2MenuButton"] = true,
|
|
27
|
+
_b["arc-SiteHeaderV2MenuButton--menuOpen"] = menuOpen,
|
|
28
|
+
_b)), onClick: function () {
|
|
29
|
+
setMenuOpen(!menuOpen);
|
|
30
|
+
}, type: "button" },
|
|
31
|
+
React.createElement("span", { className: "arc-SiteHeaderV2MenuButton-box" },
|
|
32
|
+
React.createElement("span", { className: "arc-SiteHeaderV2MenuButton-inner" }),
|
|
33
|
+
React.createElement("span", { className: "arc-SiteHeaderV2MenuButton-text" }, "Menu"))));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
var defaultContext$1 = { transparent: false, menubarRef: null };
|
|
37
|
+
var Context$1 = React.createContext(defaultContext$1);
|
|
38
|
+
var Provider$1 = Context$1.Provider;
|
|
39
|
+
/**
|
|
40
|
+
* Use `SiteHeaderV2` to display brand logo and navigation at the top of a page.
|
|
41
|
+
*/
|
|
42
|
+
var SiteHeaderV2 = function (_a) {
|
|
43
|
+
var _b;
|
|
44
|
+
var children = _a.children, basket = _a.basket, _c = _a.hasLogin, hasLogin = _c === void 0 ? true : _c, _d = _a.isTransparent, isTransparent = _d === void 0 ? false : _d, _e = _a.loginHref, loginHref = _e === void 0 ? "/login" : _e, logoOnClick = _a.logoOnClick, loginOnClick = _a.loginOnClick, _f = _a.loginTitle, loginTitle = _f === void 0 ? "Log in / Register" : _f, _g = _a.logoHref, logoHref = _g === void 0 ? "/" : _g, _h = _a.logoLabel, logoLabel = _h === void 0 ? "Home" : _h, search = _a.search, subBrand = _a.subBrand, props = filterAttrs.__rest(_a, ["children", "basket", "hasLogin", "isTransparent", "loginHref", "logoOnClick", "loginOnClick", "loginTitle", "logoHref", "logoLabel", "search", "subBrand"]);
|
|
45
|
+
var _j = React.useState(false), hasClientSideJavaScript = _j[0], setHasClientSideJavaScript = _j[1];
|
|
46
|
+
var _k = React.useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
|
|
47
|
+
var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")"));
|
|
48
|
+
var menubarRef = React.useRef();
|
|
49
|
+
React.useEffect(function () {
|
|
50
|
+
if (!isMinWidthArcBreakpointL && menuOpen) {
|
|
51
|
+
document.body.classList.add("arc-body--overflowHidden");
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
document.body.classList.remove("arc-body--overflowHidden");
|
|
55
|
+
}
|
|
56
|
+
return function () {
|
|
57
|
+
document.body.classList.remove("arc-body--overflowHidden");
|
|
58
|
+
};
|
|
59
|
+
}, [isMinWidthArcBreakpointL, menuOpen]);
|
|
60
|
+
React.useEffect(function () {
|
|
61
|
+
var handleKeydown = function (e) {
|
|
62
|
+
if (e.key === "Escape" || e.keyCode === 27) {
|
|
63
|
+
setMenuOpen(false);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
window.addEventListener("keydown", handleKeydown);
|
|
67
|
+
return function () {
|
|
68
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
69
|
+
};
|
|
70
|
+
}, [setMenuOpen]);
|
|
71
|
+
React.useEffect(function () {
|
|
72
|
+
var _a, _b;
|
|
73
|
+
(_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
|
|
74
|
+
}, []);
|
|
75
|
+
React.useEffect(function () {
|
|
76
|
+
var handleClick = function (e) {
|
|
77
|
+
if (e.target.getAttribute("href")) {
|
|
78
|
+
setMenuOpen(false);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
document.addEventListener("click", handleClick);
|
|
82
|
+
return function () {
|
|
83
|
+
document.removeEventListener("click", handleClick);
|
|
84
|
+
};
|
|
85
|
+
}, [setMenuOpen]);
|
|
86
|
+
React.useEffect(function () {
|
|
87
|
+
// useEffect does not run in ReactDomServer renders
|
|
88
|
+
setHasClientSideJavaScript(true);
|
|
89
|
+
}, [setHasClientSideJavaScript]);
|
|
90
|
+
return (React.createElement(Provider$1, { value: { transparent: isTransparent, menubarRef: menubarRef } },
|
|
91
|
+
React.createElement("div", filterAttrs.__assign({ className: index.classNames((_b = {},
|
|
92
|
+
_b["arc-SiteHeaderV2"] = true,
|
|
93
|
+
_b["arc-SiteHeaderV2--menuOpen"] = menuOpen,
|
|
94
|
+
_b["arc-no-js"] = !hasClientSideJavaScript,
|
|
95
|
+
_b)) }, filterAttrs.filterAttrs(props), { "data-transparent": isTransparent || null }),
|
|
96
|
+
React.createElement(Surface.Surface, { background: !isTransparent || (menuOpen && !isMinWidthArcBreakpointL)
|
|
97
|
+
? "dark-brand-01"
|
|
98
|
+
: undefined },
|
|
99
|
+
React.createElement("div", { className: "arc-SiteHeaderV2-inner" },
|
|
100
|
+
React.createElement("a", { className: "arc-SiteHeaderV2-brand", onClick: handleLinkClick.handleLinkClick({
|
|
101
|
+
handler: logoOnClick,
|
|
102
|
+
}), href: logoHref },
|
|
103
|
+
React.createElement(BrandLogo.BrandLogo, { label: logoLabel, subBrand: subBrand })),
|
|
104
|
+
children && (React.createElement("nav", { className: "arc-SiteHeaderV2-nav" },
|
|
105
|
+
React.createElement("div", { className: "arc-SiteHeaderV2-menuButton" },
|
|
106
|
+
React.createElement(SiteHeaderV2MenuButton, { menuOpen: menuOpen, setMenuOpen: setMenuOpen })),
|
|
107
|
+
React.createElement("div", { className: "arc-SiteHeaderV2-main", tabIndex: -1 },
|
|
108
|
+
React.createElement("ul", { role: "menubar", "aria-label": "navigation", ref: menubarRef, className: "arc-SiteHeaderV2-navItems" }, children),
|
|
109
|
+
hasLogin && (React.createElement(React.Fragment, null, loginOnClick ? (React.createElement("div", { className: "arc-SiteHeaderV2-mobileButtonContainer" },
|
|
110
|
+
React.createElement("button", { className: "arc-SiteHeaderV2-mobileLogin", onClick: loginOnClick },
|
|
111
|
+
loginTitle,
|
|
112
|
+
React.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
|
|
113
|
+
React.createElement(Icon.Icon, { icon: BtIconChevronRight2Px.BtIconChevronRight2Px }))))) : (React.createElement("div", { className: "arc-SiteHeaderV2-mobileButtonContainer" },
|
|
114
|
+
React.createElement("a", { className: "arc-SiteHeaderV2-mobileLogin", href: loginHref },
|
|
115
|
+
loginTitle,
|
|
116
|
+
React.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
|
|
117
|
+
React.createElement(Icon.Icon, { icon: BtIconChevronRight2Px.BtIconChevronRight2Px })))))))))),
|
|
118
|
+
(basket || hasLogin || search) && (React.createElement("div", { className: "arc-SiteHeaderV2-secondary" },
|
|
119
|
+
search ? (React.createElement("div", { className: "arc-SiteHeaderV2-search" }, search)) : null,
|
|
120
|
+
basket ? (React.createElement("div", { className: "arc-SiteHeaderV2-basket" }, basket)) : null,
|
|
121
|
+
hasLogin && (React.createElement(React.Fragment, null, loginOnClick ? (React.createElement("div", { className: "arc-SiteHeaderV2-loginLink arc-SiteHeaderV2-loginLink--function", onClick: loginOnClick }, loginTitle)) : (React.createElement("a", { className: "arc-SiteHeaderV2-loginLink", href: loginHref }, loginTitle)))))))))));
|
|
122
|
+
};
|
|
123
|
+
function useHeaderV2Context() {
|
|
124
|
+
return React.useContext(Context$1);
|
|
125
|
+
}
|
|
22
126
|
|
|
23
127
|
var SiteHeaderV2Column = function (_a) {
|
|
24
128
|
var children = _a.children, props = filterAttrs.__rest(_a, ["children"]);
|
|
@@ -61,6 +165,166 @@ var SiteHeaderV2ItemGroup = function (_a) {
|
|
|
61
165
|
}), href: href }, viewAllTitle || "View all ".concat(title.toLowerCase())))) : null))));
|
|
62
166
|
};
|
|
63
167
|
|
|
168
|
+
var SiteHeaderV2BackButton = function (_a) {
|
|
169
|
+
var setOpen = _a.setOpen, setOpenPanelOnFirstClick = _a.setOpenPanelOnFirstClick;
|
|
170
|
+
return (React.createElement("button", { className: "arc-SiteHeaderV2BackButton", onClick: function () {
|
|
171
|
+
setOpen(false);
|
|
172
|
+
setOpenPanelOnFirstClick(false);
|
|
173
|
+
} },
|
|
174
|
+
React.createElement("span", { className: "arc-SiteHeaderV2BackButton-icon" },
|
|
175
|
+
React.createElement(Icon.Icon, { icon: BtIconChevronRight2Px.BtIconChevronLeft2Px })),
|
|
176
|
+
React.createElement("span", { className: "arc-SiteHeaderV2BackButton-text" }, "Back")));
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
var SiteHeaderV2Panel = function (_a) {
|
|
180
|
+
var _b, _c, _d, _e, _f;
|
|
181
|
+
var children = _a.children, navItemRef = _a.navItemRef, isNavItem = _a.isNavItem, open = _a.open, setOpen = _a.setOpen, setOpenPanelOnFirstClick = _a.setOpenPanelOnFirstClick, subNavItemRef = _a.subNavItemRef, _g = _a.subNavLink, subNavLink = _g === void 0 ? "" : _g, title = _a.title, subtitle = _a.subtitle, viewAll = _a.viewAll, withSubNav = _a.withSubNav, isPrimary = _a.isPrimary, props = filterAttrs.__rest(_a, ["children", "navItemRef", "isNavItem", "open", "setOpen", "setOpenPanelOnFirstClick", "subNavItemRef", "subNavLink", "title", "subtitle", "viewAll", "withSubNav", "isPrimary"]);
|
|
182
|
+
var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")"));
|
|
183
|
+
var menubarRef = useHeaderV2Context().menubarRef;
|
|
184
|
+
React.useEffect(function () {
|
|
185
|
+
// Where appropriate, close the Panel when clicking outside of it,
|
|
186
|
+
// by listening to clicks on the entire document and acting accordingly.
|
|
187
|
+
var handleClick = function (e) {
|
|
188
|
+
var _a, _b, _c, _d;
|
|
189
|
+
(_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
|
|
190
|
+
// Don't close the Panel…
|
|
191
|
+
if (
|
|
192
|
+
// The click is inside the current SubNavItem.
|
|
193
|
+
((_c = subNavItemRef === null || subNavItemRef === void 0 ? void 0 : subNavItemRef.current) === null || _c === void 0 ? void 0 : _c.contains(e.target)) ||
|
|
194
|
+
// The click is inside the current NavItem
|
|
195
|
+
// and the Panel is not inside a SubNavItem.
|
|
196
|
+
// and the target is not a link
|
|
197
|
+
(((_d = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _d === void 0 ? void 0 : _d.contains(e.target)) &&
|
|
198
|
+
!subNavItemRef &&
|
|
199
|
+
!e.target.getAttribute("href")) ||
|
|
200
|
+
// The Panel is inside a SubNavItem
|
|
201
|
+
// and the click is not on a SubNavItem-link.
|
|
202
|
+
// This ensures that one SubNavItem Panel per NavItem always remains open.
|
|
203
|
+
(subNavItemRef &&
|
|
204
|
+
!e.target.classList.contains(subNavLink) &&
|
|
205
|
+
!e.target.classList.contains("".concat(subNavLink, "Title")) &&
|
|
206
|
+
!e.target.classList.contains("".concat(subNavLink, "SubTitle")) &&
|
|
207
|
+
!e.target.classList.contains("".concat(subNavLink, "Slot")) &&
|
|
208
|
+
!e.target.classList.contains("".concat(subNavLink, "SlotTitle"))) ||
|
|
209
|
+
// Panel is inside a SubNavItem
|
|
210
|
+
// and the click is not inside the Panel's NavItem parent.
|
|
211
|
+
// This prevents SubNavItem Panels in sibling NavItems from being closed.
|
|
212
|
+
(subNavItemRef && !(navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current.contains(e.target)))) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
// Close the panel.
|
|
216
|
+
setOpen(false);
|
|
217
|
+
setOpenPanelOnFirstClick(false);
|
|
218
|
+
};
|
|
219
|
+
document.addEventListener("click", handleClick);
|
|
220
|
+
return function () {
|
|
221
|
+
document.removeEventListener("click", handleClick);
|
|
222
|
+
};
|
|
223
|
+
}, [
|
|
224
|
+
navItemRef,
|
|
225
|
+
setOpen,
|
|
226
|
+
subNavItemRef,
|
|
227
|
+
subNavLink,
|
|
228
|
+
setOpenPanelOnFirstClick,
|
|
229
|
+
menubarRef,
|
|
230
|
+
]);
|
|
231
|
+
React.useEffect(function () {
|
|
232
|
+
var handleClick = function (e) {
|
|
233
|
+
var _a, _b;
|
|
234
|
+
(_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
|
|
235
|
+
// Close the Panel…
|
|
236
|
+
if (e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel")) {
|
|
237
|
+
setOpenPanelOnFirstClick(false);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel") ||
|
|
241
|
+
e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-primary")) {
|
|
242
|
+
setOpenPanelOnFirstClick(true);
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
document.addEventListener("click", handleClick);
|
|
247
|
+
return function () {
|
|
248
|
+
document.removeEventListener("click", handleClick);
|
|
249
|
+
};
|
|
250
|
+
}, [navItemRef, setOpenPanelOnFirstClick, menubarRef]);
|
|
251
|
+
React.useEffect(function () {
|
|
252
|
+
var handleKeydown = function (e) {
|
|
253
|
+
var _a, _b;
|
|
254
|
+
// Check the viewport width at time of press
|
|
255
|
+
var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")")).matches;
|
|
256
|
+
if (e.key === "Escape" || e.keyCode === 27) {
|
|
257
|
+
if (isMinWidthArcBreakpointL && subNavItemRef) {
|
|
258
|
+
// Don't close Panels inside SubNavItems when viewport width is above
|
|
259
|
+
// the "desktop" breakpoint.
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
return setOpen(false);
|
|
263
|
+
}
|
|
264
|
+
if (e.key === "Tab") {
|
|
265
|
+
(_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.remove("noFocus");
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
window.addEventListener("keydown", handleKeydown);
|
|
269
|
+
return function () {
|
|
270
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
271
|
+
};
|
|
272
|
+
}, [setOpen, subNavItemRef, menubarRef]);
|
|
273
|
+
return (React.createElement("div", { style: { display: "flex" } },
|
|
274
|
+
React.createElement("div", filterAttrs.__assign({ className: index.classNames((_b = {},
|
|
275
|
+
_b["arc-SiteHeaderV2Panel"] = true,
|
|
276
|
+
_b["arc-SiteHeaderV2Panel--open"] = open,
|
|
277
|
+
_b["arc-SiteHeaderV2Panel--withSubNav"] = withSubNav,
|
|
278
|
+
_b["arc-SiteHeaderV2Panel-onlyPanel"] = isPrimary && isNavItem,
|
|
279
|
+
_b)) }, filterAttrs.filterAttrs(props)),
|
|
280
|
+
React.createElement(Surface.Surface, { background: "light-white" },
|
|
281
|
+
React.createElement(SiteHeaderV2BackButton, { setOpen: setOpen, setOpenPanelOnFirstClick: setOpenPanelOnFirstClick }),
|
|
282
|
+
React.createElement("div", { className: index.classNames((_c = {},
|
|
283
|
+
_c["arc-SiteHeaderV2Panel-inner"] = !isNavItem && withSubNav,
|
|
284
|
+
_c["arc-SiteHeaderV2Panel-innerWithoutSubNav"] = !isNavItem && !withSubNav,
|
|
285
|
+
_c["arc-SiteHeaderV2NavItemWithSubNav-fadeIn"] = !isNavItem && !withSubNav,
|
|
286
|
+
_c["arc-SiteHeaderV2Panel-innerNavItems"] = isNavItem,
|
|
287
|
+
_c)) },
|
|
288
|
+
React.createElement("div", { className: index.classNames((_d = {},
|
|
289
|
+
_d["arc-SiteHeaderV2Panel-main"] = !isNavItem && !withSubNav,
|
|
290
|
+
_d)) },
|
|
291
|
+
React.createElement("div", { className: index.classNames((_e = {},
|
|
292
|
+
_e["arc-SiteHeaderV2Panel-mainInnerWithoutSubNav"] = !isNavItem && !withSubNav,
|
|
293
|
+
_e["arc-SiteHeaderV2Panel-mainInner"] = !isNavItem,
|
|
294
|
+
_e["arc-SiteHeaderV2Panel-mainInnerNavItems"] = isNavItem,
|
|
295
|
+
_e)) },
|
|
296
|
+
withSubNav && (React.createElement("div", { className: "arc-SiteHeaderV2Panel-subNavArea" })),
|
|
297
|
+
!isMinWidthArcBreakpointL && title && (React.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileTitleBlock" },
|
|
298
|
+
React.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileTitle" },
|
|
299
|
+
title && (React.createElement("div", { className: "arc-SiteHeaderV2Panel-title" }, title)),
|
|
300
|
+
React.createElement("div", { className: "arc-SiteHeaderV2Panel-subTitle" }, subtitle)))),
|
|
301
|
+
React.createElement("ul", { className: index.classNames((_f = {},
|
|
302
|
+
_f["arc-SiteHeaderV2Panel-items"] = !isNavItem,
|
|
303
|
+
_f["arc-SiteHeaderV2Panel-itemsNavItems"] = isNavItem,
|
|
304
|
+
_f["arc-SiteHeaderV2NavItemWithSubNav-fadeIn"] = open && isNavItem,
|
|
305
|
+
_f)) }, children),
|
|
306
|
+
!withSubNav && viewAll)),
|
|
307
|
+
withSubNav && viewAll)))));
|
|
308
|
+
};
|
|
309
|
+
var SiteHeaderV2ViewAll = function (_a) {
|
|
310
|
+
var href = _a.href, title = _a.title, onClick = _a.onClick, buttonStyle = _a.buttonStyle;
|
|
311
|
+
var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")"));
|
|
312
|
+
if (buttonStyle === "secondary") {
|
|
313
|
+
return isMinWidthArcBreakpointL ? (React.createElement("div", { className: "arc-SiteHeaderV2Panel-viewAllOutlined" },
|
|
314
|
+
React.createElement(ButtonV2.ButtonV2, { buttonStyle: buttonStyle, label: title !== null && title !== void 0 ? title : "", href: href, onClick: onClick }))) : (React.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileViewAll arc-SiteHeaderV2Panel-mobileViewAllOutlined" },
|
|
315
|
+
React.createElement("a", { className: "arc-SiteHeaderV2Item-link", onClick: handleLinkClick.handleLinkClick({
|
|
316
|
+
handler: onClick,
|
|
317
|
+
}), href: href }, title)));
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
return isMinWidthArcBreakpointL ? (React.createElement("div", { className: "arc-SiteHeaderV2Panel-viewAll" },
|
|
321
|
+
React.createElement(ButtonV2.ButtonV2, { buttonStyle: buttonStyle, label: title !== null && title !== void 0 ? title : "", isFullWidth: true, href: href, onClick: onClick }))) : (React.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileViewAll" },
|
|
322
|
+
React.createElement("a", { className: "arc-SiteHeaderV2Item-link", onClick: handleLinkClick.handleLinkClick({
|
|
323
|
+
handler: onClick,
|
|
324
|
+
}), href: href }, title)));
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
|
+
|
|
64
328
|
var SiteHeaderV2NavItem = function (_a) {
|
|
65
329
|
var _b, _c, _d, _e, _f;
|
|
66
330
|
var children = _a.children, href = _a.href, isCurrent = _a.isCurrent, onClick = _a.onClick, title = _a.title, isPrimary = _a.isPrimary, opensFirstWithPanel = _a.opensFirstWithPanel, subTitle = _a.subTitle, props = filterAttrs.__rest(_a, ["children", "href", "isCurrent", "onClick", "title", "isPrimary", "opensFirstWithPanel", "subTitle"]);
|
|
@@ -108,9 +372,170 @@ var SiteHeaderV2NavItem = function (_a) {
|
|
|
108
372
|
_f["arc-SiteHeaderV2NavItemWithSubNav-primaryButtonUnderline"] = isPrimary && panelOpen,
|
|
109
373
|
_f["arc-SiteHeaderV2NavItemWithSubNav-buttonUnderlineActive"] = !isPrimary && (panelOpen || openSecondaryWithSubNav),
|
|
110
374
|
_f)) }))),
|
|
111
|
-
React.createElement(
|
|
375
|
+
React.createElement(SiteHeaderV2Panel, { navItemRef: navItem, isNavItem: true, isPrimary: isPrimary, open: opensFirstWithPanel && isMinWidthArcBreakpointL
|
|
112
376
|
? openSecondaryWithSubNav
|
|
113
|
-
: panelOpen, setOpenPanelOnFirstClick: setOpenSecondaryWithSubNav, setOpen: setPanelOpen, viewAll: href ? (React.createElement(
|
|
377
|
+
: panelOpen, setOpenPanelOnFirstClick: setOpenSecondaryWithSubNav, setOpen: setPanelOpen, viewAll: href ? (React.createElement(SiteHeaderV2ViewAll, { href: href, onClick: onClick, title: "See all solutions", buttonStyle: "primary" })) : undefined }, children)))));
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
var SiteHeaderV2HorizontalPanel = function (_a) {
|
|
381
|
+
var _b, _c, _d;
|
|
382
|
+
var children = _a.children, navItemRef = _a.navItemRef, open = _a.open, setOpen = _a.setOpen, subNavItemRef = _a.subNavItemRef, _e = _a.subNavLink, subNavLink = _e === void 0 ? "" : _e, title = _a.title, withSubNav = _a.withSubNav, props = filterAttrs.__rest(_a, ["children", "navItemRef", "open", "setOpen", "subNavItemRef", "subNavLink", "title", "withSubNav"]);
|
|
383
|
+
React.useEffect(function () {
|
|
384
|
+
// Where appropriate, close the Panel when clicking outside of it,
|
|
385
|
+
// by listening to clicks on the entire document and acting accordingly.
|
|
386
|
+
var handleClick = function (e) {
|
|
387
|
+
var _a;
|
|
388
|
+
// Close the Horizontal Panel…
|
|
389
|
+
if (
|
|
390
|
+
// The click is not inside the current NavItem
|
|
391
|
+
!((_a = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) ||
|
|
392
|
+
e.target.classList.contains("arc-SiteHeaderV2HorizontalPanel--open")) {
|
|
393
|
+
setOpen(false);
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
};
|
|
397
|
+
document.addEventListener("click", handleClick);
|
|
398
|
+
return function () {
|
|
399
|
+
document.removeEventListener("click", handleClick);
|
|
400
|
+
};
|
|
401
|
+
}, [navItemRef, setOpen, subNavItemRef, subNavLink]);
|
|
402
|
+
React.useEffect(function () {
|
|
403
|
+
var handleKeydown = function (e) {
|
|
404
|
+
// Check the viewport width at time of press
|
|
405
|
+
var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")")).matches;
|
|
406
|
+
if (e.key === "Escape" || e.keyCode === 27) {
|
|
407
|
+
if (isMinWidthArcBreakpointL && subNavItemRef) {
|
|
408
|
+
// Don't close Panels inside SubNavItems when viewport width is above
|
|
409
|
+
// the "desktop" breakpoint.
|
|
410
|
+
return false;
|
|
411
|
+
}
|
|
412
|
+
return setOpen(false);
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
window.addEventListener("keydown", handleKeydown);
|
|
416
|
+
return function () {
|
|
417
|
+
window.removeEventListener("keydown", handleKeydown);
|
|
418
|
+
};
|
|
419
|
+
}, [setOpen, subNavItemRef]);
|
|
420
|
+
return (React.createElement("div", filterAttrs.__assign({ className: index.classNames((_b = {},
|
|
421
|
+
_b["arc-SiteHeaderV2HorizontalPanel"] = true,
|
|
422
|
+
_b["arc-SiteHeaderV2HorizontalPanel--open"] = open,
|
|
423
|
+
_b["arc-SiteHeaderV2HorizontalPanel--withSubNav"] = withSubNav,
|
|
424
|
+
_b)) }, filterAttrs.filterAttrs(props)),
|
|
425
|
+
React.createElement(Surface.Surface, { background: "light-neutral-02" },
|
|
426
|
+
React.createElement("div", { className: index.classNames((_c = {},
|
|
427
|
+
_c["arc-SiteHeaderV2HorizontalPanel-container"] = true,
|
|
428
|
+
_c)) },
|
|
429
|
+
React.createElement(SiteHeaderV2BackButton, { setOpen: setOpen, setOpenPanelOnFirstClick: function () { } }),
|
|
430
|
+
title && (React.createElement("div", { className: "arc-SiteHeaderV2Panel-selectedTitle" }, title)),
|
|
431
|
+
React.createElement("ul", { className: index.classNames((_d = {},
|
|
432
|
+
_d["arc-SiteHeaderV2HorizontalPanel-items"] = true,
|
|
433
|
+
_d)) }, children)))));
|
|
434
|
+
};
|
|
435
|
+
|
|
436
|
+
var defaultContext = { navItem: null, subTitle: null };
|
|
437
|
+
var Context = React.createContext(defaultContext);
|
|
438
|
+
var Provider = Context.Provider;
|
|
439
|
+
var SiteHeaderV2NavItemWithSubNav = function (_a) {
|
|
440
|
+
var _b, _c, _d, _e, _f;
|
|
441
|
+
var href = _a.href, slot1 = _a.slot1, slot2 = _a.slot2, slot3 = _a.slot3, slot4 = _a.slot4, slot5 = _a.slot5, slot6 = _a.slot6, _g = _a.subTitle, subTitle = _g === void 0 ? null : _g, title = _a.title, onViewAllClick = _a.onViewAllClick, isPrimary = _a.isPrimary, opensFirstWithPanel = _a.opensFirstWithPanel, viewAllTitle = _a.viewAllTitle, props = filterAttrs.__rest(_a, ["href", "slot1", "slot2", "slot3", "slot4", "slot5", "slot6", "subTitle", "title", "onViewAllClick", "isPrimary", "opensFirstWithPanel", "viewAllTitle"]);
|
|
442
|
+
var navItem = React.useRef();
|
|
443
|
+
var _h = React.useState(true), defaultItem = _h[0], setDefaultItem = _h[1];
|
|
444
|
+
var _j = React.useState(false), panelOpen = _j[0], setPanelOpen = _j[1];
|
|
445
|
+
var _k = React.useState(false), horizontalPanelOpen = _k[0], setHorizontalPanelOpen = _k[1];
|
|
446
|
+
var _l = React.useState(true), openSecondaryWithSubNav = _l[0], setOpenSecondaryWithSubNav = _l[1];
|
|
447
|
+
var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")"));
|
|
448
|
+
React.useEffect(function () {
|
|
449
|
+
React.Children.map(slot1, function (item) {
|
|
450
|
+
if (item.props.isDefaultItem) {
|
|
451
|
+
setDefaultItem(false);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
454
|
+
React.Children.map(slot2, function (item) {
|
|
455
|
+
if (item.props.isDefaultItem) {
|
|
456
|
+
setDefaultItem(false);
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
React.Children.map(slot3, function (item) {
|
|
460
|
+
if (item.props.isDefaultItem) {
|
|
461
|
+
setDefaultItem(false);
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
React.Children.map(slot4, function (item) {
|
|
465
|
+
if (item.props.isDefaultItem) {
|
|
466
|
+
setDefaultItem(false);
|
|
467
|
+
}
|
|
468
|
+
});
|
|
469
|
+
React.Children.map(slot5, function (item) {
|
|
470
|
+
if (item.props.isDefaultItem) {
|
|
471
|
+
setDefaultItem(false);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
}, [slot1, slot2, slot3, slot4, slot5]);
|
|
475
|
+
return (React.createElement(Provider, { value: { navItem: navItem, subTitle: subTitle } },
|
|
476
|
+
React.createElement("li", filterAttrs.__assign({ className: index.classNames((_b = {},
|
|
477
|
+
_b["arc-SiteHeaderV2NavItemWithSubNav"] = true,
|
|
478
|
+
_b["arc-SiteHeaderV2NavItemWithSubNav-Secondary"] = !isPrimary,
|
|
479
|
+
_b["arc-SiteHeaderV2NavItem-primary"] = isPrimary,
|
|
480
|
+
_b["arc-SiteHeaderV2NavItem--linkSelected"] = isPrimary
|
|
481
|
+
? horizontalPanelOpen
|
|
482
|
+
: panelOpen,
|
|
483
|
+
_b["arc-SiteHeaderV2NavItemWithSubNav-active"] = panelOpen || (opensFirstWithPanel && openSecondaryWithSubNav),
|
|
484
|
+
_b)), role: "none", ref: navItem }, filterAttrs.filterAttrs(props)),
|
|
485
|
+
React.createElement("div", { className: "arc-SiteHeaderV2NavItemWithSubNav-buttonContainer" },
|
|
486
|
+
React.createElement("button", { "aria-expanded": horizontalPanelOpen || panelOpen, role: "menuitem", "aria-label": title, "aria-haspopup": "true", tabIndex: 0, className: index.classNames((_c = {},
|
|
487
|
+
_c["arc-SiteHeaderV2NavItem-link"] = true,
|
|
488
|
+
_c["arc-SiteHeaderV2NavItem-horizontalPanelFocus"] = !isPrimary,
|
|
489
|
+
_c["arc-SiteHeaderV2NavItem-link--itemHasChildren"] = true,
|
|
490
|
+
_c["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
|
|
491
|
+
_c["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
|
|
492
|
+
_c["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
|
|
493
|
+
_c["arc-SiteHeaderV2NavItem-horizontalPanelLink"] = !isPrimary && !isMinWidthArcBreakpointL,
|
|
494
|
+
_c)), onClick: function (e) {
|
|
495
|
+
e.preventDefault();
|
|
496
|
+
isPrimary
|
|
497
|
+
? setHorizontalPanelOpen(!horizontalPanelOpen)
|
|
498
|
+
: setPanelOpen(!horizontalPanelOpen);
|
|
499
|
+
} },
|
|
500
|
+
React.createElement("div", { className: index.classNames((_d = {},
|
|
501
|
+
_d["arc-SiteHeaderV2NavItem-title"] = isPrimary,
|
|
502
|
+
_d["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
|
|
503
|
+
_d["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
|
|
504
|
+
_d["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
|
|
505
|
+
_d)) }, title),
|
|
506
|
+
React.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
|
|
507
|
+
React.createElement(Icon.Icon, { icon: BtIconChevronRight2Px.BtIconChevronRight2Px })),
|
|
508
|
+
subTitle && !isPrimary && isMinWidthArcBreakpointL ? (React.createElement("div", { className: index.classNames((_e = {},
|
|
509
|
+
_e["arc-SiteHeaderV2NavItemWithSubNav-text"] = !isPrimary,
|
|
510
|
+
_e["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
|
|
511
|
+
_e["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
|
|
512
|
+
_e["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
|
|
513
|
+
_e)) }, subTitle)) : null,
|
|
514
|
+
React.createElement("div", { className: index.classNames((_f = {},
|
|
515
|
+
_f["arc-SiteHeaderV2NavItemWithSubNav-buttonUnderline"] = isPrimary
|
|
516
|
+
? horizontalPanelOpen
|
|
517
|
+
: panelOpen ||
|
|
518
|
+
(opensFirstWithPanel && openSecondaryWithSubNav),
|
|
519
|
+
_f["arc-SiteHeaderV2NavItemWithSubNav-primaryButtonUnderline"] = isPrimary && horizontalPanelOpen,
|
|
520
|
+
_f["arc-SiteHeaderV2NavItemWithSubNav-buttonUnderlineActive "] = !isPrimary && (panelOpen || openSecondaryWithSubNav),
|
|
521
|
+
_f)) }))),
|
|
522
|
+
isPrimary && (React.createElement(SiteHeaderV2HorizontalPanel, { navItemRef: navItem, open: horizontalPanelOpen, setOpen: setHorizontalPanelOpen, title: !isMinWidthArcBreakpointL && title },
|
|
523
|
+
slot1,
|
|
524
|
+
slot2,
|
|
525
|
+
slot3,
|
|
526
|
+
slot4,
|
|
527
|
+
slot5)),
|
|
528
|
+
React.createElement(SiteHeaderV2Panel, { navItemRef: navItem, open: opensFirstWithPanel && isMinWidthArcBreakpointL
|
|
529
|
+
? openSecondaryWithSubNav
|
|
530
|
+
: panelOpen, setOpenPanelOnFirstClick: setOpenSecondaryWithSubNav, setOpen: setPanelOpen, title: !isMinWidthArcBreakpointL && title, subtitle: subTitle, viewAll: href ? (React.createElement(SiteHeaderV2ViewAll, { href: href, onClick: onViewAllClick, title: viewAllTitle, buttonStyle: "primary" })) : undefined, withSubNav: true, isNavItem: false },
|
|
531
|
+
defaultItem
|
|
532
|
+
? React.cloneElement(slot1, { isDefaultItem: defaultItem })
|
|
533
|
+
: slot1,
|
|
534
|
+
slot2,
|
|
535
|
+
slot3,
|
|
536
|
+
slot4,
|
|
537
|
+
slot5,
|
|
538
|
+
slot6))));
|
|
114
539
|
};
|
|
115
540
|
|
|
116
541
|
var SiteHeaderV2NodeItem = function (_a) {
|
|
@@ -121,7 +546,7 @@ var SiteHeaderV2NodeItem = function (_a) {
|
|
|
121
546
|
var SiteHeaderV2SubNavItem = function (_a) {
|
|
122
547
|
var _b, _c;
|
|
123
548
|
var children = _a.children, _d = _a.isDefaultItem, isDefaultItem = _d === void 0 ? false : _d, href = _a.href, onClick = _a.onClick, offsetXL = _a.offsetXL, subTitle = _a.subTitle, title = _a.title, viewAllTitle = _a.viewAllTitle, icon = _a.icon, props = filterAttrs.__rest(_a, ["children", "isDefaultItem", "href", "onClick", "offsetXL", "subTitle", "title", "viewAllTitle", "icon"]);
|
|
124
|
-
var navItem = React.useContext(
|
|
549
|
+
var navItem = React.useContext(Context).navItem;
|
|
125
550
|
var subNavItem = React.useRef();
|
|
126
551
|
var _e = React.useState(false), panelOpen = _e[0], setPanelOpen = _e[1];
|
|
127
552
|
var isMinWidthArcBreakpointL = useMediaQuery.useMediaQuery("(min-width: ".concat(index_es.ArcSizeBreakpointsL, ")"));
|
|
@@ -157,21 +582,21 @@ var SiteHeaderV2SubNavItem = function (_a) {
|
|
|
157
582
|
icon && isMinWidthArcBreakpointL && (React.createElement("div", { className: "arc-SiteHeaderV2SubNavItem-linkSlotIcon" },
|
|
158
583
|
React.createElement(Icon.Icon, { icon: icon, size: 48 }))),
|
|
159
584
|
React.createElement("span", { "data-cy": "linkTitle", className: "arc-SiteHeaderV2SubNavItem-linkSlotTitle" }, linkTitle))),
|
|
160
|
-
React.createElement(
|
|
585
|
+
React.createElement(SiteHeaderV2Panel, { navItemRef: navItem, open: panelOpen, setOpen: setPanelOpen, subNavItemRef: subNavItem, setOpenPanelOnFirstClick: function () { }, subNavLink: "arc-SiteHeaderV2SubNavItem-link", title: React.createElement("span", null,
|
|
161
586
|
title,
|
|
162
|
-
subTitle && (React.createElement(Text.Text, { size: "xs", tone: "supporting" }, subTitle))), viewAll: href ? (React.createElement(
|
|
587
|
+
subTitle && (React.createElement(Text.Text, { size: "xs", tone: "supporting" }, subTitle))), viewAll: href ? (React.createElement(SiteHeaderV2ViewAll, { href: href, onClick: onClick, title: viewAllTitle || "See all ".concat(title), buttonStyle: "secondary" })) : undefined, isNavItem: false }, children)))));
|
|
163
588
|
};
|
|
164
589
|
|
|
165
590
|
var SiteHeaderV2VerticalDivider = function () {
|
|
166
591
|
return React.createElement("li", { className: "arc-SiteHeaderV2VerticalDivider-line" });
|
|
167
592
|
};
|
|
168
593
|
|
|
169
|
-
exports.SiteHeaderV2 =
|
|
170
|
-
exports.SiteHeaderV2NavItemWithSubNav = SiteHeaderV2NavItemWithSubNav.SiteHeaderV2NavItemWithSubNav;
|
|
594
|
+
exports.SiteHeaderV2 = SiteHeaderV2;
|
|
171
595
|
exports.SiteHeaderV2Column = SiteHeaderV2Column;
|
|
172
596
|
exports.SiteHeaderV2Item = SiteHeaderV2Item;
|
|
173
597
|
exports.SiteHeaderV2ItemGroup = SiteHeaderV2ItemGroup;
|
|
174
598
|
exports.SiteHeaderV2NavItem = SiteHeaderV2NavItem;
|
|
599
|
+
exports.SiteHeaderV2NavItemWithSubNav = SiteHeaderV2NavItemWithSubNav;
|
|
175
600
|
exports.SiteHeaderV2NodeItem = SiteHeaderV2NodeItem;
|
|
176
601
|
exports.SiteHeaderV2SubNavItem = SiteHeaderV2SubNavItem;
|
|
177
602
|
exports.SiteHeaderV2VerticalDivider = SiteHeaderV2VerticalDivider;
|