@codecademy/brand 3.29.0-alpha.9e88d7b76a.0 → 3.29.0-alpha.bffa18431a.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 +2 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/MarketingBanner.js +3 -3
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.d.ts +1 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/NavPanels.js +3 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.d.ts +0 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderCatalogDropdown/consts.js +1 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderLinkSections/index.js +0 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/AppHeaderSection.test.js +193 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.d.ts +25 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/MobileBackButton.js +13 -2
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavSection.d.ts +21 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavSection.js +206 -0
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.d.ts +1 -63
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/elements.js +16 -81
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.d.ts +10 -16
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/index.js +28 -89
- package/dist/DropdownButton/index.d.ts +1 -3
- package/dist/stories/Atoms/BetaSticker.stories.js +0 -1
- package/dist/stories/Molecules/AppBar.stories.d.ts +0 -1
- package/dist/stories/Molecules/AppBar.stories.js +1 -2
- package/dist/stories/Molecules/AppHeader/AppHeaderLink.stories.js +0 -2
- package/dist/stories/Molecules/AppHeader/AppHeaderLogo.stories.js +1 -2
- package/dist/stories/Molecules/Banner.stories.js +0 -3
- package/dist/stories/Molecules/CurriculumCard.stories.js +0 -7
- package/dist/stories/Molecules/EmptySection.stories.js +1 -2
- package/dist/stories/Molecules/EnhancedBanner.stories.js +1 -1
- package/dist/stories/Molecules/HubCard.stories.js +0 -1
- package/dist/stories/Molecules/NotificationList.stories.js +1 -2
- package/dist/stories/Molecules/Testimonial.stories.js +4 -8
- package/dist/stories/Organisms/GlobalFooter.stories.js +1 -2
- package/dist/stories/Organisms/GlobalHeader/About.stories.js +1 -2
- package/dist/stories/Organisms/GlobalHeader/Bootcamp.stories.js +1 -2
- package/dist/stories/Organisms/GlobalHeader/Enterprise.stories.js +1 -2
- package/dist/stories/Organisms/GlobalHeader/Simple.stories.js +1 -2
- package/dist/stories/Organisms/GlobalPage.stories.js +0 -2
- package/dist/stories/Organisms/LayoutMenu.stories.js +3 -6
- package/dist/stories/Organisms/LayoutMenuVariant.stories.js +2 -4
- package/dist/stories/Organisms/PageFeatures.stories.js +1 -9
- package/dist/stories/Organisms/PageHero.stories.js +10 -20
- package/dist/stories/Organisms/PagePrefooter.stories.js +4 -8
- package/dist/stories/Organisms/PageSingleFeature.stories.js +10 -20
- package/dist/stories/Organisms/PageVideoGallery.stories.js +5 -10
- package/dist/stories/Organisms/ScoreSummary.stories.js +4 -8
- package/dist/svg.d.ts +0 -1
- package/package.json +2 -1
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.d.ts +0 -20
- package/dist/AppHeader/AppHeaderElements/AppHeaderSection/NavTabs.js +0 -144
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { Box, FlexBox } from '@codecademy/gamut';
|
|
2
|
-
import { ArrowChevronRightIcon } from '@codecademy/gamut-icons';
|
|
3
|
-
import React, { useContext, useEffect, useRef } from 'react';
|
|
4
|
-
import { useHighlightLiveLearningContext } from '../../../GlobalHeader/context';
|
|
5
|
-
import { AppHeaderDropdownContext } from '../AppHeaderDropdownProvider';
|
|
6
|
-
import { NavIconButton, NavIconButtonContainer, NavigationButton, OverflowText, PopularBadge, PopularBadgeDot, StyledNavTabPanel } from './elements';
|
|
7
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
8
|
-
// Tab content, only one should be visible at a time
|
|
9
|
-
const NavTabPanel = ({
|
|
10
|
-
children,
|
|
11
|
-
isActiveTab,
|
|
12
|
-
index,
|
|
13
|
-
id
|
|
14
|
-
}) => {
|
|
15
|
-
return /*#__PURE__*/_jsx(StyledNavTabPanel, {
|
|
16
|
-
isFirst: index === 0,
|
|
17
|
-
role: "tabpanel",
|
|
18
|
-
id: `${id}-panel`,
|
|
19
|
-
"aria-labelledby": `${id}-tab`,
|
|
20
|
-
display: isActiveTab ? 'block' : 'none',
|
|
21
|
-
gridColumn: "2 / span 12",
|
|
22
|
-
gridRow: "1 / span 8",
|
|
23
|
-
bg: "background",
|
|
24
|
-
px: 32,
|
|
25
|
-
pt: 16,
|
|
26
|
-
pb: 24,
|
|
27
|
-
children: children
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
// Holds all of the tab buttons
|
|
32
|
-
const NavTabList = /*#__PURE__*/React.forwardRef(({
|
|
33
|
-
children,
|
|
34
|
-
type
|
|
35
|
-
}, ref) => {
|
|
36
|
-
return /*#__PURE__*/_jsx(FlexBox, {
|
|
37
|
-
role: "tablist",
|
|
38
|
-
"aria-label": `${type.replace('-dropdown', '')} navigation`,
|
|
39
|
-
"aria-orientation": "vertical",
|
|
40
|
-
flexDirection: "column",
|
|
41
|
-
gap: 8,
|
|
42
|
-
ref: ref,
|
|
43
|
-
children: children
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// Tab button, lets you switch between tabs
|
|
48
|
-
// at larger breakpoints we use a normal button, at smaller
|
|
49
|
-
// breakpoints we use an IconButton.
|
|
50
|
-
const NavTab = ({
|
|
51
|
-
item,
|
|
52
|
-
onSelect,
|
|
53
|
-
isActive,
|
|
54
|
-
onKeyDown,
|
|
55
|
-
index
|
|
56
|
-
}) => {
|
|
57
|
-
const sharedButtonProps = {
|
|
58
|
-
role: 'tab',
|
|
59
|
-
'aria-selected': isActive,
|
|
60
|
-
'aria-controls': `${item.id}-panel`,
|
|
61
|
-
onClick: event => onSelect(item.id, event, item),
|
|
62
|
-
onKeyDown,
|
|
63
|
-
tabIndex: isActive ? 0 : -1,
|
|
64
|
-
isActive,
|
|
65
|
-
id: `${item.id}-tab`
|
|
66
|
-
};
|
|
67
|
-
const buttonRef = useRef(null);
|
|
68
|
-
const {
|
|
69
|
-
setFirstItemRef
|
|
70
|
-
} = useContext(AppHeaderDropdownContext);
|
|
71
|
-
const displayHighlightLiveLearning = useHighlightLiveLearningContext();
|
|
72
|
-
useEffect(() => {
|
|
73
|
-
if (index === 0 && buttonRef.current) {
|
|
74
|
-
setFirstItemRef?.(buttonRef.current);
|
|
75
|
-
}
|
|
76
|
-
}, [index, setFirstItemRef]);
|
|
77
|
-
const highlightLiveLearning = item.id === 'live-learning' && displayHighlightLiveLearning;
|
|
78
|
-
const showPopularBadge = highlightLiveLearning && !isActive;
|
|
79
|
-
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
80
|
-
children: [/*#__PURE__*/_jsxs(NavigationButton, {
|
|
81
|
-
ref: buttonRef,
|
|
82
|
-
...sharedButtonProps,
|
|
83
|
-
children: [/*#__PURE__*/_jsxs(FlexBox, {
|
|
84
|
-
gap: 8,
|
|
85
|
-
alignItems: "center",
|
|
86
|
-
children: [item.icon && /*#__PURE__*/_jsx(Box, {
|
|
87
|
-
height: 24,
|
|
88
|
-
width: 24,
|
|
89
|
-
children: /*#__PURE__*/_jsx(item.icon, {
|
|
90
|
-
size: 24
|
|
91
|
-
})
|
|
92
|
-
}), /*#__PURE__*/_jsx(OverflowText, {
|
|
93
|
-
maxWidth: {
|
|
94
|
-
_: '110px',
|
|
95
|
-
md: 'none'
|
|
96
|
-
},
|
|
97
|
-
children: item.text
|
|
98
|
-
})]
|
|
99
|
-
}), isActive && /*#__PURE__*/_jsx(Box, {
|
|
100
|
-
display: {
|
|
101
|
-
_: 'none',
|
|
102
|
-
sm: 'block'
|
|
103
|
-
},
|
|
104
|
-
mt: 4,
|
|
105
|
-
children: /*#__PURE__*/_jsx(ArrowChevronRightIcon, {
|
|
106
|
-
"data-testid": "chevron-right-icon"
|
|
107
|
-
})
|
|
108
|
-
}), showPopularBadge && /*#__PURE__*/_jsx(Box, {
|
|
109
|
-
display: {
|
|
110
|
-
_: 'none',
|
|
111
|
-
sm: 'block'
|
|
112
|
-
},
|
|
113
|
-
children: /*#__PURE__*/_jsx(PopularBadge, {
|
|
114
|
-
variant: "custom",
|
|
115
|
-
size: "sm",
|
|
116
|
-
bg: "hyper-400",
|
|
117
|
-
children: "Popular"
|
|
118
|
-
})
|
|
119
|
-
})]
|
|
120
|
-
}), item.icon && /*#__PURE__*/_jsxs(NavIconButtonContainer, {
|
|
121
|
-
display: {
|
|
122
|
-
_: 'none',
|
|
123
|
-
xs: 'grid',
|
|
124
|
-
sm: 'none'
|
|
125
|
-
},
|
|
126
|
-
...sharedButtonProps,
|
|
127
|
-
children: [/*#__PURE__*/_jsx(NavIconButton, {
|
|
128
|
-
icon: item.icon,
|
|
129
|
-
tip: highlightLiveLearning ? 'Live learning (popular)' : item.text,
|
|
130
|
-
tipProps: {
|
|
131
|
-
alignment: 'right-center',
|
|
132
|
-
narrow: false,
|
|
133
|
-
placement: 'floating'
|
|
134
|
-
},
|
|
135
|
-
"aria-label": highlightLiveLearning ? 'Live learning (popular)' : item.text
|
|
136
|
-
}), showPopularBadge && /*#__PURE__*/_jsx(PopularBadgeDot, {
|
|
137
|
-
position: "absolute",
|
|
138
|
-
left: "42px",
|
|
139
|
-
"aria-hidden": true
|
|
140
|
-
})]
|
|
141
|
-
})]
|
|
142
|
-
});
|
|
143
|
-
};
|
|
144
|
-
export { NavTabPanel, NavTabList, NavTab };
|