@arc-ui/components 12.0.0-beta.22 → 12.0.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/lib/Alert/Alert.cjs +22 -21
  2. package/lib/Alert/Alert.mjs +22 -21
  3. package/lib/Alert/styles.css +1 -1
  4. package/lib/Align/styles.css +1 -1
  5. package/lib/AppButton/styles.css +1 -1
  6. package/lib/Avatar/styles.css +1 -1
  7. package/lib/AvatarGroup/styles.css +1 -1
  8. package/lib/Badge/styles.css +1 -1
  9. package/lib/Banner/Banner.cjs +1 -1
  10. package/lib/Banner/Banner.mjs +1 -1
  11. package/lib/Box/styles.css +1 -1
  12. package/lib/BrandLogo/styles.css +1 -1
  13. package/lib/Breadcrumbs/Breadcrumbs.cjs +12 -3
  14. package/lib/Breadcrumbs/Breadcrumbs.mjs +12 -3
  15. package/lib/Breadcrumbs/styles.css +1 -1
  16. package/lib/Button/styles.css +1 -1
  17. package/lib/ButtonGroup/styles.css +1 -1
  18. package/lib/ButtonV2/styles.css +1 -1
  19. package/lib/Calendar/Calendar.cjs +2 -2
  20. package/lib/Calendar/Calendar.mjs +2 -2
  21. package/lib/Calendar/styles.css +1 -1
  22. package/lib/CardFooter/styles.css +1 -1
  23. package/lib/CardHeading/styles.css +1 -1
  24. package/lib/Carousel/Carousel.cjs +11 -5
  25. package/lib/Carousel/Carousel.mjs +8 -2
  26. package/lib/Carousel/styles.css +1 -1
  27. package/lib/Checkbox/Checkbox.cjs +85 -11
  28. package/lib/Checkbox/Checkbox.mjs +87 -9
  29. package/lib/Checkbox/styles.css +1 -1
  30. package/lib/Columns/styles.css +1 -1
  31. package/lib/ComboBox/ComboBox.cjs +276 -11
  32. package/lib/ComboBox/ComboBox.mjs +279 -10
  33. package/lib/ComboBox/styles.css +1 -1
  34. package/lib/ContentSwitcher/ContentSwitcher.cjs +5 -6
  35. package/lib/ContentSwitcher/ContentSwitcher.mjs +5 -6
  36. package/lib/ContentSwitcher/styles.css +1 -1
  37. package/lib/ContentSwitcherDropdown/styles.css +1 -1
  38. package/lib/DatePicker/DatePicker.cjs +351 -38
  39. package/lib/DatePicker/DatePicker.mjs +329 -17
  40. package/lib/DatePicker/styles.css +1 -1
  41. package/lib/Disclosure/styles.css +1 -1
  42. package/lib/DisclosureMini/styles.css +1 -1
  43. package/lib/Download/styles.css +1 -1
  44. package/lib/Drawer/styles.css +1 -1
  45. package/lib/Elevation/styles.css +1 -1
  46. package/lib/Filter/styles.css +1 -1
  47. package/lib/FormControl/styles.css +1 -1
  48. package/lib/GhostedHeroBanner/styles.css +1 -1
  49. package/lib/GradientPageBackground/GradientPageBackground.cjs +55 -43
  50. package/lib/GradientPageBackground/GradientPageBackground.mjs +55 -43
  51. package/lib/GradientPageBackground/styles.css +1 -1
  52. package/lib/Grid/styles.css +1 -1
  53. package/lib/Group/styles.css +1 -1
  54. package/lib/Heading/styles.css +1 -1
  55. package/lib/HeroBanner/HeroBanner.cjs +1 -1
  56. package/lib/HeroBanner/HeroBanner.mjs +1 -1
  57. package/lib/HeroBanner/styles.css +1 -1
  58. package/lib/HeroButton/HeroButton.cjs +77 -9
  59. package/lib/HeroButton/HeroButton.mjs +80 -8
  60. package/lib/HeroButton/styles.css +1 -1
  61. package/lib/Hidden/styles.css +1 -1
  62. package/lib/HorizontalCard/styles.css +1 -1
  63. package/lib/Icon/styles.css +1 -1
  64. package/lib/Image/styles.css +1 -1
  65. package/lib/ImpactCard/ImpactCard.cjs +3 -3
  66. package/lib/ImpactCard/ImpactCard.mjs +3 -3
  67. package/lib/ImpactCard/styles.css +1 -1
  68. package/lib/InformationCard/InformationCard.cjs +6 -6
  69. package/lib/InformationCard/InformationCard.mjs +6 -6
  70. package/lib/InformationCard/styles.css +1 -1
  71. package/lib/Link/Link.cjs +1 -1
  72. package/lib/Link/Link.mjs +1 -1
  73. package/lib/Link/styles.css +1 -1
  74. package/lib/Markup/styles.css +1 -1
  75. package/lib/MediaCard/MediaCard.cjs +53 -14
  76. package/lib/MediaCard/MediaCard.mjs +55 -12
  77. package/lib/MediaCard/styles.css +1 -1
  78. package/lib/Menu/Menu.cjs +1327 -25
  79. package/lib/Menu/Menu.mjs +1292 -9
  80. package/lib/Menu/styles.css +1 -1
  81. package/lib/Modal/styles.css +1 -1
  82. package/lib/NavigationHeader/NavigationHeader.cjs +743 -16
  83. package/lib/NavigationHeader/NavigationHeader.mjs +734 -7
  84. package/lib/NavigationHeader/styles.css +1 -1
  85. package/lib/Pagination/styles.css +1 -1
  86. package/lib/PaginationSimple/styles.css +1 -1
  87. package/lib/Popover/styles.css +1 -1
  88. package/lib/Poster/styles.css +1 -1
  89. package/lib/ProgressBar/styles.css +1 -1
  90. package/lib/ProgressStepper/styles.css +1 -1
  91. package/lib/ProgressStepperOverflow/ProgressStepperOverflow.cjs +138 -7
  92. package/lib/ProgressStepperOverflow/ProgressStepperOverflow.mjs +140 -5
  93. package/lib/ProgressStepperOverflow/styles.css +1 -1
  94. package/lib/RadioCardGroup/RadioCardGroup.cjs +48 -7
  95. package/lib/RadioCardGroup/RadioCardGroup.mjs +48 -8
  96. package/lib/RadioCardGroup/styles.css +1 -1
  97. package/lib/RadioGroup/RadioGroup.cjs +50 -8
  98. package/lib/RadioGroup/RadioGroup.mjs +49 -8
  99. package/lib/RadioGroup/styles.css +1 -1
  100. package/lib/Rule/styles.css +1 -1
  101. package/lib/ScrollToTop/styles.css +1 -1
  102. package/lib/Section/Section.cjs +1 -1
  103. package/lib/Section/Section.mjs +1 -1
  104. package/lib/Section/styles.css +1 -1
  105. package/lib/Select/styles.css +1 -1
  106. package/lib/SiteFooter/SiteFooter.cjs +1 -1
  107. package/lib/SiteFooter/SiteFooter.mjs +1 -1
  108. package/lib/SiteFooter/styles.css +1 -1
  109. package/lib/SiteFooterV2/SiteFooterV2.cjs +6 -5
  110. package/lib/SiteFooterV2/SiteFooterV2.mjs +6 -5
  111. package/lib/SiteFooterV2/styles.css +1 -1
  112. package/lib/SiteHeaderV2/SiteHeaderV2.cjs +440 -15
  113. package/lib/SiteHeaderV2/SiteHeaderV2.mjs +435 -11
  114. package/lib/SiteHeaderV2/styles.css +1 -1
  115. package/lib/Skeleton/styles.css +1 -1
  116. package/lib/SkipLink/styles.css +1 -1
  117. package/lib/Spinner/styles.css +1 -1
  118. package/lib/Surface/styles.css +1 -1
  119. package/lib/Switch/styles.css +1 -1
  120. package/lib/TabbedBanner/TabbedBanner.cjs +4 -5
  121. package/lib/TabbedBanner/TabbedBanner.mjs +4 -5
  122. package/lib/TabbedBanner/styles.css +1 -1
  123. package/lib/Tabs/Tabs.mjs +1 -1
  124. package/lib/Tabs/styles.css +1 -1
  125. package/lib/Tag/Tag.cjs +9 -9
  126. package/lib/Tag/Tag.mjs +9 -9
  127. package/lib/Tag/styles.css +1 -1
  128. package/lib/TemplateBanner/TemplateBanner.cjs +1 -1
  129. package/lib/TemplateBanner/TemplateBanner.mjs +1 -1
  130. package/lib/TemplateBanner/styles.css +1 -1
  131. package/lib/Text/styles.css +1 -1
  132. package/lib/TextArea/TextArea.cjs +2 -53
  133. package/lib/TextArea/TextArea.mjs +2 -53
  134. package/lib/TextArea/styles.css +1 -1
  135. package/lib/TextInput/styles.css +1 -1
  136. package/lib/Theme/Theme.cjs +1 -1
  137. package/lib/Theme/Theme.mjs +1 -1
  138. package/lib/Theme/styles.css +1 -1
  139. package/lib/ThemeIcon/styles.css +1 -1
  140. package/lib/ThumbnailSignpost/styles.css +1 -1
  141. package/lib/Toast/styles.css +1 -1
  142. package/lib/Tooltip/styles.css +1 -1
  143. package/lib/Truncate/styles.css +1 -1
  144. package/lib/TypographyCard/TypographyCard.cjs +3 -3
  145. package/lib/TypographyCard/TypographyCard.mjs +3 -3
  146. package/lib/TypographyCard/styles.css +1 -1
  147. package/lib/UniversalHeader/styles.css +1 -1
  148. package/lib/VerticalSpace/styles.css +1 -1
  149. package/lib/VideoPlayer/styles.css +1 -1
  150. package/lib/Visible/styles.css +1 -1
  151. package/lib/VisuallyHidden/styles.css +1 -1
  152. package/lib/_shared/cjs/{Calendar-B-va25n2.cjs → Calendar-Bfdgf5q1.cjs} +1 -1
  153. package/lib/_shared/cjs/{ContentSwitcherList-bCEzIPN2.cjs → ContentSwitcherList-pcYtuT6L.cjs} +8 -0
  154. package/lib/_shared/cjs/{Link-7xUgVf1I.cjs → Link-C3OSQIIk.cjs} +3 -1
  155. package/lib/_shared/cjs/{Section-wUVdzmGA.cjs → Section-Bz2fwj8Z.cjs} +2 -2
  156. package/lib/_shared/cjs/{TemplateBanner-CImrJ9ON.cjs → TemplateBanner-COymAI91.cjs} +2 -2
  157. package/lib/_shared/cjs/{arc-breakpoints-DWUgmeLA.cjs → arc-breakpoints-CS8JVk5T.cjs} +1 -1
  158. package/lib/_shared/cjs/{index.es-DlNskPlN.cjs → index.es-fkulh7qu.cjs} +1 -1
  159. package/lib/_shared/esm/{Calendar-Bd2_eT1Y.mjs → Calendar-Drh_NJ9I.mjs} +1 -1
  160. package/lib/_shared/esm/{ContentSwitcherList-bCQz0qkU.mjs → ContentSwitcherList-DwHfU3no.mjs} +10 -3
  161. package/lib/_shared/esm/{Link-Biyg9qBH.mjs → Link-DxjGH_7f.mjs} +3 -1
  162. package/lib/_shared/esm/{Section-DDygQ5Az.mjs → Section-7InCvzfh.mjs} +2 -2
  163. package/lib/_shared/esm/{TemplateBanner-DeHjliNP.mjs → TemplateBanner-Dkgzu3A5.mjs} +2 -2
  164. package/lib/_shared/esm/{arc-breakpoints-D5hR5m3t.mjs → arc-breakpoints-D7Ie4kBt.mjs} +1 -1
  165. package/lib/_shared/esm/{index-BDWwJ5x2.mjs → index-BWkI4Dwz.mjs} +1 -1
  166. package/lib/_shared/esm/{index.es-C3WqfFKH.mjs → index.es-CtRkzfKP.mjs} +2 -2
  167. package/lib/index.cjs +300 -283
  168. package/lib/index.cjs.map +1 -1
  169. package/lib/index.d.cts +28 -3
  170. package/lib/index.d.mts +28 -3
  171. package/lib/index.js.map +1 -1
  172. package/lib/index.mjs +301 -284
  173. package/lib/index.mjs.map +1 -1
  174. package/lib/styles.css +10 -10
  175. package/package.json +8 -8
  176. package/lib/_shared/cjs/BreadcrumbsLink-CDmk3Y3m.cjs +0 -18
  177. package/lib/_shared/cjs/Checkbox-DfZMjO1Y.cjs +0 -88
  178. package/lib/_shared/cjs/ComboBox-BGUhlqx1.cjs +0 -281
  179. package/lib/_shared/cjs/ContentSwitcherTab-B387Qs3I.cjs +0 -14
  180. package/lib/_shared/cjs/DatePicker-Dt4faA_N.cjs +0 -334
  181. package/lib/_shared/cjs/HeroButton-CrzkTUwP.cjs +0 -82
  182. package/lib/_shared/cjs/MediaCard-BEZFbiYO.cjs +0 -57
  183. package/lib/_shared/cjs/MenuItemMultiLevelContent-vLr6hSBm.cjs +0 -1328
  184. package/lib/_shared/cjs/ProgressStepperOverflow-BAGZNC26.cjs +0 -142
  185. package/lib/_shared/cjs/RadioCardGroupInput-CeUM3yPS.cjs +0 -53
  186. package/lib/_shared/cjs/RadioGroupInput-w2qkfsnG.cjs +0 -54
  187. package/lib/_shared/cjs/SiteHeaderV2NavItemWithSubNav-CagFKPEa.cjs +0 -445
  188. package/lib/_shared/cjs/kebabCase-D5yA6u-V.cjs +0 -743
  189. package/lib/_shared/cjs/keynames-Cx13-hWr.cjs +0 -8
  190. package/lib/_shared/esm/BreadcrumbsLink-BxTurGNa.mjs +0 -16
  191. package/lib/_shared/esm/Checkbox-CwOHzlQF.mjs +0 -86
  192. package/lib/_shared/esm/ComboBox-CRlJjeev.mjs +0 -279
  193. package/lib/_shared/esm/ContentSwitcherTab-CfC3PGeZ.mjs +0 -12
  194. package/lib/_shared/esm/DatePicker-DT4OEzxP.mjs +0 -324
  195. package/lib/_shared/esm/HeroButton-jdjjV_Gf.mjs +0 -80
  196. package/lib/_shared/esm/MediaCard-DqMaNWsE.mjs +0 -55
  197. package/lib/_shared/esm/MenuItemMultiLevelContent-JTOHqpzg.mjs +0 -1296
  198. package/lib/_shared/esm/ProgressStepperOverflow-fPkLltVO.mjs +0 -140
  199. package/lib/_shared/esm/RadioCardGroupInput-D7W28geB.mjs +0 -50
  200. package/lib/_shared/esm/RadioGroupInput-zAWSV29m.mjs +0 -50
  201. package/lib/_shared/esm/SiteHeaderV2NavItemWithSubNav-CxGwdV6u.mjs +0 -439
  202. package/lib/_shared/esm/kebabCase-CCEMRBfd.mjs +0 -737
  203. package/lib/_shared/esm/keynames-B5whqsjh.mjs +0 -8
