@arc-ui/components 10.1.0 → 10.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/Align/index.d.ts +25 -0
  2. package/dist/Align/index.js +25 -0
  3. package/dist/Base/index.d.ts +16 -0
  4. package/dist/Base/index.js +12 -0
  5. package/dist/BrandLogo/index.d.ts +1 -0
  6. package/dist/BrandLogo/index.js +6 -0
  7. package/dist/Breadcrumbs/index.d.ts +57 -0
  8. package/dist/Breadcrumbs/index.js +17294 -0
  9. package/dist/Button/index.d.ts +1 -0
  10. package/dist/Button/index.js +8 -0
  11. package/dist/Card/index.d.ts +126 -0
  12. package/dist/Card/index.js +118 -0
  13. package/dist/Checkbox/index.d.ts +59 -0
  14. package/dist/Checkbox/index.js +46 -0
  15. package/dist/Clock/index.d.ts +15 -0
  16. package/dist/Clock/index.js +34 -0
  17. package/dist/Columns/index.d.ts +76 -0
  18. package/dist/Columns/index.js +51 -0
  19. package/dist/Curve/index.d.ts +1 -0
  20. package/dist/Curve/index.js +5 -0
  21. package/dist/Disclosure/index.d.ts +31 -0
  22. package/dist/Disclosure/index.js +25 -0
  23. package/dist/Elevation/index.d.ts +16 -0
  24. package/dist/Elevation/index.js +17 -0
  25. package/dist/FormControl/index.d.ts +1 -0
  26. package/dist/FormControl/index.js +5 -0
  27. package/dist/Group/index.d.ts +46 -0
  28. package/dist/Group/index.js +42 -0
  29. package/dist/Heading/index.d.ts +1 -0
  30. package/dist/Heading/index.js +6 -0
  31. package/dist/Icon/index.d.ts +1 -0
  32. package/dist/Icon/index.js +7 -0
  33. package/dist/Image/index.d.ts +1 -0
  34. package/dist/Image/index.js +5 -0
  35. package/dist/Markup/index.d.ts +16 -0
  36. package/dist/Markup/index.js +19 -0
  37. package/dist/Poster/index.d.ts +76 -0
  38. package/dist/Poster/index.js +44 -0
  39. package/dist/RadioGroup/index.d.ts +85 -0
  40. package/dist/RadioGroup/index.js +64 -0
  41. package/dist/Rule/index.d.ts +8 -0
  42. package/dist/Rule/index.js +17 -0
  43. package/dist/Section/index.d.ts +1 -0
  44. package/dist/Section/index.js +4 -0
  45. package/dist/SiteFooter/index.d.ts +64 -0
  46. package/dist/SiteFooter/index.js +88 -0
  47. package/dist/SiteHeader/index.d.ts +252 -0
  48. package/dist/SiteHeader/index.js +638 -0
  49. package/dist/Surface/index.d.ts +1 -0
  50. package/dist/Surface/index.js +4 -0
  51. package/dist/Text/index.d.ts +1 -0
  52. package/dist/Text/index.js +6 -0
  53. package/dist/TextInput/index.d.ts +71 -0
  54. package/dist/TextInput/index.js +56 -0
  55. package/dist/UniversalHeader/index.d.ts +26 -0
  56. package/dist/UniversalHeader/index.js +30 -0
  57. package/dist/VerticalSpace/index.d.ts +18 -0
  58. package/dist/VerticalSpace/index.js +19 -0
  59. package/dist/_shared/BrandLogo-6cc8202e.d.ts +26 -0
  60. package/dist/_shared/BrandLogo-6cc8202e.js +25 -0
  61. package/dist/_shared/Button-abfb12d4.d.ts +98 -0
  62. package/dist/_shared/Button-abfb12d4.js +51 -0
  63. package/dist/_shared/Curve-5f476d0b.d.ts +32 -0
  64. package/dist/_shared/Curve-5f476d0b.js +24 -0
  65. package/dist/_shared/FormControl-9dc9ecc3.d.ts +70 -0
  66. package/dist/_shared/FormControl-9dc9ecc3.js +74 -0
  67. package/dist/_shared/Heading-8c640dd1.d.ts +46 -0
  68. package/dist/_shared/Heading-8c640dd1.js +35 -0
  69. package/dist/_shared/Icon-4d523b46.d.ts +34 -0
  70. package/dist/_shared/Icon-4d523b46.js +27 -0
  71. package/dist/_shared/Image-a3225049.d.ts +94 -0
  72. package/dist/_shared/Image-a3225049.js +39 -0
  73. package/dist/_shared/Section-927988cb.d.ts +21 -0
  74. package/dist/_shared/Section-927988cb.js +17 -0
  75. package/dist/_shared/Surface-3fe44a2a.d.ts +50 -0
  76. package/dist/_shared/Surface-3fe44a2a.js +49 -0
  77. package/dist/_shared/Text-1c43d82b.d.ts +34 -0
  78. package/dist/_shared/Text-1c43d82b.js +26 -0
  79. package/dist/_shared/handle-link-click-35e09d0c.d.ts +7 -0
  80. package/dist/_shared/handle-link-click-35e09d0c.js +13 -0
  81. package/dist/_shared/index-56d9df62.js +61 -0
  82. package/dist/_shared/index-9483ad5f.d.ts +14 -0
  83. package/dist/_shared/index-c81c9401.d.ts +4 -0
  84. package/dist/_shared/index-e3c83626.d.ts +2 -0
  85. package/dist/_shared/index-e3c83626.js +208 -0
  86. package/dist/_shared/index.es-f5886c3a.js +284 -0
  87. package/dist/_shared/suffix-modifier-2a93822c.d.ts +10 -0
  88. package/dist/_shared/suffix-modifier-2a93822c.js +17 -0
  89. package/dist/_shared/use-media-query-f11805d4.d.ts +19 -0
  90. package/dist/_shared/use-media-query-f11805d4.js +39 -0
  91. package/dist/index.es.js +17489 -175
  92. package/dist/index.es.js.map +1 -1
  93. package/dist/index.js +17488 -173
  94. package/dist/index.js.map +1 -1
  95. package/dist/styles.css +1 -1
  96. package/dist/types/components/Align/Align.d.ts +1 -2
  97. package/dist/types/components/Align/index.d.ts +1 -1
  98. package/dist/types/components/Base/Base.d.ts +1 -2
  99. package/dist/types/components/Base/index.d.ts +1 -1
  100. package/dist/types/components/BrandLogo/BrandLogo.d.ts +1 -2
  101. package/dist/types/components/BrandLogo/index.d.ts +1 -1
  102. package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +18 -0
  103. package/dist/types/components/Breadcrumbs/BreadcrumbsItem/BreadcrumbsItem.d.ts +17 -0
  104. package/dist/types/components/Breadcrumbs/BreadcrumbsLink/BreadcrumbsLink.d.ts +25 -0
  105. package/dist/types/components/Breadcrumbs/index.d.ts +1 -0
  106. package/dist/types/components/Button/Button.d.ts +2 -2
  107. package/dist/types/components/Button/index.d.ts +1 -1
  108. package/dist/types/components/Card/Card.d.ts +6 -2
  109. package/dist/types/components/Card/index.d.ts +1 -1
  110. package/dist/types/components/Checkbox/Checkbox.d.ts +2 -2
  111. package/dist/types/components/Checkbox/index.d.ts +1 -1
  112. package/dist/types/components/Clock/Clock.d.ts +1 -2
  113. package/dist/types/components/Clock/index.d.ts +1 -1
  114. package/dist/types/components/Columns/Columns.d.ts +2 -2
  115. package/dist/types/components/Columns/index.d.ts +1 -1
  116. package/dist/types/components/Curve/Curve.d.ts +1 -2
  117. package/dist/types/components/Curve/index.d.ts +1 -1
  118. package/dist/types/components/Disclosure/Disclosure.d.ts +1 -2
  119. package/dist/types/components/Disclosure/index.d.ts +1 -1
  120. package/dist/types/components/Elevation/Elevation.d.ts +1 -2
  121. package/dist/types/components/Elevation/index.d.ts +1 -1
  122. package/dist/types/components/FormControl/FormControl.d.ts +1 -2
  123. package/dist/types/components/FormControl/index.d.ts +1 -1
  124. package/dist/types/components/Group/Group.d.ts +1 -2
  125. package/dist/types/components/Group/index.d.ts +1 -1
  126. package/dist/types/components/Heading/Heading.d.ts +1 -2
  127. package/dist/types/components/Heading/index.d.ts +1 -1
  128. package/dist/types/components/Icon/Icon.d.ts +1 -2
  129. package/dist/types/components/Icon/index.d.ts +1 -1
  130. package/dist/types/components/Image/Image.d.ts +1 -2
  131. package/dist/types/components/Image/index.d.ts +1 -1
  132. package/dist/types/components/Markup/Markup.d.ts +1 -2
  133. package/dist/types/components/Markup/index.d.ts +1 -1
  134. package/dist/types/components/Poster/Poster.d.ts +3 -4
  135. package/dist/types/components/Poster/PosterImage.d.ts +0 -1
  136. package/dist/types/components/Poster/PosterVideo.d.ts +1 -2
  137. package/dist/types/components/Poster/index.d.ts +1 -1
  138. package/dist/types/components/RadioGroup/RadioButton/RadioButton.d.ts +1 -2
  139. package/dist/types/components/RadioGroup/RadioButton/index.d.ts +1 -1
  140. package/dist/types/components/RadioGroup/RadioGroup.d.ts +7 -3
  141. package/dist/types/components/RadioGroup/index.d.ts +1 -1
  142. package/dist/types/components/Rule/Rule.d.ts +1 -2
  143. package/dist/types/components/Rule/index.d.ts +1 -1
  144. package/dist/types/components/Section/Section.d.ts +1 -2
  145. package/dist/types/components/Section/index.d.ts +1 -1
  146. package/dist/types/components/SiteFooter/SiteFooter.d.ts +5 -2
  147. package/dist/types/components/SiteFooter/index.d.ts +1 -1
  148. package/dist/types/components/SiteHeader/SiteHeader.d.ts +11 -8
  149. package/dist/types/components/SiteHeader/components/BackButton/BackButton.d.ts +0 -1
  150. package/dist/types/components/SiteHeader/components/BackButton/index.d.ts +1 -1
  151. package/dist/types/components/SiteHeader/components/Column/Column.d.ts +1 -2
  152. package/dist/types/components/SiteHeader/components/Column/index.d.ts +1 -1
  153. package/dist/types/components/SiteHeader/components/Item/Item.d.ts +5 -2
  154. package/dist/types/components/SiteHeader/components/Item/index.d.ts +1 -1
  155. package/dist/types/components/SiteHeader/components/ItemGroup/ItemGroup.d.ts +5 -2
  156. package/dist/types/components/SiteHeader/components/ItemGroup/index.d.ts +1 -1
  157. package/dist/types/components/SiteHeader/components/MenuButton/MenuButton.d.ts +1 -2
  158. package/dist/types/components/SiteHeader/components/MenuButton/index.d.ts +1 -1
  159. package/dist/types/components/SiteHeader/components/NavItem/NavItem.d.ts +4 -1
  160. package/dist/types/components/SiteHeader/components/NavItem/NavItemWithSubNav.d.ts +5 -2
  161. package/dist/types/components/SiteHeader/components/NavItem/index.d.ts +2 -2
  162. package/dist/types/components/SiteHeader/components/Panel/Panel.d.ts +1 -1
  163. package/dist/types/components/SiteHeader/components/Panel/index.d.ts +1 -1
  164. package/dist/types/components/SiteHeader/components/SubNavItem/SubNavItem.d.ts +5 -2
  165. package/dist/types/components/SiteHeader/components/SubNavItem/index.d.ts +1 -1
  166. package/dist/types/components/SiteHeader/index.d.ts +1 -1
  167. package/dist/types/components/Surface/Surface.d.ts +1 -2
  168. package/dist/types/components/Surface/index.d.ts +1 -1
  169. package/dist/types/components/Text/Text.d.ts +1 -2
  170. package/dist/types/components/Text/index.d.ts +1 -1
  171. package/dist/types/components/TextInput/TextInput.d.ts +2 -2
  172. package/dist/types/components/TextInput/index.d.ts +1 -1
  173. package/dist/types/components/UniversalHeader/UniversalHeader.d.ts +1 -2
  174. package/dist/types/components/UniversalHeader/index.d.ts +1 -1
  175. package/dist/types/components/VerticalSpace/VerticalSpace.d.ts +1 -2
  176. package/dist/types/components/VerticalSpace/index.d.ts +1 -1
  177. package/dist/types/components/index.d.ts +29 -28
  178. package/dist/types/helpers/handle-link-click.d.ts +7 -0
  179. package/dist/types/styles.d.ts +2 -0
  180. package/package.json +7 -7
