@codecademy/brand 2.5.0-alpha.975930aaa2.0 → 3.0.0-alpha.220d4ef8ba.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/AppHeaderCatalogSection/elements.d.ts +0 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSection/elements.js +12 -56
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSection/index.js +3 -5
- package/dist/CareerPathCard/index.d.ts +1 -4
- package/dist/CareerPathCard/index.js +7 -15
- package/dist/CertificationPathCard/index.d.ts +1 -4
- package/dist/CertificationPathCard/index.js +9 -17
- package/dist/ContentGroupBaseCard/index.d.ts +3 -5
- package/dist/ContentGroupBaseCard/index.js +72 -129
- package/dist/ContentGroupBaseCard/shared.js +23 -29
- package/dist/CourseCard/index.d.ts +1 -4
- package/dist/CourseCard/index.js +11 -15
- package/dist/GlobalHeader/GlobalHeaderItems.js +1 -1
- package/dist/GlobalHeader/index.d.ts +0 -1
- package/dist/GlobalHeader/index.js +37 -41
- package/dist/GlobalHeader/types.d.ts +0 -1
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.d.ts +8 -0
- package/dist/LearningOutcomeAssessmentScores/AssessmentDetail.js +55 -0
- package/dist/LearningOutcomeAssessmentScores/index.d.ts +8 -0
- package/dist/LearningOutcomeAssessmentScores/index.js +24 -0
- package/dist/LearningOutcomeFlyout/index.d.ts +32 -0
- package/dist/LearningOutcomeFlyout/index.js +170 -0
- package/dist/LearningOutcomeTile/index.js +1 -3
- package/dist/LearningOutcomeTile/types.d.ts +0 -1
- package/dist/SkillPathCard/index.d.ts +1 -4
- package/dist/SkillPathCard/index.js +7 -15
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/stories/Molecules/ContentGroupBaseCard.stories.js +1 -3
- package/dist/stories/Molecules/CurriculumCards/CareerPathCard.stories.js +1 -3
- package/dist/stories/Molecules/CurriculumCards/CertificationPathCard.stories.js +1 -3
- package/dist/stories/Molecules/CurriculumCards/CourseCard.stories.js +1 -3
- package/dist/stories/Molecules/CurriculumCards/SkillPathCard.stories.js +1 -3
- package/dist/stories/Molecules/LearningOutcomeAssessmentScores.stories.d.ts +6 -0
- package/dist/stories/Molecules/LearningOutcomeAssessmentScores.stories.js +23 -0
- package/dist/stories/Molecules/LearningOutcomeFlyout.stories.d.ts +5 -0
- package/dist/stories/Molecules/LearningOutcomeFlyout.stories.js +35 -0
- package/package.json +1 -1
- package/dist/Recurly/context/NoProvider.d.ts +0 -8
- package/dist/Recurly/context/NoProvider.js +0 -7
- package/dist/Recurly/context/elements/index.d.ts +0 -26
- package/dist/Recurly/context/elements/index.js +0 -46
- package/dist/Recurly/context/elements/index.test.js +0 -88
- package/dist/Recurly/context/index.d.ts +0 -2
- package/dist/Recurly/context/index.js +0 -2
- package/dist/Recurly/context/recurly/index.d.ts +0 -30
- package/dist/Recurly/context/recurly/index.js +0 -50
- package/dist/Recurly/context/recurly/index.test.js +0 -63
- package/dist/Recurly/context/recurly/loadRecurly.d.ts +0 -6
- package/dist/Recurly/context/recurly/loadRecurly.js +0 -22
- package/dist/Recurly/context/recurly/loadRecurly.test.js +0 -57
- package/dist/Recurly/context/recurly/w.d.ts +0 -14
- package/dist/Recurly/context/recurly/w.js +0 -4
- package/dist/Recurly/fields/RecurlyField.d.ts +0 -9
- package/dist/Recurly/fields/RecurlyField.js +0 -57
- package/dist/Recurly/fields/elements.d.ts +0 -17
- package/dist/Recurly/fields/elements.js +0 -106
- package/dist/Recurly/fields/elements.test.js +0 -79
- package/dist/Recurly/fields/index.d.ts +0 -2
- package/dist/Recurly/fields/index.js +0 -2
- package/dist/Recurly/index.d.ts +0 -2
- package/dist/Recurly/index.js +0 -2
- package/dist/stories/Molecules/Recurly.stories.d.ts +0 -5
- package/dist/stories/Molecules/Recurly.stories.js +0 -56
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Box, FlexBox, Text } from '@codecademy/gamut';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
|
+
export const AssessmentDetail = ({
|
|
5
|
+
isHighestScore,
|
|
6
|
+
score,
|
|
7
|
+
scoreAchievedAt
|
|
8
|
+
}) => {
|
|
9
|
+
const hasPassedAssessment = score && score >= 70;
|
|
10
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
11
|
+
borderColor: "background-hover",
|
|
12
|
+
borderRight: isHighestScore ? 1 : 'none',
|
|
13
|
+
width: "100%",
|
|
14
|
+
p: 16,
|
|
15
|
+
column: true,
|
|
16
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
17
|
+
fontWeight: 700,
|
|
18
|
+
children: isHighestScore ? 'Highest score' : 'Most recent'
|
|
19
|
+
}), score != null ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
20
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
21
|
+
mt: 8,
|
|
22
|
+
alignItems: "center",
|
|
23
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
24
|
+
variant: "title-sm",
|
|
25
|
+
"data-testid": "score-percent",
|
|
26
|
+
mr: 4,
|
|
27
|
+
color: hasPassedAssessment ? 'green-700' : undefined,
|
|
28
|
+
children: `${score}%`
|
|
29
|
+
}), /*#__PURE__*/_jsx(Box, {
|
|
30
|
+
children: !hasPassedAssessment && /*#__PURE__*/_jsx(Box, {
|
|
31
|
+
"data-testid": "failed-assessment-indicator",
|
|
32
|
+
borderRadius: "full",
|
|
33
|
+
dimensions: 16,
|
|
34
|
+
bg: "orange-500",
|
|
35
|
+
mb: 4
|
|
36
|
+
})
|
|
37
|
+
})]
|
|
38
|
+
}), !!scoreAchievedAt && /*#__PURE__*/_jsx(Text, {
|
|
39
|
+
textColor: "text-secondary",
|
|
40
|
+
children: scoreAchievedAt
|
|
41
|
+
})]
|
|
42
|
+
}) : /*#__PURE__*/_jsxs(FlexBox, {
|
|
43
|
+
column: true,
|
|
44
|
+
color: "text-secondary",
|
|
45
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
46
|
+
fontWeight: 700,
|
|
47
|
+
my: 4,
|
|
48
|
+
"aria-hidden": true,
|
|
49
|
+
children: "-"
|
|
50
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
51
|
+
children: "Not tested yet"
|
|
52
|
+
})]
|
|
53
|
+
})]
|
|
54
|
+
});
|
|
55
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface AssessmentScoresProps {
|
|
2
|
+
highestScore: number | null | undefined;
|
|
3
|
+
highestScoreAchievedAt: string | null | undefined;
|
|
4
|
+
latestScore: number | null | undefined;
|
|
5
|
+
latestScoreAchievedAt: string | null | undefined;
|
|
6
|
+
}
|
|
7
|
+
export declare const LearningOutcomeAssessmentScores: React.FC<AssessmentScoresProps>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FlexBox } from '@codecademy/gamut';
|
|
2
|
+
import { AssessmentDetail } from './AssessmentDetail';
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
export const LearningOutcomeAssessmentScores = ({
|
|
5
|
+
highestScore,
|
|
6
|
+
highestScoreAchievedAt,
|
|
7
|
+
latestScore,
|
|
8
|
+
latestScoreAchievedAt
|
|
9
|
+
}) => {
|
|
10
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
11
|
+
borderColor: "background-hover",
|
|
12
|
+
border: 1,
|
|
13
|
+
borderRadius: "md",
|
|
14
|
+
width: "100%",
|
|
15
|
+
children: [/*#__PURE__*/_jsx(AssessmentDetail, {
|
|
16
|
+
isHighestScore: true,
|
|
17
|
+
score: highestScore,
|
|
18
|
+
scoreAchievedAt: highestScoreAchievedAt
|
|
19
|
+
}), /*#__PURE__*/_jsx(AssessmentDetail, {
|
|
20
|
+
score: latestScore,
|
|
21
|
+
scoreAchievedAt: latestScoreAchievedAt
|
|
22
|
+
})]
|
|
23
|
+
});
|
|
24
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { LearningOutcomeLevels } from '../LearningOutcomeBadges';
|
|
2
|
+
export declare enum SkillClassification {
|
|
3
|
+
Language = "language",
|
|
4
|
+
Subject = "subject"
|
|
5
|
+
}
|
|
6
|
+
interface LearningOutcomeSkill {
|
|
7
|
+
id: string;
|
|
8
|
+
slug: string;
|
|
9
|
+
title?: string | null;
|
|
10
|
+
classification?: SkillClassification | null;
|
|
11
|
+
}
|
|
12
|
+
interface LearningOutcomeDetailsProps {
|
|
13
|
+
level: LearningOutcomeLevels;
|
|
14
|
+
outcome: string;
|
|
15
|
+
percentComplete: number | undefined | null;
|
|
16
|
+
highestScore: number | undefined | null;
|
|
17
|
+
highestScoreAchievedAt: string | undefined | null;
|
|
18
|
+
latestScore: number | undefined | null;
|
|
19
|
+
latestScoreAchievedAt: string | undefined | null;
|
|
20
|
+
skills?: LearningOutcomeSkill[] | null;
|
|
21
|
+
}
|
|
22
|
+
interface LearningOutcomeFlyoutProps {
|
|
23
|
+
expanded: boolean;
|
|
24
|
+
onClose: () => void;
|
|
25
|
+
learningOutcome: LearningOutcomeDetailsProps;
|
|
26
|
+
learningOutcomeHref: string;
|
|
27
|
+
learningOutcomeOnClick?: () => void;
|
|
28
|
+
skillTagOnClick?: (skillSlug: string) => void;
|
|
29
|
+
}
|
|
30
|
+
export declare const sortSkillsByClassification: (skills?: LearningOutcomeSkill[] | null) => LearningOutcomeSkill[];
|
|
31
|
+
export declare const LearningOutcomeFlyout: React.FC<LearningOutcomeFlyoutProps>;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Anchor, FlexBox, Flyout, Text } from '@codecademy/gamut';
|
|
3
|
+
import { SmallCheckIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import { css } from '@codecademy/gamut-styles';
|
|
5
|
+
import { LearningOutcomeAssessmentScores } from '../LearningOutcomeAssessmentScores';
|
|
6
|
+
import { learningOutcomeLabels, LearningOutcomeLevelBadge, LearningOutcomeLowAssessmentBadge } from '../LearningOutcomeBadges';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
9
|
+
target: "e1ylhic51",
|
|
10
|
+
label: "StyledAnchor"
|
|
11
|
+
})(css({
|
|
12
|
+
color: 'text',
|
|
13
|
+
fontSize: 26,
|
|
14
|
+
fontWeight: 700,
|
|
15
|
+
textDecoration: 'none',
|
|
16
|
+
'&:hover, &:focus': {
|
|
17
|
+
color: 'text',
|
|
18
|
+
textDecoration: 'underline'
|
|
19
|
+
}
|
|
20
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVGbHlvdXQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFxQiIsImZpbGUiOiIuLi8uLi9zcmMvTGVhcm5pbmdPdXRjb21lRmx5b3V0L2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2hvciwgRmxleEJveCwgRmx5b3V0LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgU21hbGxDaGVja0ljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyBMZWFybmluZ091dGNvbWVBc3Nlc3NtZW50U2NvcmVzIH0gZnJvbSAnLi4vTGVhcm5pbmdPdXRjb21lQXNzZXNzbWVudFNjb3Jlcyc7XG5pbXBvcnQge1xuICBsZWFybmluZ091dGNvbWVMYWJlbHMsXG4gIExlYXJuaW5nT3V0Y29tZUxldmVsQmFkZ2UsXG4gIExlYXJuaW5nT3V0Y29tZUxldmVscyxcbiAgTGVhcm5pbmdPdXRjb21lTG93QXNzZXNzbWVudEJhZGdlLFxufSBmcm9tICcuLi9MZWFybmluZ091dGNvbWVCYWRnZXMnO1xuXG5jb25zdCBTdHlsZWRBbmNob3IgPSBzdHlsZWQoQW5jaG9yKShcbiAgY3NzKHtcbiAgICBjb2xvcjogJ3RleHQnLFxuICAgIGZvbnRTaXplOiAyNixcbiAgICBmb250V2VpZ2h0OiA3MDAsXG4gICAgdGV4dERlY29yYXRpb246ICdub25lJyxcbiAgICAnJjpob3ZlciwgJjpmb2N1cyc6IHtcbiAgICAgIGNvbG9yOiAndGV4dCcsXG4gICAgICB0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZScsXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFNraWxsVGFnID0gc3R5bGVkKEFuY2hvcikoXG4gIGNzcyh7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGJvcmRlclJhZGl1czogJ21kJyxcbiAgICBib3JkZXI6IDEsXG4gICAgYm9yZGVyQ29sb3I6ICdib3JkZXItcHJpbWFyeScsXG4gICAgJyY6aG92ZXIsICY6Zm9jdXMnOiB7XG4gICAgICBjb2xvcjogJ3RleHQnLFxuICAgICAgYmc6ICdiYWNrZ3JvdW5kLWhvdmVyJyxcbiAgICB9LFxuICB9KVxuKTtcblxuZXhwb3J0IGVudW0gU2tpbGxDbGFzc2lmaWNhdGlvbiB7XG4gIExhbmd1YWdlID0gJ2xhbmd1YWdlJyxcbiAgU3ViamVjdCA9ICdzdWJqZWN0Jyxcbn1cbmludGVyZmFjZSBMZWFybmluZ091dGNvbWVTa2lsbCB7XG4gIGlkOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsO1xuICBjbGFzc2lmaWNhdGlvbj86IFNraWxsQ2xhc3NpZmljYXRpb24gfCBudWxsO1xufVxuaW50ZXJmYWNlIExlYXJuaW5nT3V0Y29tZURldGFpbHNQcm9wcyB7XG4gIGxldmVsOiBMZWFybmluZ091dGNvbWVMZXZlbHM7XG4gIG91dGNvbWU6IHN0cmluZztcbiAgcGVyY2VudENvbXBsZXRlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xuICBoaWdoZXN0U2NvcmU6IG51bWJlciB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGhpZ2hlc3RTY29yZUFjaGlldmVkQXQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIGxhdGVzdFNjb3JlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xuICBsYXRlc3RTY29yZUFjaGlldmVkQXQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw7XG4gIHNraWxscz86IExlYXJuaW5nT3V0Y29tZVNraWxsW10gfCBudWxsO1xufVxuXG5pbnRlcmZhY2UgTGVhcm5pbmdPdXRjb21lRmx5b3V0UHJvcHMge1xuICBleHBhbmRlZDogYm9vbGVhbjtcbiAgb25DbG9zZTogKCkgPT4gdm9pZDtcbiAgbGVhcm5pbmdPdXRjb21lOiBMZWFybmluZ091dGNvbWVEZXRhaWxzUHJvcHM7XG4gIGxlYXJuaW5nT3V0Y29tZUhyZWY6IHN0cmluZztcbiAgbGVhcm5pbmdPdXRjb21lT25DbGljaz86ICgpID0+IHZvaWQ7XG4gIHNraWxsVGFnT25DbGljaz86IChza2lsbFNsdWc6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IHNvcnRTa2lsbHNCeUNsYXNzaWZpY2F0aW9uID0gKFxuICBza2lsbHM/OiBMZWFybmluZ091dGNvbWVTa2lsbFtdIHwgbnVsbFxuKSA9PiB7XG4gIGlmICghc2tpbGxzPy5sZW5ndGgpIHJldHVybiBbXTtcbiAgY29uc3Qgc2tpbGxzQ29weSA9IHNraWxscy5zbGljZSgpO1xuXG4gIGNvbnN0IHNvcnRlZFNraWxscyA9IHNraWxsc0NvcHk/LnNvcnQoKGEsIGIpID0+IHtcbiAgICBpZiAoYT8uY2xhc3NpZmljYXRpb24gPT09ICdsYW5ndWFnZScpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG4gICAgaWYgKGI/LmNsYXNzaWZpY2F0aW9uID09PSAnc3ViamVjdCcpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cbiAgICByZXR1cm4gMDtcbiAgfSk7XG5cbiAgcmV0dXJuIHNvcnRlZFNraWxscztcbn07XG5cbmNvbnN0IGdldFNraWxsc0FyZWFQYXRoID0gKHNraWxsU2x1Zz86IHN0cmluZykgPT4ge1xuICByZXR1cm4gc2tpbGxTbHVnID8gYC9za2lsbC1hcmVhcy8ke3NraWxsU2x1Z31gIDogJy8nO1xufTtcblxuZXhwb3J0IGNvbnN0IExlYXJuaW5nT3V0Y29tZUZseW91dDogUmVhY3QuRkM8TGVhcm5pbmdPdXRjb21lRmx5b3V0UHJvcHM+ID0gKHtcbiAgZXhwYW5kZWQsXG4gIGxlYXJuaW5nT3V0Y29tZUhyZWYsXG4gIGxlYXJuaW5nT3V0Y29tZU9uQ2xpY2ssXG4gIGxlYXJuaW5nT3V0Y29tZToge1xuICAgIGhpZ2hlc3RTY29yZSxcbiAgICBoaWdoZXN0U2NvcmVBY2hpZXZlZEF0LFxuICAgIGxhdGVzdFNjb3JlLFxuICAgIGxhdGVzdFNjb3JlQWNoaWV2ZWRBdCxcbiAgICBsZXZlbCxcbiAgICBvdXRjb21lLFxuICAgIHBlcmNlbnRDb21wbGV0ZSxcbiAgICBza2lsbHMsXG4gIH0sXG4gIHNraWxsVGFnT25DbGljayxcbiAgb25DbG9zZSxcbn0pID0+IHtcbiAgY29uc3QgcGVyY2VudENvbXBsZXRlUGVyY2VudGFnZSA9XG4gICAgcGVyY2VudENvbXBsZXRlICE9IG51bGwgPyBwZXJjZW50Q29tcGxldGUgOiAwO1xuICBjb25zdCBsZXZlbExhYmVsID0gbGVhcm5pbmdPdXRjb21lTGFiZWxzW2xldmVsXTtcblxuICBjb25zdCBoYXNMb3dMYXRlc3RBc3Nlc3NtZW50ID0gQm9vbGVhbihcbiAgICBsYXRlc3RTY29yZSAhPSBudWxsICYmIGxhdGVzdFNjb3JlIDwgNzBcbiAgKTtcblxuICBjb25zdCBzaG93U2tpbGxzID0gISFza2lsbHM/Lmxlbmd0aDtcbiAgY29uc3Qgc29ydGVkU2tpbGxzID0gc29ydFNraWxsc0J5Q2xhc3NpZmljYXRpb24oc2tpbGxzKTtcblxuICBjb25zdCByZW5kZXJQcm9ncmVzcyA9ICgpID0+IChcbiAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICB7Qm9vbGVhbihwZXJjZW50Q29tcGxldGVQZXJjZW50YWdlID09PSAxMDApICYmIChcbiAgICAgICAgPEZsZXhCb3hcbiAgICAgICAgICB3aWR0aD17MTZ9XG4gICAgICAgICAgaGVpZ2h0PXsxNn1cbiAgICAgICAgICBib3JkZXJSYWRpdXM9XCJtZFwiXG4gICAgICAgICAgYmc9XCJwcmltYXJ5XCJcbiAgICAgICAgICBtcj17OH1cbiAgICAgICAgICBhbGlnbkl0ZW1zPVwiY2VudGVyXCJcbiAgICAgICAgICBqdXN0aWZ5Q29udGVudD1cImNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8U21hbGxDaGVja0ljb24gc2l6ZT17MTF9IGNvbG9yPVwid2hpdGVcIiAvPlxuICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICApfVxuICAgICAgPFRleHRcbiAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgdmFyaWFudD1cInAtbGFyZ2VcIlxuICAgICAgPntgJHtwZXJjZW50Q29tcGxldGVQZXJjZW50YWdlfSUgcHJvZ3Jlc3NgfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Rmx5b3V0XG4gICAgICBhcmlhLWxhYmVsPXtgJHtsZXZlbExhYmVsfSBkZXRhaWxzYH1cbiAgICAgIGNsb3NlTGFiZWw9e2BDbG9zZSAke2xldmVsTGFiZWx9IGRldGFpbHNgfVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgb25DbG9zZT17b25DbG9zZX1cbiAgICAgIG9wZW5Gcm9tPVwicmlnaHRcIlxuICAgICAgdGl0bGU9ezxUZXh0IHZhcmlhbnQ9XCJ0aXRsZS1zbVwiPntgJHtsZXZlbExhYmVsfSBkZXRhaWxzYH08L1RleHQ+fVxuICAgID5cbiAgICAgIDxGbGV4Qm94IGdhcD17MzJ9IG10PXszMn0gbXg9ezI0fSBjb2x1bW4+XG4gICAgICAgIHsvKiBCYWRnZXMsIE91dGNvbWUsIFRvcGljIHRhZ3MsIFByb2dyZXNzICovfVxuICAgICAgICA8RmxleEJveCBnYXA9ezI0fSBjb2x1bW4+XG4gICAgICAgICAgPEZsZXhCb3gganVzdGlmeUNvbnRlbnQ9XCJzcGFjZS1iZXR3ZWVuXCIgYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgPExlYXJuaW5nT3V0Y29tZUxldmVsQmFkZ2UgbGV2ZWw9e2xldmVsfSBzaXplPVwiYmFzZVwiIC8+XG4gICAgICAgICAgICB7aGFzTG93TGF0ZXN0QXNzZXNzbWVudCAmJiA8TGVhcm5pbmdPdXRjb21lTG93QXNzZXNzbWVudEJhZGdlIC8+fVxuICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICA8RmxleEJveCBnYXA9ezE2fSBjb2x1bW4+XG4gICAgICAgICAgICA8U3R5bGVkQW5jaG9yXG4gICAgICAgICAgICAgIGhyZWY9e2xlYXJuaW5nT3V0Y29tZUhyZWZ9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGxlYXJuaW5nT3V0Y29tZU9uQ2xpY2s/LigpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7b3V0Y29tZX1cbiAgICAgICAgICAgIDwvU3R5bGVkQW5jaG9yPlxuICAgICAgICAgICAge3Nob3dTa2lsbHMgJiYgKFxuICAgICAgICAgICAgICA8RmxleEJveCBhbGlnbkl0ZW1zPVwiY2VudGVyXCIgZ2FwPXsxMn0gZmxleFdyYXA9XCJ3cmFwXCI+XG4gICAgICAgICAgICAgICAge3NvcnRlZFNraWxscy5tYXAoKHNraWxsKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8U2tpbGxUYWdcbiAgICAgICAgICAgICAgICAgICAga2V5PXtza2lsbC5pZH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJza2lsbC10YWdcIlxuICAgICAgICAgICAgICAgICAgICBweD17OH1cbiAgICAgICAgICAgICAgICAgICAgcHk9ezR9XG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgICAgICAgICAgICBocmVmPXtnZXRTa2lsbHNBcmVhUGF0aChza2lsbC5zbHVnKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2tpbGxUYWdPbkNsaWNrPy4oc2tpbGwuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxGbGV4Qm94IGNlbnRlcj5cbiAgICAgICAgICAgICAgICAgICAgICA8VGV4dD57c2tpbGwudGl0bGV9PC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgICA8L1NraWxsVGFnPlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICA8RmxleEJveCBib3JkZXJZPXsxfSBib3JkZXJDb2xvcj1cImJhY2tncm91bmQtaG92ZXJcIiBweT17MTZ9PlxuICAgICAgICAgICAge3JlbmRlclByb2dyZXNzKCl9XG4gICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICA8L0ZsZXhCb3g+XG5cbiAgICAgICAgey8qIEFzc2Vzc21lbnQgc2NvcmVzICovfVxuICAgICAgICA8RmxleEJveCBnYXA9ezE2fSBjb2x1bW4+XG4gICAgICAgICAgPFRleHQgdmFyaWFudD1cInRpdGxlLXhzXCI+RXZhbHVhdGlvbiByZXN1bHRzPC9UZXh0PlxuICAgICAgICAgIDxMZWFybmluZ091dGNvbWVBc3Nlc3NtZW50U2NvcmVzXG4gICAgICAgICAgICBoaWdoZXN0U2NvcmU9e2hpZ2hlc3RTY29yZX1cbiAgICAgICAgICAgIGhpZ2hlc3RTY29yZUFjaGlldmVkQXQ9e2hpZ2hlc3RTY29yZUFjaGlldmVkQXR9XG4gICAgICAgICAgICBsYXRlc3RTY29yZT17bGF0ZXN0U2NvcmV9XG4gICAgICAgICAgICBsYXRlc3RTY29yZUFjaGlldmVkQXQ9e2xhdGVzdFNjb3JlQWNoaWV2ZWRBdH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0ZsZXhCb3g+XG5cbiAgICAgICAgey8qIEZvciBsZXZlbCAyIGFuZCAzIExPcyBvbmx5OiBDaGlsZHJlbiBMT3MgZ29lcyBiZWxvdyBoZXJlICovfVxuXG4gICAgICAgIHsvKiBGb3IgbGV2ZWwgMiBMT3Mgb25seTogUGFyZW50IExPcyBnb2VzIGJlbG93IGhlcmUgKi99XG4gICAgICA8L0ZsZXhCb3g+XG4gICAgPC9GbHlvdXQ+XG4gICk7XG59O1xuIl19 */");
|
|
21
|
+
const SkillTag = /*#__PURE__*/_styled(Anchor, {
|
|
22
|
+
target: "e1ylhic50",
|
|
23
|
+
label: "SkillTag"
|
|
24
|
+
})(css({
|
|
25
|
+
fontSize: 14,
|
|
26
|
+
borderRadius: 'md',
|
|
27
|
+
border: 1,
|
|
28
|
+
borderColor: 'border-primary',
|
|
29
|
+
'&:hover, &:focus': {
|
|
30
|
+
color: 'text',
|
|
31
|
+
bg: 'background-hover'
|
|
32
|
+
}
|
|
33
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVGbHlvdXQvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCaUIiLCJmaWxlIjoiLi4vLi4vc3JjL0xlYXJuaW5nT3V0Y29tZUZseW91dC9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmNob3IsIEZsZXhCb3gsIEZseW91dCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IFNtYWxsQ2hlY2tJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuaW1wb3J0IHsgTGVhcm5pbmdPdXRjb21lQXNzZXNzbWVudFNjb3JlcyB9IGZyb20gJy4uL0xlYXJuaW5nT3V0Y29tZUFzc2Vzc21lbnRTY29yZXMnO1xuaW1wb3J0IHtcbiAgbGVhcm5pbmdPdXRjb21lTGFiZWxzLFxuICBMZWFybmluZ091dGNvbWVMZXZlbEJhZGdlLFxuICBMZWFybmluZ091dGNvbWVMZXZlbHMsXG4gIExlYXJuaW5nT3V0Y29tZUxvd0Fzc2Vzc21lbnRCYWRnZSxcbn0gZnJvbSAnLi4vTGVhcm5pbmdPdXRjb21lQmFkZ2VzJztcblxuY29uc3QgU3R5bGVkQW5jaG9yID0gc3R5bGVkKEFuY2hvcikoXG4gIGNzcyh7XG4gICAgY29sb3I6ICd0ZXh0JyxcbiAgICBmb250U2l6ZTogMjYsXG4gICAgZm9udFdlaWdodDogNzAwLFxuICAgIHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG4gICAgJyY6aG92ZXIsICY6Zm9jdXMnOiB7XG4gICAgICBjb2xvcjogJ3RleHQnLFxuICAgICAgdGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTa2lsbFRhZyA9IHN0eWxlZChBbmNob3IpKFxuICBjc3Moe1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBib3JkZXJSYWRpdXM6ICdtZCcsXG4gICAgYm9yZGVyOiAxLFxuICAgIGJvcmRlckNvbG9yOiAnYm9yZGVyLXByaW1hcnknLFxuICAgICcmOmhvdmVyLCAmOmZvY3VzJzoge1xuICAgICAgY29sb3I6ICd0ZXh0JyxcbiAgICAgIGJnOiAnYmFja2dyb3VuZC1ob3ZlcicsXG4gICAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBlbnVtIFNraWxsQ2xhc3NpZmljYXRpb24ge1xuICBMYW5ndWFnZSA9ICdsYW5ndWFnZScsXG4gIFN1YmplY3QgPSAnc3ViamVjdCcsXG59XG5pbnRlcmZhY2UgTGVhcm5pbmdPdXRjb21lU2tpbGwge1xuICBpZDogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nIHwgbnVsbDtcbiAgY2xhc3NpZmljYXRpb24/OiBTa2lsbENsYXNzaWZpY2F0aW9uIHwgbnVsbDtcbn1cbmludGVyZmFjZSBMZWFybmluZ091dGNvbWVEZXRhaWxzUHJvcHMge1xuICBsZXZlbDogTGVhcm5pbmdPdXRjb21lTGV2ZWxzO1xuICBvdXRjb21lOiBzdHJpbmc7XG4gIHBlcmNlbnRDb21wbGV0ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgaGlnaGVzdFNjb3JlOiBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsO1xuICBoaWdoZXN0U2NvcmVBY2hpZXZlZEF0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBsYXRlc3RTY29yZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbDtcbiAgbGF0ZXN0U2NvcmVBY2hpZXZlZEF0OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsO1xuICBza2lsbHM/OiBMZWFybmluZ091dGNvbWVTa2lsbFtdIHwgbnVsbDtcbn1cblxuaW50ZXJmYWNlIExlYXJuaW5nT3V0Y29tZUZseW91dFByb3BzIHtcbiAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gIG9uQ2xvc2U6ICgpID0+IHZvaWQ7XG4gIGxlYXJuaW5nT3V0Y29tZTogTGVhcm5pbmdPdXRjb21lRGV0YWlsc1Byb3BzO1xuICBsZWFybmluZ091dGNvbWVIcmVmOiBzdHJpbmc7XG4gIGxlYXJuaW5nT3V0Y29tZU9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBza2lsbFRhZ09uQ2xpY2s/OiAoc2tpbGxTbHVnOiBzdHJpbmcpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBzb3J0U2tpbGxzQnlDbGFzc2lmaWNhdGlvbiA9IChcbiAgc2tpbGxzPzogTGVhcm5pbmdPdXRjb21lU2tpbGxbXSB8IG51bGxcbikgPT4ge1xuICBpZiAoIXNraWxscz8ubGVuZ3RoKSByZXR1cm4gW107XG4gIGNvbnN0IHNraWxsc0NvcHkgPSBza2lsbHMuc2xpY2UoKTtcblxuICBjb25zdCBzb3J0ZWRTa2lsbHMgPSBza2lsbHNDb3B5Py5zb3J0KChhLCBiKSA9PiB7XG4gICAgaWYgKGE/LmNsYXNzaWZpY2F0aW9uID09PSAnbGFuZ3VhZ2UnKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIGlmIChiPy5jbGFzc2lmaWNhdGlvbiA9PT0gJ3N1YmplY3QnKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gICAgcmV0dXJuIDA7XG4gIH0pO1xuXG4gIHJldHVybiBzb3J0ZWRTa2lsbHM7XG59O1xuXG5jb25zdCBnZXRTa2lsbHNBcmVhUGF0aCA9IChza2lsbFNsdWc/OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHNraWxsU2x1ZyA/IGAvc2tpbGwtYXJlYXMvJHtza2lsbFNsdWd9YCA6ICcvJztcbn07XG5cbmV4cG9ydCBjb25zdCBMZWFybmluZ091dGNvbWVGbHlvdXQ6IFJlYWN0LkZDPExlYXJuaW5nT3V0Y29tZUZseW91dFByb3BzPiA9ICh7XG4gIGV4cGFuZGVkLFxuICBsZWFybmluZ091dGNvbWVIcmVmLFxuICBsZWFybmluZ091dGNvbWVPbkNsaWNrLFxuICBsZWFybmluZ091dGNvbWU6IHtcbiAgICBoaWdoZXN0U2NvcmUsXG4gICAgaGlnaGVzdFNjb3JlQWNoaWV2ZWRBdCxcbiAgICBsYXRlc3RTY29yZSxcbiAgICBsYXRlc3RTY29yZUFjaGlldmVkQXQsXG4gICAgbGV2ZWwsXG4gICAgb3V0Y29tZSxcbiAgICBwZXJjZW50Q29tcGxldGUsXG4gICAgc2tpbGxzLFxuICB9LFxuICBza2lsbFRhZ09uQ2xpY2ssXG4gIG9uQ2xvc2UsXG59KSA9PiB7XG4gIGNvbnN0IHBlcmNlbnRDb21wbGV0ZVBlcmNlbnRhZ2UgPVxuICAgIHBlcmNlbnRDb21wbGV0ZSAhPSBudWxsID8gcGVyY2VudENvbXBsZXRlIDogMDtcbiAgY29uc3QgbGV2ZWxMYWJlbCA9IGxlYXJuaW5nT3V0Y29tZUxhYmVsc1tsZXZlbF07XG5cbiAgY29uc3QgaGFzTG93TGF0ZXN0QXNzZXNzbWVudCA9IEJvb2xlYW4oXG4gICAgbGF0ZXN0U2NvcmUgIT0gbnVsbCAmJiBsYXRlc3RTY29yZSA8IDcwXG4gICk7XG5cbiAgY29uc3Qgc2hvd1NraWxscyA9ICEhc2tpbGxzPy5sZW5ndGg7XG4gIGNvbnN0IHNvcnRlZFNraWxscyA9IHNvcnRTa2lsbHNCeUNsYXNzaWZpY2F0aW9uKHNraWxscyk7XG5cbiAgY29uc3QgcmVuZGVyUHJvZ3Jlc3MgPSAoKSA9PiAoXG4gICAgPEZsZXhCb3ggYWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAge0Jvb2xlYW4ocGVyY2VudENvbXBsZXRlUGVyY2VudGFnZSA9PT0gMTAwKSAmJiAoXG4gICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgd2lkdGg9ezE2fVxuICAgICAgICAgIGhlaWdodD17MTZ9XG4gICAgICAgICAgYm9yZGVyUmFkaXVzPVwibWRcIlxuICAgICAgICAgIGJnPVwicHJpbWFyeVwiXG4gICAgICAgICAgbXI9ezh9XG4gICAgICAgICAgYWxpZ25JdGVtcz1cImNlbnRlclwiXG4gICAgICAgICAganVzdGlmeUNvbnRlbnQ9XCJjZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAgPFNtYWxsQ2hlY2tJY29uIHNpemU9ezExfSBjb2xvcj1cIndoaXRlXCIgLz5cbiAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgKX1cbiAgICAgIDxUZXh0XG4gICAgICAgIGNvbG9yPVwidGV4dFwiXG4gICAgICAgIHZhcmlhbnQ9XCJwLWxhcmdlXCJcbiAgICAgID57YCR7cGVyY2VudENvbXBsZXRlUGVyY2VudGFnZX0lIHByb2dyZXNzYH08L1RleHQ+XG4gICAgPC9GbGV4Qm94PlxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPEZseW91dFxuICAgICAgYXJpYS1sYWJlbD17YCR7bGV2ZWxMYWJlbH0gZGV0YWlsc2B9XG4gICAgICBjbG9zZUxhYmVsPXtgQ2xvc2UgJHtsZXZlbExhYmVsfSBkZXRhaWxzYH1cbiAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgIG9uQ2xvc2U9e29uQ2xvc2V9XG4gICAgICBvcGVuRnJvbT1cInJpZ2h0XCJcbiAgICAgIHRpdGxlPXs8VGV4dCB2YXJpYW50PVwidGl0bGUtc21cIj57YCR7bGV2ZWxMYWJlbH0gZGV0YWlsc2B9PC9UZXh0Pn1cbiAgICA+XG4gICAgICA8RmxleEJveCBnYXA9ezMyfSBtdD17MzJ9IG14PXsyNH0gY29sdW1uPlxuICAgICAgICB7LyogQmFkZ2VzLCBPdXRjb21lLCBUb3BpYyB0YWdzLCBQcm9ncmVzcyAqL31cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXsyNH0gY29sdW1uPlxuICAgICAgICAgIDxGbGV4Qm94IGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIDxMZWFybmluZ091dGNvbWVMZXZlbEJhZGdlIGxldmVsPXtsZXZlbH0gc2l6ZT1cImJhc2VcIiAvPlxuICAgICAgICAgICAge2hhc0xvd0xhdGVzdEFzc2Vzc21lbnQgJiYgPExlYXJuaW5nT3V0Y29tZUxvd0Fzc2Vzc21lbnRCYWRnZSAvPn1cbiAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgPEZsZXhCb3ggZ2FwPXsxNn0gY29sdW1uPlxuICAgICAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgICAgICBocmVmPXtsZWFybmluZ091dGNvbWVIcmVmfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBsZWFybmluZ091dGNvbWVPbkNsaWNrPy4oKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge291dGNvbWV9XG4gICAgICAgICAgICA8L1N0eWxlZEFuY2hvcj5cbiAgICAgICAgICAgIHtzaG93U2tpbGxzICYmIChcbiAgICAgICAgICAgICAgPEZsZXhCb3ggYWxpZ25JdGVtcz1cImNlbnRlclwiIGdhcD17MTJ9IGZsZXhXcmFwPVwid3JhcFwiPlxuICAgICAgICAgICAgICAgIHtzb3J0ZWRTa2lsbHMubWFwKChza2lsbCkgPT4gKFxuICAgICAgICAgICAgICAgICAgPFNraWxsVGFnXG4gICAgICAgICAgICAgICAgICAgIGtleT17c2tpbGwuaWR9XG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2tpbGwtdGFnXCJcbiAgICAgICAgICAgICAgICAgICAgcHg9ezh9XG4gICAgICAgICAgICAgICAgICAgIHB5PXs0fVxuICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwiaW50ZXJmYWNlXCJcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17Z2V0U2tpbGxzQXJlYVBhdGgoc2tpbGwuc2x1Zyl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNraWxsVGFnT25DbGljaz8uKHNraWxsLnNsdWcpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveCBjZW50ZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQ+e3NraWxsLnRpdGxlfTwvVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC9Ta2lsbFRhZz5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgPEZsZXhCb3ggYm9yZGVyWT17MX0gYm9yZGVyQ29sb3I9XCJiYWNrZ3JvdW5kLWhvdmVyXCIgcHk9ezE2fT5cbiAgICAgICAgICAgIHtyZW5kZXJQcm9ncmVzcygpfVxuICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgPC9GbGV4Qm94PlxuXG4gICAgICAgIHsvKiBBc3Nlc3NtZW50IHNjb3JlcyAqL31cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXsxNn0gY29sdW1uPlxuICAgICAgICAgIDxUZXh0IHZhcmlhbnQ9XCJ0aXRsZS14c1wiPkV2YWx1YXRpb24gcmVzdWx0czwvVGV4dD5cbiAgICAgICAgICA8TGVhcm5pbmdPdXRjb21lQXNzZXNzbWVudFNjb3Jlc1xuICAgICAgICAgICAgaGlnaGVzdFNjb3JlPXtoaWdoZXN0U2NvcmV9XG4gICAgICAgICAgICBoaWdoZXN0U2NvcmVBY2hpZXZlZEF0PXtoaWdoZXN0U2NvcmVBY2hpZXZlZEF0fVxuICAgICAgICAgICAgbGF0ZXN0U2NvcmU9e2xhdGVzdFNjb3JlfVxuICAgICAgICAgICAgbGF0ZXN0U2NvcmVBY2hpZXZlZEF0PXtsYXRlc3RTY29yZUFjaGlldmVkQXR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9GbGV4Qm94PlxuXG4gICAgICAgIHsvKiBGb3IgbGV2ZWwgMiBhbmQgMyBMT3Mgb25seTogQ2hpbGRyZW4gTE9zIGdvZXMgYmVsb3cgaGVyZSAqL31cblxuICAgICAgICB7LyogRm9yIGxldmVsIDIgTE9zIG9ubHk6IFBhcmVudCBMT3MgZ29lcyBiZWxvdyBoZXJlICovfVxuICAgICAgPC9GbGV4Qm94PlxuICAgIDwvRmx5b3V0PlxuICApO1xufTtcbiJdfQ== */");
|
|
34
|
+
export let SkillClassification = /*#__PURE__*/function (SkillClassification) {
|
|
35
|
+
SkillClassification["Language"] = "language";
|
|
36
|
+
SkillClassification["Subject"] = "subject";
|
|
37
|
+
return SkillClassification;
|
|
38
|
+
}({});
|
|
39
|
+
export const sortSkillsByClassification = skills => {
|
|
40
|
+
if (!skills?.length) return [];
|
|
41
|
+
const skillsCopy = skills.slice();
|
|
42
|
+
const sortedSkills = skillsCopy?.sort((a, b) => {
|
|
43
|
+
if (a?.classification === 'language') {
|
|
44
|
+
return -1;
|
|
45
|
+
}
|
|
46
|
+
if (b?.classification === 'subject') {
|
|
47
|
+
return 1;
|
|
48
|
+
}
|
|
49
|
+
return 0;
|
|
50
|
+
});
|
|
51
|
+
return sortedSkills;
|
|
52
|
+
};
|
|
53
|
+
const getSkillsAreaPath = skillSlug => {
|
|
54
|
+
return skillSlug ? `/skill-areas/${skillSlug}` : '/';
|
|
55
|
+
};
|
|
56
|
+
export const LearningOutcomeFlyout = ({
|
|
57
|
+
expanded,
|
|
58
|
+
learningOutcomeHref,
|
|
59
|
+
learningOutcomeOnClick,
|
|
60
|
+
learningOutcome: {
|
|
61
|
+
highestScore,
|
|
62
|
+
highestScoreAchievedAt,
|
|
63
|
+
latestScore,
|
|
64
|
+
latestScoreAchievedAt,
|
|
65
|
+
level,
|
|
66
|
+
outcome,
|
|
67
|
+
percentComplete,
|
|
68
|
+
skills
|
|
69
|
+
},
|
|
70
|
+
skillTagOnClick,
|
|
71
|
+
onClose
|
|
72
|
+
}) => {
|
|
73
|
+
const percentCompletePercentage = percentComplete != null ? percentComplete : 0;
|
|
74
|
+
const levelLabel = learningOutcomeLabels[level];
|
|
75
|
+
const hasLowLatestAssessment = Boolean(latestScore != null && latestScore < 70);
|
|
76
|
+
const showSkills = !!skills?.length;
|
|
77
|
+
const sortedSkills = sortSkillsByClassification(skills);
|
|
78
|
+
const renderProgress = () => /*#__PURE__*/_jsxs(FlexBox, {
|
|
79
|
+
alignItems: "center",
|
|
80
|
+
children: [Boolean(percentCompletePercentage === 100) && /*#__PURE__*/_jsx(FlexBox, {
|
|
81
|
+
width: 16,
|
|
82
|
+
height: 16,
|
|
83
|
+
borderRadius: "md",
|
|
84
|
+
bg: "primary",
|
|
85
|
+
mr: 8,
|
|
86
|
+
alignItems: "center",
|
|
87
|
+
justifyContent: "center",
|
|
88
|
+
children: /*#__PURE__*/_jsx(SmallCheckIcon, {
|
|
89
|
+
size: 11,
|
|
90
|
+
color: "white"
|
|
91
|
+
})
|
|
92
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
93
|
+
color: "text",
|
|
94
|
+
variant: "p-large",
|
|
95
|
+
children: `${percentCompletePercentage}% progress`
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
return /*#__PURE__*/_jsx(Flyout, {
|
|
99
|
+
"aria-label": `${levelLabel} details`,
|
|
100
|
+
closeLabel: `Close ${levelLabel} details`,
|
|
101
|
+
expanded: expanded,
|
|
102
|
+
onClose: onClose,
|
|
103
|
+
openFrom: "right",
|
|
104
|
+
title: /*#__PURE__*/_jsx(Text, {
|
|
105
|
+
variant: "title-sm",
|
|
106
|
+
children: `${levelLabel} details`
|
|
107
|
+
}),
|
|
108
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
109
|
+
gap: 32,
|
|
110
|
+
mt: 32,
|
|
111
|
+
mx: 24,
|
|
112
|
+
column: true,
|
|
113
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
114
|
+
gap: 24,
|
|
115
|
+
column: true,
|
|
116
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
117
|
+
justifyContent: "space-between",
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
children: [/*#__PURE__*/_jsx(LearningOutcomeLevelBadge, {
|
|
120
|
+
level: level,
|
|
121
|
+
size: "base"
|
|
122
|
+
}), hasLowLatestAssessment && /*#__PURE__*/_jsx(LearningOutcomeLowAssessmentBadge, {})]
|
|
123
|
+
}), /*#__PURE__*/_jsxs(FlexBox, {
|
|
124
|
+
gap: 16,
|
|
125
|
+
column: true,
|
|
126
|
+
children: [/*#__PURE__*/_jsx(StyledAnchor, {
|
|
127
|
+
href: learningOutcomeHref,
|
|
128
|
+
onClick: () => learningOutcomeOnClick?.(),
|
|
129
|
+
children: outcome
|
|
130
|
+
}), showSkills && /*#__PURE__*/_jsx(FlexBox, {
|
|
131
|
+
alignItems: "center",
|
|
132
|
+
gap: 12,
|
|
133
|
+
flexWrap: "wrap",
|
|
134
|
+
children: sortedSkills.map(skill => /*#__PURE__*/_jsx(SkillTag, {
|
|
135
|
+
"data-testid": "skill-tag",
|
|
136
|
+
px: 8,
|
|
137
|
+
py: 4,
|
|
138
|
+
variant: "interface",
|
|
139
|
+
href: getSkillsAreaPath(skill.slug),
|
|
140
|
+
onClick: () => skillTagOnClick?.(skill.slug),
|
|
141
|
+
children: /*#__PURE__*/_jsx(FlexBox, {
|
|
142
|
+
center: true,
|
|
143
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
144
|
+
children: skill.title
|
|
145
|
+
})
|
|
146
|
+
})
|
|
147
|
+
}, skill.id))
|
|
148
|
+
})]
|
|
149
|
+
}), /*#__PURE__*/_jsx(FlexBox, {
|
|
150
|
+
borderY: 1,
|
|
151
|
+
borderColor: "background-hover",
|
|
152
|
+
py: 16,
|
|
153
|
+
children: renderProgress()
|
|
154
|
+
})]
|
|
155
|
+
}), /*#__PURE__*/_jsxs(FlexBox, {
|
|
156
|
+
gap: 16,
|
|
157
|
+
column: true,
|
|
158
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
159
|
+
variant: "title-xs",
|
|
160
|
+
children: "Evaluation results"
|
|
161
|
+
}), /*#__PURE__*/_jsx(LearningOutcomeAssessmentScores, {
|
|
162
|
+
highestScore: highestScore,
|
|
163
|
+
highestScoreAchievedAt: highestScoreAchievedAt,
|
|
164
|
+
latestScore: latestScore,
|
|
165
|
+
latestScoreAchievedAt: latestScoreAchievedAt
|
|
166
|
+
})]
|
|
167
|
+
})]
|
|
168
|
+
})
|
|
169
|
+
});
|
|
170
|
+
};
|
|
@@ -29,7 +29,7 @@ const ProgressText = /*#__PURE__*/_styled(Text, {
|
|
|
29
29
|
[Progress.completed]: {}
|
|
30
30
|
}
|
|
31
31
|
})(props)
|
|
32
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQnFCIiwiZmlsZSI6Ii4uLy4uL3NyYy9MZWFybmluZ091dGNvbWVUaWxlL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuY2hvciwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IFNtYWxsQ2hlY2tJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgdmFyaWFudCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7XG4gIGxlYXJuaW5nT3V0Y29tZUxhYmVscyxcbiAgTGVhcm5pbmdPdXRjb21lTG93QXNzZXNzbWVudERvdCxcbn0gZnJvbSAnLi4vTGVhcm5pbmdPdXRjb21lQmFkZ2VzJztcbmltcG9ydCB7IExlYXJuaW5nT3V0Y29tZVBvcG92ZXIgfSBmcm9tICcuLi9MZWFybmluZ091dGNvbWVQb3BvdmVyJztcbmltcG9ydCB7IFRpbGUgfSBmcm9tICcuL1RpbGUnO1xuaW1wb3J0IHtcbiAgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wcyxcbiAgTGVhcm5pbmdPdXRjb21lVGlsZVByb3BzLFxuICBQcm9ncmVzcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IFByb2dyZXNzVGV4dCA9IHN0eWxlZChUZXh0KTx7IHByb2dyZXNzOiBQcm9ncmVzczsgaXNTbWFsbDogYm9vbGVhbiB9PihcbiAgKHByb3BzKSA9PiAoe1xuICAgIC4uLnZhcmlhbnQoe1xuICAgICAgcHJvcDogJ3Byb2dyZXNzJyxcbiAgICAgIGJhc2U6IHtcbiAgICAgICAgZm9udFNpemU6IDE0LFxuICAgICAgfSxcbiAgICAgIHZhcmlhbnRzOiB7XG4gICAgICAgIFtQcm9ncmVzcy5ub3RTdGFydGVkXToge1xuICAgICAgICAgIGNvbG9yOiAndGV4dC1zZWNvbmRhcnknLFxuICAgICAgICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgfSxcbiAgICAgICAgW1Byb2dyZXNzLmluUHJvZ3Jlc3NdOiB7XG4gICAgICAgICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICAgICAgICBmb250V2VpZ2h0OiBwcm9wcy5pc1NtYWxsID8gNDAwIDogNzAwLFxuICAgICAgICB9LFxuICAgICAgICBbUHJvZ3Jlc3MuY29tcGxldGVkXToge30sXG4gICAgICB9LFxuICAgIH0pKHByb3BzKSxcbiAgfSlcbik7XG5cbmNvbnN0IHByb2dyZXNzU3RhdGUgPSAocGVyY2VudENvbXBsZXRlOiBudW1iZXIpOiBQcm9ncmVzcyA9PiB7XG4gIGlmIChwZXJjZW50Q29tcGxldGUgPT09IDApIHtcbiAgICByZXR1cm4gUHJvZ3Jlc3Mubm90U3RhcnRlZDtcbiAgfVxuICBpZiAocGVyY2VudENvbXBsZXRlID4gMCAmJiBwZXJjZW50Q29tcGxldGUgPCAxMDApIHtcbiAgICByZXR1cm4gUHJvZ3Jlc3MuaW5Qcm9ncmVzcztcbiAgfVxuICByZXR1cm4gUHJvZ3Jlc3MuY29tcGxldGVkO1xufTtcblxuZXhwb3J0IGNvbnN0IExlYXJuaW5nT3V0Y29tZVRpbGU6IFJlYWN0LkZDPExlYXJuaW5nT3V0Y29tZVRpbGVQcm9wcz4gPSAoe1xuICBsZWFybmluZ091dGNvbWVEZXRhaWxzLFxuICBvbkNsaWNrLFxuICBob3ZlciA9IGZhbHNlLFxuICBwb3BvdmVyID0gZmFsc2UsXG4gIHNpemUgPSAnbm9ybWFsJyxcbn0pID0+IHtcbiAgY29uc3QgeyBpZCwgbGV2ZWwsIG91dGNvbWUsIGxhdGVzdFNjb3JlLCBwZXJjZW50Q29tcGxldGUgfSA9XG4gICAgbGVhcm5pbmdPdXRjb21lRGV0YWlscztcblxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBhY3RpdmVFbFJlZiA9IHVzZVJlZjxIVE1MQW5jaG9yRWxlbWVudD4obnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAvLyBJZiB0aGUgcG9wb3ZlciBpcyBvcGVuLCB3ZSB3YW50IHRvIGZvY3VzIHRoZSBhY3RpdmUgZWxlbWVudFxuICAgICAgYWN0aXZlRWxSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH0sIFtpc09wZW5dKTtcblxuICBjb25zdCBwb3BvdmVyUHJvcHMgPVxuICAgIHBvcG92ZXIgJiYgaG92ZXJcbiAgICAgID8ge1xuICAgICAgICAgIHJlZjogYWN0aXZlRWxSZWYsXG4gICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBzZXRJc09wZW4odHJ1ZSksXG4gICAgICAgICAgb25Nb3VzZUxlYXZlOiAoKSA9PiBzZXRJc09wZW4oZmFsc2UpLFxuICAgICAgICAgIG9uRm9jdXM6ICgpID0+IHNldElzT3Blbih0cnVlKSwgLy8gRm9yIGtleWJvYXJkIHVzZXJzXG4gICAgICAgICAgb25CbHVyOiAoKSA9PiBzZXRJc09wZW4oZmFsc2UpLCAvLyBDbG9zZSBvbiBibHVyXG4gICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBgJHtpZH0tcG9wb3ZlcmAsXG4gICAgICAgIH1cbiAgICAgIDoge307XG5cbiAgY29uc3QgaGlnaGVzdFNjb3JlID0gcG9wb3ZlclxuICAgID8gKGxlYXJuaW5nT3V0Y29tZURldGFpbHMgYXMgTGVhcm5pbmdPdXRjb21lUG9wb3ZlckRldGFpbHNQcm9wcylcbiAgICAgICAgPy5oaWdoZXN0U2NvcmVcbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwZXJjZW50Q29tcGxldGVWYWx1ZSA9IHBlcmNlbnRDb21wbGV0ZSA/PyAwO1xuICBjb25zdCBwcm9ncmVzcyA9IHByb2dyZXNzU3RhdGUocGVyY2VudENvbXBsZXRlVmFsdWUpO1xuXG4gIGNvbnN0IGlzQ29tcGxldGVkID0gcHJvZ3Jlc3MgPT09IFByb2dyZXNzLmNvbXBsZXRlZDtcbiAgY29uc3QgaXNTbWFsbCA9IHNpemUgPT09ICdzbWFsbCc7XG4gIGNvbnN0IGhhc0xvd0xhdGVzdEFzc2Vzc21lbnQgPSBCb29sZWFuKFxuICAgIGxhdGVzdFNjb3JlICE9IG51bGwgJiYgbGF0ZXN0U2NvcmUgPCA3MFxuICApO1xuICBjb25zdCBzaG93TG93QXNzZXNzbWVudERvdCA9IGhhc0xvd0xhdGVzdEFzc2Vzc21lbnQgJiYgIWlzU21hbGw7XG5cbiAgY29uc3QgbG93QXNzZXNzbWVudExhYmVsID0gaGFzTG93TGF0ZXN0QXNzZXNzbWVudFxuICAgID8gJ01vc3QgcmVjZW50IGFzc2Vzc21lbnQgc2NvcmUgaXMgYmVsb3cgNzAlLCBuZWVkcyByZXZpZXcuICdcbiAgICA6ICcnO1xuICBjb25zdCBkZWZhdWx0QXJpYUxhYmVsID0gYCR7bGVhcm5pbmdPdXRjb21lTGFiZWxzW2xldmVsXX06ICR7b3V0Y29tZX0gJHtsb3dBc3Nlc3NtZW50TGFiZWx9UHJvZ3Jlc3MgJHtwZXJjZW50Q29tcGxldGVWYWx1ZX0lIGNvbXBsZXRlZC5gO1xuICBjb25zdCBldmFsdWF0aW9uVmFsdWVzTGFiZWwgPVxuICAgIGlzT3BlbiAmJiAoaGlnaGVzdFNjb3JlIHx8IGxhdGVzdFNjb3JlKVxuICAgICAgPyBgRXZhbHVhdGlvbiBWYWx1ZXMgLSAke1xuICAgICAgICAgIGhpZ2hlc3RTY29yZSA/IGBIaWdoZXN0IGFzc2Vzc21lbnQgc2NvcmUgJHtoaWdoZXN0U2NvcmV9LiBgIDogJydcbiAgICAgICAgfSR7bGF0ZXN0U2NvcmUgPyBgUmVjZW50IGFzc2Vzc21lbnQgc2NvcmUgJHtsYXRlc3RTY29yZX0uYCA6ICcnfWBcbiAgICAgIDogJyc7XG5cbiAgcmV0dXJuIChcbiAgICA8QW5jaG9yXG4gICAgICBhcmlhLWxhYmVsPXtgJHtkZWZhdWx0QXJpYUxhYmVsfSAke2V2YWx1YXRpb25WYWx1ZXNMYWJlbH1gfVxuICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgey4uLnBvcG92ZXJQcm9wc31cbiAgICA+XG4gICAgICA8VGlsZSBob3Zlcj17aG92ZXJ9IHByb2dyZXNzPXtwcm9ncmVzc30gc2l6ZT17c2l6ZX0+XG4gICAgICAgIHtpc0NvbXBsZXRlZCA/IChcbiAgICAgICAgICA8U21hbGxDaGVja0ljb25cbiAgICAgICAgICAgIHNpemU9e2lzU21hbGwgPyAxMiA6IDE2fVxuICAgICAgICAgICAgdGV4dENvbG9yPVwiYmFja2dyb3VuZC1jb250cmFzdFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UHJvZ3Jlc3NUZXh0IHByb2dyZXNzPXtwcm9ncmVzc30gaXNTbWFsbD17aXNTbWFsbH0+XG4gICAgICAgICAgICB7YCR7cGVyY2VudENvbXBsZXRlVmFsdWV9JWB9XG4gICAgICAgICAgPC9Qcm9ncmVzc1RleHQ+XG4gICAgICAgICl9XG4gICAgICAgIHtzaG93TG93QXNzZXNzbWVudERvdCAmJiAoXG4gICAgICAgICAgPExlYXJuaW5nT3V0Y29tZUxvd0Fzc2Vzc21lbnREb3RcbiAgICAgICAgICAgIHBvc2l0aW9uPVwiYWJzb2x1dGVcIlxuICAgICAgICAgICAgdG9wPVwiLTIwJVwiXG4gICAgICAgICAgICByaWdodD1cIi0yMCVcIlxuICAgICAgICAgICAgaGFzQm9yZGVyXG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvVGlsZT5cbiAgICAgIHtpc09wZW4gJiYgKFxuICAgICAgICA8TGVhcm5pbmdPdXRjb21lUG9wb3ZlclxuICAgICAgICAgIGFjdGl2ZUVsUmVmPXthY3RpdmVFbFJlZn1cbiAgICAgICAgICBob3Jpem9udGFsT2Zmc2V0PXtpc1NtYWxsICYmIGlzQ29tcGxldGVkID8gMTU5IDogaXNTbWFsbCA/IDE1MyA6IDE1MH1cbiAgICAgICAgICBpZD17YCR7aWR9LXBvcG92ZXJgfVxuICAgICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICAgIGxlYXJuaW5nT3V0Y29tZURldGFpbHM9e1xuICAgICAgICAgICAgbGVhcm5pbmdPdXRjb21lRGV0YWlscyBhcyBMZWFybmluZ091dGNvbWVQb3BvdmVyRGV0YWlsc1Byb3BzXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICA8L0FuY2hvcj5cbiAgKTtcbn07XG4iXX0= */");
|
|
33
33
|
const progressState = percentComplete => {
|
|
34
34
|
if (percentComplete === 0) {
|
|
35
35
|
return Progress.notStarted;
|
|
@@ -40,7 +40,6 @@ const progressState = percentComplete => {
|
|
|
40
40
|
return Progress.completed;
|
|
41
41
|
};
|
|
42
42
|
export const LearningOutcomeTile = ({
|
|
43
|
-
href,
|
|
44
43
|
learningOutcomeDetails,
|
|
45
44
|
onClick,
|
|
46
45
|
hover = false,
|
|
@@ -85,7 +84,6 @@ export const LearningOutcomeTile = ({
|
|
|
85
84
|
return /*#__PURE__*/_jsxs(Anchor, {
|
|
86
85
|
"aria-label": `${defaultAriaLabel} ${evaluationValuesLabel}`,
|
|
87
86
|
variant: "interface",
|
|
88
|
-
href: href,
|
|
89
87
|
onClick: onClick,
|
|
90
88
|
...popoverProps,
|
|
91
89
|
children: [/*#__PURE__*/_jsxs(Tile, {
|
|
@@ -41,7 +41,6 @@ interface WithoutHoverAndWithoutPopover {
|
|
|
41
41
|
popover?: false;
|
|
42
42
|
}
|
|
43
43
|
export type LearningOutcomeTileProps = {
|
|
44
|
-
href: string;
|
|
45
44
|
onClick?: () => void;
|
|
46
45
|
size?: SizeType;
|
|
47
46
|
} & (WithHoverAndWithPopover | WithHoverAndWithoutPopover | WithoutHoverAndWithoutPopover);
|
|
@@ -13,8 +13,5 @@ export interface SkillPathCardProps {
|
|
|
13
13
|
timeToComplete?: number | null;
|
|
14
14
|
header?: React.ReactNode;
|
|
15
15
|
footer?: React.ReactNode;
|
|
16
|
-
openInNewTab?: boolean;
|
|
17
|
-
href: string;
|
|
18
|
-
onClick: () => void;
|
|
19
16
|
}
|
|
20
|
-
export declare const SkillPathCard:
|
|
17
|
+
export declare const SkillPathCard: React.FC<SkillPathCardProps>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { forwardRef } from 'react';
|
|
2
1
|
import { ContentGroupBaseCard } from '../ContentGroupBaseCard';
|
|
3
2
|
import { getPathImageUrl } from '../ContentGroupBaseCard/helpers';
|
|
4
|
-
import { CertificateComponent, CourseCountComponent } from '../ContentGroupBaseCard/shared';
|
|
3
|
+
import { CertificateComponent, CourseCountComponent, Divider } from '../ContentGroupBaseCard/shared';
|
|
5
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
-
export const SkillPathCard =
|
|
5
|
+
export const SkillPathCard = ({
|
|
7
6
|
title,
|
|
8
7
|
shortDescription,
|
|
9
8
|
difficulty,
|
|
@@ -15,11 +14,8 @@ export const SkillPathCard = /*#__PURE__*/forwardRef(({
|
|
|
15
14
|
isFullSize = false,
|
|
16
15
|
timeToComplete,
|
|
17
16
|
header,
|
|
18
|
-
footer
|
|
19
|
-
|
|
20
|
-
href,
|
|
21
|
-
onClick
|
|
22
|
-
}, ref) => {
|
|
17
|
+
footer
|
|
18
|
+
}) => {
|
|
23
19
|
return /*#__PURE__*/_jsxs(ContentGroupBaseCard, {
|
|
24
20
|
headerBackgroundColor: "blue-100",
|
|
25
21
|
headerText: "Skill path",
|
|
@@ -35,12 +31,8 @@ export const SkillPathCard = /*#__PURE__*/forwardRef(({
|
|
|
35
31
|
timeToComplete: timeToComplete,
|
|
36
32
|
header: header,
|
|
37
33
|
footer: footer,
|
|
38
|
-
|
|
39
|
-
href: href,
|
|
40
|
-
onClick: onClick,
|
|
41
|
-
ref: ref,
|
|
42
|
-
children: [/*#__PURE__*/_jsx(CourseCountComponent, {
|
|
34
|
+
children: [/*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(CourseCountComponent, {
|
|
43
35
|
count: courseCount
|
|
44
|
-
}), /*#__PURE__*/_jsx(CertificateComponent, {})]
|
|
36
|
+
}), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(CertificateComponent, {})]
|
|
45
37
|
});
|
|
46
|
-
}
|
|
38
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -46,8 +46,10 @@ export * from './InfoCard';
|
|
|
46
46
|
export * from './Konamimojisplosion';
|
|
47
47
|
export * from './LandingPage';
|
|
48
48
|
export * from './LayoutMenu';
|
|
49
|
+
export * from './LearningOutcomeAssessmentScores';
|
|
49
50
|
export * from './LearningOutcomeBadges';
|
|
50
51
|
export * from './LearningOutcomeCard';
|
|
52
|
+
export * from './LearningOutcomeFlyout';
|
|
51
53
|
export * from './LearningOutcomeTile';
|
|
52
54
|
export * from './lib/breakpointHooks';
|
|
53
55
|
export * from './ListSection';
|
|
@@ -71,7 +73,6 @@ export * from './PricingSection';
|
|
|
71
73
|
export * from './ProductFeatureShowcase';
|
|
72
74
|
export * from './ProLogoAlt';
|
|
73
75
|
export * from './RatingsBar';
|
|
74
|
-
export * from './Recurly';
|
|
75
76
|
export * from './ResourceCard';
|
|
76
77
|
export * from './ScoreSummary';
|
|
77
78
|
export * from './ScoreSummary/SubScores';
|
package/dist/index.js
CHANGED
|
@@ -46,8 +46,10 @@ export * from './InfoCard';
|
|
|
46
46
|
export * from './Konamimojisplosion';
|
|
47
47
|
export * from './LandingPage';
|
|
48
48
|
export * from './LayoutMenu';
|
|
49
|
+
export * from './LearningOutcomeAssessmentScores';
|
|
49
50
|
export * from './LearningOutcomeBadges';
|
|
50
51
|
export * from './LearningOutcomeCard';
|
|
52
|
+
export * from './LearningOutcomeFlyout';
|
|
51
53
|
export * from './LearningOutcomeTile';
|
|
52
54
|
export * from './lib/breakpointHooks';
|
|
53
55
|
export * from './ListSection';
|
|
@@ -71,7 +73,6 @@ export * from './PricingSection';
|
|
|
71
73
|
export * from './ProductFeatureShowcase';
|
|
72
74
|
export * from './ProLogoAlt';
|
|
73
75
|
export * from './RatingsBar';
|
|
74
|
-
export * from './Recurly';
|
|
75
76
|
export * from './ResourceCard';
|
|
76
77
|
export * from './ScoreSummary';
|
|
77
78
|
export * from './ScoreSummary/SubScores';
|
|
@@ -9,9 +9,7 @@ const meta = {
|
|
|
9
9
|
difficulty: CourseDifficulty.Beginner,
|
|
10
10
|
title: 'Python 101',
|
|
11
11
|
imageUrl: 'https://static-assets.codecademy.com/components/curriculum/path/front-end-engineer-career-path/curriculum-card.svg',
|
|
12
|
-
timeToComplete: 15
|
|
13
|
-
href: '/learn/paths/python-101',
|
|
14
|
-
onClick: () => {}
|
|
12
|
+
timeToComplete: 15
|
|
15
13
|
}
|
|
16
14
|
};
|
|
17
15
|
export default meta;
|
|
@@ -7,9 +7,7 @@ const meta = {
|
|
|
7
7
|
title: 'CLF-C02: AWS Certified Cloud Practitioner',
|
|
8
8
|
courseCount: 16,
|
|
9
9
|
shortDescription: 'Master AWS Cloud fundamentals, security, and migration strategies to prepare for the AWS Certified Cloud Practitioner exam (CLF-C02) and enhance your cloud skills.',
|
|
10
|
-
difficulty: CourseDifficulty.Beginner
|
|
11
|
-
href: '/learn/ext-paths/certification-prep-clf-c02',
|
|
12
|
-
onClick: () => {}
|
|
10
|
+
difficulty: CourseDifficulty.Beginner
|
|
13
11
|
}
|
|
14
12
|
};
|
|
15
13
|
export default meta;
|
|
@@ -9,9 +9,7 @@ const meta = {
|
|
|
9
9
|
pro: false,
|
|
10
10
|
shortDescription: 'Learn how to use JavaScript — a powerful and flexible programming language for adding website interactivity.',
|
|
11
11
|
difficulty: CourseDifficulty.Beginner,
|
|
12
|
-
timeToComplete: 3
|
|
13
|
-
href: '/learn/javascript',
|
|
14
|
-
onClick: () => {}
|
|
12
|
+
timeToComplete: 3
|
|
15
13
|
}
|
|
16
14
|
};
|
|
17
15
|
export default meta;
|
|
@@ -9,9 +9,7 @@ const meta = {
|
|
|
9
9
|
shortDescription: 'Web applications are constantly under threat. Authentication and authorization, protected data, and secure code will protect your web app.',
|
|
10
10
|
difficulty: CourseDifficulty.Intermediate,
|
|
11
11
|
imageUrl: 'https://static-assets.codecademy.com/components/curriculum/path/securing-express-applications/curriculum-card.svg',
|
|
12
|
-
timeToComplete: 10
|
|
13
|
-
href: '/learn/paths/securing-express-applications',
|
|
14
|
-
onClick: () => {}
|
|
12
|
+
timeToComplete: 10
|
|
15
13
|
}
|
|
16
14
|
};
|
|
17
15
|
export default meta;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Meta } from '@storybook/react';
|
|
2
|
+
import { LearningOutcomeAssessmentScores } from '../../LearningOutcomeAssessmentScores';
|
|
3
|
+
declare const meta: Meta<typeof LearningOutcomeAssessmentScores>;
|
|
4
|
+
export default meta;
|
|
5
|
+
export declare const Example: () => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const NoScores: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { LearningOutcomeAssessmentScores } from '../../LearningOutcomeAssessmentScores';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
const meta = {
|
|
4
|
+
component: LearningOutcomeAssessmentScores,
|
|
5
|
+
args: {}
|
|
6
|
+
};
|
|
7
|
+
export default meta;
|
|
8
|
+
export const Example = () => {
|
|
9
|
+
return /*#__PURE__*/_jsx(LearningOutcomeAssessmentScores, {
|
|
10
|
+
highestScore: 100,
|
|
11
|
+
highestScoreAchievedAt: "10/01",
|
|
12
|
+
latestScore: 50,
|
|
13
|
+
latestScoreAchievedAt: "10/23"
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
export const NoScores = () => {
|
|
17
|
+
return /*#__PURE__*/_jsx(LearningOutcomeAssessmentScores, {
|
|
18
|
+
highestScore: null,
|
|
19
|
+
highestScoreAchievedAt: null,
|
|
20
|
+
latestScore: null,
|
|
21
|
+
latestScoreAchievedAt: null
|
|
22
|
+
});
|
|
23
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Meta } from '@storybook/react';
|
|
2
|
+
import { LearningOutcomeFlyout } from '../../LearningOutcomeFlyout';
|
|
3
|
+
declare const meta: Meta<typeof LearningOutcomeFlyout>;
|
|
4
|
+
export default meta;
|
|
5
|
+
export declare const Example: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FillButton, FlexBox } from '@codecademy/gamut';
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { LearningOutcomeFlyout } from '../../LearningOutcomeFlyout';
|
|
4
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
const meta = {
|
|
6
|
+
component: LearningOutcomeFlyout,
|
|
7
|
+
args: {}
|
|
8
|
+
};
|
|
9
|
+
export default meta;
|
|
10
|
+
export const Example = () => {
|
|
11
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
12
|
+
const toggleOpen = () => setIsExpanded(!isExpanded);
|
|
13
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
14
|
+
children: [/*#__PURE__*/_jsx(FillButton, {
|
|
15
|
+
onClick: toggleOpen,
|
|
16
|
+
children: "Open Flyout"
|
|
17
|
+
}), /*#__PURE__*/_jsx(FlexBox, {
|
|
18
|
+
width: "100%",
|
|
19
|
+
children: /*#__PURE__*/_jsx(LearningOutcomeFlyout, {
|
|
20
|
+
expanded: isExpanded,
|
|
21
|
+
learningOutcome: {
|
|
22
|
+
highestScore: 100,
|
|
23
|
+
highestScoreAchievedAt: '10/01',
|
|
24
|
+
latestScore: 68,
|
|
25
|
+
latestScoreAchievedAt: '10/01',
|
|
26
|
+
level: 2,
|
|
27
|
+
outcome: 'Understand the basics of React',
|
|
28
|
+
percentComplete: 75
|
|
29
|
+
},
|
|
30
|
+
learningOutcomeHref: "/learning-outcomes/123",
|
|
31
|
+
onClose: () => setIsExpanded(false)
|
|
32
|
+
})
|
|
33
|
+
})]
|
|
34
|
+
});
|
|
35
|
+
};
|
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": "
|
|
4
|
+
"version": "3.0.0-alpha.220d4ef8ba.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@emotion/is-prop-valid": "^1.2.1",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A symbol used as the default value for contexts that require a provider. When
|
|
3
|
-
* calling useContext, we can throw an error if we find this symbol rather than
|
|
4
|
-
* a provided value. This is useful in cases where we want to consider null or
|
|
5
|
-
* undefined as valid provided values.
|
|
6
|
-
*/
|
|
7
|
-
export declare const NO_PROVIDER: unique symbol;
|
|
8
|
-
export type NoProvider = typeof NO_PROVIDER;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A symbol used as the default value for contexts that require a provider. When
|
|
3
|
-
* calling useContext, we can throw an error if we find this symbol rather than
|
|
4
|
-
* a provided value. This is useful in cases where we want to consider null or
|
|
5
|
-
* undefined as valid provided values.
|
|
6
|
-
*/
|
|
7
|
-
export const NO_PROVIDER = Symbol('no provider');
|