@automattic/vip-design-system 0.9.6 → 0.10.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.
Files changed (85) hide show
  1. package/README.md +4 -4
  2. package/build/system/Avatar/Avatar.js +9 -3
  3. package/build/system/Avatar/Avatar.stories.js +8 -23
  4. package/build/system/Badge/Badge.js +9 -3
  5. package/build/system/Badge/Badge.stories.js +8 -25
  6. package/build/system/BlankState/BlankState.js +8 -2
  7. package/build/system/BlankState/BlankState.stories.js +11 -27
  8. package/build/system/Box/Box.js +12 -2
  9. package/build/system/Box/Box.stories.js +8 -25
  10. package/build/system/Button/Button.js +6 -2
  11. package/build/system/Button/Button.stories.js +23 -36
  12. package/build/system/Card/Card.js +8 -3
  13. package/build/system/Card/Card.stories.js +8 -25
  14. package/build/system/Code/Code.js +8 -3
  15. package/build/system/Code/Code.stories.js +8 -25
  16. package/build/system/ConfirmationDialog/ConfirmationDialog.js +8 -2
  17. package/build/system/ConfirmationDialog/ConfirmationDialog.stories.js +22 -45
  18. package/build/system/Dialog/Dialog.js +1 -0
  19. package/build/system/Dialog/Dialog.stories.js +31 -71
  20. package/build/system/Flex/Flex.stories.js +8 -25
  21. package/build/system/Form/Input.stories.js +8 -23
  22. package/build/system/Form/Select.js +1 -0
  23. package/build/system/Form/Select.stories.js +78 -108
  24. package/build/system/Form/Toggle.js +8 -2
  25. package/build/system/Grid/Grid.stories.js +8 -25
  26. package/build/system/Heading/Heading.js +9 -3
  27. package/build/system/Heading/Heading.stories.js +20 -43
  28. package/build/system/Link/Link.stories.js +10 -26
  29. package/build/system/Notice/Notice.js +9 -3
  30. package/build/system/Notice/Notice.stories.js +81 -47
  31. package/build/system/Notification/Notification.js +1 -0
  32. package/build/system/Notification/Notification.stories.js +8 -23
  33. package/build/system/OptionRow/OptionRow.js +13 -3
  34. package/build/system/OptionRow/OptionRow.stories.js +20 -36
  35. package/build/system/OptionRow/OptionRow.test.js +46 -0
  36. package/build/system/Progress/Progress.js +9 -3
  37. package/build/system/Progress/Progress.stories.js +8 -23
  38. package/build/system/ResourceList/ResourceList.js +1 -0
  39. package/build/system/Spinner/Spinner.js +9 -3
  40. package/build/system/Spinner/Spinner.stories.js +8 -23
  41. package/build/system/Table/Table.stories.js +42 -64
  42. package/build/system/Tabs/TabItem.js +1 -0
  43. package/build/system/Tabs/Tabs.js +10 -4
  44. package/build/system/Tabs/Tabs.stories.js +10 -32
  45. package/build/system/Text/Text.js +9 -3
  46. package/build/system/Text/Text.stories.js +8 -25
  47. package/build/system/Time/index.js +9 -3
  48. package/build/system/Timeline/Timeline.js +10 -3
  49. package/build/system/Timeline/Timeline.stories.js +21 -44
  50. package/build/system/Tooltip/Tooltip.stories.js +19 -41
  51. package/build/system/UsageChart/UsageChart.stories.js +20 -0
  52. package/build/system/Wizard/Wizard.js +10 -2
  53. package/build/system/Wizard/Wizard.stories.js +37 -65
  54. package/build/system/Wizard/WizardStep.js +6 -2
  55. package/build/system/Wizard/WizardStepHorizontal.js +6 -2
  56. package/package.json +2 -1
  57. package/src/system/Avatar/Avatar.js +4 -0
  58. package/src/system/Badge/Badge.js +4 -1
  59. package/src/system/BlankState/BlankState.js +4 -1
  60. package/src/system/Box/Box.js +6 -1
  61. package/src/system/Button/Button.js +3 -0
  62. package/src/system/Card/Card.js +4 -1
  63. package/src/system/Code/Code.js +4 -1
  64. package/src/system/ConfirmationDialog/ConfirmationDialog.js +4 -2
  65. package/src/system/Dialog/Dialog.js +1 -1
  66. package/src/system/Form/Select.js +1 -1
  67. package/src/system/Form/Toggle.js +4 -2
  68. package/src/system/Heading/Heading.js +4 -1
  69. package/src/system/Notice/Notice.js +4 -1
  70. package/src/system/Notification/Notification.js +1 -0
  71. package/src/system/OptionRow/OptionRow.js +7 -0
  72. package/src/system/OptionRow/OptionRow.stories.js +1 -0
  73. package/src/system/OptionRow/OptionRow.test.js +27 -0
  74. package/src/system/Progress/Progress.js +4 -1
  75. package/src/system/ResourceList/ResourceList.js +1 -1
  76. package/src/system/Spinner/Spinner.js +4 -1
  77. package/src/system/Tabs/TabItem.js +1 -0
  78. package/src/system/Tabs/Tabs.js +5 -2
  79. package/src/system/Text/Text.js +4 -1
  80. package/src/system/Time/index.js +4 -1
  81. package/src/system/Timeline/Timeline.js +4 -2
  82. package/src/system/Wizard/Wizard.js +6 -2
  83. package/src/system/Wizard/Wizard.stories.js +1 -1
  84. package/src/system/Wizard/WizardStep.js +5 -2
  85. package/src/system/Wizard/WizardStepHorizontal.js +4 -1
