@codecademy/brand 3.0.0-alpha.da574fc3ea.0 → 3.1.0-alpha.0155f9e803.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/MarketingBanner.d.ts +3 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +83 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +232 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +13 -0
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/consts.js +17 -4
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +13 -7
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +82 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.d.ts +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js +5 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +4 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +52 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +140 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +18 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +273 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +31 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSection.test.js +83 -0
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderSection}/NavSection.d.ts +2 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavSection.js +79 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +54 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +17 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +86 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/NavSection.d.ts +15 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/NavSection.js +79 -0
- package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.d.ts +4 -0
- package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.js +63 -0
- package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +34 -14
- package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +12 -5
- 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 +33 -0
- package/dist/LearningOutcomeCard/index.js +3 -3
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.d.ts +2 -1
- package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js +26 -7
- package/dist/LearningOutcomeFlyout/index.d.ts +5 -47
- package/dist/LearningOutcomeFlyout/index.js +32 -21
- package/dist/LearningOutcomeFlyout/types.d.ts +49 -0
- package/dist/LearningOutcomeFlyout/types.js +5 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +8 -4
- package/package.json +1 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.d.ts +0 -4
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.js +0 -98
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.js +0 -67
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.d.ts +0 -7
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.d.ts +0 -11
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.js +0 -68
- package/dist/CourseRecommendationsLink/index.d.ts +0 -3
- package/dist/CourseRecommendationsLink/index.js +0 -27
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GamutIconProps } from '@codecademy/gamut-icons';
|
|
2
2
|
import React, { PropsWithChildren } from 'react';
|
|
3
|
-
import { AppHeaderCatalogDropdownItem } from '../../shared';
|
|
3
|
+
import { AppHeaderCatalogDropdownItem, AppHeaderResourcesDropdownItem } from '../../shared';
|
|
4
4
|
type NavSectionProps = PropsWithChildren & {
|
|
5
5
|
activeTab: number;
|
|
6
|
-
item: AppHeaderCatalogDropdownItem;
|
|
6
|
+
item: AppHeaderCatalogDropdownItem | AppHeaderResourcesDropdownItem;
|
|
7
7
|
setActiveTab: (tab: number) => void;
|
|
8
8
|
icon?: React.ComponentType<GamutIconProps>;
|
|
9
9
|
text: string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Box, FlexBox } from '@codecademy/gamut';
|
|
3
|
+
import { ArrowChevronRightIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const NavPanelContainer = /*#__PURE__*/_styled(Box, {
|
|
8
|
+
target: "ed97qwe1",
|
|
9
|
+
label: "NavPanelContainer"
|
|
10
|
+
})("display:", ({
|
|
11
|
+
isActive
|
|
12
|
+
}) => isActive ? 'block' : 'none', ";grid-column:2/span 12;grid-row:1/span 8;background-color:", ({
|
|
13
|
+
theme
|
|
14
|
+
}) => theme.colors.background, ";border-radius:", ({
|
|
15
|
+
isActive,
|
|
16
|
+
isFirst
|
|
17
|
+
}) => isActive && isFirst ? '0 8px 8px 8px' : '8px', ";padding:16px 32px 24px 32px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9OYXZTZWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQjhFIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9OYXZTZWN0aW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgRmxleEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEFycm93Q2hldnJvblJpZ2h0SWNvbiwgR2FtdXRJY29uUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljayB9IGZyb20gJy4uLy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7XG4gIEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0sXG4gIEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbSxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkJztcblxudHlwZSBOYXZTZWN0aW9uUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbiAmIHtcbiAgYWN0aXZlVGFiOiBudW1iZXI7XG4gIGl0ZW06IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0gfCBBcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bkl0ZW07XG4gIHNldEFjdGl2ZVRhYjogKHRhYjogbnVtYmVyKSA9PiB2b2lkO1xuICBpY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxHYW11dEljb25Qcm9wcz47XG4gIHRleHQ6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBOYXZQYW5lbENvbnRhaW5lciA9IHN0eWxlZChCb3gpPHsgaXNBY3RpdmU6IGJvb2xlYW47IGlzRmlyc3Q6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTI7XG4gIGdyaWQtcm93OiAxIC8gc3BhbiA4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSwgaXNGaXJzdCB9KSA9PlxuICAgIGlzQWN0aXZlICYmIGlzRmlyc3QgPyAnMCA4cHggOHB4IDhweCcgOiAnOHB4J307XG4gIHBhZGRpbmc6IDE2cHggMzJweCAyNHB4IDMycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgaXNBY3RpdmU6IGJvb2xlYW47IGluZGV4OiBudW1iZXIgfT5gXG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogJHsoeyBpbmRleCB9KSA9PiBpbmRleCArIDF9O1xuICBwYWRkaW5nOiAxNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gJzhweCAwIDAgOHB4JyA6ICc4cHgnKX07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgaXNBY3RpdmUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5IDogdGhlbWUuY29sb3JzLnRleHR9O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnMTAwJScgOiAnY2FsYygxMDAlIC0gOHB4KScpfTtcbiAgaGVpZ2h0OiA2MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNBY3RpdmUsIHRoZW1lIH0pID0+XG4gICAgaXNBY3RpdmUgPyB0aGVtZS5jb2xvcnMuYmFja2dyb3VuZCA6IHRoZW1lLmNvbG9yc1snZ3JheS0xMDAnXX07XG5cbiAgI2Fycm93LWNoZXZyb24tcmlnaHQtaWNvbiB7XG4gICAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgICAgaXNBY3RpdmUgPyB0aGVtZS5jb2xvcnMuYmFja2dyb3VuZCA6IHRoZW1lLmNvbG9yc1snbmF2eS0xMDAnXX07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBOYXZTZWN0aW9uID0gKHtcbiAgYWN0aXZlVGFiLFxuICBzZXRBY3RpdmVUYWIsXG4gIGljb246IEljb24sXG4gIHRleHQsXG4gIGluZGV4LFxuICBjaGlsZHJlbixcbiAgaXRlbSxcbiAgdGFiSW5kZXgsXG59OiBOYXZTZWN0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJJdGVtQ2xpY2sgfSA9IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljaygpO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRCdXR0b25cbiAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgZ2xvYmFsSGVhZGVySXRlbUNsaWNrKGV2ZW50LCBpdGVtKTtcbiAgICAgICAgICBzZXRBY3RpdmVUYWIoaW5kZXgpO1xuICAgICAgICB9fVxuICAgICAgICBkYXRhLXRlc3RpZD17YG5hdi1zZWN0aW9uLSR7aXRlbS5pZH1gfVxuICAgICAgICBhcmlhLWV4cGFuZGVkPXthY3RpdmVUYWIgPT09IGluZGV4fVxuICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxGbGV4Qm94IGdhcD17OH0gYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIHtJY29uICYmIDxJY29uIC8+fVxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgIDxBcnJvd0NoZXZyb25SaWdodEljb24gaWQ9XCJhcnJvdy1jaGV2cm9uLXJpZ2h0LWljb25cIiAvPlxuICAgICAgPC9TdHlsZWRCdXR0b24+XG5cbiAgICAgIDxOYXZQYW5lbENvbnRhaW5lciBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH0gaXNGaXJzdD17aW5kZXggPT09IDB9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L05hdlBhbmVsQ29udGFpbmVyPlxuICAgIDwvPlxuICApO1xufTtcbmV4cG9ydCBkZWZhdWx0IE5hdlNlY3Rpb247XG4iXX0= */"));
|
|
18
|
+
const StyledButton = /*#__PURE__*/_styled("button", {
|
|
19
|
+
target: "ed97qwe0",
|
|
20
|
+
label: "StyledButton"
|
|
21
|
+
})("grid-column:1;grid-row:", ({
|
|
22
|
+
index
|
|
23
|
+
}) => index + 1, ";padding:16px;border:none;border-radius:", ({
|
|
24
|
+
isActive
|
|
25
|
+
}) => isActive ? '8px 0 0 8px' : '8px', ";background:none;cursor:pointer;font-size:18px;font-weight:400;color:", ({
|
|
26
|
+
theme,
|
|
27
|
+
isActive
|
|
28
|
+
}) => isActive ? theme.colors.primary : theme.colors.text, ";text-align:left;width:", ({
|
|
29
|
+
isActive
|
|
30
|
+
}) => isActive ? '100%' : 'calc(100% - 8px)', ";height:60px;display:flex;justify-content:space-between;align-items:center;background-color:", ({
|
|
31
|
+
isActive,
|
|
32
|
+
theme
|
|
33
|
+
}) => isActive ? theme.colors.background : theme.colors['gray-100'], ";#arrow-chevron-right-icon{display:", ({
|
|
34
|
+
isActive
|
|
35
|
+
}) => isActive ? 'block' : 'none', ";}&:hover,&:focus{background-color:", ({
|
|
36
|
+
theme,
|
|
37
|
+
isActive
|
|
38
|
+
}) => isActive ? theme.colors.background : theme.colors['navy-100'], ";color:", ({
|
|
39
|
+
theme
|
|
40
|
+
}) => theme.colors.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9OYXZTZWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ3dFIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9OYXZTZWN0aW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgRmxleEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEFycm93Q2hldnJvblJpZ2h0SWNvbiwgR2FtdXRJY29uUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgUHJvcHNXaXRoQ2hpbGRyZW4gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljayB9IGZyb20gJy4uLy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7XG4gIEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0sXG4gIEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbSxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkJztcblxudHlwZSBOYXZTZWN0aW9uUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbiAmIHtcbiAgYWN0aXZlVGFiOiBudW1iZXI7XG4gIGl0ZW06IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bkl0ZW0gfCBBcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bkl0ZW07XG4gIHNldEFjdGl2ZVRhYjogKHRhYjogbnVtYmVyKSA9PiB2b2lkO1xuICBpY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxHYW11dEljb25Qcm9wcz47XG4gIHRleHQ6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGFiSW5kZXg/OiBudW1iZXI7XG59O1xuXG5jb25zdCBOYXZQYW5lbENvbnRhaW5lciA9IHN0eWxlZChCb3gpPHsgaXNBY3RpdmU6IGJvb2xlYW47IGlzRmlyc3Q6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gJ2Jsb2NrJyA6ICdub25lJyl9O1xuICBncmlkLWNvbHVtbjogMiAvIHNwYW4gMTI7XG4gIGdyaWQtcm93OiAxIC8gc3BhbiA4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kfTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSwgaXNGaXJzdCB9KSA9PlxuICAgIGlzQWN0aXZlICYmIGlzRmlyc3QgPyAnMCA4cHggOHB4IDhweCcgOiAnOHB4J307XG4gIHBhZGRpbmc6IDE2cHggMzJweCAyNHB4IDMycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b24gPSBzdHlsZWQuYnV0dG9uPHsgaXNBY3RpdmU6IGJvb2xlYW47IGluZGV4OiBudW1iZXIgfT5gXG4gIGdyaWQtY29sdW1uOiAxO1xuICBncmlkLXJvdzogJHsoeyBpbmRleCB9KSA9PiBpbmRleCArIDF9O1xuICBwYWRkaW5nOiAxNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgaXNBY3RpdmUgfSkgPT4gKGlzQWN0aXZlID8gJzhweCAwIDAgOHB4JyA6ICc4cHgnKX07XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogJHsoeyB0aGVtZSwgaXNBY3RpdmUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5wcmltYXJ5IDogdGhlbWUuY29sb3JzLnRleHR9O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB3aWR0aDogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnMTAwJScgOiAnY2FsYygxMDAlIC0gOHB4KScpfTtcbiAgaGVpZ2h0OiA2MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgaXNBY3RpdmUsIHRoZW1lIH0pID0+XG4gICAgaXNBY3RpdmUgPyB0aGVtZS5jb2xvcnMuYmFja2dyb3VuZCA6IHRoZW1lLmNvbG9yc1snZ3JheS0xMDAnXX07XG5cbiAgI2Fycm93LWNoZXZyb24tcmlnaHQtaWNvbiB7XG4gICAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgICAgaXNBY3RpdmUgPyB0aGVtZS5jb2xvcnMuYmFja2dyb3VuZCA6IHRoZW1lLmNvbG9yc1snbmF2eS0xMDAnXX07XG4gICAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLnByaW1hcnl9O1xuICB9XG5gO1xuXG5jb25zdCBOYXZTZWN0aW9uID0gKHtcbiAgYWN0aXZlVGFiLFxuICBzZXRBY3RpdmVUYWIsXG4gIGljb246IEljb24sXG4gIHRleHQsXG4gIGluZGV4LFxuICBjaGlsZHJlbixcbiAgaXRlbSxcbiAgdGFiSW5kZXgsXG59OiBOYXZTZWN0aW9uUHJvcHMpID0+IHtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJJdGVtQ2xpY2sgfSA9IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljaygpO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRCdXR0b25cbiAgICAgICAgaXNBY3RpdmU9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgZ2xvYmFsSGVhZGVySXRlbUNsaWNrKGV2ZW50LCBpdGVtKTtcbiAgICAgICAgICBzZXRBY3RpdmVUYWIoaW5kZXgpO1xuICAgICAgICB9fVxuICAgICAgICBkYXRhLXRlc3RpZD17YG5hdi1zZWN0aW9uLSR7aXRlbS5pZH1gfVxuICAgICAgICBhcmlhLWV4cGFuZGVkPXthY3RpdmVUYWIgPT09IGluZGV4fVxuICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICA+XG4gICAgICAgIDxGbGV4Qm94IGdhcD17OH0gYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgIHtJY29uICYmIDxJY29uIC8+fVxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgIDxBcnJvd0NoZXZyb25SaWdodEljb24gaWQ9XCJhcnJvdy1jaGV2cm9uLXJpZ2h0LWljb25cIiAvPlxuICAgICAgPC9TdHlsZWRCdXR0b24+XG5cbiAgICAgIDxOYXZQYW5lbENvbnRhaW5lciBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH0gaXNGaXJzdD17aW5kZXggPT09IDB9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L05hdlBhbmVsQ29udGFpbmVyPlxuICAgIDwvPlxuICApO1xufTtcbmV4cG9ydCBkZWZhdWx0IE5hdlNlY3Rpb247XG4iXX0= */"));
|
|
41
|
+
const NavSection = ({
|
|
42
|
+
activeTab,
|
|
43
|
+
setActiveTab,
|
|
44
|
+
icon: Icon,
|
|
45
|
+
text,
|
|
46
|
+
index,
|
|
47
|
+
children,
|
|
48
|
+
item,
|
|
49
|
+
tabIndex
|
|
50
|
+
}) => {
|
|
51
|
+
const {
|
|
52
|
+
globalHeaderItemClick
|
|
53
|
+
} = useGlobalHeaderItemClick();
|
|
54
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
55
|
+
children: [/*#__PURE__*/_jsxs(StyledButton, {
|
|
56
|
+
isActive: activeTab === index,
|
|
57
|
+
index: index,
|
|
58
|
+
onClick: event => {
|
|
59
|
+
globalHeaderItemClick(event, item);
|
|
60
|
+
setActiveTab(index);
|
|
61
|
+
},
|
|
62
|
+
"data-testid": `nav-section-${item.id}`,
|
|
63
|
+
"aria-expanded": activeTab === index,
|
|
64
|
+
tabIndex: tabIndex,
|
|
65
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
66
|
+
gap: 8,
|
|
67
|
+
alignItems: "center",
|
|
68
|
+
children: [Icon && /*#__PURE__*/_jsx(Icon, {}), text]
|
|
69
|
+
}), /*#__PURE__*/_jsx(ArrowChevronRightIcon, {
|
|
70
|
+
id: "arrow-chevron-right-icon"
|
|
71
|
+
})]
|
|
72
|
+
}), /*#__PURE__*/_jsx(NavPanelContainer, {
|
|
73
|
+
isActive: activeTab === index,
|
|
74
|
+
isFirst: index === 0,
|
|
75
|
+
children: children
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default NavSection;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import { AppHeaderLinkItem } from '../../..';
|
|
3
|
+
type PanelLayoutProps = PropsWithChildren & {
|
|
4
|
+
heading: string;
|
|
5
|
+
description: ReactNode;
|
|
6
|
+
linkItem?: AppHeaderLinkItem;
|
|
7
|
+
tabIndex?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const PanelLayout: ({ heading, description, linkItem, children, tabIndex, }: PanelLayoutProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Anchor, Box, FlexBox, Text } from '@codecademy/gamut';
|
|
2
|
+
import { MiniArrowRightIcon } from '@codecademy/gamut-icons';
|
|
3
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
4
|
+
import { useAppHeaderDropdownContext } from '../AppHeaderDropdownProvider';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
export const PanelLayout = ({
|
|
7
|
+
heading,
|
|
8
|
+
description,
|
|
9
|
+
linkItem,
|
|
10
|
+
children,
|
|
11
|
+
tabIndex = 0
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
globalHeaderItemClick
|
|
15
|
+
} = useGlobalHeaderItemClick();
|
|
16
|
+
const {
|
|
17
|
+
handleClose
|
|
18
|
+
} = useAppHeaderDropdownContext();
|
|
19
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
20
|
+
flexDirection: "column",
|
|
21
|
+
gap: 24,
|
|
22
|
+
pr: {
|
|
23
|
+
_: 32,
|
|
24
|
+
md: 16,
|
|
25
|
+
lg: 0
|
|
26
|
+
},
|
|
27
|
+
children: [/*#__PURE__*/_jsxs(Box, {
|
|
28
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
29
|
+
as: "h2",
|
|
30
|
+
variant: "title-sm",
|
|
31
|
+
children: heading
|
|
32
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
33
|
+
mt: 8,
|
|
34
|
+
children: description
|
|
35
|
+
})]
|
|
36
|
+
}), children, linkItem && /*#__PURE__*/_jsx(FlexBox, {
|
|
37
|
+
justifyContent: "center",
|
|
38
|
+
children: /*#__PURE__*/_jsx(Anchor, {
|
|
39
|
+
href: linkItem.href,
|
|
40
|
+
onClick: event => {
|
|
41
|
+
globalHeaderItemClick(event, linkItem);
|
|
42
|
+
handleClose();
|
|
43
|
+
},
|
|
44
|
+
tabIndex: tabIndex,
|
|
45
|
+
variant: "standard",
|
|
46
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
gap: 8,
|
|
49
|
+
children: [linkItem.text, " ", /*#__PURE__*/_jsx(MiniArrowRightIcon, {})]
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
|
+
import { AppHeaderCatalogDropdownItem, AppHeaderResourcesDropdownItem } from '../../shared';
|
|
3
|
+
export type AppHeaderSectionProps = {
|
|
4
|
+
isOpen?: boolean;
|
|
5
|
+
keyDownEvents?: (event: React.KeyboardEvent) => void;
|
|
6
|
+
ref?: RefObject<HTMLDivElement>;
|
|
7
|
+
navSections: {
|
|
8
|
+
item: AppHeaderCatalogDropdownItem | AppHeaderResourcesDropdownItem;
|
|
9
|
+
panel: React.ComponentType<{
|
|
10
|
+
tabIndex?: number;
|
|
11
|
+
}>;
|
|
12
|
+
}[];
|
|
13
|
+
MarketingBanner?: ({ tabIndex }: {
|
|
14
|
+
tabIndex: number;
|
|
15
|
+
}) => JSX.Element;
|
|
16
|
+
};
|
|
17
|
+
export declare const AppHeaderSection: React.ForwardRefExoticComponent<Omit<AppHeaderSectionProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
3
|
+
import { Box, GridBox } from '@codecademy/gamut';
|
|
4
|
+
import React, { useEffect, useState } from 'react';
|
|
5
|
+
import NavSection from './NavSection';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const StyledBox = /*#__PURE__*/_styled(Box, {
|
|
8
|
+
target: "e1c0yudv2",
|
|
9
|
+
label: "StyledBox"
|
|
10
|
+
})("width:calc(100vw - 11rem);max-width:calc(1440px - 11rem);border:1px solid ", ({
|
|
11
|
+
theme
|
|
12
|
+
}) => theme.colors['border-tertiary'], ";border-radius:16px;background-color:", ({
|
|
13
|
+
theme
|
|
14
|
+
}) => theme.colors['gray-100'], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVTZCIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEdyaWRCb3ggfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQge1xuICBBcHBIZWFkZXJDYXRhbG9nRHJvcGRvd25JdGVtLFxuICBBcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bkl0ZW0sXG59IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgTmF2U2VjdGlvbiBmcm9tICcuL05hdlNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRCb3ggPSBzdHlsZWQoQm94KWBcbiAgd2lkdGg6IGNhbGMoMTAwdncgLSAxMXJlbSk7XG4gIG1heC13aWR0aDogY2FsYygxNDQwcHggLSAxMXJlbSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydib3JkZXItdGVydGlhcnknXX07XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcbmA7XG5cbmNvbnN0IFN0eWxlZEdyaWRCb3ggPSBzdHlsZWQoR3JpZEJveClgXG4gIHBhZGRpbmc6IDhweDtcbiAgcm93LWdhcDogOHB4O1xuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDI2NXB4IDMycHggMWZyO1xuYDtcblxuY29uc3QgR3JhZGllbnRCYWNrZ3JvdW5kID0gc3R5bGVkKEJveClgXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxODBkZWcsXG4gICAgcmdiYSgwLCAwLCAwLCAwKSA3LjY1JSxcbiAgICByZ2JhKDAsIDAsIDAsIDAuMTUpIDEwMCVcbiAgKTtcbmA7XG5cbmV4cG9ydCB0eXBlIEFwcEhlYWRlclNlY3Rpb25Qcm9wcyA9IHtcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAga2V5RG93bkV2ZW50cz86IChldmVudDogUmVhY3QuS2V5Ym9hcmRFdmVudCkgPT4gdm9pZDtcbiAgcmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbmF2U2VjdGlvbnM6IHtcbiAgICBpdGVtOiBBcHBIZWFkZXJDYXRhbG9nRHJvcGRvd25JdGVtIHwgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtO1xuICAgIHBhbmVsOiBSZWFjdC5Db21wb25lbnRUeXBlPHsgdGFiSW5kZXg/OiBudW1iZXIgfT47XG4gIH1bXTtcbiAgTWFya2V0aW5nQmFubmVyPzogKHsgdGFiSW5kZXggfTogeyB0YWJJbmRleDogbnVtYmVyIH0pID0+IEpTWC5FbGVtZW50O1xufTtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlclNlY3Rpb24gPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBIVE1MRGl2RWxlbWVudCxcbiAgQXBwSGVhZGVyU2VjdGlvblByb3BzXG4+KCh7IGlzT3Blbiwga2V5RG93bkV2ZW50cywgbmF2U2VjdGlvbnMsIE1hcmtldGluZ0Jhbm5lciB9LCByZWYpID0+IHtcbiAgY29uc3QgW2FjdGl2ZVRhYiwgc2V0QWN0aXZlVGFiXSA9IHVzZVN0YXRlPG51bWJlcj4oMCk7XG5cbiAgY29uc3QgdGFiSW5kZXggPSBpc09wZW4gPyAwIDogLTE7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNPcGVuKSB7XG4gICAgICBzZXRBY3RpdmVUYWIoMCk7XG4gICAgfVxuICB9LCBbaXNPcGVuXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZEJveD5cbiAgICAgICAge01hcmtldGluZ0Jhbm5lciAmJiA8TWFya2V0aW5nQmFubmVyIHRhYkluZGV4PXt0YWJJbmRleH0gLz59XG4gICAgICAgIDxTdHlsZWRHcmlkQm94IHJlZj17cmVmfSBvbktleURvd249e2tleURvd25FdmVudHN9PlxuICAgICAgICAgIHtuYXZTZWN0aW9ucy5tYXAoKHNlY3Rpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGl0ZW0sIHBhbmVsOiBQYW5lbCB9ID0gc2VjdGlvbjtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxOYXZTZWN0aW9uXG4gICAgICAgICAgICAgICAgYWN0aXZlVGFiPXthY3RpdmVUYWJ9XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlVGFiPXtzZXRBY3RpdmVUYWJ9XG4gICAgICAgICAgICAgICAgaWNvbj17aXRlbS5pY29ufVxuICAgICAgICAgICAgICAgIHRleHQ9e2l0ZW0udGV4dH1cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgaXRlbT17aXRlbX1cbiAgICAgICAgICAgICAgICB0YWJJbmRleD17dGFiSW5kZXh9XG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBhbmVsIHRhYkluZGV4PXt0YWJJbmRleH0gLz5cbiAgICAgICAgICAgICAgPC9OYXZTZWN0aW9uPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9TdHlsZWRHcmlkQm94PlxuICAgICAgPC9TdHlsZWRCb3g+XG5cbiAgICAgIDxHcmFkaWVudEJhY2tncm91bmRcbiAgICAgICAgcG9zaXRpb249XCJmaXhlZFwiXG4gICAgICAgIHRvcD1cIjBcIlxuICAgICAgICBsZWZ0PVwiMFwiXG4gICAgICAgIHJpZ2h0PVwiMFwiXG4gICAgICAgIGJvdHRvbT1cIjBcIlxuICAgICAgICB6SW5kZXg9ey0xfVxuICAgICAgICBkaXNwbGF5PXtpc09wZW4gPyAnYmxvY2snIDogJ25vbmUnfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKTtcbn0pO1xuIl19 */"));
|
|
15
|
+
const StyledGridBox = /*#__PURE__*/_styled(GridBox, {
|
|
16
|
+
target: "e1c0yudv1",
|
|
17
|
+
label: "StyledGridBox"
|
|
18
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
19
|
+
name: "29co2b",
|
|
20
|
+
styles: "padding:8px;row-gap:8px;grid-template-columns:265px 32px 1fr"
|
|
21
|
+
} : {
|
|
22
|
+
name: "29co2b",
|
|
23
|
+
styles: "padding:8px;row-gap:8px;grid-template-columns:265px 32px 1fr/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JxQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb24vaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBHcmlkQm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IE5hdlNlY3Rpb24gZnJvbSAnLi9OYXZTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQm94ID0gc3R5bGVkKEJveClgXG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTFyZW0pO1xuICBtYXgtd2lkdGg6IGNhbGMoMTQ0MHB4IC0gMTFyZW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYm9yZGVyLXRlcnRpYXJ5J119O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snZ3JheS0xMDAnXX07XG5gO1xuXG5jb25zdCBTdHlsZWRHcmlkQm94ID0gc3R5bGVkKEdyaWRCb3gpYFxuICBwYWRkaW5nOiA4cHg7XG4gIHJvdy1nYXA6IDhweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNjVweCAzMnB4IDFmcjtcbmA7XG5cbmNvbnN0IEdyYWRpZW50QmFja2dyb3VuZCA9IHN0eWxlZChCb3gpYFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoMCwgMCwgMCwgMCkgNy42NSUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjE1KSAxMDAlXG4gICk7XG5gO1xuXG5leHBvcnQgdHlwZSBBcHBIZWFkZXJTZWN0aW9uUHJvcHMgPSB7XG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIGtleURvd25FdmVudHM/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIHJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIG5hdlNlY3Rpb25zOiB7XG4gICAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgICBwYW5lbDogUmVhY3QuQ29tcG9uZW50VHlwZTx7IHRhYkluZGV4PzogbnVtYmVyIH0+O1xuICB9W107XG4gIE1hcmtldGluZ0Jhbm5lcj86ICh7IHRhYkluZGV4IH06IHsgdGFiSW5kZXg6IG51bWJlciB9KSA9PiBKU1guRWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJTZWN0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIEFwcEhlYWRlclNlY3Rpb25Qcm9wc1xuPigoeyBpc09wZW4sIGtleURvd25FdmVudHMsIG5hdlNlY3Rpb25zLCBNYXJrZXRpbmdCYW5uZXIgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IFthY3RpdmVUYWIsIHNldEFjdGl2ZVRhYl0gPSB1c2VTdGF0ZTxudW1iZXI+KDApO1xuXG4gIGNvbnN0IHRhYkluZGV4ID0gaXNPcGVuID8gMCA6IC0xO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3Blbikge1xuICAgICAgc2V0QWN0aXZlVGFiKDApO1xuICAgIH1cbiAgfSwgW2lzT3Blbl0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRCb3g+XG4gICAgICAgIHtNYXJrZXRpbmdCYW5uZXIgJiYgPE1hcmtldGluZ0Jhbm5lciB0YWJJbmRleD17dGFiSW5kZXh9IC8+fVxuICAgICAgICA8U3R5bGVkR3JpZEJveCByZWY9e3JlZn0gb25LZXlEb3duPXtrZXlEb3duRXZlbnRzfT5cbiAgICAgICAgICB7bmF2U2VjdGlvbnMubWFwKChzZWN0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYW5lbDogUGFuZWwgfSA9IHNlY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8TmF2U2VjdGlvblxuICAgICAgICAgICAgICAgIGFjdGl2ZVRhYj17YWN0aXZlVGFifVxuICAgICAgICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFifVxuICAgICAgICAgICAgICAgIGljb249e2l0ZW0uaWNvbn1cbiAgICAgICAgICAgICAgICB0ZXh0PXtpdGVtLnRleHR9XG4gICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYW5lbCB0YWJJbmRleD17dGFiSW5kZXh9IC8+XG4gICAgICAgICAgICAgIDwvTmF2U2VjdGlvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkR3JpZEJveD5cbiAgICAgIDwvU3R5bGVkQm94PlxuXG4gICAgICA8R3JhZGllbnRCYWNrZ3JvdW5kXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICB0b3A9XCIwXCJcbiAgICAgICAgbGVmdD1cIjBcIlxuICAgICAgICByaWdodD1cIjBcIlxuICAgICAgICBib3R0b209XCIwXCJcbiAgICAgICAgekluZGV4PXstMX1cbiAgICAgICAgZGlzcGxheT17aXNPcGVuID8gJ2Jsb2NrJyA6ICdub25lJ31cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59KTtcbiJdfQ== */",
|
|
24
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
25
|
+
});
|
|
26
|
+
const GradientBackground = /*#__PURE__*/_styled(Box, {
|
|
27
|
+
target: "e1c0yudv0",
|
|
28
|
+
label: "GradientBackground"
|
|
29
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
30
|
+
name: "1n848ez",
|
|
31
|
+
styles: "background:linear-gradient(\n 180deg,\n rgba(0, 0, 0, 0) 7.65%,\n rgba(0, 0, 0, 0.15) 100%\n )"
|
|
32
|
+
} : {
|
|
33
|
+
name: "1n848ez",
|
|
34
|
+
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JzQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb24vaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBHcmlkQm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IE5hdlNlY3Rpb24gZnJvbSAnLi9OYXZTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQm94ID0gc3R5bGVkKEJveClgXG4gIHdpZHRoOiBjYWxjKDEwMHZ3IC0gMTFyZW0pO1xuICBtYXgtd2lkdGg6IGNhbGMoMTQ0MHB4IC0gMTFyZW0pO1xuICBib3JkZXI6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYm9yZGVyLXRlcnRpYXJ5J119O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snZ3JheS0xMDAnXX07XG5gO1xuXG5jb25zdCBTdHlsZWRHcmlkQm94ID0gc3R5bGVkKEdyaWRCb3gpYFxuICBwYWRkaW5nOiA4cHg7XG4gIHJvdy1nYXA6IDhweDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyNjVweCAzMnB4IDFmcjtcbmA7XG5cbmNvbnN0IEdyYWRpZW50QmFja2dyb3VuZCA9IHN0eWxlZChCb3gpYFxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgMTgwZGVnLFxuICAgIHJnYmEoMCwgMCwgMCwgMCkgNy42NSUsXG4gICAgcmdiYSgwLCAwLCAwLCAwLjE1KSAxMDAlXG4gICk7XG5gO1xuXG5leHBvcnQgdHlwZSBBcHBIZWFkZXJTZWN0aW9uUHJvcHMgPSB7XG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIGtleURvd25FdmVudHM/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQpID0+IHZvaWQ7XG4gIHJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIG5hdlNlY3Rpb25zOiB7XG4gICAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgICBwYW5lbDogUmVhY3QuQ29tcG9uZW50VHlwZTx7IHRhYkluZGV4PzogbnVtYmVyIH0+O1xuICB9W107XG4gIE1hcmtldGluZ0Jhbm5lcj86ICh7IHRhYkluZGV4IH06IHsgdGFiSW5kZXg6IG51bWJlciB9KSA9PiBKU1guRWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBBcHBIZWFkZXJTZWN0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgSFRNTERpdkVsZW1lbnQsXG4gIEFwcEhlYWRlclNlY3Rpb25Qcm9wc1xuPigoeyBpc09wZW4sIGtleURvd25FdmVudHMsIG5hdlNlY3Rpb25zLCBNYXJrZXRpbmdCYW5uZXIgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IFthY3RpdmVUYWIsIHNldEFjdGl2ZVRhYl0gPSB1c2VTdGF0ZTxudW1iZXI+KDApO1xuXG4gIGNvbnN0IHRhYkluZGV4ID0gaXNPcGVuID8gMCA6IC0xO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGlzT3Blbikge1xuICAgICAgc2V0QWN0aXZlVGFiKDApO1xuICAgIH1cbiAgfSwgW2lzT3Blbl0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxTdHlsZWRCb3g+XG4gICAgICAgIHtNYXJrZXRpbmdCYW5uZXIgJiYgPE1hcmtldGluZ0Jhbm5lciB0YWJJbmRleD17dGFiSW5kZXh9IC8+fVxuICAgICAgICA8U3R5bGVkR3JpZEJveCByZWY9e3JlZn0gb25LZXlEb3duPXtrZXlEb3duRXZlbnRzfT5cbiAgICAgICAgICB7bmF2U2VjdGlvbnMubWFwKChzZWN0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBpdGVtLCBwYW5lbDogUGFuZWwgfSA9IHNlY3Rpb247XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8TmF2U2VjdGlvblxuICAgICAgICAgICAgICAgIGFjdGl2ZVRhYj17YWN0aXZlVGFifVxuICAgICAgICAgICAgICAgIHNldEFjdGl2ZVRhYj17c2V0QWN0aXZlVGFifVxuICAgICAgICAgICAgICAgIGljb249e2l0ZW0uaWNvbn1cbiAgICAgICAgICAgICAgICB0ZXh0PXtpdGVtLnRleHR9XG4gICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgIGl0ZW09e2l0ZW19XG4gICAgICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAgICAgIGtleT17aXRlbS5pZH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQYW5lbCB0YWJJbmRleD17dGFiSW5kZXh9IC8+XG4gICAgICAgICAgICAgIDwvTmF2U2VjdGlvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvU3R5bGVkR3JpZEJveD5cbiAgICAgIDwvU3R5bGVkQm94PlxuXG4gICAgICA8R3JhZGllbnRCYWNrZ3JvdW5kXG4gICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICB0b3A9XCIwXCJcbiAgICAgICAgbGVmdD1cIjBcIlxuICAgICAgICByaWdodD1cIjBcIlxuICAgICAgICBib3R0b209XCIwXCJcbiAgICAgICAgekluZGV4PXstMX1cbiAgICAgICAgZGlzcGxheT17aXNPcGVuID8gJ2Jsb2NrJyA6ICdub25lJ31cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59KTtcbiJdfQ== */",
|
|
35
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
36
|
+
});
|
|
37
|
+
export const AppHeaderSection = /*#__PURE__*/React.forwardRef(({
|
|
38
|
+
isOpen,
|
|
39
|
+
keyDownEvents,
|
|
40
|
+
navSections,
|
|
41
|
+
MarketingBanner
|
|
42
|
+
}, ref) => {
|
|
43
|
+
const [activeTab, setActiveTab] = useState(0);
|
|
44
|
+
const tabIndex = isOpen ? 0 : -1;
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (isOpen) {
|
|
47
|
+
setActiveTab(0);
|
|
48
|
+
}
|
|
49
|
+
}, [isOpen]);
|
|
50
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
51
|
+
children: [/*#__PURE__*/_jsxs(StyledBox, {
|
|
52
|
+
children: [MarketingBanner && /*#__PURE__*/_jsx(MarketingBanner, {
|
|
53
|
+
tabIndex: tabIndex
|
|
54
|
+
}), /*#__PURE__*/_jsx(StyledGridBox, {
|
|
55
|
+
ref: ref,
|
|
56
|
+
onKeyDown: keyDownEvents,
|
|
57
|
+
children: navSections.map((section, index) => {
|
|
58
|
+
const {
|
|
59
|
+
item,
|
|
60
|
+
panel: Panel
|
|
61
|
+
} = section;
|
|
62
|
+
return /*#__PURE__*/_jsx(NavSection, {
|
|
63
|
+
activeTab: activeTab,
|
|
64
|
+
setActiveTab: setActiveTab,
|
|
65
|
+
icon: item.icon,
|
|
66
|
+
text: item.text,
|
|
67
|
+
index: index,
|
|
68
|
+
item: item,
|
|
69
|
+
tabIndex: tabIndex,
|
|
70
|
+
children: /*#__PURE__*/_jsx(Panel, {
|
|
71
|
+
tabIndex: tabIndex
|
|
72
|
+
})
|
|
73
|
+
}, item.id);
|
|
74
|
+
})
|
|
75
|
+
})]
|
|
76
|
+
}), /*#__PURE__*/_jsx(GradientBackground, {
|
|
77
|
+
position: "fixed",
|
|
78
|
+
top: "0",
|
|
79
|
+
left: "0",
|
|
80
|
+
right: "0",
|
|
81
|
+
bottom: "0",
|
|
82
|
+
zIndex: -1,
|
|
83
|
+
display: isOpen ? 'block' : 'none'
|
|
84
|
+
})]
|
|
85
|
+
});
|
|
86
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { GamutIconProps } from '@codecademy/gamut-icons';
|
|
2
|
+
import React, { PropsWithChildren } from 'react';
|
|
3
|
+
import { AppHeaderCatalogDropdownItem, AppHeaderResourcesDropdownItem } from '../../shared';
|
|
4
|
+
type NavSectionProps = PropsWithChildren & {
|
|
5
|
+
activeTab: number;
|
|
6
|
+
item: AppHeaderCatalogDropdownItem | AppHeaderResourcesDropdownItem;
|
|
7
|
+
setActiveTab: (tab: number) => void;
|
|
8
|
+
icon?: React.ComponentType<GamutIconProps>;
|
|
9
|
+
text: string;
|
|
10
|
+
index: number;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
tabIndex?: number;
|
|
13
|
+
};
|
|
14
|
+
declare const NavSection: ({ activeTab, setActiveTab, icon: Icon, text, index, children, item, tabIndex, }: NavSectionProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export default NavSection;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Box, FlexBox } from '@codecademy/gamut';
|
|
3
|
+
import { ArrowChevronRightIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const NavPanelContainer = /*#__PURE__*/_styled(Box, {
|
|
8
|
+
target: "ewhfiay1",
|
|
9
|
+
label: "NavPanelContainer"
|
|
10
|
+
})("display:", ({
|
|
11
|
+
isActive
|
|
12
|
+
}) => isActive ? 'block' : 'none', ";grid-column:2/span 12;grid-row:1/span 8;background-color:", ({
|
|
13
|
+
theme
|
|
14
|
+
}) => theme.colors.background, ";border-radius:", ({
|
|
15
|
+
isActive,
|
|
16
|
+
isFirst
|
|
17
|
+
}) => isActive && isFirst ? '0 8px 8px 8px' : '8px', ";padding:16px 32px 24px 32px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvblZhcmlhbnQvTmF2U2VjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0I4RSIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb25WYXJpYW50L05hdlNlY3Rpb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBGbGV4Qm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dDaGV2cm9uUmlnaHRJY29uLCBHYW11dEljb25Qcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gZnJvbSAnLi4vLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG50eXBlIE5hdlNlY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuICYge1xuICBhY3RpdmVUYWI6IG51bWJlcjtcbiAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgc2V0QWN0aXZlVGFiOiAodGFiOiBudW1iZXIpID0+IHZvaWQ7XG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPEdhbXV0SWNvblByb3BzPjtcbiAgdGV4dDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IE5hdlBhbmVsQ29udGFpbmVyID0gc3R5bGVkKEJveCk8eyBpc0FjdGl2ZTogYm9vbGVhbjsgaXNGaXJzdDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IGlzQWN0aXZlLCBpc0ZpcnN0IH0pID0+XG4gICAgaXNBY3RpdmUgJiYgaXNGaXJzdCA/ICcwIDhweCA4cHggOHB4JyA6ICc4cHgnfTtcbiAgcGFkZGluZzogMTZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBpc0FjdGl2ZTogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9PmBcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAkeyh7IGluZGV4IH0pID0+IGluZGV4ICsgMX07XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnOHB4IDAgMCA4cHgnIDogJzhweCcpfTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgIGlzQWN0aXZlID8gdGhlbWUuY29sb3JzLnByaW1hcnkgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICcxMDAlJyA6ICdjYWxjKDEwMCUgLSA4cHgpJyl9O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcblxuICAjYXJyb3ctY2hldnJvbi1yaWdodC1pY29uIHtcbiAgICBkaXNwbGF5OiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUsIGlzQWN0aXZlIH0pID0+XG4gICAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWyduYXZ5LTEwMCddfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gIH1cbmA7XG5cbmNvbnN0IE5hdlNlY3Rpb24gPSAoe1xuICBhY3RpdmVUYWIsXG4gIHNldEFjdGl2ZVRhYixcbiAgaWNvbjogSWNvbixcbiAgdGV4dCxcbiAgaW5kZXgsXG4gIGNoaWxkcmVuLFxuICBpdGVtLFxuICB0YWJJbmRleCxcbn06IE5hdlNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH1cbiAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgICAgICAgIHNldEFjdGl2ZVRhYihpbmRleCk7XG4gICAgICAgIH19XG4gICAgICAgIGRhdGEtdGVzdGlkPXtgbmF2LXNlY3Rpb24tJHtpdGVtLmlkfWB9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgID5cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXs4fSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAge0ljb24gJiYgPEljb24gLz59XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgPEFycm93Q2hldnJvblJpZ2h0SWNvbiBpZD1cImFycm93LWNoZXZyb24tcmlnaHQtaWNvblwiIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cblxuICAgICAgPE5hdlBhbmVsQ29udGFpbmVyIGlzQWN0aXZlPXthY3RpdmVUYWIgPT09IGluZGV4fSBpc0ZpcnN0PXtpbmRleCA9PT0gMH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTmF2UGFuZWxDb250YWluZXI+XG4gICAgPC8+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTmF2U2VjdGlvbjtcbiJdfQ== */"));
|
|
18
|
+
const StyledButton = /*#__PURE__*/_styled("button", {
|
|
19
|
+
target: "ewhfiay0",
|
|
20
|
+
label: "StyledButton"
|
|
21
|
+
})("grid-column:1;grid-row:", ({
|
|
22
|
+
index
|
|
23
|
+
}) => index + 1, ";padding:16px;border:none;border-radius:", ({
|
|
24
|
+
isActive
|
|
25
|
+
}) => isActive ? '8px 0 0 8px' : '8px', ";background:none;cursor:pointer;font-size:18px;font-weight:400;color:", ({
|
|
26
|
+
theme,
|
|
27
|
+
isActive
|
|
28
|
+
}) => isActive ? theme.colors.primary : theme.colors.text, ";text-align:left;width:", ({
|
|
29
|
+
isActive
|
|
30
|
+
}) => isActive ? '100%' : 'calc(100% - 8px)', ";height:60px;display:flex;justify-content:space-between;align-items:center;background-color:", ({
|
|
31
|
+
isActive,
|
|
32
|
+
theme
|
|
33
|
+
}) => isActive ? theme.colors.background : theme.colors['gray-100'], ";#arrow-chevron-right-icon{display:", ({
|
|
34
|
+
isActive
|
|
35
|
+
}) => isActive ? 'block' : 'none', ";}&:hover,&:focus{background-color:", ({
|
|
36
|
+
theme,
|
|
37
|
+
isActive
|
|
38
|
+
}) => isActive ? theme.colors.background : theme.colors['navy-100'], ";color:", ({
|
|
39
|
+
theme
|
|
40
|
+
}) => theme.colors.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvblZhcmlhbnQvTmF2U2VjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0N3RSIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb25WYXJpYW50L05hdlNlY3Rpb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBGbGV4Qm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dDaGV2cm9uUmlnaHRJY29uLCBHYW11dEljb25Qcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gZnJvbSAnLi4vLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG50eXBlIE5hdlNlY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuICYge1xuICBhY3RpdmVUYWI6IG51bWJlcjtcbiAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgc2V0QWN0aXZlVGFiOiAodGFiOiBudW1iZXIpID0+IHZvaWQ7XG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPEdhbXV0SWNvblByb3BzPjtcbiAgdGV4dDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IE5hdlBhbmVsQ29udGFpbmVyID0gc3R5bGVkKEJveCk8eyBpc0FjdGl2ZTogYm9vbGVhbjsgaXNGaXJzdDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IGlzQWN0aXZlLCBpc0ZpcnN0IH0pID0+XG4gICAgaXNBY3RpdmUgJiYgaXNGaXJzdCA/ICcwIDhweCA4cHggOHB4JyA6ICc4cHgnfTtcbiAgcGFkZGluZzogMTZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBpc0FjdGl2ZTogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9PmBcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAkeyh7IGluZGV4IH0pID0+IGluZGV4ICsgMX07XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnOHB4IDAgMCA4cHgnIDogJzhweCcpfTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgIGlzQWN0aXZlID8gdGhlbWUuY29sb3JzLnByaW1hcnkgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICcxMDAlJyA6ICdjYWxjKDEwMCUgLSA4cHgpJyl9O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcblxuICAjYXJyb3ctY2hldnJvbi1yaWdodC1pY29uIHtcbiAgICBkaXNwbGF5OiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUsIGlzQWN0aXZlIH0pID0+XG4gICAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWyduYXZ5LTEwMCddfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gIH1cbmA7XG5cbmNvbnN0IE5hdlNlY3Rpb24gPSAoe1xuICBhY3RpdmVUYWIsXG4gIHNldEFjdGl2ZVRhYixcbiAgaWNvbjogSWNvbixcbiAgdGV4dCxcbiAgaW5kZXgsXG4gIGNoaWxkcmVuLFxuICBpdGVtLFxuICB0YWJJbmRleCxcbn06IE5hdlNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH1cbiAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgICAgICAgIHNldEFjdGl2ZVRhYihpbmRleCk7XG4gICAgICAgIH19XG4gICAgICAgIGRhdGEtdGVzdGlkPXtgbmF2LXNlY3Rpb24tJHtpdGVtLmlkfWB9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgID5cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXs4fSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAge0ljb24gJiYgPEljb24gLz59XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgPEFycm93Q2hldnJvblJpZ2h0SWNvbiBpZD1cImFycm93LWNoZXZyb24tcmlnaHQtaWNvblwiIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cblxuICAgICAgPE5hdlBhbmVsQ29udGFpbmVyIGlzQWN0aXZlPXthY3RpdmVUYWIgPT09IGluZGV4fSBpc0ZpcnN0PXtpbmRleCA9PT0gMH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTmF2UGFuZWxDb250YWluZXI+XG4gICAgPC8+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTmF2U2VjdGlvbjtcbiJdfQ== */"));
|
|
41
|
+
const NavSection = ({
|
|
42
|
+
activeTab,
|
|
43
|
+
setActiveTab,
|
|
44
|
+
icon: Icon,
|
|
45
|
+
text,
|
|
46
|
+
index,
|
|
47
|
+
children,
|
|
48
|
+
item,
|
|
49
|
+
tabIndex
|
|
50
|
+
}) => {
|
|
51
|
+
const {
|
|
52
|
+
globalHeaderItemClick
|
|
53
|
+
} = useGlobalHeaderItemClick();
|
|
54
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
55
|
+
children: [/*#__PURE__*/_jsxs(StyledButton, {
|
|
56
|
+
isActive: activeTab === index,
|
|
57
|
+
index: index,
|
|
58
|
+
onClick: event => {
|
|
59
|
+
globalHeaderItemClick(event, item);
|
|
60
|
+
setActiveTab(index);
|
|
61
|
+
},
|
|
62
|
+
"data-testid": `nav-section-${item.id}`,
|
|
63
|
+
"aria-expanded": activeTab === index,
|
|
64
|
+
tabIndex: tabIndex,
|
|
65
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
66
|
+
gap: 8,
|
|
67
|
+
alignItems: "center",
|
|
68
|
+
children: [Icon && /*#__PURE__*/_jsx(Icon, {}), text]
|
|
69
|
+
}), /*#__PURE__*/_jsx(ArrowChevronRightIcon, {
|
|
70
|
+
id: "arrow-chevron-right-icon"
|
|
71
|
+
})]
|
|
72
|
+
}), /*#__PURE__*/_jsx(NavPanelContainer, {
|
|
73
|
+
isActive: activeTab === index,
|
|
74
|
+
isFirst: index === 0,
|
|
75
|
+
children: children
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default NavSection;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AppHeaderCatalogSectionProps } from '../../AppHeader/AppHeaderElements/AppHeaderCatalogSection';
|
|
3
|
+
declare const AppHeaderCatalogSectionVariantMobile: React.ForwardRefExoticComponent<Omit<AppHeaderCatalogSectionProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export default AppHeaderCatalogSectionVariantMobile;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Box, FlexBox } from '@codecademy/gamut';
|
|
3
|
+
import { ArrowChevronRightIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import React, { useState } from 'react';
|
|
5
|
+
import { CATALOG_NAV_SECTIONS } from '../../AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts';
|
|
6
|
+
import { useGlobalHeaderItemClick } from '../../GlobalHeader/context';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
|
+
const StyledButton = /*#__PURE__*/_styled("button", {
|
|
9
|
+
target: "e18pnkm10",
|
|
10
|
+
label: "StyledButton"
|
|
11
|
+
})("padding:16px;border:1px solid ", ({
|
|
12
|
+
theme
|
|
13
|
+
}) => theme.colors['border-tertiary'], ";border-radius:8px;background:none;cursor:pointer;font-size:18px;font-weight:400;color:", ({
|
|
14
|
+
theme
|
|
15
|
+
}) => theme.colors.text, ";text-align:left;width:264px;height:60px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvQXBwSGVhZGVyQ2F0YWxvZ1NlY3RvblZhcmlhbnRNb2JpbGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNxRCIsImZpbGUiOiIuLi8uLi8uLi9zcmMvQXBwSGVhZGVyTW9iaWxlL0FwcEhlYWRlckNhdGFsb2dTZWN0b25WYXJpYW50TW9iaWxlL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgRmxleEJveCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEFycm93Q2hldnJvblJpZ2h0SWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgQ0FUQUxPR19OQVZfU0VDVElPTlMgfSBmcm9tICcuLi8uLi9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL2NvbnN0cyc7XG5pbXBvcnQgeyBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblByb3BzIH0gZnJvbSAnLi4vLi4vQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dTZWN0aW9uJztcbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljayB9IGZyb20gJy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcblxuY29uc3QgU3R5bGVkQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7IGluZGV4OiBudW1iZXIgfT5gXG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydib3JkZXItdGVydGlhcnknXX07XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy50ZXh0fTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgd2lkdGg6IDI2NHB4O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbmA7XG5cbmNvbnN0IEFwcEhlYWRlckNhdGFsb2dTZWN0aW9uVmFyaWFudE1vYmlsZSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIEhUTUxEaXZFbGVtZW50LFxuICBBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblByb3BzXG4+KCh7IGtleURvd25FdmVudHMgfSwgcmVmKSA9PiB7XG4gIGNvbnN0IFthY3RpdmVNZW51LCBzZXRBY3RpdmVNZW51XSA9IHVzZVN0YXRlPG51bWJlciB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbYWN0aXZlUGFuZWwsIHNldEFjdGl2ZVBhbmVsXSA9IHVzZVN0YXRlPFJlYWN0LlJlYWN0Tm9kZSB8IG51bGw+KG51bGwpO1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8Qm94XG4gICAgICByZWY9e3JlZn1cbiAgICAgIG9uS2V5RG93bj17a2V5RG93bkV2ZW50c31cbiAgICAgIG1sPXt7IF86IDE2LCB4czogMzIsIHNtOiA2NCwgbWQ6IDQ4IH19XG4gICAgPlxuICAgICAge2FjdGl2ZU1lbnUgPT09IG51bGwgPyAoXG4gICAgICAgIDw+XG4gICAgICAgICAge0NBVEFMT0dfTkFWX1NFQ1RJT05TLm1hcCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgaXRlbTogeyBpY29uOiBJY29uLCB0ZXh0LCBpZCB9LFxuICAgICAgICAgICAgICBwYW5lbDogUGFuZWwsXG4gICAgICAgICAgICB9ID0gc2VjdGlvbjtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxTdHlsZWRCdXR0b25cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIHNlY3Rpb24uaXRlbSk7XG4gICAgICAgICAgICAgICAgICBzZXRBY3RpdmVNZW51KGluZGV4KTtcbiAgICAgICAgICAgICAgICAgIHNldEFjdGl2ZVBhbmVsKDxQYW5lbCAvPik7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17YG5hdi1zZWN0aW9uLSR7aWR9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxGbGV4Qm94IGdhcD17OH0gYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAge0ljb24gJiYgPEljb24gLz59XG4gICAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgPEFycm93Q2hldnJvblJpZ2h0SWNvbiAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZEJ1dHRvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSl9XG4gICAgICAgIDwvPlxuICAgICAgKSA6IChcbiAgICAgICAgPD57YWN0aXZlUGFuZWx9PC8+XG4gICAgICApfVxuICAgIDwvQm94PlxuICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFwcEhlYWRlckNhdGFsb2dTZWN0aW9uVmFyaWFudE1vYmlsZTtcbiJdfQ== */"));
|
|
16
|
+
const AppHeaderCatalogSectionVariantMobile = /*#__PURE__*/React.forwardRef(({
|
|
17
|
+
keyDownEvents
|
|
18
|
+
}, ref) => {
|
|
19
|
+
const [activeMenu, setActiveMenu] = useState(null);
|
|
20
|
+
const [activePanel, setActivePanel] = useState(null);
|
|
21
|
+
const {
|
|
22
|
+
globalHeaderItemClick
|
|
23
|
+
} = useGlobalHeaderItemClick();
|
|
24
|
+
return /*#__PURE__*/_jsx(Box, {
|
|
25
|
+
ref: ref,
|
|
26
|
+
onKeyDown: keyDownEvents,
|
|
27
|
+
ml: {
|
|
28
|
+
_: 16,
|
|
29
|
+
xs: 32,
|
|
30
|
+
sm: 64,
|
|
31
|
+
md: 48
|
|
32
|
+
},
|
|
33
|
+
children: activeMenu === null ? /*#__PURE__*/_jsx(_Fragment, {
|
|
34
|
+
children: CATALOG_NAV_SECTIONS.map((section, index) => {
|
|
35
|
+
const {
|
|
36
|
+
item: {
|
|
37
|
+
icon: Icon,
|
|
38
|
+
text,
|
|
39
|
+
id
|
|
40
|
+
},
|
|
41
|
+
panel: Panel
|
|
42
|
+
} = section;
|
|
43
|
+
return /*#__PURE__*/_jsxs(StyledButton, {
|
|
44
|
+
index: index,
|
|
45
|
+
onClick: event => {
|
|
46
|
+
globalHeaderItemClick(event, section.item);
|
|
47
|
+
setActiveMenu(index);
|
|
48
|
+
setActivePanel(/*#__PURE__*/_jsx(Panel, {}));
|
|
49
|
+
},
|
|
50
|
+
"data-testid": `nav-section-${id}`,
|
|
51
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
52
|
+
gap: 8,
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
children: [Icon && /*#__PURE__*/_jsx(Icon, {}), text]
|
|
55
|
+
}), /*#__PURE__*/_jsx(ArrowChevronRightIcon, {})]
|
|
56
|
+
});
|
|
57
|
+
})
|
|
58
|
+
}) : /*#__PURE__*/_jsx(_Fragment, {
|
|
59
|
+
children: activePanel
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
export default AppHeaderCatalogSectionVariantMobile;
|
|
@@ -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
|
});
|