@dnanpm/styleguide 3.11.4 → 3.12.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/build/cjs/components/ButtonPrimary/ButtonPrimary.js +1 -0
- package/build/cjs/components/ButtonSecondary/ButtonSecondary.js +1 -0
- package/build/cjs/components/Drawer/Drawer.js +9 -8
- package/build/cjs/components/Floater/Floater.js +3 -3
- package/build/cjs/components/Footer/Components/FooterComponents.js +26 -3
- package/build/cjs/components/Hero/Hero.d.ts +88 -0
- package/build/cjs/components/Hero/Hero.js +202 -0
- package/build/cjs/components/Input/Input.d.ts +10 -1
- package/build/cjs/components/Input/Input.js +4 -2
- package/build/cjs/components/MainNavigation/ChildComponents/BusinessMenu.js +7 -7
- package/build/cjs/components/MainNavigation/ChildComponents/DesktopMenu.js +7 -7
- package/build/cjs/components/MainNavigation/MainNavigation.js +7 -7
- package/build/cjs/components/PixelLoader/PixelLoader.js +5 -5
- package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +7 -5
- package/build/cjs/components/ProgressIndicator/ProgressIndicator.js +18 -18
- package/build/cjs/components/SecondaryNavigation/SecondaryNavigation.js +27 -27
- package/build/cjs/components/Textarea/Textarea.js +1 -1
- package/build/cjs/components/index.d.ts +1 -0
- package/build/cjs/index.js +2 -0
- package/build/cjs/themes/themeComponents/breakpoints.js +1 -0
- package/build/es/components/ButtonPrimary/ButtonPrimary.js +1 -0
- package/build/es/components/ButtonSecondary/ButtonSecondary.js +1 -0
- package/build/es/components/Drawer/Drawer.js +9 -8
- package/build/es/components/Floater/Floater.js +3 -3
- package/build/es/components/Footer/Components/FooterComponents.js +26 -3
- package/build/es/components/Hero/Hero.d.ts +88 -0
- package/build/es/components/Hero/Hero.js +194 -0
- package/build/es/components/Input/Input.d.ts +10 -1
- package/build/es/components/Input/Input.js +4 -2
- package/build/es/components/MainNavigation/ChildComponents/BusinessMenu.js +7 -7
- package/build/es/components/MainNavigation/ChildComponents/DesktopMenu.js +7 -7
- package/build/es/components/MainNavigation/MainNavigation.js +7 -7
- package/build/es/components/PixelLoader/PixelLoader.js +5 -5
- package/build/es/components/PriorityNavigation/PriorityNavigation.js +7 -5
- package/build/es/components/ProgressIndicator/ProgressIndicator.js +18 -18
- package/build/es/components/SecondaryNavigation/SecondaryNavigation.js +27 -27
- package/build/es/components/Textarea/Textarea.js +1 -1
- package/build/es/components/index.d.ts +1 -0
- package/build/es/index.js +1 -0
- package/build/es/themes/themeComponents/breakpoints.js +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
import { styled } from 'styled-components';
|
|
4
|
+
import theme from '../../themes/theme.js';
|
|
5
|
+
import { getMultipliedSize } from '../../utils/styledUtils.js';
|
|
6
|
+
import Box from '../Box/Box.js';
|
|
7
|
+
|
|
8
|
+
const HERO_CONSTANTS = {
|
|
9
|
+
mobileHeight: 220,
|
|
10
|
+
desktopMinHeight: 460,
|
|
11
|
+
logoMaxWidth: 500,
|
|
12
|
+
};
|
|
13
|
+
const HeroContainer = styled.div `
|
|
14
|
+
position: relative;
|
|
15
|
+
margin-bottom: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
16
|
+
|
|
17
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
18
|
+
min-height: calc(
|
|
19
|
+
${HERO_CONSTANTS.desktopMinHeight}px + ${getMultipliedSize(theme.base.baseHeight, 4)}
|
|
20
|
+
);
|
|
21
|
+
display: flex;
|
|
22
|
+
justify-content: ${({ $variant }) => $variant === 'centered' || $variant === 'centered-text-left' ? 'center' : 'flex-start'};
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
const HeroImage = styled.div `
|
|
26
|
+
position: relative;
|
|
27
|
+
height: ${HERO_CONSTANTS.mobileHeight}px;
|
|
28
|
+
background-color: ${({ $backgroundColor }) => $backgroundColor || 'transparent'};
|
|
29
|
+
|
|
30
|
+
${({ $hasGradient }) => $hasGradient &&
|
|
31
|
+
`
|
|
32
|
+
linear-gradient(180deg, ${theme.color.background.plum.default}${theme.color.transparency.T0} 0%, ${theme.color.background.plum.default}${theme.color.transparency.T30} 100%);
|
|
33
|
+
background-size: 100% 33.33%;
|
|
34
|
+
background-repeat: no-repeat;
|
|
35
|
+
background-position: bottom;
|
|
36
|
+
`}
|
|
37
|
+
|
|
38
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
39
|
+
height: auto;
|
|
40
|
+
position: absolute;
|
|
41
|
+
top: 0;
|
|
42
|
+
left: 0;
|
|
43
|
+
right: 0;
|
|
44
|
+
bottom: ${getMultipliedSize(theme.base.baseHeight, 4)};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
img {
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: 100%;
|
|
50
|
+
object-fit: cover;
|
|
51
|
+
display: block;
|
|
52
|
+
}
|
|
53
|
+
`;
|
|
54
|
+
const LogoImageWrap = styled.div `
|
|
55
|
+
position: relative;
|
|
56
|
+
height: 100%;
|
|
57
|
+
width: 100%;
|
|
58
|
+
margin: 0 auto;
|
|
59
|
+
padding: 0 ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
60
|
+
`;
|
|
61
|
+
const LogoImageContainer = styled.div `
|
|
62
|
+
position: absolute;
|
|
63
|
+
top: ${getMultipliedSize(theme.base.baseHeight, 1)};
|
|
64
|
+
bottom: ${getMultipliedSize(theme.base.baseHeight, 4)};
|
|
65
|
+
left: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
66
|
+
right: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
67
|
+
padding: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
68
|
+
display: flex;
|
|
69
|
+
align-items: center;
|
|
70
|
+
justify-content: center;
|
|
71
|
+
max-width: ${HERO_CONSTANTS.logoMaxWidth}px;
|
|
72
|
+
margin: 0 auto;
|
|
73
|
+
|
|
74
|
+
img {
|
|
75
|
+
max-width: 100%;
|
|
76
|
+
max-height: 100%;
|
|
77
|
+
object-fit: contain;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
81
|
+
top: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
82
|
+
bottom: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
83
|
+
right: ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
84
|
+
left: 50%;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
@media (min-width: ${theme.breakpoints.lg}px) {
|
|
88
|
+
left: calc(min(64%, 750px));
|
|
89
|
+
}
|
|
90
|
+
`;
|
|
91
|
+
const ContentWrap = styled.div `
|
|
92
|
+
width: 100%;
|
|
93
|
+
padding: 0 ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
94
|
+
margin: -${getMultipliedSize(theme.base.baseHeight, 4)} auto 0;
|
|
95
|
+
z-index: 1;
|
|
96
|
+
|
|
97
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
98
|
+
display: flex;
|
|
99
|
+
align-items: flex-end;
|
|
100
|
+
padding: ${getMultipliedSize(theme.base.baseHeight, 4)}
|
|
101
|
+
${getMultipliedSize(theme.base.baseWidth, 4)} 0;
|
|
102
|
+
margin: 0 auto;
|
|
103
|
+
justify-content: ${({ $variant }) => $variant === 'centered' || $variant === 'centered-text-left' ? 'center' : 'flex-start'};
|
|
104
|
+
}
|
|
105
|
+
`;
|
|
106
|
+
const Content = styled(Box).attrs({
|
|
107
|
+
elevation: 'extraHigh',
|
|
108
|
+
padding: getMultipliedSize(theme.base.baseWidth, 2),
|
|
109
|
+
}) `
|
|
110
|
+
position: relative;
|
|
111
|
+
text-align: ${({ $variant }) => ($variant === 'centered' ? 'center' : 'left')};
|
|
112
|
+
|
|
113
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
114
|
+
padding: ${getMultipliedSize(theme.base.baseWidth, 3)};
|
|
115
|
+
width: 50%;
|
|
116
|
+
max-width: 650px;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@media (min-width: ${theme.breakpoints.lg}px) {
|
|
120
|
+
padding: ${getMultipliedSize(theme.base.baseWidth, 4)};
|
|
121
|
+
width: 60%;
|
|
122
|
+
margin-left: ${({ $variant }) => $variant === 'centered' || $variant === 'centered-text-left'
|
|
123
|
+
? '0'
|
|
124
|
+
: `${getMultipliedSize(theme.base.baseWidth, 4)}`};
|
|
125
|
+
}
|
|
126
|
+
`;
|
|
127
|
+
const LabelContainer = styled.div `
|
|
128
|
+
margin: 0 0 ${getMultipliedSize(theme.base.baseHeight, 1)};
|
|
129
|
+
`;
|
|
130
|
+
const TextContent = styled.div `
|
|
131
|
+
h1,
|
|
132
|
+
h2,
|
|
133
|
+
h3,
|
|
134
|
+
h4,
|
|
135
|
+
h5,
|
|
136
|
+
h6 {
|
|
137
|
+
margin: 0 0 ${getMultipliedSize(theme.base.baseWidth, 1.25)};
|
|
138
|
+
color: ${theme.color.text.black};
|
|
139
|
+
font-family: ${theme.fontFamily.default};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
p {
|
|
143
|
+
margin: 0 0 ${getMultipliedSize(theme.base.baseWidth, 1)};
|
|
144
|
+
color: ${theme.color.text.black};
|
|
145
|
+
font-family: ${theme.fontFamily.default};
|
|
146
|
+
line-height: ${theme.lineHeight.default};
|
|
147
|
+
|
|
148
|
+
&:last-child {
|
|
149
|
+
margin-bottom: 0;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
`;
|
|
153
|
+
const CtaArea = styled.div `
|
|
154
|
+
margin: ${getMultipliedSize(theme.base.baseWidth, 3)} 0 0;
|
|
155
|
+
display: flex;
|
|
156
|
+
flex-direction: column;
|
|
157
|
+
gap: ${getMultipliedSize(theme.base.baseWidth, 1.5)};
|
|
158
|
+
justify-content: ${({ $variant }) => ($variant === 'centered' ? 'center' : 'flex-start')};
|
|
159
|
+
|
|
160
|
+
@media (min-width: ${theme.breakpoints.md}px) {
|
|
161
|
+
flex-direction: row;
|
|
162
|
+
margin: ${getMultipliedSize(theme.base.baseWidth, 4)} 0 0;
|
|
163
|
+
}
|
|
164
|
+
`;
|
|
165
|
+
const renderImage = (ImageComponent, imageProps) => {
|
|
166
|
+
if (!imageProps)
|
|
167
|
+
return null;
|
|
168
|
+
if (typeof ImageComponent === 'string') {
|
|
169
|
+
// eslint-disable-next-line jsx-a11y/alt-text, react/jsx-props-no-spreading
|
|
170
|
+
return React__default.createElement("img", Object.assign({}, imageProps));
|
|
171
|
+
}
|
|
172
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
173
|
+
return React__default.createElement(ImageComponent, Object.assign({}, imageProps));
|
|
174
|
+
};
|
|
175
|
+
const Hero = (_a) => {
|
|
176
|
+
var { variant = 'default', headingLevel = 'h1', Image = 'img', LogoImage = 'img', 'data-testid': dataTestId } = _a, props = __rest(_a, ["variant", "headingLevel", "Image", "LogoImage", 'data-testid']);
|
|
177
|
+
const HeadingTag = headingLevel;
|
|
178
|
+
return (React__default.createElement(HeroContainer, { "$variant": variant, className: props.className, "data-testid": dataTestId },
|
|
179
|
+
React__default.createElement(HeroImage, { "$hasGradient": props.hasGradient, "$backgroundColor": props.backgroundColor },
|
|
180
|
+
props.logoImageProps && (React__default.createElement(LogoImageWrap, null,
|
|
181
|
+
React__default.createElement(LogoImageContainer, null, renderImage(LogoImage, props.logoImageProps)))),
|
|
182
|
+
!props.logoImageProps && props.imageProps && renderImage(Image, props.imageProps)),
|
|
183
|
+
React__default.createElement(ContentWrap, { "$variant": variant },
|
|
184
|
+
React__default.createElement(Content, { "$variant": variant },
|
|
185
|
+
props.label && React__default.createElement(LabelContainer, null, props.label),
|
|
186
|
+
React__default.createElement(TextContent, null,
|
|
187
|
+
props.heading && React__default.createElement(HeadingTag, null, props.heading),
|
|
188
|
+
props.description),
|
|
189
|
+
(props.primaryCta || props.secondaryCta) && (React__default.createElement(CtaArea, { "$variant": variant },
|
|
190
|
+
props.primaryCta,
|
|
191
|
+
props.secondaryCta))))));
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export { Hero as default };
|
|
@@ -142,7 +142,16 @@ interface Props {
|
|
|
142
142
|
*/
|
|
143
143
|
ariaLabel?: string;
|
|
144
144
|
/**
|
|
145
|
-
* Screen reader label
|
|
145
|
+
* Screen reader label for "Show password" toggle
|
|
146
|
+
*/
|
|
147
|
+
showPasswordLabel?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Screen reader label for "Hide password" toggle
|
|
150
|
+
*/
|
|
151
|
+
hidePasswordLabel?: string;
|
|
152
|
+
/**
|
|
153
|
+
* @deprecated Use `showPasswordLabel` and `hidePasswordLabel`
|
|
154
|
+
* Screen reader label describing the password toggle (same for both states)
|
|
146
155
|
*/
|
|
147
156
|
passwordToggleLabel?: string;
|
|
148
157
|
/**
|
|
@@ -122,7 +122,7 @@ const ErrorMessage = styled(Message) `
|
|
|
122
122
|
color: ${theme.color.notification.error};
|
|
123
123
|
`;
|
|
124
124
|
const Input = forwardRef((_a, ref) => {
|
|
125
|
-
var _b;
|
|
125
|
+
var _b, _c, _d;
|
|
126
126
|
var { type = 'text', 'data-testid': dataTestId } = _a, props = __rest(_a, ["type", 'data-testid']);
|
|
127
127
|
const [showPassword, setShowPassword] = useState(false);
|
|
128
128
|
const togglePasswordVisibility = () => {
|
|
@@ -170,7 +170,9 @@ const Input = forwardRef((_a, ref) => {
|
|
|
170
170
|
props.readonly ||
|
|
171
171
|
props.readonlyUnstyled ||
|
|
172
172
|
props.onClearableButtonClick) && (React__default.createElement(IconWrapper, null,
|
|
173
|
-
props.showPasswordToggle && (React__default.createElement(StyledButtonIcon, { icon: showPassword ? EyeOpen : EyeClosed, onClick: togglePasswordVisibility, ariaLabel:
|
|
173
|
+
props.showPasswordToggle && (React__default.createElement(StyledButtonIcon, { icon: showPassword ? EyeOpen : EyeClosed, onClick: togglePasswordVisibility, ariaLabel: showPassword
|
|
174
|
+
? ((_c = props.hidePasswordLabel) !== null && _c !== void 0 ? _c : props.passwordToggleLabel)
|
|
175
|
+
: ((_d = props.showPasswordLabel) !== null && _d !== void 0 ? _d : props.passwordToggleLabel) })),
|
|
174
176
|
(props.status === 'success' || props.status === 'error') && (React__default.createElement(Icon, { "aria-hidden": true, icon: iconsMap[props.status], color: theme.color.notification[props.status] })),
|
|
175
177
|
(props.disabled || (props.readonly && !props.readonlyUnstyled)) && (React__default.createElement(Icon, { "aria-hidden": true, icon: Lock, className: props.className && `${props.className}-lock-icon` })),
|
|
176
178
|
props.onClearableButtonClick &&
|
|
@@ -5,10 +5,10 @@ import { getMultipliedSize } from '../../../utils/styledUtils.js';
|
|
|
5
5
|
import NavContext from '../context/NavContext.js';
|
|
6
6
|
|
|
7
7
|
const BusinessMenuLink = styled.a `
|
|
8
|
-
color: ${p => (p
|
|
8
|
+
color: ${p => (p.$isActive ? theme.color.text.pink : theme.color.text.black)};
|
|
9
9
|
display: block;
|
|
10
10
|
text-decoration: none;
|
|
11
|
-
margin: ${p => !p
|
|
11
|
+
margin: ${p => !p.$isMobileMenu
|
|
12
12
|
? `0 ${getMultipliedSize(theme.base.baseWidth, 1)}`
|
|
13
13
|
: `${getMultipliedSize(theme.base.baseWidth, 1.25)} ${getMultipliedSize(theme.base.baseWidth, 2)} `};
|
|
14
14
|
&:hover,
|
|
@@ -23,14 +23,14 @@ const BusinessMenuItem = styled.li `
|
|
|
23
23
|
overflow: hidden;
|
|
24
24
|
`;
|
|
25
25
|
const BusinessMenuList = styled.ul `
|
|
26
|
-
display: ${({ isMobileMenu }) => (
|
|
26
|
+
display: ${({ $isMobileMenu }) => (!$isMobileMenu ? 'inline-flex' : 'block')};
|
|
27
27
|
align-items: center;
|
|
28
28
|
position: relative;
|
|
29
29
|
list-style: none;
|
|
30
|
-
margin: ${({ isMobileMenu }) => isMobileMenu ? '1rem 0' : `0 ${getMultipliedSize(theme.base.baseWidth, 0.5)}`};
|
|
30
|
+
margin: ${({ $isMobileMenu }) => $isMobileMenu ? '1rem 0' : `0 ${getMultipliedSize(theme.base.baseWidth, 0.5)}`};
|
|
31
31
|
padding: 0;
|
|
32
32
|
background-color: ${theme.color.background.white.default};
|
|
33
|
-
font-size: ${({ isMobileMenu }) =>
|
|
33
|
+
font-size: ${({ $isMobileMenu }) => $isMobileMenu ? theme.fontSize.default : theme.fontSize.s};
|
|
34
34
|
height: 100%;
|
|
35
35
|
`;
|
|
36
36
|
const BusinessMenu = () => {
|
|
@@ -44,8 +44,8 @@ const BusinessMenu = () => {
|
|
|
44
44
|
(!items.businessSelector && (businessMenuItems === null || businessMenuItems === void 0 ? void 0 : businessMenuItems.length) > 0)) {
|
|
45
45
|
return null;
|
|
46
46
|
}
|
|
47
|
-
return (React__default.createElement(BusinessMenuList, { isMobileMenu: isMobileMenu, ref: ref, role: "menubar", "aria-hidden": "false", "data-testid": "business-menu-ul" }, businessMenuItems.map((item, index) => (React__default.createElement(BusinessMenuItem, { className: "menu-item", key: item.businessId, "data-testid": `business-menu-selection-item-${index + 1}`, role: "none" },
|
|
48
|
-
React__default.createElement(BusinessMenuLink, { className: "menu-link", href: item.urls[lang], onClick: resetMenuEvents, isActive: item.businessId === currentBusinessId, isMobileMenu: isMobileMenu, role: "menuitem" }, item.titles[lang]))))));
|
|
47
|
+
return (React__default.createElement(BusinessMenuList, { "$isMobileMenu": isMobileMenu, ref: ref, role: "menubar", "aria-hidden": "false", "data-testid": "business-menu-ul" }, businessMenuItems.map((item, index) => (React__default.createElement(BusinessMenuItem, { className: "menu-item", key: item.businessId, "data-testid": `business-menu-selection-item-${index + 1}`, role: "none" },
|
|
48
|
+
React__default.createElement(BusinessMenuLink, { className: "menu-link", href: item.urls[lang], onClick: resetMenuEvents, "$isActive": item.businessId === currentBusinessId, "$isMobileMenu": isMobileMenu, role: "menuitem" }, item.titles[lang]))))));
|
|
49
49
|
};
|
|
50
50
|
|
|
51
51
|
export { BusinessMenu as default };
|
|
@@ -41,10 +41,10 @@ const noAnimation = css `
|
|
|
41
41
|
animation: none;
|
|
42
42
|
`;
|
|
43
43
|
const SubMenuListRight = styled.div `
|
|
44
|
-
display: ${({ menuStates, navItemId }) => menuStates.level1 && menuStates.level2 && menuStates.level2 === navItemId
|
|
44
|
+
display: ${({ $menuStates, $navItemId }) => $menuStates.level1 && $menuStates.level2 && $menuStates.level2 === $navItemId
|
|
45
45
|
? 'block'
|
|
46
46
|
: 'none'};
|
|
47
|
-
${({ menuStates }) => menuStates.level2 && menuStates.animate2 ? fadeRightAnimation : noAnimation};
|
|
47
|
+
${({ $menuStates }) => $menuStates.level2 && $menuStates.animate2 ? fadeRightAnimation : noAnimation};
|
|
48
48
|
top: -${getMultipliedSize(theme.base.baseHeight, 2)};
|
|
49
49
|
padding: ${getMultipliedSize(theme.base.baseHeight, 1)};
|
|
50
50
|
position: absolute;
|
|
@@ -146,10 +146,10 @@ const DesktopMenuItem = styled(MenuItem) `
|
|
|
146
146
|
const SubMenuList = styled.div `
|
|
147
147
|
position: absolute;
|
|
148
148
|
left: -${getMultipliedSize(theme.base.baseHeight, 0.5)};
|
|
149
|
-
display: ${({ menuStates, navItemId }) => (menuStates === null || menuStates === void 0 ? void 0 : menuStates.level1) === navItemId ? 'block' : 'none'};
|
|
150
|
-
z-index: ${({ navZIndex }) => navZIndex + 1};
|
|
149
|
+
display: ${({ $menuStates, $navItemId }) => ($menuStates === null || $menuStates === void 0 ? void 0 : $menuStates.level1) === $navItemId ? 'block' : 'none'};
|
|
150
|
+
z-index: ${({ $navZIndex }) => $navZIndex + 1};
|
|
151
151
|
margin-top: 1px;
|
|
152
|
-
${({ menuStates }) => menuStates.level1 && menuStates.animate2 &&
|
|
152
|
+
${({ $menuStates }) => $menuStates.level1 && $menuStates.animate2 && !$menuStates.level2
|
|
153
153
|
? fadeInAnimation
|
|
154
154
|
: noAnimation};
|
|
155
155
|
|
|
@@ -178,7 +178,7 @@ const SubMenuLevel2 = ({ menuItem }) => {
|
|
|
178
178
|
};
|
|
179
179
|
handleOffSet();
|
|
180
180
|
}, [menuLevel.level2, menuItem.id]);
|
|
181
|
-
return (React__default.createElement(SubMenuListRight, { role: "menu", menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-3", ref: measureRef },
|
|
181
|
+
return (React__default.createElement(SubMenuListRight, { role: "menu", "$menuStates": menuLevel, "$navItemId": menuItem.id, "data-testid": "desktop-nav-menu-ul-level-3", ref: measureRef },
|
|
182
182
|
React__default.createElement(Box, { elevation: "high", padding: getMultipliedSize(theme.base.baseHeight, 1) },
|
|
183
183
|
React__default.createElement("ul", null, menuItem.pages.map((item, index) => {
|
|
184
184
|
const menuUrl = item.urls[lang];
|
|
@@ -196,7 +196,7 @@ const SubMenuLevel1 = ({ menuItem }) => {
|
|
|
196
196
|
if (!level1HasElements) {
|
|
197
197
|
return null;
|
|
198
198
|
}
|
|
199
|
-
return (React__default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, "data-testid": "desktop-nav-menu-ul-level-2"
|
|
199
|
+
return (React__default.createElement(SubMenuList, { "aria-hidden": false, "$menuStates": menuLevel, "$navItemId": menuItem.id, "$navZIndex": navZIndex, "data-testid": "desktop-nav-menu-ul-level-2" },
|
|
200
200
|
React__default.createElement(Box, { elevation: "high", padding: getMultipliedSize(theme.base.baseHeight, 1) },
|
|
201
201
|
React__default.createElement("ul", null, menuItem.pages.map((element, index) => {
|
|
202
202
|
const menuUrl = element.urls[lang];
|
|
@@ -65,7 +65,7 @@ const PageOverlay = styled.div `
|
|
|
65
65
|
width: 100%;
|
|
66
66
|
height: 100%;
|
|
67
67
|
background: ${theme.color.background.plum.default + theme.color.transparency.T10};
|
|
68
|
-
z-index: ${({ navZIndex }) => navZIndex - 1};
|
|
68
|
+
z-index: ${({ $navZIndex }) => $navZIndex - 1};
|
|
69
69
|
`;
|
|
70
70
|
const scrollThreshold = 82;
|
|
71
71
|
const checkThreshold = (prevPos, currPos) => {
|
|
@@ -75,7 +75,7 @@ const checkThreshold = (prevPos, currPos) => {
|
|
|
75
75
|
return currPos - prevPos > scrollThreshold;
|
|
76
76
|
};
|
|
77
77
|
const GlobalNavigationContainer = styled.nav `
|
|
78
|
-
z-index: ${({ navZIndex }) => navZIndex};
|
|
78
|
+
z-index: ${({ $navZIndex }) => $navZIndex};
|
|
79
79
|
position: relative;
|
|
80
80
|
position: sticky;
|
|
81
81
|
display: block;
|
|
@@ -84,7 +84,7 @@ const GlobalNavigationContainer = styled.nav `
|
|
|
84
84
|
width: 100%;
|
|
85
85
|
background-color: ${theme.color.background.white.default};
|
|
86
86
|
color: ${theme.color.text.black};
|
|
87
|
-
top: ${({ menuLevel, tooltipMenuActive }) => (menuLevel === null || menuLevel === void 0 ? void 0 : menuLevel.hideOnScroll) && !(menuLevel === null || menuLevel === void 0 ? void 0 : menuLevel.level1) &&
|
|
87
|
+
top: ${({ $menuLevel, $tooltipMenuActive }) => ($menuLevel === null || $menuLevel === void 0 ? void 0 : $menuLevel.hideOnScroll) && !($menuLevel === null || $menuLevel === void 0 ? void 0 : $menuLevel.level1) && !$tooltipMenuActive
|
|
88
88
|
? `calc(-${desktopNavMaxHeight} - ${ribbonHeight})`
|
|
89
89
|
: '0px'} !important;
|
|
90
90
|
transition: top 0.2s ease-in-out;
|
|
@@ -96,7 +96,7 @@ const NavigationWrapper = styled.div `
|
|
|
96
96
|
max-width: ${getMultipliedSize(theme.base.baseHeight, 256)};
|
|
97
97
|
margin: 0 auto;
|
|
98
98
|
height: ${mobileNavMaxHeight};
|
|
99
|
-
@media (min-width: ${p => p
|
|
99
|
+
@media (min-width: ${p => p.$collapseSize + 1}px) {
|
|
100
100
|
height: ${desktopNavMaxHeight};
|
|
101
101
|
}
|
|
102
102
|
`;
|
|
@@ -297,13 +297,13 @@ const MainNavigation = ({ items = {}, language = 'fi', zIndex = 1030, languageSe
|
|
|
297
297
|
}
|
|
298
298
|
}, undefined, false, 200);
|
|
299
299
|
return (React__default.createElement(React__default.Fragment, null,
|
|
300
|
-
isPageOverlay && React__default.createElement(PageOverlay, { "data-testid": "navigation-overlay", navZIndex: zIndex }),
|
|
301
|
-
React__default.createElement(GlobalNavigationContainer, { className: className, ref: navigationEl, collapseSize: collapseSize, menuLevel: menuLevel, "data-testid": "main-navigation"
|
|
300
|
+
isPageOverlay && React__default.createElement(PageOverlay, { "data-testid": "navigation-overlay", "$navZIndex": zIndex }),
|
|
301
|
+
React__default.createElement(GlobalNavigationContainer, { className: className, ref: navigationEl, "$collapseSize": collapseSize, "$menuLevel": menuLevel, "$navZIndex": zIndex, "$tooltipMenuActive": tooltipMenuActive, "data-testid": "main-navigation" },
|
|
302
302
|
React__default.createElement(NavContext.Provider, { value: navigationContext },
|
|
303
303
|
React__default.createElement(GlobalStyle, null),
|
|
304
304
|
!items.mainNavigation && notificationText && (React__default.createElement(Notification, { type: "info" }, notificationText)),
|
|
305
305
|
ribbon && ribbonData && React__default.createElement(Ribbon, { ribbonData: ribbonData, lang: language }),
|
|
306
|
-
React__default.createElement(NavigationWrapper, { collapseSize: collapseSize },
|
|
306
|
+
React__default.createElement(NavigationWrapper, { "$collapseSize": collapseSize },
|
|
307
307
|
React__default.createElement(HeaderNavigationElements, { navElementProps: props }),
|
|
308
308
|
isMobile && React__default.createElement(RenderMobileMenu, null))))));
|
|
309
309
|
};
|
|
@@ -21,7 +21,7 @@ const PixelLoaderWrapper = styled.div `
|
|
|
21
21
|
padding: 0.125rem;
|
|
22
22
|
`;
|
|
23
23
|
const Pixel = styled.div `
|
|
24
|
-
background-color: ${({ color }) => color || theme.color.default.pink};
|
|
24
|
+
background-color: ${({ $color }) => $color || theme.color.default.pink};
|
|
25
25
|
display: inline-block;
|
|
26
26
|
width: 0.625rem;
|
|
27
27
|
height: 0.625rem;
|
|
@@ -34,10 +34,10 @@ const PixelLoader = (_a) => {
|
|
|
34
34
|
var { className, 'data-testid': dataTestId } = _a, props = __rest(_a, ["className", 'data-testid']);
|
|
35
35
|
return (React__default.createElement(PixelLoaderWrapper, { className: className, "data-testid": dataTestId },
|
|
36
36
|
props.label && React__default.createElement("span", { className: "visually-hidden" }, props.label),
|
|
37
|
-
React__default.createElement(Pixel, { color: props.color, "$delay": "-0.27" }),
|
|
38
|
-
React__default.createElement(Pixel, { color: props.color, "$delay": "-0.18" }),
|
|
39
|
-
React__default.createElement(Pixel, { color: props.color, "$delay": "-0.09" }),
|
|
40
|
-
React__default.createElement(Pixel, { color: props.color, "$delay": "0" })));
|
|
37
|
+
React__default.createElement(Pixel, { "$color": props.color, "$delay": "-0.27" }),
|
|
38
|
+
React__default.createElement(Pixel, { "$color": props.color, "$delay": "-0.18" }),
|
|
39
|
+
React__default.createElement(Pixel, { "$color": props.color, "$delay": "-0.09" }),
|
|
40
|
+
React__default.createElement(Pixel, { "$color": props.color, "$delay": "0" })));
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
export { PixelLoader as default };
|
|
@@ -56,7 +56,7 @@ const MobileDropdown = styled.button `
|
|
|
56
56
|
cursor: pointer;
|
|
57
57
|
background: none;
|
|
58
58
|
border: none;
|
|
59
|
-
padding: ${({ isCategoryLabel }) => (isCategoryLabel ? '0.5rem' : '0.75rem')} 1.25rem;
|
|
59
|
+
padding: ${({ $isCategoryLabel }) => ($isCategoryLabel ? '0.5rem' : '0.75rem')} 1.25rem;
|
|
60
60
|
color: ${theme.color.text.pink};
|
|
61
61
|
font-size: ${theme.fontSize.default};
|
|
62
62
|
line-height: ${theme.lineHeight.default};
|
|
@@ -117,8 +117,10 @@ const DropdownList = styled(CoreULStyles) `
|
|
|
117
117
|
background-color: ${theme.color.background.white.default};
|
|
118
118
|
border: 1px solid ${theme.color.line.L04};
|
|
119
119
|
border-radius: 0 0 ${theme.radius.default} ${theme.radius.default};
|
|
120
|
-
visibility: ${({ isDropdownListOpen }) => (isDropdownListOpen ? 'visible' : 'hidden')};
|
|
121
|
-
clip-path: inset(
|
|
120
|
+
visibility: ${({ $isDropdownListOpen }) => ($isDropdownListOpen ? 'visible' : 'hidden')};
|
|
121
|
+
clip-path: inset(
|
|
122
|
+
0% 0% ${({ $isDropdownListOpen }) => ($isDropdownListOpen ? '0%' : '100%')} 0%
|
|
123
|
+
);
|
|
122
124
|
transition: all 0.2s ease-in-out;
|
|
123
125
|
|
|
124
126
|
${media.md `
|
|
@@ -319,7 +321,7 @@ const PriorityNavigation = (_a) => {
|
|
|
319
321
|
!isMobile && props.categoryLabel && (React__default.createElement(Category, { id: categoryId }, props.categoryLabel)),
|
|
320
322
|
React__default.createElement("nav", { "aria-labelledby": categoryId },
|
|
321
323
|
React__default.createElement(ListsContainer, { ref: listsContainerRef },
|
|
322
|
-
isMobile && selectedItem && (React__default.createElement(MobileDropdown, { onClick: toggleMobileNavigation, "aria-label": mobileDropdownAriaLabel !== null && mobileDropdownAriaLabel !== void 0 ? mobileDropdownAriaLabel : `${props.categoryLabel ? `${props.categoryLabel}, ` : ''}${selectedItem}.`, "aria-expanded": isMobileNavigationOpen, isCategoryLabel: Boolean(props.categoryLabel) },
|
|
324
|
+
isMobile && selectedItem && (React__default.createElement(MobileDropdown, { onClick: toggleMobileNavigation, "aria-label": mobileDropdownAriaLabel !== null && mobileDropdownAriaLabel !== void 0 ? mobileDropdownAriaLabel : `${props.categoryLabel ? `${props.categoryLabel}, ` : ''}${selectedItem}.`, "aria-expanded": isMobileNavigationOpen, "$isCategoryLabel": Boolean(props.categoryLabel) },
|
|
323
325
|
React__default.createElement(MobileDropdownContent, null,
|
|
324
326
|
props.categoryLabel && React__default.createElement(Category, null, props.categoryLabel),
|
|
325
327
|
selectedItem),
|
|
@@ -346,7 +348,7 @@ const PriorityNavigation = (_a) => {
|
|
|
346
348
|
!isMobile && Boolean(state.dropdownItems.length) && (React__default.createElement(React__default.Fragment, null,
|
|
347
349
|
React__default.createElement("div", null,
|
|
348
350
|
React__default.createElement(ButtonIcon, { ref: dropdownButtonRef, ariaLabel: openMoreSubpagesAriaLabel, ariaExpanded: isDropdownListOpen, onClick: toggleDropdown, icon: isDropdownListOpen ? ChevronUp : ChevronDown, isReversed: true, "data-testid": "dropdown-button" }, dropdownButtonLabel)),
|
|
349
|
-
isDropdownListOpen && (React__default.createElement(DropdownList, { isDropdownListOpen: isDropdownListOpen }, state.dropdownItems.map(dropdownItem => isValidElement(dropdownItem) &&
|
|
351
|
+
isDropdownListOpen && (React__default.createElement(DropdownList, { "$isDropdownListOpen": isDropdownListOpen }, state.dropdownItems.map(dropdownItem => isValidElement(dropdownItem) &&
|
|
350
352
|
dropdownItem.type === PriorityNavigationItem && (React__default.createElement(PriorityNavigationItem, { id: dropdownItem.props.id, key: dropdownItem.key, onClick: dropdownItem.props.onClick || props.onClick, onKeyDown: dropdownItem.props.onKeyDown ||
|
|
351
353
|
props.onKeyDown, isActive: dropdownItem.props.isActive, className: dropdownItem.props.className, "data-testid": dropdownItem.props['data-testid'] }, dropdownItem.props.children)))))))))));
|
|
352
354
|
};
|
|
@@ -32,7 +32,7 @@ const ProgressIndicatorItem = styled.li `
|
|
|
32
32
|
flex-direction: column;
|
|
33
33
|
align-items: center;
|
|
34
34
|
flex: 1.5 1 0%;
|
|
35
|
-
gap: ${({ small }) => getMultipliedSize(theme.base.baseWidth, small ? 0.5 : 1)};
|
|
35
|
+
gap: ${({ $small }) => getMultipliedSize(theme.base.baseWidth, $small ? 0.5 : 1)};
|
|
36
36
|
|
|
37
37
|
&:first-of-type {
|
|
38
38
|
align-items: flex-start;
|
|
@@ -62,34 +62,34 @@ const ProgressIndicatorItem = styled.li `
|
|
|
62
62
|
`;
|
|
63
63
|
const ProgressIndicatorItemConnector = styled.div `
|
|
64
64
|
position: absolute;
|
|
65
|
-
top: ${({ small }) => getMultipliedSize(theme.base.baseHeight, small ? 1.5 : 2)};
|
|
65
|
+
top: ${({ $small }) => getMultipliedSize(theme.base.baseHeight, $small ? 1.5 : 2)};
|
|
66
66
|
left: -50%;
|
|
67
67
|
right: 50%;
|
|
68
68
|
width: 100%;
|
|
69
|
-
height: ${({ small }) => (small ? '2px' : '4px')};
|
|
70
|
-
background-color: ${({ isActive, isCompleted }) => isActive || isCompleted ? theme.color.default.pink : theme.color.line.L02};
|
|
69
|
+
height: ${({ $small }) => ($small ? '2px' : '4px')};
|
|
70
|
+
background-color: ${({ $isActive, $isCompleted }) => $isActive || $isCompleted ? theme.color.default.pink : theme.color.line.L02};
|
|
71
71
|
`;
|
|
72
72
|
const ProgressIndicatorItemNumber = styled.div `
|
|
73
73
|
display: flex;
|
|
74
74
|
justify-content: center;
|
|
75
75
|
align-items: center;
|
|
76
|
-
font-size: ${({ small }) => (small ? theme.fontSize.s : theme.fontSize.l)};
|
|
76
|
+
font-size: ${({ $small }) => ($small ? theme.fontSize.s : theme.fontSize.l)};
|
|
77
77
|
font-weight: ${theme.fontWeight.bold};
|
|
78
|
-
width: ${({ small }) => getMultipliedSize(theme.base.baseWidth, small ? 3 : 4)};
|
|
79
|
-
height: ${({ small }) => getMultipliedSize(theme.base.baseHeight, small ? 3 : 4)};
|
|
80
|
-
cursor: ${({ isClickable }) => (isClickable ? 'pointer' : 'default')};
|
|
81
|
-
color: ${({ isActive }) => (isActive ? theme.color.text.white : theme.color.text.gray)};
|
|
78
|
+
width: ${({ $small }) => getMultipliedSize(theme.base.baseWidth, $small ? 3 : 4)};
|
|
79
|
+
height: ${({ $small }) => getMultipliedSize(theme.base.baseHeight, $small ? 3 : 4)};
|
|
80
|
+
cursor: ${({ $isClickable }) => ($isClickable ? 'pointer' : 'default')};
|
|
81
|
+
color: ${({ $isActive }) => ($isActive ? theme.color.text.white : theme.color.text.gray)};
|
|
82
82
|
border-radius: ${theme.radius.circle};
|
|
83
|
-
border: ${({ small, isActive, isCompleted, isError }) => `${small ? '3px' : '4px'} solid ${getBorderColor({ isActive, isCompleted, isError })}`};
|
|
83
|
+
border: ${({ $small, $isActive, $isCompleted, $isError }) => `${$small ? '3px' : '4px'} solid ${getBorderColor({ isActive: $isActive, isCompleted: $isCompleted, isError: $isError })}`};
|
|
84
84
|
z-index: 1;
|
|
85
85
|
|
|
86
|
-
${({ isActive, isError }) => getBackgroundColor({ isActive, isError })}
|
|
86
|
+
${({ $isActive, $isError }) => getBackgroundColor({ isActive: $isActive, isError: $isError })}
|
|
87
87
|
`;
|
|
88
88
|
const ProgressIndicatorItemLabel = styled.div `
|
|
89
|
-
font-size: ${({ small }) => (small ? theme.fontSize.xs : theme.fontSize.s)};
|
|
90
|
-
line-height: ${({ small }) => (small ? theme.lineHeight.xs : theme.lineHeight.s)};
|
|
89
|
+
font-size: ${({ $small }) => ($small ? theme.fontSize.xs : theme.fontSize.s)};
|
|
90
|
+
line-height: ${({ $small }) => ($small ? theme.lineHeight.xs : theme.lineHeight.s)};
|
|
91
91
|
font-weight: ${theme.fontWeight.bold};
|
|
92
|
-
color: ${({ isActive }) => (isActive ? theme.color.text.black : theme.color.text.gray)};
|
|
92
|
+
color: ${({ $isActive }) => ($isActive ? theme.color.text.black : theme.color.text.gray)};
|
|
93
93
|
|
|
94
94
|
${media.sm `
|
|
95
95
|
&.visually-hidden {
|
|
@@ -125,12 +125,12 @@ const ProgressIndicator = (_a) => {
|
|
|
125
125
|
}
|
|
126
126
|
};
|
|
127
127
|
const isClickable = isCompleted && Boolean(props.onStepClick);
|
|
128
|
-
return (React__default.createElement(ProgressIndicatorItem, { key: id, small: props.small },
|
|
129
|
-
index > 0 && (React__default.createElement(ProgressIndicatorItemConnector, { small: props.small, isActive: isActive, isCompleted: isCompleted })),
|
|
130
|
-
React__default.createElement(ProgressIndicatorItemNumber, { small: props.small,
|
|
128
|
+
return (React__default.createElement(ProgressIndicatorItem, { key: id, "$small": props.small },
|
|
129
|
+
index > 0 && (React__default.createElement(ProgressIndicatorItemConnector, { "$small": props.small, "$isActive": isActive, "$isCompleted": isCompleted })),
|
|
130
|
+
React__default.createElement(ProgressIndicatorItemNumber, { "$small": props.small, "$isActive": isActive, "$isCompleted": isCompleted, "$isError": isError, "$isClickable": isClickable, onClick: handleClick, onKeyDown: handleKeyDown, tabIndex: isClickable || isActive ? 0 : -1, role: "tab", "aria-current": isActive ? 'step' : 'false', "aria-label": isCompleted && props.completedStepLabel
|
|
131
131
|
? `${label}, ${props.completedStepLabel}`
|
|
132
132
|
: label }, isCompleted || isError ? (React__default.createElement(Icon, { icon: isError ? Warning : Check, color: isError ? theme.color.text.white : theme.color.text.pink, size: "1rem", "aria-hidden": true })) : (stepNumber)),
|
|
133
|
-
label && (React__default.createElement(ProgressIndicatorItemLabel, { "aria-hidden": true, small: props.small,
|
|
133
|
+
label && (React__default.createElement(ProgressIndicatorItemLabel, { "aria-hidden": true, "$small": props.small, "$isActive": isActive, onClick: handleClick, className: "visually-hidden" }, label))));
|
|
134
134
|
});
|
|
135
135
|
return (React__default.createElement(ProgressIndicatorWrapper, { className: props.className, "data-testid": dataTestId, "aria-label": props.ariaLabel, role: "tablist" }, progressIndicatorItems));
|
|
136
136
|
};
|