@codecademy/brand 2.9.0-alpha.cc836e256f.0 → 2.9.0-alpha.da5035d581.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +6 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.d.ts +4 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.js +76 -243
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.js +7 -15
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.d.ts +1 -7
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.js +3 -16
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.js +25 -43
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +0 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +34 -14
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +5 -12
- package/dist/GlobalHeader/GlobalHeaderItems.d.ts +2 -0
- package/dist/GlobalHeader/GlobalHeaderItems.js +18 -1
- package/dist/GlobalHeader/GlobalHeaderVariants.d.ts +2 -2
- package/dist/GlobalHeader/GlobalHeaderVariants.js +39 -17
- package/dist/GlobalHeader/index.d.ts +1 -0
- package/dist/GlobalHeader/index.js +46 -42
- package/dist/GlobalHeader/types.d.ts +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/package.json +1 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/MarketingBanner.d.ts +0 -3
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/MarketingBanner.js +0 -83
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +0 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +0 -82
- package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.d.ts +0 -4
- package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.js +0 -63
- package/dist/CourseRecommendationsLink/index.d.ts +0 -3
- package/dist/CourseRecommendationsLink/index.js +0 -27
|
@@ -3,28 +3,16 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
3
3
|
import { Box, GridBox } from '@codecademy/gamut';
|
|
4
4
|
import React, { useEffect, useState } from 'react';
|
|
5
5
|
import { NAV_SECTIONS } from './consts';
|
|
6
|
-
import { MarketingBanner } from './MarketingBanner';
|
|
7
6
|
import NavSection from './NavSection';
|
|
8
|
-
import { jsx as _jsx,
|
|
9
|
-
const StyledBox = /*#__PURE__*/_styled(
|
|
10
|
-
target: "
|
|
7
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const StyledBox = /*#__PURE__*/_styled(GridBox, {
|
|
9
|
+
target: "emcbpl71",
|
|
11
10
|
label: "StyledBox"
|
|
12
11
|
})("width:calc(100vw - 11rem);max-width:calc(1440px - 11rem);border:1px solid ", ({
|
|
13
12
|
theme
|
|
14
|
-
}) => theme.colors['border-tertiary'], ";border-radius:16px;background-color:", ({
|
|
13
|
+
}) => theme.colors['border-tertiary'], ";border-radius:16px;padding:32px 24px;background-color:", ({
|
|
15
14
|
theme
|
|
16
|
-
}) => theme.colors
|
|
17
|
-
const StyledGridBox = /*#__PURE__*/_styled(GridBox, {
|
|
18
|
-
target: "emcbpl71",
|
|
19
|
-
label: "StyledGridBox"
|
|
20
|
-
})(process.env.NODE_ENV === "production" ? {
|
|
21
|
-
name: "29co2b",
|
|
22
|
-
styles: "padding:8px;row-gap:8px;grid-template-columns:265px 32px 1fr"
|
|
23
|
-
} : {
|
|
24
|
-
name: "29co2b",
|
|
25
|
-
styles: "padding:8px;row-gap:8px;grid-template-columns:265px 32px 1fr/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQnFDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgR3JpZEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgTkFWX1NFQ1RJT05TIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi9NYXJrZXRpbmdCYW5uZXInO1xuaW1wb3J0IE5hdlNlY3Rpb24gZnJvbSAnLi9OYXZTZWN0aW9uJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHMgPSB7XG4gIGl0ZW06IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW07XG4gIHJlZj86IFJlZk9iamVjdDxIVE1MVUxpc3RFbGVtZW50PjtcbiAgcm9sZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGtleURvd25FdmVudHM/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIGlzT3Blbj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRCb3ggPSBzdHlsZWQoQm94KWBcbiAgd2lkdGg6IGNhbGMoMTAwdncgLSAxMXJlbSk7XG4gIG1heC13aWR0aDogY2FsYygxNDQwcHggLSAxMXJlbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydib3JkZXItdGVydGlhcnknXX07XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcbmA7XG5cbmNvbnN0IFN0eWxlZEdyaWRCb3ggPSBzdHlsZWQoR3JpZEJveClgXG4gIHBhZGRpbmc6IDhweDtcbiAgcm93LWdhcDogOHB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NXB4IDMycHggMWZyO1xuYDtcblxuY29uc3QgR3JhZGllbnRCYWNrZ3JvdW5kID0gc3R5bGVkKEJveClgXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSA3LjY1JSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMTUpIDEwMCVcbiAgKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblZhcmlhbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHNcbj4oKHsgaXNPcGVuLCBrZXlEb3duRXZlbnRzIH0sIHJlZikgPT4ge1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcblxuICBjb25zdCB0YWJJbmRleCA9IGlzT3BlbiA/IDAgOiAtMTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHNldEFjdGl2ZVRhYigwKTtcbiAgICB9XG4gIH0sIFtpc09wZW5dKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkQm94PlxuICAgICAgICA8TWFya2V0aW5nQmFubmVyIHRhYkluZGV4PXt0YWJJbmRleH0gLz5cbiAgICAgICAgPFN0eWxlZEdyaWRCb3ggcmVmPXtyZWZ9IG9uS2V5RG93bj17a2V5RG93bkV2ZW50c30+XG4gICAgICAgICAge05BVl9TRUNUSU9OUy5tYXAoKHNlY3Rpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhbmVsOiBQYW5lbCB9ID0gc2VjdGlvbjtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxOYXZTZWN0aW9uXG4gICAgICAgICAgICAgICAgYWN0aXZlVGFiPXthY3RpdmVUYWJ9XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlVGFiPXtzZXRBY3RpdmVUYWJ9XG4gICAgICAgICAgICAgICAgaWNvbj17aXRlbS5pY29ufVxuICAgICAgICAgICAgICAgIHRleHQ9e2l0ZW0udGV4dH1cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhbmVsIHRhYkluZGV4PXt0YWJJbmRleH0gLz5cbiAgICAgICAgICAgICAgPC9OYXZTZWN0aW9uPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9TdHlsZWRHcmlkQm94PlxuICAgICAgPC9TdHlsZWRCb3g+XG5cbiAgICAgIDxHcmFkaWVudEJhY2tncm91bmRcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIHRvcD1cIjBcIlxuICAgICAgICBsZWZ0PVwiMFwiXG4gICAgICAgIHJpZ2h0PVwiMFwiXG4gICAgICAgIGJvdHRvbT1cIjBcIlxuICAgICAgICB6SW5kZXg9ey0xfVxuICAgICAgICBkaXNwbGF5PXtpc09wZW4gPyAnYmxvY2snIDogJ25vbmUnfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKTtcbn0pO1xuIl19 */",
|
|
26
|
-
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
|
-
});
|
|
15
|
+
}) => theme.colors.background, ";gap:8px;grid-template-columns:265px 32px 1fr;grid-template-rows:repeat(\n 8,\n 60px\n );" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQmlDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgR3JpZEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgTkFWX1NFQ1RJT05TIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IE5hdlNlY3Rpb24gZnJvbSAnLi9OYXZTZWN0aW9uJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHMgPSB7XG4gIGl0ZW06IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW07XG4gIHJlZj86IFJlZk9iamVjdDxIVE1MVUxpc3RFbGVtZW50PjtcbiAgcm9sZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGtleURvd25FdmVudHM/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIGlzT3Blbj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRCb3ggPSBzdHlsZWQoR3JpZEJveClgXG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTFyZW0pO1xuICBtYXgtd2lkdGg6IGNhbGMoMTQ0MHB4IC0gMTFyZW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYm9yZGVyLXRlcnRpYXJ5J119O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBnYXA6IDhweDtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NXB4IDMycHggMWZyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdChcbiAgICA4LFxuICAgIDYwcHhcbiAgKTsgLy8gY2hhbmdlIG51bWJlciBvZiByb3dzIGRlcGVuZGluZyBvbiB0aGUgY29udGVudFxuYDtcblxuY29uc3QgR3JhZGllbnRCYWNrZ3JvdW5kID0gc3R5bGVkKEJveClgXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSA3LjY1JSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMTUpIDEwMCVcbiAgKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblZhcmlhbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHNcbj4oKHsgaXNPcGVuLCBrZXlEb3duRXZlbnRzIH0sIHJlZikgPT4ge1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcblxuICBjb25zdCB0YWJJbmRleCA9IGlzT3BlbiA/IDAgOiAtMTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHNldEFjdGl2ZVRhYigwKTtcbiAgICB9XG4gIH0sIFtpc09wZW5dKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkQm94IHJlZj17cmVmfSBvbktleURvd249e2tleURvd25FdmVudHN9PlxuICAgICAgICB7TkFWX1NFQ1RJT05TLm1hcCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhbmVsOiBQYW5lbCB9ID0gc2VjdGlvbjtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE5hdlNlY3Rpb25cbiAgICAgICAgICAgICAgYWN0aXZlVGFiPXthY3RpdmVUYWJ9XG4gICAgICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFifVxuICAgICAgICAgICAgICBpY29uPXtpdGVtLmljb259XG4gICAgICAgICAgICAgIHRleHQ9e2l0ZW0udGV4dH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBhbmVsIC8+XG4gICAgICAgICAgICA8L05hdlNlY3Rpb24+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L1N0eWxlZEJveD5cbiAgICAgIDxHcmFkaWVudEJhY2tncm91bmRcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIHRvcD1cIjBcIlxuICAgICAgICBsZWZ0PVwiMFwiXG4gICAgICAgIHJpZ2h0PVwiMFwiXG4gICAgICAgIGJvdHRvbT1cIjBcIlxuICAgICAgICB6SW5kZXg9ey0xfVxuICAgICAgICBkaXNwbGF5PXtpc09wZW4gPyAnYmxvY2snIDogJ25vbmUnfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKTtcbn0pO1xuIl19 */"));
|
|
28
16
|
const GradientBackground = /*#__PURE__*/_styled(Box, {
|
|
29
17
|
target: "emcbpl70",
|
|
30
18
|
label: "GradientBackground"
|
|
@@ -33,7 +21,7 @@ const GradientBackground = /*#__PURE__*/_styled(Box, {
|
|
|
33
21
|
styles: "background:linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 7.65%,\n rgba(0, 0, 0, 0.15) 100%\n )"
|
|
34
22
|
} : {
|
|
35
23
|
name: "1n848ez",
|
|
36
|
-
styles: "background:linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 7.65%,\n rgba(0, 0, 0, 0.15) 100%\n )/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
styles: "background:linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 7.65%,\n rgba(0, 0, 0, 0.15) 100%\n )/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQ3NDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgR3JpZEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgTkFWX1NFQ1RJT05TIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IE5hdlNlY3Rpb24gZnJvbSAnLi9OYXZTZWN0aW9uJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHMgPSB7XG4gIGl0ZW06IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW07XG4gIHJlZj86IFJlZk9iamVjdDxIVE1MVUxpc3RFbGVtZW50PjtcbiAgcm9sZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGtleURvd25FdmVudHM/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIGlzT3Blbj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBTdHlsZWRCb3ggPSBzdHlsZWQoR3JpZEJveClgXG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTFyZW0pO1xuICBtYXgtd2lkdGg6IGNhbGMoMTQ0MHB4IC0gMTFyZW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYm9yZGVyLXRlcnRpYXJ5J119O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBwYWRkaW5nOiAzMnB4IDI0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBnYXA6IDhweDtcblxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NXB4IDMycHggMWZyO1xuICBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdChcbiAgICA4LFxuICAgIDYwcHhcbiAgKTsgLy8gY2hhbmdlIG51bWJlciBvZiByb3dzIGRlcGVuZGluZyBvbiB0aGUgY29udGVudFxuYDtcblxuY29uc3QgR3JhZGllbnRCYWNrZ3JvdW5kID0gc3R5bGVkKEJveClgXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSA3LjY1JSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMTUpIDEwMCVcbiAgKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblZhcmlhbnQgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25WYXJpYW50UHJvcHNcbj4oKHsgaXNPcGVuLCBrZXlEb3duRXZlbnRzIH0sIHJlZikgPT4ge1xuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8bnVtYmVyPigwKTtcblxuICBjb25zdCB0YWJJbmRleCA9IGlzT3BlbiA/IDAgOiAtMTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHNldEFjdGl2ZVRhYigwKTtcbiAgICB9XG4gIH0sIFtpc09wZW5dKTtcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkQm94IHJlZj17cmVmfSBvbktleURvd249e2tleURvd25FdmVudHN9PlxuICAgICAgICB7TkFWX1NFQ1RJT05TLm1hcCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhbmVsOiBQYW5lbCB9ID0gc2VjdGlvbjtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE5hdlNlY3Rpb25cbiAgICAgICAgICAgICAgYWN0aXZlVGFiPXthY3RpdmVUYWJ9XG4gICAgICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFifVxuICAgICAgICAgICAgICBpY29uPXtpdGVtLmljb259XG4gICAgICAgICAgICAgIHRleHQ9e2l0ZW0udGV4dH1cbiAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFBhbmVsIC8+XG4gICAgICAgICAgICA8L05hdlNlY3Rpb24+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L1N0eWxlZEJveD5cbiAgICAgIDxHcmFkaWVudEJhY2tncm91bmRcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIHRvcD1cIjBcIlxuICAgICAgICBsZWZ0PVwiMFwiXG4gICAgICAgIHJpZ2h0PVwiMFwiXG4gICAgICAgIGJvdHRvbT1cIjBcIlxuICAgICAgICB6SW5kZXg9ey0xfVxuICAgICAgICBkaXNwbGF5PXtpc09wZW4gPyAnYmxvY2snIDogJ25vbmUnfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKTtcbn0pO1xuIl19 */",
|
|
37
25
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
38
26
|
});
|
|
39
27
|
export const AppHeaderCatalogSectionVariant = /*#__PURE__*/React.forwardRef(({
|
|
@@ -48,31 +36,25 @@ export const AppHeaderCatalogSectionVariant = /*#__PURE__*/React.forwardRef(({
|
|
|
48
36
|
}
|
|
49
37
|
}, [isOpen]);
|
|
50
38
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
51
|
-
children: [/*#__PURE__*/
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
children: /*#__PURE__*/_jsx(Panel, {
|
|
71
|
-
tabIndex: tabIndex
|
|
72
|
-
})
|
|
73
|
-
}, item.id);
|
|
74
|
-
})
|
|
75
|
-
})]
|
|
39
|
+
children: [/*#__PURE__*/_jsx(StyledBox, {
|
|
40
|
+
ref: ref,
|
|
41
|
+
onKeyDown: keyDownEvents,
|
|
42
|
+
children: NAV_SECTIONS.map((section, index) => {
|
|
43
|
+
const {
|
|
44
|
+
item,
|
|
45
|
+
panel: Panel
|
|
46
|
+
} = section;
|
|
47
|
+
return /*#__PURE__*/_jsx(NavSection, {
|
|
48
|
+
activeTab: activeTab,
|
|
49
|
+
setActiveTab: setActiveTab,
|
|
50
|
+
icon: item.icon,
|
|
51
|
+
text: item.text,
|
|
52
|
+
index: index,
|
|
53
|
+
item: item,
|
|
54
|
+
tabIndex: tabIndex,
|
|
55
|
+
children: /*#__PURE__*/_jsx(Panel, {})
|
|
56
|
+
}, item.id);
|
|
57
|
+
})
|
|
76
58
|
}), /*#__PURE__*/_jsx(GradientBackground, {
|
|
77
59
|
position: "fixed",
|
|
78
60
|
top: "0",
|
|
File without changes
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { ContentContainer, FillButton, Text, TextButton } from '@codecademy/gamut';
|
|
2
|
-
import { useState } from 'react';
|
|
2
|
+
import { useContext, useState } from 'react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { AppHeaderLink } from '../../AppHeader/AppHeaderElements/AppHeaderLink';
|
|
5
5
|
import { AppHeaderLinkSections } from '../../AppHeader/AppHeaderElements/AppHeaderLinkSections';
|
|
6
|
-
import {
|
|
6
|
+
import { BlpHeroExperimentContext } from '../../GlobalHeader';
|
|
7
|
+
import { login, requestTeamsDemo, signUp, signUpTextButton } from '../../GlobalHeader/GlobalHeaderItems';
|
|
7
8
|
import { AppHeaderSubNavMobile } from '../AppHeaderSubMenuMobile';
|
|
8
9
|
import { MobileUlWrapper } from '../AppHeaderSubMenuMobile/elements';
|
|
9
10
|
import { AppHeaderSubMenuRow } from '../AppHeaderSubMenuTarget';
|
|
10
11
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const isBusinessPageExperiment = isBlpHeroExperimentVariant => {
|
|
13
|
+
if (typeof window === 'undefined') return false;
|
|
14
|
+
return window.location.pathname === '/business' && isBlpHeroExperimentVariant;
|
|
15
|
+
};
|
|
11
16
|
export const AppHeaderMainMenuMobile = ({
|
|
12
17
|
action,
|
|
13
18
|
items,
|
|
@@ -16,6 +21,7 @@ export const AppHeaderMainMenuMobile = ({
|
|
|
16
21
|
handleCloseMainMenu
|
|
17
22
|
}) => {
|
|
18
23
|
const [subMenuItem, setSubMenuItem] = useState();
|
|
24
|
+
const isBlpHeroExperimentVariant = useContext(BlpHeroExperimentContext);
|
|
19
25
|
const openSubMenu = (event, item) => {
|
|
20
26
|
action(event, item);
|
|
21
27
|
setSubMenuItem(item);
|
|
@@ -86,7 +92,7 @@ export const AppHeaderMainMenuMobile = ({
|
|
|
86
92
|
tabIndex: -1,
|
|
87
93
|
children: /*#__PURE__*/_jsxs(MobileUlWrapper, {
|
|
88
94
|
as: "ul",
|
|
89
|
-
children: [items.map(item => mapItemToElement(item, action)), isAnon && /*#__PURE__*/
|
|
95
|
+
children: [items.map(item => mapItemToElement(item, action)), isAnon && /*#__PURE__*/_jsx("div", {
|
|
90
96
|
style: {
|
|
91
97
|
display: 'flex',
|
|
92
98
|
alignItems: 'baseline',
|
|
@@ -94,17 +100,31 @@ export const AppHeaderMainMenuMobile = ({
|
|
|
94
100
|
paddingTop: '16px',
|
|
95
101
|
borderTop: '1px solid var(--border-tertiary)'
|
|
96
102
|
},
|
|
97
|
-
children:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
children: isBusinessPageExperiment(isBlpHeroExperimentVariant) ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
104
|
+
children: [/*#__PURE__*/_jsx(TextButton, {
|
|
105
|
+
"data-testid": signUpTextButton.dataTestId,
|
|
106
|
+
href: signUpTextButton.href,
|
|
107
|
+
onClick: event => action(event, signUpTextButton),
|
|
108
|
+
children: signUpTextButton.text
|
|
109
|
+
}, signUpTextButton.id), /*#__PURE__*/_jsx(FillButton, {
|
|
110
|
+
"data-testid": requestTeamsDemo.dataTestId,
|
|
111
|
+
href: requestTeamsDemo.href,
|
|
112
|
+
onClick: event => action(event, requestTeamsDemo),
|
|
113
|
+
children: requestTeamsDemo.text
|
|
114
|
+
}, requestTeamsDemo.id)]
|
|
115
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
116
|
+
children: [/*#__PURE__*/_jsx(FillButton, {
|
|
117
|
+
"data-testid": signUp.dataTestId,
|
|
118
|
+
href: signUp.href,
|
|
119
|
+
onClick: event => action(event, signUp),
|
|
120
|
+
children: signUp.text
|
|
121
|
+
}, signUp.id), /*#__PURE__*/_jsx(TextButton, {
|
|
122
|
+
"data-testid": login.dataTestId,
|
|
123
|
+
href: login.href,
|
|
124
|
+
onClick: event => action(event, login),
|
|
125
|
+
children: login.text
|
|
126
|
+
}, login.id)]
|
|
127
|
+
})
|
|
108
128
|
})]
|
|
109
129
|
})
|
|
110
130
|
});
|
|
@@ -2,15 +2,13 @@ import _styled from "@emotion/styled/base";
|
|
|
2
2
|
import { Anchor, Menu, Text } from '@codecademy/gamut';
|
|
3
3
|
import { ArrowChevronLeftIcon } from '@codecademy/gamut-icons';
|
|
4
4
|
import { css } from '@codecademy/gamut-styles';
|
|
5
|
-
import {
|
|
5
|
+
import { useEffect, useRef } from 'react';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { AppHeaderCatalogSection } from '../../AppHeader/AppHeaderElements/AppHeaderCatalogSection';
|
|
8
8
|
import { AppHeaderLinkSections } from '../../AppHeader/AppHeaderElements/AppHeaderLinkSections';
|
|
9
9
|
import { AppHeaderListItem } from '../../AppHeader/AppHeaderElements/AppHeaderListItem';
|
|
10
10
|
import { AppHeaderResourcesSection } from '../../AppHeader/AppHeaderElements/AppHeaderResourcesSection';
|
|
11
|
-
import { GlobalNavRedesignContext } from '../../GlobalHeader';
|
|
12
11
|
import { getHeaderResourcesList } from '../../lib/resourcesList';
|
|
13
|
-
import AppHeaderCatalogSectionVariantMobile from '../AppHeaderCatalogSectonVariantMobile';
|
|
14
12
|
import { MobileSubMenuWrapper, MobileUlWrapper } from './elements';
|
|
15
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
14
|
const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
@@ -22,15 +20,11 @@ const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
|
22
20
|
my: 24,
|
|
23
21
|
padding: 0,
|
|
24
22
|
width: 'calc(100% - 64px)'
|
|
25
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
-
const renderHeaderSection = (item, action, handleCloseMainMenu
|
|
23
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvQXBwSGVhZGVyU3ViTWVudU1vYmlsZS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUNxQiIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQXBwSGVhZGVyTW9iaWxlL0FwcEhlYWRlclN1Yk1lbnVNb2JpbGUvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jaG9yLCBNZW51LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dDaGV2cm9uTGVmdEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93blByb3BzIH0gZnJvbSAnLi4vLi4vQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bic7XG5pbXBvcnQgeyBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvbiB9IGZyb20gJy4uLy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJDYXRhbG9nU2VjdGlvbic7XG5pbXBvcnQgeyBBcHBIZWFkZXJEcm9wZG93blByb3BzIH0gZnJvbSAnLi4vLi4vQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckRyb3Bkb3duJztcbmltcG9ydCB7IEFwcEhlYWRlckxpbmtTZWN0aW9ucyB9IGZyb20gJy4uLy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJMaW5rU2VjdGlvbnMnO1xuaW1wb3J0IHsgQXBwSGVhZGVyTGlzdEl0ZW0gfSBmcm9tICcuLi8uLi9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyTGlzdEl0ZW0nO1xuaW1wb3J0IHsgQXBwSGVhZGVyUmVzb3VyY2VEcm9wZG93blByb3BzIH0gZnJvbSAnLi4vLi4vQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duJztcbmltcG9ydCB7IEFwcEhlYWRlclJlc291cmNlc1NlY3Rpb24gfSBmcm9tICcuLi8uLi9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyUmVzb3VyY2VzU2VjdGlvbic7XG5pbXBvcnQge1xuICBBcHBIZWFkZXJDYXRhbG9nRHJvcGRvd25JdGVtLFxuICBBcHBIZWFkZXJDbGlja0hhbmRsZXIsXG4gIEFwcEhlYWRlckRyb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9BcHBIZWFkZXIvc2hhcmVkJztcbmltcG9ydCB7IGdldEhlYWRlclJlc291cmNlc0xpc3QgfSBmcm9tICcuLi8uLi9saWIvcmVzb3VyY2VzTGlzdCc7XG5pbXBvcnQgeyBNb2JpbGVTdWJNZW51V3JhcHBlciwgTW9iaWxlVWxXcmFwcGVyIH0gZnJvbSAnLi9lbGVtZW50cyc7XG5cbmV4cG9ydCB0eXBlIEFwcEhlYWRlclN1Yk1lbnVNb2JpbGVQcm9wcyA9IChcbiAgfCBBcHBIZWFkZXJEcm9wZG93blByb3BzXG4gIHwgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duUHJvcHNcbiAgfCBBcHBIZWFkZXJSZXNvdXJjZURyb3Bkb3duUHJvcHNcbikgJiB7XG4gIGhhbmRsZUNsb3NlU3ViTWVudTogKCkgPT4gdm9pZDtcbiAgaGFuZGxlQ2xvc2VNYWluTWVudTogKCkgPT4gdm9pZDtcbn07XG5cbnR5cGUgQXBwSGVhZGVyU2VjdGlvbkl0ZW0gPVxuICB8IEFwcEhlYWRlckRyb3Bkb3duSXRlbVxuICB8IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW1cbiAgfCBBcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bkl0ZW07XG5cbmNvbnN0IFN0eWxlZEFuY2hvciA9IHN0eWxlZChBbmNob3IpKFxuICBjc3Moe1xuICAgIGFsaWduSXRlbXM6IGBjZW50ZXJgLFxuICAgIGRpc3BsYXk6IGBmbGV4YCxcbiAgICBteTogMjQsXG4gICAgcGFkZGluZzogMCxcbiAgICB3aWR0aDogJ2NhbGMoMTAwJSAtIDY0cHgpJyxcbiAgfSlcbik7XG5cbmNvbnN0IHJlbmRlckhlYWRlclNlY3Rpb24gPSAoXG4gIGl0ZW06IEFwcEhlYWRlclNlY3Rpb25JdGVtLFxuICBhY3Rpb246IEFwcEhlYWRlckNsaWNrSGFuZGxlcixcbiAgaGFuZGxlQ2xvc2VNYWluTWVudTogKCkgPT4gdm9pZFxuKSA9PiB7XG4gIHN3aXRjaCAoaXRlbS50eXBlKSB7XG4gICAgY2FzZSAnY2F0YWxvZy1kcm9wZG93bic6XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb25cbiAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZU1haW5NZW51fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICBjYXNlICdyZXNvdXJjZXMtZHJvcGRvd24nOlxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEFwcEhlYWRlclJlc291cmNlc1NlY3Rpb25cbiAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2VNYWluTWVudX1cbiAgICAgICAgICByZXNvdXJjZXM9e2dldEhlYWRlclJlc291cmNlc0xpc3QoKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiA8QXBwSGVhZGVyTGlua1NlY3Rpb25zIGFjdGlvbj17YWN0aW9ufSBpdGVtPXtpdGVtfSBtb2JpbGUgLz47XG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJTdWJOYXZNb2JpbGU6IFJlYWN0LkZDPEFwcEhlYWRlclN1Yk1lbnVNb2JpbGVQcm9wcz4gPSAoe1xuICBhY3Rpb24sXG4gIGhhbmRsZUNsb3NlU3ViTWVudSxcbiAgaGFuZGxlQ2xvc2VNYWluTWVudSxcbiAgaXRlbSxcbn0pID0+IHtcbiAgY29uc3QgbWFpblVsV3JhcHBlciA9IHVzZVJlZjxIVE1MVUxpc3RFbGVtZW50PihudWxsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChtYWluVWxXcmFwcGVyPy5jdXJyZW50KSB7XG4gICAgICBtYWluVWxXcmFwcGVyLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtdKTtcblxuICBjb25zdCBpc1Byb2ZpbGVNZW51ID0gaXRlbS50eXBlID09PSAncHJvZmlsZS1kcm9wZG93bic7XG5cbiAgcmV0dXJuIChcbiAgICA8TW9iaWxlVWxXcmFwcGVyIHJlZj17bWFpblVsV3JhcHBlcn0gdGFiSW5kZXg9ey0xfT5cbiAgICAgIDxBcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsb3NlU3ViTWVudX1cbiAgICAgICAgICB2YXJpYW50PVwiaW50ZXJmYWNlXCJcbiAgICAgICAgICBhcz1cImJ1dHRvblwiXG4gICAgICAgICAgbWw9e3sgXzogMTYsIHhzOiAzMiwgc206IDY0LCBtZDogNDggfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxBcnJvd0NoZXZyb25MZWZ0SWNvbiBzaXplPXsxMn0gYXJpYS1oaWRkZW4gLz5cbiAgICAgICAgICA8VGV4dCBmb250U2l6ZT17MTZ9IHBsPXs4fT5cbiAgICAgICAgICAgIEJhY2sgdG8gbWFpbiBuYXZpZ2F0aW9uXG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L1N0eWxlZEFuY2hvcj5cbiAgICAgIDwvQXBwSGVhZGVyTGlzdEl0ZW0+XG4gICAgICA8TW9iaWxlU3ViTWVudVdyYXBwZXJcbiAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlU3ViTWVudX1cbiAgICAgICAgaXNNZW51Um9sZT17aXNQcm9maWxlTWVudX1cbiAgICAgID5cbiAgICAgICAgPFRleHRcbiAgICAgICAgICBhcz1cImgxXCJcbiAgICAgICAgICBmb250U2l6ZT17MjJ9XG4gICAgICAgICAgbWI9ezE2fVxuICAgICAgICAgIG1sPXt7IF86IDE2LCB4czogMzIsIHNtOiA2NCwgbWQ6IDQ4IH19XG4gICAgICAgID5cbiAgICAgICAgICB7aXNQcm9maWxlTWVudSA/IGl0ZW0udXNlckRpc3BsYXlOYW1lIDogaXRlbS50ZXh0fVxuICAgICAgICA8L1RleHQ+XG4gICAgICAgIDxNZW51IHZhcmlhbnQ9XCJmaXhlZFwiIG14PXs4fSB3aWR0aD1cImNhbGMoMTAwJSAtIDE2cHgpXCI+XG4gICAgICAgICAge3JlbmRlckhlYWRlclNlY3Rpb24oaXRlbSwgYWN0aW9uLCBoYW5kbGVDbG9zZU1haW5NZW51KX1cbiAgICAgICAgPC9NZW51PlxuICAgICAgPC9Nb2JpbGVTdWJNZW51V3JhcHBlcj5cbiAgICA8L01vYmlsZVVsV3JhcHBlcj5cbiAgKTtcbn07XG4iXX0= */");
|
|
24
|
+
const renderHeaderSection = (item, action, handleCloseMainMenu) => {
|
|
27
25
|
switch (item.type) {
|
|
28
26
|
case 'catalog-dropdown':
|
|
29
|
-
return
|
|
30
|
-
action: action,
|
|
31
|
-
item: item,
|
|
32
|
-
handleClose: handleCloseMainMenu
|
|
33
|
-
}) : /*#__PURE__*/_jsx(AppHeaderCatalogSection, {
|
|
27
|
+
return /*#__PURE__*/_jsx(AppHeaderCatalogSection, {
|
|
34
28
|
action: action,
|
|
35
29
|
item: item,
|
|
36
30
|
handleClose: handleCloseMainMenu
|
|
@@ -62,7 +56,6 @@ export const AppHeaderSubNavMobile = ({
|
|
|
62
56
|
}
|
|
63
57
|
}, []);
|
|
64
58
|
const isProfileMenu = item.type === 'profile-dropdown';
|
|
65
|
-
const displayGlobalNavRedesign = useContext(GlobalNavRedesignContext);
|
|
66
59
|
return /*#__PURE__*/_jsxs(MobileUlWrapper, {
|
|
67
60
|
ref: mainUlWrapper,
|
|
68
61
|
tabIndex: -1,
|
|
@@ -104,7 +97,7 @@ export const AppHeaderSubNavMobile = ({
|
|
|
104
97
|
variant: "fixed",
|
|
105
98
|
mx: 8,
|
|
106
99
|
width: "calc(100% - 16px)",
|
|
107
|
-
children: renderHeaderSection(item, action, handleCloseMainMenu
|
|
100
|
+
children: renderHeaderSection(item, action, handleCloseMainMenu)
|
|
108
101
|
})]
|
|
109
102
|
})]
|
|
110
103
|
});
|
|
@@ -22,4 +22,6 @@ export declare const upgradeToPro: (checkoutUrl?: string) => AppHeaderFillButton
|
|
|
22
22
|
export declare const unpausePro: AppHeaderFillButtonItem;
|
|
23
23
|
export declare const login: AppHeaderTextButtonItem;
|
|
24
24
|
export declare const signUp: AppHeaderFillButtonItem;
|
|
25
|
+
export declare const signUpTextButton: AppHeaderTextButtonItem;
|
|
25
26
|
export declare const bootcampCta: (bootcampSlug: string) => AppHeaderFillButtonItem;
|
|
27
|
+
export declare const requestTeamsDemo: AppHeaderFillButtonItem;
|
|
@@ -392,6 +392,15 @@ export const signUp = {
|
|
|
392
392
|
type: 'fill-button',
|
|
393
393
|
redirect: true
|
|
394
394
|
};
|
|
395
|
+
export const signUpTextButton = {
|
|
396
|
+
dataTestId: 'header-sign-up-variant',
|
|
397
|
+
id: 'signup',
|
|
398
|
+
text: 'Sign Up',
|
|
399
|
+
href: '/register',
|
|
400
|
+
trackingTarget: 'topnav_signup',
|
|
401
|
+
type: 'text-button',
|
|
402
|
+
redirect: true
|
|
403
|
+
};
|
|
395
404
|
export const bootcampCta = bootcampSlug => ({
|
|
396
405
|
dataTestId: 'bootcamp-header-cta',
|
|
397
406
|
id: 'bootcamp-header-cta',
|
|
@@ -402,4 +411,12 @@ export const bootcampCta = bootcampSlug => ({
|
|
|
402
411
|
variant: 'secondary',
|
|
403
412
|
icon: MiniArrowRightIcon,
|
|
404
413
|
iconPosition: 'right'
|
|
405
|
-
});
|
|
414
|
+
});
|
|
415
|
+
export const requestTeamsDemo = {
|
|
416
|
+
dataTestId: 'request-teams-demo',
|
|
417
|
+
id: 'request-teams-demo',
|
|
418
|
+
text: 'Request a demo',
|
|
419
|
+
href: '/business/teams-quote',
|
|
420
|
+
trackingTarget: 'topnav_request_teams_demo',
|
|
421
|
+
type: 'fill-button'
|
|
422
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AppHeaderItem, FormattedAppHeaderItems, FormattedMobileAppHeaderItems } from '../AppHeader/shared';
|
|
2
2
|
import { GlobalHeaderProps } from '.';
|
|
3
3
|
import { User } from './types';
|
|
4
|
-
export declare const anonDefaultHeaderItems: (hidePricing?: boolean, user?: User) => FormattedAppHeaderItems;
|
|
5
|
-
export declare const anonDefaultMobileHeaderItems: (hidePricing?: boolean, user?: User) => FormattedMobileAppHeaderItems;
|
|
4
|
+
export declare const anonDefaultHeaderItems: (hidePricing?: boolean, user?: User, isBlpHeroExperimentVariant?: boolean) => FormattedAppHeaderItems;
|
|
5
|
+
export declare const anonDefaultMobileHeaderItems: (hidePricing?: boolean, user?: User, isBlpHeroExperimentVariant?: boolean) => FormattedMobileAppHeaderItems;
|
|
6
6
|
export declare const anonLandingHeaderItems: (hidePricing?: boolean, user?: User) => FormattedAppHeaderItems;
|
|
7
7
|
export declare const anonLandingMobileHeaderItems: (hidePricing?: boolean, user?: User) => FormattedMobileAppHeaderItems;
|
|
8
8
|
export declare const anonLoginHeaderItems: (hidePricing?: boolean, user?: User) => FormattedAppHeaderItems;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { addPayment, bootcampCta, businessSolutions, catalogDropdown, communityDropdown, enterpriseLogo, freeProfile, liveLearningHub, loading, login, logo, myHome, myPercipioHome, pricingDropdown, proProfile, resourcesDropdown, signUp, simpleResourcesDropdown, tryProForFree, unpausePro, upgradePlan, upgradeToPro } from './GlobalHeaderItems';
|
|
1
|
+
import { addPayment, bootcampCta, businessSolutions, catalogDropdown, communityDropdown, enterpriseLogo, freeProfile, liveLearningHub, loading, login, logo, myHome, myPercipioHome, pricingDropdown, proProfile, requestTeamsDemo, resourcesDropdown, signUp, signUpTextButton, simpleResourcesDropdown, tryProForFree, unpausePro, upgradePlan, upgradeToPro } from './GlobalHeaderItems';
|
|
2
|
+
const isBusinessPage = isBlpHeroExperimentVariant => {
|
|
3
|
+
if (typeof window === 'undefined') return false;
|
|
4
|
+
return window.location.pathname === '/business' && Boolean(isBlpHeroExperimentVariant);
|
|
5
|
+
};
|
|
2
6
|
const transformSimpleResourcesDropdownlabels = resourcesLabel => ({
|
|
3
7
|
...simpleResourcesDropdown,
|
|
4
8
|
text: resourcesLabel?.title || simpleResourcesDropdown.text,
|
|
@@ -7,36 +11,54 @@ const transformSimpleResourcesDropdownlabels = resourcesLabel => ({
|
|
|
7
11
|
text: resourcesLabel?.[item.id] || item.text
|
|
8
12
|
}))
|
|
9
13
|
});
|
|
10
|
-
const anonHeaderItems = (renderLogin, renderSignUp, hidePricing, user) => {
|
|
14
|
+
const anonHeaderItems = (renderLogin, renderSignUp, hidePricing, user, isBlpHeroExperimentVariant) => {
|
|
11
15
|
const specialLogo = {
|
|
12
16
|
...logo,
|
|
13
17
|
checkMini: true
|
|
14
18
|
};
|
|
15
19
|
const leftItems = [specialLogo, catalogDropdown(user?.hideCareerPaths), resourcesDropdown(), communityDropdown(), ...(hidePricing ? [] : [pricingDropdown]), liveLearningHub, businessSolutions];
|
|
16
20
|
const rightItems = [];
|
|
17
|
-
if (
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
if (isBusinessPage(isBlpHeroExperimentVariant)) {
|
|
22
|
+
if (renderSignUp) {
|
|
23
|
+
rightItems.push(signUpTextButton);
|
|
24
|
+
}
|
|
25
|
+
if (renderLogin) {
|
|
26
|
+
rightItems.push(requestTeamsDemo);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
if (renderLogin) {
|
|
30
|
+
rightItems.push(login);
|
|
31
|
+
}
|
|
32
|
+
if (renderSignUp) {
|
|
33
|
+
rightItems.push(signUp);
|
|
34
|
+
}
|
|
22
35
|
}
|
|
23
36
|
return {
|
|
24
37
|
left: leftItems,
|
|
25
38
|
right: rightItems
|
|
26
39
|
};
|
|
27
40
|
};
|
|
28
|
-
const anonMobileHeaderItems = (renderLogin, renderSignUp, hidePricing, user) => {
|
|
41
|
+
const anonMobileHeaderItems = (renderLogin, renderSignUp, hidePricing, user, isBlpHeroExperimentVariant) => {
|
|
29
42
|
const specialLogo = {
|
|
30
43
|
...logo,
|
|
31
44
|
checkMini: true
|
|
32
45
|
};
|
|
33
46
|
const leftItems = [specialLogo];
|
|
34
47
|
const rightItems = [];
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
48
|
+
if (isBusinessPage(isBlpHeroExperimentVariant)) {
|
|
49
|
+
if (renderSignUp) {
|
|
50
|
+
rightItems.push(signUpTextButton);
|
|
51
|
+
}
|
|
52
|
+
if (renderLogin) {
|
|
53
|
+
rightItems.push(requestTeamsDemo);
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
if (renderLogin) {
|
|
57
|
+
rightItems.push(login);
|
|
58
|
+
}
|
|
59
|
+
if (renderSignUp) {
|
|
60
|
+
rightItems.push(signUp);
|
|
61
|
+
}
|
|
40
62
|
}
|
|
41
63
|
const mainMenuItems = [catalogDropdown(user?.hideCareerPaths), resourcesDropdown(), communityDropdown(), ...(hidePricing ? [] : [pricingDropdown]), liveLearningHub, businessSolutions];
|
|
42
64
|
return {
|
|
@@ -45,11 +67,11 @@ const anonMobileHeaderItems = (renderLogin, renderSignUp, hidePricing, user) =>
|
|
|
45
67
|
mainMenu: mainMenuItems
|
|
46
68
|
};
|
|
47
69
|
};
|
|
48
|
-
export const anonDefaultHeaderItems = (hidePricing, user) => {
|
|
49
|
-
return anonHeaderItems(true, true, hidePricing, user);
|
|
70
|
+
export const anonDefaultHeaderItems = (hidePricing, user, isBlpHeroExperimentVariant) => {
|
|
71
|
+
return anonHeaderItems(true, true, hidePricing, user, isBlpHeroExperimentVariant);
|
|
50
72
|
};
|
|
51
|
-
export const anonDefaultMobileHeaderItems = (hidePricing, user) => {
|
|
52
|
-
return anonMobileHeaderItems(true, true, hidePricing, user);
|
|
73
|
+
export const anonDefaultMobileHeaderItems = (hidePricing, user, isBlpHeroExperimentVariant) => {
|
|
74
|
+
return anonMobileHeaderItems(true, true, hidePricing, user, isBlpHeroExperimentVariant);
|
|
53
75
|
};
|
|
54
76
|
export const anonLandingHeaderItems = (hidePricing, user) => {
|
|
55
77
|
return anonHeaderItems(true, false, hidePricing, user);
|
|
@@ -7,5 +7,6 @@ export declare const HeaderQuizContext: React.Context<{
|
|
|
7
7
|
showSortingQuiz?: boolean;
|
|
8
8
|
}>;
|
|
9
9
|
export declare const GlobalNavRedesignContext: React.Context<boolean>;
|
|
10
|
+
export declare const BlpHeroExperimentContext: React.Context<boolean>;
|
|
10
11
|
export type GlobalHeaderProps = AnonHeader | FreeHeader | ProHeader | EnterpriseHeader | TeamsHeader | LoadingHeader | SimpleHeader | SimpleBootcampHeader;
|
|
11
12
|
export declare const GlobalHeader: React.FC<GlobalHeaderProps>;
|
|
@@ -13,6 +13,7 @@ export const HeaderQuizContext = /*#__PURE__*/React.createContext({
|
|
|
13
13
|
showSortingQuiz: false
|
|
14
14
|
});
|
|
15
15
|
export const GlobalNavRedesignContext = /*#__PURE__*/React.createContext(false);
|
|
16
|
+
export const BlpHeroExperimentContext = /*#__PURE__*/React.createContext(false);
|
|
16
17
|
|
|
17
18
|
// Overloading getAppHeaderItems function to return different types based on mobile parameter
|
|
18
19
|
|
|
@@ -30,7 +31,7 @@ function getAppHeaderItems(props, mobile) {
|
|
|
30
31
|
case 'signup':
|
|
31
32
|
return mobile ? anonSignupMobileHeaderItems(hidePricing, props.user) : anonSignupHeaderItems(hidePricing, props.user);
|
|
32
33
|
default:
|
|
33
|
-
return mobile ? anonDefaultMobileHeaderItems(hidePricing, props.user) : anonDefaultHeaderItems(hidePricing, props.user);
|
|
34
|
+
return mobile ? anonDefaultMobileHeaderItems(hidePricing, props.user, props.isBlpHeroExperimentVariant) : anonDefaultHeaderItems(hidePricing, props.user, props.isBlpHeroExperimentVariant);
|
|
34
35
|
}
|
|
35
36
|
case 'enterprise':
|
|
36
37
|
return mobile ? enterpriseMobileHeaderItems(props.user, props) : enterpriseHeaderItems(props.user, props);
|
|
@@ -68,47 +69,50 @@ export const GlobalHeader = props => {
|
|
|
68
69
|
},
|
|
69
70
|
children: /*#__PURE__*/_jsx(GlobalNavRedesignContext.Provider, {
|
|
70
71
|
value: !!props.displayGlobalNavRedesign,
|
|
71
|
-
children: /*#__PURE__*/_jsx(
|
|
72
|
-
value:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
72
|
+
children: /*#__PURE__*/_jsx(BlpHeroExperimentContext.Provider, {
|
|
73
|
+
value: !!props.isBlpHeroExperimentVariant,
|
|
74
|
+
children: /*#__PURE__*/_jsx(GlobalHeaderItemClickContext.Provider, {
|
|
75
|
+
value: {
|
|
76
|
+
globalHeaderItemClick: combinedAction
|
|
77
|
+
},
|
|
78
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
79
|
+
as: "header",
|
|
80
|
+
position: "sticky",
|
|
81
|
+
top: 0,
|
|
82
|
+
zIndex: theme.elements.headerZ,
|
|
83
|
+
overflow: {
|
|
84
|
+
_: 'hidden',
|
|
85
|
+
sm: 'visible'
|
|
86
|
+
} // Prevent tooltip overflow on mobile
|
|
87
|
+
,
|
|
88
|
+
children: [/*#__PURE__*/_jsx(AppHeader, {
|
|
89
|
+
action: combinedAction,
|
|
90
|
+
items: getAppHeaderItems(props, false),
|
|
91
|
+
search: props.search,
|
|
92
|
+
...(props.type === 'anon' ? {
|
|
93
|
+
redirectParam: props.redirectParam
|
|
94
|
+
} : hideNotification ? {} : {
|
|
95
|
+
notifications: props.notifications
|
|
96
|
+
}),
|
|
97
|
+
hideRightButtonDefaults: hideNotification,
|
|
98
|
+
isAnon: props.type === 'anon',
|
|
99
|
+
isTeams: props.type === 'teams',
|
|
100
|
+
type: hideNotification ? 'enterprise' : 'standard'
|
|
101
|
+
}), /*#__PURE__*/_jsx(AppHeaderMobile, {
|
|
102
|
+
action: combinedAction,
|
|
103
|
+
items: getAppHeaderItems(props, true),
|
|
104
|
+
...(props.type === 'anon' || hideNotification ? {} : {
|
|
105
|
+
notifications: props.notifications
|
|
106
|
+
}),
|
|
107
|
+
search: props.search,
|
|
108
|
+
redirectParam: props.type === 'anon' ? props.redirectParam : undefined,
|
|
109
|
+
isEnterprise: props.type === 'enterprise',
|
|
110
|
+
isAnon: props.type === 'anon',
|
|
111
|
+
isSimple: props.type === 'simple',
|
|
112
|
+
hideRightMenuButton: props.type === 'simple' || props.type === 'loading',
|
|
113
|
+
navigationMenuFormattedLabel: props?.localizedLabels?.navigationMenuFormattedLabel
|
|
114
|
+
}), props.children]
|
|
115
|
+
})
|
|
112
116
|
})
|
|
113
117
|
})
|
|
114
118
|
})
|
package/dist/index.d.ts
CHANGED
|
@@ -27,7 +27,6 @@ export * from './ContentGroupBaseCard';
|
|
|
27
27
|
export * from './ContentGroupBaseCard/types';
|
|
28
28
|
export * from './ContentGroupBaseCard/helpers';
|
|
29
29
|
export * from './CourseCard';
|
|
30
|
-
export * from './CourseRecommendationsLink';
|
|
31
30
|
export * from './CurriculumCard';
|
|
32
31
|
export * from './CurriculumCard/Difficulty';
|
|
33
32
|
export * from './CurriculumCard/Difficulty/types';
|
package/dist/index.js
CHANGED
|
@@ -27,7 +27,6 @@ export * from './ContentGroupBaseCard';
|
|
|
27
27
|
export * from './ContentGroupBaseCard/types';
|
|
28
28
|
export * from './ContentGroupBaseCard/helpers';
|
|
29
29
|
export * from './CourseCard';
|
|
30
|
-
export * from './CourseRecommendationsLink';
|
|
31
30
|
export * from './CurriculumCard';
|
|
32
31
|
export * from './CurriculumCard/Difficulty';
|
|
33
32
|
export * from './CurriculumCard/Difficulty/types';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/brand",
|
|
3
3
|
"description": "Brand component library for Codecademy",
|
|
4
|
-
"version": "2.9.0-alpha.
|
|
4
|
+
"version": "2.9.0-alpha.da5035d581.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@emotion/is-prop-valid": "^1.2.1",
|