@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
|
@@ -0,0 +1,83 @@
|
|
|
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 { Anchor, Badge, FlexBox, Text } from '@codecademy/gamut';
|
|
4
|
+
import { ArrowRightIcon } from '@codecademy/gamut-icons';
|
|
5
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
6
|
+
import { bannerData } from './consts';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const MarketingBannerAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
9
|
+
target: "e11di3442",
|
|
10
|
+
label: "MarketingBannerAnchor"
|
|
11
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
12
|
+
name: "pdaf9u",
|
|
13
|
+
styles: "display:flex;&:hover,&:focus-visible{outline:none;text-decoration:none;}"
|
|
14
|
+
} : {
|
|
15
|
+
name: "pdaf9u",
|
|
16
|
+
styles: "display:flex;&:hover,&:focus-visible{outline:none;text-decoration:none;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTzRDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lci50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNob3IsIEJhZGdlLCBGbGV4Qm94LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dSaWdodEljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljayB9IGZyb20gJy4uLy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IGJhbm5lckRhdGEgfSBmcm9tICcuL2NvbnN0cyc7XG5cbmNvbnN0IE1hcmtldGluZ0Jhbm5lckFuY2hvciA9IHN0eWxlZChBbmNob3IpYFxuICBkaXNwbGF5OiBmbGV4O1xuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbmA7XG5cbmNvbnN0IE1hcmtldGluZ0Jhbm5lckJveCA9IHN0eWxlZChGbGV4Qm94KWBcbiAgYm9yZGVyOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ2JvcmRlci10ZXJ0aWFyeSddfTtcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgIDE0NWRlZyxcbiAgICAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snbmF2eS04MDAnXX0gNTAlLFxuICAgICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydibHVlLTQwMCddfSAxMDAlXG4gICk7XG5cbiAgJHtNYXJrZXRpbmdCYW5uZXJBbmNob3J9OmhvdmVyICYsICR7TWFya2V0aW5nQmFubmVyQW5jaG9yfTpmb2N1cy12aXNpYmxlICYge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1sneWVsbG93LTUwMCddfTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAxNDVkZWcsXG4gICAgICAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snbmF2eS04MDAnXX0gODUlLFxuICAgICAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ2JsdWUtNDAwJ119IDEwMCVcbiAgICApO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAwLjJzIGVhc2UtaW4tb3V0O1xuICB9XG5gO1xuXG5jb25zdCBNYXJrZXRpbmdBcnJvd0ljb24gPSBzdHlsZWQoQXJyb3dSaWdodEljb24pYFxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLWluLW91dDtcblxuICAke01hcmtldGluZ0Jhbm5lckFuY2hvcn06aG92ZXIgJiwgJHtNYXJrZXRpbmdCYW5uZXJBbmNob3J9OmZvY3VzLXZpc2libGUgJiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwcHgpO1xuICB9XG5cbiAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICB0cmFuc2l0aW9uOiBub25lO1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgTWFya2V0aW5nQmFubmVyID0gKHsgdGFiSW5kZXggfTogeyB0YWJJbmRleDogbnVtYmVyIH0pID0+IHtcbiAgY29uc3QgeyBnbG9iYWxIZWFkZXJJdGVtQ2xpY2sgfSA9IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljaygpO1xuXG4gIHJldHVybiAoXG4gICAgPE1hcmtldGluZ0Jhbm5lckFuY2hvclxuICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICBocmVmPXtiYW5uZXJEYXRhLmhyZWZ9XG4gICAgICBvbkNsaWNrPXsoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PlxuICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIHtcbiAgICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgICAgaHJlZjogYmFubmVyRGF0YS5ocmVmLFxuICAgICAgICAgIHRleHQ6IGJhbm5lckRhdGEudGV4dCxcbiAgICAgICAgICBpZDogJ2dsb2JhbF9uYXZfbWFya2V0aW5nX2Jhbm5lcicsXG4gICAgICAgICAgdHJhY2tpbmdUYXJnZXQ6ICdnbG9iYWxfbmF2X21hcmtldGluZ19iYW5uZXInLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgID5cbiAgICAgIDxNYXJrZXRpbmdCYW5uZXJCb3hcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgIGhlaWdodD1cIjQwcHhcIlxuICAgICAgICBjb2xvcj1cIndoaXRlXCJcbiAgICAgICAgbXg9ezh9XG4gICAgICAgIG10PXs4fVxuICAgICAgICBweD17MjR9XG4gICAgICAgIHB5PXs4fVxuICAgICAgICBib3JkZXJSYWRpdXM9XCJsZ1wiXG4gICAgICA+XG4gICAgICAgIDxGbGV4Qm94IGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICA8QmFkZ2VcbiAgICAgICAgICAgIGJnPVwieWVsbG93LTUwMFwiXG4gICAgICAgICAgICBjb2xvcj1cIm5hdnktODAwXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJjdXN0b21cIlxuICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgIG1yPXs4fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIE5ld1xuICAgICAgICAgIDwvQmFkZ2U+XG4gICAgICAgICAgPFRleHQgdmFyaWFudD1cInAtYmFzZVwiPntiYW5uZXJEYXRhLnRleHR9PC9UZXh0PlxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgIDxNYXJrZXRpbmdBcnJvd0ljb24gLz5cbiAgICAgIDwvTWFya2V0aW5nQmFubmVyQm94PlxuICAgIDwvTWFya2V0aW5nQmFubmVyQW5jaG9yPlxuICApO1xufTtcbiJdfQ== */",
|
|
17
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
18
|
+
});
|
|
19
|
+
const MarketingBannerBox = /*#__PURE__*/_styled(FlexBox, {
|
|
20
|
+
target: "e11di3441",
|
|
21
|
+
label: "MarketingBannerBox"
|
|
22
|
+
})("border:1px solid ", ({
|
|
23
|
+
theme
|
|
24
|
+
}) => theme.colors['border-tertiary'], ";background:linear-gradient(\n 145deg,\n ", ({
|
|
25
|
+
theme
|
|
26
|
+
}) => theme.colors['navy-800'], " 50%,\n ", ({
|
|
27
|
+
theme
|
|
28
|
+
}) => theme.colors['blue-400'], " 100%\n );", MarketingBannerAnchor, ":hover &,", MarketingBannerAnchor, ":focus-visible &{box-shadow:0 0 0 2px ", ({
|
|
29
|
+
theme
|
|
30
|
+
}) => theme.colors['yellow-500'], ";background:linear-gradient(\n 145deg,\n ", ({
|
|
31
|
+
theme
|
|
32
|
+
}) => theme.colors['navy-800'], " 85%,\n ", ({
|
|
33
|
+
theme
|
|
34
|
+
}) => theme.colors['blue-400'], " 100%\n );transition:background 0.2s ease-in-out,box-shadow 0.2s ease-in-out;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUIwQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jaG9yLCBCYWRnZSwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEFycm93UmlnaHRJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2sgfSBmcm9tICcuLi8uLi8uLi9HbG9iYWxIZWFkZXIvY29udGV4dCc7XG5pbXBvcnQgeyBiYW5uZXJEYXRhIH0gZnJvbSAnLi9jb25zdHMnO1xuXG5jb25zdCBNYXJrZXRpbmdCYW5uZXJBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgZGlzcGxheTogZmxleDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5gO1xuXG5jb25zdCBNYXJrZXRpbmdCYW5uZXJCb3ggPSBzdHlsZWQoRmxleEJveClgXG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydib3JkZXItdGVydGlhcnknXX07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxNDVkZWcsXG4gICAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktODAwJ119IDUwJSxcbiAgICAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYmx1ZS00MDAnXX0gMTAwJVxuICApO1xuXG4gICR7TWFya2V0aW5nQmFubmVyQW5jaG9yfTpob3ZlciAmLCAke01hcmtldGluZ0Jhbm5lckFuY2hvcn06Zm9jdXMtdmlzaWJsZSAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ3llbGxvdy01MDAnXX07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgMTQ1ZGVnLFxuICAgICAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktODAwJ119IDg1JSxcbiAgICAgICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydibHVlLTQwMCddfSAxMDAlXG4gICAgKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4ycyBlYXNlLWluLW91dDtcbiAgfVxuYDtcblxuY29uc3QgTWFya2V0aW5nQXJyb3dJY29uID0gc3R5bGVkKEFycm93UmlnaHRJY29uKWBcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgJHtNYXJrZXRpbmdCYW5uZXJBbmNob3J9OmhvdmVyICYsICR7TWFya2V0aW5nQmFubmVyQW5jaG9yfTpmb2N1cy12aXNpYmxlICYge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IE1hcmtldGluZ0Jhbm5lciA9ICh7IHRhYkluZGV4IH06IHsgdGFiSW5kZXg6IG51bWJlciB9KSA9PiB7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gPSB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2soKTtcblxuICByZXR1cm4gKFxuICAgIDxNYXJrZXRpbmdCYW5uZXJBbmNob3JcbiAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgaHJlZj17YmFubmVyRGF0YS5ocmVmfVxuICAgICAgb25DbGljaz17KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50LCBNb3VzZUV2ZW50PikgPT5cbiAgICAgICAgZ2xvYmFsSGVhZGVySXRlbUNsaWNrKGV2ZW50LCB7XG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGhyZWY6IGJhbm5lckRhdGEuaHJlZixcbiAgICAgICAgICB0ZXh0OiBiYW5uZXJEYXRhLnRleHQsXG4gICAgICAgICAgaWQ6ICdnbG9iYWxfbmF2X21hcmtldGluZ19iYW5uZXInLFxuICAgICAgICAgIHRyYWNraW5nVGFyZ2V0OiAnZ2xvYmFsX25hdl9tYXJrZXRpbmdfYmFubmVyJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICA+XG4gICAgICA8TWFya2V0aW5nQmFubmVyQm94XG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBoZWlnaHQ9XCI0MHB4XCJcbiAgICAgICAgY29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIG14PXs4fVxuICAgICAgICBtdD17OH1cbiAgICAgICAgcHg9ezI0fVxuICAgICAgICBweT17OH1cbiAgICAgICAgYm9yZGVyUmFkaXVzPVwibGdcIlxuICAgICAgPlxuICAgICAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPEJhZGdlXG4gICAgICAgICAgICBiZz1cInllbGxvdy01MDBcIlxuICAgICAgICAgICAgY29sb3I9XCJuYXZ5LTgwMFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiY3VzdG9tXCJcbiAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICBtcj17OH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICBOZXdcbiAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgIDxUZXh0IHZhcmlhbnQ9XCJwLWJhc2VcIj57YmFubmVyRGF0YS50ZXh0fTwvVGV4dD5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICA8TWFya2V0aW5nQXJyb3dJY29uIC8+XG4gICAgICA8L01hcmtldGluZ0Jhbm5lckJveD5cbiAgICA8L01hcmtldGluZ0Jhbm5lckFuY2hvcj5cbiAgKTtcbn07XG4iXX0= */"));
|
|
35
|
+
const MarketingArrowIcon = /*#__PURE__*/_styled(ArrowRightIcon, {
|
|
36
|
+
target: "e11di3440",
|
|
37
|
+
label: "MarketingArrowIcon"
|
|
38
|
+
})("transition:transform 0.2s ease-in-out;", MarketingBannerAnchor, ":hover &,", MarketingBannerAnchor, ":focus-visible &{transform:translateX(10px);}@media (prefers-reduced-motion: reduce){transition:none;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL01hcmtldGluZ0Jhbm5lci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0NpRCIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckNhdGFsb2dEcm9wZG93bi9NYXJrZXRpbmdCYW5uZXIudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jaG9yLCBCYWRnZSwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEFycm93UmlnaHRJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2sgfSBmcm9tICcuLi8uLi8uLi9HbG9iYWxIZWFkZXIvY29udGV4dCc7XG5pbXBvcnQgeyBiYW5uZXJEYXRhIH0gZnJvbSAnLi9jb25zdHMnO1xuXG5jb25zdCBNYXJrZXRpbmdCYW5uZXJBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgZGlzcGxheTogZmxleDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5gO1xuXG5jb25zdCBNYXJrZXRpbmdCYW5uZXJCb3ggPSBzdHlsZWQoRmxleEJveClgXG4gIGJvcmRlcjogMXB4IHNvbGlkICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydib3JkZXItdGVydGlhcnknXX07XG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAxNDVkZWcsXG4gICAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktODAwJ119IDUwJSxcbiAgICAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snYmx1ZS00MDAnXX0gMTAwJVxuICApO1xuXG4gICR7TWFya2V0aW5nQmFubmVyQW5jaG9yfTpob3ZlciAmLCAke01hcmtldGluZ0Jhbm5lckFuY2hvcn06Zm9jdXMtdmlzaWJsZSAmIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAycHggJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ3llbGxvdy01MDAnXX07XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgMTQ1ZGVnLFxuICAgICAgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktODAwJ119IDg1JSxcbiAgICAgICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzWydibHVlLTQwMCddfSAxMDAlXG4gICAgKTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgMC4ycyBlYXNlLWluLW91dDtcbiAgfVxuYDtcblxuY29uc3QgTWFya2V0aW5nQXJyb3dJY29uID0gc3R5bGVkKEFycm93UmlnaHRJY29uKWBcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZS1pbi1vdXQ7XG5cbiAgJHtNYXJrZXRpbmdCYW5uZXJBbmNob3J9OmhvdmVyICYsICR7TWFya2V0aW5nQmFubmVyQW5jaG9yfTpmb2N1cy12aXNpYmxlICYge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMHB4KTtcbiAgfVxuXG4gIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IE1hcmtldGluZ0Jhbm5lciA9ICh7IHRhYkluZGV4IH06IHsgdGFiSW5kZXg6IG51bWJlciB9KSA9PiB7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gPSB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2soKTtcblxuICByZXR1cm4gKFxuICAgIDxNYXJrZXRpbmdCYW5uZXJBbmNob3JcbiAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgaHJlZj17YmFubmVyRGF0YS5ocmVmfVxuICAgICAgb25DbGljaz17KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50LCBNb3VzZUV2ZW50PikgPT5cbiAgICAgICAgZ2xvYmFsSGVhZGVySXRlbUNsaWNrKGV2ZW50LCB7XG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGhyZWY6IGJhbm5lckRhdGEuaHJlZixcbiAgICAgICAgICB0ZXh0OiBiYW5uZXJEYXRhLnRleHQsXG4gICAgICAgICAgaWQ6ICdnbG9iYWxfbmF2X21hcmtldGluZ19iYW5uZXInLFxuICAgICAgICAgIHRyYWNraW5nVGFyZ2V0OiAnZ2xvYmFsX25hdl9tYXJrZXRpbmdfYmFubmVyJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICA+XG4gICAgICA8TWFya2V0aW5nQmFubmVyQm94XG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiXG4gICAgICAgIGFsaWduSXRlbXM9XCJjZW50ZXJcIlxuICAgICAgICBoZWlnaHQ9XCI0MHB4XCJcbiAgICAgICAgY29sb3I9XCJ3aGl0ZVwiXG4gICAgICAgIG14PXs4fVxuICAgICAgICBtdD17OH1cbiAgICAgICAgcHg9ezI0fVxuICAgICAgICBweT17OH1cbiAgICAgICAgYm9yZGVyUmFkaXVzPVwibGdcIlxuICAgICAgPlxuICAgICAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgPEJhZGdlXG4gICAgICAgICAgICBiZz1cInllbGxvdy01MDBcIlxuICAgICAgICAgICAgY29sb3I9XCJuYXZ5LTgwMFwiXG4gICAgICAgICAgICB2YXJpYW50PVwiY3VzdG9tXCJcbiAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICBtcj17OH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICBOZXdcbiAgICAgICAgICA8L0JhZGdlPlxuICAgICAgICAgIDxUZXh0IHZhcmlhbnQ9XCJwLWJhc2VcIj57YmFubmVyRGF0YS50ZXh0fTwvVGV4dD5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICA8TWFya2V0aW5nQXJyb3dJY29uIC8+XG4gICAgICA8L01hcmtldGluZ0Jhbm5lckJveD5cbiAgICA8L01hcmtldGluZ0Jhbm5lckFuY2hvcj5cbiAgKTtcbn07XG4iXX0= */"));
|
|
39
|
+
export const MarketingBanner = ({
|
|
40
|
+
tabIndex
|
|
41
|
+
}) => {
|
|
42
|
+
const {
|
|
43
|
+
globalHeaderItemClick
|
|
44
|
+
} = useGlobalHeaderItemClick();
|
|
45
|
+
return /*#__PURE__*/_jsx(MarketingBannerAnchor, {
|
|
46
|
+
variant: "interface",
|
|
47
|
+
href: bannerData.href,
|
|
48
|
+
onClick: event => globalHeaderItemClick(event, {
|
|
49
|
+
type: 'link',
|
|
50
|
+
href: bannerData.href,
|
|
51
|
+
text: bannerData.text,
|
|
52
|
+
id: 'global_nav_marketing_banner',
|
|
53
|
+
trackingTarget: 'global_nav_marketing_banner'
|
|
54
|
+
}),
|
|
55
|
+
tabIndex: tabIndex,
|
|
56
|
+
children: /*#__PURE__*/_jsxs(MarketingBannerBox, {
|
|
57
|
+
width: "100%",
|
|
58
|
+
justifyContent: "space-between",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
height: "40px",
|
|
61
|
+
color: "white",
|
|
62
|
+
mx: 8,
|
|
63
|
+
mt: 8,
|
|
64
|
+
px: 24,
|
|
65
|
+
py: 8,
|
|
66
|
+
borderRadius: "lg",
|
|
67
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
children: [/*#__PURE__*/_jsx(Badge, {
|
|
70
|
+
bg: "yellow-500",
|
|
71
|
+
color: "navy-800",
|
|
72
|
+
variant: "custom",
|
|
73
|
+
size: "sm",
|
|
74
|
+
mr: 8,
|
|
75
|
+
children: "New"
|
|
76
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
77
|
+
variant: "p-base",
|
|
78
|
+
children: bannerData.text
|
|
79
|
+
})]
|
|
80
|
+
}), /*#__PURE__*/_jsx(MarketingArrowIcon, {})]
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type NavPanelProps = {
|
|
2
|
+
tabIndex?: number;
|
|
3
|
+
};
|
|
4
|
+
export declare const CourseTopicsPanel: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare const CareerPathCard: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const CareerPathsPanel: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare const SkillPathsPanel: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const CertificationPathsPanel: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare const LiveLearningPanel: ({ tabIndex }: NavPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/* eslint-disable react/no-array-index-key */ // can be removed once we add dynamic data
|
|
2
|
+
import { Anchor, Box, Card, FlexBox, GridBox, Text } from '@codecademy/gamut';
|
|
3
|
+
import { LevelIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import { theme } from '@codecademy/gamut-styles';
|
|
5
|
+
import { CourseDifficulty } from '../../../ContentGroupBaseCard/types';
|
|
6
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
7
|
+
import { liveLearningHubItems, topLanguages } from '../../../lib/catalogList';
|
|
8
|
+
import { AppHeaderDietCard } from '../AppHeaderDietCard';
|
|
9
|
+
import { PanelLayout } from '../AppHeaderSection/PanelLayout';
|
|
10
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
export const CourseTopicsPanel = ({
|
|
12
|
+
tabIndex = 0
|
|
13
|
+
}) => {
|
|
14
|
+
const {
|
|
15
|
+
globalHeaderItemClick
|
|
16
|
+
} = useGlobalHeaderItemClick();
|
|
17
|
+
return /*#__PURE__*/_jsx(PanelLayout, {
|
|
18
|
+
heading: "Course topics",
|
|
19
|
+
description: "Explore the topics covered in our courses",
|
|
20
|
+
linkItem: {
|
|
21
|
+
type: 'link',
|
|
22
|
+
href: '/catalog?type=course',
|
|
23
|
+
text: 'View all courses',
|
|
24
|
+
trackingTarget: 'catalog-header-view-all-courses',
|
|
25
|
+
id: 'view-all-courses'
|
|
26
|
+
},
|
|
27
|
+
tabIndex: tabIndex,
|
|
28
|
+
children: /*#__PURE__*/_jsx(FlexBox, {
|
|
29
|
+
flexDirection: {
|
|
30
|
+
_: 'column',
|
|
31
|
+
lg: 'row'
|
|
32
|
+
},
|
|
33
|
+
wrap: true,
|
|
34
|
+
gap: 16,
|
|
35
|
+
children: topLanguages.map(item => /*#__PURE__*/_jsx(Anchor, {
|
|
36
|
+
variant: "interface",
|
|
37
|
+
href: item.href,
|
|
38
|
+
onClick: event => globalHeaderItemClick(event, item),
|
|
39
|
+
tabIndex: tabIndex,
|
|
40
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
41
|
+
width: "281px",
|
|
42
|
+
height: 48,
|
|
43
|
+
px: 16,
|
|
44
|
+
py: 8,
|
|
45
|
+
borderRadius: "md",
|
|
46
|
+
border: 1,
|
|
47
|
+
borderColor: "border-tertiary",
|
|
48
|
+
alignItems: "center",
|
|
49
|
+
children: [item.text, item.badge]
|
|
50
|
+
}, `${item.id}`)
|
|
51
|
+
}, `${item.id}`))
|
|
52
|
+
})
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
export const CareerPathCard = ({
|
|
56
|
+
tabIndex = 0
|
|
57
|
+
}) => {
|
|
58
|
+
return /*#__PURE__*/_jsx(AppHeaderDietCard, {
|
|
59
|
+
title: "Full-Stack Engineer",
|
|
60
|
+
hours: 150,
|
|
61
|
+
icon: /*#__PURE__*/_jsx(LevelIcon, {}),
|
|
62
|
+
difficulty: CourseDifficulty.Beginner,
|
|
63
|
+
tabIndex: tabIndex
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
export const CareerPathsPanel = ({
|
|
67
|
+
tabIndex = 0
|
|
68
|
+
}) => {
|
|
69
|
+
return /*#__PURE__*/_jsx(PanelLayout, {
|
|
70
|
+
heading: "Popular career paths",
|
|
71
|
+
description: "Career paths teach you exactly what you need to start a new career. Curated by our team of experts, career paths contain a collection of courses, projects, prep for technical interviews, and more.",
|
|
72
|
+
linkItem: {
|
|
73
|
+
type: 'link',
|
|
74
|
+
href: '/catalog?type=career-path',
|
|
75
|
+
text: 'View all career paths',
|
|
76
|
+
trackingTarget: 'catalog-header-view-all-career-paths',
|
|
77
|
+
id: 'view-all-career-paths'
|
|
78
|
+
},
|
|
79
|
+
tabIndex: tabIndex,
|
|
80
|
+
children: /*#__PURE__*/_jsx(GridBox, {
|
|
81
|
+
gridTemplateColumns: {
|
|
82
|
+
_: '1fr',
|
|
83
|
+
md: 'repeat(3, 1fr)'
|
|
84
|
+
},
|
|
85
|
+
gap: 16,
|
|
86
|
+
children: Array.from({
|
|
87
|
+
length: 6
|
|
88
|
+
}).map((_, index) => /*#__PURE__*/_jsx(CareerPathCard, {
|
|
89
|
+
tabIndex: tabIndex
|
|
90
|
+
}, `${index}-card`))
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
export const SkillPathsPanel = ({
|
|
95
|
+
tabIndex = 0
|
|
96
|
+
}) => {
|
|
97
|
+
return /*#__PURE__*/_jsx(PanelLayout, {
|
|
98
|
+
heading: "Skill paths",
|
|
99
|
+
description: "Build a specific skill fast with a short, curated path.",
|
|
100
|
+
linkItem: {
|
|
101
|
+
type: 'link',
|
|
102
|
+
href: '/catalog?type=skill-path',
|
|
103
|
+
text: 'View all skill paths',
|
|
104
|
+
trackingTarget: 'catalog-header-view-all-skill-paths',
|
|
105
|
+
id: 'view-all-skill-paths'
|
|
106
|
+
},
|
|
107
|
+
tabIndex: tabIndex,
|
|
108
|
+
children: /*#__PURE__*/_jsx(GridBox, {
|
|
109
|
+
gridTemplateColumns: {
|
|
110
|
+
_: '1fr',
|
|
111
|
+
md: 'repeat(3, 1fr)'
|
|
112
|
+
},
|
|
113
|
+
gap: 16,
|
|
114
|
+
children: Array.from({
|
|
115
|
+
length: 6
|
|
116
|
+
}).map((_, index) => /*#__PURE__*/_jsx(CareerPathCard, {
|
|
117
|
+
tabIndex: tabIndex
|
|
118
|
+
}, `${index}-card`))
|
|
119
|
+
})
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
const providers = ['AWS', 'Microsoft', 'Google', 'COMPTIA', 'ISC2'];
|
|
123
|
+
const ProviderChip = ({
|
|
124
|
+
text,
|
|
125
|
+
href,
|
|
126
|
+
tabIndex
|
|
127
|
+
}) => {
|
|
128
|
+
return /*#__PURE__*/_jsx(Anchor, {
|
|
129
|
+
href: href,
|
|
130
|
+
variant: "interface",
|
|
131
|
+
tabIndex: tabIndex,
|
|
132
|
+
children: /*#__PURE__*/_jsx(FlexBox, {
|
|
133
|
+
border: 1,
|
|
134
|
+
borderColor: "border-secondary",
|
|
135
|
+
borderRadius: "md",
|
|
136
|
+
py: 1.5,
|
|
137
|
+
px: 8,
|
|
138
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
139
|
+
children: text
|
|
140
|
+
})
|
|
141
|
+
})
|
|
142
|
+
}, text);
|
|
143
|
+
};
|
|
144
|
+
export const CertificationPathsPanel = ({
|
|
145
|
+
tabIndex = 0
|
|
146
|
+
}) => {
|
|
147
|
+
return /*#__PURE__*/_jsxs(PanelLayout, {
|
|
148
|
+
heading: "Certification paths",
|
|
149
|
+
description: "Get ready for certification exams with guided learning paths.",
|
|
150
|
+
linkItem: {
|
|
151
|
+
type: 'link',
|
|
152
|
+
href: '/catalog?type=certification-path',
|
|
153
|
+
text: 'View all certification paths',
|
|
154
|
+
trackingTarget: 'catalog-header-view-all-certification-paths',
|
|
155
|
+
id: 'view-all-certification-paths'
|
|
156
|
+
},
|
|
157
|
+
tabIndex: tabIndex,
|
|
158
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
159
|
+
gap: 8,
|
|
160
|
+
children: [providers.map(provider => /*#__PURE__*/_jsx(ProviderChip, {
|
|
161
|
+
text: provider,
|
|
162
|
+
href: `/search?query=${provider} certifications`,
|
|
163
|
+
tabIndex: tabIndex
|
|
164
|
+
}, provider)), /*#__PURE__*/_jsx(ProviderChip, {
|
|
165
|
+
text: "+ More providers",
|
|
166
|
+
href: "/catalog/certification-prep",
|
|
167
|
+
tabIndex: tabIndex
|
|
168
|
+
}, "more-providers")]
|
|
169
|
+
}), /*#__PURE__*/_jsx(GridBox, {
|
|
170
|
+
gridTemplateColumns: {
|
|
171
|
+
_: '1fr',
|
|
172
|
+
md: 'repeat(3, 1fr)'
|
|
173
|
+
},
|
|
174
|
+
gap: 16,
|
|
175
|
+
children: Array.from({
|
|
176
|
+
length: 6
|
|
177
|
+
}).map((_, index) => /*#__PURE__*/_jsx(CareerPathCard, {
|
|
178
|
+
tabIndex: tabIndex
|
|
179
|
+
}, `${index}-card`))
|
|
180
|
+
})]
|
|
181
|
+
});
|
|
182
|
+
};
|
|
183
|
+
export const LiveLearningPanel = ({
|
|
184
|
+
tabIndex = 0
|
|
185
|
+
}) => {
|
|
186
|
+
const {
|
|
187
|
+
globalHeaderItemClick
|
|
188
|
+
} = useGlobalHeaderItemClick();
|
|
189
|
+
return /*#__PURE__*/_jsx(PanelLayout, {
|
|
190
|
+
heading: "Live learning",
|
|
191
|
+
description: "Explore the live learning opportunities available in our courses",
|
|
192
|
+
linkItem: {
|
|
193
|
+
type: 'link',
|
|
194
|
+
href: '/live-learning',
|
|
195
|
+
text: 'Learn more about live learning',
|
|
196
|
+
trackingTarget: 'catalog-header-learn-more-about-live-learning',
|
|
197
|
+
id: 'learn-more-about-live-learning'
|
|
198
|
+
},
|
|
199
|
+
tabIndex: tabIndex,
|
|
200
|
+
children: /*#__PURE__*/_jsx(GridBox, {
|
|
201
|
+
gridTemplateColumns: {
|
|
202
|
+
_: '1fr',
|
|
203
|
+
md: 'repeat(2, 1fr)'
|
|
204
|
+
},
|
|
205
|
+
gap: 16,
|
|
206
|
+
children: liveLearningHubItems.data.map(item => /*#__PURE__*/_jsx(Anchor, {
|
|
207
|
+
href: item.href,
|
|
208
|
+
variant: "interface",
|
|
209
|
+
onClick: event => globalHeaderItemClick(event, item),
|
|
210
|
+
children: /*#__PURE__*/_jsxs(Card, {
|
|
211
|
+
isInteractive: true,
|
|
212
|
+
p: 0,
|
|
213
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
214
|
+
height: "225px",
|
|
215
|
+
width: "100%",
|
|
216
|
+
background: theme.colors['gray-300']
|
|
217
|
+
}), /*#__PURE__*/_jsxs(FlexBox, {
|
|
218
|
+
flexDirection: "column",
|
|
219
|
+
gap: 8,
|
|
220
|
+
p: 16,
|
|
221
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
222
|
+
variant: "title-xs",
|
|
223
|
+
children: item.text
|
|
224
|
+
}), 'description' in item && /*#__PURE__*/_jsx(Text, {
|
|
225
|
+
children: item.description
|
|
226
|
+
})]
|
|
227
|
+
})]
|
|
228
|
+
})
|
|
229
|
+
}, item.id))
|
|
230
|
+
})
|
|
231
|
+
});
|
|
232
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AppHeaderCatalogDropdownItem } from '../../shared';
|
|
3
|
+
export type NavSectionConfig = {
|
|
4
|
+
item: AppHeaderCatalogDropdownItem;
|
|
5
|
+
panel: React.ComponentType<{
|
|
6
|
+
tabIndex?: number;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
export declare const CATALOG_NAV_SECTIONS: NavSectionConfig[];
|
|
10
|
+
export declare const bannerData: {
|
|
11
|
+
text: string;
|
|
12
|
+
href: string;
|
|
13
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BriefcaseIcon, ProfessionalCertificateIcon, ProgrammingTeamChatIcon, StudyBookIcon } from '@codecademy/gamut-icons';
|
|
2
|
-
import { CareerPathsPanel, CertificationPathsPanel, CourseTopicsPanel, LiveLearningPanel } from './NavPanels';
|
|
3
|
-
export const
|
|
1
|
+
import { BriefcaseIcon, DiamondIcon, ProfessionalCertificateIcon, ProgrammingTeamChatIcon, StudyBookIcon } from '@codecademy/gamut-icons';
|
|
2
|
+
import { CareerPathsPanel, CertificationPathsPanel, CourseTopicsPanel, LiveLearningPanel, SkillPathsPanel } from './NavPanels';
|
|
3
|
+
export const CATALOG_NAV_SECTIONS = [{
|
|
4
4
|
item: {
|
|
5
5
|
icon: StudyBookIcon,
|
|
6
6
|
text: 'Course topics',
|
|
@@ -9,6 +9,15 @@ export const NAV_SECTIONS = [{
|
|
|
9
9
|
trackingTarget: 'topnav_catalog_course_topics'
|
|
10
10
|
},
|
|
11
11
|
panel: CourseTopicsPanel
|
|
12
|
+
}, {
|
|
13
|
+
item: {
|
|
14
|
+
icon: DiamondIcon,
|
|
15
|
+
text: 'Skill paths',
|
|
16
|
+
id: 'skill-paths',
|
|
17
|
+
type: 'catalog-dropdown',
|
|
18
|
+
trackingTarget: 'topnav_catalog_skill_paths'
|
|
19
|
+
},
|
|
20
|
+
panel: SkillPathsPanel
|
|
12
21
|
}, {
|
|
13
22
|
item: {
|
|
14
23
|
icon: BriefcaseIcon,
|
|
@@ -36,4 +45,8 @@ export const NAV_SECTIONS = [{
|
|
|
36
45
|
trackingTarget: 'topnav_catalog_live_learning'
|
|
37
46
|
},
|
|
38
47
|
panel: LiveLearningPanel
|
|
39
|
-
}];
|
|
48
|
+
}];
|
|
49
|
+
export const bannerData = {
|
|
50
|
+
text: 'Want to help shape digital products? Check out the new UX Designer career path.',
|
|
51
|
+
href: '/career-paths/ux-designer'
|
|
52
|
+
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { ColorMode } from '@codecademy/gamut-styles';
|
|
2
3
|
import { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
3
4
|
import * as React from 'react';
|
|
4
5
|
import { GlobalNavRedesignContext } from '../../../GlobalHeader';
|
|
5
6
|
import { AnimatedMegaMenuDropdown } from '../../shared';
|
|
6
7
|
import { AppHeaderCatalogSection } from '../AppHeaderCatalogSection';
|
|
7
|
-
import { AppHeaderCatalogSectionVariant } from '../AppHeaderCatalogSectionVariant';
|
|
8
8
|
import { AppHeaderDropdownProvider } from '../AppHeaderDropdownProvider';
|
|
9
9
|
import { AppHeaderDropdownNavButton } from '../AppHeaderNavButton/AppHeaderDropdownNavButton';
|
|
10
10
|
import { useAppHeaderContext } from '../AppHeaderProvider';
|
|
11
|
+
import { AppHeaderSection } from '../AppHeaderSection';
|
|
12
|
+
import { CATALOG_NAV_SECTIONS } from './consts';
|
|
13
|
+
import { MarketingBanner } from './MarketingBanner';
|
|
11
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
15
|
const StyledAnimatedMegaMenuDropdown = /*#__PURE__*/_styled(AnimatedMegaMenuDropdown, {
|
|
13
16
|
target: "eaa3s9f0",
|
|
@@ -18,7 +21,7 @@ const StyledAnimatedMegaMenuDropdown = /*#__PURE__*/_styled(AnimatedMegaMenuDrop
|
|
|
18
21
|
}) => displayGlobalNavRedesign ? '-58px' : isAnon ? '-9rem' : '-14rem', ";@media (min-width: 1261px){left:", ({
|
|
19
22
|
isAnon,
|
|
20
23
|
displayGlobalNavRedesign
|
|
21
|
-
}) => displayGlobalNavRedesign ? '-152px' : isAnon ? '-9rem' : '-14rem', ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
}) => displayGlobalNavRedesign ? '-152px' : isAnon ? '-9rem' : '-14rem', ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQkUiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJDYXRhbG9nRHJvcGRvd24vaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sb3JNb2RlIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IEdsb2JhbE5hdlJlZGVzaWduQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL0dsb2JhbEhlYWRlcic7XG5pbXBvcnQge1xuICBBbmltYXRlZE1lZ2FNZW51RHJvcGRvd24sXG4gIEFwcEhlYWRlckFjdGlvbixcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IEFwcEhlYWRlckNhdGFsb2dTZWN0aW9uIH0gZnJvbSAnLi4vQXBwSGVhZGVyQ2F0YWxvZ1NlY3Rpb24nO1xuaW1wb3J0IHsgQXBwSGVhZGVyRHJvcGRvd25Qcm92aWRlciB9IGZyb20gJy4uL0FwcEhlYWRlckRyb3Bkb3duUHJvdmlkZXInO1xuaW1wb3J0IHsgQXBwSGVhZGVyRHJvcGRvd25OYXZCdXR0b24gfSBmcm9tICcuLi9BcHBIZWFkZXJOYXZCdXR0b24vQXBwSGVhZGVyRHJvcGRvd25OYXZCdXR0b24nO1xuaW1wb3J0IHsgdXNlQXBwSGVhZGVyQ29udGV4dCB9IGZyb20gJy4uL0FwcEhlYWRlclByb3ZpZGVyJztcbmltcG9ydCB7IEFwcEhlYWRlclNlY3Rpb24gfSBmcm9tICcuLi9BcHBIZWFkZXJTZWN0aW9uJztcbmltcG9ydCB7IENBVEFMT0dfTkFWX1NFQ1RJT05TIH0gZnJvbSAnLi9jb25zdHMnO1xuaW1wb3J0IHsgTWFya2V0aW5nQmFubmVyIH0gZnJvbSAnLi9NYXJrZXRpbmdCYW5uZXInO1xuXG5leHBvcnQgdHlwZSBBcHBIZWFkZXJDYXRhbG9nRHJvcGRvd25Qcm9wcyA9IEFwcEhlYWRlckFjdGlvbiAmIHtcbiAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbTtcbiAgaXNBbm9uOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQW5pbWF0ZWRNZWdhTWVudURyb3Bkb3duID0gc3R5bGVkKEFuaW1hdGVkTWVnYU1lbnVEcm9wZG93bik8e1xuICBpc0Fub246IGJvb2xlYW47XG4gIGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbjogYm9vbGVhbjtcbn0+YFxuICBsZWZ0OiAkeyh7IGlzQW5vbiwgZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduIH0pID0+XG4gICAgZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduID8gJy01OHB4JyA6IGlzQW5vbiA/ICctOXJlbScgOiAnLTE0cmVtJ307XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyNjFweCkge1xuICAgIGxlZnQ6ICR7KHsgaXNBbm9uLCBkaXNwbGF5R2xvYmFsTmF2UmVkZXNpZ24gfSkgPT5cbiAgICAgIGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA/ICctMTUycHgnIDogaXNBbm9uID8gJy05cmVtJyA6ICctMTRyZW0nfTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlckNhdGFsb2dEcm9wZG93bjogUmVhY3QuRkM8XG4gIEFwcEhlYWRlckNhdGFsb2dEcm9wZG93blByb3BzXG4+ID0gKHsgYWN0aW9uLCBpdGVtLCBpc0Fub24gfSkgPT4ge1xuICBjb25zdCB7IHRleHQgfSA9IGl0ZW07XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBidXR0b25SZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IGxhc3RPcGVuZWREcm9wZG93biwgc2V0TGFzdE9wZW5lZERyb3Bkb3duIH0gPSB1c2VBcHBIZWFkZXJDb250ZXh0KCk7XG5cbiAgY29uc3QgZm9jdXNCdXR0b24gPSAoKSA9PiB7XG4gICAgYnV0dG9uUmVmPy5jdXJyZW50Py5mb2N1cygpO1xuICB9O1xuXG4gIGNvbnN0IHRvZ2dsZUlzT3BlbiA9ICgpID0+IHNldElzT3BlbigocHJldikgPT4gIXByZXYpO1xuXG4gIGNvbnN0IGhhbmRsZU9uQ2xpY2sgPSAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHtcbiAgICB0b2dnbGVJc09wZW4oKTtcblxuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICBhY3Rpb24oZXZlbnQsIGl0ZW0pO1xuICAgICAgaWYgKHNldExhc3RPcGVuZWREcm9wZG93bikge1xuICAgICAgICBzZXRMYXN0T3BlbmVkRHJvcGRvd24odGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgZm9jdXNCdXR0b24oKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGxhc3RPcGVuZWREcm9wZG93biAhPT0gdGV4dCAmJiBpc09wZW4pIHtcbiAgICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgfVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2xhc3RPcGVuZWREcm9wZG93bl0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZnVuY3Rpb24gaGFuZGxlQ2xpY2tPdXRzaWRlKGV2ZW50OiBNb3VzZUV2ZW50IHwgRXZlbnQpIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZj8uY3VycmVudDtcbiAgICAgIGNvbnN0IGJ1dHRvbiA9IGJ1dHRvblJlZj8uY3VycmVudDtcbiAgICAgIGlmIChcbiAgICAgICAgaXNPcGVuICYmXG4gICAgICAgIGNvbnRhaW5lciAmJlxuICAgICAgICAhY29udGFpbmVyLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICBidXR0b24gJiZcbiAgICAgICAgIWJ1dHRvbi5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICkge1xuICAgICAgICBoYW5kbGVDbG9zZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICB9O1xuICB9LCBbY29udGFpbmVyUmVmLCBoYW5kbGVDbG9zZSwgaXNPcGVuXSk7XG4gIGNvbnN0IGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA9IHVzZUNvbnRleHQoR2xvYmFsTmF2UmVkZXNpZ25Db250ZXh0KTtcblxuICByZXR1cm4gKFxuICAgIDxBcHBIZWFkZXJEcm9wZG93blByb3ZpZGVyIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX0+XG4gICAgICA8QXBwSGVhZGVyRHJvcGRvd25OYXZCdXR0b25cbiAgICAgICAgYnV0dG9uUmVmPXtidXR0b25SZWZ9XG4gICAgICAgIGhhbmRsZU9uQ2xpY2s9e2hhbmRsZU9uQ2xpY2t9XG4gICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICB0aXRsZT17dGV4dH1cbiAgICAgIC8+XG4gICAgICA8U3R5bGVkQW5pbWF0ZWRNZWdhTWVudURyb3Bkb3duXG4gICAgICAgIGlzQW5vbj17aXNBbm9ufVxuICAgICAgICBkaXNwbGF5R2xvYmFsTmF2UmVkZXNpZ249e2Rpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbn1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICB0b3A6ICczLjVyZW0nLFxuICAgICAgICAgIG1pbldpZHRoOiAnNjRyZW0nLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduID8gJ3RyYW5zcGFyZW50JyA6ICcnLFxuICAgICAgICB9fVxuICAgICAgICBpbml0aWFsPXt7IGJvcmRlcldpZHRoOiAwLCBoZWlnaHQ6IDAgfX1cbiAgICAgICAgYW5pbWF0ZT17e1xuICAgICAgICAgIGJvcmRlcldpZHRoOiBpc09wZW4gPyAoZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduID8gMCA6IDEpIDogMCxcbiAgICAgICAgICBoZWlnaHQ6IGlzT3BlbiA/ICdmaXQtY29udGVudCcgOiAwLFxuICAgICAgICB9fVxuICAgICAgICB0cmFuc2l0aW9uPXt7IGR1cmF0aW9uOiAwLjE3NSB9fVxuICAgICAgICBhcmlhLWhpZGRlbj17IWlzT3Blbn1cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJjYXRhbG9nLW1lbnUtZHJvcGRvd25cIlxuICAgICAgPlxuICAgICAgICB7ZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduID8gKFxuICAgICAgICAgIDxDb2xvck1vZGUgbW9kZT1cImxpZ2h0XCI+XG4gICAgICAgICAgICA8QXBwSGVhZGVyU2VjdGlvblxuICAgICAgICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgIG5hdlNlY3Rpb25zPXtDQVRBTE9HX05BVl9TRUNUSU9OU31cbiAgICAgICAgICAgICAgTWFya2V0aW5nQmFubmVyPXtNYXJrZXRpbmdCYW5uZXJ9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sb3JNb2RlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxBcHBIZWFkZXJDYXRhbG9nU2VjdGlvblxuICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICBpdGVtPXtpdGVtfVxuICAgICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgICBpZD17YG1lbnUtY29udGFpbmVyJHtpdGVtLnRleHR9YH1cbiAgICAgICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICAgICAgaGFuZGxlQ2xvc2U9eygpID0+IHNldElzT3BlbihmYWxzZSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkQW5pbWF0ZWRNZWdhTWVudURyb3Bkb3duPlxuICAgIDwvQXBwSGVhZGVyRHJvcGRvd25Qcm92aWRlcj5cbiAgKTtcbn07XG4iXX0= */"));
|
|
22
25
|
export const AppHeaderCatalogDropdown = ({
|
|
23
26
|
action,
|
|
24
27
|
item,
|
|
@@ -101,11 +104,14 @@ export const AppHeaderCatalogDropdown = ({
|
|
|
101
104
|
},
|
|
102
105
|
"aria-hidden": !isOpen,
|
|
103
106
|
"data-testid": "catalog-menu-dropdown",
|
|
104
|
-
children: displayGlobalNavRedesign ? /*#__PURE__*/_jsx(
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
children: displayGlobalNavRedesign ? /*#__PURE__*/_jsx(ColorMode, {
|
|
108
|
+
mode: "light",
|
|
109
|
+
children: /*#__PURE__*/_jsx(AppHeaderSection, {
|
|
110
|
+
isOpen: isOpen,
|
|
111
|
+
ref: containerRef,
|
|
112
|
+
navSections: CATALOG_NAV_SECTIONS,
|
|
113
|
+
MarketingBanner: MarketingBanner
|
|
114
|
+
})
|
|
109
115
|
}) : /*#__PURE__*/_jsx(AppHeaderCatalogSection, {
|
|
110
116
|
action: action,
|
|
111
117
|
item: item,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CourseDifficulty } from '../../../ContentGroupBaseCard/types';
|
|
2
|
+
type AppHeaderDietCardProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
hours: number;
|
|
5
|
+
icon: React.ReactNode;
|
|
6
|
+
difficulty: CourseDifficulty;
|
|
7
|
+
tabIndex: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const AppHeaderDietCard: ({ title, hours, icon, difficulty, }: AppHeaderDietCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Box, Card, FlexBox, Text } from '@codecademy/gamut';
|
|
3
|
+
import { CheckerDense } from '@codecademy/gamut-patterns';
|
|
4
|
+
import { css } from '@codecademy/gamut-styles';
|
|
5
|
+
import { CourseDifficulty } from '../../../ContentGroupBaseCard/types';
|
|
6
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const StyledCard = /*#__PURE__*/_styled(Card, {
|
|
8
|
+
target: "e1d52gk01",
|
|
9
|
+
label: "StyledCard"
|
|
10
|
+
})("&:hover{border-color:", ({
|
|
11
|
+
theme
|
|
12
|
+
}) => theme.colors.black, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyRGlldENhcmQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU8rQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckRpZXRDYXJkL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgQ2FyZCwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IENoZWNrZXJEZW5zZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXBhdHRlcm5zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IENvdXJzZURpZmZpY3VsdHkgfSBmcm9tICcuLi8uLi8uLi9Db250ZW50R3JvdXBCYXNlQ2FyZC90eXBlcyc7XG5cbmNvbnN0IFN0eWxlZENhcmQgPSBzdHlsZWQoQ2FyZClgXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuYmxhY2t9O1xuICB9XG5gO1xuXG5jb25zdCBEb3R0ZWRMaW5lID0gc3R5bGVkKENoZWNrZXJEZW5zZSkoXG4gIGNzcyh7XG4gICAgaGVpZ2h0OiAnMXB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbWFyZ2luVG9wOiAnLTFweCcsXG4gIH0pXG4pO1xuXG50eXBlIEFwcEhlYWRlckRpZXRDYXJkUHJvcHMgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGhvdXJzOiBudW1iZXI7XG4gIGljb246IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZGlmZmljdWx0eTogQ291cnNlRGlmZmljdWx0eTtcbiAgdGFiSW5kZXg6IG51bWJlcjsgLy8gdG8gYmUgdXNlZCB3aGVuIHdlIGFkZCBsaW5rc1xufTtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlckRpZXRDYXJkID0gKHtcbiAgdGl0bGUsXG4gIGhvdXJzLFxuICBpY29uLFxuICBkaWZmaWN1bHR5LFxufTogQXBwSGVhZGVyRGlldENhcmRQcm9wcykgPT4ge1xuICBjb25zdCBpc0JlZ2lubmVyQ29udGFpbmVyID0gZGlmZmljdWx0eSA9PT0gQ291cnNlRGlmZmljdWx0eS5CZWdpbm5lcjtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDYXJkXG4gICAgICBib3JkZXJSYWRpdXM9XCJtZFwiXG4gICAgICBib3JkZXJDb2xvcj1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICBtaW5IZWlnaHQ9ezEyMH1cbiAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgIHB4PXsxMn1cbiAgICAgIHB5PXs4fVxuICAgICAgaXNJbnRlcmFjdGl2ZVxuICAgID5cbiAgICAgIDxUZXh0IGFzPVwiaDNcIiB2YXJpYW50PVwidGl0bGUteHNcIj5cbiAgICAgICAge3RpdGxlfVxuICAgICAgPC9UZXh0PlxuXG4gICAgICA8Qm94PlxuICAgICAgICA8Qm94IHB5PXs0fSBoZWlnaHQ9ezB9IHBvc2l0aW9uPVwicmVsYXRpdmVcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICA8RG90dGVkTGluZSBjb2xvcj1cImJvcmRlci10ZXJ0aWFyeVwiIC8+XG4gICAgICAgIDwvQm94PlxuICAgICAgICA8RmxleEJveCBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXs4fT5cbiAgICAgICAgICAgIHtpY29ufVxuICAgICAgICAgICAgPFRleHQgc2NyZWVucmVhZGVyPntgJHtkaWZmaWN1bHR5fSR7XG4gICAgICAgICAgICAgIGlzQmVnaW5uZXJDb250YWluZXIgPyAnIEZyaWVuZGx5JyA6ICcnXG4gICAgICAgICAgICB9LmB9PC9UZXh0PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgdmFyaWFudD1cInAtc21hbGxcIlxuICAgICAgICAgICAgICBjb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgcGw9ezh9XG4gICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJub3dyYXBcIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNhcmQtZGlmZmljdWx0eVwiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxiPntkaWZmaWN1bHR5fTwvYj5cbiAgICAgICAgICAgICAge2lzQmVnaW5uZXJDb250YWluZXIgJiYgPD4gRnJpZW5kbHk8Lz59XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxiPntob3Vyc308L2I+IGhvdXJzXG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICA8L0JveD5cbiAgICA8L1N0eWxlZENhcmQ+XG4gICk7XG59O1xuIl19 */"));
|
|
13
|
+
const DottedLine = /*#__PURE__*/_styled(CheckerDense, {
|
|
14
|
+
target: "e1d52gk00",
|
|
15
|
+
label: "DottedLine"
|
|
16
|
+
})(css({
|
|
17
|
+
height: '1px',
|
|
18
|
+
display: 'flex',
|
|
19
|
+
position: 'absolute',
|
|
20
|
+
marginTop: '-1px'
|
|
21
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyRGlldENhcmQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFtQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckRpZXRDYXJkL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgQ2FyZCwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IENoZWNrZXJEZW5zZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXBhdHRlcm5zJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IENvdXJzZURpZmZpY3VsdHkgfSBmcm9tICcuLi8uLi8uLi9Db250ZW50R3JvdXBCYXNlQ2FyZC90eXBlcyc7XG5cbmNvbnN0IFN0eWxlZENhcmQgPSBzdHlsZWQoQ2FyZClgXG4gICY6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMuYmxhY2t9O1xuICB9XG5gO1xuXG5jb25zdCBEb3R0ZWRMaW5lID0gc3R5bGVkKENoZWNrZXJEZW5zZSkoXG4gIGNzcyh7XG4gICAgaGVpZ2h0OiAnMXB4JyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgbWFyZ2luVG9wOiAnLTFweCcsXG4gIH0pXG4pO1xuXG50eXBlIEFwcEhlYWRlckRpZXRDYXJkUHJvcHMgPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGhvdXJzOiBudW1iZXI7XG4gIGljb246IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZGlmZmljdWx0eTogQ291cnNlRGlmZmljdWx0eTtcbiAgdGFiSW5kZXg6IG51bWJlcjsgLy8gdG8gYmUgdXNlZCB3aGVuIHdlIGFkZCBsaW5rc1xufTtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlckRpZXRDYXJkID0gKHtcbiAgdGl0bGUsXG4gIGhvdXJzLFxuICBpY29uLFxuICBkaWZmaWN1bHR5LFxufTogQXBwSGVhZGVyRGlldENhcmRQcm9wcykgPT4ge1xuICBjb25zdCBpc0JlZ2lubmVyQ29udGFpbmVyID0gZGlmZmljdWx0eSA9PT0gQ291cnNlRGlmZmljdWx0eS5CZWdpbm5lcjtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDYXJkXG4gICAgICBib3JkZXJSYWRpdXM9XCJtZFwiXG4gICAgICBib3JkZXJDb2xvcj1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICBtaW5IZWlnaHQ9ezEyMH1cbiAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCJcbiAgICAgIHB4PXsxMn1cbiAgICAgIHB5PXs4fVxuICAgICAgaXNJbnRlcmFjdGl2ZVxuICAgID5cbiAgICAgIDxUZXh0IGFzPVwiaDNcIiB2YXJpYW50PVwidGl0bGUteHNcIj5cbiAgICAgICAge3RpdGxlfVxuICAgICAgPC9UZXh0PlxuXG4gICAgICA8Qm94PlxuICAgICAgICA8Qm94IHB5PXs0fSBoZWlnaHQ9ezB9IHBvc2l0aW9uPVwicmVsYXRpdmVcIiBhcmlhLWhpZGRlbj5cbiAgICAgICAgICA8RG90dGVkTGluZSBjb2xvcj1cImJvcmRlci10ZXJ0aWFyeVwiIC8+XG4gICAgICAgIDwvQm94PlxuICAgICAgICA8RmxleEJveCBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIj5cbiAgICAgICAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXs4fT5cbiAgICAgICAgICAgIHtpY29ufVxuICAgICAgICAgICAgPFRleHQgc2NyZWVucmVhZGVyPntgJHtkaWZmaWN1bHR5fSR7XG4gICAgICAgICAgICAgIGlzQmVnaW5uZXJDb250YWluZXIgPyAnIEZyaWVuZGx5JyA6ICcnXG4gICAgICAgICAgICB9LmB9PC9UZXh0PlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgdmFyaWFudD1cInAtc21hbGxcIlxuICAgICAgICAgICAgICBjb2xvcj1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgICAgcGw9ezh9XG4gICAgICAgICAgICAgIHdoaXRlU3BhY2U9XCJub3dyYXBcIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImNhcmQtZGlmZmljdWx0eVwiXG4gICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxiPntkaWZmaWN1bHR5fTwvYj5cbiAgICAgICAgICAgICAge2lzQmVnaW5uZXJDb250YWluZXIgJiYgPD4gRnJpZW5kbHk8Lz59XG4gICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgIDxUZXh0IGNvbG9yPVwidGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxiPntob3Vyc308L2I+IGhvdXJzXG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICA8L0JveD5cbiAgICA8L1N0eWxlZENhcmQ+XG4gICk7XG59O1xuIl19 */");
|
|
22
|
+
export const AppHeaderDietCard = ({
|
|
23
|
+
title,
|
|
24
|
+
hours,
|
|
25
|
+
icon,
|
|
26
|
+
difficulty
|
|
27
|
+
}) => {
|
|
28
|
+
const isBeginnerContainer = difficulty === CourseDifficulty.Beginner;
|
|
29
|
+
return /*#__PURE__*/_jsxs(StyledCard, {
|
|
30
|
+
borderRadius: "md",
|
|
31
|
+
borderColor: "border-tertiary",
|
|
32
|
+
minHeight: 120,
|
|
33
|
+
display: "flex",
|
|
34
|
+
flexDirection: "column",
|
|
35
|
+
justifyContent: "space-between",
|
|
36
|
+
px: 12,
|
|
37
|
+
py: 8,
|
|
38
|
+
isInteractive: true,
|
|
39
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
40
|
+
as: "h3",
|
|
41
|
+
variant: "title-xs",
|
|
42
|
+
children: title
|
|
43
|
+
}), /*#__PURE__*/_jsxs(Box, {
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
45
|
+
py: 4,
|
|
46
|
+
height: 0,
|
|
47
|
+
position: "relative",
|
|
48
|
+
"aria-hidden": true,
|
|
49
|
+
children: /*#__PURE__*/_jsx(DottedLine, {
|
|
50
|
+
color: "border-tertiary"
|
|
51
|
+
})
|
|
52
|
+
}), /*#__PURE__*/_jsxs(FlexBox, {
|
|
53
|
+
justifyContent: "space-between",
|
|
54
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
55
|
+
alignItems: "center",
|
|
56
|
+
gap: 8,
|
|
57
|
+
children: [icon, /*#__PURE__*/_jsx(Text, {
|
|
58
|
+
screenreader: true,
|
|
59
|
+
children: `${difficulty}${isBeginnerContainer ? ' Friendly' : ''}.`
|
|
60
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
61
|
+
variant: "p-small",
|
|
62
|
+
color: "text-secondary",
|
|
63
|
+
pl: 8,
|
|
64
|
+
whiteSpace: "nowrap",
|
|
65
|
+
"data-testid": "card-difficulty",
|
|
66
|
+
"aria-hidden": true,
|
|
67
|
+
children: [/*#__PURE__*/_jsx("b", {
|
|
68
|
+
children: difficulty
|
|
69
|
+
}), isBeginnerContainer && /*#__PURE__*/_jsx(_Fragment, {
|
|
70
|
+
children: " Friendly"
|
|
71
|
+
})]
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
74
|
+
color: "text-secondary",
|
|
75
|
+
children: [/*#__PURE__*/_jsx("b", {
|
|
76
|
+
children: hours
|
|
77
|
+
}), " hours"]
|
|
78
|
+
})]
|
|
79
|
+
})]
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
};
|
|
@@ -3,6 +3,7 @@ import { AnchorRefItemType } from '../../shared';
|
|
|
3
3
|
export interface AppHeaderDropdownContextType {
|
|
4
4
|
firstItemRef?: AnchorRefItemType;
|
|
5
5
|
setFirstItemRef: Dispatch<SetStateAction<AnchorRefItemType>> | undefined;
|
|
6
|
+
handleClose: () => void;
|
|
6
7
|
}
|
|
7
8
|
export declare const AppHeaderDropdownContext: React.Context<AppHeaderDropdownContextType>;
|
|
8
9
|
export declare const AppHeaderDropdownProvider: React.FC<{
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { Box } from '@codecademy/gamut';
|
|
2
|
+
import noop from 'lodash/fp/noop';
|
|
2
3
|
import React, { createContext, useContext, useState } from 'react';
|
|
3
4
|
import { useOnEscHandler } from '../../shared';
|
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
6
|
export const AppHeaderDropdownContext = /*#__PURE__*/createContext({
|
|
6
7
|
firstItemRef: undefined,
|
|
7
|
-
setFirstItemRef: undefined
|
|
8
|
+
setFirstItemRef: undefined,
|
|
9
|
+
handleClose: () => noop
|
|
8
10
|
});
|
|
9
11
|
export const AppHeaderDropdownProvider = ({
|
|
10
12
|
children,
|
|
@@ -15,7 +17,8 @@ export const AppHeaderDropdownProvider = ({
|
|
|
15
17
|
return /*#__PURE__*/_jsx(AppHeaderDropdownContext.Provider, {
|
|
16
18
|
value: {
|
|
17
19
|
firstItemRef,
|
|
18
|
-
setFirstItemRef
|
|
20
|
+
setFirstItemRef,
|
|
21
|
+
handleClose
|
|
19
22
|
},
|
|
20
23
|
children: /*#__PURE__*/_jsx(Box, {
|
|
21
24
|
onKeyDown: onKeyDown,
|