@automattic/vip-design-system 0.9.5 → 0.10.1

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 (89) hide show
  1. package/.github/workflows/nodejs.yaml +1 -1
  2. package/.vscode/settings.json +3 -0
  3. package/README.md +4 -4
  4. package/build/system/Avatar/Avatar.js +9 -3
  5. package/build/system/Badge/Badge.js +9 -3
  6. package/build/system/BlankState/BlankState.js +8 -2
  7. package/build/system/Box/Box.js +12 -2
  8. package/build/system/Button/Button.js +6 -2
  9. package/build/system/Card/Card.js +8 -3
  10. package/build/system/Code/Code.js +8 -3
  11. package/build/system/ConfirmationDialog/ConfirmationDialog.js +8 -2
  12. package/build/system/Dialog/Dialog.js +1 -0
  13. package/build/system/Form/Select.js +1 -0
  14. package/build/system/Form/Toggle.js +8 -2
  15. package/build/system/Heading/Heading.js +9 -3
  16. package/build/system/Notice/Notice.js +9 -3
  17. package/build/system/Notification/Notification.js +1 -0
  18. package/build/system/OptionRow/OptionRow.js +16 -5
  19. package/build/system/OptionRow/OptionRow.test.js +84 -0
  20. package/build/system/Progress/Progress.js +9 -3
  21. package/build/system/ResourceList/ResourceList.js +1 -0
  22. package/build/system/Spinner/Spinner.js +9 -3
  23. package/build/system/Tabs/TabItem.js +1 -0
  24. package/build/system/Tabs/Tabs.js +10 -4
  25. package/build/system/Text/Text.js +9 -3
  26. package/build/system/Time/index.js +9 -3
  27. package/build/system/Timeline/Timeline.js +11 -3
  28. package/build/system/Wizard/Wizard.js +10 -2
  29. package/build/system/Wizard/WizardStep.js +6 -2
  30. package/build/system/Wizard/WizardStepHorizontal.js +6 -2
  31. package/package.json +2 -1
  32. package/src/system/Avatar/Avatar.js +4 -0
  33. package/src/system/Badge/Badge.js +4 -1
  34. package/src/system/BlankState/BlankState.js +4 -1
  35. package/src/system/Box/Box.js +6 -1
  36. package/src/system/Button/Button.js +3 -0
  37. package/src/system/Card/Card.js +4 -1
  38. package/src/system/Code/Code.js +4 -1
  39. package/src/system/ConfirmationDialog/ConfirmationDialog.js +4 -2
  40. package/src/system/Dialog/Dialog.js +1 -1
  41. package/src/system/Form/Select.js +1 -1
  42. package/src/system/Form/Toggle.js +4 -2
  43. package/src/system/Heading/Heading.js +4 -1
  44. package/src/system/Notice/Notice.js +4 -1
  45. package/src/system/Notification/Notification.js +1 -0
  46. package/src/system/OptionRow/OptionRow.js +11 -2
  47. package/src/system/OptionRow/OptionRow.stories.js +9 -0
  48. package/src/system/OptionRow/OptionRow.test.js +49 -0
  49. package/src/system/Progress/Progress.js +4 -1
  50. package/src/system/ResourceList/ResourceList.js +1 -1
  51. package/src/system/Spinner/Spinner.js +4 -1
  52. package/src/system/Tabs/TabItem.js +1 -0
  53. package/src/system/Tabs/Tabs.js +5 -2
  54. package/src/system/Text/Text.js +4 -1
  55. package/src/system/Time/index.js +4 -1
  56. package/src/system/Timeline/Timeline.js +5 -3
  57. package/src/system/Wizard/Wizard.js +6 -2
  58. package/src/system/Wizard/Wizard.stories.js +1 -1
  59. package/src/system/Wizard/WizardStep.js +5 -2
  60. package/src/system/Wizard/WizardStepHorizontal.js +4 -1
  61. package/build/system/Avatar/Avatar.stories.js +0 -31
  62. package/build/system/Badge/Badge.stories.js +0 -33
  63. package/build/system/BlankState/BlankState.stories.js +0 -41
  64. package/build/system/Box/Box.stories.js +0 -33
  65. package/build/system/Button/Button.stories.js +0 -44
  66. package/build/system/Card/Card.stories.js +0 -33
  67. package/build/system/Code/Code.stories.js +0 -33
  68. package/build/system/ConfirmationDialog/ConfirmationDialog.stories.js +0 -55
  69. package/build/system/Dialog/Dialog.stories.js +0 -83
  70. package/build/system/Flex/Flex.stories.js +0 -33
  71. package/build/system/Form/Input.stories.js +0 -33
  72. package/build/system/Form/MultiSelect.js +0 -38
  73. package/build/system/Form/Select.stories.js +0 -150
  74. package/build/system/Grid/Grid.stories.js +0 -33
  75. package/build/system/Heading/Heading.stories.js +0 -51
  76. package/build/system/Link/Link.stories.js +0 -35
  77. package/build/system/Notice/Notice.stories.js +0 -56
  78. package/build/system/Notification/Notification.stories.js +0 -34
  79. package/build/system/OptionRow/OptionRow.stories.js +0 -50
  80. package/build/system/Progress/Progress.stories.js +0 -36
  81. package/build/system/Spinner/Spinner.stories.js +0 -31
  82. package/build/system/Table/Table.stories.js +0 -72
  83. package/build/system/Tabs/Tabs.stories.js +0 -40
  84. package/build/system/Text/Text.stories.js +0 -33
  85. package/build/system/Timeline/Timeline.stories.js +0 -52
  86. package/build/system/Tooltip/Tooltip.stories.js +0 -51
  87. package/build/system/UsageChart/UsageChart.js +0 -60
  88. package/build/system/UsageChart/index.js +0 -7
  89. package/build/system/Wizard/Wizard.stories.js +0 -83