@@ -1,439 +0,0 @@
1
- import { _ as __rest, a as __assign, f as filterAttrs } from './filter-attrs-B6CM-NUr.mjs';
2
- import React__default, { createContext, useState, useRef, useEffect, useContext } from 'react';
3
- import { c as classNames } from './index-5C0-U8cc.mjs';
4
- import { c as ArcSizeBreakpointsL } from './index.es-C3WqfFKH.mjs';
5
- import { a as BtIconChevronRight2Px, B as BtIconChevronLeft2Px } from './BtIconChevronRight2Px-DzWb16fR.mjs';
6
- import { u as useMediaQuery } from './use-media-query-DmKuIDEM.mjs';
7
- import { I as Icon } from './Icon-CcPOJcQm.mjs';
8
- import { S as Surface } from './Surface-Colbp3Zx.mjs';
9
- import { B as ButtonV2 } from './ButtonV2-DwYBAojW.mjs';
10
- import { h as handleLinkClick } from './handle-link-click-CIgZ7pa0.mjs';
11
- import { B as BrandLogo } from './BrandLogo-_2Z_8I2Y.mjs';
12
-
13
- var SiteHeaderV2MenuButton = function (_a) {
14
- var _b;
15
- var menuOpen = _a.menuOpen, setMenuOpen = _a.setMenuOpen;
16
- return (React__default.createElement("button", { "aria-expanded": menuOpen, className: classNames((_b = {},
17
- _b["arc-SiteHeaderV2MenuButton"] = true,
18
- _b["arc-SiteHeaderV2MenuButton--menuOpen"] = menuOpen,
19
- _b)), onClick: function () {
20
- setMenuOpen(!menuOpen);
21
- }, type: "button" },
22
- React__default.createElement("span", { className: "arc-SiteHeaderV2MenuButton-box" },
23
- React__default.createElement("span", { className: "arc-SiteHeaderV2MenuButton-inner" }),
24
- React__default.createElement("span", { className: "arc-SiteHeaderV2MenuButton-text" }, "Menu"))));
25
- };
26
-
27
- var defaultContext$1 = { transparent: false, menubarRef: null };
28
- var Context$1 = createContext(defaultContext$1);
29
- var Provider$1 = Context$1.Provider;
30
- /**
31
- * Use `SiteHeaderV2` to display brand logo and navigation at the top of a page.
32
- */
33
- var SiteHeaderV2 = function (_a) {
34
- var _b;
35
- 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"]);
36
- var _j = useState(false), hasClientSideJavaScript = _j[0], setHasClientSideJavaScript = _j[1];
37
- var _k = useState(false), menuOpen = _k[0], setMenuOpen = _k[1];
38
- var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcSizeBreakpointsL, ")"));
39
- var menubarRef = useRef();
40
- useEffect(function () {
41
- if (!isMinWidthArcBreakpointL && menuOpen) {
42
- document.body.classList.add("arc-body--overflowHidden");
43
- }
44
- else {
45
- document.body.classList.remove("arc-body--overflowHidden");
46
- }
47
- return function () {
48
- document.body.classList.remove("arc-body--overflowHidden");
49
- };
50
- }, [isMinWidthArcBreakpointL, menuOpen]);
51
- useEffect(function () {
52
- var handleKeydown = function (e) {
53
- if (e.key === "Escape" || e.keyCode === 27) {
54
- setMenuOpen(false);
55
- }
56
- };
57
- window.addEventListener("keydown", handleKeydown);
58
- return function () {
59
- window.removeEventListener("keydown", handleKeydown);
60
- };
61
- }, [setMenuOpen]);
62
- useEffect(function () {
63
- var _a, _b;
64
- (_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
65
- }, []);
66
- useEffect(function () {
67
- var handleClick = function (e) {
68
- if (e.target.getAttribute("href")) {
69
- setMenuOpen(false);
70
- }
71
- };
72
- document.addEventListener("click", handleClick);
73
- return function () {
74
- document.removeEventListener("click", handleClick);
75
- };
76
- }, [setMenuOpen]);
77
- useEffect(function () {
78
- // useEffect does not run in ReactDomServer renders
79
- setHasClientSideJavaScript(true);
80
- }, [setHasClientSideJavaScript]);
81
- return (React__default.createElement(Provider$1, { value: { transparent: isTransparent, menubarRef: menubarRef } },
82
- React__default.createElement("div", __assign({ className: classNames((_b = {},
83
- _b["arc-SiteHeaderV2"] = true,
84
- _b["arc-SiteHeaderV2--menuOpen"] = menuOpen,
85
- _b["arc-no-js"] = !hasClientSideJavaScript,
86
- _b)) }, filterAttrs(props), { "data-transparent": isTransparent || null }),
87
- React__default.createElement(Surface, { background: !isTransparent || (menuOpen && !isMinWidthArcBreakpointL)
88
- ? "dark-brand-01"
89
- : undefined },
90
- React__default.createElement("div", { className: "arc-SiteHeaderV2-inner" },
91
- React__default.createElement("a", { className: "arc-SiteHeaderV2-brand", onClick: handleLinkClick({
92
- handler: logoOnClick,
93
- }), href: logoHref },
94
- React__default.createElement(BrandLogo, { label: logoLabel, subBrand: subBrand })),
95
- children && (React__default.createElement("nav", { className: "arc-SiteHeaderV2-nav" },
96
- React__default.createElement("div", { className: "arc-SiteHeaderV2-menuButton" },
97
- React__default.createElement(SiteHeaderV2MenuButton, { menuOpen: menuOpen, setMenuOpen: setMenuOpen })),
98
- React__default.createElement("div", { className: "arc-SiteHeaderV2-main", tabIndex: -1 },
99
- React__default.createElement("ul", { role: "menubar", "aria-label": "navigation", ref: menubarRef, className: "arc-SiteHeaderV2-navItems" }, children),
100
- hasLogin && (React__default.createElement(React__default.Fragment, null, loginOnClick ? (React__default.createElement("div", { className: "arc-SiteHeaderV2-mobileButtonContainer" },
101
- React__default.createElement("button", { className: "arc-SiteHeaderV2-mobileLogin", onClick: loginOnClick },
102
- loginTitle,
103
- React__default.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
104
- React__default.createElement(Icon, { icon: BtIconChevronRight2Px }))))) : (React__default.createElement("div", { className: "arc-SiteHeaderV2-mobileButtonContainer" },
105
- React__default.createElement("a", { className: "arc-SiteHeaderV2-mobileLogin", href: loginHref },
106
- loginTitle,
107
- React__default.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
108
- React__default.createElement(Icon, { icon: BtIconChevronRight2Px })))))))))),
109
- (basket || hasLogin || search) && (React__default.createElement("div", { className: "arc-SiteHeaderV2-secondary" },
110
- search ? (React__default.createElement("div", { className: "arc-SiteHeaderV2-search" }, search)) : null,
111
- basket ? (React__default.createElement("div", { className: "arc-SiteHeaderV2-basket" }, basket)) : null,
112
- hasLogin && (React__default.createElement(React__default.Fragment, null, loginOnClick ? (React__default.createElement("div", { className: "arc-SiteHeaderV2-loginLink arc-SiteHeaderV2-loginLink--function", onClick: loginOnClick }, loginTitle)) : (React__default.createElement("a", { className: "arc-SiteHeaderV2-loginLink", href: loginHref }, loginTitle)))))))))));
113
- };
114
- function useHeaderV2Context() {
115
- return useContext(Context$1);
116
- }
117
-
118
- var SiteHeaderV2BackButton = function (_a) {
119
- var setOpen = _a.setOpen, setOpenPanelOnFirstClick = _a.setOpenPanelOnFirstClick;
120
- return (React__default.createElement("button", { className: "arc-SiteHeaderV2BackButton", onClick: function () {
121
- setOpen(false);
122
- setOpenPanelOnFirstClick(false);
123
- } },
124
- React__default.createElement("span", { className: "arc-SiteHeaderV2BackButton-icon" },
125
- React__default.createElement(Icon, { icon: BtIconChevronLeft2Px })),
126
- React__default.createElement("span", { className: "arc-SiteHeaderV2BackButton-text" }, "Back")));
127
- };
128
-
129
- var SiteHeaderV2Panel = function (_a) {
130
- var _b, _c, _d, _e, _f;
131
- var children = _a.children, navItemRef = _a.navItemRef, isNavItem = _a.isNavItem, open = _a.open, setOpen = _a.setOpen, setOpenPanelOnFirstClick = _a.setOpenPanelOnFirstClick, subNavItemRef = _a.subNavItemRef, _g = _a.subNavLink, subNavLink = _g === void 0 ? "" : _g, title = _a.title, subtitle = _a.subtitle, viewAll = _a.viewAll, withSubNav = _a.withSubNav, isPrimary = _a.isPrimary, props = __rest(_a, ["children", "navItemRef", "isNavItem", "open", "setOpen", "setOpenPanelOnFirstClick", "subNavItemRef", "subNavLink", "title", "subtitle", "viewAll", "withSubNav", "isPrimary"]);
132
- var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcSizeBreakpointsL, ")"));
133
- var menubarRef = useHeaderV2Context().menubarRef;
134
- useEffect(function () {
135
- // Where appropriate, close the Panel when clicking outside of it,
136
- // by listening to clicks on the entire document and acting accordingly.
137
- var handleClick = function (e) {
138
- var _a, _b, _c, _d;
139
- (_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
140
- // Don't close the Panel…
141
- if (
142
- // The click is inside the current SubNavItem.
143
- ((_c = subNavItemRef === null || subNavItemRef === void 0 ? void 0 : subNavItemRef.current) === null || _c === void 0 ? void 0 : _c.contains(e.target)) ||
144
- // The click is inside the current NavItem
145
- // and the Panel is not inside a SubNavItem.
146
- // and the target is not a link
147
- (((_d = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _d === void 0 ? void 0 : _d.contains(e.target)) &&
148
- !subNavItemRef &&
149
- !e.target.getAttribute("href")) ||
150
- // The Panel is inside a SubNavItem
151
- // and the click is not on a SubNavItem-link.
152
- // This ensures that one SubNavItem Panel per NavItem always remains open.
153
- (subNavItemRef &&
154
- !e.target.classList.contains(subNavLink) &&
155
- !e.target.classList.contains("".concat(subNavLink, "Title")) &&
156
- !e.target.classList.contains("".concat(subNavLink, "SubTitle")) &&
157
- !e.target.classList.contains("".concat(subNavLink, "Slot")) &&
158
- !e.target.classList.contains("".concat(subNavLink, "SlotTitle"))) ||
159
- // Panel is inside a SubNavItem
160
- // and the click is not inside the Panel's NavItem parent.
161
- // This prevents SubNavItem Panels in sibling NavItems from being closed.
162
- (subNavItemRef && !(navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current.contains(e.target)))) {
163
- return;
164
- }
165
- // Close the panel.
166
- setOpen(false);
167
- setOpenPanelOnFirstClick(false);
168
- };
169
- document.addEventListener("click", handleClick);
170
- return function () {
171
- document.removeEventListener("click", handleClick);
172
- };
173
- }, [
174
- navItemRef,
175
- setOpen,
176
- subNavItemRef,
177
- subNavLink,
178
- setOpenPanelOnFirstClick,
179
- menubarRef,
180
- ]);
181
- useEffect(function () {
182
- var handleClick = function (e) {
183
- var _a, _b;
184
- (_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add("noFocus");
185
- // Close the Panel…
186
- if (e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel")) {
187
- setOpenPanelOnFirstClick(false);
188
- return;
189
- }
190
- if (e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel") ||
191
- e.target.classList.contains("arc-SiteHeaderV2NavItem-link--itemHasChildren-primary")) {
192
- setOpenPanelOnFirstClick(true);
193
- return;
194
- }
195
- };
196
- document.addEventListener("click", handleClick);
197
- return function () {
198
- document.removeEventListener("click", handleClick);
199
- };
200
- }, [navItemRef, setOpenPanelOnFirstClick, menubarRef]);
201
- useEffect(function () {
202
- var handleKeydown = function (e) {
203
- var _a, _b;
204
- // Check the viewport width at time of press
205
- var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(ArcSizeBreakpointsL, ")")).matches;
206
- if (e.key === "Escape" || e.keyCode === 27) {
207
- if (isMinWidthArcBreakpointL && subNavItemRef) {
208
- // Don't close Panels inside SubNavItems when viewport width is above
209
- // the "desktop" breakpoint.
210
- return false;
211
- }
212
- return setOpen(false);
213
- }
214
- if (e.key === "Tab") {
215
- (_b = (_a = menubarRef === null || menubarRef === void 0 ? void 0 : menubarRef.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.remove("noFocus");
216
- }
217
- };
218
- window.addEventListener("keydown", handleKeydown);
219
- return function () {
220
- window.removeEventListener("keydown", handleKeydown);
221
- };
222
- }, [setOpen, subNavItemRef, menubarRef]);
223
- return (React__default.createElement("div", { style: { display: "flex" } },
224
- React__default.createElement("div", __assign({ className: classNames((_b = {},
225
- _b["arc-SiteHeaderV2Panel"] = true,
226
- _b["arc-SiteHeaderV2Panel--open"] = open,
227
- _b["arc-SiteHeaderV2Panel--withSubNav"] = withSubNav,
228
- _b["arc-SiteHeaderV2Panel-onlyPanel"] = isPrimary && isNavItem,
229
- _b)) }, filterAttrs(props)),
230
- React__default.createElement(Surface, { background: "light-white" },
231
- React__default.createElement(SiteHeaderV2BackButton, { setOpen: setOpen, setOpenPanelOnFirstClick: setOpenPanelOnFirstClick }),
232
- React__default.createElement("div", { className: classNames((_c = {},
233
- _c["arc-SiteHeaderV2Panel-inner"] = !isNavItem && withSubNav,
234
- _c["arc-SiteHeaderV2Panel-innerWithoutSubNav"] = !isNavItem && !withSubNav,
235
- _c["arc-SiteHeaderV2NavItemWithSubNav-fadeIn"] = !isNavItem && !withSubNav,
236
- _c["arc-SiteHeaderV2Panel-innerNavItems"] = isNavItem,
237
- _c)) },
238
- React__default.createElement("div", { className: classNames((_d = {},
239
- _d["arc-SiteHeaderV2Panel-main"] = !isNavItem && !withSubNav,
240
- _d)) },
241
- React__default.createElement("div", { className: classNames((_e = {},
242
- _e["arc-SiteHeaderV2Panel-mainInnerWithoutSubNav"] = !isNavItem && !withSubNav,
243
- _e["arc-SiteHeaderV2Panel-mainInner"] = !isNavItem,
244
- _e["arc-SiteHeaderV2Panel-mainInnerNavItems"] = isNavItem,
245
- _e)) },
246
- withSubNav && (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-subNavArea" })),
247
- !isMinWidthArcBreakpointL && title && (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileTitleBlock" },
248
- React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileTitle" },
249
- title && (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-title" }, title)),
250
- React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-subTitle" }, subtitle)))),
251
- React__default.createElement("ul", { className: classNames((_f = {},
252
- _f["arc-SiteHeaderV2Panel-items"] = !isNavItem,
253
- _f["arc-SiteHeaderV2Panel-itemsNavItems"] = isNavItem,
254
- _f["arc-SiteHeaderV2NavItemWithSubNav-fadeIn"] = open && isNavItem,
255
- _f)) }, children),
256
- !withSubNav && viewAll)),
257
- withSubNav && viewAll)))));
258
- };
259
- var SiteHeaderV2ViewAll = function (_a) {
260
- var href = _a.href, title = _a.title, onClick = _a.onClick, buttonStyle = _a.buttonStyle;
261
- var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcSizeBreakpointsL, ")"));
262
- if (buttonStyle === "secondary") {
263
- return isMinWidthArcBreakpointL ? (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-viewAllOutlined" },
264
- React__default.createElement(ButtonV2, { buttonStyle: buttonStyle, label: title !== null && title !== void 0 ? title : "", href: href, onClick: onClick }))) : (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileViewAll arc-SiteHeaderV2Panel-mobileViewAllOutlined" },
265
- React__default.createElement("a", { className: "arc-SiteHeaderV2Item-link", onClick: handleLinkClick({
266
- handler: onClick,
267
- }), href: href }, title)));
268
- }
269
- else {
270
- return isMinWidthArcBreakpointL ? (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-viewAll" },
271
- React__default.createElement(ButtonV2, { buttonStyle: buttonStyle, label: title !== null && title !== void 0 ? title : "", isFullWidth: true, href: href, onClick: onClick }))) : (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-mobileViewAll" },
272
- React__default.createElement("a", { className: "arc-SiteHeaderV2Item-link", onClick: handleLinkClick({
273
- handler: onClick,
274
- }), href: href }, title)));
275
- }
276
- };
277
-
278
- var SiteHeaderV2HorizontalPanel = function (_a) {
279
- var _b, _c, _d;
280
- var children = _a.children, navItemRef = _a.navItemRef, open = _a.open, setOpen = _a.setOpen, subNavItemRef = _a.subNavItemRef, _e = _a.subNavLink, subNavLink = _e === void 0 ? "" : _e, title = _a.title, withSubNav = _a.withSubNav, props = __rest(_a, ["children", "navItemRef", "open", "setOpen", "subNavItemRef", "subNavLink", "title", "withSubNav"]);
281
- useEffect(function () {
282
- // Where appropriate, close the Panel when clicking outside of it,
283
- // by listening to clicks on the entire document and acting accordingly.
284
- var handleClick = function (e) {
285
- var _a;
286
- // Close the Horizontal Panel…
287
- if (
288
- // The click is not inside the current NavItem
289
- !((_a = navItemRef === null || navItemRef === void 0 ? void 0 : navItemRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target)) ||
290
- e.target.classList.contains("arc-SiteHeaderV2HorizontalPanel--open")) {
291
- setOpen(false);
292
- return;
293
- }
294
- };
295
- document.addEventListener("click", handleClick);
296
- return function () {
297
- document.removeEventListener("click", handleClick);
298
- };
299
- }, [navItemRef, setOpen, subNavItemRef, subNavLink]);
300
- useEffect(function () {
301
- var handleKeydown = function (e) {
302
- // Check the viewport width at time of press
303
- var isMinWidthArcBreakpointL = window.matchMedia("(min-width: ".concat(ArcSizeBreakpointsL, ")")).matches;
304
- if (e.key === "Escape" || e.keyCode === 27) {
305
- if (isMinWidthArcBreakpointL && subNavItemRef) {
306
- // Don't close Panels inside SubNavItems when viewport width is above
307
- // the "desktop" breakpoint.
308
- return false;
309
- }
310
- return setOpen(false);
311
- }
312
- };
313
- window.addEventListener("keydown", handleKeydown);
314
- return function () {
315
- window.removeEventListener("keydown", handleKeydown);
316
- };
317
- }, [setOpen, subNavItemRef]);
318
- return (React__default.createElement("div", __assign({ className: classNames((_b = {},
319
- _b["arc-SiteHeaderV2HorizontalPanel"] = true,
320
- _b["arc-SiteHeaderV2HorizontalPanel--open"] = open,
321
- _b["arc-SiteHeaderV2HorizontalPanel--withSubNav"] = withSubNav,
322
- _b)) }, filterAttrs(props)),
323
- React__default.createElement(Surface, { background: "light-neutral-02" },
324
- React__default.createElement("div", { className: classNames((_c = {},
325
- _c["arc-SiteHeaderV2HorizontalPanel-container"] = true,
326
- _c)) },
327
- React__default.createElement(SiteHeaderV2BackButton, { setOpen: setOpen, setOpenPanelOnFirstClick: function () { } }),
328
- title && (React__default.createElement("div", { className: "arc-SiteHeaderV2Panel-selectedTitle" }, title)),
329
- React__default.createElement("ul", { className: classNames((_d = {},
330
- _d["arc-SiteHeaderV2HorizontalPanel-items"] = true,
331
- _d)) }, children)))));
332
- };
333
-
334
- var defaultContext = { navItem: null, subTitle: null };
335
- var Context = createContext(defaultContext);
336
- var Provider = Context.Provider;
337
- var SiteHeaderV2NavItemWithSubNav = function (_a) {
338
- var _b, _c, _d, _e, _f;
339
- var href = _a.href, slot1 = _a.slot1, slot2 = _a.slot2, slot3 = _a.slot3, slot4 = _a.slot4, slot5 = _a.slot5, slot6 = _a.slot6, _g = _a.subTitle, subTitle = _g === void 0 ? null : _g, title = _a.title, onViewAllClick = _a.onViewAllClick, isPrimary = _a.isPrimary, opensFirstWithPanel = _a.opensFirstWithPanel, viewAllTitle = _a.viewAllTitle, props = __rest(_a, ["href", "slot1", "slot2", "slot3", "slot4", "slot5", "slot6", "subTitle", "title", "onViewAllClick", "isPrimary", "opensFirstWithPanel", "viewAllTitle"]);
340
- var navItem = useRef();
341
- var _h = useState(true), defaultItem = _h[0], setDefaultItem = _h[1];
342
- var _j = useState(false), panelOpen = _j[0], setPanelOpen = _j[1];
343
- var _k = useState(false), horizontalPanelOpen = _k[0], setHorizontalPanelOpen = _k[1];
344
- var _l = useState(true), openSecondaryWithSubNav = _l[0], setOpenSecondaryWithSubNav = _l[1];
345
- var isMinWidthArcBreakpointL = useMediaQuery("(min-width: ".concat(ArcSizeBreakpointsL, ")"));
346
- useEffect(function () {
347
- React__default.Children.map(slot1, function (item) {
348
- if (item.props.isDefaultItem) {
349
- setDefaultItem(false);
350
- }
351
- });
352
- React__default.Children.map(slot2, function (item) {
353
- if (item.props.isDefaultItem) {
354
- setDefaultItem(false);
355
- }
356
- });
357
- React__default.Children.map(slot3, function (item) {
358
- if (item.props.isDefaultItem) {
359
- setDefaultItem(false);
360
- }
361
- });
362
- React__default.Children.map(slot4, function (item) {
363
- if (item.props.isDefaultItem) {
364
- setDefaultItem(false);
365
- }
366
- });
367
- React__default.Children.map(slot5, function (item) {
368
- if (item.props.isDefaultItem) {
369
- setDefaultItem(false);
370
- }
371
- });
372
- }, [slot1, slot2, slot3, slot4, slot5]);
373
- return (React__default.createElement(Provider, { value: { navItem: navItem, subTitle: subTitle } },
374
- React__default.createElement("li", __assign({ className: classNames((_b = {},
375
- _b["arc-SiteHeaderV2NavItemWithSubNav"] = true,
376
- _b["arc-SiteHeaderV2NavItemWithSubNav-Secondary"] = !isPrimary,
377
- _b["arc-SiteHeaderV2NavItem-primary"] = isPrimary,
378
- _b["arc-SiteHeaderV2NavItem--linkSelected"] = isPrimary
379
- ? horizontalPanelOpen
380
- : panelOpen,
381
- _b["arc-SiteHeaderV2NavItemWithSubNav-active"] = panelOpen || (opensFirstWithPanel && openSecondaryWithSubNav),
382
- _b)), role: "none", ref: navItem }, filterAttrs(props)),
383
- React__default.createElement("div", { className: "arc-SiteHeaderV2NavItemWithSubNav-buttonContainer" },
384
- React__default.createElement("button", { "aria-expanded": horizontalPanelOpen || panelOpen, role: "menuitem", "aria-label": title, "aria-haspopup": "true", tabIndex: 0, className: classNames((_c = {},
385
- _c["arc-SiteHeaderV2NavItem-link"] = true,
386
- _c["arc-SiteHeaderV2NavItem-horizontalPanelFocus"] = !isPrimary,
387
- _c["arc-SiteHeaderV2NavItem-link--itemHasChildren"] = true,
388
- _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
389
- _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
390
- _c["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
391
- _c["arc-SiteHeaderV2NavItem-horizontalPanelLink"] = !isPrimary && !isMinWidthArcBreakpointL,
392
- _c)), onClick: function (e) {
393
- e.preventDefault();
394
- isPrimary
395
- ? setHorizontalPanelOpen(!horizontalPanelOpen)
396
- : setPanelOpen(!horizontalPanelOpen);
397
- } },
398
- React__default.createElement("div", { className: classNames((_d = {},
399
- _d["arc-SiteHeaderV2NavItem-title"] = isPrimary,
400
- _d["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
401
- _d["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
402
- _d["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
403
- _d)) }, title),
404
- React__default.createElement("span", { className: "arc-SiteHeaderV2-mobileChevron" },
405
- React__default.createElement(Icon, { icon: BtIconChevronRight2Px })),
406
- subTitle && !isPrimary && isMinWidthArcBreakpointL ? (React__default.createElement("div", { className: classNames((_e = {},
407
- _e["arc-SiteHeaderV2NavItemWithSubNav-text"] = !isPrimary,
408
- _e["arc-SiteHeaderV2NavItem-link--itemHasChildren-closeFirstPanel"] = !isPrimary && !opensFirstWithPanel,
409
- _e["arc-SiteHeaderV2NavItem-link--itemHasChildren-hasFirstPanel"] = opensFirstWithPanel,
410
- _e["arc-SiteHeaderV2NavItem-link--itemHasChildren-primary"] = isPrimary,
411
- _e)) }, subTitle)) : null,
412
- React__default.createElement("div", { className: classNames((_f = {},
413
- _f["arc-SiteHeaderV2NavItemWithSubNav-buttonUnderline"] = isPrimary
414
- ? horizontalPanelOpen
415
- : panelOpen ||
416
- (opensFirstWithPanel && openSecondaryWithSubNav),
417
- _f["arc-SiteHeaderV2NavItemWithSubNav-primaryButtonUnderline"] = isPrimary && horizontalPanelOpen,
418
- _f["arc-SiteHeaderV2NavItemWithSubNav-buttonUnderlineActive "] = !isPrimary && (panelOpen || openSecondaryWithSubNav),
419
- _f)) }))),
420
- isPrimary && (React__default.createElement(SiteHeaderV2HorizontalPanel, { navItemRef: navItem, open: horizontalPanelOpen, setOpen: setHorizontalPanelOpen, title: !isMinWidthArcBreakpointL && title },
421
- slot1,
422
- slot2,
423
- slot3,
424
- slot4,
425
- slot5)),
426
- React__default.createElement(SiteHeaderV2Panel, { navItemRef: navItem, open: opensFirstWithPanel && isMinWidthArcBreakpointL
427
- ? openSecondaryWithSubNav
428
- : panelOpen, setOpenPanelOnFirstClick: setOpenSecondaryWithSubNav, setOpen: setPanelOpen, title: !isMinWidthArcBreakpointL && title, subtitle: subTitle, viewAll: href ? (React__default.createElement(SiteHeaderV2ViewAll, { href: href, onClick: onViewAllClick, title: viewAllTitle, buttonStyle: "primary" })) : undefined, withSubNav: true, isNavItem: false },
429
- defaultItem
430
- ? React__default.cloneElement(slot1, { isDefaultItem: defaultItem })
431
- : slot1,
432
- slot2,
433
- slot3,
434
- slot4,
435
- slot5,
436
- slot6))));
437
- };
438
-
439
- export { Context as C, SiteHeaderV2Panel as S, SiteHeaderV2ViewAll as a, SiteHeaderV2 as b, SiteHeaderV2NavItemWithSubNav as c };