@automattic/vip-design-system 0.9.4 → 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 (69) hide show
  1. package/.github/workflows/nodejs.yaml +1 -1
  2. package/README.md +4 -4
  3. package/build/system/Avatar/Avatar.js +9 -3
  4. package/build/system/Badge/Badge.js +9 -3
  5. package/build/system/BlankState/BlankState.js +8 -2
  6. package/build/system/Box/Box.js +12 -2
  7. package/build/system/Button/Button.js +6 -2
  8. package/build/system/Card/Card.js +8 -3
  9. package/build/system/Code/Code.js +8 -3
  10. package/build/system/ConfirmationDialog/ConfirmationDialog.js +8 -2
  11. package/build/system/Dialog/Dialog.js +1 -0
  12. package/build/system/Form/AsyncSearchSelect.js +38 -0
  13. package/build/system/Form/SearchSelect.js +47 -11
  14. package/build/system/Form/Select.js +22 -2
  15. package/build/system/Form/Select.test.js +52 -0
  16. package/build/system/Form/Toggle.js +8 -2
  17. package/build/system/Heading/Heading.js +9 -3
  18. package/build/system/Notice/Notice.js +9 -3
  19. package/build/system/Notification/Notification.js +1 -0
  20. package/build/system/OptionRow/OptionRow.js +13 -3
  21. package/build/system/OptionRow/OptionRow.test.js +46 -0
  22. package/build/system/Progress/Progress.js +9 -3
  23. package/build/system/ResourceList/ResourceList.js +1 -0
  24. package/build/system/Spinner/Spinner.js +9 -3
  25. package/build/system/Tabs/TabItem.js +1 -0
  26. package/build/system/Tabs/Tabs.js +10 -4
  27. package/build/system/Text/Text.js +9 -3
  28. package/build/system/Time/index.js +9 -3
  29. package/build/system/Timeline/Timeline.js +77 -0
  30. package/build/system/Timeline/index.js +2 -66
  31. package/build/system/Wizard/Wizard.js +10 -2
  32. package/build/system/Wizard/WizardStep.js +6 -2
  33. package/build/system/Wizard/WizardStepHorizontal.js +6 -2
  34. package/package.json +4 -2
  35. package/src/system/Avatar/Avatar.js +4 -0
  36. package/src/system/Badge/Badge.js +4 -1
  37. package/src/system/BlankState/BlankState.js +4 -1
  38. package/src/system/Box/Box.js +6 -1
  39. package/src/system/Button/Button.js +3 -0
  40. package/src/system/Card/Card.js +4 -1
  41. package/src/system/Code/Code.js +4 -1
  42. package/src/system/ConfirmationDialog/ConfirmationDialog.js +4 -2
  43. package/src/system/Dialog/Dialog.js +1 -1
  44. package/src/system/Form/AsyncSearchSelect.js +29 -0
  45. package/src/system/Form/SearchSelect.js +43 -3
  46. package/src/system/Form/Select.js +16 -3
  47. package/src/system/Form/Select.stories.js +30 -0
  48. package/src/system/Form/Select.test.js +37 -0
  49. package/src/system/Form/Toggle.js +4 -2
  50. package/src/system/Heading/Heading.js +4 -1
  51. package/src/system/Notice/Notice.js +4 -1
  52. package/src/system/Notification/Notification.js +1 -0
  53. package/src/system/OptionRow/OptionRow.js +7 -0
  54. package/src/system/OptionRow/OptionRow.stories.js +1 -0
  55. package/src/system/OptionRow/OptionRow.test.js +27 -0
  56. package/src/system/Progress/Progress.js +4 -1
  57. package/src/system/ResourceList/ResourceList.js +1 -1
  58. package/src/system/Spinner/Spinner.js +4 -1
  59. package/src/system/Tabs/TabItem.js +1 -0
  60. package/src/system/Tabs/Tabs.js +5 -2
  61. package/src/system/Text/Text.js +4 -1
  62. package/src/system/Time/index.js +4 -1
  63. package/src/system/Timeline/Timeline.js +48 -0
  64. package/src/system/Timeline/Timeline.stories.js +34 -0
  65. package/src/system/Timeline/index.js +2 -41
  66. package/src/system/Wizard/Wizard.js +6 -2
  67. package/src/system/Wizard/Wizard.stories.js +1 -1
  68. package/src/system/Wizard/WizardStep.js +5 -2
  69. package/src/system/Wizard/WizardStepHorizontal.js +4 -1
