@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.
Files changed (57) hide show
  1. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.d.ts +3 -0
  2. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +83 -0
  3. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +10 -0
  4. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +232 -0
  5. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +13 -0
  6. package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/consts.js +17 -4
  7. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +13 -7
  8. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.d.ts +10 -0
  9. package/dist/AppHeader/AppHeaderElements/AppHeaderDietCard/index.js +82 -0
  10. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.d.ts +1 -0
  11. package/dist/AppHeader/AppHeaderElements/AppHeaderDropdownProvider/index.js +5 -2
  12. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +4 -0
  13. package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +52 -0
  14. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +11 -0
  15. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +140 -0
  16. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +18 -0
  17. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +273 -0
  18. package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +31 -5
  19. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSection.test.js +83 -0
  20. package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderSection}/NavSection.d.ts +2 -2
  21. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavSection.js +79 -0
  22. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.d.ts +10 -0
  23. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/PanelLayout.js +54 -0
  24. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +17 -0
  25. package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +86 -0
  26. package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/NavSection.d.ts +15 -0
  27. package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/NavSection.js +79 -0
  28. package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.d.ts +4 -0
  29. package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.js +63 -0
  30. package/dist/AppHeaderMobile/AppHeaderMainMenuMobile/index.js +34 -14
  31. package/dist/AppHeaderMobile/AppHeaderSubMenuMobile/index.js +12 -5
  32. package/dist/GlobalHeader/GlobalHeaderItems.d.ts +2 -0
  33. package/dist/GlobalHeader/GlobalHeaderItems.js +18 -1
  34. package/dist/GlobalHeader/GlobalHeaderVariants.d.ts +2 -2
  35. package/dist/GlobalHeader/GlobalHeaderVariants.js +39 -17
  36. package/dist/GlobalHeader/index.d.ts +1 -0
  37. package/dist/GlobalHeader/index.js +46 -42
  38. package/dist/GlobalHeader/types.d.ts +33 -0
  39. package/dist/LearningOutcomeCard/index.js +3 -3
  40. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.d.ts +2 -1
  41. package/dist/LearningOutcomeFlyout/LearningOutcomeCardList.js +26 -7
  42. package/dist/LearningOutcomeFlyout/index.d.ts +5 -47
  43. package/dist/LearningOutcomeFlyout/index.js +32 -21
  44. package/dist/LearningOutcomeFlyout/types.d.ts +49 -0
  45. package/dist/LearningOutcomeFlyout/types.js +5 -0
  46. package/dist/index.d.ts +0 -1
  47. package/dist/index.js +0 -1
  48. package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +8 -4
  49. package/package.json +1 -1
  50. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.d.ts +0 -4
  51. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.js +0 -98
  52. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.js +0 -67
  53. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.d.ts +0 -7
  54. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.d.ts +0 -11
  55. package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.js +0 -68
  56. package/dist/CourseRecommendationsLink/index.d.ts +0 -3
  57. 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 { login, signUp } from '../../GlobalHeader/GlobalHeaderItems';
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__*/_jsxs("div", {
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: [/*#__PURE__*/_jsx(FillButton, {
98
- "data-testid": signUp.dataTestId,
99
- href: signUp.href,
100
- onClick: event => action(event, signUp),
101
- children: signUp.text
102
- }, signUp.id), /*#__PURE__*/_jsx(TextButton, {
103
- "data-testid": login.dataTestId,
104
- href: login.href,
105
- onClick: event => action(event, login),
106
- children: login.text
107
- }, login.id)]
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
  });