@codecademy/brand 3.0.0-alpha.2ba7921cce.0 → 3.0.0-alpha.39691db5eb.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/index.js +26 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.d.ts +4 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavPanels.js +98 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.d.ts +15 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.js +67 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.d.ts +7 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/consts.js +39 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.d.ts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.js +68 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +0 -0
- package/dist/Banner/EnhancedBanner.d.ts +1 -1
- package/dist/Banner/EnhancedBanner.js +5 -5
- package/dist/Banner/index.d.ts +1 -11
- package/dist/Banner/index.js +3 -24
- package/dist/CareerPathCard/index.d.ts +4 -1
- package/dist/CareerPathCard/index.js +15 -7
- package/dist/CertificationPathCard/index.d.ts +4 -1
- package/dist/CertificationPathCard/index.js +17 -9
- package/dist/ContentGroupBaseCard/index.d.ts +5 -3
- package/dist/ContentGroupBaseCard/index.js +129 -72
- package/dist/ContentGroupBaseCard/shared.js +29 -23
- package/dist/CourseCard/index.d.ts +4 -1
- package/dist/CourseCard/index.js +15 -11
- package/dist/CourseRecommendationsLink/index.d.ts +3 -0
- package/dist/CourseRecommendationsLink/index.js +27 -0
- package/dist/GlobalHeader/GlobalHeaderItems.js +1 -1
- package/dist/GlobalHeader/context.d.ts +8 -0
- package/dist/GlobalHeader/context.js +9 -0
- package/dist/GlobalHeader/index.d.ts +1 -0
- package/dist/GlobalHeader/index.js +47 -37
- package/dist/GlobalHeader/types.d.ts +1 -0
- package/dist/GlobalPage/index.d.ts +2 -2
- package/dist/GlobalPage/index.js +2 -2
- package/dist/LayoutMenu/AccordionMenu.d.ts +1 -0
- package/dist/LayoutMenu/AccordionMenu.js +5 -2
- package/dist/LayoutMenu/LayoutMenu.d.ts +2 -1
- package/dist/LayoutMenu/LayoutMenu.js +9 -7
- package/dist/LayoutMenuVariant/AccordionMenu.js +4 -4
- package/dist/Logos/shared.d.ts +7 -0
- package/dist/Recurly/context/NoProvider.d.ts +8 -0
- package/dist/Recurly/context/NoProvider.js +7 -0
- package/dist/Recurly/context/elements/index.d.ts +26 -0
- package/dist/Recurly/context/elements/index.js +46 -0
- package/dist/Recurly/context/index.d.ts +2 -0
- package/dist/Recurly/context/index.js +2 -0
- package/dist/Recurly/context/recurly/index.d.ts +30 -0
- package/dist/Recurly/context/recurly/index.js +50 -0
- package/dist/Recurly/context/recurly/loadRecurly.d.ts +6 -0
- package/dist/Recurly/context/recurly/loadRecurly.js +22 -0
- package/dist/Recurly/context/recurly/w.d.ts +14 -0
- package/dist/Recurly/context/recurly/w.js +4 -0
- package/dist/Recurly/fields/RecurlyField.d.ts +9 -0
- package/dist/Recurly/fields/RecurlyField.js +57 -0
- package/dist/Recurly/fields/elements.d.ts +17 -0
- package/dist/Recurly/fields/elements.js +106 -0
- package/dist/Recurly/fields/elements.test.js +79 -0
- package/dist/Recurly/fields/index.d.ts +2 -0
- package/dist/Recurly/fields/index.js +2 -0
- package/dist/Recurly/index.d.ts +2 -0
- package/dist/Recurly/index.js +2 -0
- package/dist/SkillPathCard/index.d.ts +4 -1
- package/dist/SkillPathCard/index.js +15 -7
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/stories/Molecules/ContentGroupBaseCard.stories.js +3 -1
- package/dist/stories/Molecules/CurriculumCards/CareerPathCard.stories.js +3 -1
- package/dist/stories/Molecules/CurriculumCards/CertificationPathCard.stories.js +3 -1
- package/dist/stories/Molecules/CurriculumCards/CourseCard.stories.js +3 -1
- package/dist/stories/Molecules/CurriculumCards/SkillPathCard.stories.js +3 -1
- package/dist/stories/Molecules/EnhancedBanner.stories.d.ts +3 -3
- package/dist/stories/Molecules/EnhancedBanner.stories.js +2 -12
- package/dist/stories/Molecules/Recurly.stories.d.ts +5 -0
- package/dist/stories/Molecules/Recurly.stories.js +56 -0
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { useTheme } from '@emotion/react';
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { useCallback } from 'react';
|
|
5
5
|
import { AppHeader, AppHeaderMobile, isAppHeaderItemWithHref } from '..';
|
|
6
|
+
import { GlobalHeaderItemClickContext } from './context';
|
|
6
7
|
import { anonDefaultHeaderItems, anonDefaultMobileHeaderItems, anonLandingHeaderItems, anonLandingMobileHeaderItems, anonLoginHeaderItems, anonLoginMobileHeaderItems, anonSignupHeaderItems, anonSignupMobileHeaderItems, enterpriseHeaderItems, enterpriseMobileHeaderItems, freeHeaderItems, freeMobileHeaderItems, loadingHeaderItems, loadingMobileHeaderItems, proHeaderItems, proMobileHeaderItems, simpleBootcampHeaderItems, simpleBootcampMobileHeaderItems, simpleHeaderItems, simpleMobileHeaderItems, teamsHeaderItems, teamsMobileHeaderItems } from './GlobalHeaderVariants';
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
9
|
export * from './types';
|
|
@@ -11,6 +12,7 @@ export const HeaderQuizContext = /*#__PURE__*/React.createContext({
|
|
|
11
12
|
showOnboardingQuiz: false,
|
|
12
13
|
showSortingQuiz: false
|
|
13
14
|
});
|
|
15
|
+
export const GlobalNavRedesignContext = /*#__PURE__*/React.createContext(false);
|
|
14
16
|
|
|
15
17
|
// Overloading getAppHeaderItems function to return different types based on mobile parameter
|
|
16
18
|
|
|
@@ -64,43 +66,51 @@ export const GlobalHeader = props => {
|
|
|
64
66
|
showOnboardingQuiz,
|
|
65
67
|
showSortingQuiz
|
|
66
68
|
},
|
|
67
|
-
children: /*#__PURE__*/
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
69
|
+
children: /*#__PURE__*/_jsx(GlobalNavRedesignContext.Provider, {
|
|
70
|
+
value: !!props.displayGlobalNavRedesign,
|
|
71
|
+
children: /*#__PURE__*/_jsx(GlobalHeaderItemClickContext.Provider, {
|
|
72
|
+
value: {
|
|
73
|
+
globalHeaderItemClick: combinedAction
|
|
74
|
+
},
|
|
75
|
+
children: /*#__PURE__*/_jsxs(Box, {
|
|
76
|
+
as: "header",
|
|
77
|
+
position: "sticky",
|
|
78
|
+
top: 0,
|
|
79
|
+
zIndex: theme.elements.headerZ,
|
|
80
|
+
overflow: {
|
|
81
|
+
_: 'hidden',
|
|
82
|
+
sm: 'visible'
|
|
83
|
+
} // Prevent tooltip overflow on mobile
|
|
84
|
+
,
|
|
85
|
+
children: [/*#__PURE__*/_jsx(AppHeader, {
|
|
86
|
+
action: combinedAction,
|
|
87
|
+
items: getAppHeaderItems(props, false),
|
|
88
|
+
search: props.search,
|
|
89
|
+
...(props.type === 'anon' ? {
|
|
90
|
+
redirectParam: props.redirectParam
|
|
91
|
+
} : hideNotification ? {} : {
|
|
92
|
+
notifications: props.notifications
|
|
93
|
+
}),
|
|
94
|
+
hideRightButtonDefaults: hideNotification,
|
|
95
|
+
isAnon: props.type === 'anon',
|
|
96
|
+
isTeams: props.type === 'teams',
|
|
97
|
+
type: hideNotification ? 'enterprise' : 'standard'
|
|
98
|
+
}), /*#__PURE__*/_jsx(AppHeaderMobile, {
|
|
99
|
+
action: combinedAction,
|
|
100
|
+
items: getAppHeaderItems(props, true),
|
|
101
|
+
...(props.type === 'anon' || hideNotification ? {} : {
|
|
102
|
+
notifications: props.notifications
|
|
103
|
+
}),
|
|
104
|
+
search: props.search,
|
|
105
|
+
redirectParam: props.type === 'anon' ? props.redirectParam : undefined,
|
|
106
|
+
isEnterprise: props.type === 'enterprise',
|
|
107
|
+
isAnon: props.type === 'anon',
|
|
108
|
+
isSimple: props.type === 'simple',
|
|
109
|
+
hideRightMenuButton: props.type === 'simple' || props.type === 'loading',
|
|
110
|
+
navigationMenuFormattedLabel: props?.localizedLabels?.navigationMenuFormattedLabel
|
|
111
|
+
}), props.children]
|
|
112
|
+
})
|
|
113
|
+
})
|
|
104
114
|
})
|
|
105
115
|
});
|
|
106
116
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ModalProps, WithChildrenProp } from '@codecademy/gamut';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { EnhancedBannerProps } from '../Banner/EnhancedBanner';
|
|
4
4
|
import { GlobalFooterProps } from '../GlobalFooter';
|
|
5
5
|
import { GlobalHeaderProps } from '../GlobalHeader';
|
|
6
6
|
export type GlobalPageBackgroundColor = 'beige' | 'background' | 'background-contrast' | 'navy' | 'paleBlue' | 'paleGreen' | 'palePink' | 'paleYellow' | 'white';
|
|
@@ -9,7 +9,7 @@ export interface GlobalPageProps extends WithChildrenProp {
|
|
|
9
9
|
/**
|
|
10
10
|
* Props directly passed to the Banner.
|
|
11
11
|
*/
|
|
12
|
-
banner?:
|
|
12
|
+
banner?: EnhancedBannerProps;
|
|
13
13
|
/**
|
|
14
14
|
* Element type to render around the children.
|
|
15
15
|
*/
|
package/dist/GlobalPage/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import { AppWrapper, Modal, SkipToContent, SkipToContentTarget } from '@codecade
|
|
|
2
2
|
import { Background } from '@codecademy/gamut-styles';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import * as React from 'react';
|
|
5
|
-
import {
|
|
5
|
+
import { EnhancedBanner } from '../Banner/EnhancedBanner';
|
|
6
6
|
import { GlobalFooter } from '../GlobalFooter';
|
|
7
7
|
import { GlobalHeader } from '../GlobalHeader';
|
|
8
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -35,7 +35,7 @@ export const GlobalPage = ({
|
|
|
35
35
|
minHeight: "100vh",
|
|
36
36
|
children: [/*#__PURE__*/_jsx(SkipToContent, {
|
|
37
37
|
contentId: skipToContentId || defaultSkipToContentId
|
|
38
|
-
}), banner && /*#__PURE__*/_jsx(
|
|
38
|
+
}), banner && /*#__PURE__*/_jsx(EnhancedBanner, {
|
|
39
39
|
...banner
|
|
40
40
|
}), !header.hideEnterpriseHeader && /*#__PURE__*/_jsx(GlobalHeader, {
|
|
41
41
|
...header
|
|
@@ -12,6 +12,7 @@ export type Section = {
|
|
|
12
12
|
slug: string;
|
|
13
13
|
items: SectionItem[];
|
|
14
14
|
};
|
|
15
|
+
export declare const isSection: (item: Section | React.ReactNode) => item is Section;
|
|
15
16
|
export type AccordionMenuProps = {
|
|
16
17
|
section: Section;
|
|
17
18
|
onSectionToggle: (sectionSlug: string) => void;
|
|
@@ -10,7 +10,7 @@ const StyledAccordionArea = /*#__PURE__*/_styled(AccordionAreaDeprecated, {
|
|
|
10
10
|
label: "StyledAccordionArea"
|
|
11
11
|
})("padding-bottom:", ({
|
|
12
12
|
theme
|
|
13
|
-
}) => theme.spacing[32], ";position:relative;left:-4px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVUyRCIsImZpbGUiOiIuLi8uLi9zcmMvTGF5b3V0TWVudS9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIFRleHQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzdGF0ZXMsIHRyYW5zaXRpb25Db25jYXQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCB7IFNjYWxlIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UvZGlzdC90eXBlcy9jb25maWcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2luZ1szMl19O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00cHg7XG5gO1xuXG5jb25zdCBjaGV2cm9uU3RhdGVzID0gc3RhdGVzKHtcbiAgZXhwYW5kZWQ6IHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0sXG59KTtcblxuY29uc3QgRXhwYW5kQ2hldnJvbiA9IHN0eWxlZChNaW5pQ2hldnJvbkRvd25JY29uKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgY2hldnJvblN0YXRlcz5cbj4oXG4gIGNzcyh7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyxcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uQ29uY2F0KFsndHJhbnNmb3JtJ10sICdzbG93JywgJ2Vhc2Utb3V0JyksXG4gIH0pLFxuICBjaGV2cm9uU3RhdGVzXG4pO1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uSXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgYmFkZ2U/
|
|
13
|
+
}) => theme.spacing[32], ";position:relative;left:-4px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVUyRCIsImZpbGUiOiIuLi8uLi9zcmMvTGF5b3V0TWVudS9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIFRleHQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dCc7XG5pbXBvcnQgeyBNaW5pQ2hldnJvbkRvd25JY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCBzdGF0ZXMsIHRyYW5zaXRpb25Db25jYXQgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgU3R5bGVQcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlJztcbmltcG9ydCB7IFNjYWxlIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UvZGlzdC90eXBlcy9jb25maWcnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ib3R0b206ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc3BhY2luZ1szMl19O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IC00cHg7XG5gO1xuXG5jb25zdCBjaGV2cm9uU3RhdGVzID0gc3RhdGVzKHtcbiAgZXhwYW5kZWQ6IHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0sXG59KTtcblxuY29uc3QgRXhwYW5kQ2hldnJvbiA9IHN0eWxlZChNaW5pQ2hldnJvbkRvd25JY29uKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgY2hldnJvblN0YXRlcz5cbj4oXG4gIGNzcyh7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyxcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uQ29uY2F0KFsndHJhbnNmb3JtJ10sICdzbG93JywgJ2Vhc2Utb3V0JyksXG4gIH0pLFxuICBjaGV2cm9uU3RhdGVzXG4pO1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uSXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgYmFkZ2U/OiBKU1guRWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFNlY3Rpb24gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaXRlbXM6IFNlY3Rpb25JdGVtW107XG59O1xuXG5leHBvcnQgY29uc3QgaXNTZWN0aW9uID0gKGl0ZW06IFNlY3Rpb24gfCBSZWFjdC5SZWFjdE5vZGUpOiBpdGVtIGlzIFNlY3Rpb24gPT4ge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJlxuICAgIGl0ZW0gIT09IG51bGwgJiZcbiAgICAndGl0bGUnIGluIGl0ZW0gJiZcbiAgICAnc2x1ZycgaW4gaXRlbSAmJlxuICAgICdpdGVtcycgaW4gaXRlbVxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjb3JkaW9uTWVudVByb3BzID0ge1xuICBzZWN0aW9uOiBTZWN0aW9uO1xuICBvblNlY3Rpb25Ub2dnbGU6IChzZWN0aW9uU2x1Zzogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkl0ZW1DbGljazogKCkgPT4gdm9pZDtcbiAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICB2ZXJ0aWNhbFNwYWNpbmc/OiBTY2FsZTx7XG4gICAgcmVhZG9ubHkgcHJvcGVydHk6ICdwYWRkaW5nJztcbiAgICByZWFkb25seSBzY2FsZTogJ3NwYWNpbmcnO1xuICB9Pjtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25NZW51OiBSZWFjdC5GQzxBY2NvcmRpb25NZW51UHJvcHM+ID0gKHtcbiAgc2VjdGlvbixcbiAgb25TZWN0aW9uVG9nZ2xlLFxuICBvbkl0ZW1DbGljayxcbiAgc2VsZWN0ZWRJdGVtLFxuICB2ZXJ0aWNhbFNwYWNpbmcsXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHB5PXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgID5cbiAgICAgICAgICA8VGV4dCB2YXJpYW50PVwidGl0bGUteHNcIiBzdHlsZT17eyBmbGV4OiAxIH19IHRleHRBbGlnbj1cImxlZnRcIj5cbiAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICA8RXhwYW5kQ2hldnJvblxuICAgICAgICAgICAgbWw9ezEyfVxuICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgICBwb3NpdGlvbj1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgIHRvcD17NH1cbiAgICAgICAgICAvPlxuICAgICAgICA8L0FuY2hvcj5cbiAgICAgIH1cbiAgICA+XG4gICAgICA8TGF5b3V0TWVudVNlY3Rpb25cbiAgICAgICAgaXRlbXM9e3NlY3Rpb24uaXRlbXN9XG4gICAgICAgIHNlbGVjdGVkSXRlbT17c2VsZWN0ZWRJdGVtfVxuICAgICAgICBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9XG4gICAgICAgIHZlcnRpY2FsU3BhY2luZz17dmVydGljYWxTcGFjaW5nfVxuICAgICAgLz5cbiAgICA8L1N0eWxlZEFjY29yZGlvbkFyZWE+XG4gICk7XG59O1xuIl19 */"));
|
|
14
14
|
const chevronStates = states({
|
|
15
15
|
expanded: {
|
|
16
16
|
transform: 'rotate(180deg)'
|
|
@@ -22,7 +22,10 @@ const ExpandChevron = /*#__PURE__*/_styled(MiniChevronDownIcon, {
|
|
|
22
22
|
})(css({
|
|
23
23
|
transform: 'rotate(0deg)',
|
|
24
24
|
transition: transitionConcat(['transform'], 'slow', 'ease-out')
|
|
25
|
-
}), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Cc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnUvQWNjb3JkaW9uTWVudS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvcmRpb25BcmVhRGVwcmVjYXRlZCwgQW5jaG9yLCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgeyBTY2FsZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlL2Rpc3QvdHlwZXMvY29uZmlnJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGF5b3V0TWVudVNlY3Rpb24gfSBmcm9tICcuL0xheW91dE1lbnVTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQXJlYSA9IHN0eWxlZChBY2NvcmRpb25BcmVhRGVwcmVjYXRlZClgXG4gIHBhZGRpbmctYm90dG9tOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMzJdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+
|
|
25
|
+
}), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0FjY29yZGlvbk1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9Cc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnUvQWNjb3JkaW9uTWVudS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2NvcmRpb25BcmVhRGVwcmVjYXRlZCwgQW5jaG9yLCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgeyBTY2FsZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlL2Rpc3QvdHlwZXMvY29uZmlnJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgTGF5b3V0TWVudVNlY3Rpb24gfSBmcm9tICcuL0xheW91dE1lbnVTZWN0aW9uJztcblxuY29uc3QgU3R5bGVkQWNjb3JkaW9uQXJlYSA9IHN0eWxlZChBY2NvcmRpb25BcmVhRGVwcmVjYXRlZClgXG4gIHBhZGRpbmctYm90dG9tOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMzJdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogSlNYLkVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGl0ZW1zOiBTZWN0aW9uSXRlbVtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2VjdGlvbiA9IChpdGVtOiBTZWN0aW9uIHwgUmVhY3QuUmVhY3ROb2RlKTogaXRlbSBpcyBTZWN0aW9uID0+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiZcbiAgICBpdGVtICE9PSBudWxsICYmXG4gICAgJ3RpdGxlJyBpbiBpdGVtICYmXG4gICAgJ3NsdWcnIGluIGl0ZW0gJiZcbiAgICAnaXRlbXMnIGluIGl0ZW1cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG4gIHNlbGVjdGVkSXRlbT86IHN0cmluZztcbiAgdmVydGljYWxTcGFjaW5nPzogU2NhbGU8e1xuICAgIHJlYWRvbmx5IHByb3BlcnR5OiAncGFkZGluZyc7XG4gICAgcmVhZG9ubHkgc2NhbGU6ICdzcGFjaW5nJztcbiAgfT47XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG4gIHNlbGVjdGVkSXRlbSxcbiAgdmVydGljYWxTcGFjaW5nLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEFjY29yZGlvbkFyZWFcbiAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgIHRvcD17XG4gICAgICAgIDxBbmNob3JcbiAgICAgICAgICB2YXJpYW50PVwiaW50ZXJmYWNlXCJcbiAgICAgICAgICBweT17MTJ9XG4gICAgICAgICAgcHg9ezR9XG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgb25TZWN0aW9uVG9nZ2xlKHNlY3Rpb24uc2x1Zyk7XG4gICAgICAgICAgICBzZXRFeHBhbmRlZCgocHJldikgPT4gIXByZXYpO1xuICAgICAgICAgIH19XG4gICAgICAgICAgYXJpYS1leHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICAgICAgZGlzcGxheT1cImZsZXhcIlxuICAgICAgICA+XG4gICAgICAgICAgPFRleHQgdmFyaWFudD1cInRpdGxlLXhzXCIgc3R5bGU9e3sgZmxleDogMSB9fSB0ZXh0QWxpZ249XCJsZWZ0XCI+XG4gICAgICAgICAgICB7c2VjdGlvbi50aXRsZX1cbiAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgPEV4cGFuZENoZXZyb25cbiAgICAgICAgICAgIG1sPXsxMn1cbiAgICAgICAgICAgIHNpemU9ezE0fVxuICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICB0b3A9ezR9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9BbmNob3I+XG4gICAgICB9XG4gICAgPlxuICAgICAgPExheW91dE1lbnVTZWN0aW9uXG4gICAgICAgIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfVxuICAgICAgICBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX1cbiAgICAgICAgb25JdGVtQ2xpY2s9e29uSXRlbUNsaWNrfVxuICAgICAgICB2ZXJ0aWNhbFNwYWNpbmc9e3ZlcnRpY2FsU3BhY2luZ31cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRBY2NvcmRpb25BcmVhPlxuICApO1xufTtcbiJdfQ== */");
|
|
26
|
+
export const isSection = item => {
|
|
27
|
+
return typeof item === 'object' && item !== null && 'title' in item && 'slug' in item && 'items' in item;
|
|
28
|
+
};
|
|
26
29
|
export const AccordionMenu = ({
|
|
27
30
|
section,
|
|
28
31
|
onSectionToggle,
|
|
@@ -9,8 +9,9 @@ export interface LayoutMenuProps extends WithChildrenProp {
|
|
|
9
9
|
closeLabel: string;
|
|
10
10
|
/**
|
|
11
11
|
* An array of sections containing the title, slug, and items, each of which will become an accordion. Each item contains a title, slug, and onClick.
|
|
12
|
+
* Arbitrary react nodes can also be passed and will be rendered as-is.
|
|
12
13
|
*/
|
|
13
|
-
sections: Section[];
|
|
14
|
+
sections: (Section | React.ReactNode)[];
|
|
14
15
|
/**
|
|
15
16
|
* The slug of the current selected item
|
|
16
17
|
*/
|
|
@@ -4,7 +4,7 @@ import { variant } from '@codecademy/gamut-styles';
|
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import { LogoCodecademy } from '../Logos';
|
|
7
|
-
import { AccordionMenu } from './AccordionMenu';
|
|
7
|
+
import { AccordionMenu, isSection } from './AccordionMenu';
|
|
8
8
|
import { LayoutMenuSection } from './LayoutMenuSection';
|
|
9
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
10
|
const StyleBox = /*#__PURE__*/_styled(Box, {
|
|
@@ -13,9 +13,6 @@ const StyleBox = /*#__PURE__*/_styled(Box, {
|
|
|
13
13
|
})(variant({
|
|
14
14
|
prop: 'menuHeight',
|
|
15
15
|
base: {
|
|
16
|
-
borderColor: 'black',
|
|
17
|
-
borderStyleBottom: 'solid',
|
|
18
|
-
borderWidthBottom: '1px',
|
|
19
16
|
overflowY: 'auto',
|
|
20
17
|
overflowX: 'hidden',
|
|
21
18
|
paddingTop: '4px',
|
|
@@ -33,7 +30,7 @@ const StyleBox = /*#__PURE__*/_styled(Box, {
|
|
|
33
30
|
paddingLeft: '8px'
|
|
34
31
|
}
|
|
35
32
|
}
|
|
36
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51L0xheW91dE1lbnUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEaUIiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnUvTGF5b3V0TWVudS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3gsIEZseW91dCwgU3Ryb2tlQnV0dG9uLCBXaXRoQ2hpbGRyZW5Qcm9wIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgdmFyaWFudCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTY2FsZSB9IGZyb20gJ0Bjb2RlY2FkZW15L3ZhcmlhbmNlL2Rpc3QvdHlwZXMvY29uZmlnJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMb2dvQ29kZWNhZGVteSB9IGZyb20gJy4uL0xvZ29zJztcbmltcG9ydCB7XG4gIEFjY29yZGlvbk1lbnUsXG4gIGlzU2VjdGlvbixcbiAgU2VjdGlvbixcbiAgU2VjdGlvbkl0ZW0sXG59IGZyb20gJy4vQWNjb3JkaW9uTWVudSc7XG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dE1lbnVQcm9wcyBleHRlbmRzIFdpdGhDaGlsZHJlblByb3Age1xuICAvKipcbiAgICogQWNjZXNzaWJpbGl0eSBsYWJlbCBmb3IgdGhlIG1vYmlsZSBGbHlvdXQncyBjbG9zZSBidXR0b24uXG4gICAqL1xuICBjbG9zZUxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBzZWN0aW9ucyBjb250YWluaW5nIHRoZSB0aXRsZSwgc2x1ZywgYW5kIGl0ZW1zLCBlYWNoIG9mIHdoaWNoIHdpbGwgYmVjb21lIGFuIGFjY29yZGlvbi4gRWFjaCBpdGVtIGNvbnRhaW5zIGEgdGl0bGUsIHNsdWcsIGFuZCBvbkNsaWNrLlxuICAgKiBBcmJpdHJhcnkgcmVhY3Qgbm9kZXMgY2FuIGFsc28gYmUgcGFzc2VkIGFuZCB3aWxsIGJlIHJlbmRlcmVkIGFzLWlzLlxuICAgKi9cbiAgc2VjdGlvbnM6IChTZWN0aW9uIHwgUmVhY3QuUmVhY3ROb2RlKVtdO1xuICAvKipcbiAgICogVGhlIHNsdWcgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgaXRlbVxuICAgKi9cbiAgc2VsZWN0ZWRJdGVtPzogc3RyaW5nO1xuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gYmUgcnVuIG9uIGNsaWNrIG9mIHRoZSBhY2NvcmRpb24gYnV0dG9uXG4gICAqL1xuICBvblNlY3Rpb25Ub2dnbGU6IChzZWN0aW9uU2x1Zzogc3RyaW5nKSA9PiB2b2lkO1xuICAvKipcbiAgICogVGV4dCBzaG93biBpbiBtb2JpbGUgYnV0dG9uIHRoYXQgb3BlbnMgZmx5b3V0IG9uIGNsaWNrXG4gICAqL1xuICBtb2JpbGVCdXR0b25UZXh0OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBCcmVha3BvaW50IGFib3ZlIHdoaWNoIHRoZSBtZW51IGJ1dHRvbiBkaXNwbGF5cyBhcyBhIGZ1bGwgc2lkZWJhclxuICAgKi9cbiAgYnJlYWtwb2ludD86ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xuICAvKipcbiAgICogQW4gYXJyYXkgb2Ygc2VjdGlvbiBpdGVtcywgZWFjaCBvZiB3aGljaCBiZWNvbWUgYW4gYWRkaXRpb25hbCBsaW5rIG9uIHRvcCBvZiB0aGUgYWNjb3JkaW9uIHNlY3Rpb24uXG4gICAqL1xuICB0b3BMaW5rU2VjdGlvbnM/OiBTZWN0aW9uSXRlbVtdO1xuICAvKipcbiAgICogU2V0IGZpeGVkIGhlaWdodCBmb3IgbWVudSB3aXRoIG92ZXJmbG93XG4gICAqL1xuICBtZW51SGVpZ2h0PzogJ3NtJyB8ICdtZCcgfCAnbGcnO1xuICB2ZXJ0aWNhbFNwYWNpbmc/OiBTY2FsZTx7XG4gICAgcmVhZG9ubHkgcHJvcGVydHk6ICdwYWRkaW5nJztcbiAgICByZWFkb25seSBzY2FsZTogJ3NwYWNpbmcnO1xuICB9Pjtcbn1cblxuY29uc3QgU3R5bGVCb3ggPSBzdHlsZWQoQm94KShcbiAgdmFyaWFudCh7XG4gICAgcHJvcDogJ21lbnVIZWlnaHQnLFxuICAgIGJhc2U6IHtcbiAgICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgICAgb3ZlcmZsb3dYOiAnaGlkZGVuJyxcbiAgICAgIHBhZGRpbmdUb3A6ICc0cHgnLFxuICAgICAgcGFkZGluZ0xlZnQ6ICc0cHgnLFxuICAgIH0sXG4gICAgdmFyaWFudHM6IHtcbiAgICAgIHNtOiB7XG4gICAgICAgIGhlaWdodDogJzYzMHB4JyxcbiAgICAgIH0sXG4gICAgICBtZDoge1xuICAgICAgICBoZWlnaHQ6ICcxMDAwcHgnLFxuICAgICAgfSxcbiAgICAgIGxnOiB7XG4gICAgICAgIGhlaWdodDogJzEzNzBweCcsXG4gICAgICAgIHBhZGRpbmdMZWZ0OiAnOHB4JyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBMYXlvdXRNZW51OiBSZWFjdC5GQzxMYXlvdXRNZW51UHJvcHM+ID0gKHtcbiAgY2xvc2VMYWJlbCxcbiAgc2VjdGlvbnMsXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgc2VsZWN0ZWRJdGVtLFxuICBtb2JpbGVCdXR0b25UZXh0LFxuICBicmVha3BvaW50ID0gJ2xnJyxcbiAgY2hpbGRyZW4sXG4gIHRvcExpbmtTZWN0aW9ucyxcbiAgbWVudUhlaWdodCxcbiAgdmVydGljYWxTcGFjaW5nLFxufSkgPT4ge1xuICBjb25zdCBbZXhwYW5kZWQsIHNldEV4cGFuZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBhY2NvcmRpb25NZW51U2VjdGlvbnMgPSBzZWN0aW9ucy5tYXAoKHNlY3Rpb24sIGkpID0+XG4gICAgaXNTZWN0aW9uKHNlY3Rpb24pID8gKFxuICAgICAgPEFjY29yZGlvbk1lbnVcbiAgICAgICAga2V5PXtzZWN0aW9uLnNsdWd9XG4gICAgICAgIHNlY3Rpb249e3NlY3Rpb259XG4gICAgICAgIG9uU2VjdGlvblRvZ2dsZT17b25TZWN0aW9uVG9nZ2xlfVxuICAgICAgICBvbkl0ZW1DbGljaz17KCkgPT4gc2V0RXhwYW5kZWQoZmFsc2UpfVxuICAgICAgICBzZWxlY3RlZEl0ZW09e3NlbGVjdGVkSXRlbX1cbiAgICAgICAgdmVydGljYWxTcGFjaW5nPXt2ZXJ0aWNhbFNwYWNpbmd9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG4gICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtpfT57c2VjdGlvbn08L1JlYWN0LkZyYWdtZW50PlxuICAgIClcbiAgKTtcblxuICBjb25zdCB0b3BMaW5rTGF5b3V0TWVudVNlY3Rpb25zID0gdG9wTGlua1NlY3Rpb25zICYmIChcbiAgICA8TGF5b3V0TWVudVNlY3Rpb25cbiAgICAgIGl0ZW1zPXt0b3BMaW5rU2VjdGlvbnN9XG4gICAgICBvbkl0ZW1DbGljaz17KCkgPT4gc2V0RXhwYW5kZWQoZmFsc2UpfVxuICAgICAgc2VsZWN0ZWRJdGVtPXtzZWxlY3RlZEl0ZW19XG4gICAgICBwYj17MzJ9XG4gICAgLz5cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxuYXY+XG4gICAgICA8Qm94IGRpc3BsYXk9e3sgXzogJ2Jsb2NrJywgW2JyZWFrcG9pbnRdOiAnbm9uZScgfX0+XG4gICAgICAgIDxGbHlvdXRcbiAgICAgICAgICBjbG9zZUxhYmVsPXtjbG9zZUxhYmVsfVxuICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiBzZXRFeHBhbmRlZChmYWxzZSl9XG4gICAgICAgICAgdGl0bGU9ezxMb2dvQ29kZWNhZGVteSBtYj17MzJ9IC8+fVxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBweD17MTZ9PlxuICAgICAgICAgICAge3RvcExpbmtMYXlvdXRNZW51U2VjdGlvbnN9XG4gICAgICAgICAgICB7YWNjb3JkaW9uTWVudVNlY3Rpb25zfVxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvQm94PlxuICAgICAgICA8L0ZseW91dD5cbiAgICAgICAgPFN0cm9rZUJ1dHRvblxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgIHZhcmlhbnQ9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIHdpZHRoPXsxfVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldEV4cGFuZGVkKHRydWUpfVxuICAgICAgICA+XG4gICAgICAgICAge21vYmlsZUJ1dHRvblRleHR9XG4gICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgPC9Cb3g+XG4gICAgICA8U3R5bGVCb3hcbiAgICAgICAgbWVudUhlaWdodD17bWVudUhlaWdodH1cbiAgICAgICAgZGlzcGxheT17eyBfOiAnbm9uZScsIFticmVha3BvaW50XTogJ2Jsb2NrJyB9fVxuICAgICAgICBkYXRhLXRlc3RpZD1cImRlc2t0b3AtbWVudVwiXG4gICAgICA+XG4gICAgICAgIHt0b3BMaW5rTGF5b3V0TWVudVNlY3Rpb25zfVxuICAgICAgICB7YWNjb3JkaW9uTWVudVNlY3Rpb25zfVxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1N0eWxlQm94PlxuICAgIDwvbmF2PlxuICApO1xufTtcbiJdfQ== */");
|
|
37
34
|
export const LayoutMenu = ({
|
|
38
35
|
closeLabel,
|
|
39
36
|
sections,
|
|
@@ -47,13 +44,18 @@ export const LayoutMenu = ({
|
|
|
47
44
|
verticalSpacing
|
|
48
45
|
}) => {
|
|
49
46
|
const [expanded, setExpanded] = useState(false);
|
|
50
|
-
const accordionMenuSections = sections.map(section => /*#__PURE__*/_jsx(AccordionMenu, {
|
|
47
|
+
const accordionMenuSections = sections.map((section, i) => isSection(section) ? /*#__PURE__*/_jsx(AccordionMenu, {
|
|
51
48
|
section: section,
|
|
52
49
|
onSectionToggle: onSectionToggle,
|
|
53
50
|
onItemClick: () => setExpanded(false),
|
|
54
51
|
selectedItem: selectedItem,
|
|
55
52
|
verticalSpacing: verticalSpacing
|
|
56
|
-
}, section.slug)
|
|
53
|
+
}, section.slug) :
|
|
54
|
+
/*#__PURE__*/
|
|
55
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
56
|
+
_jsx(React.Fragment, {
|
|
57
|
+
children: section
|
|
58
|
+
}, i));
|
|
57
59
|
const topLinkLayoutMenuSections = topLinkSections && /*#__PURE__*/_jsx(LayoutMenuSection, {
|
|
58
60
|
items: topLinkSections,
|
|
59
61
|
onItemClick: () => setExpanded(false),
|
|
@@ -11,9 +11,9 @@ const StyledAccordionArea = /*#__PURE__*/_styled(AccordionAreaDeprecated, {
|
|
|
11
11
|
label: "StyledAccordionArea"
|
|
12
12
|
})("padding-block:", ({
|
|
13
13
|
theme
|
|
14
|
-
}) => theme.spacing[16], ";position:relative;left:-4px
|
|
14
|
+
}) => theme.spacing[16], ";position:relative;left:-4px;&:not(:first-child){border-top:1px solid ", ({
|
|
15
15
|
theme
|
|
16
|
-
}) => theme.colors['navy-300'], ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTMkQiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnVWYXJpYW50L0FjY29yZGlvbk1lbnUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQsIEFuY2hvciwgQm94LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IExheW91dE1lbnVTZWN0aW9uIH0gZnJvbSAnLi9MYXlvdXRNZW51U2VjdGlvbic7XG5cbmNvbnN0IFN0eWxlZEFjY29yZGlvbkFyZWEgPSBzdHlsZWQoQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQpYFxuICBwYWRkaW5nLWJsb2NrOiAkeyh7IHRoZW1lIH0pID0+
|
|
16
|
+
}) => theme.colors['navy-300'], ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTMkQiLCJmaWxlIjoiLi4vLi4vc3JjL0xheW91dE1lbnVWYXJpYW50L0FjY29yZGlvbk1lbnUudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQsIEFuY2hvciwgQm94LCBUZXh0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWluaUNoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCB7IGNzcywgc3RhdGVzLCB0cmFuc2l0aW9uQ29uY2F0IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtc3R5bGVzJztcbmltcG9ydCB7IFN0eWxlUHJvcHMgfSBmcm9tICdAY29kZWNhZGVteS92YXJpYW5jZSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IExheW91dE1lbnVTZWN0aW9uIH0gZnJvbSAnLi9MYXlvdXRNZW51U2VjdGlvbic7XG5cbmNvbnN0IFN0eWxlZEFjY29yZGlvbkFyZWEgPSBzdHlsZWQoQWNjb3JkaW9uQXJlYURlcHJlY2F0ZWQpYFxuICBwYWRkaW5nLWJsb2NrOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLnNwYWNpbmdbMTZdfTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiAtNHB4O1xuXG4gICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yc1snbmF2eS0zMDAnXX07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEFuY2hvciA9IHN0eWxlZChBbmNob3IpYFxuICA6aG92ZXIge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5gO1xuXG5jb25zdCBjaGV2cm9uU3RhdGVzID0gc3RhdGVzKHtcbiAgZXhwYW5kZWQ6IHsgdHJhbnNmb3JtOiAncm90YXRlKDE4MGRlZyknIH0sXG59KTtcblxuY29uc3QgRXhwYW5kQ2hldnJvbiA9IHN0eWxlZChNaW5pQ2hldnJvbkRvd25JY29uKTxcbiAgU3R5bGVQcm9wczx0eXBlb2YgY2hldnJvblN0YXRlcz5cbj4oXG4gIGNzcyh7XG4gICAgdHJhbnNmb3JtOiAncm90YXRlKDBkZWcpJyxcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2l0aW9uQ29uY2F0KFsndHJhbnNmb3JtJ10sICdzbG93JywgJ2Vhc2Utb3V0JyksXG4gIH0pLFxuICBjaGV2cm9uU3RhdGVzXG4pO1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uSXRlbSA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBocmVmOiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgYmFkZ2U/OiBKU1guRWxlbWVudDtcbiAgdmFyaWFudD86IFJlYWN0LkNvbXBvbmVudFByb3BzPHR5cGVvZiBBbmNob3I+Wyd2YXJpYW50J107XG59O1xuXG5leHBvcnQgdHlwZSBTZWN0aW9uID0ge1xuICB0aXRsZTogc3RyaW5nO1xuICBzbHVnOiBzdHJpbmc7XG4gIGl0ZW1zOiBTZWN0aW9uSXRlbVtdO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjb3JkaW9uTWVudVByb3BzID0ge1xuICBzZWN0aW9uOiBTZWN0aW9uO1xuICBvblNlY3Rpb25Ub2dnbGU6IChzZWN0aW9uU2x1Zzogc3RyaW5nKSA9PiB2b2lkO1xuICBvbkl0ZW1DbGljazogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCBjb25zdCBBY2NvcmRpb25NZW51OiBSZWFjdC5GQzxBY2NvcmRpb25NZW51UHJvcHM+ID0gKHtcbiAgc2VjdGlvbixcbiAgb25TZWN0aW9uVG9nZ2xlLFxuICBvbkl0ZW1DbGljayxcbn0pID0+IHtcbiAgY29uc3QgW2V4cGFuZGVkLCBzZXRFeHBhbmRlZF0gPSB1c2VTdGF0ZSh0cnVlKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRBY2NvcmRpb25BcmVhXG4gICAgICBleHBhbmRlZD17ZXhwYW5kZWR9XG4gICAgICB0b3A9e1xuICAgICAgICA8U3R5bGVkQW5jaG9yXG4gICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgcGI9ezEyfVxuICAgICAgICAgIHB4PXs0fVxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgIG9uU2VjdGlvblRvZ2dsZShzZWN0aW9uLnNsdWcpO1xuICAgICAgICAgICAgc2V0RXhwYW5kZWQoKHByZXYpID0+ICFwcmV2KTtcbiAgICAgICAgICB9fVxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgIGRpc3BsYXk9XCJmbGV4XCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBkaXNwbGF5PVwiZmxleFwiIGp1c3RpZnlDb250ZW50PVwic3BhY2UtYmV0d2VlblwiIHdpZHRoPVwiMTAwJVwiPlxuICAgICAgICAgICAgPFRleHRcbiAgICAgICAgICAgICAgdmFyaWFudD1cInAtc21hbGxcIlxuICAgICAgICAgICAgICBzdHlsZT17eyBmbGV4OiAxLCBmb250V2VpZ2h0OiAnYm9sZCcgfX1cbiAgICAgICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzZWN0aW9uLnRpdGxlfVxuICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgPEV4cGFuZENoZXZyb25cbiAgICAgICAgICAgICAgbWw9ezEyfVxuICAgICAgICAgICAgICBzaXplPXsxNn1cbiAgICAgICAgICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgICAgICAgICBwb3NpdGlvbj1cInJlbGF0aXZlXCJcbiAgICAgICAgICAgICAgdG9wPXs0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0JveD5cbiAgICAgICAgPC9TdHlsZWRBbmNob3I+XG4gICAgICB9XG4gICAgPlxuICAgICAgPExheW91dE1lbnVTZWN0aW9uIGl0ZW1zPXtzZWN0aW9uLml0ZW1zfSBvbkl0ZW1DbGljaz17b25JdGVtQ2xpY2t9IC8+XG4gICAgPC9TdHlsZWRBY2NvcmRpb25BcmVhPlxuICApO1xufTtcbiJdfQ== */"));
|
|
17
17
|
const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
18
18
|
target: "e12elcd21",
|
|
19
19
|
label: "StyledAnchor"
|
|
@@ -22,7 +22,7 @@ const StyledAnchor = /*#__PURE__*/_styled(Anchor, {
|
|
|
22
22
|
styles: ":hover{color:inherit;}"
|
|
23
23
|
} : {
|
|
24
24
|
name: "8a4698",
|
|
25
|
-
styles: ":hover{color:inherit;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
25
|
+
styles: ":hover{color:inherit;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQm1DIiwiZmlsZSI6Ii4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlDaGV2cm9uRG93bkljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHN0YXRlcywgdHJhbnNpdGlvbkNvbmNhdCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ibG9jazogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjaW5nWzE2XX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTRweDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktMzAwJ119O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogSlNYLkVsZW1lbnQ7XG4gIHZhcmlhbnQ/OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQW5jaG9yPlsndmFyaWFudCddO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBpdGVtczogU2VjdGlvbkl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHBiPXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIiB3aWR0aD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgZmxleDogMSwgZm9udFdlaWdodDogJ2JvbGQnIH19XG4gICAgICAgICAgICAgIHRleHRBbGlnbj1cImxlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7c2VjdGlvbi50aXRsZX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxFeHBhbmRDaGV2cm9uXG4gICAgICAgICAgICAgIG1sPXsxMn1cbiAgICAgICAgICAgICAgc2l6ZT17MTZ9XG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgIHRvcD17NH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvU3R5bGVkQW5jaG9yPlxuICAgICAgfVxuICAgID5cbiAgICAgIDxMYXlvdXRNZW51U2VjdGlvbiBpdGVtcz17c2VjdGlvbi5pdGVtc30gb25JdGVtQ2xpY2s9e29uSXRlbUNsaWNrfSAvPlxuICAgIDwvU3R5bGVkQWNjb3JkaW9uQXJlYT5cbiAgKTtcbn07XG4iXX0= */",
|
|
26
26
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
27
27
|
});
|
|
28
28
|
const chevronStates = states({
|
|
@@ -36,7 +36,7 @@ const ExpandChevron = /*#__PURE__*/_styled(MiniChevronDownIcon, {
|
|
|
36
36
|
})(css({
|
|
37
37
|
transform: 'rotate(0deg)',
|
|
38
38
|
transition: transitionConcat(['transform'], 'slow', 'ease-out')
|
|
39
|
-
}), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
39
|
+
}), chevronStates, process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE2QnNCIiwiZmlsZSI6Ii4uLy4uL3NyYy9MYXlvdXRNZW51VmFyaWFudC9BY2NvcmRpb25NZW51LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjY29yZGlvbkFyZWFEZXByZWNhdGVkLCBBbmNob3IsIEJveCwgVGV4dCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlDaGV2cm9uRG93bkljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBjc3MsIHN0YXRlcywgdHJhbnNpdGlvbkNvbmNhdCB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgeyBTdHlsZVByb3BzIH0gZnJvbSAnQGNvZGVjYWRlbXkvdmFyaWFuY2UnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBMYXlvdXRNZW51U2VjdGlvbiB9IGZyb20gJy4vTGF5b3V0TWVudVNlY3Rpb24nO1xuXG5jb25zdCBTdHlsZWRBY2NvcmRpb25BcmVhID0gc3R5bGVkKEFjY29yZGlvbkFyZWFEZXByZWNhdGVkKWBcbiAgcGFkZGluZy1ibG9jazogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5zcGFjaW5nWzE2XX07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGVmdDogLTRweDtcblxuICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnNbJ25hdnktMzAwJ119O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRBbmNob3IgPSBzdHlsZWQoQW5jaG9yKWBcbiAgOmhvdmVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYDtcblxuY29uc3QgY2hldnJvblN0YXRlcyA9IHN0YXRlcyh7XG4gIGV4cGFuZGVkOiB7IHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyB9LFxufSk7XG5cbmNvbnN0IEV4cGFuZENoZXZyb24gPSBzdHlsZWQoTWluaUNoZXZyb25Eb3duSWNvbik8XG4gIFN0eWxlUHJvcHM8dHlwZW9mIGNoZXZyb25TdGF0ZXM+XG4+KFxuICBjc3Moe1xuICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgwZGVnKScsXG4gICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbkNvbmNhdChbJ3RyYW5zZm9ybSddLCAnc2xvdycsICdlYXNlLW91dCcpLFxuICB9KSxcbiAgY2hldnJvblN0YXRlc1xuKTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbkl0ZW0gPSB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHNsdWc6IHN0cmluZztcbiAgaHJlZjogc3RyaW5nO1xuICBvbkNsaWNrOiAoZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGJhZGdlPzogSlNYLkVsZW1lbnQ7XG4gIHZhcmlhbnQ/OiBSZWFjdC5Db21wb25lbnRQcm9wczx0eXBlb2YgQW5jaG9yPlsndmFyaWFudCddO1xufTtcblxuZXhwb3J0IHR5cGUgU2VjdGlvbiA9IHtcbiAgdGl0bGU6IHN0cmluZztcbiAgc2x1Zzogc3RyaW5nO1xuICBpdGVtczogU2VjdGlvbkl0ZW1bXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFjY29yZGlvbk1lbnVQcm9wcyA9IHtcbiAgc2VjdGlvbjogU2VjdGlvbjtcbiAgb25TZWN0aW9uVG9nZ2xlOiAoc2VjdGlvblNsdWc6IHN0cmluZykgPT4gdm9pZDtcbiAgb25JdGVtQ2xpY2s6ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgQWNjb3JkaW9uTWVudTogUmVhY3QuRkM8QWNjb3JkaW9uTWVudVByb3BzPiA9ICh7XG4gIHNlY3Rpb24sXG4gIG9uU2VjdGlvblRvZ2dsZSxcbiAgb25JdGVtQ2xpY2ssXG59KSA9PiB7XG4gIGNvbnN0IFtleHBhbmRlZCwgc2V0RXhwYW5kZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQWNjb3JkaW9uQXJlYVxuICAgICAgZXhwYW5kZWQ9e2V4cGFuZGVkfVxuICAgICAgdG9wPXtcbiAgICAgICAgPFN0eWxlZEFuY2hvclxuICAgICAgICAgIHZhcmlhbnQ9XCJpbnRlcmZhY2VcIlxuICAgICAgICAgIHBiPXsxMn1cbiAgICAgICAgICBweD17NH1cbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICBvblNlY3Rpb25Ub2dnbGUoc2VjdGlvbi5zbHVnKTtcbiAgICAgICAgICAgIHNldEV4cGFuZGVkKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgICAgfX1cbiAgICAgICAgICBhcmlhLWV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICBkaXNwbGF5PVwiZmxleFwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxCb3ggZGlzcGxheT1cImZsZXhcIiBqdXN0aWZ5Q29udGVudD1cInNwYWNlLWJldHdlZW5cIiB3aWR0aD1cIjEwMCVcIj5cbiAgICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICAgIHZhcmlhbnQ9XCJwLXNtYWxsXCJcbiAgICAgICAgICAgICAgc3R5bGU9e3sgZmxleDogMSwgZm9udFdlaWdodDogJ2JvbGQnIH19XG4gICAgICAgICAgICAgIHRleHRBbGlnbj1cImxlZnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7c2VjdGlvbi50aXRsZX1cbiAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgIDxFeHBhbmRDaGV2cm9uXG4gICAgICAgICAgICAgIG1sPXsxMn1cbiAgICAgICAgICAgICAgc2l6ZT17MTZ9XG4gICAgICAgICAgICAgIGV4cGFuZGVkPXtleHBhbmRlZH1cbiAgICAgICAgICAgICAgcG9zaXRpb249XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgIHRvcD17NH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgIDwvU3R5bGVkQW5jaG9yPlxuICAgICAgfVxuICAgID5cbiAgICAgIDxMYXlvdXRNZW51U2VjdGlvbiBpdGVtcz17c2VjdGlvbi5pdGVtc30gb25JdGVtQ2xpY2s9e29uSXRlbUNsaWNrfSAvPlxuICAgIDwvU3R5bGVkQWNjb3JkaW9uQXJlYT5cbiAgKTtcbn07XG4iXX0= */");
|
|
40
40
|
export const AccordionMenu = ({
|
|
41
41
|
section,
|
|
42
42
|
onSectionToggle,
|
package/dist/Logos/shared.d.ts
CHANGED
|
@@ -46,6 +46,9 @@ declare const logoStyles: import("@codecademy/variance/dist/types/config").Parse
|
|
|
46
46
|
readonly gridArea: {
|
|
47
47
|
readonly property: "gridArea";
|
|
48
48
|
};
|
|
49
|
+
readonly containerType: {
|
|
50
|
+
readonly property: "containerType";
|
|
51
|
+
};
|
|
49
52
|
readonly display: {
|
|
50
53
|
readonly property: "display";
|
|
51
54
|
};
|
|
@@ -227,6 +230,9 @@ declare const composedLogoStyles: import("@codecademy/variance/dist/types/config
|
|
|
227
230
|
readonly gridArea: {
|
|
228
231
|
readonly property: "gridArea";
|
|
229
232
|
};
|
|
233
|
+
readonly containerType: {
|
|
234
|
+
readonly property: "containerType";
|
|
235
|
+
};
|
|
230
236
|
readonly display: {
|
|
231
237
|
readonly property: "display";
|
|
232
238
|
};
|
|
@@ -454,6 +460,7 @@ export declare const StyledSVGWrapper: import("@emotion/styled").StyledComponent
|
|
|
454
460
|
gridArea?: import("@codecademy/variance/dist/types/config").Scale<{
|
|
455
461
|
readonly property: "gridArea";
|
|
456
462
|
}>;
|
|
463
|
+
containerType?: unknown;
|
|
457
464
|
display?: import("@codecademy/variance/dist/types/config").Scale<{
|
|
458
465
|
readonly property: "display";
|
|
459
466
|
}>;
|
|
@@ -0,0 +1,8 @@
|
|
|
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;
|
|
@@ -0,0 +1,7 @@
|
|
|
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');
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ElementsInstance } from '@recurly/recurly-js';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* A provider that provides the Elements instance via context.
|
|
5
|
+
*
|
|
6
|
+
* If used outside of a RecurlyProvider, it will throw an error.
|
|
7
|
+
*/
|
|
8
|
+
export declare function Elements({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
/**
|
|
10
|
+
* A hook that returns the Elements instance from context.
|
|
11
|
+
*
|
|
12
|
+
* If used outside of an Elements provider, it will throw an error.
|
|
13
|
+
*
|
|
14
|
+
* Within an Elements provider:
|
|
15
|
+
* - If used on the server, it will return undefined.
|
|
16
|
+
* - If used on the client, it will initially return undefined and then return
|
|
17
|
+
* the provided Elements instance once the Recurly library is loaded.
|
|
18
|
+
*
|
|
19
|
+
* @param options - An object to provide an alternate contextual error message
|
|
20
|
+
* to use if one tries to use this hook outside of an Elements provider.
|
|
21
|
+
*
|
|
22
|
+
* @returns The Elements instance.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useElements(options?: {
|
|
25
|
+
noProviderError?: string;
|
|
26
|
+
}): ElementsInstance | undefined;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
2
|
+
import { NO_PROVIDER } from '../NoProvider';
|
|
3
|
+
import { useRecurly } from '../recurly';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const ElementCtx = /*#__PURE__*/createContext(NO_PROVIDER);
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A provider that provides the Elements instance via context.
|
|
9
|
+
*
|
|
10
|
+
* If used outside of a RecurlyProvider, it will throw an error.
|
|
11
|
+
*/
|
|
12
|
+
export function Elements({
|
|
13
|
+
children
|
|
14
|
+
}) {
|
|
15
|
+
const recurly = useRecurly({
|
|
16
|
+
noProviderError: 'Elements must be used within a RecurlyProvider.'
|
|
17
|
+
});
|
|
18
|
+
const elements = useMemo(() => recurly?.Elements(), [recurly]);
|
|
19
|
+
return /*#__PURE__*/_jsx(ElementCtx.Provider, {
|
|
20
|
+
value: elements,
|
|
21
|
+
children: children
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* A hook that returns the Elements instance from context.
|
|
27
|
+
*
|
|
28
|
+
* If used outside of an Elements provider, it will throw an error.
|
|
29
|
+
*
|
|
30
|
+
* Within an Elements provider:
|
|
31
|
+
* - If used on the server, it will return undefined.
|
|
32
|
+
* - If used on the client, it will initially return undefined and then return
|
|
33
|
+
* the provided Elements instance once the Recurly library is loaded.
|
|
34
|
+
*
|
|
35
|
+
* @param options - An object to provide an alternate contextual error message
|
|
36
|
+
* to use if one tries to use this hook outside of an Elements provider.
|
|
37
|
+
*
|
|
38
|
+
* @returns The Elements instance.
|
|
39
|
+
*/
|
|
40
|
+
export function useElements(options) {
|
|
41
|
+
const elements = useContext(ElementCtx);
|
|
42
|
+
if (elements === NO_PROVIDER) {
|
|
43
|
+
throw new Error(options?.noProviderError ?? 'useElements must be used within a Elements provider.');
|
|
44
|
+
}
|
|
45
|
+
return elements;
|
|
46
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Recurly } from '@recurly/recurly-js';
|
|
2
|
+
import { PropsWithChildren } from 'react';
|
|
3
|
+
import { RecurlyConfig } from './loadRecurly';
|
|
4
|
+
export type RecurlyProviderProps = PropsWithChildren<RecurlyConfig>;
|
|
5
|
+
/**
|
|
6
|
+
* A provider that:
|
|
7
|
+
* - loads the Recurly library
|
|
8
|
+
* - ensures that only a single instance of the library is loaded
|
|
9
|
+
* - configures the library with the provided public key
|
|
10
|
+
* - provides the library instance via context
|
|
11
|
+
*/
|
|
12
|
+
export declare function RecurlyProvider({ children, ...config }: RecurlyProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
/**
|
|
14
|
+
* A hook that returns the Recurly instance from context.
|
|
15
|
+
*
|
|
16
|
+
* If used outside of a RecurlyProvider, it will throw an error.
|
|
17
|
+
*
|
|
18
|
+
* Within a RecurlyProvider:
|
|
19
|
+
* - If used on the server, it will return undefined.
|
|
20
|
+
* - If used on the client, it will initially return undefined and then return
|
|
21
|
+
* the provided Recurly instance once it is loaded.
|
|
22
|
+
*
|
|
23
|
+
* @param options - An object to provide an alternate contextual error message
|
|
24
|
+
* to use if one tries to use this hook outside of a RecurlyProvider.
|
|
25
|
+
*
|
|
26
|
+
* @returns The Recurly instance.
|
|
27
|
+
*/
|
|
28
|
+
export declare function useRecurly(options?: {
|
|
29
|
+
noProviderError?: string;
|
|
30
|
+
}): Recurly | undefined;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createContext, useContext, useEffect, useState } from 'react';
|
|
2
|
+
import { NO_PROVIDER } from '../NoProvider';
|
|
3
|
+
import { loadRecurly } from './loadRecurly';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
const RecurlyCtx = /*#__PURE__*/createContext(NO_PROVIDER);
|
|
6
|
+
/**
|
|
7
|
+
* A provider that:
|
|
8
|
+
* - loads the Recurly library
|
|
9
|
+
* - ensures that only a single instance of the library is loaded
|
|
10
|
+
* - configures the library with the provided public key
|
|
11
|
+
* - provides the library instance via context
|
|
12
|
+
*/
|
|
13
|
+
export function RecurlyProvider({
|
|
14
|
+
children,
|
|
15
|
+
...config
|
|
16
|
+
}) {
|
|
17
|
+
const [recurly, setRecurly] = useState(undefined);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
loadRecurly(config)?.then(setRecurly);
|
|
20
|
+
// Exclude `config` dependency as it should be treated as static.
|
|
21
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
22
|
+
}, []);
|
|
23
|
+
return /*#__PURE__*/_jsx(RecurlyCtx.Provider, {
|
|
24
|
+
value: recurly,
|
|
25
|
+
children: children
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A hook that returns the Recurly instance from context.
|
|
31
|
+
*
|
|
32
|
+
* If used outside of a RecurlyProvider, it will throw an error.
|
|
33
|
+
*
|
|
34
|
+
* Within a RecurlyProvider:
|
|
35
|
+
* - If used on the server, it will return undefined.
|
|
36
|
+
* - If used on the client, it will initially return undefined and then return
|
|
37
|
+
* the provided Recurly instance once it is loaded.
|
|
38
|
+
*
|
|
39
|
+
* @param options - An object to provide an alternate contextual error message
|
|
40
|
+
* to use if one tries to use this hook outside of a RecurlyProvider.
|
|
41
|
+
*
|
|
42
|
+
* @returns The Recurly instance.
|
|
43
|
+
*/
|
|
44
|
+
export function useRecurly(options) {
|
|
45
|
+
const recurly = useContext(RecurlyCtx);
|
|
46
|
+
if (recurly === NO_PROVIDER) {
|
|
47
|
+
throw new Error(options?.noProviderError ?? 'useRecurly must be used within a RecurlyProvider');
|
|
48
|
+
}
|
|
49
|
+
return recurly;
|
|
50
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { w } from './w';
|
|
2
|
+
export function loadRecurly(config) {
|
|
3
|
+
if (w && w._recurlyPromise) {
|
|
4
|
+
w._recurlyPromise = new Promise(resolve => {
|
|
5
|
+
const script = w.document.createElement('script');
|
|
6
|
+
script.src = 'https://js.recurly.com/v4/recurly.js';
|
|
7
|
+
script.async = true;
|
|
8
|
+
script.onload = () => {
|
|
9
|
+
const {
|
|
10
|
+
recurly
|
|
11
|
+
} = w;
|
|
12
|
+
if (!recurly) {
|
|
13
|
+
throw new Error('Recurly was not loaded by recurly.js');
|
|
14
|
+
}
|
|
15
|
+
recurly.configure(config);
|
|
16
|
+
resolve(recurly);
|
|
17
|
+
};
|
|
18
|
+
w.document.head.appendChild(script);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return w?._recurlyPromise;
|
|
22
|
+
}
|