@@ -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,7 +64,9 @@ 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',
@@ -135,5 +143,7 @@ OptionRow.propTypes = {
135
143
  meta: _propTypes["default"].node,
136
144
  to: _propTypes["default"].string,
137
145
  small: _propTypes["default"].bool,
138
- disabled: _propTypes["default"].bool
146
+ disabled: _propTypes["default"].bool,
147
+ order: _propTypes["default"].number,
148
+ className: _propTypes["default"].any
139
149
  };
@@ -0,0 +1,46 @@
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
+ });
@@ -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
  };
@@ -83,6 +83,7 @@ var ResourceList = function ResourceList(_ref) {
83
83
  m: 0,
84
84
  p: 0
85
85
  },
86
+ className: "vip-resource-list-component",
86
87
  children: groupedByDay ? Object.keys(groupedItems).map(function (groupName, index) {
87
88
  return (0, _jsxRuntime.jsxs)(_.Box, {
88
89
  sx: {
@@ -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 = ["sx"];
14
+ var _excluded = ["sx", "className"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -19,6 +21,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
19
21
 
20
22
  var Spinner = function Spinner(_ref) {
21
23
  var sx = _ref.sx,
24
+ _ref$className = _ref.className,
25
+ className = _ref$className === void 0 ? null : _ref$className,
22
26
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
23
27
 
24
28
  return (0, _jsxRuntime.jsx)(_themeUi.Spinner, _extends({
@@ -26,11 +30,13 @@ var Spinner = function Spinner(_ref) {
26
30
  sx: {
27
31
  fill: 'none',
28
32
  color: 'primary'
29
- }
33
+ },
34
+ className: (0, _classnames["default"])('vip-spinner-component', className)
30
35
  }, props));
31
36
  };
32
37
 
33
38
  exports.Spinner = Spinner;
34
39
  Spinner.propTypes = {
35
- sx: _propTypes["default"].object
40
+ sx: _propTypes["default"].object,
41
+ className: _propTypes["default"].any
36
42
  };
@@ -27,6 +27,7 @@ var TabItem = function TabItem(_ref) {
27
27
  variant: "h4",
28
28
  as: "button",
29
29
  tabIndex: "0",
30
+ "data-active": active || undefined,
30
31
  sx: _extends({
31
32
  cursor: 'pointer',
32
33
  background: 'none',
@@ -3,13 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  exports.Tabs = 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 = ["sx"];
14
+ var _excluded = ["className", "sx"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -18,10 +20,13 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
18
20
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
19
21
 
20
22
  var Tabs = function Tabs(_ref) {
21
- var sx = _ref.sx,
23
+ var _ref$className = _ref.className,
24
+ className = _ref$className === void 0 ? null : _ref$className,
25
+ sx = _ref.sx,
22
26
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
23
27
 
24
28
  return (0, _jsxRuntime.jsx)(_.Flex, _extends({
29
+ className: (0, _classnames["default"])('vip-tabs-component', className),
25
30
  sx: _extends({
26
31
  borderBottom: '1px solid',
27
32
  borderColor: 'border',
@@ -34,6 +39,7 @@ var Tabs = function Tabs(_ref) {
34
39
 
35
40
  exports.Tabs = Tabs;
36
41
  Tabs.propTypes = {
37
- variant: _propTypes["default"].string,
38
- sx: _propTypes["default"].object
42
+ className: _propTypes["default"].any,
43
+ sx: _propTypes["default"].object,
44
+ variant: _propTypes["default"].string
39
45
  };
@@ -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 = ["sx"];
14
+ var _excluded = ["sx", "className"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -19,6 +21,8 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
19
21
 
20
22
  var Text = function Text(_ref) {
21
23
  var sx = _ref.sx,
24
+ _ref$className = _ref.className,
25
+ className = _ref$className === void 0 ? null : _ref$className,
22
26
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
23
27
 
24
28
  return (0, _jsxRuntime.jsx)(_themeUi.Text, _extends({
@@ -26,11 +30,13 @@ var Text = function Text(_ref) {
26
30
  sx: _extends({
27
31
  lineHeight: 1.5,
28
32
  marginBottom: 2
29
- }, sx)
33
+ }, sx),
34
+ className: (0, _classnames["default"])('vip-text-component', className)
30
35
  }, props));
31
36
  };
32
37
 
33
38
  exports.Text = Text;
34
39
  Text.propTypes = {
35
- sx: _propTypes["default"].object
40
+ sx: _propTypes["default"].object,
41
+ className: _propTypes["default"].any
36
42
  };
@@ -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 = ["time", "relativeTime", "timeOnly"];
14
+ var _excluded = ["time", "relativeTime", "timeOnly", "className"];
13
15
 
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
17
 
@@ -60,6 +62,8 @@ var Time = function Time(_ref) {
60
62
  relativeTime = _ref$relativeTime === void 0 ? false : _ref$relativeTime,
61
63
  _ref$timeOnly = _ref.timeOnly,
62
64
  timeOnly = _ref$timeOnly === void 0 ? false : _ref$timeOnly,
65
+ _ref$className = _ref.className,
66
+ className = _ref$className === void 0 ? null : _ref$className,
63
67
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
64
68
 
65
69
  var formattedTime;
@@ -77,7 +81,8 @@ var Time = function Time(_ref) {
77
81
  timeZoneName: 'short'
78
82
  }),
79
83
  datetime: time,
80
- as: "time"
84
+ as: "time",
85
+ className: (0, _classnames["default"])('vip-time-component', className)
81
86
  }, props, {
82
87
  children: formattedTime
83
88
  }));
@@ -87,5 +92,6 @@ exports.Time = Time;
87
92
  Time.propTypes = {
88
93
  time: _propTypes["default"].string,
89
94
  timeOnly: _propTypes["default"].bool,
90
- relativeTime: _propTypes["default"].bool
95
+ relativeTime: _propTypes["default"].bool,
96
+ className: _propTypes["default"].any
91
97
  };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.Timeline = void 0;
5
+
6
+ var _themeUi = require("theme-ui");
7
+
8
+ var _md = require("react-icons/md");
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+
14
+ var _jsxRuntime = require("theme-ui/jsx-runtime");
15
+
16
+ var _excluded = ["time", "first", "last", "className"];
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ 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); }
21
+
22
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
23
+
24
+ var VerticalLine = function VerticalLine() {
25
+ return (0, _jsxRuntime.jsx)("div", {
26
+ sx: {
27
+ borderLeft: '2px solid',
28
+ borderColor: 'border',
29
+ height: 'calc( 50% - 16px )',
30
+ borderRadius: '2px'
31
+ }
32
+ });
33
+ };
34
+
35
+ var Timeline = function Timeline(_ref) {
36
+ var time = _ref.time,
37
+ _ref$first = _ref.first,
38
+ first = _ref$first === void 0 ? false : _ref$first,
39
+ _ref$last = _ref.last,
40
+ last = _ref$last === void 0 ? false : _ref$last,
41
+ _ref$className = _ref.className,
42
+ className = _ref$className === void 0 ? null : _ref$className,
43
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
44
+
45
+ return (0, _jsxRuntime.jsxs)(_themeUi.Flex, _extends({
46
+ className: (0, _classnames["default"])('vip-timeline-component', className)
47
+ }, props, {
48
+ children: [(0, _jsxRuntime.jsxs)(_themeUi.Flex, {
49
+ sx: {
50
+ flexDirection: 'column',
51
+ justifyContent: 'space-evenly',
52
+ alignItems: 'center'
53
+ },
54
+ children: [!first && (0, _jsxRuntime.jsx)(VerticalLine, {}), (0, _jsxRuntime.jsx)(_md.MdWatchLater, {
55
+ "aria-hidden": true,
56
+ sx: {
57
+ color: 'border'
58
+ },
59
+ size: 18
60
+ }), !last && (0, _jsxRuntime.jsx)(VerticalLine, {})]
61
+ }), (0, _jsxRuntime.jsx)(_themeUi.Flex, {
62
+ sx: {
63
+ alignItems: 'center',
64
+ ml: 2
65
+ },
66
+ children: time
67
+ })]
68
+ }));
69
+ };
70
+
71
+ exports.Timeline = Timeline;
72
+ Timeline.propTypes = {
73
+ first: _propTypes["default"].bool,
74
+ time: _propTypes["default"].node,
75
+ last: _propTypes["default"].bool,
76
+ className: _propTypes["default"].any
77
+ };
@@ -1,71 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.Timeline = void 0;
5
4
 
6
- var _themeUi = require("theme-ui");
5
+ var _Timeline = require("./Timeline");
7
6
 
8
- var _md = require("react-icons/md");
9
-
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
- var _jsxRuntime = require("theme-ui/jsx-runtime");
13
-
14
- var _excluded = ["time", "first", "last"];
15
-
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
-
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); }
19
-
20
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
21
-
22
- var VerticalLine = function VerticalLine() {
23
- return (0, _jsxRuntime.jsx)("div", {
24
- sx: {
25
- borderLeft: '2px solid',
26
- borderColor: 'border',
27
- height: 'calc( 50% - 16px )',
28
- borderRadius: '2px'
29
- }
30
- });
31
- };
32
-
33
- var Timeline = function Timeline(_ref) {
34
- var time = _ref.time,
35
- _ref$first = _ref.first,
36
- first = _ref$first === void 0 ? false : _ref$first,
37
- _ref$last = _ref.last,
38
- last = _ref$last === void 0 ? false : _ref$last,
39
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
40
-
41
- return (0, _jsxRuntime.jsxs)(_themeUi.Flex, _extends({}, props, {
42
- children: [(0, _jsxRuntime.jsxs)(_themeUi.Flex, {
43
- sx: {
44
- flexDirection: 'column',
45
- justifyContent: 'space-evenly',
46
- alignItems: 'center'
47
- },
48
- children: [!first && (0, _jsxRuntime.jsx)(VerticalLine, {}), (0, _jsxRuntime.jsx)(_md.MdWatchLater, {
49
- sx: {
50
- color: 'border'
51
- },
52
- size: 18
53
- }), !last && (0, _jsxRuntime.jsx)(VerticalLine, {})]
54
- }), (0, _jsxRuntime.jsx)(_themeUi.Flex, {
55
- sx: {
56
- alignItems: 'center',
57
- ml: 2
58
- },
59
- children: (0, _jsxRuntime.jsx)("span", {
60
- children: time
61
- })
62
- })]
63
- }));
64
- };
65
-
66
- exports.Timeline = Timeline;
67
- Timeline.propTypes = {
68
- first: _propTypes["default"].bool,
69
- time: _propTypes["default"].string,
70
- last: _propTypes["default"].bool
71
- };
7
+ exports.Timeline = _Timeline.Timeline;
@@ -7,13 +7,15 @@ var _react = _interopRequireDefault(require("react"));
7
7
 
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
 
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+
10
12
  var _md = require("react-icons/md");
11
13
 
12
14
  var _ = require("..");
13
15
 
14
16
  var _jsxRuntime = require("theme-ui/jsx-runtime");
15
17
 
16
- var _excluded = ["steps", "activeStep", "variant", "completed"];
18
+ var _excluded = ["steps", "activeStep", "variant", "completed", "className"];
17
19
 
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
@@ -27,9 +29,12 @@ var Wizard = function Wizard(_ref) {
27
29
  variant = _ref.variant,
28
30
  _ref$completed = _ref.completed,
29
31
  completed = _ref$completed === void 0 ? [] : _ref$completed,
32
+ _ref$className = _ref.className,
33
+ className = _ref$className === void 0 ? null : _ref$className,
30
34
  props = _objectWithoutPropertiesLoose(_ref, _excluded);
31
35
 
32
36
  return (0, _jsxRuntime.jsx)(_.Box, {
37
+ className: (0, _classnames["default"])('vip-wizard-component', className),
33
38
  children: variant === 'horizontal' ? (0, _jsxRuntime.jsxs)(_.Box, {
34
39
  children: [(0, _jsxRuntime.jsx)(_.Flex, _extends({
35
40
  sx: {
@@ -41,6 +46,7 @@ var Wizard = function Wizard(_ref) {
41
46
  subTitle = _ref2.subTitle;
42
47
  return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
43
48
  children: [(0, _jsxRuntime.jsx)(_.WizardStepHorizontal, {
49
+ order: index + 1,
44
50
  active: index === activeStep,
45
51
  title: title,
46
52
  subTitle: subTitle
@@ -62,6 +68,7 @@ var Wizard = function Wizard(_ref) {
62
68
  title: title,
63
69
  subTitle: subTitle,
64
70
  complete: completed.includes(index),
71
+ order: index + 1,
65
72
  children: children
66
73
  }, index);
67
74
  })
@@ -73,5 +80,6 @@ Wizard.propTypes = {
73
80
  steps: _propTypes["default"].array,
74
81
  activeStep: _propTypes["default"].number,
75
82
  variant: _propTypes["default"].string,
76
- completed: _propTypes["default"].array
83
+ completed: _propTypes["default"].array,
84
+ className: _propTypes["default"].any
77
85
  };
@@ -28,7 +28,8 @@ var WizardStep = function WizardStep(_ref) {
28
28
  _ref$complete = _ref.complete,
29
29
  complete = _ref$complete === void 0 ? false : _ref$complete,
30
30
  children = _ref.children,
31
- active = _ref.active;
31
+ active = _ref.active,
32
+ order = _ref.order;
32
33
  var borderLeftColor = 'border';
33
34
 
34
35
  if (complete) {
@@ -60,6 +61,8 @@ var WizardStep = function WizardStep(_ref) {
60
61
  borderColor: active ? 'primary' : 'border',
61
62
  borderLeftColor: borderLeftColor
62
63
  },
64
+ "data-step": order,
65
+ "data-active": active || undefined,
63
66
  children: [(0, _jsxRuntime.jsxs)(_.Heading, {
64
67
  variant: "h4",
65
68
  sx: {
@@ -88,5 +91,6 @@ WizardStep.propTypes = {
88
91
  subTitle: _propTypes["default"].node,
89
92
  complete: _propTypes["default"].bool,
90
93
  active: _propTypes["default"].bool,
91
- children: _propTypes["default"].node.isRequired
94
+ children: _propTypes["default"].node,
95
+ order: _propTypes["default"].number.isRequired
92
96
  };
@@ -24,7 +24,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "d
24
24
  */
25
25
  var WizardStepHorizontal = function WizardStepHorizontal(_ref) {
26
26
  var title = _ref.title,
27
- active = _ref.active;
27
+ active = _ref.active,
28
+ order = _ref.order;
28
29
  return (0, _jsxRuntime.jsxs)(_.Heading, {
29
30
  variant: "h4",
30
31
  sx: {
@@ -33,6 +34,8 @@ var WizardStepHorizontal = function WizardStepHorizontal(_ref) {
33
34
  alignItems: 'center',
34
35
  color: active ? 'heading' : 'muted'
35
36
  },
37
+ "data-step": order,
38
+ "data-active": active || undefined,
36
39
  children: [(0, _jsxRuntime.jsx)(_md.MdCheckCircle, {
37
40
  sx: {
38
41
  mr: 2
@@ -45,5 +48,6 @@ exports.WizardStepHorizontal = WizardStepHorizontal;
45
48
  WizardStepHorizontal.propTypes = {
46
49
  title: _propTypes["default"].node,
47
50
  subTitle: _propTypes["default"].node,
48
- active: _propTypes["default"].bool
51
+ active: _propTypes["default"].bool,
52
+ order: _propTypes["default"].number.isRequired
49
53
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@automattic/vip-design-system",
3
- "version": "0.9.4",
3
+ "version": "0.10.0",
4
4
  "main": "build/system/index.js",
5
5
  "scripts": {
6
6
  "build-storybook": "build-storybook",
@@ -19,9 +19,11 @@
19
19
  "@radix-ui/react-radio-group": "^0.1.0",
20
20
  "@radix-ui/react-tooltip": "^0.1.0",
21
21
  "babel-loader": "^8.2.2",
22
+ "classnames": "^2.3.1",
22
23
  "framer-motion": "^3.9.1",
23
24
  "react-icons": "^4.2.0",
24
- "react-select": "^4.3.1"
25
+ "react-select": "^4.3.1",
26
+ "react-select-async-paginate": "^0.6.1"
25
27
  },
26
28
  "peerDependencies": {
27
29
  "react": "*",
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import PropTypes from 'prop-types';
7
7
  import { Image } from 'theme-ui';
8
+ import classNames from 'classnames';
8
9
 
9
10
  /**
10
11
  * Internal dependencies
@@ -16,6 +17,7 @@ const Avatar = ( {
16
17
  name = null,
17
18
  size = 32,
18
19
  src = null,
20
+ className = null,
19
21
  ...props
20
22
  } ) => (
21
23
  <Box
@@ -34,6 +36,7 @@ const Avatar = ( {
34
36
  padding: '1px',
35
37
  textAlign: 'center',
36
38
  } }
39
+ className={ classNames( 'vip-avatar-component', className ) }
37
40
  { ...props }
38
41
  >
39
42
  { src ? (
@@ -68,6 +71,7 @@ Avatar.propTypes = {
68
71
  size: PropTypes.number,
69
72
  src: PropTypes.string,
70
73
  name: PropTypes.string,
74
+ className: PropTypes.any,
71
75
  };
72
76
 
73
77
  export { Avatar };