@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thecb/components",
3
- "version": "10.4.0-beta.7",
3
+ "version": "10.4.0-beta.9",
4
4
  "description": "Common lib for CityBase react components",
5
5
  "main": "dist/index.cjs.js",
6
6
  "typings": "dist/index.d.ts",
@@ -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 variant={titleVariant} theme={themeValues} margin={0}>
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 variant="pS" theme={themeValues}>
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, select, text } from "@storybook/addon-knobs";
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={renderLeftContent({ disabled })}
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={renderRightContent({ disabled })}
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: ${disabled ? TRANSPARENT : ROYAL_BLUE_VIVID};
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: ${theme.backgroundColor};
20
- border: 1px solid ${theme.borderColor};
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
- &:hover,
25
- &:active {
26
- cursor: ${({ disabled }) => (disabled ? `default` : `pointer`)};
27
- box-shadow: ${({ disabled }) => `
28
- ${
29
- disabled
30
- ? `none`
31
- : `0px 0px 0px 0px rgba(41, 42, 51, 0.1),
32
- 0px 5px 11px 0px rgba(41, 42, 51, 0.1),
33
- 0px 4px 19px 0px rgba(41, 42, 51, 0.09),
34
- 0px 27px 26px 0px rgba(41, 42, 51, 0.05),
35
- 0px 56px 31px 0px rgba(41, 42, 51, 0.01),
36
- 0px 80px 33px 0px rgba(41, 42, 51, 0);`
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
- &:hover:not(:active) {
42
- ${({ theme }) => `border: 1px solid ${theme.borderColor};`}
43
- }
49
+ &:hover:not(:active) {
50
+ border: 1px solid ${theme.borderColor};
51
+ }
44
52
 
45
- &:active {
46
- ${({ theme }) => `
47
- background-color: ${theme.activeBackgroundColor};
48
- border: 1px solid ${theme.borderColor};
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 }) => `color: ${theme.color};`};
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 }) => `color: ${theme.color};`};
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: `${CORNFLOWER_BLUE}`,
13
- disabled: `${TRANSPARENT}`
21
+ primary: CORNFLOWER_BLUE
14
22
  };
15
23
  const backgroundColor = {
16
- primary: `${LINK_WATER}`,
17
- disabled: `${TRANSPARENT}`
24
+ primary: LINK_WATER
18
25
  };
19
26
  const borderColor = {
20
- primary: `${MOON_RAKER}`,
21
- disabled: `${GHOST_GREY}`
27
+ primary: MOON_RAKER
22
28
  };
23
29
  const color = {
24
- primary: `${ROYAL_BLUE_VIVID}`,
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,