@thecb/components 3.5.16 → 3.6.0-beta.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/.storybook/main.js +1 -1
- package/.storybook/page.js +0 -2
- package/dist/index.cjs.js +406 -442
- package/package.json +2 -2
- package/src/components/atoms/alert/Alert.js +34 -50
- package/src/components/atoms/breadcrumb/Breadcrumb.js +1 -4
- package/src/components/atoms/button-with-action/ButtonWithAction.js +1 -1
- package/src/components/atoms/checkbox/Checkbox.js +0 -1
- package/src/components/atoms/checkbox-list/CheckboxList.js +1 -3
- package/src/components/atoms/display-card/DisplayCard.js +2 -4
- package/src/components/atoms/dropdown/Dropdown.js +3 -3
- package/src/components/atoms/dropdown/Dropdown.stories.js +33 -10
- package/src/components/atoms/form-layouts/FormInput.js +7 -27
- package/src/components/atoms/form-layouts/FormLayouts.stories.js +5 -5
- package/src/components/atoms/hamburger-button/HamburgerButton.js +3 -4
- package/src/components/atoms/icons/AccountsIconSmall.js +13 -6
- package/src/components/atoms/icons/icons.stories.js +1 -1
- package/src/components/atoms/layouts/Box.styled.js +0 -1
- package/src/components/atoms/layouts/Cluster.styled.js +1 -5
- package/src/components/atoms/layouts/Cover.styled.js +1 -0
- package/src/components/atoms/layouts/Imposter.styled.js +1 -0
- package/src/components/atoms/layouts/Sidebar.js +2 -2
- package/src/components/atoms/layouts/Sidebar.styled.js +3 -9
- package/src/components/atoms/radio-button/RadioButton.js +0 -1
- package/src/components/atoms/radio-button/RadioButton.stories.js +61 -26
- package/src/components/atoms/toggle-switch/ToggleSwitch.js +0 -1
- package/src/components/atoms/toggle-switch/ToggleSwitch.stories.js +51 -10
- package/src/components/molecules/content/Content.js +20 -0
- package/src/components/molecules/content/Content.theme.js +60 -0
- package/src/components/molecules/content/blocks/accordion-block/AccordionBlock.js +108 -0
- package/src/components/molecules/content/blocks/accordion-block/index.js +3 -0
- package/src/components/molecules/content/blocks/article-block/ArticleBlock.js +58 -0
- package/src/components/molecules/content/blocks/article-block/index.js +3 -0
- package/src/components/molecules/content/blocks/attached-file-block/AttachedFileBlock.js +60 -0
- package/src/components/molecules/content/blocks/attached-file-block/index.js +3 -0
- package/src/components/molecules/content/blocks/featured-content-block/FeaturedContentBlock.js +0 -0
- package/src/components/molecules/content/blocks/featured-content-block/index.js +0 -0
- package/src/components/molecules/content/blocks/hero-block/HeroBlock.js +54 -0
- package/src/components/molecules/content/blocks/hero-block/index.js +3 -0
- package/src/components/molecules/content/blocks/highlight-block/HighlightBlock.js +42 -0
- package/src/components/molecules/content/blocks/highlight-block/index.js +3 -0
- package/src/components/molecules/content/blocks/index.js +33 -0
- package/src/components/molecules/content/blocks/info-block/InfoBlock.js +15 -0
- package/src/components/molecules/content/blocks/info-block/index.js +3 -0
- package/src/components/molecules/content/blocks/location-block/LocationBlock.js +228 -0
- package/src/components/molecules/content/blocks/location-block/index.js +3 -0
- package/src/components/molecules/content/blocks/related-links-block/RelatedLinksBlock.js +35 -0
- package/src/components/molecules/content/blocks/related-links-block/index.js +3 -0
- package/src/components/molecules/content/blocks/screendoor-block/ScreendoorBlock.js +57 -0
- package/src/components/molecules/content/blocks/screendoor-block/ScreendoorForm.styled.js +314 -0
- package/src/components/molecules/content/blocks/screendoor-block/index.js +3 -0
- package/src/components/molecules/content/blocks/tagline-block/TaglineBlock.js +45 -0
- package/src/components/molecules/content/blocks/tagline-block/index.js +3 -0
- package/src/components/molecules/content/blocks/task-block/TaskBlock.js +40 -0
- package/src/components/molecules/content/blocks/task-block/index.js +3 -0
- package/src/components/molecules/content/blocks/text-block/TextBlock.js +40 -0
- package/src/components/molecules/content/blocks/text-block/index.js +3 -0
- package/src/components/molecules/content/header/Header.js +283 -0
- package/src/components/molecules/content/header/Header.theme.js +11 -0
- package/src/components/molecules/content/header/index.js +3 -0
- package/src/components/molecules/content/index.js +3 -0
- package/src/components/molecules/editable-list/EditableList.js +8 -11
- package/src/components/molecules/nav-menu/NavMenuDesktop.js +1 -2
- package/src/components/molecules/nav-menu/NavMenuMobile.js +1 -7
- package/src/components/molecules/radio-section/RadioSection.js +6 -15
- package/src/components/molecules/workflow-tile/WorkflowTile.js +3 -4
- package/src/deprecated/components/radio-button/radio-button.js +1 -5
- package/src/deprecated/icons/AlertSuccessIcon.js +3 -3
- package/src/deprecated/icons/IconInvalid.js +31 -7
- package/src/deprecated/icons/IconNeutral.js +4 -5
- package/src/deprecated/icons/IconValid.js +33 -8
- package/src/util/general.js +1 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thecb/components",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0-beta.0",
|
|
4
4
|
"description": "Common lib for CityBase react components",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.esm.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@babel/preset-react": "^7.0.0",
|
|
26
26
|
"@babel/register": "^7.6.2",
|
|
27
27
|
"@rollup/plugin-json": "^4.0.3",
|
|
28
|
-
"@storybook/addon-a11y": "5.3.14",
|
|
28
|
+
"@storybook/addon-a11y": "^5.3.14",
|
|
29
29
|
"@storybook/addon-actions": "^5.3.14",
|
|
30
30
|
"@storybook/addon-console": "^1.2.1",
|
|
31
31
|
"@storybook/addon-docs": "^5.3.19",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { AlertIcons, IconQuit } from "../../../deprecated/icons";
|
|
3
|
-
import { Box,
|
|
3
|
+
import { Box, Cluster, Stack, Cover, Sidebar } from "../layouts";
|
|
4
4
|
import Text from "../text";
|
|
5
5
|
import { fallbackValues } from "./Alert.theme";
|
|
6
6
|
import { themeComponent } from "../../../util/themeUtils";
|
|
@@ -8,34 +8,37 @@ import { themeComponent } from "../../../util/themeUtils";
|
|
|
8
8
|
const Alert = ({
|
|
9
9
|
heading,
|
|
10
10
|
text,
|
|
11
|
-
textOverride,
|
|
12
11
|
variant,
|
|
13
12
|
children,
|
|
14
13
|
height,
|
|
15
14
|
onLinkClick,
|
|
16
|
-
padding = "0.5rem",
|
|
17
15
|
showQuitLink = true,
|
|
18
|
-
maxContentWidth,
|
|
19
16
|
themeValues
|
|
20
17
|
}) => {
|
|
21
18
|
const Icon = AlertIcons[variant];
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
19
|
+
return (
|
|
20
|
+
<Box
|
|
21
|
+
padding="0.5rem"
|
|
22
|
+
width="100%"
|
|
23
|
+
minHeight="100px"
|
|
24
|
+
height={height ? height : "auto"}
|
|
25
|
+
background={themeValues.background}
|
|
26
|
+
borderRadius="4px"
|
|
27
|
+
borderColor={themeValues.border}
|
|
28
|
+
borderSize="1px"
|
|
29
|
+
>
|
|
30
|
+
<Sidebar width="24px" childGap="0rem">
|
|
31
|
+
<Box padding="0 0 0 1rem" minHeight="100%">
|
|
32
|
+
<Cover minHeight="100%" singleChild>
|
|
33
|
+
<Box padding="0" width="1.5rem" minHeight="1.5rem">
|
|
34
|
+
<Icon />
|
|
35
|
+
</Box>
|
|
36
|
+
</Cover>
|
|
37
|
+
</Box>
|
|
38
|
+
<Box padding="0">
|
|
39
|
+
<Sidebar onRight width="24px" childGap="0rem">
|
|
40
|
+
<Box padding="1rem">
|
|
41
|
+
<Cluster justify="flex-start" align="center">
|
|
39
42
|
<Stack fullHeight childGap="0.25rem">
|
|
40
43
|
<Text variant="p" color={themeValues.text} weight="600">
|
|
41
44
|
{heading}
|
|
@@ -45,37 +48,18 @@ const Alert = ({
|
|
|
45
48
|
</Text>
|
|
46
49
|
{children}
|
|
47
50
|
</Stack>
|
|
51
|
+
</Cluster>
|
|
52
|
+
</Box>
|
|
53
|
+
<Cluster justify="flex-end" align="flex-start">
|
|
54
|
+
{showQuitLink && (
|
|
55
|
+
<Box padding="0" minHeight="100%" onClick={onLinkClick}>
|
|
56
|
+
<IconQuit />
|
|
57
|
+
</Box>
|
|
48
58
|
)}
|
|
49
59
|
</Cluster>
|
|
50
|
-
</
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<Box padding="0" minHeight="100%" onClick={onLinkClick}>
|
|
54
|
-
<IconQuit />
|
|
55
|
-
</Box>
|
|
56
|
-
)}
|
|
57
|
-
</Cluster>
|
|
58
|
-
</Sidebar>
|
|
59
|
-
</Box>
|
|
60
|
-
</Sidebar>
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
return (
|
|
64
|
-
<Box
|
|
65
|
-
padding={padding}
|
|
66
|
-
width="100%"
|
|
67
|
-
minHeight={height && parseInt(height) < 100 ? height : "100px"}
|
|
68
|
-
height={height ? height : "auto"}
|
|
69
|
-
background={themeValues.background}
|
|
70
|
-
borderRadius="4px"
|
|
71
|
-
borderColor={themeValues.border}
|
|
72
|
-
borderSize="1px"
|
|
73
|
-
>
|
|
74
|
-
{maxContentWidth ? (
|
|
75
|
-
<Center maxWidth={maxContentWidth}>{content}</Center>
|
|
76
|
-
) : (
|
|
77
|
-
content
|
|
78
|
-
)}
|
|
60
|
+
</Sidebar>
|
|
61
|
+
</Box>
|
|
62
|
+
</Sidebar>
|
|
79
63
|
</Box>
|
|
80
64
|
);
|
|
81
65
|
};
|
|
@@ -15,15 +15,12 @@ const Breadcrumbs = ({ breadcrumbsList = [] }) => {
|
|
|
15
15
|
"Breadcrumb"
|
|
16
16
|
);
|
|
17
17
|
return (
|
|
18
|
-
<Box padding="0"
|
|
18
|
+
<Box padding="0" role="region" aria-level="Breadcrumb navigation">
|
|
19
19
|
<Cluster justify="flex-start" align="center">
|
|
20
20
|
{breadcrumbsList.map(
|
|
21
21
|
({ linkText, linkDestination, isActive }, index) => (
|
|
22
22
|
<Fragment key={`breadcrumb-${linkText}`}>
|
|
23
23
|
<InternalLink
|
|
24
|
-
aria-current={
|
|
25
|
-
index === breadcrumbsList.length - 1 && "location"
|
|
26
|
-
}
|
|
27
24
|
to={linkDestination}
|
|
28
25
|
active={isActive.toString()}
|
|
29
26
|
color={themeValues.color}
|
|
@@ -123,7 +123,7 @@ const ButtonWithAction = ({
|
|
|
123
123
|
activeStyles={activeStyles}
|
|
124
124
|
disabledStyles={disabledStyles}
|
|
125
125
|
as="button"
|
|
126
|
-
onClick={
|
|
126
|
+
onClick={action}
|
|
127
127
|
borderRadius="2px"
|
|
128
128
|
theme={themeContext}
|
|
129
129
|
extraStyles={isLoading ? loadingExtraStyles : extraStyles}
|
|
@@ -35,7 +35,6 @@ const CheckboxListItem = ({
|
|
|
35
35
|
name,
|
|
36
36
|
imageUrl,
|
|
37
37
|
image,
|
|
38
|
-
imageAlt = "checkbox icon",
|
|
39
38
|
disabled,
|
|
40
39
|
borderColor,
|
|
41
40
|
color,
|
|
@@ -58,7 +57,6 @@ const CheckboxListItem = ({
|
|
|
58
57
|
<HiddenCheckboxInput id={`checkbox-${name}-${index}`} />
|
|
59
58
|
<CheckboxLabel
|
|
60
59
|
name={name}
|
|
61
|
-
aria-label={name}
|
|
62
60
|
htmlFor={`checkbox-${name}-${index}`}
|
|
63
61
|
onClick={disabled ? noop : onSelect}
|
|
64
62
|
onKeyDown={disabled ? noop : onSelect}
|
|
@@ -75,7 +73,7 @@ const CheckboxListItem = ({
|
|
|
75
73
|
</CheckboxLabel>
|
|
76
74
|
<Box padding="0rem 0.5rem 0rem 0rem" hiddenStyles={!imageUrl}>
|
|
77
75
|
<Cluster justify="flex-start" align="center">
|
|
78
|
-
<CheckboxItemIcon src={imageUrl}
|
|
76
|
+
<CheckboxItemIcon src={imageUrl} />
|
|
79
77
|
</Cluster>
|
|
80
78
|
</Box>
|
|
81
79
|
<Box padding="0rem 0.5rem 0rem 0rem" hiddenStyles={!image}>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import Stack from "../layouts/Stack";
|
|
3
3
|
import Box from "../layouts/Box";
|
|
4
4
|
import Text from "../text";
|
|
@@ -48,7 +48,7 @@ const DisplayCard = ({
|
|
|
48
48
|
dataQa={buttonText}
|
|
49
49
|
extraStyles={`min-width: 0;`}
|
|
50
50
|
/>
|
|
51
|
-
) :
|
|
51
|
+
) : (
|
|
52
52
|
<ButtonWithAction
|
|
53
53
|
text={buttonText}
|
|
54
54
|
action={buttonAction}
|
|
@@ -56,8 +56,6 @@ const DisplayCard = ({
|
|
|
56
56
|
dataQa={buttonText}
|
|
57
57
|
extraStyles={`min-width: 0;`}
|
|
58
58
|
/>
|
|
59
|
-
) : (
|
|
60
|
-
<Fragment />
|
|
61
59
|
)}
|
|
62
60
|
</Cluster>
|
|
63
61
|
</Box>
|
|
@@ -200,7 +200,7 @@ const Dropdown = ({
|
|
|
200
200
|
tabIndex={0}
|
|
201
201
|
padding="0"
|
|
202
202
|
width="100%"
|
|
203
|
-
|
|
203
|
+
focusStyles={`background-color: ${themeValues.hoverColor};`}
|
|
204
204
|
aria-expanded={isOpen}
|
|
205
205
|
>
|
|
206
206
|
<Box
|
|
@@ -209,6 +209,7 @@ const Dropdown = ({
|
|
|
209
209
|
width="100%"
|
|
210
210
|
padding="12px"
|
|
211
211
|
hoverStyles={`background-color: ${themeValues.hoverColor};`}
|
|
212
|
+
focusStyles={`background-color: ${themeValues.hoverColor};`}
|
|
212
213
|
borderSize="1px"
|
|
213
214
|
borderColor={
|
|
214
215
|
isError
|
|
@@ -224,7 +225,6 @@ const Dropdown = ({
|
|
|
224
225
|
<Stack direction="row" bottomItem={2}>
|
|
225
226
|
{isOpen ? (
|
|
226
227
|
<SearchInput
|
|
227
|
-
aria-label={inputValue || "Dropdown awaiting search value"}
|
|
228
228
|
value={inputValue}
|
|
229
229
|
onChange={noop}
|
|
230
230
|
themeValues={themeValues}
|
|
@@ -242,7 +242,7 @@ const Dropdown = ({
|
|
|
242
242
|
</Stack>
|
|
243
243
|
</Box>
|
|
244
244
|
{isOpen ? (
|
|
245
|
-
<DropdownContentWrapper open={isOpen} ref={dropdownRef} tabIndex={
|
|
245
|
+
<DropdownContentWrapper open={isOpen} ref={dropdownRef} tabIndex={-1}>
|
|
246
246
|
<Stack childGap="0">
|
|
247
247
|
{filteredOptions.map((choice, i) => (
|
|
248
248
|
<DropdownItemWrapper
|
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
import React, { useState, useEffect } from "react";
|
|
2
|
+
import { withKnobs, text } from "@storybook/addon-knobs";
|
|
2
3
|
import Dropdown from "./Dropdown";
|
|
3
|
-
import
|
|
4
|
+
import { Cover, Center } from "../layouts";
|
|
5
|
+
import { ThemeProvider } from "styled-components";
|
|
6
|
+
|
|
7
|
+
const fakeTheme = {
|
|
8
|
+
Dropdown: {
|
|
9
|
+
selectedColor: "#15749D",
|
|
10
|
+
hoverColor: "#EFFAFF"
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default {
|
|
15
|
+
title: "Dropdown",
|
|
16
|
+
component: Dropdown,
|
|
17
|
+
decorators: [
|
|
18
|
+
withKnobs,
|
|
19
|
+
storyFn => (
|
|
20
|
+
<ThemeProvider
|
|
21
|
+
theme={{
|
|
22
|
+
name: text("Theme Name", "default"),
|
|
23
|
+
values: fakeTheme
|
|
24
|
+
}}
|
|
25
|
+
>
|
|
26
|
+
<Cover>
|
|
27
|
+
<div />
|
|
28
|
+
<Center>{storyFn()}</Center>
|
|
29
|
+
<div />
|
|
30
|
+
</Cover>
|
|
31
|
+
</ThemeProvider>
|
|
32
|
+
)
|
|
33
|
+
]
|
|
34
|
+
};
|
|
4
35
|
|
|
5
36
|
const options = [
|
|
6
37
|
{ text: "Please select an option", value: "" },
|
|
@@ -11,7 +42,7 @@ const options = [
|
|
|
11
42
|
|
|
12
43
|
const disabledValues = ["DISABLED_OPTION"];
|
|
13
44
|
|
|
14
|
-
export const
|
|
45
|
+
export const dropdownDefault = () => {
|
|
15
46
|
const [isOpen, setOpen] = useState(false);
|
|
16
47
|
const [value, setValue] = useState(null);
|
|
17
48
|
const [isError, setError] = useState(false);
|
|
@@ -37,11 +68,3 @@ export const dropdown = () => {
|
|
|
37
68
|
/>
|
|
38
69
|
);
|
|
39
70
|
};
|
|
40
|
-
|
|
41
|
-
const story = page({
|
|
42
|
-
title: "Components|Atoms/Dropdown",
|
|
43
|
-
Component: Dropdown,
|
|
44
|
-
height: "500px"
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
export default story;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useState, useContext } from "react";
|
|
2
|
-
import styled, { ThemeContext
|
|
2
|
+
import styled, { ThemeContext } from "styled-components";
|
|
3
3
|
import { FormattedInput } from "formatted-input";
|
|
4
4
|
import { fallbackValues } from "./FormLayouts.theme.js";
|
|
5
5
|
import { themeComponent } from "../../../util/themeUtils";
|
|
@@ -15,7 +15,7 @@ const InputField = styled.input`
|
|
|
15
15
|
? ERROR_COLOR
|
|
16
16
|
: themeValues.borderColor};
|
|
17
17
|
border-radius: 2px;
|
|
18
|
-
height:
|
|
18
|
+
height: 48px;
|
|
19
19
|
width: 100%;
|
|
20
20
|
padding: 1rem;
|
|
21
21
|
min-width: 100px;
|
|
@@ -38,15 +38,10 @@ const InputField = styled.input`
|
|
|
38
38
|
&:focus {
|
|
39
39
|
border: 1px solid ${MATISSE_BLUE};
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
${({ extraStyles }) =>
|
|
43
|
-
css`
|
|
44
|
-
${extraStyles}
|
|
45
|
-
`}
|
|
46
41
|
`;
|
|
47
42
|
|
|
48
43
|
// eslint-disable-next-line no-unused-vars
|
|
49
|
-
const FormattedInputField = styled(({ showErrors,
|
|
44
|
+
const FormattedInputField = styled(({ showErrors, ...props }) => (
|
|
50
45
|
<FormattedInput {...props} />
|
|
51
46
|
))`
|
|
52
47
|
border: 1px solid
|
|
@@ -55,7 +50,7 @@ const FormattedInputField = styled(({ showErrors, themeValues, ...props }) => (
|
|
|
55
50
|
? ERROR_COLOR
|
|
56
51
|
: themeValues.borderColor};
|
|
57
52
|
border-radius: 2px;
|
|
58
|
-
height:
|
|
53
|
+
height: 48px;
|
|
59
54
|
width: 100%;
|
|
60
55
|
padding: 1rem;
|
|
61
56
|
min-width: 100px;
|
|
@@ -73,11 +68,6 @@ const FormattedInputField = styled(({ showErrors, themeValues, ...props }) => (
|
|
|
73
68
|
&:focus {
|
|
74
69
|
border: 1px solid ${MATISSE_BLUE};
|
|
75
70
|
}
|
|
76
|
-
|
|
77
|
-
${({ extraStyles }) =>
|
|
78
|
-
css`
|
|
79
|
-
${extraStyles}
|
|
80
|
-
`}
|
|
81
71
|
`;
|
|
82
72
|
|
|
83
73
|
const FormInput = ({
|
|
@@ -93,8 +83,6 @@ const FormInput = ({
|
|
|
93
83
|
decorator,
|
|
94
84
|
themeValues,
|
|
95
85
|
background,
|
|
96
|
-
customHeight,
|
|
97
|
-
extraStyles,
|
|
98
86
|
...props
|
|
99
87
|
}) => {
|
|
100
88
|
const [showPassword, setShowPassword] = useState(false);
|
|
@@ -106,7 +94,6 @@ const FormInput = ({
|
|
|
106
94
|
{helperModal ? (
|
|
107
95
|
<Cluster justify="space-between" align="center">
|
|
108
96
|
<Text
|
|
109
|
-
as="label"
|
|
110
97
|
color={themeValues.labelColor}
|
|
111
98
|
variant="pS"
|
|
112
99
|
weight={themeValues.fontWeight}
|
|
@@ -115,7 +102,6 @@ const FormInput = ({
|
|
|
115
102
|
&::first-letter {
|
|
116
103
|
text-transform: uppercase;
|
|
117
104
|
}`}
|
|
118
|
-
id={labelTextWhenNoError.replace(/\s+/g, "-")}
|
|
119
105
|
>
|
|
120
106
|
{labelTextWhenNoError}
|
|
121
107
|
</Text>
|
|
@@ -131,7 +117,6 @@ const FormInput = ({
|
|
|
131
117
|
<Box padding="0" minWidth="100%">
|
|
132
118
|
<Cluster justify="space-between" align="center">
|
|
133
119
|
<Text
|
|
134
|
-
as="label"
|
|
135
120
|
color={themeValues.labelColor}
|
|
136
121
|
variant="pS"
|
|
137
122
|
fontWeight={themeValues.fontWeight}
|
|
@@ -140,7 +125,7 @@ const FormInput = ({
|
|
|
140
125
|
&::first-letter {
|
|
141
126
|
text-transform: uppercase;
|
|
142
127
|
}`}
|
|
143
|
-
id={labelTextWhenNoError
|
|
128
|
+
id={labelTextWhenNoError}
|
|
144
129
|
>
|
|
145
130
|
{labelTextWhenNoError}
|
|
146
131
|
</Text>
|
|
@@ -150,7 +135,6 @@ const FormInput = ({
|
|
|
150
135
|
color={themeValues.linkColor}
|
|
151
136
|
weight={themeValues.fontWeight}
|
|
152
137
|
hoverStyles={themeValues.hoverFocusStyles}
|
|
153
|
-
focusStyles={themeValues.hoverFocusStyles}
|
|
154
138
|
extraStyles={`cursor: pointer;`}
|
|
155
139
|
onClick={() => setShowPassword(!showPassword)}
|
|
156
140
|
aria-label="Show password"
|
|
@@ -172,7 +156,7 @@ const FormInput = ({
|
|
|
172
156
|
<Box padding="0">
|
|
173
157
|
{formatter ? (
|
|
174
158
|
<FormattedInputField
|
|
175
|
-
aria-labelledby={labelTextWhenNoError
|
|
159
|
+
aria-labelledby={labelTextWhenNoError}
|
|
176
160
|
onChange={e => fieldActions.set(e)}
|
|
177
161
|
type={type}
|
|
178
162
|
value={field.rawValue}
|
|
@@ -183,13 +167,11 @@ const FormInput = ({
|
|
|
183
167
|
showErrors={showErrors}
|
|
184
168
|
data-qa={labelTextWhenNoError}
|
|
185
169
|
themeValues={themeValues}
|
|
186
|
-
customHeight={customHeight}
|
|
187
|
-
extraStyles={extraStyles}
|
|
188
170
|
{...props}
|
|
189
171
|
/>
|
|
190
172
|
) : (
|
|
191
173
|
<InputField
|
|
192
|
-
aria-labelledby={labelTextWhenNoError
|
|
174
|
+
aria-labelledby={labelTextWhenNoError}
|
|
193
175
|
onChange={e => fieldActions.set(e.target.value)}
|
|
194
176
|
type={type === "password" && showPassword ? "text" : type}
|
|
195
177
|
value={field.rawValue}
|
|
@@ -200,8 +182,6 @@ const FormInput = ({
|
|
|
200
182
|
data-qa={labelTextWhenNoError}
|
|
201
183
|
themeValues={themeValues}
|
|
202
184
|
background={background}
|
|
203
|
-
customHeight={customHeight}
|
|
204
|
-
extraStyles={extraStyles}
|
|
205
185
|
{...props}
|
|
206
186
|
/>
|
|
207
187
|
)}
|
|
@@ -30,7 +30,7 @@ export const formLayouts = () => {
|
|
|
30
30
|
>
|
|
31
31
|
<FormInputRow childGap={text("rowChildGap", "1rem", "props")}>
|
|
32
32
|
<FormInput
|
|
33
|
-
labelTextWhenNoError="Form Layouts
|
|
33
|
+
labelTextWhenNoError="Form Layouts"
|
|
34
34
|
errorMessages="Error"
|
|
35
35
|
field={data.test}
|
|
36
36
|
/>
|
|
@@ -38,24 +38,24 @@ export const formLayouts = () => {
|
|
|
38
38
|
<FormInputRow childGap={text("rowChildGap", "1rem", "props")}>
|
|
39
39
|
<FormInputColumn childGap={text("columnChildGap", "0.5rem", "props")}>
|
|
40
40
|
<FormInput
|
|
41
|
-
labelTextWhenNoError="Form Layouts
|
|
41
|
+
labelTextWhenNoError="Form Layouts"
|
|
42
42
|
errorMessages="Error"
|
|
43
43
|
field={data.test}
|
|
44
44
|
/>
|
|
45
45
|
<FormInput
|
|
46
|
-
labelTextWhenNoError="Form Layouts
|
|
46
|
+
labelTextWhenNoError="Form Layouts"
|
|
47
47
|
errorMessages="Error"
|
|
48
48
|
field={data.test}
|
|
49
49
|
/>
|
|
50
50
|
</FormInputColumn>
|
|
51
51
|
<FormInputColumn childGap={text("columnChildGap", "0.5rem", "props")}>
|
|
52
52
|
<FormInput
|
|
53
|
-
labelTextWhenNoError="Form Layouts
|
|
53
|
+
labelTextWhenNoError="Form Layouts"
|
|
54
54
|
errorMessages="Error"
|
|
55
55
|
field={data.test}
|
|
56
56
|
/>
|
|
57
57
|
<FormInput
|
|
58
|
-
labelTextWhenNoError="Form Layouts
|
|
58
|
+
labelTextWhenNoError="Form Layouts"
|
|
59
59
|
errorMessages="Error"
|
|
60
60
|
field={data.test}
|
|
61
61
|
/>
|
|
@@ -97,15 +97,14 @@ const HamburgerButton = ({
|
|
|
97
97
|
activeColor,
|
|
98
98
|
inactiveColor,
|
|
99
99
|
isActive,
|
|
100
|
-
onClick = noop
|
|
101
|
-
controls
|
|
100
|
+
onClick = noop
|
|
102
101
|
}) => (
|
|
103
102
|
<Hamburger
|
|
104
103
|
className={isActive === true ? "active" : ""}
|
|
105
104
|
onClick={onClick}
|
|
106
105
|
type="button"
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
ariaLabel="Menu"
|
|
107
|
+
ariaControls="navigation"
|
|
109
108
|
>
|
|
110
109
|
<HamburgerBox>
|
|
111
110
|
<HamburgerInner
|
|
@@ -22,18 +22,25 @@ const AccountsIconSmall = ({ themeValues }) => {
|
|
|
22
22
|
height="27"
|
|
23
23
|
></rect>
|
|
24
24
|
</defs>
|
|
25
|
-
<g
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
<g
|
|
26
|
+
id="Random-Icon-Work"
|
|
27
|
+
stroke="none"
|
|
28
|
+
strokeWidth="1"
|
|
29
|
+
fill="none"
|
|
30
|
+
fillRule="evenodd"
|
|
31
|
+
>
|
|
32
|
+
<g id="Header/Desktop/Menu">
|
|
33
|
+
<g id="Header/Desktop/Menu/Accounts-Tab">
|
|
28
34
|
<g>
|
|
29
|
-
<g>
|
|
30
|
-
<g>
|
|
35
|
+
<g id="Payments">
|
|
36
|
+
<g id="folder-open">
|
|
31
37
|
<mask id="mask-2-accountssmall" fill="white">
|
|
32
38
|
<use xlinkHref="#path-1-accountssmall"></use>
|
|
33
39
|
</mask>
|
|
34
|
-
<g></g>
|
|
40
|
+
<g id="Mask"></g>
|
|
35
41
|
<path
|
|
36
42
|
d="M1.875,17.9609424 L4.30077547,13.8125148 C4.60546242,13.2968908 5.01561733,12.8867359 5.53124128,12.5820489 C6.04686523,12.277362 6.60936389,12.1250188 7.21873726,12.1250188 L7.21873726,12.1250188 L18.7499598,12.1250188 L18.7499598,10.4375228 C18.7499598,9.9687741 18.5858975,9.57033719 18.2577734,9.24221315 C17.9296494,8.91408911 17.5312125,8.75002682 17.0624638,8.75002682 L17.0624638,8.75002682 L11.4374772,8.75002682 L9.18748257,6.50003219 L3.56249598,6.50003219 C3.09374727,6.50003219 2.69531037,6.66409447 2.36718633,6.99221851 C2.03906229,7.32034255 1.875,7.71877946 1.875,8.18752816 L1.875,8.18752816 L1.875,17.9609424 Z M17.519494,20 C17.9179303,20 18.2929296,19.900391 18.6444913,19.7011726 C18.9960529,19.5019541 19.2655837,19.2265643 19.4530831,18.8750027 L19.4530831,18.8750027 L22.0194832,14.5156381 C22.1835455,14.2343887 22.1835455,13.9531394 22.0194832,13.6718901 C21.8554209,13.3906408 21.6093278,13.2500161 21.2812037,13.2500161 L21.2812037,13.2500161 L7.21873726,13.2500161 C6.82030089,13.2500161 6.4453016,13.3496251 6.09373994,13.5488435 C5.74217828,13.748062 5.47264749,14.0234517 5.28514812,14.3750134 L5.28514812,14.3750134 L2.71874799,18.734378 C2.5546857,19.0156273 2.5546857,19.2968767 2.71874799,19.578126 C2.88281028,19.8593753 3.12890344,20 3.45702748,20 L3.45702748,20 L17.519494,20 Z"
|
|
43
|
+
id="f"
|
|
37
44
|
fill={themeValues.singleIconColor}
|
|
38
45
|
fillRule="nonzero"
|
|
39
46
|
mask="url(#mask-2-accountssmall)"
|
|
@@ -48,5 +48,5 @@ export const routingNumberImage = () => <RoutingNumberImage />;
|
|
|
48
48
|
export const checkmarkIcon = () => <CheckmarkIcon />;
|
|
49
49
|
export const bankIcon = () => <BankIcon />;
|
|
50
50
|
export const genericCard = () => <GenericCard />;
|
|
51
|
-
export const
|
|
51
|
+
export const paymentIco = () => <PaymentIcon />;
|
|
52
52
|
export const autopayOnIcon = () => <AutopayOnIcon />;
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import styled from "styled-components";
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
export const ClusterWrapper = styled(({ overflow, ...props }) => (
|
|
6
|
-
<div {...props} />
|
|
7
|
-
))`
|
|
3
|
+
export const ClusterWrapper = styled.div`
|
|
8
4
|
overflow: ${({ overflow }) => (overflow ? "visible" : "hidden")};
|
|
9
5
|
box-sizing: border-box;
|
|
10
6
|
`;
|
|
@@ -6,6 +6,7 @@ export const CoverOuterContainer = styled.div`
|
|
|
6
6
|
flex-direction: column;
|
|
7
7
|
min-height: ${({ minHeight }) => minHeight};
|
|
8
8
|
padding: ${({ padding }) => padding};
|
|
9
|
+
min-width: ${({ fillCenter }) => (fillCenter ? "100%" : "auto")};
|
|
9
10
|
|
|
10
11
|
> * {
|
|
11
12
|
margin-top: ${({ childGap }) => childGap};
|
|
@@ -18,7 +18,7 @@ import { safeChildren } from "../../../util/general";
|
|
|
18
18
|
const Sidebar = ({
|
|
19
19
|
childGap = "1rem",
|
|
20
20
|
width,
|
|
21
|
-
|
|
21
|
+
sidebarOnRight = false,
|
|
22
22
|
contentMinWidth = "50%",
|
|
23
23
|
fullHeight = false,
|
|
24
24
|
minHeight,
|
|
@@ -29,7 +29,7 @@ const Sidebar = ({
|
|
|
29
29
|
<SidebarInnerWrapper
|
|
30
30
|
childGap={childGap}
|
|
31
31
|
width={width}
|
|
32
|
-
|
|
32
|
+
sidebarOnRight={sidebarOnRight}
|
|
33
33
|
contentMinWidth={contentMinWidth}
|
|
34
34
|
fullHeight={fullHeight}
|
|
35
35
|
minHeight={minHeight}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from "react";
|
|
2
1
|
import styled from "styled-components";
|
|
3
2
|
|
|
4
3
|
export const SidebarWrapper = styled.div`
|
|
@@ -8,12 +7,7 @@ export const SidebarWrapper = styled.div`
|
|
|
8
7
|
${({ fullHeight }) => (fullHeight ? `height: 100%;` : ``)}
|
|
9
8
|
`;
|
|
10
9
|
|
|
11
|
-
export const SidebarInnerWrapper = styled
|
|
12
|
-
// eslint-disable-next-line no-unused-vars
|
|
13
|
-
({ onRight, childGap, contentMinWidth, minHeight, fullHeight, ...props }) => (
|
|
14
|
-
<div {...props} />
|
|
15
|
-
)
|
|
16
|
-
)`
|
|
10
|
+
export const SidebarInnerWrapper = styled.div`
|
|
17
11
|
display: flex;
|
|
18
12
|
flex-wrap: wrap;
|
|
19
13
|
box-sizing: border-box;
|
|
@@ -26,8 +20,8 @@ export const SidebarInnerWrapper = styled(
|
|
|
26
20
|
${({ minHeight }) => (minHeight ? `margin-top: 0; margin-bottom: 0;` : ``)}
|
|
27
21
|
}
|
|
28
22
|
|
|
29
|
-
${({
|
|
30
|
-
|
|
23
|
+
${({ sidebarOnRight, contentMinWidth, childGap }) =>
|
|
24
|
+
sidebarOnRight
|
|
31
25
|
? `> :first-child {
|
|
32
26
|
flex-basis: 0;
|
|
33
27
|
flex-grow: 999;
|