@@ -0,0 +1,638 @@
1
+ import { _ as __rest, a as __assign, f as filterDataAttrs, d as __awaiter, e as __generator } from '../_shared/index-e3c83626.js';
2
+ import { a as ArcBreakpointL } from '../_shared/index.es-f5886c3a.js';
3
+ import { c as classNames } from '../_shared/index-56d9df62.js';
4
+ import React, { useState, useEffect, Fragment, useContext, useRef, createContext } from 'react';
5
+ import { B as BrandLogo } from '../_shared/BrandLogo-6cc8202e.js';
6
+ import { B as Button } from '../_shared/Button-abfb12d4.js';
7
+ import { u as useMediaQuery } from '../_shared/use-media-query-f11805d4.js';
8
+ import { S as Surface } from '../_shared/Surface-3fe44a2a.js';
9
+ import { h as handleLinkClick } from '../_shared/handle-link-click-35e09d0c.js';
10
+ import { s as suffixModifier } from '../_shared/suffix-modifier-2a93822c.js';
11
+ import { T as Text } from '../_shared/Text-1c43d82b.js';
12
+ import '../_shared/Icon-4d523b46.js';
13
+
14
+ var Item = function (_a) {
15
+ var _b;
16
+ var children = _a.children, href = _a.href, isEmphasised = _a.isEmphasised, onClick = _a.onClick, props = __rest(_a, ["children", "href", "isEmphasised", "onClick"]);
17
+ return (React.createElement("li", __assign({ className: classNames((_b = {},
18
+ _b["arc-SiteHeaderItem"] = true,
19
+ _b["arc-SiteHeaderItem--emphasised"] = isEmphasised,
20
+ _b)) }, filterDataAttrs(props)),
21
+ React.createElement("a", { onClick: handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderItem-link", href: href }, children)));
22
+ };
23
+
24
+ var ItemGroup = function (_a) {
25
+ var children = _a.children, href = _a.href, title = _a.title, onClick = _a.onClick, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "href", "title", "onClick", "viewAllTitle"]);
26
+ var _b = useState(false), hasClientSideJavaScript = _b[0], setHasClientSideJavaScript = _b[1];
27
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
28
+ useEffect(function () {
29
+ React.Children.map(children, function (item) {
30
+ if (item && item.type !== Item && item.type !== Fragment) {
31
+ throw new Error("Illegal child passed to <SiteHeader.ItemGroup />. Ensure to only use <SiteHeader.Item />.");
32
+ }
33
+ });
34
+ }, [children]);
35
+ useEffect(function () {
36
+ // useEffect does not run in ReactDomServer renders
37
+ setHasClientSideJavaScript(true);
38
+ }, [setHasClientSideJavaScript]);
39
+ var ElementType = "div";
40
+ if (title) {
41
+ ElementType = "details";
42
+ }
43
+ return (React.createElement("li", { className: "arc-SiteHeaderItemGroup" },
44
+ React.createElement(ElementType, __assign({ className: "arc-SiteHeaderItemGroup-details", open: Boolean(title && isMinWidthArcBreakpointL) }, filterDataAttrs(props)),
45
+ title ? (React.createElement("summary", { className: "arc-SiteHeaderItemGroup-summary", tabIndex: isMinWidthArcBreakpointL ? -1 : 0 }, href ? (React.createElement("a", { onClick: handleLinkClick({
46
+ handler: onClick
47
+ }), className: "arc-SiteHeaderItemGroup-title", href: href, tabIndex: !hasClientSideJavaScript || isMinWidthArcBreakpointL ? 0 : -1 }, title)) : (React.createElement("div", { className: "arc-SiteHeaderItemGroup-title" }, title)))) : null,
48
+ React.createElement("ul", { className: "arc-SiteHeaderItemGroup-items" },
49
+ children,
50
+ href && title ? (React.createElement("li", { className: "arc-SiteHeaderItem arc-SiteHeaderItem--viewAll" },
51
+ React.createElement("a", { className: "arc-SiteHeaderItem-link", onClick: handleLinkClick({
52
+ handler: onClick
53
+ }), href: href }, viewAllTitle || "View all ".concat(title.toLowerCase())))) : null))));
54
+ };
55
+
56
+ var ItemGroupRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
57
+ var children, titleElement, viewAllElement, title, href, viewAllTitle, props;
58
+ return __generator(this, function (_a) {
59
+ switch (_a.label) {
60
+ case 0: return [4 /*yield*/, hydrate(el.querySelector(".arc-SiteHeaderItemGroup-items"))];
61
+ case 1:
62
+ children = _a.sent();
63
+ titleElement = el.querySelector(".arc-SiteHeaderItemGroup-title");
64
+ viewAllElement = el.querySelector(".arc-SiteHeaderItem--viewAll");
65
+ title = "";
66
+ href = "";
67
+ viewAllTitle = "";
68
+ if (titleElement) {
69
+ title = titleElement.textContent || /* istanbul ignore next */ "";
70
+ href = titleElement.getAttribute("href") || /* istanbul ignore next */ "";
71
+ }
72
+ if (viewAllElement) {
73
+ viewAllTitle = viewAllElement.textContent || /* istanbul ignore next */ "";
74
+ }
75
+ props = {
76
+ children: children,
77
+ href: href,
78
+ title: title,
79
+ viewAllTitle: viewAllTitle
80
+ };
81
+ return [2 /*return*/, React.createElement(ItemGroup, __assign({}, props), children)];
82
+ }
83
+ });
84
+ }); });
85
+
86
+ var Column = function (_a) {
87
+ var children = _a.children, props = __rest(_a, ["children"]);
88
+ useEffect(function () {
89
+ React.Children.map(children, function (item) {
90
+ if (item && item.type !== ItemGroup) {
91
+ throw new Error("Illegal child passed to <SiteHeader.Column />. Ensure to only use <SiteHeader.ItemGroup />.");
92
+ }
93
+ });
94
+ }, [children]);
95
+ return (React.createElement("li", __assign({ className: "arc-SiteHeaderColumn" }, filterDataAttrs(props)),
96
+ React.createElement("ul", { className: "arc-SiteHeaderColumn-items" }, children)));
97
+ };
98
+
99
+ var BackButton = function (_a) {
100
+ var setOpen = _a.setOpen;
101
+ return (React.createElement("button", { className: "arc-SiteHeaderBackButton", onClick: function () {
102
+ setOpen(false);
103
+ } },
104
+ React.createElement("span", { className: "arc-SiteHeaderBackButton-text" }, "Back")));
105
+ };
106
+
107
+ var Panel = function (_a) {
108
+ var _b;
109
+ var children = _a.children, navItemRef = _a.navItemRef, open = _a.open, promo = _a.promo, setOpen = _a.setOpen, subNavItemRef = _a.subNavItemRef, _c = _a.subNavLink, subNavLink = _c === void 0 ? "" : _c, title = _a.title, viewAll = _a.viewAll, withSubNav = _a.withSubNav, props = __rest(_a, ["children", "navItemRef", "open", "promo", "setOpen", "subNavItemRef", "subNavLink", "title", "viewAll", "withSubNav"]);
110
+ var transparent = useContext(Context).transparent;
111
+ useEffect(function () {
112
+ // Where appropriate, close the Panel when clicking outside of it,
113
+ // by listening to clicks on the entire document and acting accordingly.
114
+ var handleClick = function (e) {
115
+ var _a, _b;
116
+ // Don't close the Panel…
117
+ if (
118
+ // The click is inside the current SubNavItem.
119
+ ((_a = subNavItemRef === null || subNavItemRef === void 0 ? void 0 : subNavItemRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) ||
120
+ // The click is inside the current NavItem
121
+ // and the Panel is not inside a SubNavItem.
122
+ // and the target is not a link
123
+ (((_b = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _b === void 0 ? void 0 : _b.contains(e.target)) &&
124
+ !subNavItemRef &&
125
+ !e.target.getAttribute("href")) ||
126
+ // The Panel is inside a SubNavItem
127
+ // and the click is not on a SubNavItem-link.
128
+ // This ensures that one SubNavItem Panel per NavItem always remains open.
129
+ (subNavItemRef &&
130
+ !e.target.classList.contains(subNavLink) &&
131
+ !e.target.classList.contains("".concat(subNavLink, "Title")) &&
132
+ !e.target.classList.contains("".concat(subNavLink, "SubTitle"))) ||
133
+ // Panel is inside a SubNavItem
134
+ // and the click is not inside the Panel's NavItem parent.
135
+ // This prevents SubNavItem Panels in sibling NavItems from being closed.
136
+ (subNavItemRef && !(navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current.contains(e.target)))) {
137
+ return;
138
+ }
139
+ // Close the panel.
140
+ setOpen(false);
141
+ };
142
+ document.addEventListener("click", handleClick);
143
+ return function () {
144
+ document.removeEventListener("click", handleClick);
145
+ };
146
+ }, [navItemRef, setOpen, subNavItemRef, subNavLink]);
147
+ useEffect(function () {
148
+ var handleKeydown = function (e) {
149
+ // Check the viewport width at time of press
150
+ var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(ArcBreakpointL, "px)")).matches;
151
+ if (e.key === "Escape" || e.keyCode === 27) {
152
+ if (isMinWidthArcBreakpointL && subNavItemRef) {
153
+ // Don't close Panels inside SubNavItems when viewport width is above
154
+ // the "desktop" breakpoint.
155
+ return false;
156
+ }
157
+ return setOpen(false);
158
+ }
159
+ };
160
+ window.addEventListener("keydown", handleKeydown);
161
+ return function () {
162
+ window.removeEventListener("keydown", handleKeydown);
163
+ };
164
+ }, [setOpen, subNavItemRef]);
165
+ return (React.createElement("div", __assign({ className: classNames((_b = {},
166
+ _b["arc-SiteHeaderPanel"] = true,
167
+ _b["arc-SiteHeaderPanel--open"] = open,
168
+ _b["arc-SiteHeaderPanel--transparent"] = transparent,
169
+ _b["arc-SiteHeaderPanel--withSubNav"] = withSubNav,
170
+ _b)) }, filterDataAttrs(props)),
171
+ React.createElement(Surface, { background: "white", growVertically: true },
172
+ React.createElement(BackButton, { setOpen: setOpen }),
173
+ React.createElement("div", { className: "arc-SiteHeaderPanel-inner" },
174
+ React.createElement("div", { className: "arc-SiteHeaderPanel-main" },
175
+ React.createElement("div", { className: "arc-SiteHeaderPanel-mainInner" },
176
+ withSubNav && (React.createElement("div", { className: "arc-SiteHeaderPanel-subNavArea" })),
177
+ title && (React.createElement("div", { className: "arc-SiteHeaderPanel-title" }, title)),
178
+ React.createElement("ul", { className: "arc-SiteHeaderPanel-items" }, children)),
179
+ viewAll),
180
+ promo && React.createElement("div", { className: "arc-SiteHeaderPanel-promo" }, promo)))));
181
+ };
182
+ var ViewAll = function (_a) {
183
+ var href = _a.href, title = _a.title, onClick = _a.onClick;
184
+ return (React.createElement("a", { onClick: handleLinkClick({ handler: onClick }), className: "arc-SiteHeaderPanel-viewAll", href: href }, title));
185
+ };
186
+ ViewAll.displayName = "Panel.ViewAll";
187
+ Panel.ViewAll = ViewAll;
188
+
189
+ var NavItem = function (_a) {
190
+ var _b, _c;
191
+ var children = _a.children, href = _a.href, isCurrent = _a.isCurrent, onClick = _a.onClick, promo = _a.promo, title = _a.title, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "href", "isCurrent", "onClick", "promo", "title", "viewAllTitle"]);
192
+ var navItem = useRef();
193
+ var _d = useState(false), panelOpen = _d[0], setPanelOpen = _d[1];
194
+ useEffect(function () {
195
+ React.Children.map(children, function (item) {
196
+ if (item &&
197
+ item.type !== ItemGroup &&
198
+ item.type !== Column &&
199
+ item.type !== Fragment) {
200
+ throw new Error("Illegal child passed to <SiteHeader.NavItem />. Ensure to only use <SiteHeader.ItemGroup /> or <SiteHeader.Column />.");
201
+ }
202
+ });
203
+ }, [children]);
204
+ return (React.createElement("li", __assign({ className: classNames((_b = {},
205
+ _b["arc-SiteHeaderNavItem"] = true,
206
+ _b["arc-SiteHeaderNavItem--linkSelected"] = (children && panelOpen) || (!children && href && isCurrent),
207
+ _b)), ref: navItem }, filterDataAttrs(props)), !children ? (href ? (React.createElement("a", { onClick: handleLinkClick({
208
+ handler: onClick
209
+ }), className: "arc-SiteHeaderNavItem-link", href: href }, title)) : null) : (React.createElement(React.Fragment, null,
210
+ React.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
211
+ _c["arc-SiteHeaderNavItem-link"] = true,
212
+ _c["arc-SiteHeaderNavItem-link--itemHasChildren"] = true,
213
+ _c)), onClick: function (e) {
214
+ e.preventDefault();
215
+ setPanelOpen(!panelOpen);
216
+ } }, title),
217
+ React.createElement(Panel, { navItemRef: navItem, open: panelOpen, promo: promo, setOpen: setPanelOpen, viewAll: href ? (React.createElement(Panel.ViewAll, { href: href, onClick: onClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined) }, children)))));
218
+ };
219
+
220
+ var NavItemRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
221
+ var children, promo, link, viewAll, href, title, props;
222
+ return __generator(this, function (_a) {
223
+ switch (_a.label) {
224
+ case 0:
225
+ children = el.querySelector(".arc-SiteHeaderPanel-items");
226
+ promo = el.querySelector(".arc-SiteHeaderPanel-promo");
227
+ if (!children) return [3 /*break*/, 2];
228
+ return [4 /*yield*/, hydrate(children)];
229
+ case 1:
230
+ children = _a.sent();
231
+ _a.label = 2;
232
+ case 2:
233
+ if (!promo) return [3 /*break*/, 4];
234
+ return [4 /*yield*/, hydrate(promo)];
235
+ case 3:
236
+ promo = _a.sent();
237
+ _a.label = 4;
238
+ case 4:
239
+ link = el.querySelector(".arc-SiteHeaderNavItem-link");
240
+ viewAll = el.querySelector(".arc-SiteHeaderPanel-viewAll");
241
+ href = "";
242
+ title = "";
243
+ if (link) {
244
+ title = link.textContent || /* istanbul ignore next */ "";
245
+ href = link.getAttribute("href") || /* istanbul ignore next */ "";
246
+ }
247
+ if (viewAll) {
248
+ href = viewAll.getAttribute("href") || /* istanbul ignore next */ "";
249
+ }
250
+ props = {
251
+ href: href,
252
+ isCurrent: el.classList.contains("arc-SiteHeaderNavItem--linkSelected") || undefined,
253
+ promo: promo || undefined,
254
+ title: title,
255
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
256
+ };
257
+ return [2 /*return*/, React.createElement(NavItem, __assign({}, props), children)];
258
+ }
259
+ });
260
+ }); });
261
+
262
+ var SubNavItem = function (_a) {
263
+ var _b, _c;
264
+ var children = _a.children, _d = _a.isDefaultItem, isDefaultItem = _d === void 0 ? false : _d, href = _a.href, onClick = _a.onClick, offsetXL = _a.offsetXL, promo = _a.promo, subTitle = _a.subTitle, title = _a.title, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["children", "isDefaultItem", "href", "onClick", "offsetXL", "promo", "subTitle", "title", "viewAllTitle"]);
265
+ var navItem = useContext(Context$1).navItem;
266
+ var subNavItem = useRef();
267
+ var _e = useState(false), panelOpen = _e[0], setPanelOpen = _e[1];
268
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
269
+ useEffect(function () {
270
+ React.Children.map(children, function (item) {
271
+ if (item &&
272
+ item.type !== ItemGroup &&
273
+ item.type !== Column &&
274
+ item.type !== Fragment) {
275
+ throw new Error("Illegal child passed to <SiteHeader.SubNavItem />. Ensure to only use <SiteHeader.ItemGroup /> or <SiteHeader.Column />.");
276
+ }
277
+ });
278
+ }, [children]);
279
+ useEffect(function () {
280
+ if (isDefaultItem && isMinWidthArcBreakpointL) {
281
+ setPanelOpen(true);
282
+ }
283
+ else {
284
+ setPanelOpen(false);
285
+ }
286
+ }, [isDefaultItem, isMinWidthArcBreakpointL]);
287
+ var linkTitle = (React.createElement(React.Fragment, null,
288
+ React.createElement("span", { className: "arc-SiteHeaderSubNavItem-linkTitle" }, title),
289
+ subTitle ? (React.createElement("span", { className: "arc-SiteHeaderSubNavItem-linkSubTitle" }, subTitle)) : null));
290
+ return (React.createElement("li", __assign({ className: classNames((_b = {},
291
+ _b["arc-SiteHeaderSubNavItem"] = true,
292
+ _b["arc-SiteHeaderSubNavItem--linkSelected"] = children && panelOpen,
293
+ _b[suffixModifier("arc-SiteHeaderSubNavItem--offsetXL", offsetXL || "")] = offsetXL,
294
+ _b)), ref: subNavItem }, filterDataAttrs(props), { "data-default-item": isDefaultItem || null }), !children ? (href ? (React.createElement("a", { className: "arc-SiteHeaderSubNavItem-link", onClick: handleLinkClick({ handler: onClick }), href: href }, linkTitle)) : null) : (React.createElement(React.Fragment, null,
295
+ React.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
296
+ _c["arc-SiteHeaderSubNavItem-link"] = true,
297
+ _c["arc-SiteHeaderSubNavItem-link--itemHasChildren"] = children,
298
+ _c)), onClick: function () {
299
+ setPanelOpen(true);
300
+ } }, linkTitle),
301
+ React.createElement(Panel, { navItemRef: navItem, open: panelOpen, setOpen: setPanelOpen, subNavItemRef: subNavItem, subNavLink: "arc-SiteHeaderSubNavItem-link", promo: promo, title: React.createElement("span", null,
302
+ title,
303
+ subTitle && (React.createElement(Text, { size: "xs", tone: "supporting" }, subTitle))), viewAll: href ? (React.createElement(Panel.ViewAll, { href: href, onClick: onClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined) }, children)))));
304
+ };
305
+
306
+ var SubNavItemRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
307
+ var children, promo, link, linkTitle, viewAll, href, title, offsetXL, props;
308
+ var _a;
309
+ return __generator(this, function (_b) {
310
+ switch (_b.label) {
311
+ case 0:
312
+ children = el.querySelector(".arc-SiteHeaderPanel-items");
313
+ promo = el.querySelector(".arc-SiteHeaderPanel-promo");
314
+ if (!children) return [3 /*break*/, 2];
315
+ return [4 /*yield*/, hydrate(children)];
316
+ case 1:
317
+ children = _b.sent();
318
+ _b.label = 2;
319
+ case 2:
320
+ if (!promo) return [3 /*break*/, 4];
321
+ return [4 /*yield*/, hydrate(promo)];
322
+ case 3:
323
+ promo = _b.sent();
324
+ _b.label = 4;
325
+ case 4:
326
+ link = el.querySelector(".arc-SiteHeaderSubNavItem-link");
327
+ linkTitle = el.querySelector(".arc-SiteHeaderSubNavItem-linkTitle");
328
+ viewAll = el.querySelector(".arc-SiteHeaderPanel-viewAll");
329
+ href = "";
330
+ title = "";
331
+ if (link) {
332
+ href = link.getAttribute("href") || /* istanbul ignore next */ "";
333
+ }
334
+ if (linkTitle) {
335
+ title = linkTitle.textContent || /* istanbul ignore next */ "";
336
+ }
337
+ if (viewAll) {
338
+ href = viewAll.getAttribute("href") || /* istanbul ignore next */ "";
339
+ }
340
+ offsetXL = undefined;
341
+ if (el.classList.contains("arc-SiteHeaderSubNavItem--offsetXL24")) {
342
+ offsetXL = "24";
343
+ }
344
+ if (el.classList.contains("arc-SiteHeaderSubNavItem--offsetXL48")) {
345
+ offsetXL = "48";
346
+ }
347
+ props = {
348
+ href: href,
349
+ isDefaultItem: Boolean(el.dataset.defaultItem),
350
+ offsetXL: offsetXL,
351
+ promo: promo || undefined,
352
+ subTitle: ((_a = el.querySelector(".arc-SiteHeaderSubNavItem-linkSubTitle")) === null || _a === void 0 ? void 0 : _a.textContent) ||
353
+ undefined,
354
+ title: title,
355
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
356
+ };
357
+ return [2 /*return*/, React.createElement(SubNavItem, __assign({}, props), children)];
358
+ }
359
+ });
360
+ }); });
361
+
362
+ var defaultContext$1 = { navItem: null, subTitle: null };
363
+ var Context$1 = createContext(defaultContext$1);
364
+ var Provider$1 = Context$1.Provider;
365
+ var NavItemWithSubNav = function (_a) {
366
+ var _b, _c;
367
+ var href = _a.href, slot1 = _a.slot1, slot2 = _a.slot2, slot3 = _a.slot3, _d = _a.subTitle, subTitle = _d === void 0 ? null : _d, title = _a.title, onViewAllClick = _a.onViewAllClick, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["href", "slot1", "slot2", "slot3", "subTitle", "title", "onViewAllClick", "viewAllTitle"]);
368
+ var navItem = useRef();
369
+ var _e = useState(true), defaultItem = _e[0], setDefaultItem = _e[1];
370
+ var _f = useState(false), panelOpen = _f[0], setPanelOpen = _f[1];
371
+ useEffect(function () {
372
+ React.Children.map(slot1, function (item) {
373
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
374
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot1` prop. Ensure to only use <SiteHeader.SubNavItem />.");
375
+ }
376
+ if (item.props.isDefaultItem) {
377
+ setDefaultItem(false);
378
+ }
379
+ });
380
+ React.Children.map(slot2, function (item) {
381
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
382
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot2` prop. Ensure to only use <SiteHeader.SubNavItem />.");
383
+ }
384
+ if (item.props.isDefaultItem) {
385
+ setDefaultItem(false);
386
+ }
387
+ });
388
+ React.Children.map(slot3, function (item) {
389
+ if (item && item.type !== SubNavItem && item.type !== Fragment) {
390
+ throw new Error("Illegal child passed to <SiteHeader.NavItemWithSubNav /> `slot3` prop. Ensure to only use <SiteHeader.SubNavItem />.");
391
+ }
392
+ if (item.props.isDefaultItem) {
393
+ setDefaultItem(false);
394
+ }
395
+ });
396
+ }, [slot1, slot2, slot3]);
397
+ return (React.createElement(Provider$1, { value: { navItem: navItem, subTitle: subTitle } },
398
+ React.createElement("li", __assign({ className: classNames((_b = {},
399
+ _b["arc-SiteHeaderNavItemWithSubNav"] = true,
400
+ _b["arc-SiteHeaderNavItem--linkSelected"] = panelOpen,
401
+ _b)), ref: navItem }, filterDataAttrs(props)),
402
+ React.createElement("button", { "aria-expanded": panelOpen, className: classNames((_c = {},
403
+ _c["arc-SiteHeaderNavItem-link"] = true,
404
+ _c["arc-SiteHeaderNavItem-link--itemHasChildren"] = true,
405
+ _c)), onClick: function (e) {
406
+ e.preventDefault();
407
+ setPanelOpen(!panelOpen);
408
+ } }, title),
409
+ React.createElement(Panel, { navItemRef: navItem, open: panelOpen, setOpen: setPanelOpen, title: subTitle, viewAll: href ? (React.createElement(Panel.ViewAll, { href: href, onClick: onViewAllClick, title: viewAllTitle || "View all ".concat(title.toLowerCase()) })) : (undefined), withSubNav: true },
410
+ defaultItem
411
+ ? React.cloneElement(slot1, { isDefaultItem: defaultItem })
412
+ : slot1,
413
+ slot2,
414
+ slot3))));
415
+ };
416
+
417
+ function wrap(el, wrapper) {
418
+ el.parentNode.insertBefore(wrapper, el);
419
+ wrapper.appendChild(el);
420
+ }
421
+ var NavItemWithSubNavRehydrator = (function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
422
+ var subNavItem1, subNavItem2, subNavItem3, div1, div2, slot1, slot2, slot3, div3, link, subTitle, viewAllNodes, viewAll, title, props;
423
+ return __generator(this, function (_a) {
424
+ switch (_a.label) {
425
+ case 0:
426
+ subNavItem1 = el.querySelector(".arc-SiteHeaderSubNavItem:first-child");
427
+ subNavItem2 = el.querySelector(".arc-SiteHeaderSubNavItem:nth-child(2)");
428
+ subNavItem3 = el.querySelector(".arc-SiteHeaderSubNavItem:nth-child(3)");
429
+ div1 = document.createElement("div");
430
+ div1.className = "slot1";
431
+ div2 = document.createElement("div");
432
+ div2.className = "slot2";
433
+ wrap(subNavItem1, div1);
434
+ wrap(subNavItem2, div2);
435
+ return [4 /*yield*/, hydrate(el.querySelector(".slot1"))];
436
+ case 1:
437
+ slot1 = _a.sent();
438
+ return [4 /*yield*/, hydrate(el.querySelector(".slot2"))];
439
+ case 2:
440
+ slot2 = _a.sent();
441
+ if (!subNavItem3) return [3 /*break*/, 4];
442
+ div3 = document.createElement("div");
443
+ div3.className = "slot3";
444
+ wrap(subNavItem3, div3);
445
+ return [4 /*yield*/, hydrate(el.querySelector(".slot3"))];
446
+ case 3:
447
+ slot3 = _a.sent();
448
+ _a.label = 4;
449
+ case 4:
450
+ link = el.querySelector(".arc-SiteHeaderNavItem-link");
451
+ subTitle = el.querySelector(".arc-SiteHeaderPanel-title");
452
+ viewAllNodes = el.querySelectorAll(".arc-SiteHeaderPanel-viewAll");
453
+ viewAll = viewAllNodes[viewAllNodes.length - 1];
454
+ title = "";
455
+ if (link) {
456
+ title = link.textContent || /* istanbul ignore next */ "";
457
+ }
458
+ props = {
459
+ href: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.getAttribute("href")) || undefined,
460
+ slot1: slot1 || /* istanbul ignore next */ undefined,
461
+ slot2: slot2 || /* istanbul ignore next */ undefined,
462
+ slot3: slot3 || undefined,
463
+ subTitle: (subTitle === null || subTitle === void 0 ? void 0 : subTitle.textContent) || undefined,
464
+ title: title,
465
+ viewAllTitle: (viewAll === null || viewAll === void 0 ? void 0 : viewAll.textContent) || undefined
466
+ };
467
+ return [2 /*return*/, React.createElement(NavItemWithSubNav, __assign({}, props))];
468
+ }
469
+ });
470
+ }); });
471
+
472
+ var MenuButton = function (_a) {
473
+ var _b;
474
+ var menuOpen = _a.menuOpen, setMenuOpen = _a.setMenuOpen;
475
+ return (React.createElement("button", { "aria-expanded": menuOpen, className: classNames((_b = {},
476
+ _b["arc-MenuButton"] = true,
477
+ _b["arc-MenuButton--menuOpen"] = menuOpen,
478
+ _b)), onClick: function () {
479
+ setMenuOpen(!menuOpen);
480
+ }, type: "button" },
481
+ React.createElement("span", { className: "arc-MenuButton-box" },
482
+ React.createElement("span", { className: "arc-MenuButton-inner" }),
483
+ React.createElement("span", { className: "arc-MenuButton-text" }, "Menu"))));
484
+ };
485
+
486
+ var defaultContext = { transparent: false };
487
+ var Context = createContext(defaultContext);
488
+ var Provider = Context.Provider;
489
+ /**
490
+ * Use `SiteHeader` to display brand logo and navigation at the top of a page.
491
+ */
492
+ var SiteHeader = function (_a) {
493
+ var _b;
494
+ 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 = __rest(_a, ["children", "basket", "hasLogin", "isTransparent", "loginHref", "logoOnClick", "loginOnClick", "loginTitle", "logoHref", "logoLabel", "search", "subBrand"]);
495
+ var _j = useState(false), hasClientSideJavaScript = _j[0], setHasClientSideJavaScript = _j[1];
496
+ var _k = useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
497
+ var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcBreakpointL, "px)"));
498
+ useEffect(function () {
499
+ React.Children.map(children, function (item) {
500
+ if (item &&
501
+ item.type !== NavItem &&
502
+ item.type !== NavItemWithSubNav &&
503
+ item.type !== Fragment) {
504
+ throw new Error("Illegal child passed to <SiteHeader />. Ensure to only use <SiteHeader.NavItem /> or <SiteHeader.NavItemWithSubNav />");
505
+ }
506
+ });
507
+ }, [children]);
508
+ useEffect(function () {
509
+ if (!isMinWidthArcBreakpointL && menuOpen) {
510
+ document.body.classList.add("arc-body--overflowHidden");
511
+ }
512
+ else {
513
+ document.body.classList.remove("arc-body--overflowHidden");
514
+ }
515
+ return function () {
516
+ document.body.classList.remove("arc-body--overflowHidden");
517
+ };
518
+ }, [isMinWidthArcBreakpointL, menuOpen]);
519
+ useEffect(function () {
520
+ var handleKeydown = function (e) {
521
+ if (e.key === "Escape" || e.keyCode === 27) {
522
+ setMenuOpen(false);
523
+ }
524
+ };
525
+ window.addEventListener("keydown", handleKeydown);
526
+ return function () {
527
+ window.removeEventListener("keydown", handleKeydown);
528
+ };
529
+ }, [setMenuOpen]);
530
+ useEffect(function () {
531
+ var handleClick = function (e) {
532
+ if (e.target.getAttribute("href")) {
533
+ setMenuOpen(false);
534
+ }
535
+ };
536
+ document.addEventListener("click", handleClick);
537
+ return function () {
538
+ document.removeEventListener("click", handleClick);
539
+ };
540
+ }, [setMenuOpen]);
541
+ useEffect(function () {
542
+ // useEffect does not run in ReactDomServer renders
543
+ setHasClientSideJavaScript(true);
544
+ }, [setHasClientSideJavaScript]);
545
+ return (React.createElement(Provider, { value: { transparent: isTransparent } },
546
+ React.createElement("div", __assign({ className: classNames((_b = {},
547
+ _b["arc-SiteHeader"] = true,
548
+ _b["arc-SiteHeader--menuOpen"] = menuOpen,
549
+ _b["arc-no-js"] = !hasClientSideJavaScript,
550
+ _b)) }, filterDataAttrs(props), { "data-transparent": isTransparent || null }),
551
+ React.createElement(Surface, { background: !isTransparent || (menuOpen && !isMinWidthArcBreakpointL)
552
+ ? "brand-flat"
553
+ : undefined },
554
+ React.createElement("div", { className: "arc-SiteHeader-inner" },
555
+ React.createElement("a", { className: "arc-SiteHeader-brand", onClick: handleLinkClick({
556
+ handler: logoOnClick
557
+ }), href: logoHref },
558
+ React.createElement(BrandLogo, { label: logoLabel, subBrand: subBrand })),
559
+ children && (React.createElement("nav", { className: "arc-SiteHeader-nav" },
560
+ React.createElement("div", { className: "arc-SiteHeader-menuButton" },
561
+ React.createElement(MenuButton, { menuOpen: menuOpen, setMenuOpen: setMenuOpen })),
562
+ React.createElement("div", { className: "arc-SiteHeader-main" },
563
+ React.createElement("ul", { className: "arc-SiteHeader-navItems" }, children),
564
+ hasLogin && (React.createElement(React.Fragment, null, loginOnClick ? (React.createElement("div", { className: "arc-SiteHeader-loginButton" },
565
+ React.createElement(Button, { onClick: loginOnClick, isFullWidth: true, label: loginTitle }))) : (React.createElement("div", { className: "arc-SiteHeader-loginButton" },
566
+ React.createElement(Button, { href: loginHref, isFullWidth: true, label: loginTitle })))))))),
567
+ (basket || hasLogin || search) && (React.createElement("div", { className: "arc-SiteHeader-secondary" },
568
+ search ? (React.createElement("div", { className: "arc-SiteHeader-search" }, search)) : null,
569
+ basket ? (React.createElement("div", { className: "arc-SiteHeader-basket" }, basket)) : null,
570
+ hasLogin && (React.createElement(React.Fragment, null, loginOnClick ? (React.createElement("div", { className: "arc-SiteHeader-loginLink arc-SiteHeader-loginLink--function", onClick: loginOnClick }, loginTitle)) : (React.createElement("a", { className: "arc-SiteHeader-loginLink", href: loginHref }, loginTitle)))))))))));
571
+ };
572
+ Column.displayName = "SiteHeader.Column";
573
+ Item.displayName = "SiteHeader.Item";
574
+ ItemGroup.displayName = "SiteHeader.ItemGroup";
575
+ NavItem.displayName = "SiteHeader.NavItem";
576
+ NavItemWithSubNav.displayName = "SiteHeader.NavItemWithSubNav";
577
+ SubNavItem.displayName = "SiteHeader.SubNavItem";
578
+ SiteHeader.Column = Column;
579
+ SiteHeader.Item = Item;
580
+ SiteHeader.ItemGroup = ItemGroup;
581
+ SiteHeader.NavItem = NavItem;
582
+ SiteHeader.NavItemWithSubNav = NavItemWithSubNav;
583
+ SiteHeader.SubNavItem = SubNavItem;
584
+
585
+ var SiteHeaderRehydrator = function (el, hydrate) { return __awaiter(void 0, void 0, void 0, function () {
586
+ var children, basket, search, brand, login, logoHref, logoLabel, props;
587
+ return __generator(this, function (_a) {
588
+ switch (_a.label) {
589
+ case 0:
590
+ children = el.querySelector(".arc-SiteHeader-navItems");
591
+ basket = el.querySelector(".arc-SiteHeader-basket");
592
+ search = el.querySelector(".arc-SiteHeader-search");
593
+ if (!children) return [3 /*break*/, 2];
594
+ return [4 /*yield*/, hydrate(children)];
595
+ case 1:
596
+ children = _a.sent();
597
+ _a.label = 2;
598
+ case 2:
599
+ if (!basket) return [3 /*break*/, 4];
600
+ return [4 /*yield*/, hydrate(basket)];
601
+ case 3:
602
+ basket = _a.sent();
603
+ _a.label = 4;
604
+ case 4:
605
+ if (!search) return [3 /*break*/, 6];
606
+ return [4 /*yield*/, hydrate(search)];
607
+ case 5:
608
+ search = _a.sent();
609
+ _a.label = 6;
610
+ case 6:
611
+ brand = el.querySelector(".arc-SiteHeader-brand");
612
+ login = el.querySelector(".arc-SiteHeader-loginLink");
613
+ logoHref = "";
614
+ logoLabel = "";
615
+ if (brand) {
616
+ logoHref = brand.getAttribute("href") || /* istanbul ignore next */ "";
617
+ logoLabel = brand.textContent || /* istanbul ignore next */ "";
618
+ }
619
+ props = {
620
+ basket: basket,
621
+ hasLogin: Boolean(login),
622
+ isTransparent: Boolean(el.dataset.transparent),
623
+ loginHref: (login === null || login === void 0 ? void 0 : login.getAttribute("href")) || undefined,
624
+ loginTitle: (login === null || login === void 0 ? void 0 : login.textContent) || undefined,
625
+ logoHref: logoHref,
626
+ logoLabel: logoLabel,
627
+ search: search
628
+ };
629
+ return [2 /*return*/, React.createElement(SiteHeader, __assign({}, props), children)];
630
+ }
631
+ });
632
+ }); };
633
+ SiteHeaderRehydrator.ItemGroupRehydrator = ItemGroupRehydrator;
634
+ SiteHeaderRehydrator.NavItemRehydrator = NavItemRehydrator;
635
+ SiteHeaderRehydrator.NavItemWithSubNavRehydrator = NavItemWithSubNavRehydrator;
636
+ SiteHeaderRehydrator.SubNavItemRehydrator = SubNavItemRehydrator;
637
+
638
+ export { SiteHeader, SiteHeaderRehydrator };
@@ -0,0 +1 @@
1
+ export { Surface, SurfaceContext, backgrounds, backgroundsBT } from "../_shared/Surface-3fe44a2a";
@@ -0,0 +1,4 @@
1
+ export { S as Surface, C as SurfaceContext, b as backgrounds, a as backgroundsBT } from '../_shared/Surface-3fe44a2a.js';
2
+ import '../_shared/index-e3c83626.js';
3
+ import '../_shared/index-56d9df62.js';
4
+ import 'react';
@@ -0,0 +1 @@
1
+ export { Text } from "../_shared/Text-1c43d82b";
@@ -0,0 +1,6 @@
1
+ export { T as Text } from '../_shared/Text-1c43d82b.js';
2
+ import '../_shared/index-e3c83626.js';
3
+ import '../_shared/index-56d9df62.js';
4
+ import 'react';
5
+ import '../_shared/suffix-modifier-2a93822c.js';
6
+ import '../_shared/Surface-3fe44a2a.js';