@@ -21,7 +21,7 @@ jobs:
21
21
  uses: actions/setup-node@v1
22
22
  with:
23
23
  node-version: ${{ matrix.node-version }}
24
- - run: npm install -g npm@latest
24
+ - run: npm install -g npm@7.24.2
25
25
  - run: npm install
26
26
  - run: npm run test
27
27
  - run: npm run build
@@ -0,0 +1,3 @@
1
+ {
2
+ "prettier.enable": false,
3
+ }
package/README.md CHANGED
@@ -43,10 +43,10 @@ Note: it's super useful to run `npm run watch` in another process, so any change
43
43
 
44
44
  ### Publish NPM Package Instructions
45
45
 
46
- Once all the changes needed are merged to master, and you are ready to release a new version, follow these steps:
46
+ Once all the changes needed are merged to trunk, and you are ready to release a new version, follow these steps:
47
47
 
48
48
  1. Make sure you have NPM access to our @automattic organization. Ask for #vip-platform-pâtisserie help in case you need it.
49
- 2. Pull all the changes to your local master. Make sure you have the latest master locally.
49
+ 2. Pull all the changes to your local trunk. Make sure you have the latest trunk locally.
50
50
  3. We follow the [https://semver.org/](https://semver.org/) versioning. You should run the specific version you are trying to publish:
51
51
 
52
52
  ```bash
@@ -67,11 +67,11 @@ npm publish
67
67
 
68
68
  Note: You need to have two-factor enabled in your npm account. The publish command will request a two-factor code to complete the publishing process.
69
69
 
70
- 7. Push the tags to the repository and master updates.
70
+ 7. Push the tags to the repository and trunk updates.
71
71
 
72
72
  ```
73
73
  git push --tags
74
- git push origin master
74
+ git push origin trunk
75
75
  ```
76
76
 
77
77
  8. For major versions or breaking changes, it's recommended to [create a RELEASE](https://github.com/Automattic/vip-design-system/releases) with the published tag.
@@ -7,11 +7,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
7
7
 
8
8
  var _themeUi = require("theme-ui");
9
9
 
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
10
12
  var _ = require("..");
11
13
 
12
14
  var _jsxRuntime = require("theme-ui/jsx-runtime");
13
15
 
14
- var _excluded = ["isVIP", "name", "size", "src"];
16
+ var _excluded = ["isVIP", "name", "size", "src", "className"];
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
19
 
@@ -28,6 +30,8 @@ var Avatar = function Avatar(_ref) {
28
30
  size = _ref$size === void 0 ? 32 : _ref$size,
29
31
  _ref$src = _ref.src,
30
32
  src = _ref$src === void 0 ? null : _ref$src,
33
+ _ref$className = _ref.className,
34
+ className = _ref$className === void 0 ? null : _ref$className,
31
35
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
32
36
 
33
37
  return (0, _jsxRuntime.jsx)(_.Box, _extends({
@@ -47,7 +51,8 @@ var Avatar = function Avatar(_ref) {
47
51
  color: 'white',
48
52
  padding: '1px',
49
53
  textAlign: 'center'
50
- }
54
+ },
55
+ className: (0, _classnames["default"])('vip-avatar-component', className)
51
56
  }, props, {
52
57
  children: src ? (0, _jsxRuntime.jsx)(_themeUi.Image, {
53
58
  src: src,
@@ -76,5 +81,6 @@ Avatar.propTypes = {
76
81
  isVIP: _propTypes["default"].bool,
77
82
  size: _propTypes["default"].number,
78
83
  src: _propTypes["default"].string,
79
- name: _propTypes["default"].string
84
+ name: _propTypes["default"].string,
85
+ className: _propTypes["default"].any
80
86
  };
@@ -3,13 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  exports.Badge = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _ = require("../");
9
11
 
10
12
  var _jsxRuntime = require("theme-ui/jsx-runtime");
11
13
 
12
- var _excluded = ["variant", "sx"];
14
+ var _excluded = ["variant", "sx", "className"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -21,6 +23,8 @@ var Badge = function Badge(_ref) {
21
23
  var _ref$variant = _ref.variant,
22
24
  variant = _ref$variant === void 0 ? 'blue' : _ref$variant,
23
25
  sx = _ref.sx,
26
+ _ref$className = _ref.className,
27
+ className = _ref$className === void 0 ? null : _ref$className,
24
28
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
25
29
 
26
30
  return (0, _jsxRuntime.jsx)(_.Text, _extends({
@@ -36,12 +40,14 @@ var Badge = function Badge(_ref) {
36
40
  display: 'inline-block',
37
41
  borderRadius: 1,
38
42
  fontWeight: 'heading'
39
- }, sx)
43
+ }, sx),
44
+ className: (0, _classnames["default"])('vip-badge-component', className)
40
45
  }, props));
41
46
  };
42
47
 
43
48
  exports.Badge = Badge;
44
49
  Badge.propTypes = {
45
50
  variant: _propTypes["default"].string,
46
- sx: _propTypes["default"].object
51
+ sx: _propTypes["default"].object,
52
+ className: _propTypes["default"].any
47
53
  };
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.BlankState = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _ = require("..");
@@ -27,12 +29,15 @@ var BlankState = function BlankState(_ref) {
27
29
  image = _ref.image,
28
30
  _ref$imageAlt = _ref.imageAlt,
29
31
  imageAlt = _ref$imageAlt === void 0 ? 'Image representing the blank state' : _ref$imageAlt,
30
- title = _ref.title;
32
+ title = _ref.title,
33
+ _ref$className = _ref.className,
34
+ className = _ref$className === void 0 ? null : _ref$className;
31
35
  return (0, _jsxRuntime.jsxs)(_.Box, {
32
36
  sx: {
33
37
  textAlign: 'center',
34
38
  padding: 5
35
39
  },
40
+ className: (0, _classnames["default"])('vip-blank-state-component', className),
36
41
  children: [icon ? icon : (0, _jsxRuntime.jsx)("img", {
37
42
  src: image,
38
43
  sx: {
@@ -60,5 +65,6 @@ BlankState.propTypes = {
60
65
  icon: _propTypes["default"].node,
61
66
  image: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string]),
62
67
  imageAlt: _propTypes["default"].string,
63
- title: _propTypes["default"].node
68
+ title: _propTypes["default"].node,
69
+ className: _propTypes["default"].any
64
70
  };
@@ -3,18 +3,28 @@
3
3
  exports.__esModule = true;
4
4
  exports.Box = void 0;
5
5
 
6
+ var _propTypes = _interopRequireDefault(require("prop-types"));
7
+
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+
6
10
  var _react = require("react");
7
11
 
8
12
  var _themeUi = require("theme-ui");
9
13
 
10
14
  var _jsxRuntime = require("theme-ui/jsx-runtime");
11
15
 
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+
12
18
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
13
19
 
14
20
  var Box = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
15
21
  return (0, _jsxRuntime.jsx)(_themeUi.Box, _extends({
16
- ref: ref
22
+ ref: ref,
23
+ className: (0, _classnames["default"])('vip-box-component', props.className)
17
24
  }, props));
18
25
  });
19
26
  exports.Box = Box;
20
- Box.displayName = 'Box';
27
+ Box.displayName = 'Box';
28
+ Box.propTypes = {
29
+ className: _propTypes["default"].any
30
+ };
@@ -7,6 +7,8 @@ var _themeUi = require("theme-ui");
7
7
 
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
10
12
  var _jsxRuntime = require("theme-ui/jsx-runtime");
11
13
 
12
14
  var _excluded = ["sx"];
@@ -34,11 +36,13 @@ var Button = function Button(_ref) {
34
36
  cursor: 'not-allowed',
35
37
  pointerEvents: 'all'
36
38
  }
37
- }, sx)
39
+ }, sx),
40
+ className: (0, _classnames["default"])('vip-button-component', props.className)
38
41
  }, props));
39
42
  };
40
43
 
41
44
  exports.Button = Button;
42
45
  Button.propTypes = {
43
- sx: _propTypes["default"].object
46
+ sx: _propTypes["default"].object,
47
+ className: _propTypes["default"].any
44
48
  };
@@ -9,9 +9,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
10
10
  var _ = require("..");
11
11
 
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
12
14
  var _jsxRuntime = require("theme-ui/jsx-runtime");
13
15
 
14
- var _excluded = ["variant", "sx"];
16
+ var _excluded = ["variant", "sx", "className"];
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
19
 
@@ -24,6 +26,7 @@ var Card = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
24
26
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
25
27
  _ref$sx = _ref.sx,
26
28
  sx = _ref$sx === void 0 ? {} : _ref$sx,
29
+ className = _ref.className,
27
30
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
28
31
 
29
32
  return (0, _jsxRuntime.jsx)(_.Box, _extends({
@@ -32,13 +35,15 @@ var Card = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
32
35
  // pass variant prop to sx
33
36
  variant: "cards." + variant,
34
37
  overflow: 'hidden'
35
- }, sx)
38
+ }, sx),
39
+ className: (0, _classnames["default"])('vip-card-component', className)
36
40
  }, props));
37
41
  });
38
42
 
39
43
  exports.Card = Card;
40
44
  Card.propTypes = {
41
45
  variant: _propTypes["default"].string,
42
- sx: _propTypes["default"].object
46
+ sx: _propTypes["default"].object,
47
+ className: _propTypes["default"].any
43
48
  };
44
49
  Card.displayName = 'Card';
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.Code = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _react = require("react");
@@ -11,7 +13,7 @@ var _md = require("react-icons/md");
11
13
 
12
14
  var _jsxRuntime = require("theme-ui/jsx-runtime");
13
15
 
14
- var _excluded = ["prompt", "showCopy", "onCopy"];
16
+ var _excluded = ["prompt", "showCopy", "onCopy", "className"];
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
19
 
@@ -26,6 +28,7 @@ var Code = function Code(_ref) {
26
28
  showCopy = _ref$showCopy === void 0 ? false : _ref$showCopy,
27
29
  _ref$onCopy = _ref.onCopy,
28
30
  onCopy = _ref$onCopy === void 0 ? null : _ref$onCopy,
31
+ className = _ref.className,
29
32
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
30
33
 
31
34
  var ref = (0, _react.useRef)();
@@ -46,7 +49,8 @@ var Code = function Code(_ref) {
46
49
  marginRight: 2,
47
50
  userSelect: 'none'
48
51
  }
49
- }
52
+ },
53
+ className: (0, _classnames["default"])('vip-code-component', className)
50
54
  }, props));
51
55
 
52
56
  if (!showCopy) {
@@ -100,5 +104,6 @@ exports.Code = Code;
100
104
  Code.propTypes = {
101
105
  prompt: _propTypes["default"].bool,
102
106
  showCopy: _propTypes["default"].bool,
103
- onCopy: _propTypes["default"].func
107
+ onCopy: _propTypes["default"].func,
108
+ className: _propTypes["default"].any
104
109
  };
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.ConfirmationDialogContent = exports.ConfirmationDialog = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
@@ -25,9 +27,12 @@ var ConfirmationDialogContent = function ConfirmationDialogContent(_ref) {
25
27
  onClose = _ref.onClose,
26
28
  _ref$label = _ref.label,
27
29
  label = _ref$label === void 0 ? 'Confirm' : _ref$label,
28
- onConfirm = _ref.onConfirm;
30
+ onConfirm = _ref.onConfirm,
31
+ _ref$className = _ref.className,
32
+ className = _ref$className === void 0 ? null : _ref$className;
29
33
  return (0, _jsxRuntime.jsxs)(_.Box, {
30
34
  p: 4,
35
+ className: (0, _classnames["default"])('vip-confirmation-dialog-component', className),
31
36
  children: [(0, _jsxRuntime.jsx)(_.Heading, {
32
37
  variant: "h3",
33
38
  sx: {
@@ -66,7 +71,8 @@ ConfirmationDialogContent.propTypes = {
66
71
  body: _propTypes["default"].node,
67
72
  label: _propTypes["default"].string,
68
73
  onClose: _propTypes["default"].func,
69
- onConfirm: _propTypes["default"].func
74
+ onConfirm: _propTypes["default"].func,
75
+ className: _propTypes["default"].any
70
76
  };
71
77
 
72
78
  var ConfirmationDialog = function ConfirmationDialog(_ref2) {
@@ -81,6 +81,7 @@ var Dialog = function Dialog(_ref) {
81
81
  position: 'relative'
82
82
  },
83
83
  ref: dialogRef,
84
+ className: "vip-dialog-component",
84
85
  children: [(0, _jsxRuntime.jsx)(_.DialogTrigger, {
85
86
  tabIndex: "0",
86
87
  sx: {
@@ -69,6 +69,7 @@ var Select = function Select(_ref) {
69
69
 
70
70
  return (0, _jsxRuntime.jsx)("div", {
71
71
  ref: selectRef,
72
+ className: "vip-select-component",
72
73
  children: (0, _jsxRuntime.jsx)(Component, _extends({
73
74
  isMulti: isMulti,
74
75
  label: label,
@@ -3,11 +3,13 @@
3
3
  exports.__esModule = true;
4
4
  exports.Toggle = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _jsxRuntime = require("theme-ui/jsx-runtime");
9
11
 
10
- var _excluded = ["name"];
12
+ var _excluded = ["name", "className"];
11
13
 
12
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
15
 
@@ -18,9 +20,12 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
18
20
  var Toggle = function Toggle(_ref) {
19
21
  var _ref$name = _ref.name,
20
22
  name = _ref$name === void 0 ? 'toggle' : _ref$name,
23
+ _ref$className = _ref.className,
24
+ className = _ref$className === void 0 ? null : _ref$className,
21
25
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
22
26
 
23
27
  return (0, _jsxRuntime.jsxs)(CheckBoxWrapper, {
28
+ className: (0, _classnames["default"])('vip-checkbox-component', className),
24
29
  children: [(0, _jsxRuntime.jsx)(CheckBox, _extends({
25
30
  name: name,
26
31
  id: name,
@@ -33,7 +38,8 @@ var Toggle = function Toggle(_ref) {
33
38
 
34
39
  exports.Toggle = Toggle;
35
40
  Toggle.propTypes = {
36
- name: _propTypes["default"].string
41
+ name: _propTypes["default"].string,
42
+ className: _propTypes["default"].any
37
43
  };
38
44
 
39
45
  var CheckBoxWrapper = function CheckBoxWrapper(props) {
@@ -7,9 +7,11 @@ var _themeUi = require("theme-ui");
7
7
 
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
10
12
  var _jsxRuntime = require("theme-ui/jsx-runtime");
11
13
 
12
- var _excluded = ["variant", "sx"];
14
+ var _excluded = ["variant", "sx", "className"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -21,6 +23,8 @@ var Heading = function Heading(_ref) {
21
23
  var _ref$variant = _ref.variant,
22
24
  variant = _ref$variant === void 0 ? 'h3' : _ref$variant,
23
25
  sx = _ref.sx,
26
+ _ref$className = _ref.className,
27
+ className = _ref$className === void 0 ? null : _ref$className,
24
28
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
25
29
 
26
30
  return (0, _jsxRuntime.jsx)(_themeUi.Heading, _extends({
@@ -29,12 +33,14 @@ var Heading = function Heading(_ref) {
29
33
  color: 'heading',
30
34
  // pass variant prop to sx
31
35
  variant: "text." + variant
32
- }, sx)
36
+ }, sx),
37
+ className: (0, _classnames["default"])('vip-heading-component', className)
33
38
  }, props));
34
39
  };
35
40
 
36
41
  exports.Heading = Heading;
37
42
  Heading.propTypes = {
38
43
  variant: _propTypes["default"].string,
39
- sx: _propTypes["default"].object
44
+ sx: _propTypes["default"].object,
45
+ className: _propTypes["default"].any
40
46
  };
@@ -3,6 +3,8 @@
3
3
  exports.__esModule = true;
4
4
  exports.Notice = void 0;
5
5
 
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+
6
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
7
9
 
8
10
  var _md = require("react-icons/md");
@@ -11,7 +13,7 @@ var _ = require("../");
11
13
 
12
14
  var _jsxRuntime = require("theme-ui/jsx-runtime");
13
15
 
14
- var _excluded = ["variant", "inline", "children", "title", "sx"];
16
+ var _excluded = ["variant", "inline", "children", "title", "sx", "className"];
15
17
 
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
19
 
@@ -61,6 +63,8 @@ var Notice = function Notice(_ref2) {
61
63
  title = _ref2.title,
62
64
  _ref2$sx = _ref2.sx,
63
65
  sx = _ref2$sx === void 0 ? {} : _ref2$sx,
66
+ _ref2$className = _ref2.className,
67
+ className = _ref2$className === void 0 ? null : _ref2$className,
64
68
  props = _objectWithoutPropertiesLoose(_ref2, _excluded);
65
69
 
66
70
  var color = 'yellow';
@@ -91,7 +95,8 @@ var Notice = function Notice(_ref2) {
91
95
  textDecoration: 'underline',
92
96
  border: 'none'
93
97
  }
94
- }, sx)
98
+ }, sx),
99
+ className: (0, _classnames["default"])('vip-notice-component', className)
95
100
  }, props, {
96
101
  children: (0, _jsxRuntime.jsxs)(_.Flex, {
97
102
  sx: {
@@ -130,5 +135,6 @@ Notice.propTypes = {
130
135
  inline: _propTypes["default"].bool,
131
136
  sx: _propTypes["default"].object,
132
137
  title: _propTypes["default"].node,
133
- variant: _propTypes["default"].string
138
+ variant: _propTypes["default"].string,
139
+ className: _propTypes["default"].any
134
140
  };
@@ -29,6 +29,7 @@ var Notification = function Notification(_ref) {
29
29
  status = _ref$status === void 0 ? 'success' : _ref$status,
30
30
  onClose = _ref.onClose;
31
31
  return (0, _jsxRuntime.jsxs)(_.Card, {
32
+ className: "vip-notification-component",
32
33
  sx: {
33
34
  boxShadow: 'medium',
34
35
  width: 320,
@@ -11,9 +11,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _ = require("..");
13
13
 
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
14
16
  var _jsxRuntime = require("theme-ui/jsx-runtime");
15
17
 
16
- var _excluded = ["image", "icon", "badge", "label", "inline", "subTitle", "body", "meta", "to", "small", "disabled"];
18
+ var _excluded = ["image", "icon", "badge", "label", "inline", "subTitle", "body", "meta", "to", "small", "disabled", "order", "className"];
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
@@ -36,6 +38,10 @@ var OptionRow = function OptionRow(_ref) {
36
38
  small = _ref$small === void 0 ? false : _ref$small,
37
39
  _ref$disabled = _ref.disabled,
38
40
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
41
+ _ref$order = _ref.order,
42
+ order = _ref$order === void 0 ? null : _ref$order,
43
+ _ref$className = _ref.className,
44
+ className = _ref$className === void 0 ? null : _ref$className,
39
45
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
40
46
 
41
47
  var mergedCard = disabled ? {
@@ -58,14 +64,16 @@ var OptionRow = function OptionRow(_ref) {
58
64
  return (0, _jsxRuntime.jsxs)(_.Grid, _extends({
59
65
  to: to,
60
66
  columns: [1, 1, 'auto 1fr auto'],
61
- gap: [3, 3, "" + (small ? 3 : 4)]
67
+ gap: [3, 3, "" + (small ? 3 : 4)],
68
+ "data-order": order || undefined,
69
+ className: (0, _classnames["default"])('vip-option-row-component', className)
62
70
  }, props, {
63
71
  sx: _extends({
64
72
  alignItems: 'center',
65
73
  cursor: disabled ? 'auto' : 'pointer',
66
74
  textDecoration: 'none',
67
75
  color: 'inherit',
68
- '&:hover': {
76
+ '&:hover': !disabled && {
69
77
  backgroundColor: 'hover'
70
78
  }
71
79
  }, inlineStyles),
@@ -115,7 +123,8 @@ var OptionRow = function OptionRow(_ref) {
115
123
  },
116
124
  children: body
117
125
  })]
118
- }), (0, _jsxRuntime.jsx)(_.Box, {
126
+ }), false !== meta && '' !== meta && (0, _jsxRuntime.jsx)(_.Box, {
127
+ "data-testid": "meta",
119
128
  children: meta ? meta : (0, _jsxRuntime.jsx)(_md.MdArrowForward, {
120
129
  size: 24
121
130
  })
@@ -135,5 +144,7 @@ OptionRow.propTypes = {
135
144
  meta: _propTypes["default"].node,
136
145
  to: _propTypes["default"].string,
137
146
  small: _propTypes["default"].bool,
138
- disabled: _propTypes["default"].bool
147
+ disabled: _propTypes["default"].bool,
148
+ order: _propTypes["default"].number,
149
+ className: _propTypes["default"].any
139
150
  };
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ var _react = require("@testing-library/react");
4
+
5
+ var _jestAxe = require("jest-axe");
6
+
7
+ var _OptionRow = require("./OptionRow");
8
+
9
+ var _jsxRuntime = require("theme-ui/jsx-runtime");
10
+
11
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12
+
13
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14
+
15
+ describe('<OptionRow />', function () {
16
+ it('renders the OptionRow', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
17
+ var _render, container;
18
+
19
+ return regeneratorRuntime.wrap(function _callee$(_context) {
20
+ while (1) {
21
+ switch (_context.prev = _context.next) {
22
+ case 0:
23
+ _render = (0, _react.render)((0, _jsxRuntime.jsx)(_OptionRow.OptionRow, {
24
+ label: "Option Row",
25
+ subTitle: "Mostly used to link off to other pages.",
26
+ as: "a"
27
+ })), container = _render.container;
28
+ expect(_react.screen.getByText('Mostly used to link off to other pages.')).toBeInTheDocument(); // Check for accessibility issues
29
+
30
+ _context.t0 = expect;
31
+ _context.next = 5;
32
+ return (0, _jestAxe.axe)(container);
33
+
34
+ case 5:
35
+ _context.t1 = _context.sent;
36
+ _context.next = 8;
37
+ return (0, _context.t0)(_context.t1).toHaveNoViolations();
38
+
39
+ case 8:
40
+ case "end":
41
+ return _context.stop();
42
+ }
43
+ }
44
+ }, _callee);
45
+ })));
46
+ it('renders a disabled OptionRow', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
47
+ var image1, _render2, container;
48
+
49
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
50
+ while (1) {
51
+ switch (_context2.prev = _context2.next) {
52
+ case 0:
53
+ // eslint-disable-next-line max-len
54
+ image1 = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='79' height='79' viewBox='0 0 79 79' fill='none' %3E%3Cpath d='M71.4 15.3L54.2 4.2C54 4 53.7 4 53.4 4H26.4C26.1 4 25.8 4.1 25.6 4.2L8.29997 15.3C7.89997 15.6 7.59998 16 7.59998 16.5V32.1V63C7.59998 63.5 7.89997 64 8.29997 64.2L25.5 75.3C25.5 75.3 25.6 75.3 25.6 75.4C25.6 75.4 25.7 75.4 25.7 75.5C25.9 75.6 26 75.6 26.2 75.6H53.2C53.4 75.6 53.5 75.6 53.7 75.5C53.8 75.5 53.8 75.5 53.8 75.4C53.8 75.4 53.9 75.4 53.9 75.3L71.4 64.2C71.5 64.1 71.7 64 71.8 63.8C71.8 63.8 71.8 63.7 71.9 63.7C72 63.6 72.1 63.4 72.1 63.2V63.1C72.1 63 72.1 62.9 72.1 62.8V32.1V16.5C72.1 16 71.8 15.6 71.4 15.3ZM24.9 71.4L10.6 62.2V34.8L24.9 44V71.4ZM51.9 72.6H27.8V44.7H51.9V72.6ZM69.1 31.3L52.9 41.7H26.8L10.6 31.3V17.3L26.8 6.9H52.9L69.1 17.3V31.3Z' fill='%23BD9D70' /%3E%3C/svg%3E";
55
+ _render2 = (0, _react.render)((0, _jsxRuntime.jsx)(_OptionRow.OptionRow, {
56
+ image: image1,
57
+ label: "Option Row",
58
+ subTitle: "Mostly used to link off to other pages.",
59
+ as: "a",
60
+ disabled: true,
61
+ meta: ""
62
+ })), container = _render2.container;
63
+ expect(_react.screen.getByAltText('Image representing the list item').closest('div')).toHaveStyle({
64
+ background: 'none'
65
+ });
66
+ expect(_react.screen.queryByTestId('meta')).not.toBeInTheDocument(); // Check for accessibility issues
67
+
68
+ _context2.t0 = expect;
69
+ _context2.next = 7;
70
+ return (0, _jestAxe.axe)(container);
71
+
72
+ case 7:
73
+ _context2.t1 = _context2.sent;
74
+ _context2.next = 10;
75
+ return (0, _context2.t0)(_context2.t1).toHaveNoViolations();
76
+
77
+ case 10:
78
+ case "end":
79
+ return _context2.stop();
80
+ }
81
+ }
82
+ }, _callee2);
83
+ })));
84
+ });
@@ -11,9 +11,11 @@ var _Spinner = require("../Spinner");
11
11
 
12
12
  var _ = require("../");
13
13
 
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
14
16
  var _jsxRuntime = require("theme-ui/jsx-runtime");
15
17
 
16
- var _excluded = ["steps", "activeStep", "sx"];
18
+ var _excluded = ["steps", "activeStep", "sx", "className"];
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
@@ -25,10 +27,13 @@ var Progress = function Progress(_ref) {
25
27
  var steps = _ref.steps,
26
28
  activeStep = _ref.activeStep,
27
29
  sx = _ref.sx,
30
+ className = _ref.className,
28
31
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
29
32
 
30
33
  return (0, _jsxRuntime.jsxs)(_.Box, {
31
- children: [(0, _jsxRuntime.jsx)(_themeUi.Progress, _extends({}, props, {
34
+ children: [(0, _jsxRuntime.jsx)(_themeUi.Progress, _extends({
35
+ className: (0, _classnames["default"])('vip-progress-component', className)
36
+ }, props, {
32
37
  sx: _extends({
33
38
  color: 'primary'
34
39
  }, sx),
@@ -63,5 +68,6 @@ exports.Progress = Progress;
63
68
  Progress.propTypes = {
64
69
  steps: _propTypes["default"].array,
65
70
  activeStep: _propTypes["default"].number,
66
- sx: _propTypes["default"].object
71
+ sx: _propTypes["default"].object,
72
+ className: _propTypes["default"].any
67
73
  };