@codecademy/brand 3.1.0-alpha.bcd9df13f1.0 → 3.1.0-alpha.bd3791eaf9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.d.ts +3 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +83 -0
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/NavPanels.js +4 -44
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/consts.d.ts +5 -1
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/consts.js +6 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/index.js +8 -6
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.d.ts +4 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderFeatureCard/index.js +52 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +0 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.d.ts +11 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/NavPanels.js +140 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.d.ts +18 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/consts.js +273 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderResourcesDropdown/index.js +31 -5
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/AppHeaderSectionVariant.test.js +83 -0
- package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderSectionVariant}/NavSection.d.ts +2 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/NavSection.js +79 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/PanelLayout.d.ts +10 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/PanelLayout.js +54 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/index.d.ts +17 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/index.js +86 -0
- package/dist/AppHeaderMobile/AppHeaderCatalogSectonVariantMobile/index.js +3 -3
- package/dist/GlobalHeader/types.d.ts +32 -0
- package/package.json +1 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/NavSection.js +0 -75
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.d.ts +0 -11
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogSectionVariant/index.js +0 -100
- /package/dist/AppHeader/AppHeaderElements/{AppHeaderCatalogSectionVariant → AppHeaderCatalogDropdown}/NavPanels.d.ts +0 -0
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { ArticleIcon, BulbIcon, DiamondIcon, FileIcon, NotebookIcon, ProjectsIcon, RulerTriangleIcon, VideoPlayerMovieIcon } from '@codecademy/gamut-icons';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { DocsPanel, InspirationPanel, LearningToolsPanel, PracticeToolsPanel } from './NavPanels';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const RESOURCES_NAV_SECTIONS = [{
|
|
6
|
+
item: {
|
|
7
|
+
icon: FileIcon,
|
|
8
|
+
text: 'Docs',
|
|
9
|
+
id: 'docs',
|
|
10
|
+
type: 'resources-dropdown',
|
|
11
|
+
trackingTarget: 'topnav_resources_docs'
|
|
12
|
+
},
|
|
13
|
+
panel: DocsPanel
|
|
14
|
+
}, {
|
|
15
|
+
item: {
|
|
16
|
+
icon: RulerTriangleIcon,
|
|
17
|
+
text: 'Learning tools',
|
|
18
|
+
id: 'learning-tools',
|
|
19
|
+
type: 'resources-dropdown',
|
|
20
|
+
trackingTarget: 'topnav_resources_learning_tools'
|
|
21
|
+
},
|
|
22
|
+
panel: LearningToolsPanel
|
|
23
|
+
}, {
|
|
24
|
+
item: {
|
|
25
|
+
icon: DiamondIcon,
|
|
26
|
+
text: 'Practice tools',
|
|
27
|
+
id: 'practice-tools',
|
|
28
|
+
type: 'resources-dropdown',
|
|
29
|
+
trackingTarget: 'topnav_resources_practice_tools'
|
|
30
|
+
},
|
|
31
|
+
panel: PracticeToolsPanel
|
|
32
|
+
}, {
|
|
33
|
+
item: {
|
|
34
|
+
icon: BulbIcon,
|
|
35
|
+
text: 'Inspiration',
|
|
36
|
+
id: 'inspiration',
|
|
37
|
+
type: 'resources-dropdown',
|
|
38
|
+
trackingTarget: 'topnav_resources_inspiration'
|
|
39
|
+
},
|
|
40
|
+
panel: InspirationPanel
|
|
41
|
+
}];
|
|
42
|
+
export const docsLinks = [{
|
|
43
|
+
id: 'c',
|
|
44
|
+
href: '/resources/docs/c',
|
|
45
|
+
trackingTarget: 'topnav_resources_docs_c',
|
|
46
|
+
text: 'C',
|
|
47
|
+
type: 'link'
|
|
48
|
+
}, {
|
|
49
|
+
id: 'html',
|
|
50
|
+
href: '/resources/docs/html',
|
|
51
|
+
trackingTarget: 'topnav_resources_docs_html',
|
|
52
|
+
text: 'HTML',
|
|
53
|
+
type: 'link'
|
|
54
|
+
}, {
|
|
55
|
+
id: 'python',
|
|
56
|
+
href: '/resources/docs/python',
|
|
57
|
+
trackingTarget: 'topnav_resources_docs_python',
|
|
58
|
+
text: 'Python',
|
|
59
|
+
type: 'link'
|
|
60
|
+
}, {
|
|
61
|
+
id: 'cpp',
|
|
62
|
+
href: '/resources/docs/cpp',
|
|
63
|
+
trackingTarget: 'topnav_resources_docs_cpp',
|
|
64
|
+
text: 'C++',
|
|
65
|
+
type: 'link'
|
|
66
|
+
}, {
|
|
67
|
+
id: 'java',
|
|
68
|
+
href: '/resources/docs/java',
|
|
69
|
+
trackingTarget: 'topnav_resources_docs_java',
|
|
70
|
+
text: 'Java',
|
|
71
|
+
type: 'link'
|
|
72
|
+
}, {
|
|
73
|
+
id: 'react',
|
|
74
|
+
href: '/resources/docs/react',
|
|
75
|
+
trackingTarget: 'topnav_resources_docs_react',
|
|
76
|
+
text: 'React',
|
|
77
|
+
type: 'link'
|
|
78
|
+
}, {
|
|
79
|
+
id: 'css',
|
|
80
|
+
href: '/resources/docs/css',
|
|
81
|
+
trackingTarget: 'topnav_resources_docs_css',
|
|
82
|
+
text: 'CSS',
|
|
83
|
+
type: 'link'
|
|
84
|
+
}, {
|
|
85
|
+
id: 'javascript',
|
|
86
|
+
href: '/resources/docs/javascript',
|
|
87
|
+
trackingTarget: 'topnav_resources_docs_javascript',
|
|
88
|
+
text: 'JavaScript',
|
|
89
|
+
type: 'link'
|
|
90
|
+
}, {
|
|
91
|
+
id: 'sql',
|
|
92
|
+
href: '/resources/docs/sql',
|
|
93
|
+
trackingTarget: 'topnav_resources_docs_sql',
|
|
94
|
+
text: 'SQL',
|
|
95
|
+
type: 'link'
|
|
96
|
+
}, {
|
|
97
|
+
id: 'git',
|
|
98
|
+
href: '/resources/docs/git',
|
|
99
|
+
trackingTarget: 'topnav_resources_docs_git',
|
|
100
|
+
text: 'Git',
|
|
101
|
+
type: 'link'
|
|
102
|
+
}, {
|
|
103
|
+
id: 'php',
|
|
104
|
+
href: '/resources/docs/php',
|
|
105
|
+
trackingTarget: 'topnav_resources_docs_php',
|
|
106
|
+
text: 'PHP',
|
|
107
|
+
type: 'link'
|
|
108
|
+
}, {
|
|
109
|
+
id: 'uiux',
|
|
110
|
+
href: '/resources/docs/uiux',
|
|
111
|
+
trackingTarget: 'topnav_resources_docs_uiux',
|
|
112
|
+
text: 'UI/UX',
|
|
113
|
+
type: 'link'
|
|
114
|
+
}, {
|
|
115
|
+
id: 'markdown',
|
|
116
|
+
href: '/resources/docs/markdown',
|
|
117
|
+
trackingTarget: 'topnav_resources_docs_markdown',
|
|
118
|
+
text: 'Markdown',
|
|
119
|
+
type: 'link'
|
|
120
|
+
}, {
|
|
121
|
+
id: 'data-science',
|
|
122
|
+
href: '/resources/docs/data-science',
|
|
123
|
+
trackingTarget: 'topnav_resources_docs_data_science',
|
|
124
|
+
text: 'Data science',
|
|
125
|
+
type: 'link'
|
|
126
|
+
}, {
|
|
127
|
+
id: 'ai',
|
|
128
|
+
href: '/resources/docs/ai',
|
|
129
|
+
trackingTarget: 'topnav_resources_docs_ai',
|
|
130
|
+
text: 'AI',
|
|
131
|
+
type: 'link'
|
|
132
|
+
}, {
|
|
133
|
+
id: 'data-visualization',
|
|
134
|
+
href: '/resources/docs/data-visualization',
|
|
135
|
+
trackingTarget: 'topnav_resources_docs_data_visualization',
|
|
136
|
+
text: 'Data visualization',
|
|
137
|
+
type: 'link'
|
|
138
|
+
}, {
|
|
139
|
+
id: 'typescript',
|
|
140
|
+
href: '/resources/docs/typescript',
|
|
141
|
+
trackingTarget: 'topnav_resources_docs_typescript',
|
|
142
|
+
text: 'TypeScript',
|
|
143
|
+
type: 'link'
|
|
144
|
+
}, {
|
|
145
|
+
id: 'ruby',
|
|
146
|
+
href: '/resources/docs/ruby',
|
|
147
|
+
trackingTarget: 'topnav_resources_docs_ruby',
|
|
148
|
+
text: 'Ruby',
|
|
149
|
+
type: 'link'
|
|
150
|
+
}];
|
|
151
|
+
export const learningToolsLinks = [{
|
|
152
|
+
linkItem: {
|
|
153
|
+
id: 'projects',
|
|
154
|
+
href: '/projects',
|
|
155
|
+
trackingTarget: 'topnav_resources_projects',
|
|
156
|
+
text: 'Projects',
|
|
157
|
+
type: 'link'
|
|
158
|
+
},
|
|
159
|
+
icon: /*#__PURE__*/_jsx(ProjectsIcon, {}),
|
|
160
|
+
description: "Projects let you apply what you're learning. Practice new skills, connect concepts, or put it all together to create something of your own."
|
|
161
|
+
}, {
|
|
162
|
+
linkItem: {
|
|
163
|
+
id: 'cheatsheets',
|
|
164
|
+
href: '/resources/cheatsheets/all',
|
|
165
|
+
trackingTarget: 'topnav_resources_cheatsheets',
|
|
166
|
+
text: 'Cheatsheets',
|
|
167
|
+
type: 'link'
|
|
168
|
+
},
|
|
169
|
+
icon: /*#__PURE__*/_jsx(NotebookIcon, {}),
|
|
170
|
+
description: 'Sagittis magna mattis risus et tortor. Id morbi ornare mi convallis non. Lorem dis vulputate morbi porttitor tincidunt. Ullamcorper risus eu vestibulum malesuada ullamcorper.'
|
|
171
|
+
}, {
|
|
172
|
+
linkItem: {
|
|
173
|
+
id: 'articles',
|
|
174
|
+
href: '/articles',
|
|
175
|
+
trackingTarget: 'topnav_resources_articles',
|
|
176
|
+
text: 'Articles',
|
|
177
|
+
type: 'link'
|
|
178
|
+
},
|
|
179
|
+
icon: /*#__PURE__*/_jsx(ArticleIcon, {}),
|
|
180
|
+
description: "Articles are more in-depth explanations about concepts covered in Codecademy courses. Here you'll learn more about workflows that developers use every day, and take your coding skills to the next level."
|
|
181
|
+
}, {
|
|
182
|
+
linkItem: {
|
|
183
|
+
id: 'videos',
|
|
184
|
+
href: '/resources/videos',
|
|
185
|
+
trackingTarget: 'topnav_resources_videos',
|
|
186
|
+
text: 'Videos',
|
|
187
|
+
type: 'link'
|
|
188
|
+
},
|
|
189
|
+
icon: /*#__PURE__*/_jsx(VideoPlayerMovieIcon, {}),
|
|
190
|
+
description: 'Watch our best programming videos for beginner, intermediate, and advanced learners about languages, frameworks, and more.'
|
|
191
|
+
}];
|
|
192
|
+
export const practiceToolsLinks = [{
|
|
193
|
+
linkItem: {
|
|
194
|
+
id: 'interview-simulator',
|
|
195
|
+
href: '/interview-simulator',
|
|
196
|
+
trackingTarget: 'topnav_resources_interview_simulator',
|
|
197
|
+
text: 'Interview Simulator',
|
|
198
|
+
type: 'link'
|
|
199
|
+
},
|
|
200
|
+
icon: /*#__PURE__*/_jsx(ProjectsIcon, {}),
|
|
201
|
+
description: 'Discover your potential through interviewing. Identify your strengths, get actionable feedback, and boost your confidence with customized practice — at any stage in your tech career.'
|
|
202
|
+
}, {
|
|
203
|
+
linkItem: {
|
|
204
|
+
id: 'job-readiness',
|
|
205
|
+
href: '/job-readiness',
|
|
206
|
+
trackingTarget: 'topnav_resources_job_readiness',
|
|
207
|
+
text: 'Job-Readiness Checker',
|
|
208
|
+
type: 'link'
|
|
209
|
+
},
|
|
210
|
+
icon: /*#__PURE__*/_jsx(NotebookIcon, {}),
|
|
211
|
+
description: "Add a LinkedIn or ZipRecruiter job posting to analyze how your skills fit the job. You'll need to add more information for jobs found on other websites."
|
|
212
|
+
}, {
|
|
213
|
+
linkItem: {
|
|
214
|
+
id: 'code-challenges',
|
|
215
|
+
href: '/code-challenges',
|
|
216
|
+
trackingTarget: 'topnav_resources_code_challenges',
|
|
217
|
+
text: 'Code Challenges',
|
|
218
|
+
type: 'link'
|
|
219
|
+
},
|
|
220
|
+
icon: /*#__PURE__*/_jsx(ArticleIcon, {}),
|
|
221
|
+
description: "Test your knowledge with code challenges based on real-world technical interviews from companies like Google, Amazon, and Meta. Practice for your job search — or for fun. Don't worry if you get stuck. We'll recommend the right courses to help you."
|
|
222
|
+
}, {
|
|
223
|
+
linkItem: {
|
|
224
|
+
id: 'workspaces',
|
|
225
|
+
href: '/pages/workspaces',
|
|
226
|
+
trackingTarget: 'topnav_resources_workspaces',
|
|
227
|
+
text: 'Workspaces',
|
|
228
|
+
type: 'link'
|
|
229
|
+
},
|
|
230
|
+
icon: /*#__PURE__*/_jsx(VideoPlayerMovieIcon, {}),
|
|
231
|
+
description: 'Practice building projects in 13 popular languages and libraries, tinker with code, and share your work—all without leaving your browser.'
|
|
232
|
+
}];
|
|
233
|
+
export const inspirationLinks = [{
|
|
234
|
+
linkItem: {
|
|
235
|
+
id: 'learning-tips',
|
|
236
|
+
href: '/resources/blog/category/learning-tips',
|
|
237
|
+
trackingTarget: 'topnav_resources_learning_tips',
|
|
238
|
+
text: 'Learning Tips',
|
|
239
|
+
type: 'link'
|
|
240
|
+
},
|
|
241
|
+
icon: /*#__PURE__*/_jsx(ProjectsIcon, {}),
|
|
242
|
+
description: 'Learning to code — or thinking about it? Here’s how to get started, plus tips and tricks for staying motivated.'
|
|
243
|
+
}, {
|
|
244
|
+
linkItem: {
|
|
245
|
+
id: 'finding-a-job',
|
|
246
|
+
href: '/resources/blog/category/finding-a-job',
|
|
247
|
+
trackingTarget: 'topnav_resources_finding_a_job',
|
|
248
|
+
text: 'Finding a Job',
|
|
249
|
+
type: 'link'
|
|
250
|
+
},
|
|
251
|
+
icon: /*#__PURE__*/_jsx(NotebookIcon, {}),
|
|
252
|
+
description: 'Want to break into the tech industry? Learn how to write a standout resume, build a professional portfolio, prepare for technical interviews, and negotiate job offers.'
|
|
253
|
+
}, {
|
|
254
|
+
linkItem: {
|
|
255
|
+
id: 'career-advice',
|
|
256
|
+
href: '/resources/blog/category/career',
|
|
257
|
+
trackingTarget: 'topnav_resources_career_advice',
|
|
258
|
+
text: 'Career Advice',
|
|
259
|
+
type: 'link'
|
|
260
|
+
},
|
|
261
|
+
icon: /*#__PURE__*/_jsx(ArticleIcon, {}),
|
|
262
|
+
description: 'Explore different tech jobs and learn how to advance in your career and maintain work-life balance.'
|
|
263
|
+
}, {
|
|
264
|
+
linkItem: {
|
|
265
|
+
id: 'get-inspired',
|
|
266
|
+
href: '/resources/blog/category/get-inspired',
|
|
267
|
+
trackingTarget: 'topnav_resources_get_inspired',
|
|
268
|
+
text: 'Get Inspired',
|
|
269
|
+
type: 'link'
|
|
270
|
+
},
|
|
271
|
+
icon: /*#__PURE__*/_jsx(VideoPlayerMovieIcon, {}),
|
|
272
|
+
description: 'Learn how coding can change your life (and the world) for the better.'
|
|
273
|
+
}];
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { ColorMode } from '@codecademy/gamut-styles';
|
|
3
|
+
import { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
2
4
|
import * as React from 'react';
|
|
5
|
+
import { GlobalNavRedesignContext } from '../../../GlobalHeader';
|
|
3
6
|
import { getHeaderResourcesList } from '../../../lib/resourcesList';
|
|
4
7
|
import { AnimatedMegaMenuDropdown } from '../../shared';
|
|
5
8
|
import { AppHeaderDropdownProvider } from '../AppHeaderDropdownProvider';
|
|
6
9
|
import { AppHeaderDropdownNavButton } from '../AppHeaderNavButton/AppHeaderDropdownNavButton';
|
|
7
10
|
import { useAppHeaderContext } from '../AppHeaderProvider';
|
|
8
11
|
import { AppHeaderResourcesSection } from '../AppHeaderResourcesSection';
|
|
12
|
+
import { AppHeaderSectionVariant } from '../AppHeaderSectionVariant';
|
|
13
|
+
import { RESOURCES_NAV_SECTIONS } from './consts';
|
|
9
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
const StyledAnimatedMegaMenuDropdown = /*#__PURE__*/_styled(AnimatedMegaMenuDropdown, {
|
|
16
|
+
target: "ekdg1bw0",
|
|
17
|
+
label: "StyledAnimatedMegaMenuDropdown"
|
|
18
|
+
})("left:", ({
|
|
19
|
+
isAnon,
|
|
20
|
+
displayGlobalNavRedesign
|
|
21
|
+
}) => displayGlobalNavRedesign ? '-58px' : isAnon ? '-9rem' : '-14rem', ";@media (min-width: 1261px){left:", ({
|
|
22
|
+
isAnon,
|
|
23
|
+
displayGlobalNavRedesign
|
|
24
|
+
}) => displayGlobalNavRedesign ? '-152px' : isAnon ? '-9rem' : '-14rem', ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd24vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJCRSIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yTW9kZSB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LXN0eWxlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBHbG9iYWxOYXZSZWRlc2lnbkNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9HbG9iYWxIZWFkZXInO1xuaW1wb3J0IHsgZ2V0SGVhZGVyUmVzb3VyY2VzTGlzdCB9IGZyb20gJy4uLy4uLy4uL2xpYi9yZXNvdXJjZXNMaXN0JztcbmltcG9ydCB7XG4gIEFuaW1hdGVkTWVnYU1lbnVEcm9wZG93bixcbiAgQXBwSGVhZGVyQWN0aW9uLFxuICBBcHBIZWFkZXJSZXNvdXJjZXNEcm9wZG93bkl0ZW0sXG59IGZyb20gJy4uLy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBBcHBIZWFkZXJEcm9wZG93blByb3ZpZGVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyRHJvcGRvd25Qcm92aWRlcic7XG5pbXBvcnQgeyBBcHBIZWFkZXJEcm9wZG93bk5hdkJ1dHRvbiB9IGZyb20gJy4uL0FwcEhlYWRlck5hdkJ1dHRvbi9BcHBIZWFkZXJEcm9wZG93bk5hdkJ1dHRvbic7XG5pbXBvcnQgeyB1c2VBcHBIZWFkZXJDb250ZXh0IH0gZnJvbSAnLi4vQXBwSGVhZGVyUHJvdmlkZXInO1xuaW1wb3J0IHsgQXBwSGVhZGVyUmVzb3VyY2VzU2VjdGlvbiB9IGZyb20gJy4uL0FwcEhlYWRlclJlc291cmNlc1NlY3Rpb24nO1xuaW1wb3J0IHsgQXBwSGVhZGVyU2VjdGlvblZhcmlhbnQgfSBmcm9tICcuLi9BcHBIZWFkZXJTZWN0aW9uVmFyaWFudCc7XG5pbXBvcnQgeyBSRVNPVVJDRVNfTkFWX1NFQ1RJT05TIH0gZnJvbSAnLi9jb25zdHMnO1xuXG5leHBvcnQgdHlwZSBBcHBIZWFkZXJSZXNvdXJjZURyb3Bkb3duUHJvcHMgPSBBcHBIZWFkZXJBY3Rpb24gJiB7XG4gIGl0ZW06IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgaXNBbm9uOiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkQW5pbWF0ZWRNZWdhTWVudURyb3Bkb3duID0gc3R5bGVkKEFuaW1hdGVkTWVnYU1lbnVEcm9wZG93bik8e1xuICBpc0Fub246IGJvb2xlYW47XG4gIGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbjogYm9vbGVhbjtcbn0+YFxuICBsZWZ0OiAkeyh7IGlzQW5vbiwgZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduIH0pID0+XG4gICAgZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduID8gJy01OHB4JyA6IGlzQW5vbiA/ICctOXJlbScgOiAnLTE0cmVtJ307XG5cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyNjFweCkge1xuICAgIGxlZnQ6ICR7KHsgaXNBbm9uLCBkaXNwbGF5R2xvYmFsTmF2UmVkZXNpZ24gfSkgPT5cbiAgICAgIGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA/ICctMTUycHgnIDogaXNBbm9uID8gJy05cmVtJyA6ICctMTRyZW0nfTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duOiBSZWFjdC5GQzxcbiAgQXBwSGVhZGVyUmVzb3VyY2VEcm9wZG93blByb3BzXG4+ID0gKHsgYWN0aW9uLCBpdGVtLCBpc0Fub24gfSkgPT4ge1xuICBjb25zdCB7IHRleHQgfSA9IGl0ZW07XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBidXR0b25SZWYgPSB1c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBkcm9wZG93blJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IGxhc3RPcGVuZWREcm9wZG93biwgc2V0TGFzdE9wZW5lZERyb3Bkb3duIH0gPSB1c2VBcHBIZWFkZXJDb250ZXh0KCk7XG5cbiAgLy8gQWRkIHNjcm9sbGJhciBmb3Igc2hvcnQgc2NyZWVucyBhZnRlciB0cmFuc2l0aW9uIChvdGhlcndpc2Ugc2Nyb2xsYmFyIGFwcGVhcnMgYW5kIGRpc3NhcGVhcnMgZm9yIGFkZXF1YXRlIGhlaWdodHMgZHVyaW5nIHRyYW5zaXRpb24pXG4gIGNvbnN0IFthbmltYXRpb25Db21wbGV0ZVN0eWxlcywgc2V0QW5pbWF0aW9uQ29tcGxldGVTdHlsZXNdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IGhlYWRlclJlc291cmNlc0xpc3QgPSBnZXRIZWFkZXJSZXNvdXJjZXNMaXN0KCk7XG5cbiAgY29uc3QgYW5pbWF0aW9uRmluaXNoZWQgPSAoKSA9PiB7XG4gICAgc2V0QW5pbWF0aW9uQ29tcGxldGVTdHlsZXMoaXNPcGVuKTtcbiAgICBpZiAoaXNPcGVuICYmIGRyb3Bkb3duUmVmLmN1cnJlbnQpIHtcbiAgICAgIGRyb3Bkb3duUmVmLmN1cnJlbnQuc2Nyb2xsVG9wID0gMDtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdG9nZ2xlSXNPcGVuID0gKCkgPT4gc2V0SXNPcGVuKChwcmV2KSA9PiAhcHJldik7XG5cbiAgY29uc3QgaGFuZGxlT25DbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4ge1xuICAgIHRvZ2dsZUlzT3BlbigpO1xuICAgIGlmICghaXNPcGVuKSB7XG4gICAgICBhY3Rpb24oZXZlbnQsIGl0ZW0pO1xuICAgICAgaWYgKHNldExhc3RPcGVuZWREcm9wZG93bikge1xuICAgICAgICBzZXRMYXN0T3BlbmVkRHJvcGRvd24odGV4dCk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldElzT3BlbihmYWxzZSk7XG4gICAgYnV0dG9uUmVmPy5jdXJyZW50Py5mb2N1cygpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGFzdE9wZW5lZERyb3Bkb3duICE9PSB0ZXh0ICYmIGlzT3Blbikge1xuICAgICAgc2V0SXNPcGVuKGZhbHNlKTtcbiAgICB9XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbbGFzdE9wZW5lZERyb3Bkb3duXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBmdW5jdGlvbiBoYW5kbGVDbGlja091dHNpZGUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBFdmVudCkge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmPy5jdXJyZW50O1xuICAgICAgY29uc3QgYnV0dG9uID0gYnV0dG9uUmVmPy5jdXJyZW50O1xuICAgICAgaWYgKFxuICAgICAgICBpc09wZW4gJiZcbiAgICAgICAgY29udGFpbmVyICYmXG4gICAgICAgICFjb250YWluZXIuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgIGJ1dHRvbiAmJlxuICAgICAgICAhYnV0dG9uLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKVxuICAgICAgKSB7XG4gICAgICAgIGhhbmRsZUNsb3NlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2JsdXInLCBoYW5kbGVDbGlja091dHNpZGUpO1xuICAgIH07XG4gIH0sIFtjb250YWluZXJSZWYsIGhhbmRsZUNsb3NlLCBpc09wZW5dKTtcblxuICBjb25zdCBkaXNwbGF5R2xvYmFsTmF2UmVkZXNpZ24gPSB1c2VDb250ZXh0KEdsb2JhbE5hdlJlZGVzaWduQ29udGV4dCk7XG5cbiAgcmV0dXJuIChcbiAgICA8QXBwSGVhZGVyRHJvcGRvd25Qcm92aWRlciBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9PlxuICAgICAgPEFwcEhlYWRlckRyb3Bkb3duTmF2QnV0dG9uXG4gICAgICAgIGJ1dHRvblJlZj17YnV0dG9uUmVmfVxuICAgICAgICBoYW5kbGVPbkNsaWNrPXtoYW5kbGVPbkNsaWNrfVxuICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgdGl0bGU9e3RleHR9XG4gICAgICAvPlxuICAgICAgPFN0eWxlZEFuaW1hdGVkTWVnYU1lbnVEcm9wZG93blxuICAgICAgICBpc0Fub249e2lzQW5vbn1cbiAgICAgICAgZGlzcGxheUdsb2JhbE5hdlJlZGVzaWduPXtkaXNwbGF5R2xvYmFsTmF2UmVkZXNpZ259XG4gICAgICAgIHRhYkluZGV4PXstMX0gLy8gcHJldmVudCBmcm9tIGludGVyZmVyaW5nIHdpdGggQXBwSGVhZGVyIGZvY3VzIGxvZ2ljXG4gICAgICAgIHJlZj17ZHJvcGRvd25SZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgdG9wOiAnMy41cmVtJyxcbiAgICAgICAgICBtaW5XaWR0aDogJzY0cmVtJyxcbiAgICAgICAgICBsZWZ0OiBpc0Fub24gPyAnLTE0LjVyZW0nIDogJy0xOS41cmVtJyxcbiAgICAgICAgICBvdmVyZmxvd1k6ICdhdXRvJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IGFuaW1hdGlvbkNvbXBsZXRlU3R5bGVzID8gJzg1dmgnIDogMCxcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA/ICd0cmFuc3BhcmVudCcgOiAnJyxcbiAgICAgICAgfX1cbiAgICAgICAgaW5pdGlhbD17eyBib3JkZXJXaWR0aDogMCwgaGVpZ2h0OiAwIH19XG4gICAgICAgIGFuaW1hdGU9e3tcbiAgICAgICAgICBib3JkZXJXaWR0aDogaXNPcGVuID8gKGRpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA/IDAgOiAxKSA6IDAsXG4gICAgICAgICAgaGVpZ2h0OiBpc09wZW4gPyAnZml0LWNvbnRlbnQnIDogMCxcbiAgICAgICAgfX1cbiAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMC4xNzUgfX1cbiAgICAgICAgYXJpYS1oaWRkZW49eyFpc09wZW59XG4gICAgICAgIGRhdGEtdGVzdGlkPVwicmVzb3VyY2VzLW1lbnUtZHJvcGRvd25cIlxuICAgICAgICBvbkFuaW1hdGlvbkNvbXBsZXRlPXthbmltYXRpb25GaW5pc2hlZH1cbiAgICAgID5cbiAgICAgICAge2Rpc3BsYXlHbG9iYWxOYXZSZWRlc2lnbiA/IChcbiAgICAgICAgICA8Q29sb3JNb2RlIG1vZGU9XCJsaWdodFwiPlxuICAgICAgICAgICAgPEFwcEhlYWRlclNlY3Rpb25WYXJpYW50XG4gICAgICAgICAgICAgIGlzT3Blbj17aXNPcGVufVxuICAgICAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgbmF2U2VjdGlvbnM9e1JFU09VUkNFU19OQVZfU0VDVElPTlN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sb3JNb2RlPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxBcHBIZWFkZXJSZXNvdXJjZXNTZWN0aW9uXG4gICAgICAgICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgICAgaWQ9e2BtZW51LWNvbnRhaW5lciR7aXRlbS50ZXh0fWB9XG4gICAgICAgICAgICBpc09wZW49e2lzT3Blbn1cbiAgICAgICAgICAgIGhhbmRsZUNsb3NlPXsoKSA9PiBzZXRJc09wZW4oZmFsc2UpfVxuICAgICAgICAgICAgcmVzb3VyY2VzPXtoZWFkZXJSZXNvdXJjZXNMaXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZEFuaW1hdGVkTWVnYU1lbnVEcm9wZG93bj5cbiAgICA8L0FwcEhlYWRlckRyb3Bkb3duUHJvdmlkZXI+XG4gICk7XG59O1xuIl19 */"));
|
|
10
25
|
export const AppHeaderResourcesDropdown = ({
|
|
11
26
|
action,
|
|
12
27
|
item,
|
|
@@ -68,6 +83,7 @@ export const AppHeaderResourcesDropdown = ({
|
|
|
68
83
|
document.removeEventListener('blur', handleClickOutside);
|
|
69
84
|
};
|
|
70
85
|
}, [containerRef, handleClose, isOpen]);
|
|
86
|
+
const displayGlobalNavRedesign = useContext(GlobalNavRedesignContext);
|
|
71
87
|
return /*#__PURE__*/_jsxs(AppHeaderDropdownProvider, {
|
|
72
88
|
handleClose: handleClose,
|
|
73
89
|
children: [/*#__PURE__*/_jsx(AppHeaderDropdownNavButton, {
|
|
@@ -75,7 +91,9 @@ export const AppHeaderResourcesDropdown = ({
|
|
|
75
91
|
handleOnClick: handleOnClick,
|
|
76
92
|
isOpen: isOpen,
|
|
77
93
|
title: text
|
|
78
|
-
}), /*#__PURE__*/_jsx(
|
|
94
|
+
}), /*#__PURE__*/_jsx(StyledAnimatedMegaMenuDropdown, {
|
|
95
|
+
isAnon: isAnon,
|
|
96
|
+
displayGlobalNavRedesign: displayGlobalNavRedesign,
|
|
79
97
|
tabIndex: -1 // prevent from interfering with AppHeader focus logic
|
|
80
98
|
,
|
|
81
99
|
ref: dropdownRef,
|
|
@@ -84,14 +102,15 @@ export const AppHeaderResourcesDropdown = ({
|
|
|
84
102
|
minWidth: '64rem',
|
|
85
103
|
left: isAnon ? '-14.5rem' : '-19.5rem',
|
|
86
104
|
overflowY: 'auto',
|
|
87
|
-
maxHeight: animationCompleteStyles ? '85vh' : 0
|
|
105
|
+
maxHeight: animationCompleteStyles ? '85vh' : 0,
|
|
106
|
+
backgroundColor: displayGlobalNavRedesign ? 'transparent' : ''
|
|
88
107
|
},
|
|
89
108
|
initial: {
|
|
90
109
|
borderWidth: 0,
|
|
91
110
|
height: 0
|
|
92
111
|
},
|
|
93
112
|
animate: {
|
|
94
|
-
borderWidth: isOpen ? 1 : 0,
|
|
113
|
+
borderWidth: isOpen ? displayGlobalNavRedesign ? 0 : 1 : 0,
|
|
95
114
|
height: isOpen ? 'fit-content' : 0
|
|
96
115
|
},
|
|
97
116
|
transition: {
|
|
@@ -100,7 +119,14 @@ export const AppHeaderResourcesDropdown = ({
|
|
|
100
119
|
"aria-hidden": !isOpen,
|
|
101
120
|
"data-testid": "resources-menu-dropdown",
|
|
102
121
|
onAnimationComplete: animationFinished,
|
|
103
|
-
children: /*#__PURE__*/_jsx(
|
|
122
|
+
children: displayGlobalNavRedesign ? /*#__PURE__*/_jsx(ColorMode, {
|
|
123
|
+
mode: "light",
|
|
124
|
+
children: /*#__PURE__*/_jsx(AppHeaderSectionVariant, {
|
|
125
|
+
isOpen: isOpen,
|
|
126
|
+
ref: containerRef,
|
|
127
|
+
navSections: RESOURCES_NAV_SECTIONS
|
|
128
|
+
})
|
|
129
|
+
}) : /*#__PURE__*/_jsx(AppHeaderResourcesSection, {
|
|
104
130
|
action: action,
|
|
105
131
|
ref: containerRef,
|
|
106
132
|
id: `menu-container${item.text}`,
|
package/dist/AppHeader/AppHeaderElements/AppHeaderSectionVariant/AppHeaderSectionVariant.test.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { setupRtl } from '@codecademy/gamut-tests';
|
|
2
|
+
import userEvent from '@testing-library/user-event';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { GlobalHeaderItemClickContext } from '../../../GlobalHeader/context';
|
|
5
|
+
import { CATALOG_NAV_SECTIONS } from '../AppHeaderCatalogDropdown/consts';
|
|
6
|
+
import { AppHeaderSectionVariant } from '.';
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const mockOnClick = jest.fn();
|
|
9
|
+
const mockKeyDownEvents = jest.fn();
|
|
10
|
+
const mockItem = {
|
|
11
|
+
text: 'catalog',
|
|
12
|
+
id: 'the-catalog',
|
|
13
|
+
type: 'catalog-dropdown',
|
|
14
|
+
trackingTarget: 'catalog-dropdown'
|
|
15
|
+
};
|
|
16
|
+
const defaultProps = {
|
|
17
|
+
item: mockItem,
|
|
18
|
+
isOpen: true,
|
|
19
|
+
keyDownEvents: mockKeyDownEvents
|
|
20
|
+
};
|
|
21
|
+
const mockContextValue = {
|
|
22
|
+
globalHeaderItemClick: mockOnClick
|
|
23
|
+
};
|
|
24
|
+
describe('AppHeaderSectionVariant', () => {
|
|
25
|
+
const renderView = setupRtl(AppHeaderSectionVariant, defaultProps).options({
|
|
26
|
+
wrapper: ({
|
|
27
|
+
children
|
|
28
|
+
}) => /*#__PURE__*/_jsx(GlobalHeaderItemClickContext.Provider, {
|
|
29
|
+
value: mockContextValue,
|
|
30
|
+
children: children
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
it('renders the component ', () => {
|
|
34
|
+
const {
|
|
35
|
+
view
|
|
36
|
+
} = renderView({
|
|
37
|
+
navSections: CATALOG_NAV_SECTIONS
|
|
38
|
+
});
|
|
39
|
+
expect(view.getByRole('heading', {
|
|
40
|
+
name: 'Course topics'
|
|
41
|
+
})).toBeInTheDocument();
|
|
42
|
+
});
|
|
43
|
+
describe('tab navigation', () => {
|
|
44
|
+
it('starts with the first tab active by default', () => {
|
|
45
|
+
const {
|
|
46
|
+
view
|
|
47
|
+
} = renderView({
|
|
48
|
+
navSections: CATALOG_NAV_SECTIONS
|
|
49
|
+
});
|
|
50
|
+
const courseTopicsButton = view.getByTestId('nav-section-course-topics');
|
|
51
|
+
expect(courseTopicsButton).toHaveAttribute('aria-expanded', 'true');
|
|
52
|
+
});
|
|
53
|
+
it('switches active tab when clicking on different sections', async () => {
|
|
54
|
+
const {
|
|
55
|
+
view
|
|
56
|
+
} = renderView({
|
|
57
|
+
navSections: CATALOG_NAV_SECTIONS
|
|
58
|
+
});
|
|
59
|
+
const careerPathsButton = view.getByTestId('nav-section-career-paths');
|
|
60
|
+
await userEvent.click(careerPathsButton);
|
|
61
|
+
expect(careerPathsButton).toHaveAttribute('aria-expanded', 'true');
|
|
62
|
+
const courseTopicsButton = view.getByTestId('nav-section-course-topics');
|
|
63
|
+
expect(courseTopicsButton).toHaveAttribute('aria-expanded', 'false');
|
|
64
|
+
});
|
|
65
|
+
it('calls tracking with correct parameters when clicking nav section', async () => {
|
|
66
|
+
const {
|
|
67
|
+
view
|
|
68
|
+
} = renderView({
|
|
69
|
+
navSections: CATALOG_NAV_SECTIONS
|
|
70
|
+
});
|
|
71
|
+
const careerPathsButton = view.getByTestId('nav-section-career-paths');
|
|
72
|
+
await userEvent.click(careerPathsButton);
|
|
73
|
+
expect(mockOnClick).toHaveBeenCalledTimes(1);
|
|
74
|
+
expect(mockOnClick).toHaveBeenCalledWith(expect.anything(),
|
|
75
|
+
// event object
|
|
76
|
+
expect.objectContaining({
|
|
77
|
+
id: 'career-paths',
|
|
78
|
+
type: 'catalog-dropdown'
|
|
79
|
+
}) // tracking parameters
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
});
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GamutIconProps } from '@codecademy/gamut-icons';
|
|
2
2
|
import React, { PropsWithChildren } from 'react';
|
|
3
|
-
import { AppHeaderCatalogDropdownItem } from '../../shared';
|
|
3
|
+
import { AppHeaderCatalogDropdownItem, AppHeaderResourcesDropdownItem } from '../../shared';
|
|
4
4
|
type NavSectionProps = PropsWithChildren & {
|
|
5
5
|
activeTab: number;
|
|
6
|
-
item: AppHeaderCatalogDropdownItem;
|
|
6
|
+
item: AppHeaderCatalogDropdownItem | AppHeaderResourcesDropdownItem;
|
|
7
7
|
setActiveTab: (tab: number) => void;
|
|
8
8
|
icon?: React.ComponentType<GamutIconProps>;
|
|
9
9
|
text: string;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
|
2
|
+
import { Box, FlexBox } from '@codecademy/gamut';
|
|
3
|
+
import { ArrowChevronRightIcon } from '@codecademy/gamut-icons';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
const NavPanelContainer = /*#__PURE__*/_styled(Box, {
|
|
8
|
+
target: "ewhfiay1",
|
|
9
|
+
label: "NavPanelContainer"
|
|
10
|
+
})("display:", ({
|
|
11
|
+
isActive
|
|
12
|
+
}) => isActive ? 'block' : 'none', ";grid-column:2/span 12;grid-row:1/span 8;background-color:", ({
|
|
13
|
+
theme
|
|
14
|
+
}) => theme.colors.background, ";border-radius:", ({
|
|
15
|
+
isActive,
|
|
16
|
+
isFirst
|
|
17
|
+
}) => isActive && isFirst ? '0 8px 8px 8px' : '8px', ";padding:16px 32px 24px 32px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvblZhcmlhbnQvTmF2U2VjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0I4RSIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb25WYXJpYW50L05hdlNlY3Rpb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBGbGV4Qm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dDaGV2cm9uUmlnaHRJY29uLCBHYW11dEljb25Qcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gZnJvbSAnLi4vLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG50eXBlIE5hdlNlY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuICYge1xuICBhY3RpdmVUYWI6IG51bWJlcjtcbiAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgc2V0QWN0aXZlVGFiOiAodGFiOiBudW1iZXIpID0+IHZvaWQ7XG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPEdhbXV0SWNvblByb3BzPjtcbiAgdGV4dDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IE5hdlBhbmVsQ29udGFpbmVyID0gc3R5bGVkKEJveCk8eyBpc0FjdGl2ZTogYm9vbGVhbjsgaXNGaXJzdDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IGlzQWN0aXZlLCBpc0ZpcnN0IH0pID0+XG4gICAgaXNBY3RpdmUgJiYgaXNGaXJzdCA/ICcwIDhweCA4cHggOHB4JyA6ICc4cHgnfTtcbiAgcGFkZGluZzogMTZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBpc0FjdGl2ZTogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9PmBcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAkeyh7IGluZGV4IH0pID0+IGluZGV4ICsgMX07XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnOHB4IDAgMCA4cHgnIDogJzhweCcpfTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgIGlzQWN0aXZlID8gdGhlbWUuY29sb3JzLnByaW1hcnkgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICcxMDAlJyA6ICdjYWxjKDEwMCUgLSA4cHgpJyl9O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcblxuICAjYXJyb3ctY2hldnJvbi1yaWdodC1pY29uIHtcbiAgICBkaXNwbGF5OiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUsIGlzQWN0aXZlIH0pID0+XG4gICAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWyduYXZ5LTEwMCddfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gIH1cbmA7XG5cbmNvbnN0IE5hdlNlY3Rpb24gPSAoe1xuICBhY3RpdmVUYWIsXG4gIHNldEFjdGl2ZVRhYixcbiAgaWNvbjogSWNvbixcbiAgdGV4dCxcbiAgaW5kZXgsXG4gIGNoaWxkcmVuLFxuICBpdGVtLFxuICB0YWJJbmRleCxcbn06IE5hdlNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH1cbiAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgICAgICAgIHNldEFjdGl2ZVRhYihpbmRleCk7XG4gICAgICAgIH19XG4gICAgICAgIGRhdGEtdGVzdGlkPXtgbmF2LXNlY3Rpb24tJHtpdGVtLmlkfWB9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgID5cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXs4fSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAge0ljb24gJiYgPEljb24gLz59XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgPEFycm93Q2hldnJvblJpZ2h0SWNvbiBpZD1cImFycm93LWNoZXZyb24tcmlnaHQtaWNvblwiIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cblxuICAgICAgPE5hdlBhbmVsQ29udGFpbmVyIGlzQWN0aXZlPXthY3RpdmVUYWIgPT09IGluZGV4fSBpc0ZpcnN0PXtpbmRleCA9PT0gMH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTmF2UGFuZWxDb250YWluZXI+XG4gICAgPC8+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTmF2U2VjdGlvbjtcbiJdfQ== */"));
|
|
18
|
+
const StyledButton = /*#__PURE__*/_styled("button", {
|
|
19
|
+
target: "ewhfiay0",
|
|
20
|
+
label: "StyledButton"
|
|
21
|
+
})("grid-column:1;grid-row:", ({
|
|
22
|
+
index
|
|
23
|
+
}) => index + 1, ";padding:16px;border:none;border-radius:", ({
|
|
24
|
+
isActive
|
|
25
|
+
}) => isActive ? '8px 0 0 8px' : '8px', ";background:none;cursor:pointer;font-size:18px;font-weight:400;color:", ({
|
|
26
|
+
theme,
|
|
27
|
+
isActive
|
|
28
|
+
}) => isActive ? theme.colors.primary : theme.colors.text, ";text-align:left;width:", ({
|
|
29
|
+
isActive
|
|
30
|
+
}) => isActive ? '100%' : 'calc(100% - 8px)', ";height:60px;display:flex;justify-content:space-between;align-items:center;background-color:", ({
|
|
31
|
+
isActive,
|
|
32
|
+
theme
|
|
33
|
+
}) => isActive ? theme.colors.background : theme.colors['gray-100'], ";#arrow-chevron-right-icon{display:", ({
|
|
34
|
+
isActive
|
|
35
|
+
}) => isActive ? 'block' : 'none', ";}&:hover,&:focus{background-color:", ({
|
|
36
|
+
theme,
|
|
37
|
+
isActive
|
|
38
|
+
}) => isActive ? theme.colors.background : theme.colors['navy-100'], ";color:", ({
|
|
39
|
+
theme
|
|
40
|
+
}) => theme.colors.primary, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvQXBwSGVhZGVyRWxlbWVudHMvQXBwSGVhZGVyU2VjdGlvblZhcmlhbnQvTmF2U2VjdGlvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0N3RSIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvQXBwSGVhZGVyL0FwcEhlYWRlckVsZW1lbnRzL0FwcEhlYWRlclNlY3Rpb25WYXJpYW50L05hdlNlY3Rpb24udHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94LCBGbGV4Qm94IH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgQXJyb3dDaGV2cm9uUmlnaHRJY29uLCBHYW11dEljb25Qcm9wcyB9IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0LWljb25zJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCBSZWFjdCwgeyBQcm9wc1dpdGhDaGlsZHJlbiB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHsgdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrIH0gZnJvbSAnLi4vLi4vLi4vR2xvYmFsSGVhZGVyL2NvbnRleHQnO1xuaW1wb3J0IHtcbiAgQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSxcbiAgQXBwSGVhZGVyUmVzb3VyY2VzRHJvcGRvd25JdGVtLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuXG50eXBlIE5hdlNlY3Rpb25Qcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuICYge1xuICBhY3RpdmVUYWI6IG51bWJlcjtcbiAgaXRlbTogQXBwSGVhZGVyQ2F0YWxvZ0Ryb3Bkb3duSXRlbSB8IEFwcEhlYWRlclJlc291cmNlc0Ryb3Bkb3duSXRlbTtcbiAgc2V0QWN0aXZlVGFiOiAodGFiOiBudW1iZXIpID0+IHZvaWQ7XG4gIGljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPEdhbXV0SWNvblByb3BzPjtcbiAgdGV4dDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xuICB0YWJJbmRleD86IG51bWJlcjtcbn07XG5cbmNvbnN0IE5hdlBhbmVsQ29udGFpbmVyID0gc3R5bGVkKEJveCk8eyBpc0FjdGl2ZTogYm9vbGVhbjsgaXNGaXJzdDogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnYmxvY2snIDogJ25vbmUnKX07XG4gIGdyaWQtY29sdW1uOiAyIC8gc3BhbiAxMjtcbiAgZ3JpZC1yb3c6IDEgLyBzcGFuIDg7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLmJhY2tncm91bmR9O1xuICBib3JkZXItcmFkaXVzOiAkeyh7IGlzQWN0aXZlLCBpc0ZpcnN0IH0pID0+XG4gICAgaXNBY3RpdmUgJiYgaXNGaXJzdCA/ICcwIDhweCA4cHggOHB4JyA6ICc4cHgnfTtcbiAgcGFkZGluZzogMTZweCAzMnB4IDI0cHggMzJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyBpc0FjdGl2ZTogYm9vbGVhbjsgaW5kZXg6IG51bWJlciB9PmBcbiAgZ3JpZC1jb2x1bW46IDE7XG4gIGdyaWQtcm93OiAkeyh7IGluZGV4IH0pID0+IGluZGV4ICsgMX07XG4gIHBhZGRpbmc6IDE2cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoaXNBY3RpdmUgPyAnOHB4IDAgMCA4cHgnIDogJzhweCcpfTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAkeyh7IHRoZW1lLCBpc0FjdGl2ZSB9KSA9PlxuICAgIGlzQWN0aXZlID8gdGhlbWUuY29sb3JzLnByaW1hcnkgOiB0aGVtZS5jb2xvcnMudGV4dH07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHdpZHRoOiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICcxMDAlJyA6ICdjYWxjKDEwMCUgLSA4cHgpJyl9O1xuICBoZWlnaHQ6IDYwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSwgdGhlbWUgfSkgPT5cbiAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWydncmF5LTEwMCddfTtcblxuICAjYXJyb3ctY2hldnJvbi1yaWdodC1pY29uIHtcbiAgICBkaXNwbGF5OiAkeyh7IGlzQWN0aXZlIH0pID0+IChpc0FjdGl2ZSA/ICdibG9jaycgOiAnbm9uZScpfTtcbiAgfVxuXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7KHsgdGhlbWUsIGlzQWN0aXZlIH0pID0+XG4gICAgICBpc0FjdGl2ZSA/IHRoZW1lLmNvbG9ycy5iYWNrZ3JvdW5kIDogdGhlbWUuY29sb3JzWyduYXZ5LTEwMCddfTtcbiAgICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvcnMucHJpbWFyeX07XG4gIH1cbmA7XG5cbmNvbnN0IE5hdlNlY3Rpb24gPSAoe1xuICBhY3RpdmVUYWIsXG4gIHNldEFjdGl2ZVRhYixcbiAgaWNvbjogSWNvbixcbiAgdGV4dCxcbiAgaW5kZXgsXG4gIGNoaWxkcmVuLFxuICBpdGVtLFxuICB0YWJJbmRleCxcbn06IE5hdlNlY3Rpb25Qcm9wcykgPT4ge1xuICBjb25zdCB7IGdsb2JhbEhlYWRlckl0ZW1DbGljayB9ID0gdXNlR2xvYmFsSGVhZGVySXRlbUNsaWNrKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZEJ1dHRvblxuICAgICAgICBpc0FjdGl2ZT17YWN0aXZlVGFiID09PSBpbmRleH1cbiAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICBnbG9iYWxIZWFkZXJJdGVtQ2xpY2soZXZlbnQsIGl0ZW0pO1xuICAgICAgICAgIHNldEFjdGl2ZVRhYihpbmRleCk7XG4gICAgICAgIH19XG4gICAgICAgIGRhdGEtdGVzdGlkPXtgbmF2LXNlY3Rpb24tJHtpdGVtLmlkfWB9XG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e2FjdGl2ZVRhYiA9PT0gaW5kZXh9XG4gICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgID5cbiAgICAgICAgPEZsZXhCb3ggZ2FwPXs4fSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAge0ljb24gJiYgPEljb24gLz59XG4gICAgICAgICAge3RleHR9XG4gICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgPEFycm93Q2hldnJvblJpZ2h0SWNvbiBpZD1cImFycm93LWNoZXZyb24tcmlnaHQtaWNvblwiIC8+XG4gICAgICA8L1N0eWxlZEJ1dHRvbj5cblxuICAgICAgPE5hdlBhbmVsQ29udGFpbmVyIGlzQWN0aXZlPXthY3RpdmVUYWIgPT09IGluZGV4fSBpc0ZpcnN0PXtpbmRleCA9PT0gMH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvTmF2UGFuZWxDb250YWluZXI+XG4gICAgPC8+XG4gICk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTmF2U2VjdGlvbjtcbiJdfQ== */"));
|
|
41
|
+
const NavSection = ({
|
|
42
|
+
activeTab,
|
|
43
|
+
setActiveTab,
|
|
44
|
+
icon: Icon,
|
|
45
|
+
text,
|
|
46
|
+
index,
|
|
47
|
+
children,
|
|
48
|
+
item,
|
|
49
|
+
tabIndex
|
|
50
|
+
}) => {
|
|
51
|
+
const {
|
|
52
|
+
globalHeaderItemClick
|
|
53
|
+
} = useGlobalHeaderItemClick();
|
|
54
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
55
|
+
children: [/*#__PURE__*/_jsxs(StyledButton, {
|
|
56
|
+
isActive: activeTab === index,
|
|
57
|
+
index: index,
|
|
58
|
+
onClick: event => {
|
|
59
|
+
globalHeaderItemClick(event, item);
|
|
60
|
+
setActiveTab(index);
|
|
61
|
+
},
|
|
62
|
+
"data-testid": `nav-section-${item.id}`,
|
|
63
|
+
"aria-expanded": activeTab === index,
|
|
64
|
+
tabIndex: tabIndex,
|
|
65
|
+
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
66
|
+
gap: 8,
|
|
67
|
+
alignItems: "center",
|
|
68
|
+
children: [Icon && /*#__PURE__*/_jsx(Icon, {}), text]
|
|
69
|
+
}), /*#__PURE__*/_jsx(ArrowChevronRightIcon, {
|
|
70
|
+
id: "arrow-chevron-right-icon"
|
|
71
|
+
})]
|
|
72
|
+
}), /*#__PURE__*/_jsx(NavPanelContainer, {
|
|
73
|
+
isActive: activeTab === index,
|
|
74
|
+
isFirst: index === 0,
|
|
75
|
+
children: children
|
|
76
|
+
})]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default NavSection;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import { AppHeaderLinkItem } from '../../..';
|
|
3
|
+
type PanelLayoutProps = PropsWithChildren & {
|
|
4
|
+
heading: string;
|
|
5
|
+
description: ReactNode;
|
|
6
|
+
linkItem?: AppHeaderLinkItem;
|
|
7
|
+
tabIndex?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const PanelLayout: ({ heading, description, linkItem, children, tabIndex, }: PanelLayoutProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Anchor, Box, FlexBox, Text } from '@codecademy/gamut';
|
|
2
|
+
import { MiniArrowRightIcon } from '@codecademy/gamut-icons';
|
|
3
|
+
import { useGlobalHeaderItemClick } from '../../../GlobalHeader/context';
|
|
4
|
+
import { useAppHeaderDropdownContext } from '../AppHeaderDropdownProvider';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
export const PanelLayout = ({
|
|
7
|
+
heading,
|
|
8
|
+
description,
|
|
9
|
+
linkItem,
|
|
10
|
+
children,
|
|
11
|
+
tabIndex = 0
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
globalHeaderItemClick
|
|
15
|
+
} = useGlobalHeaderItemClick();
|
|
16
|
+
const {
|
|
17
|
+
handleClose
|
|
18
|
+
} = useAppHeaderDropdownContext();
|
|
19
|
+
return /*#__PURE__*/_jsxs(FlexBox, {
|
|
20
|
+
flexDirection: "column",
|
|
21
|
+
gap: 24,
|
|
22
|
+
pr: {
|
|
23
|
+
_: 32,
|
|
24
|
+
md: 16,
|
|
25
|
+
lg: 0
|
|
26
|
+
},
|
|
27
|
+
children: [/*#__PURE__*/_jsxs(Box, {
|
|
28
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
29
|
+
as: "h2",
|
|
30
|
+
variant: "title-sm",
|
|
31
|
+
children: heading
|
|
32
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
33
|
+
mt: 8,
|
|
34
|
+
children: description
|
|
35
|
+
})]
|
|
36
|
+
}), children, linkItem && /*#__PURE__*/_jsx(FlexBox, {
|
|
37
|
+
justifyContent: "center",
|
|
38
|
+
children: /*#__PURE__*/_jsx(Anchor, {
|
|
39
|
+
href: linkItem.href,
|
|
40
|
+
onClick: event => {
|
|
41
|
+
globalHeaderItemClick(event, linkItem);
|
|
42
|
+
handleClose();
|
|
43
|
+
},
|
|
44
|
+
tabIndex: tabIndex,
|
|
45
|
+
variant: "standard",
|
|
46
|
+
children: /*#__PURE__*/_jsxs(FlexBox, {
|
|
47
|
+
alignItems: "center",
|
|
48
|
+
gap: 8,
|
|
49
|
+
children: [linkItem.text, " ", /*#__PURE__*/_jsx(MiniArrowRightIcon, {})]
|
|
50
|
+
})
|
|
51
|
+
})
|
|
52
|
+
})]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { RefObject } from 'react';
|
|
2
|
+
import { AppHeaderCatalogDropdownItem, AppHeaderResourcesDropdownItem } from '../../shared';
|
|
3
|
+
export type AppHeaderSectionVariantProps = {
|
|
4
|
+
isOpen?: boolean;
|
|
5
|
+
keyDownEvents?: (event: React.KeyboardEvent) => void;
|
|
6
|
+
ref?: RefObject<HTMLDivElement>;
|
|
7
|
+
navSections: {
|
|
8
|
+
item: AppHeaderCatalogDropdownItem | AppHeaderResourcesDropdownItem;
|
|
9
|
+
panel: React.ComponentType<{
|
|
10
|
+
tabIndex?: number;
|
|
11
|
+
}>;
|
|
12
|
+
}[];
|
|
13
|
+
MarketingBanner?: ({ tabIndex }: {
|
|
14
|
+
tabIndex: number;
|
|
15
|
+
}) => JSX.Element;
|
|
16
|
+
};
|
|
17
|
+
export declare const AppHeaderSectionVariant: React.ForwardRefExoticComponent<Omit<AppHeaderSectionVariantProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|