@thecb/components 10.4.0-beta.7 → 10.4.0-beta.9
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/index.cjs.js +40 -33
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +40 -33
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/molecules/link-card/LinkCard.js +14 -3
- package/src/components/molecules/link-card/LinkCard.stories.js +40 -36
- package/src/components/molecules/link-card/LinkCard.styled.js +41 -32
- package/src/components/molecules/link-card/LinkCard.theme.js +16 -8
package/package.json
CHANGED
|
@@ -7,7 +7,6 @@ import * as Styled from "./LinkCard.styled";
|
|
|
7
7
|
import { noop } from "../../../util/general";
|
|
8
8
|
|
|
9
9
|
const LinkCard = ({
|
|
10
|
-
variant = "primary", // "primary" | "disabled"
|
|
11
10
|
title = "Test Workflow",
|
|
12
11
|
subtitle = "Link your benefit plan",
|
|
13
12
|
showLeft,
|
|
@@ -41,6 +40,9 @@ const LinkCard = ({
|
|
|
41
40
|
activeStyles={extraActiveStyles}
|
|
42
41
|
onClick={disabled ? noop : onClick}
|
|
43
42
|
aria-disabled={disabled}
|
|
43
|
+
isDisabled={disabled}
|
|
44
|
+
role="group"
|
|
45
|
+
aria-label={`${title}, ${subtitle}`}
|
|
44
46
|
>
|
|
45
47
|
<Stack
|
|
46
48
|
childGap={0}
|
|
@@ -50,12 +52,21 @@ const LinkCard = ({
|
|
|
50
52
|
fullHeight
|
|
51
53
|
>
|
|
52
54
|
<Box padding={0} width="100%">
|
|
53
|
-
<Styled.Title
|
|
55
|
+
<Styled.Title
|
|
56
|
+
variant={titleVariant}
|
|
57
|
+
theme={themeValues}
|
|
58
|
+
margin={0}
|
|
59
|
+
isDisabled={disabled}
|
|
60
|
+
>
|
|
54
61
|
{title}
|
|
55
62
|
</Styled.Title>
|
|
56
63
|
</Box>
|
|
57
64
|
<Box padding={"0 0 40px"} width="100%">
|
|
58
|
-
<Styled.Subtitle
|
|
65
|
+
<Styled.Subtitle
|
|
66
|
+
variant="pS"
|
|
67
|
+
theme={themeValues}
|
|
68
|
+
isDisabled={disabled}
|
|
69
|
+
>
|
|
59
70
|
{subtitle}
|
|
60
71
|
</Styled.Subtitle>
|
|
61
72
|
</Box>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import page from "../../../../.storybook/page";
|
|
2
|
-
import { boolean,
|
|
2
|
+
import { boolean, text } from "@storybook/addon-knobs";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import LinkCard from "./LinkCard";
|
|
5
5
|
import Box from "../../atoms/layouts/Box";
|
|
@@ -11,61 +11,65 @@ import AutopayIcon from "../../atoms/icons/AutopayIcon";
|
|
|
11
11
|
import {
|
|
12
12
|
CORNFLOWER_BLUE,
|
|
13
13
|
ROYAL_BLUE_VIVID,
|
|
14
|
+
LINK_WATER,
|
|
15
|
+
WHITE,
|
|
14
16
|
MANATEE_GREY,
|
|
17
|
+
GHOST_GREY,
|
|
15
18
|
TRANSPARENT
|
|
16
19
|
} from "../../../constants/colors";
|
|
17
20
|
|
|
21
|
+
const theme = {
|
|
22
|
+
disabledBackgroundColor: TRANSPARENT,
|
|
23
|
+
disabledBorderColor: GHOST_GREY,
|
|
24
|
+
disabledColor: MANATEE_GREY,
|
|
25
|
+
activeBackgroundColor: CORNFLOWER_BLUE,
|
|
26
|
+
backgroundColor: WHITE,
|
|
27
|
+
borderColor: LINK_WATER,
|
|
28
|
+
color: ROYAL_BLUE_VIVID
|
|
29
|
+
};
|
|
30
|
+
|
|
18
31
|
const groupId = "props";
|
|
19
|
-
const variant = "primary";
|
|
20
|
-
const variants = { primary: "primary", disabled: "disabled" };
|
|
21
32
|
const disabled = false;
|
|
22
33
|
const showLeft = true;
|
|
23
34
|
|
|
24
|
-
const renderLeftContent = ({ disabled }) => {
|
|
25
|
-
return (
|
|
26
|
-
<Box background="transparent" borderWidthOverride="0 0 0 0" padding="0">
|
|
27
|
-
<Badge
|
|
28
|
-
label="Autopay Available"
|
|
29
|
-
Icon={AutopayIcon}
|
|
30
|
-
variant={disabled ? "disabled" : "success"}
|
|
31
|
-
/>
|
|
32
|
-
</Box>
|
|
33
|
-
);
|
|
34
|
-
};
|
|
35
|
-
const renderRightContent = ({ disabled }) => {
|
|
36
|
-
return (
|
|
37
|
-
<Stack direction="row" childGap="6px">
|
|
38
|
-
<Text
|
|
39
|
-
variant="pS"
|
|
40
|
-
disabled={disabled || variant === "disabled"}
|
|
41
|
-
className="show-on-hover"
|
|
42
|
-
color={disabled ? MANATEE_GREY : ROYAL_BLUE_VIVID}
|
|
43
|
-
extraStyles={`text-align: right; color: transparent; ${
|
|
44
|
-
!showLeft ? "margin-left: auto;" : ""
|
|
45
|
-
}`}
|
|
46
|
-
>
|
|
47
|
-
Find
|
|
48
|
-
</Text>
|
|
49
|
-
<PlusCircleIcon color={disabled ? MANATEE_GREY : ROYAL_BLUE_VIVID} />
|
|
50
|
-
</Stack>
|
|
51
|
-
);
|
|
52
|
-
};
|
|
53
35
|
export const linkCard = () => {
|
|
54
36
|
return (
|
|
55
37
|
<LinkCard
|
|
56
38
|
disabled={boolean("disabled", disabled, groupId)}
|
|
57
|
-
variant={select("variant", variants, variant, groupId)}
|
|
58
39
|
title={text("title", "Link Card Title", groupId)}
|
|
59
40
|
subtitle={text("subtitle", "Link card description", groupId)}
|
|
60
41
|
path={text("path", "/service/animal-care-and-control", groupId)}
|
|
42
|
+
themeValues={theme}
|
|
61
43
|
showLeft={boolean("showLeft", true, groupId)}
|
|
62
44
|
onClick={() => window.alert("Click event!")}
|
|
63
|
-
leftContent={
|
|
45
|
+
leftContent={
|
|
46
|
+
<Box background="transparent" borderWidthOverride="0 0 0 0" padding="0">
|
|
47
|
+
<Badge
|
|
48
|
+
label="Autopay Available"
|
|
49
|
+
Icon={AutopayIcon}
|
|
50
|
+
variant={disabled ? "disabled" : "success"}
|
|
51
|
+
/>
|
|
52
|
+
</Box>
|
|
53
|
+
}
|
|
64
54
|
showRight={boolean("showRight", true, groupId)}
|
|
65
|
-
rightContent={
|
|
55
|
+
rightContent={
|
|
56
|
+
<Stack direction="row" childGap="6px">
|
|
57
|
+
<Text
|
|
58
|
+
variant="pS"
|
|
59
|
+
className="show-on-hover"
|
|
60
|
+
color={ROYAL_BLUE_VIVID}
|
|
61
|
+
extraStyles={`text-align: right; color: transparent; ${
|
|
62
|
+
!showLeft ? "margin-left: auto;" : ""
|
|
63
|
+
}`}
|
|
64
|
+
>
|
|
65
|
+
Find
|
|
66
|
+
</Text>
|
|
67
|
+
<PlusCircleIcon color={ROYAL_BLUE_VIVID} />
|
|
68
|
+
</Stack>
|
|
69
|
+
}
|
|
66
70
|
extraHoverStyles={`
|
|
67
71
|
.show-on-hover {
|
|
68
|
-
color: ${
|
|
72
|
+
color: ${ROYAL_BLUE_VIVID};
|
|
69
73
|
}
|
|
70
74
|
`}
|
|
71
75
|
extraActiveStyles={`
|
|
@@ -4,7 +4,6 @@ import Paragraph from "../../atoms/paragraph";
|
|
|
4
4
|
import Stack from "../../atoms/layouts/Stack";
|
|
5
5
|
import { Box } from "../../atoms/layouts";
|
|
6
6
|
import { FONT_WEIGHT_SEMIBOLD } from "../../../constants/style_constants";
|
|
7
|
-
import { TRANSPARENT, GHOST_GREY } from "../../../constants/colors";
|
|
8
7
|
|
|
9
8
|
export const Container = styled(Box)`
|
|
10
9
|
display: flex;
|
|
@@ -15,39 +14,47 @@ export const Container = styled(Box)`
|
|
|
15
14
|
flex-shrink: 0;
|
|
16
15
|
align-self: stretch;
|
|
17
16
|
border-radius: 8px;
|
|
18
|
-
${({ theme }) => `
|
|
19
|
-
background-color: ${
|
|
20
|
-
|
|
17
|
+
${({ isDisabled, theme }) => `
|
|
18
|
+
background-color: ${
|
|
19
|
+
isDisabled ? theme.disabledBackgroundColor : theme.backgroundColor
|
|
20
|
+
};
|
|
21
|
+
border: 1px solid ${
|
|
22
|
+
isDisabled ? theme.disabledBorderColor : theme.borderColor
|
|
23
|
+
};
|
|
21
24
|
`}
|
|
22
25
|
transition: all .2s ease-in-out;
|
|
23
26
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
27
|
+
${({ isDisabled, theme }) =>
|
|
28
|
+
isDisabled
|
|
29
|
+
? `
|
|
30
|
+
&:hover,
|
|
31
|
+
&:active {
|
|
32
|
+
cursor: default;
|
|
33
|
+
box-shadow: none;
|
|
34
|
+
border: 1px solid ${theme.disabledBorderColor};
|
|
35
|
+
}
|
|
36
|
+
`
|
|
37
|
+
: `
|
|
38
|
+
&:hover,
|
|
39
|
+
&:active {
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
box-shadow: 0px 0px 0px 0px rgba(41, 42, 51, 0.1),
|
|
42
|
+
0px 5px 11px 0px rgba(41, 42, 51, 0.1),
|
|
43
|
+
0px 4px 19px 0px rgba(41, 42, 51, 0.09),
|
|
44
|
+
0px 27px 26px 0px rgba(41, 42, 51, 0.05),
|
|
45
|
+
0px 56px 31px 0px rgba(41, 42, 51, 0.01),
|
|
46
|
+
0px 80px 33px 0px rgba(41, 42, 51, 0);
|
|
47
|
+
}
|
|
40
48
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
49
|
+
&:hover:not(:active) {
|
|
50
|
+
border: 1px solid ${theme.borderColor};
|
|
51
|
+
}
|
|
44
52
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
53
|
+
&:active {
|
|
54
|
+
background-color: ${theme.activeBackgroundColor};
|
|
55
|
+
border: 1px solid ${theme.borderColor};
|
|
56
|
+
}
|
|
57
|
+
`}
|
|
51
58
|
`;
|
|
52
59
|
|
|
53
60
|
export const Title = styled(Heading)`
|
|
@@ -61,7 +68,8 @@ export const Title = styled(Heading)`
|
|
|
61
68
|
line-height: 150%;
|
|
62
69
|
background-color: transparent;
|
|
63
70
|
font-weight: ${FONT_WEIGHT_SEMIBOLD};
|
|
64
|
-
${({ theme }) =>
|
|
71
|
+
${({ isDisabled, theme }) =>
|
|
72
|
+
`color: ${isDisabled ? theme.disabledColor : theme.color};`};
|
|
65
73
|
`;
|
|
66
74
|
|
|
67
75
|
export const Subtitle = styled(Paragraph)`
|
|
@@ -72,10 +80,11 @@ export const Subtitle = styled(Paragraph)`
|
|
|
72
80
|
-webkit-line-clamp: 2;
|
|
73
81
|
align-self: stretch;
|
|
74
82
|
font-size: 14px;
|
|
75
|
-
line-height: 150
|
|
83
|
+
line-height: 150%;
|
|
76
84
|
letter-spacing: 0.14px;
|
|
77
85
|
font-weight: ${FONT_WEIGHT_SEMIBOLD};
|
|
78
|
-
${({ theme }) =>
|
|
86
|
+
${({ isDisabled, theme }) =>
|
|
87
|
+
`color: ${isDisabled ? theme.disabledColor : theme.color};`};
|
|
79
88
|
`;
|
|
80
89
|
|
|
81
90
|
export const Footer = styled(Stack)`
|
|
@@ -8,24 +8,32 @@ import {
|
|
|
8
8
|
TRANSPARENT
|
|
9
9
|
} from "../../../constants/colors";
|
|
10
10
|
|
|
11
|
+
const disabledBackgroundColor = {
|
|
12
|
+
primary: TRANSPARENT
|
|
13
|
+
};
|
|
14
|
+
const disabledBorderColor = {
|
|
15
|
+
primary: GHOST_GREY
|
|
16
|
+
};
|
|
17
|
+
const disabledColor = {
|
|
18
|
+
primary: MANATEE_GREY
|
|
19
|
+
};
|
|
11
20
|
const activeBackgroundColor = {
|
|
12
|
-
primary:
|
|
13
|
-
disabled: `${TRANSPARENT}`
|
|
21
|
+
primary: CORNFLOWER_BLUE
|
|
14
22
|
};
|
|
15
23
|
const backgroundColor = {
|
|
16
|
-
primary:
|
|
17
|
-
disabled: `${TRANSPARENT}`
|
|
24
|
+
primary: LINK_WATER
|
|
18
25
|
};
|
|
19
26
|
const borderColor = {
|
|
20
|
-
primary:
|
|
21
|
-
disabled: `${GHOST_GREY}`
|
|
27
|
+
primary: MOON_RAKER
|
|
22
28
|
};
|
|
23
29
|
const color = {
|
|
24
|
-
primary:
|
|
25
|
-
disabled: `${MANATEE_GREY}`
|
|
30
|
+
primary: ROYAL_BLUE_VIVID
|
|
26
31
|
};
|
|
27
32
|
|
|
28
33
|
export const fallbackValues = {
|
|
34
|
+
disabledBackgroundColor,
|
|
35
|
+
disabledBorderColor,
|
|
36
|
+
disabledColor,
|
|
29
37
|
activeBackgroundColor,
|
|
30
38
|
backgroundColor,
|
|
31
39
|
borderColor,
|