@codecademy/brand 3.8.0-alpha.bbe6a143bc.0 → 3.8.0-alpha.bdbfac4885.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/NavPanels.d.ts +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +104 -42
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +6 -3
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js +50 -129
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +7 -10
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +28 -9
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +56 -74
- package/package.json +1 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.d.ts +0 -6
- package/dist/AppHeader/AppHeaderElements/AppHeaderSkillTile/index.js +0 -62
|
@@ -5,5 +5,6 @@ export declare const DietCardGrid: ({ children }: {
|
|
|
5
5
|
export declare const CareerPathCard: () => import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare const CareerPathsPanel: () => import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export declare const SkillPathsPanel: () => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const getCertificationProviderLogoUrl: (fileName: string) => string;
|
|
8
9
|
export declare const CertificationPathsPanel: () => import("react/jsx-runtime").JSX.Element;
|
|
9
10
|
export declare const LiveLearningPanel: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
1
2
|
/* eslint-disable react/no-array-index-key */ // can be removed once we add dynamic data
|
|
2
3
|
import { Anchor, Box, Card, FlexBox, GridBox, Text } from '@codecademy/gamut';
|
|
3
4
|
import { LevelIcon } from '@codecademy/gamut-icons';
|
|
4
5
|
import { theme } from '@codecademy/gamut-styles';
|
|
5
6
|
import { CourseDifficulty } from '../../../ContentGroupBaseCard/types';
|
|
6
7
|
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
7
|
-
import { liveLearningHubItems } from '../../../lib/catalogList';
|
|
8
|
+
import { liveLearningHubItems, topLanguages } from '../../../lib/catalogList';
|
|
8
9
|
import { AppHeaderDietCard } from '../AppHeaderDietCard';
|
|
9
10
|
import { useAppHeaderSectionContext } from '../AppHeaderSection/AppHeaderSectionContext';
|
|
10
11
|
import { PanelLayout } from '../AppHeaderSection/PanelLayout';
|
|
11
|
-
import {
|
|
12
|
-
import { popularLanguages, popularSubjects } from './consts';
|
|
12
|
+
import { CERTIFICATION_PROVIDERS } from './consts';
|
|
13
13
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
14
|
export const CourseTopicsPanel = () => {
|
|
15
15
|
const {
|
|
@@ -31,7 +31,7 @@ export const CourseTopicsPanel = () => {
|
|
|
31
31
|
children: "Take the quiz"
|
|
32
32
|
})]
|
|
33
33
|
});
|
|
34
|
-
return /*#__PURE__*/
|
|
34
|
+
return /*#__PURE__*/_jsx(PanelLayout, {
|
|
35
35
|
heading: "Course topics",
|
|
36
36
|
description: description,
|
|
37
37
|
linkItem: {
|
|
@@ -41,31 +41,7 @@ export const CourseTopicsPanel = () => {
|
|
|
41
41
|
trackingTarget: 'catalog-header-view-all-courses',
|
|
42
42
|
id: 'view-all-courses'
|
|
43
43
|
},
|
|
44
|
-
children:
|
|
45
|
-
variant: "p-large",
|
|
46
|
-
fontWeight: 700,
|
|
47
|
-
as: "h3",
|
|
48
|
-
children: "Popular languages"
|
|
49
|
-
}), /*#__PURE__*/_jsx(GridBox, {
|
|
50
|
-
gridTemplateColumns: {
|
|
51
|
-
_: '1fr',
|
|
52
|
-
xs: '1fr 1fr',
|
|
53
|
-
md: '1fr 1fr 1fr'
|
|
54
|
-
},
|
|
55
|
-
gap: 8,
|
|
56
|
-
pl: 0,
|
|
57
|
-
as: "ul",
|
|
58
|
-
listStyle: "none",
|
|
59
|
-
mb: 24,
|
|
60
|
-
children: popularLanguages.map(item => /*#__PURE__*/_jsx(SkillTile, {
|
|
61
|
-
item: item
|
|
62
|
-
}, item.id))
|
|
63
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
64
|
-
variant: "p-large",
|
|
65
|
-
fontWeight: 700,
|
|
66
|
-
as: "h3",
|
|
67
|
-
children: "Popular subjects"
|
|
68
|
-
}), /*#__PURE__*/_jsx(GridBox, {
|
|
44
|
+
children: /*#__PURE__*/_jsx(GridBox, {
|
|
69
45
|
gridTemplateColumns: {
|
|
70
46
|
_: '1fr',
|
|
71
47
|
xs: '1fr 1fr',
|
|
@@ -75,10 +51,23 @@ export const CourseTopicsPanel = () => {
|
|
|
75
51
|
pl: 0,
|
|
76
52
|
as: "ul",
|
|
77
53
|
listStyle: "none",
|
|
78
|
-
children:
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
54
|
+
children: topLanguages.map(item => /*#__PURE__*/_jsx(Anchor, {
|
|
55
|
+
variant: "interface",
|
|
56
|
+
href: item.href,
|
|
57
|
+
onClick: event => globalHeaderItemClick(event, item),
|
|
58
|
+
tabIndex: tabIndex,
|
|
59
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
60
|
+
height: 48,
|
|
61
|
+
px: 16,
|
|
62
|
+
py: 8,
|
|
63
|
+
borderRadius: "md",
|
|
64
|
+
border: 1,
|
|
65
|
+
borderColor: "border-tertiary",
|
|
66
|
+
alignItems: "center",
|
|
67
|
+
children: [item.text, item.badge]
|
|
68
|
+
}, `${item.id}`)
|
|
69
|
+
}, `${item.id}`))
|
|
70
|
+
})
|
|
82
71
|
});
|
|
83
72
|
};
|
|
84
73
|
export const DietCardGrid = ({
|
|
@@ -142,22 +131,95 @@ export const SkillPathsPanel = () => {
|
|
|
142
131
|
})
|
|
143
132
|
});
|
|
144
133
|
};
|
|
134
|
+
export const getCertificationProviderLogoUrl = fileName => `https://static-assets.codecademy.com/assets/certification-provider-logos/catalog-dropdown/v1/${fileName}`;
|
|
135
|
+
const Image = Box.withComponent('img', {
|
|
136
|
+
target: "eqfnvo1",
|
|
137
|
+
label: "Image"
|
|
138
|
+
});
|
|
139
|
+
const GrayscaleToColorHoverCard = /*#__PURE__*/_styled(Card, {
|
|
140
|
+
target: "eqfnvo0",
|
|
141
|
+
label: "GrayscaleToColorHoverCard"
|
|
142
|
+
})("filter:grayscale(1);img{filter:", ({
|
|
143
|
+
overrideImgFilters
|
|
144
|
+
}) => overrideImgFilters ? 'contrast(5)' : 'brightness(0.25)', ";}transition:filter 0.2s ease-in-out;&:hover,a:focus &{filter:grayscale(0);img{filter:brightness(1);}}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL05hdlBhbmVscy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0tFIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duL05hdlBhbmVscy50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXkgKi8gLy8gY2FuIGJlIHJlbW92ZWQgb25jZSB3ZSBhZGQgZHluYW1pYyBkYXRhXG5pbXBvcnQgeyBBbmNob3IsIEJveCwgQ2FyZCwgRmxleEJveCwgR3JpZEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IExldmVsSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQ291cnNlRGlmZmljdWx0eSB9IGZyb20gJy4uLy4uLy4uL0NvbnRlbnRHcm91cEJhc2VDYXJkL3R5cGVzJztcbmltcG9ydCB7IHVzZUdsb2JhbEhlYWRlckl0ZW1DbGljayB9IGZyb20gJy4uLy4uLy4uL0dsb2JhbEhlYWRlci9jb250ZXh0JztcbmltcG9ydCB7IGxpdmVMZWFybmluZ0h1Ykl0ZW1zLCB0b3BMYW5ndWFnZXMgfSBmcm9tICcuLi8uLi8uLi9saWIvY2F0YWxvZ0xpc3QnO1xuaW1wb3J0IHsgQXBwSGVhZGVyRGlldENhcmQgfSBmcm9tICcuLi9BcHBIZWFkZXJEaWV0Q2FyZCc7XG5pbXBvcnQgeyB1c2VBcHBIZWFkZXJTZWN0aW9uQ29udGV4dCB9IGZyb20gJy4uL0FwcEhlYWRlclNlY3Rpb24vQXBwSGVhZGVyU2VjdGlvbkNvbnRleHQnO1xuaW1wb3J0IHsgUGFuZWxMYXlvdXQgfSBmcm9tICcuLi9BcHBIZWFkZXJTZWN0aW9uL1BhbmVsTGF5b3V0JztcbmltcG9ydCB7IENFUlRJRklDQVRJT05fUFJPVklERVJTIH0gZnJvbSAnLi9jb25zdHMnO1xuXG5leHBvcnQgY29uc3QgQ291cnNlVG9waWNzUGFuZWwgPSAoKSA9PiB7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gPSB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2soKTtcbiAgY29uc3QgeyB0YWJJbmRleCB9ID0gdXNlQXBwSGVhZGVyU2VjdGlvbkNvbnRleHQoKTtcblxuICBjb25zdCBkZXNjcmlwdGlvbiA9IChcbiAgICA8PlxuICAgICAgRXhwbG9yZSBmcmVlIG9yIHBhaWQgY291cnNlcyBpbiBhIHdpZGUgdmFyaWV0eSBvZiB0b3BpY3MuIFdpdGggc29tZXRoaW5nXG4gICAgICBmb3IgZXZlcnkgc2tpbGwgbGV2ZWwsIGl0JmFwb3M7cyBlYXN5IHRvIGZpbmQgYSBjb3Vyc2UgdGhhdCBmaXRzIHlvdXJcbiAgICAgIGdvYWxzLiBOb3Qgc3VyZSB3aGVyZSB0byBzdGFydD8gJm5ic3A7XG4gICAgICA8QW5jaG9yXG4gICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgaHJlZj1cIi93ZWxjb21lL2ZpbmQtYS1jb3Vyc2VcIlxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PlxuICAgICAgICAgIGdsb2JhbEhlYWRlckl0ZW1DbGljayhldmVudCwge1xuICAgICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgICAgaHJlZjogJy93ZWxjb21lL2ZpbmQtYS1jb3Vyc2UnLFxuICAgICAgICAgICAgdGV4dDogJ1Rha2UgdGhlIHF1aXonLFxuICAgICAgICAgICAgaWQ6ICd0YWtlLXRoZS1xdWl6JyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIFRha2UgdGhlIHF1aXpcbiAgICAgIDwvQW5jaG9yPlxuICAgIDwvPlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFBhbmVsTGF5b3V0XG4gICAgICBoZWFkaW5nPVwiQ291cnNlIHRvcGljc1wiXG4gICAgICBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb259XG4gICAgICBsaW5rSXRlbT17e1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIGhyZWY6ICcvY2F0YWxvZz90eXBlPWNvdXJzZScsXG4gICAgICAgIHRleHQ6ICdWaWV3IGFsbCBjb3Vyc2VzJyxcbiAgICAgICAgdHJhY2tpbmdUYXJnZXQ6ICdjYXRhbG9nLWhlYWRlci12aWV3LWFsbC1jb3Vyc2VzJyxcbiAgICAgICAgaWQ6ICd2aWV3LWFsbC1jb3Vyc2VzJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEdyaWRCb3hcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucz17eyBfOiAnMWZyJywgeHM6ICcxZnIgMWZyJywgbWQ6ICcxZnIgMWZyIDFmcicgfX1cbiAgICAgICAgZ2FwPXs4fVxuICAgICAgICBwbD17MH1cbiAgICAgICAgYXM9XCJ1bFwiXG4gICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgPlxuICAgICAgICB7dG9wTGFuZ3VhZ2VzLm1hcCgoaXRlbSkgPT4gKFxuICAgICAgICAgIDxBbmNob3JcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxuICAgICAgICAgICAgb25DbGljaz17KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50LCBNb3VzZUV2ZW50PikgPT5cbiAgICAgICAgICAgICAgZ2xvYmFsSGVhZGVySXRlbUNsaWNrKGV2ZW50LCBpdGVtKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFiSW5kZXg9e3RhYkluZGV4fVxuICAgICAgICAgICAga2V5PXtgJHtpdGVtLmlkfWB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICAgICAgaGVpZ2h0PXs0OH1cbiAgICAgICAgICAgICAgcHg9ezE2fVxuICAgICAgICAgICAgICBweT17OH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwibWRcIlxuICAgICAgICAgICAgICBib3JkZXI9ezF9XG4gICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAgICAgIGtleT17YCR7aXRlbS5pZH1gfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aXRlbS50ZXh0fVxuICAgICAgICAgICAgICB7aXRlbS5iYWRnZX1cbiAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICA8L0FuY2hvcj5cbiAgICAgICAgKSl9XG4gICAgICA8L0dyaWRCb3g+XG4gICAgPC9QYW5lbExheW91dD5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBEaWV0Q2FyZEdyaWQgPSAoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxHcmlkQm94XG4gICAgICBncmlkVGVtcGxhdGVDb2x1bW5zPXt7IF86ICcxZnInLCBzbTogJzFmciAxZnInLCBtZDogJ3JlcGVhdCgzLCAxZnIpJyB9fVxuICAgICAgZ2FwPXsxNn1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9HcmlkQm94PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IENhcmVlclBhdGhDYXJkID0gKCkgPT4ge1xuICBjb25zdCB7IHRhYkluZGV4IH0gPSB1c2VBcHBIZWFkZXJTZWN0aW9uQ29udGV4dCgpO1xuICByZXR1cm4gKFxuICAgIDxBcHBIZWFkZXJEaWV0Q2FyZFxuICAgICAgdGl0bGU9XCJGdWxsLVN0YWNrIEVuZ2luZWVyXCJcbiAgICAgIGhvdXJzPXsxNTB9XG4gICAgICBpY29uPXs8TGV2ZWxJY29uIC8+fVxuICAgICAgZGlmZmljdWx0eT17Q291cnNlRGlmZmljdWx0eS5CZWdpbm5lcn1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAvPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IENhcmVlclBhdGhzUGFuZWwgPSAoKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFBhbmVsTGF5b3V0XG4gICAgICBoZWFkaW5nPVwiUG9wdWxhciBjYXJlZXIgcGF0aHNcIlxuICAgICAgZGVzY3JpcHRpb249XCJDaG9vc2UgeW91ciBjYXJlZXIgYW5kIHdlJ2xsIHRlYWNoIHlvdSB0aGUgc2tpbGxzIHRvIGdldCBqb2ItcmVhZHkuIEVhY2ggQ2FyZWVyIFBhdGggY29udGFpbnMgYSBjdXJhdGVkIGxpc3Qgb2YgbGVzc29ucywgcXVpenplcywgdmlkZW9zLCBhbmQgcHJvamVjdHMgdG8gaGVscCB5b3UgbGVhcm4gYW5kIHByYWN0aWNlIHJlYWwtd29ybGQgc2tpbGxzLlwiXG4gICAgICBsaW5rSXRlbT17e1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIGhyZWY6ICcvY2F0YWxvZz90eXBlPWNhcmVlci1wYXRoJyxcbiAgICAgICAgdGV4dDogJ1ZpZXcgYWxsIGNhcmVlciBwYXRocycsXG4gICAgICAgIHRyYWNraW5nVGFyZ2V0OiAnY2F0YWxvZy1oZWFkZXItdmlldy1hbGwtY2FyZWVyLXBhdGhzJyxcbiAgICAgICAgaWQ6ICd2aWV3LWFsbC1jYXJlZXItcGF0aHMnLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8RGlldENhcmRHcmlkPlxuICAgICAgICB7QXJyYXkuZnJvbSh7IGxlbmd0aDogNiB9KS5tYXAoKF8sIGluZGV4KSA9PiAoXG4gICAgICAgICAgPENhcmVlclBhdGhDYXJkIGtleT17YCR7aW5kZXh9LWNhcmRgfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvRGlldENhcmRHcmlkPlxuICAgIDwvUGFuZWxMYXlvdXQ+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgU2tpbGxQYXRoc1BhbmVsID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxQYW5lbExheW91dFxuICAgICAgaGVhZGluZz1cIlNraWxsIHBhdGhzXCJcbiAgICAgIGRlc2NyaXB0aW9uPVwiQnVpbGQgYSBzcGVjaWZpYyBza2lsbCBmYXN0IHdpdGggYSBzaG9ydCwgY3VyYXRlZCBwYXRoLlwiXG4gICAgICBsaW5rSXRlbT17e1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIGhyZWY6ICcvY2F0YWxvZz90eXBlPXNraWxsLXBhdGgnLFxuICAgICAgICB0ZXh0OiAnVmlldyBhbGwgc2tpbGwgcGF0aHMnLFxuICAgICAgICB0cmFja2luZ1RhcmdldDogJ2NhdGFsb2ctaGVhZGVyLXZpZXctYWxsLXNraWxsLXBhdGhzJyxcbiAgICAgICAgaWQ6ICd2aWV3LWFsbC1za2lsbC1wYXRocycsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxEaWV0Q2FyZEdyaWQ+XG4gICAgICAgIHtBcnJheS5mcm9tKHsgbGVuZ3RoOiA2IH0pLm1hcCgoXywgaW5kZXgpID0+IChcbiAgICAgICAgICA8Q2FyZWVyUGF0aENhcmQga2V5PXtgJHtpbmRleH0tY2FyZGB9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9EaWV0Q2FyZEdyaWQ+XG4gICAgPC9QYW5lbExheW91dD5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDZXJ0aWZpY2F0aW9uUHJvdmlkZXJMb2dvVXJsID0gKGZpbGVOYW1lOiBzdHJpbmcpID0+XG4gIGBodHRwczovL3N0YXRpYy1hc3NldHMuY29kZWNhZGVteS5jb20vYXNzZXRzL2NlcnRpZmljYXRpb24tcHJvdmlkZXItbG9nb3MvY2F0YWxvZy1kcm9wZG93bi92MS8ke2ZpbGVOYW1lfWA7XG5cbmNvbnN0IEltYWdlID0gQm94LndpdGhDb21wb25lbnQoJ2ltZycpO1xuXG5jb25zdCBHcmF5c2NhbGVUb0NvbG9ySG92ZXJDYXJkID0gc3R5bGVkKENhcmQpPHtcbiAgb3ZlcnJpZGVJbWdGaWx0ZXJzPzogYm9vbGVhbjtcbn0+YFxuICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgaW1nIHtcbiAgICBmaWx0ZXI6ICR7KHsgb3ZlcnJpZGVJbWdGaWx0ZXJzIH0pID0+XG4gICAgICBvdmVycmlkZUltZ0ZpbHRlcnMgPyAnY29udHJhc3QoNSknIDogJ2JyaWdodG5lc3MoMC4yNSknfTtcbiAgfVxuICB0cmFuc2l0aW9uOiBmaWx0ZXIgMC4ycyBlYXNlLWluLW91dDtcbiAgJjpob3ZlcixcbiAgYTpmb2N1cyAmIHtcbiAgICBmaWx0ZXI6IGdyYXlzY2FsZSgwKTtcbiAgICBpbWcge1xuICAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDEpO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgUHJvdmlkZXJDaGlwID0gKHtcbiAgbmFtZSxcbiAgaHJlZixcbiAgaW1nU3JjLFxuICB0YWJJbmRleCxcbn06IHtcbiAgbmFtZTogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIGltZ1NyYzogc3RyaW5nO1xuICB0YWJJbmRleDogbnVtYmVyO1xufSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxBbmNob3JcbiAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICB2YXJpYW50PVwiaW50ZXJmYWNlXCJcbiAgICAgIGtleT17bmFtZX1cbiAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICBoZWlnaHQ9XCIxMDAlXCJcbiAgICAgIGRpc3BsYXk9XCJibG9ja1wiXG4gICAgPlxuICAgICAgPEdyYXlzY2FsZVRvQ29sb3JIb3ZlckNhcmRcbiAgICAgICAgYm9yZGVyQ29sb3I9XCJib3JkZXItdGVydGlhcnlcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCJsZ1wiXG4gICAgICAgIGlzSW50ZXJhY3RpdmVcbiAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgIHA9ezh9XG4gICAgICAgIG92ZXJyaWRlSW1nRmlsdGVycz17bmFtZS50b0xvd2VyQ2FzZSgpID09PSAna3ViZXJuZXRlcyd9XG4gICAgICA+XG4gICAgICAgIDxJbWFnZSBzcmM9e2ltZ1NyY30gYWx0PXtuYW1lfSBkaXNwbGF5PVwiYmxvY2tcIiBtPVwiYXV0b1wiIGhlaWdodD17NTJ9IC8+XG4gICAgICA8L0dyYXlzY2FsZVRvQ29sb3JIb3ZlckNhcmQ+XG4gICAgPC9BbmNob3I+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgQ2VydGlmaWNhdGlvblBhdGhzUGFuZWwgPSAoKSA9PiB7XG4gIGNvbnN0IHsgdGFiSW5kZXggfSA9IHVzZUFwcEhlYWRlclNlY3Rpb25Db250ZXh0KCk7XG4gIHJldHVybiAoXG4gICAgPFBhbmVsTGF5b3V0XG4gICAgICBoZWFkaW5nPVwiQ2VydGlmaWNhdGlvbiBwYXRoc1wiXG4gICAgICBkZXNjcmlwdGlvbj1cIlByZXBhcmUgZm9yIHRvcCBpbmR1c3RyeSBjZXJ0aWZpY2F0aW9ucyB3aXRoIGEgZ3VpZGVkIHBhdGguIEVhY2ggb25lIGluY2x1ZGVzIGV4cGVydC1yZXZpZXdlZCBsZXNzb25zLCBoYW5kcy1vbiBwcm9qZWN0cywgYW5kIHByYWN0aWNlIHRlc3RzIHRvIGhlbHAgeW91IHBhc3MgdGhlIGV4YW0uXCJcbiAgICAgIGxpbmtJdGVtPXt7XG4gICAgICAgIHR5cGU6ICdsaW5rJyxcbiAgICAgICAgaHJlZjogJy9jYXRhbG9nL2NlcnRpZmljYXRpb24tcHJlcCcsXG4gICAgICAgIHRleHQ6ICdFeHBsb3JlIGFsbCBjZXJ0aWZpY2F0aW9uIHBhdGhzJyxcbiAgICAgICAgdHJhY2tpbmdUYXJnZXQ6ICdjYXRhbG9nLWhlYWRlci12aWV3LWFsbC1jZXJ0aWZpY2F0aW9uLXBhdGhzJyxcbiAgICAgICAgaWQ6ICd2aWV3LWFsbC1jZXJ0aWZpY2F0aW9uLXBhdGhzJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPFRleHQgYXM9XCJoM1wiIGZvbnRTaXplPXsxOH0gZm9udFdlaWdodD1cImJvbGRcIj5cbiAgICAgICAgUHJvdmlkZXJzXG4gICAgICA8L1RleHQ+XG4gICAgICA8R3JpZEJveFxuICAgICAgICBncmlkVGVtcGxhdGVDb2x1bW5zPXt7XG4gICAgICAgICAgXzogJzFmcicsXG4gICAgICAgICAgeHM6ICdyZXBlYXQoMiwgMWZyKScsXG4gICAgICAgICAgc206ICdyZXBlYXQoMywgMWZyKScsXG4gICAgICAgICAgbWQ6ICdyZXBlYXQoNCwgMWZyKScsXG4gICAgICAgIH19XG4gICAgICAgIGdhcD17MTZ9XG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGFzPVwidWxcIlxuICAgICAgICBsaXN0U3R5bGU9XCJub25lXCJcbiAgICAgICAgcD17MH1cbiAgICAgICAgbT17MH1cbiAgICAgID5cbiAgICAgICAge0NFUlRJRklDQVRJT05fUFJPVklERVJTLm1hcCgoeyBuYW1lLCBsb2dvVXJsLCBodWJUeXBlIH0pID0+IChcbiAgICAgICAgICA8Qm94IGFzPVwibGlcIiBrZXk9e25hbWV9IHdpZHRoPVwiMTAwJVwiPlxuICAgICAgICAgICAgPFByb3ZpZGVyQ2hpcFxuICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICBocmVmPXtcbiAgICAgICAgICAgICAgICBodWJUeXBlID09PSAnc3ViaHViJ1xuICAgICAgICAgICAgICAgICAgPyBgL3NlYXJjaD9xdWVyeT0ke25hbWV9IGNlcnRpZmljYXRpb25zYFxuICAgICAgICAgICAgICAgICAgOiBgL2NhdGFsb2cvY2VydGlmaWNhdGlvbi1wcmVwP3Byb3ZpZGVyPSR7bmFtZS50b0xvd2VyQ2FzZSgpfWBcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpbWdTcmM9e2xvZ29Vcmx9XG4gICAgICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICkpfVxuICAgICAgPC9HcmlkQm94PlxuICAgIDwvUGFuZWxMYXlvdXQ+XG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgTGl2ZUxlYXJuaW5nUGFuZWwgPSAoKSA9PiB7XG4gIGNvbnN0IHsgZ2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gPSB1c2VHbG9iYWxIZWFkZXJJdGVtQ2xpY2soKTtcbiAgcmV0dXJuIChcbiAgICA8UGFuZWxMYXlvdXRcbiAgICAgIGhlYWRpbmc9XCJMaXZlIGxlYXJuaW5nXCJcbiAgICAgIGRlc2NyaXB0aW9uPVwiRXhwbG9yZSB0aGUgbGl2ZSBsZWFybmluZyBvcHBvcnR1bml0aWVzIGF2YWlsYWJsZSBpbiBvdXIgY291cnNlc1wiXG4gICAgICBsaW5rSXRlbT17e1xuICAgICAgICB0eXBlOiAnbGluaycsXG4gICAgICAgIGhyZWY6ICcvbGl2ZS1sZWFybmluZycsXG4gICAgICAgIHRleHQ6ICdMZWFybiBtb3JlIGFib3V0IGxpdmUgbGVhcm5pbmcnLFxuICAgICAgICB0cmFja2luZ1RhcmdldDogJ2NhdGFsb2ctaGVhZGVyLWxlYXJuLW1vcmUtYWJvdXQtbGl2ZS1sZWFybmluZycsXG4gICAgICAgIGlkOiAnbGVhcm4tbW9yZS1hYm91dC1saXZlLWxlYXJuaW5nJyxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEdyaWRCb3hcbiAgICAgICAgZ3JpZFRlbXBsYXRlQ29sdW1ucz17eyBfOiAnMWZyJywgbWQ6ICdyZXBlYXQoMiwgMWZyKScgfX1cbiAgICAgICAgZ2FwPXsxNn1cbiAgICAgID5cbiAgICAgICAge2xpdmVMZWFybmluZ0h1Ykl0ZW1zLmRhdGEubWFwKChpdGVtKSA9PiAoXG4gICAgICAgICAgPEFuY2hvclxuICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxuICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTEFuY2hvckVsZW1lbnQsIE1vdXNlRXZlbnQ+KSA9PlxuICAgICAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENhcmQgaXNJbnRlcmFjdGl2ZSBwPXswfT5cbiAgICAgICAgICAgICAgPEJveFxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjIyNXB4XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ9e3RoZW1lLmNvbG9yc1snZ3JheS0zMDAnXX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGdhcD17OH0gcD17MTZ9PlxuICAgICAgICAgICAgICAgIDxUZXh0IHZhcmlhbnQ9XCJ0aXRsZS14c1wiPntpdGVtLnRleHR9PC9UZXh0PlxuICAgICAgICAgICAgICAgIHsnZGVzY3JpcHRpb24nIGluIGl0ZW0gJiYgPFRleHQ+e2l0ZW0uZGVzY3JpcHRpb259PC9UZXh0Pn1cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgPC9DYXJkPlxuICAgICAgICAgIDwvQW5jaG9yPlxuICAgICAgICApKX1cbiAgICAgIDwvR3JpZEJveD5cbiAgICA8L1BhbmVsTGF5b3V0PlxuICApO1xufTtcbiJdfQ== */"));
|
|
145
|
+
const ProviderChip = ({
|
|
146
|
+
name,
|
|
147
|
+
href,
|
|
148
|
+
imgSrc,
|
|
149
|
+
tabIndex
|
|
150
|
+
}) => {
|
|
151
|
+
return /*#__PURE__*/_jsx(Anchor, {
|
|
152
|
+
href: href,
|
|
153
|
+
variant: "interface",
|
|
154
|
+
tabIndex: tabIndex,
|
|
155
|
+
width: "100%",
|
|
156
|
+
height: "100%",
|
|
157
|
+
display: "block",
|
|
158
|
+
children: /*#__PURE__*/_jsx(GrayscaleToColorHoverCard, {
|
|
159
|
+
borderColor: "border-tertiary",
|
|
160
|
+
borderRadius: "lg",
|
|
161
|
+
isInteractive: true,
|
|
162
|
+
width: "100%",
|
|
163
|
+
height: "100%",
|
|
164
|
+
p: 8,
|
|
165
|
+
overrideImgFilters: name.toLowerCase() === 'kubernetes',
|
|
166
|
+
children: /*#__PURE__*/_jsx(Image, {
|
|
167
|
+
src: imgSrc,
|
|
168
|
+
alt: name,
|
|
169
|
+
display: "block",
|
|
170
|
+
m: "auto",
|
|
171
|
+
height: 52
|
|
172
|
+
})
|
|
173
|
+
})
|
|
174
|
+
}, name);
|
|
175
|
+
};
|
|
145
176
|
export const CertificationPathsPanel = () => {
|
|
146
|
-
|
|
177
|
+
const {
|
|
178
|
+
tabIndex
|
|
179
|
+
} = useAppHeaderSectionContext();
|
|
180
|
+
return /*#__PURE__*/_jsxs(PanelLayout, {
|
|
147
181
|
heading: "Certification paths",
|
|
148
|
-
description: "
|
|
182
|
+
description: "Prepare for top industry certifications with a guided path. Each one includes expert-reviewed lessons, hands-on projects, and practice tests to help you pass the exam.",
|
|
149
183
|
linkItem: {
|
|
150
184
|
type: 'link',
|
|
151
|
-
href: '/catalog
|
|
152
|
-
text: '
|
|
185
|
+
href: '/catalog/certification-prep',
|
|
186
|
+
text: 'Explore all certification paths',
|
|
153
187
|
trackingTarget: 'catalog-header-view-all-certification-paths',
|
|
154
188
|
id: 'view-all-certification-paths'
|
|
155
189
|
},
|
|
156
|
-
children: /*#__PURE__*/_jsx(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
190
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
191
|
+
as: "h3",
|
|
192
|
+
fontSize: 18,
|
|
193
|
+
fontWeight: "bold",
|
|
194
|
+
children: "Providers"
|
|
195
|
+
}), /*#__PURE__*/_jsx(GridBox, {
|
|
196
|
+
gridTemplateColumns: {
|
|
197
|
+
_: '1fr',
|
|
198
|
+
xs: 'repeat(2, 1fr)',
|
|
199
|
+
sm: 'repeat(3, 1fr)',
|
|
200
|
+
md: 'repeat(4, 1fr)'
|
|
201
|
+
},
|
|
202
|
+
gap: 16,
|
|
203
|
+
width: "100%",
|
|
204
|
+
as: "ul",
|
|
205
|
+
listStyle: "none",
|
|
206
|
+
p: 0,
|
|
207
|
+
m: 0,
|
|
208
|
+
children: CERTIFICATION_PROVIDERS.map(({
|
|
209
|
+
name,
|
|
210
|
+
logoUrl,
|
|
211
|
+
hubType
|
|
212
|
+
}) => /*#__PURE__*/_jsx(Box, {
|
|
213
|
+
as: "li",
|
|
214
|
+
width: "100%",
|
|
215
|
+
children: /*#__PURE__*/_jsx(ProviderChip, {
|
|
216
|
+
name: name,
|
|
217
|
+
href: hubType === 'subhub' ? `/search?query=${name} certifications` : `/catalog/certification-prep?provider=${name.toLowerCase()}`,
|
|
218
|
+
imgSrc: logoUrl,
|
|
219
|
+
tabIndex: tabIndex
|
|
220
|
+
})
|
|
221
|
+
}, name))
|
|
222
|
+
})]
|
|
161
223
|
});
|
|
162
224
|
};
|
|
163
225
|
export const LiveLearningPanel = () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AppHeaderCatalogDropdownItem
|
|
2
|
+
import { AppHeaderCatalogDropdownItem } from '../../shared';
|
|
3
3
|
export type NavSectionConfig = {
|
|
4
4
|
item: AppHeaderCatalogDropdownItem;
|
|
5
5
|
panel: React.ComponentType<{
|
|
@@ -11,5 +11,8 @@ export declare const bannerData: {
|
|
|
11
11
|
text: string;
|
|
12
12
|
href: string;
|
|
13
13
|
};
|
|
14
|
-
export declare const
|
|
15
|
-
|
|
14
|
+
export declare const CERTIFICATION_PROVIDERS: {
|
|
15
|
+
name: string;
|
|
16
|
+
logoUrl: string;
|
|
17
|
+
hubType: string;
|
|
18
|
+
}[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { CareerPathsPanel, CertificationPathsPanel, CourseTopicsPanel, LiveLearningPanel, SkillPathsPanel } from './NavPanels';
|
|
1
|
+
import { BookLibraryIcon, BriefcaseIcon, OnlineClassStudentIcon, ProfessionalCertificateIcon, StudyBookIcon } from '@codecademy/gamut-icons';
|
|
2
|
+
import { CareerPathsPanel, CertificationPathsPanel, CourseTopicsPanel, getCertificationProviderLogoUrl, LiveLearningPanel, SkillPathsPanel } from './NavPanels';
|
|
3
3
|
export const CATALOG_NAV_SECTIONS = [{
|
|
4
4
|
item: {
|
|
5
5
|
icon: StudyBookIcon,
|
|
@@ -50,131 +50,52 @@ export const bannerData = {
|
|
|
50
50
|
text: 'Want to help shape digital products? Check out the new UX Designer career path.',
|
|
51
51
|
href: '/learn/paths/ux-designer-career-path'
|
|
52
52
|
};
|
|
53
|
-
export const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}, {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
icon: PhpIcon
|
|
102
|
-
}, {
|
|
103
|
-
id: 'java',
|
|
104
|
-
href: '/catalog/language/java',
|
|
105
|
-
trackingTarget: 'topnav_catalog_skill_java',
|
|
106
|
-
text: 'Java',
|
|
107
|
-
type: 'link',
|
|
108
|
-
icon: JavaIcon
|
|
109
|
-
}, {
|
|
110
|
-
id: 'sql',
|
|
111
|
-
href: '/catalog/language/sql',
|
|
112
|
-
trackingTarget: 'topnav_catalog_skill_sql',
|
|
113
|
-
text: 'SQL',
|
|
114
|
-
type: 'link',
|
|
115
|
-
icon: SqlIcon
|
|
116
|
-
}];
|
|
117
|
-
export const popularSubjects = [{
|
|
118
|
-
id: 'artificial-intelligence',
|
|
119
|
-
href: '/catalog/subject/artificial-intelligence',
|
|
120
|
-
trackingTarget: 'topnav_catalog_skill_ai',
|
|
121
|
-
text: 'AI',
|
|
122
|
-
type: 'link',
|
|
123
|
-
icon: ArtificialIntelligenceIcon
|
|
124
|
-
}, {
|
|
125
|
-
id: 'it',
|
|
126
|
-
href: '/catalog/subject/information-technology',
|
|
127
|
-
trackingTarget: 'topnav_catalog_skill_it',
|
|
128
|
-
text: 'IT',
|
|
129
|
-
type: 'link',
|
|
130
|
-
icon: DataEngineeringIcon
|
|
131
|
-
}, {
|
|
132
|
-
id: 'cybersecurity',
|
|
133
|
-
href: '/catalog/subject/cybersecurity',
|
|
134
|
-
trackingTarget: 'topnav_catalog_skill_cybersecurity',
|
|
135
|
-
text: 'Cybersecurity',
|
|
136
|
-
type: 'link',
|
|
137
|
-
icon: CybersecurityIcon
|
|
138
|
-
}, {
|
|
139
|
-
id: 'cloud-computing',
|
|
140
|
-
href: '/catalog/subject/cloud-computing',
|
|
141
|
-
trackingTarget: 'topnav_catalog_skill_cloud-computing',
|
|
142
|
-
text: 'Cloud computing',
|
|
143
|
-
type: 'link',
|
|
144
|
-
icon: CloudComputingIcon
|
|
145
|
-
}, {
|
|
146
|
-
id: 'web-development',
|
|
147
|
-
href: '/catalog/subject/web-development',
|
|
148
|
-
trackingTarget: 'topnav_catalog_skill_web_development',
|
|
149
|
-
text: 'Web development',
|
|
150
|
-
type: 'link',
|
|
151
|
-
icon: WebDevelopmentIcon
|
|
152
|
-
}, {
|
|
153
|
-
id: 'data-science',
|
|
154
|
-
href: '/catalog/subject/data-science',
|
|
155
|
-
trackingTarget: 'topnav_catalog_skill_data-science',
|
|
156
|
-
text: 'Data science',
|
|
157
|
-
type: 'link',
|
|
158
|
-
icon: DataScienceIcon
|
|
159
|
-
}, {
|
|
160
|
-
id: 'web-design',
|
|
161
|
-
href: '/catalog/subject/web-design',
|
|
162
|
-
trackingTarget: 'topnav_catalog_skill_web-design',
|
|
163
|
-
text: 'Web design',
|
|
164
|
-
type: 'link',
|
|
165
|
-
icon: WebDesignIcon
|
|
166
|
-
}, {
|
|
167
|
-
id: 'professional-skills',
|
|
168
|
-
href: '/catalog/subject/professional-skills',
|
|
169
|
-
trackingTarget: 'topnav_catalog_skill_professional-skills',
|
|
170
|
-
text: 'Professional skills',
|
|
171
|
-
type: 'link',
|
|
172
|
-
icon: GrowthIcon
|
|
173
|
-
}, {
|
|
174
|
-
id: 'code-foundations',
|
|
175
|
-
href: '/catalog/subject/code-foundations',
|
|
176
|
-
trackingTarget: 'topnav_catalog_skill_code-foundations',
|
|
177
|
-
text: 'Code foundations',
|
|
178
|
-
type: 'link',
|
|
179
|
-
icon: ProgrammingBrowserIcon
|
|
53
|
+
export const CERTIFICATION_PROVIDERS = [{
|
|
54
|
+
name: 'Microsoft',
|
|
55
|
+
logoUrl: getCertificationProviderLogoUrl('microsoft.svg'),
|
|
56
|
+
hubType: 'subhub'
|
|
57
|
+
}, {
|
|
58
|
+
name: 'CompTIA',
|
|
59
|
+
logoUrl: getCertificationProviderLogoUrl('comptia.svg'),
|
|
60
|
+
hubType: 'subhub'
|
|
61
|
+
}, {
|
|
62
|
+
name: 'ISC2',
|
|
63
|
+
logoUrl: getCertificationProviderLogoUrl('isc2.svg'),
|
|
64
|
+
hubType: 'subhub'
|
|
65
|
+
}, {
|
|
66
|
+
name: 'AWS',
|
|
67
|
+
logoUrl: getCertificationProviderLogoUrl('aws.svg'),
|
|
68
|
+
hubType: 'subhub'
|
|
69
|
+
}, {
|
|
70
|
+
name: 'Google',
|
|
71
|
+
logoUrl: getCertificationProviderLogoUrl('google.svg'),
|
|
72
|
+
hubType: 'certification-prep'
|
|
73
|
+
}, {
|
|
74
|
+
name: 'Cisco',
|
|
75
|
+
logoUrl: getCertificationProviderLogoUrl('cisco.svg'),
|
|
76
|
+
hubType: 'certification-prep'
|
|
77
|
+
}, {
|
|
78
|
+
name: 'IIBA',
|
|
79
|
+
logoUrl: getCertificationProviderLogoUrl('iiba.svg'),
|
|
80
|
+
hubType: 'certification-prep'
|
|
81
|
+
}, {
|
|
82
|
+
name: 'ISTQB',
|
|
83
|
+
logoUrl: getCertificationProviderLogoUrl('istqb.svg'),
|
|
84
|
+
hubType: 'certification-prep'
|
|
85
|
+
}, {
|
|
86
|
+
name: 'ISACA',
|
|
87
|
+
logoUrl: getCertificationProviderLogoUrl('isaca.svg'),
|
|
88
|
+
hubType: 'certification-prep'
|
|
89
|
+
}, {
|
|
90
|
+
name: 'Kubernetes',
|
|
91
|
+
logoUrl: getCertificationProviderLogoUrl('kubernetes.svg'),
|
|
92
|
+
hubType: 'certification-prep'
|
|
93
|
+
}, {
|
|
94
|
+
name: 'Oracle',
|
|
95
|
+
logoUrl: getCertificationProviderLogoUrl('oracle.svg'),
|
|
96
|
+
hubType: 'certification-prep'
|
|
97
|
+
}, {
|
|
98
|
+
name: 'Project Management Institute',
|
|
99
|
+
logoUrl: getCertificationProviderLogoUrl('pmi.svg'),
|
|
100
|
+
hubType: 'certification-prep'
|
|
180
101
|
}];
|
|
@@ -10,13 +10,13 @@ const StyledCard = /*#__PURE__*/_styled(Card, {
|
|
|
10
10
|
theme
|
|
11
11
|
}) => theme.colors.primary, ";border-color:", ({
|
|
12
12
|
theme
|
|
13
|
-
}) => theme.colors.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyRmVhdHVyZUNhcmQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU8rQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckZlYXR1cmVDYXJkL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgQ2FyZCwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEdyaWREZW5zZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXBhdHRlcm5zJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQXBwSGVhZGVyQ2FyZEl0ZW0gfSBmcm9tICcuLi9BcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bi9jb25zdHMnO1xuXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpYFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5fTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlckZlYXR1cmVDYXJkID0gKHsgaXRlbSB9OiB7IGl0ZW06IEFwcEhlYWRlckNhcmRJdGVtIH0pID0+
|
|
13
|
+
}) => theme.colors.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyRmVhdHVyZUNhcmQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU8rQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlckZlYXR1cmVDYXJkL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJveCwgQ2FyZCwgRmxleEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IEdyaWREZW5zZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXBhdHRlcm5zJztcbmltcG9ydCB7IHRoZW1lIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgQXBwSGVhZGVyQ2FyZEl0ZW0gfSBmcm9tICcuLi9BcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bi9jb25zdHMnO1xuXG5jb25zdCBTdHlsZWRDYXJkID0gc3R5bGVkKENhcmQpYFxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gICAgYm9yZGVyLWNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5wcmltYXJ5fTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlckZlYXR1cmVDYXJkID0gKHsgaXRlbSB9OiB7IGl0ZW06IEFwcEhlYWRlckNhcmRJdGVtIH0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ2FyZFxuICAgICAgaXNJbnRlcmFjdGl2ZVxuICAgICAgcHg9ezh9XG4gICAgICBweT17MjR9XG4gICAgICBib3JkZXJSYWRpdXM9XCJsZ1wiXG4gICAgICBib3JkZXI9ezF9XG4gICAgICBib3JkZXJDb2xvcj1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICBhbGlnbkl0ZW1zPVwiZmxleC1zdGFydFwiXG4gICAgICBmbGV4RGlyZWN0aW9uPVwiY29sdW1uXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgID5cbiAgICAgIDxGbGV4Qm94IGFsaWduSXRlbXM9XCJjZW50ZXJcIiBnYXA9ezh9PlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmFja2dyb3VuZD17dGhlbWUuY29sb3JzWyduYXZ5LTIwMCddfVxuICAgICAgICAgIGJvcmRlclJhZGl1cz1cIm1kXCJcbiAgICAgICAgICBwPXs0fVxuICAgICAgICAgIGhlaWdodD17MjZ9XG4gICAgICAgID5cbiAgICAgICAgICB7aXRlbS5pY29ufVxuICAgICAgICA8L0JveD5cbiAgICAgICAgPFRleHQgdmFyaWFudD1cInRpdGxlLXhzXCI+e2l0ZW0ubGlua0l0ZW0udGV4dH08L1RleHQ+XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgICA8Qm94IHdpZHRoPVwiMTAwJVwiPlxuICAgICAgICA8R3JpZERlbnNlIGhlaWdodD17NH0gLz5cbiAgICAgIDwvQm94PlxuICAgICAgPFRleHQgdmFyaWFudD1cInAtYmFzZVwiIGZvbnRTaXplPXsxNH0+XG4gICAgICAgIHtpdGVtLmRlc2NyaXB0aW9ufVxuICAgICAgPC9UZXh0PlxuICAgIDwvU3R5bGVkQ2FyZD5cbiAgKTtcbn07XG4iXX0= */"));
|
|
14
14
|
export const AppHeaderFeatureCard = ({
|
|
15
15
|
item
|
|
16
16
|
}) => {
|
|
17
17
|
return /*#__PURE__*/_jsxs(StyledCard, {
|
|
18
18
|
isInteractive: true,
|
|
19
|
-
px:
|
|
19
|
+
px: 8,
|
|
20
20
|
py: 24,
|
|
21
21
|
borderRadius: "lg",
|
|
22
22
|
border: 1,
|
|
@@ -28,18 +28,14 @@ export const AppHeaderFeatureCard = ({
|
|
|
28
28
|
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
29
29
|
alignItems: "center",
|
|
30
30
|
gap: 8,
|
|
31
|
-
children: [/*#__PURE__*/_jsx(
|
|
31
|
+
children: [/*#__PURE__*/_jsx(Box, {
|
|
32
32
|
background: theme.colors['navy-200'],
|
|
33
33
|
borderRadius: "md",
|
|
34
34
|
p: 4,
|
|
35
|
-
height:
|
|
36
|
-
width: 32,
|
|
37
|
-
alignItems: "center",
|
|
38
|
-
justifyContent: "center",
|
|
35
|
+
height: 26,
|
|
39
36
|
children: item.icon
|
|
40
37
|
}), /*#__PURE__*/_jsx(Text, {
|
|
41
|
-
variant: "
|
|
42
|
-
fontWeight: 700,
|
|
38
|
+
variant: "title-xs",
|
|
43
39
|
children: item.linkItem.text
|
|
44
40
|
})]
|
|
45
41
|
}), /*#__PURE__*/_jsx(Box, {
|
|
@@ -48,7 +44,8 @@ export const AppHeaderFeatureCard = ({
|
|
|
48
44
|
height: 4
|
|
49
45
|
})
|
|
50
46
|
}), /*#__PURE__*/_jsx(Text, {
|
|
51
|
-
variant: "p-
|
|
47
|
+
variant: "p-base",
|
|
48
|
+
fontSize: 14,
|
|
52
49
|
children: item.description
|
|
53
50
|
})]
|
|
54
51
|
});
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
-
import { Anchor, Box, GridBox } from '@codecademy/gamut';
|
|
1
|
+
import { Anchor, Box, FlexBox, GridBox } from '@codecademy/gamut';
|
|
2
2
|
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
3
3
|
import { useAppHeaderDropdownContext } from '../AppHeaderDropdownProvider';
|
|
4
4
|
import { AppHeaderFeatureCard } from '../AppHeaderFeatureCard';
|
|
5
5
|
import { useAppHeaderSectionContext } from '../AppHeaderSection/AppHeaderSectionContext';
|
|
6
6
|
import { PanelLayout } from '../AppHeaderSection/PanelLayout';
|
|
7
|
-
import { SkillTile } from '../AppHeaderSkillTile';
|
|
8
7
|
import { docsLinks, inspirationLinks, learningToolsLinks, practiceToolsLinks } from './consts';
|
|
9
8
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
9
|
export const DocsPanel = () => {
|
|
11
10
|
const {
|
|
12
11
|
globalHeaderItemClick
|
|
13
12
|
} = useGlobalHeaderItemClick();
|
|
13
|
+
const {
|
|
14
|
+
handleClose
|
|
15
|
+
} = useAppHeaderDropdownContext();
|
|
14
16
|
const {
|
|
15
17
|
tabIndex
|
|
16
18
|
} = useAppHeaderSectionContext();
|
|
17
19
|
const description = /*#__PURE__*/_jsxs(_Fragment, {
|
|
18
20
|
children: [/*#__PURE__*/_jsx(Box, {
|
|
19
21
|
mb: 8,
|
|
20
|
-
children: "
|
|
22
|
+
children: "Docs is a community-driven resource for all things programming. Even if you don't have a Codecademy account, you can quickly find definitions and explanations for most coding languages, frameworks, and technical concepts."
|
|
21
23
|
}), "Interested in helping build it?", ' ', /*#__PURE__*/_jsx(Anchor, {
|
|
22
24
|
tabIndex: tabIndex,
|
|
23
25
|
href: "/docs/contribute",
|
|
@@ -44,15 +46,32 @@ export const DocsPanel = () => {
|
|
|
44
46
|
gridTemplateColumns: {
|
|
45
47
|
_: '1fr',
|
|
46
48
|
xs: '1fr 1fr',
|
|
47
|
-
|
|
49
|
+
lg: '1fr 1fr 1fr'
|
|
48
50
|
},
|
|
49
51
|
gap: 8,
|
|
50
52
|
pl: 0,
|
|
51
53
|
as: "ul",
|
|
52
54
|
listStyle: "none",
|
|
53
|
-
children: docsLinks.map(item => /*#__PURE__*/_jsx(
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
children: docsLinks.map(item => /*#__PURE__*/_jsx(Anchor, {
|
|
56
|
+
variant: "interface",
|
|
57
|
+
href: item.href,
|
|
58
|
+
onClick: event => {
|
|
59
|
+
globalHeaderItemClick(event, item);
|
|
60
|
+
handleClose();
|
|
61
|
+
},
|
|
62
|
+
tabIndex: tabIndex,
|
|
63
|
+
as: "li",
|
|
64
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
65
|
+
height: 48,
|
|
66
|
+
px: 16,
|
|
67
|
+
py: 8,
|
|
68
|
+
borderRadius: "md",
|
|
69
|
+
border: 1,
|
|
70
|
+
borderColor: "border-tertiary",
|
|
71
|
+
alignItems: "center",
|
|
72
|
+
children: [item.text, item.badge]
|
|
73
|
+
}, `${item.id}`)
|
|
74
|
+
}, `${item.id}`))
|
|
56
75
|
})
|
|
57
76
|
});
|
|
58
77
|
};
|
|
@@ -98,11 +117,11 @@ export const FeatureCardPanel = ({
|
|
|
98
117
|
return /*#__PURE__*/_jsx(GridBox, {
|
|
99
118
|
gridTemplateColumns: {
|
|
100
119
|
_: '1fr',
|
|
101
|
-
|
|
120
|
+
lg: '1fr 1fr'
|
|
102
121
|
},
|
|
103
122
|
gridTemplateRows: {
|
|
104
123
|
_: '1fr',
|
|
105
|
-
|
|
124
|
+
lg: '1fr 1fr'
|
|
106
125
|
},
|
|
107
126
|
gap: 16,
|
|
108
127
|
pl: 0,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ArticleIcon, BriefcaseIcon, BulbIcon,
|
|
1
|
+
import { ArticleIcon, BriefcaseIcon, BulbIcon, CommentsIcon, FileIcon, HammerWrenchIcon, InfoCircleIcon, NotebookIcon, ProjectsIcon, RulerTriangleIcon, SearchIcon, VideoPlayerMovieIcon } from '@codecademy/gamut-icons';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { DocsPanel, InspirationPanel, LearningToolsPanel, PracticeToolsPanel } from './NavPanels';
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -44,127 +44,109 @@ export const docsLinks = [{
|
|
|
44
44
|
href: '/resources/docs/c',
|
|
45
45
|
trackingTarget: 'topnav_resources_docs_c',
|
|
46
46
|
text: 'C',
|
|
47
|
-
type: 'link'
|
|
48
|
-
icon: CIcon
|
|
47
|
+
type: 'link'
|
|
49
48
|
}, {
|
|
50
49
|
id: 'html',
|
|
51
50
|
href: '/resources/docs/html',
|
|
52
51
|
trackingTarget: 'topnav_resources_docs_html',
|
|
53
52
|
text: 'HTML',
|
|
54
|
-
type: 'link'
|
|
55
|
-
icon: HtmlCssIcon
|
|
53
|
+
type: 'link'
|
|
56
54
|
}, {
|
|
57
55
|
id: 'python',
|
|
58
56
|
href: '/resources/docs/python',
|
|
59
57
|
trackingTarget: 'topnav_resources_docs_python',
|
|
60
58
|
text: 'Python',
|
|
61
|
-
type: 'link'
|
|
62
|
-
icon: PythonIcon
|
|
59
|
+
type: 'link'
|
|
63
60
|
}, {
|
|
64
61
|
id: 'cpp',
|
|
65
62
|
href: '/resources/docs/cpp',
|
|
66
63
|
trackingTarget: 'topnav_resources_docs_cpp',
|
|
67
64
|
text: 'C++',
|
|
68
|
-
type: 'link'
|
|
69
|
-
icon: CPlusIcon
|
|
65
|
+
type: 'link'
|
|
70
66
|
}, {
|
|
71
67
|
id: 'java',
|
|
72
68
|
href: '/resources/docs/java',
|
|
73
69
|
trackingTarget: 'topnav_resources_docs_java',
|
|
74
70
|
text: 'Java',
|
|
75
|
-
type: 'link'
|
|
76
|
-
icon: JavaIcon
|
|
71
|
+
type: 'link'
|
|
77
72
|
}, {
|
|
78
73
|
id: 'react',
|
|
79
74
|
href: '/resources/docs/react',
|
|
80
75
|
trackingTarget: 'topnav_resources_docs_react',
|
|
81
76
|
text: 'React',
|
|
82
|
-
type: 'link'
|
|
83
|
-
icon: ReactIcon
|
|
77
|
+
type: 'link'
|
|
84
78
|
}, {
|
|
85
79
|
id: 'css',
|
|
86
80
|
href: '/resources/docs/css',
|
|
87
81
|
trackingTarget: 'topnav_resources_docs_css',
|
|
88
82
|
text: 'CSS',
|
|
89
|
-
type: 'link'
|
|
90
|
-
icon: HtmlCssIcon
|
|
83
|
+
type: 'link'
|
|
91
84
|
}, {
|
|
92
85
|
id: 'javascript',
|
|
93
86
|
href: '/resources/docs/javascript',
|
|
94
87
|
trackingTarget: 'topnav_resources_docs_javascript',
|
|
95
88
|
text: 'JavaScript',
|
|
96
|
-
type: 'link'
|
|
97
|
-
icon: JavascriptIcon
|
|
89
|
+
type: 'link'
|
|
98
90
|
}, {
|
|
99
91
|
id: 'sql',
|
|
100
92
|
href: '/resources/docs/sql',
|
|
101
93
|
trackingTarget: 'topnav_resources_docs_sql',
|
|
102
94
|
text: 'SQL',
|
|
103
|
-
type: 'link'
|
|
104
|
-
icon: SqlIcon
|
|
95
|
+
type: 'link'
|
|
105
96
|
}, {
|
|
106
97
|
id: 'git',
|
|
107
98
|
href: '/resources/docs/git',
|
|
108
99
|
trackingTarget: 'topnav_resources_docs_git',
|
|
109
100
|
text: 'Git',
|
|
110
|
-
type: 'link'
|
|
111
|
-
icon: GitIcon
|
|
101
|
+
type: 'link'
|
|
112
102
|
}, {
|
|
113
103
|
id: 'php',
|
|
114
104
|
href: '/resources/docs/php',
|
|
115
105
|
trackingTarget: 'topnav_resources_docs_php',
|
|
116
106
|
text: 'PHP',
|
|
117
|
-
type: 'link'
|
|
118
|
-
|
|
107
|
+
type: 'link'
|
|
108
|
+
}, {
|
|
109
|
+
id: 'uiux',
|
|
110
|
+
href: '/resources/docs/uiux',
|
|
111
|
+
trackingTarget: 'topnav_resources_docs_uiux',
|
|
112
|
+
text: 'UI/UX',
|
|
113
|
+
type: 'link'
|
|
119
114
|
}, {
|
|
120
115
|
id: 'markdown',
|
|
121
116
|
href: '/resources/docs/markdown',
|
|
122
117
|
trackingTarget: 'topnav_resources_docs_markdown',
|
|
123
118
|
text: 'Markdown',
|
|
124
|
-
type: 'link'
|
|
125
|
-
|
|
119
|
+
type: 'link'
|
|
120
|
+
}, {
|
|
121
|
+
id: 'data-science',
|
|
122
|
+
href: '/resources/docs/data-science',
|
|
123
|
+
trackingTarget: 'topnav_resources_docs_data_science',
|
|
124
|
+
text: 'Data science',
|
|
125
|
+
type: 'link'
|
|
126
|
+
}, {
|
|
127
|
+
id: 'ai',
|
|
128
|
+
href: '/resources/docs/ai',
|
|
129
|
+
trackingTarget: 'topnav_resources_docs_ai',
|
|
130
|
+
text: 'AI',
|
|
131
|
+
type: 'link'
|
|
132
|
+
}, {
|
|
133
|
+
id: 'data-visualization',
|
|
134
|
+
href: '/resources/docs/data-visualization',
|
|
135
|
+
trackingTarget: 'topnav_resources_docs_data_visualization',
|
|
136
|
+
text: 'Data visualization',
|
|
137
|
+
type: 'link'
|
|
126
138
|
}, {
|
|
127
139
|
id: 'typescript',
|
|
128
140
|
href: '/resources/docs/typescript',
|
|
129
141
|
trackingTarget: 'topnav_resources_docs_typescript',
|
|
130
142
|
text: 'TypeScript',
|
|
131
|
-
type: 'link'
|
|
132
|
-
icon: TypescriptIcon
|
|
133
|
-
}, {
|
|
134
|
-
id: 'lua',
|
|
135
|
-
href: '/resources/docs/lua',
|
|
136
|
-
trackingTarget: 'topnav_resources_docs_lua',
|
|
137
|
-
text: 'Lua',
|
|
138
|
-
type: 'link',
|
|
139
|
-
icon: GameDevelopmentIcon
|
|
140
|
-
}, {
|
|
141
|
-
id: 'go',
|
|
142
|
-
href: '/resources/docs/go',
|
|
143
|
-
trackingTarget: 'topnav_resources_docs_go',
|
|
144
|
-
text: 'Go',
|
|
145
|
-
type: 'link',
|
|
146
|
-
icon: GoIcon
|
|
143
|
+
type: 'link'
|
|
147
144
|
}, {
|
|
148
|
-
id: '
|
|
149
|
-
href: '/resources/docs/
|
|
150
|
-
trackingTarget: '
|
|
151
|
-
text: '
|
|
152
|
-
type: 'link'
|
|
153
|
-
icon: TerminalIcon
|
|
154
|
-
}, {
|
|
155
|
-
id: 'powershell',
|
|
156
|
-
href: '/resources/docs/powershell',
|
|
157
|
-
trackingTarget: 'topnav_resources_docs_powershell',
|
|
158
|
-
text: 'Powershell',
|
|
159
|
-
type: 'link',
|
|
160
|
-
icon: ComputerScienceIcon
|
|
161
|
-
}, {
|
|
162
|
-
id: 'swift',
|
|
163
|
-
href: '/resources/docs/swift',
|
|
164
|
-
trackingTarget: 'topnav_resources_docs_swift',
|
|
165
|
-
text: 'Swift',
|
|
166
|
-
type: 'link',
|
|
167
|
-
icon: SwiftIcon
|
|
145
|
+
id: 'ruby',
|
|
146
|
+
href: '/resources/docs/ruby',
|
|
147
|
+
trackingTarget: 'topnav_resources_docs_ruby',
|
|
148
|
+
text: 'Ruby',
|
|
149
|
+
type: 'link'
|
|
168
150
|
}];
|
|
169
151
|
export const learningToolsLinks = [{
|
|
170
152
|
linkItem: {
|
|
@@ -175,7 +157,7 @@ export const learningToolsLinks = [{
|
|
|
175
157
|
type: 'link'
|
|
176
158
|
},
|
|
177
159
|
icon: /*#__PURE__*/_jsx(ArticleIcon, {}),
|
|
178
|
-
description:
|
|
160
|
+
description: "Articles are more in-depth explanations about concepts covered in Codecademy courses. Here you'll learn more about workflows that developers use every day, and take your coding skills to the next level."
|
|
179
161
|
}, {
|
|
180
162
|
linkItem: {
|
|
181
163
|
id: 'cheatsheets',
|
|
@@ -185,7 +167,7 @@ export const learningToolsLinks = [{
|
|
|
185
167
|
type: 'link'
|
|
186
168
|
},
|
|
187
169
|
icon: /*#__PURE__*/_jsx(NotebookIcon, {}),
|
|
188
|
-
description: 'Quick guides that summarize key concepts across languages, tools, and technologies.'
|
|
170
|
+
description: 'Quick-reference guides that summarize key concepts taught in our courses and paths across various programming languages, tools, and technologies.'
|
|
189
171
|
}, {
|
|
190
172
|
linkItem: {
|
|
191
173
|
id: 'videos',
|
|
@@ -195,7 +177,7 @@ export const learningToolsLinks = [{
|
|
|
195
177
|
type: 'link'
|
|
196
178
|
},
|
|
197
179
|
icon: /*#__PURE__*/_jsx(VideoPlayerMovieIcon, {}),
|
|
198
|
-
description: '
|
|
180
|
+
description: 'Watch our best programming videos for beginner, intermediate, and advanced learners about languages, frameworks, and more.'
|
|
199
181
|
}, {
|
|
200
182
|
linkItem: {
|
|
201
183
|
id: 'projects',
|
|
@@ -205,7 +187,7 @@ export const learningToolsLinks = [{
|
|
|
205
187
|
type: 'link'
|
|
206
188
|
},
|
|
207
189
|
icon: /*#__PURE__*/_jsx(ProjectsIcon, {}),
|
|
208
|
-
description: '
|
|
190
|
+
description: "Projects let you apply what you're learning. Practice new skills, connect concepts, or put it all together to create something of your own."
|
|
209
191
|
}];
|
|
210
192
|
export const practiceToolsLinks = [{
|
|
211
193
|
linkItem: {
|
|
@@ -215,8 +197,8 @@ export const practiceToolsLinks = [{
|
|
|
215
197
|
text: 'Code Challenges',
|
|
216
198
|
type: 'link'
|
|
217
199
|
},
|
|
218
|
-
icon: /*#__PURE__*/_jsx(
|
|
219
|
-
description:
|
|
200
|
+
icon: /*#__PURE__*/_jsx(ArticleIcon, {}),
|
|
201
|
+
description: "Test your knowledge with code challenges based on real-world technical interviews from companies like Google, Amazon, and Meta. Practice for your job search — or for fun. Don't worry if you get stuck. We'll recommend the right courses to help you."
|
|
220
202
|
}, {
|
|
221
203
|
linkItem: {
|
|
222
204
|
id: 'workspaces',
|
|
@@ -225,8 +207,8 @@ export const practiceToolsLinks = [{
|
|
|
225
207
|
text: 'Workspaces',
|
|
226
208
|
type: 'link'
|
|
227
209
|
},
|
|
228
|
-
icon: /*#__PURE__*/_jsx(
|
|
229
|
-
description: '
|
|
210
|
+
icon: /*#__PURE__*/_jsx(VideoPlayerMovieIcon, {}),
|
|
211
|
+
description: 'Practice building projects in 13 popular languages and libraries, tinker with code, and share your work—all without leaving your browser.'
|
|
230
212
|
}, {
|
|
231
213
|
linkItem: {
|
|
232
214
|
id: 'job-readiness',
|
|
@@ -235,8 +217,8 @@ export const practiceToolsLinks = [{
|
|
|
235
217
|
text: 'Job-Readiness Checker',
|
|
236
218
|
type: 'link'
|
|
237
219
|
},
|
|
238
|
-
icon: /*#__PURE__*/_jsx(
|
|
239
|
-
description:
|
|
220
|
+
icon: /*#__PURE__*/_jsx(NotebookIcon, {}),
|
|
221
|
+
description: "Add a LinkedIn or ZipRecruiter job posting to analyze how your skills fit the job. You'll need to add more information for jobs found on other websites."
|
|
240
222
|
}, {
|
|
241
223
|
linkItem: {
|
|
242
224
|
id: 'interview-simulator',
|
|
@@ -245,8 +227,8 @@ export const practiceToolsLinks = [{
|
|
|
245
227
|
text: 'Interview Simulator',
|
|
246
228
|
type: 'link'
|
|
247
229
|
},
|
|
248
|
-
icon: /*#__PURE__*/_jsx(
|
|
249
|
-
description: '
|
|
230
|
+
icon: /*#__PURE__*/_jsx(ProjectsIcon, {}),
|
|
231
|
+
description: 'Discover your potential through interviewing. Identify your strengths, get actionable feedback, and boost your confidence with customized practice — at any stage in your tech career.'
|
|
250
232
|
}];
|
|
251
233
|
export const inspirationLinks = [{
|
|
252
234
|
linkItem: {
|
|
@@ -287,5 +269,5 @@ export const inspirationLinks = [{
|
|
|
287
269
|
type: 'link'
|
|
288
270
|
},
|
|
289
271
|
icon: /*#__PURE__*/_jsx(SearchIcon, {}),
|
|
290
|
-
description: '
|
|
272
|
+
description: 'Want to break into the tech industry? Learn how to write a standout resume, build a professional portfolio, prepare for technical interviews, and negotiate job offers.'
|
|
291
273
|
}];
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/brand",
|
|
3
3
|
"description": "Brand component library for Codecademy",
|
|
4
|
-
"version": "3.8.0-alpha.
|
|
4
|
+
"version": "3.8.0-alpha.bdbfac4885.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@emotion/is-prop-valid": "^1.2.1",
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import _styled from "@emotion/styled/base";
|
|
2
|
-
import { Anchor, FlexBox, Text } from '@codecademy/gamut';
|
|
3
|
-
import { css, theme } from '@codecademy/gamut-styles';
|
|
4
|
-
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
5
|
-
import { useAppHeaderDropdownContext } from '../AppHeaderDropdownProvider';
|
|
6
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
-
const SkillAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
8
|
-
target: "e1t5ouwe0",
|
|
9
|
-
label: "SkillAnchor"
|
|
10
|
-
})(css({
|
|
11
|
-
backgroundColor: theme.colors.background,
|
|
12
|
-
borderColor: theme.colors['border-tertiary'],
|
|
13
|
-
borderRadius: 'lg',
|
|
14
|
-
border: 1,
|
|
15
|
-
// transition: 'background-color 0.2s ease',
|
|
16
|
-
'&:hover, &:focus': {
|
|
17
|
-
borderColor: theme.colors.primary,
|
|
18
|
-
background: theme.colors['navy-100']
|
|
19
|
-
},
|
|
20
|
-
'&:active': {
|
|
21
|
-
borderColor: theme.colors.primary,
|
|
22
|
-
background: theme.colors['navy-200']
|
|
23
|
-
}
|
|
24
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2tpbGxUaWxlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZb0IiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJTa2lsbFRpbGUvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5jaG9yLCBGbGV4Qm94LCBUZXh0LCBUZXh0UHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBjc3MsIHRoZW1lIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gZnJvbSAnLi4vLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHsgQXBwSGVhZGVyTGlua0l0ZW0gfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgdXNlQXBwSGVhZGVyRHJvcGRvd25Db250ZXh0IH0gZnJvbSAnLi4vQXBwSGVhZGVyRHJvcGRvd25Qcm92aWRlcic7XG5cbmludGVyZmFjZSBTa2lsbFRpbGVQcm9wcyB7XG4gIGl0ZW06IEFwcEhlYWRlckxpbmtJdGVtO1xufVxuXG5jb25zdCBTa2lsbEFuY2hvciA9IHN0eWxlZChBbmNob3IpKFxuICBjc3Moe1xuICAgIGJhY2tncm91bmRDb2xvcjogdGhlbWUuY29sb3JzLmJhY2tncm91bmQsXG4gICAgYm9yZGVyQ29sb3I6IHRoZW1lLmNvbG9yc1snYm9yZGVyLXRlcnRpYXJ5J10gYXMgVGV4dFByb3BzWydjb2xvciddLFxuICAgIGJvcmRlclJhZGl1czogJ2xnJyxcbiAgICBib3JkZXI6IDEsXG4gICAgLy8gdHJhbnNpdGlvbjogJ2JhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlJyxcbiAgICAnJjpob3ZlciwgJjpmb2N1cyc6IHtcbiAgICAgIGJvcmRlckNvbG9yOiB0aGVtZS5jb2xvcnMucHJpbWFyeSBhcyBUZXh0UHJvcHNbJ2NvbG9yJ10sXG4gICAgICBiYWNrZ3JvdW5kOiB0aGVtZS5jb2xvcnNbJ25hdnktMTAwJ10sXG4gICAgfSxcbiAgICAnJjphY3RpdmUnOiB7XG4gICAgICBib3JkZXJDb2xvcjogdGhlbWUuY29sb3JzLnByaW1hcnkgYXMgVGV4dFByb3BzWydjb2xvciddLFxuICAgICAgYmFja2dyb3VuZDogdGhlbWUuY29sb3JzWyduYXZ5LTIwMCddLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgU2tpbGxUaWxlOiBSZWFjdC5GQzxTa2lsbFRpbGVQcm9wcz4gPSAoeyBpdGVtIH0pID0+IHtcbiAgY29uc3QgeyBocmVmLCB0ZXh0LCBpY29uOiBJY29uIH0gPSBpdGVtO1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG4gIGNvbnN0IHsgaGFuZGxlQ2xvc2UgfSA9IHVzZUFwcEhlYWRlckRyb3Bkb3duQ29udGV4dCgpO1xuXG4gIHJldHVybiAoXG4gICAgPFNraWxsQW5jaG9yXG4gICAgICBocmVmPXtocmVmfVxuICAgICAgb25DbGljaz17KGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50LCBNb3VzZUV2ZW50PikgPT4ge1xuICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgICAgICBoYW5kbGVDbG9zZSgpO1xuICAgICAgfX1cbiAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIGFzPVwibGlcIlxuICAgID5cbiAgICAgIDxGbGV4Qm94IHB5PXs4fSBweD17MTZ9IGhlaWdodD17NDh9IGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAge0ljb24gJiYgPEljb24gc2l6ZT17MjR9IC8+fVxuICAgICAgICA8VGV4dCB2YXJpYW50PVwicC1iYXNlXCIgcGw9ezE2fT5cbiAgICAgICAgICB7dGV4dH1cbiAgICAgICAgPC9UZXh0PlxuICAgICAgPC9GbGV4Qm94PlxuICAgIDwvU2tpbGxBbmNob3I+XG4gICk7XG59O1xuIl19 */");
|
|
25
|
-
export const SkillTile = ({
|
|
26
|
-
item
|
|
27
|
-
}) => {
|
|
28
|
-
const {
|
|
29
|
-
href,
|
|
30
|
-
text,
|
|
31
|
-
icon: Icon
|
|
32
|
-
} = item;
|
|
33
|
-
const {
|
|
34
|
-
globalHeaderItemClick
|
|
35
|
-
} = useGlobalHeaderItemClick();
|
|
36
|
-
const {
|
|
37
|
-
handleClose
|
|
38
|
-
} = useAppHeaderDropdownContext();
|
|
39
|
-
return /*#__PURE__*/_jsx(SkillAnchor, {
|
|
40
|
-
href: href,
|
|
41
|
-
onClick: event => {
|
|
42
|
-
globalHeaderItemClick(event, item);
|
|
43
|
-
handleClose();
|
|
44
|
-
},
|
|
45
|
-
variant: "interface",
|
|
46
|
-
width: "100%",
|
|
47
|
-
as: "li",
|
|
48
|
-
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
49
|
-
py: 8,
|
|
50
|
-
px: 16,
|
|
51
|
-
height: 48,
|
|
52
|
-
alignItems: "center",
|
|
53
|
-
children: [Icon && /*#__PURE__*/_jsx(Icon, {
|
|
54
|
-
size: 24
|
|
55
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
56
|
-
variant: "p-base",
|
|
57
|
-
pl: 16,
|
|
58
|
-
children: text
|
|
59
|
-
})]
|
|
60
|
-
})
|
|
61
|
-
});
|
|
62
|
-
};
|