@@ -3,6 +3,7 @@
3
3
  /**
4
4
  * External dependencies
5
5
  */
6
+ import classNames from 'classnames';
6
7
  import PropTypes from 'prop-types';
7
8
 
8
9
  /**
@@ -10,8 +11,9 @@ import PropTypes from 'prop-types';
10
11
  */
11
12
  import { Flex } from '..';
12
13
 
13
- const Tabs = ( { sx, ...props } ) => (
14
+ const Tabs = ( { className = null, sx, ...props } ) => (
14
15
  <Flex
16
+ className={ classNames( 'vip-tabs-component', className ) }
15
17
  sx={{
16
18
  borderBottom: '1px solid',
17
19
  borderColor: 'border',
@@ -25,8 +27,9 @@ const Tabs = ( { sx, ...props } ) => (
25
27
  );
26
28
 
27
29
  Tabs.propTypes = {
28
- variant: PropTypes.string,
30
+ className: PropTypes.any,
29
31
  sx: PropTypes.object,
32
+ variant: PropTypes.string,
30
33
  };
31
34
 
32
35
  export { Tabs };
@@ -5,8 +5,9 @@
5
5
  */
6
6
  import { Text as ThemeText } from 'theme-ui';
7
7
  import PropTypes from 'prop-types';
8
+ import classNames from 'classnames';
8
9
 
9
- const Text = ( { sx, ...props } ) => (
10
+ const Text = ( { sx, className = null, ...props } ) => (
10
11
  <ThemeText
11
12
  as="p"
12
13
  sx={{
@@ -14,12 +15,14 @@ const Text = ( { sx, ...props } ) => (
14
15
  marginBottom: 2,
15
16
  ...sx,
16
17
  }}
18
+ className={ classNames( 'vip-text-component', className ) }
17
19
  {...props}
18
20
  />
19
21
  );
20
22
 
21
23
  Text.propTypes = {
22
24
  sx: PropTypes.object,
25
+ className: PropTypes.any,
23
26
  };
24
27
 
25
28
  export { Text };
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Text } from 'theme-ui';
7
7
  import PropTypes from 'prop-types';
8
+ import classNames from 'classnames';
8
9
 
9
10
  const formatter = new Intl.RelativeTimeFormat( undefined, {
10
11
  numeric: 'auto',
@@ -31,7 +32,7 @@ function formatTimeAgo( date ) {
31
32
  }
32
33
  }
33
34
 
34
- const Time = ( { time, relativeTime = false, timeOnly = false, ...props } ) => {
35
+ const Time = ( { time, relativeTime = false, timeOnly = false, className = null, ...props } ) => {
35
36
  let formattedTime;
36
37
  if ( relativeTime ) {
37
38
  formattedTime = formatTimeAgo( time );
@@ -46,6 +47,7 @@ const Time = ( { time, relativeTime = false, timeOnly = false, ...props } ) => {
46
47
  title={time.toLocaleString( 'sv', { timeZoneName: 'short' } )}
47
48
  datetime={time}
48
49
  as="time"
50
+ className={ classNames( 'vip-time-component', className ) }
49
51
  {...props}
50
52
  >
51
53
  {formattedTime}
@@ -57,6 +59,7 @@ Time.propTypes = {
57
59
  time: PropTypes.string,
58
60
  timeOnly: PropTypes.bool,
59
61
  relativeTime: PropTypes.bool,
62
+ className: PropTypes.any,
60
63
  };
61
64
 
62
65
  export { Time };
@@ -6,6 +6,7 @@
6
6
  import { Flex } from 'theme-ui';
7
7
  import { MdWatchLater } from 'react-icons/md';
8
8
  import PropTypes from 'prop-types';
9
+ import classNames from 'classnames';
9
10
 
10
11
  const VerticalLine = () => {
11
12
  return (
@@ -20,8 +21,8 @@ const VerticalLine = () => {
20
21
  );
21
22
  };
22
23
 
23
- const Timeline = ( { time, first = false, last = false, ...props } ) => (
24
- <Flex { ...props }>
24
+ const Timeline = ( { time, first = false, last = false, className = null, ...props } ) => (
25
+ <Flex className={ classNames( 'vip-timeline-component', className ) } { ...props }>
25
26
  <Flex sx={ { flexDirection: 'column', justifyContent: 'space-evenly', alignItems: 'center' } }>
26
27
  { ! first && (
27
28
  <VerticalLine />
@@ -41,6 +42,7 @@ Timeline.propTypes = {
41
42
  first: PropTypes.bool,
42
43
  time: PropTypes.node,
43
44
  last: PropTypes.bool,
45
+ className: PropTypes.any,
44
46
  };
45
47
 
46
48
  export { Timeline };
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import React from 'react';
7
7
  import PropTypes from 'prop-types';
8
+ import classNames from 'classnames';
8
9
  import { MdArrowForward } from 'react-icons/md';
9
10
 
10
11
  /**
@@ -12,9 +13,9 @@ import { MdArrowForward } from 'react-icons/md';
12
13
  */
13
14
  import { Box, WizardStep, Flex, WizardStepHorizontal } from '..';
14
15
 
15
- const Wizard = ( { steps, activeStep, variant, completed = [], ...props } ) => {
16
+ const Wizard = ( { steps, activeStep, variant, completed = [], className = null, ...props } ) => {
16
17
  return (
17
- <Box>
18
+ <Box className={ classNames( 'vip-wizard-component', className ) }>
18
19
  {variant === 'horizontal' ? (
19
20
  <Box>
20
21
  <Flex
@@ -26,6 +27,7 @@ const Wizard = ( { steps, activeStep, variant, completed = [], ...props } ) => {
26
27
  {steps.map( ( { title, subTitle }, index ) => (
27
28
  <React.Fragment key={index}>
28
29
  <WizardStepHorizontal
30
+ order={index + 1}
29
31
  active={index === activeStep}
30
32
  title={title}
31
33
  subTitle={subTitle}
@@ -44,6 +46,7 @@ const Wizard = ( { steps, activeStep, variant, completed = [], ...props } ) => {
44
46
  subTitle={subTitle}
45
47
  complete={completed.includes( index )}
46
48
  key={index}
49
+ order={index + 1}
47
50
  >
48
51
  {children}
49
52
  </WizardStep>
@@ -58,6 +61,7 @@ Wizard.propTypes = {
58
61
  activeStep: PropTypes.number,
59
62
  variant: PropTypes.string,
60
63
  completed: PropTypes.array,
64
+ className: PropTypes.any,
61
65
  };
62
66
 
63
67
  export { Wizard };
@@ -51,7 +51,7 @@ export const Default = () => {
51
51
  </Box>
52
52
  </Flex>
53
53
  <Box mt={4}>
54
- <Wizard activeStep={0} steps={steps} />
54
+ <Wizard activeStep={0} steps={steps} className="vip-wizard-xyz" />
55
55
  </Box>
56
56
  </React.Fragment>
57
57
  );
@@ -11,7 +11,7 @@ import PropTypes from 'prop-types';
11
11
  */
12
12
  import { Card, Heading, Text } from '..';
13
13
 
14
- const WizardStep = ( { title, subTitle, complete = false, children, active } ) => {
14
+ const WizardStep = ( { title, subTitle, complete = false, children, active, order } ) => {
15
15
  let borderLeftColor = 'border';
16
16
 
17
17
  if ( complete ) {
@@ -44,6 +44,8 @@ const WizardStep = ( { title, subTitle, complete = false, children, active } ) =
44
44
  borderColor: active ? 'primary' : 'border',
45
45
  borderLeftColor: borderLeftColor,
46
46
  }}
47
+ data-step={ order }
48
+ data-active={ active || undefined }
47
49
  >
48
50
  <Heading
49
51
  variant="h4"
@@ -69,7 +71,8 @@ WizardStep.propTypes = {
69
71
  subTitle: PropTypes.node,
70
72
  complete: PropTypes.bool,
71
73
  active: PropTypes.bool,
72
- children: PropTypes.node.isRequired,
74
+ children: PropTypes.node,
75
+ order: PropTypes.number.isRequired,
73
76
  };
74
77
 
75
78
  export { WizardStep };
@@ -11,7 +11,7 @@ import PropTypes from 'prop-types';
11
11
  */
12
12
  import { Heading } from '..';
13
13
 
14
- const WizardStepHorizontal = ( { title, active } ) => {
14
+ const WizardStepHorizontal = ( { title, active, order } ) => {
15
15
  return (
16
16
  <Heading
17
17
  variant="h4"
@@ -21,6 +21,8 @@ const WizardStepHorizontal = ( { title, active } ) => {
21
21
  alignItems: 'center',
22
22
  color: active ? 'heading' : 'muted',
23
23
  }}
24
+ data-step={ order }
25
+ data-active={ active || undefined }
24
26
  >
25
27
  <MdCheckCircle sx={{ mr: 2 }} />
26
28
  {title}
@@ -32,6 +34,7 @@ WizardStepHorizontal.propTypes = {
32
34
  title: PropTypes.node,
33
35
  subTitle: PropTypes.node,
34
36
  active: PropTypes.bool,
37
+ order: PropTypes.number.isRequired,
35
38
  };
36
39
 
37
40
  export { WizardStepHorizontal };