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