@automattic/vip-design-system 0.7.1 → 0.9.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 (115) hide show
  1. package/.eslines.json +10 -0
  2. package/.eslintignore +7 -0
  3. package/.eslintrc.json +23 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +22 -0
  5. package/.github/workflows/codeql-analysis.yml +71 -0
  6. package/.github/workflows/nodejs.yaml +29 -0
  7. package/.prettierrc +9 -0
  8. package/.storybook/preview.js +8 -7
  9. package/README.md +52 -2
  10. package/babel.config.js +10 -10
  11. package/build/system/Avatar/Avatar.js +5 -1
  12. package/build/system/Avatar/Avatar.test.js +54 -0
  13. package/build/system/Badge/Badge.js +2 -2
  14. package/build/system/BlankState/BlankState.js +5 -4
  15. package/build/system/Button/Button.js +5 -1
  16. package/build/system/Card/Card.js +2 -1
  17. package/build/system/Code/Code.js +4 -4
  18. package/build/system/ConfirmationDialog/ConfirmationDialog.js +1 -1
  19. package/build/system/Dialog/DialogButton.js +2 -4
  20. package/build/system/Dialog/DialogContent.js +5 -5
  21. package/build/system/Form/InlineSelect.js +28 -16
  22. package/build/system/Form/Input.js +3 -2
  23. package/build/system/Form/Label.js +2 -2
  24. package/build/system/Form/RadioBoxGroup.js +0 -2
  25. package/build/system/Form/SearchSelect.js +36 -56
  26. package/build/system/Form/Select.js +3 -3
  27. package/build/system/Form/Textarea.js +3 -2
  28. package/build/system/Form/Toggle.js +1 -1
  29. package/build/system/Form/ToggleGroup.js +0 -4
  30. package/build/system/Form/ToggleRow.js +5 -4
  31. package/build/system/Form/Validation.js +4 -4
  32. package/build/system/Notice/Notice.js +58 -54
  33. package/build/system/Notification/Notification.js +3 -3
  34. package/build/system/OptionRow/OptionRow.js +11 -10
  35. package/build/system/ResourceList/ResourceItem.js +89 -0
  36. package/build/system/ResourceList/ResourceList.js +121 -0
  37. package/build/system/ResourceList/index.js +11 -0
  38. package/build/system/Table/TableRow.js +1 -1
  39. package/build/system/Tabs/TabItem.js +2 -2
  40. package/build/system/Tabs/Tabs.js +1 -1
  41. package/build/system/Time/index.js +91 -0
  42. package/build/system/Tooltip/Tooltip.js +49 -47
  43. package/build/system/Wizard/WizardStep.js +4 -4
  44. package/build/system/Wizard/WizardStepHorizontal.js +2 -2
  45. package/build/system/index.js +7 -2
  46. package/build/system/theme/colors.js +235 -131
  47. package/build/system/theme/index.js +128 -107
  48. package/package.json +48 -13
  49. package/src/system/Avatar/Avatar.js +5 -1
  50. package/src/system/Avatar/Avatar.stories.js +0 -5
  51. package/src/system/Avatar/Avatar.test.js +31 -0
  52. package/src/system/Badge/Badge.js +3 -3
  53. package/src/system/Badge/Badge.stories.js +0 -5
  54. package/src/system/BlankState/BlankState.js +5 -5
  55. package/src/system/BlankState/BlankState.stories.js +0 -5
  56. package/src/system/Box/Box.stories.js +0 -5
  57. package/src/system/Button/Button.js +6 -2
  58. package/src/system/Card/Card.js +16 -12
  59. package/src/system/Card/Card.stories.js +0 -5
  60. package/src/system/Code/Code.js +4 -4
  61. package/src/system/Code/Code.stories.js +4 -1
  62. package/src/system/ConfirmationDialog/ConfirmationDialog.js +1 -1
  63. package/src/system/ConfirmationDialog/ConfirmationDialog.stories.js +0 -5
  64. package/src/system/Dialog/Dialog.stories.js +0 -5
  65. package/src/system/Dialog/DialogButton.js +2 -3
  66. package/src/system/Dialog/DialogContent.js +17 -4
  67. package/src/system/Flex/Flex.stories.js +0 -5
  68. package/src/system/Form/InlineSelect.js +28 -15
  69. package/src/system/Form/Input.js +3 -1
  70. package/src/system/Form/Input.stories.js +0 -5
  71. package/src/system/Form/Label.js +2 -2
  72. package/src/system/Form/RadioBoxGroup.js +1 -2
  73. package/src/system/Form/RadioBoxGroup.stories.js +4 -5
  74. package/src/system/Form/SearchSelect.js +35 -42
  75. package/src/system/Form/Select.js +18 -18
  76. package/src/system/Form/Select.stories.js +1 -1
  77. package/src/system/Form/Textarea.js +3 -1
  78. package/src/system/Form/Toggle.js +1 -1
  79. package/src/system/Form/ToggleGroup.js +34 -37
  80. package/src/system/Form/ToggleGroup.stories.js +30 -32
  81. package/src/system/Form/ToggleRow.js +4 -4
  82. package/src/system/Form/Validation.js +2 -2
  83. package/src/system/Grid/Grid.stories.js +0 -5
  84. package/src/system/Heading/Heading.stories.js +0 -5
  85. package/src/system/Link/Link.stories.js +0 -5
  86. package/src/system/Notice/Notice.js +33 -28
  87. package/src/system/Notification/Notification.js +5 -5
  88. package/src/system/Notification/Notification.stories.js +0 -5
  89. package/src/system/OptionRow/OptionRow.js +36 -31
  90. package/src/system/OptionRow/OptionRow.stories.js +0 -5
  91. package/src/system/Progress/Progress.stories.js +0 -5
  92. package/src/system/ResourceList/ResourceItem.js +66 -0
  93. package/src/system/ResourceList/ResourceList.js +96 -0
  94. package/src/system/ResourceList/ResourceList.stories.js +300 -0
  95. package/src/system/ResourceList/index.js +7 -0
  96. package/src/system/Spinner/Spinner.stories.js +0 -5
  97. package/src/system/Table/Table.stories.js +0 -5
  98. package/src/system/Table/TableRow.js +2 -2
  99. package/src/system/Tabs/TabItem.js +2 -2
  100. package/src/system/Tabs/Tabs.js +1 -1
  101. package/src/system/Tabs/Tabs.stories.js +0 -5
  102. package/src/system/Text/Text.stories.js +0 -5
  103. package/src/system/{Timeline/Timeline.stories.js → Time/Time.stories.js} +5 -5
  104. package/src/system/Time/index.js +62 -0
  105. package/src/system/Tooltip/Tooltip.js +40 -35
  106. package/src/system/Tooltip/Tooltip.stories.js +0 -5
  107. package/src/system/Wizard/Wizard.js +7 -7
  108. package/src/system/Wizard/WizardStep.js +9 -9
  109. package/src/system/Wizard/WizardStepHorizontal.js +3 -3
  110. package/src/system/index.js +27 -4
  111. package/src/system/theme/colors.js +233 -129
  112. package/src/system/theme/index.js +290 -260
  113. package/test/setupAfterEnv.js +13 -0
  114. package/test/setupTests.js +4 -0
  115. package/src/system/Timeline/index.js +0 -40
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports.SearchSelect = exports.DropdownIndicator = exports.Option = exports.selectStyles = void 0;
4
+ exports.SearchSelect = exports.DropdownIndicator = exports.Option = void 0;
5
5
 
6
6
  var _md = require("react-icons/md");
7
7
 
@@ -23,51 +23,9 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
23
23
 
24
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
25
 
26
- 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; }
27
-
28
26
  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); }
29
27
 
30
- var selectStyles = {
31
- control: function control(provided) {
32
- return _extends({}, provided, {
33
- border: "1px solid " + _.theme.colors.border,
34
- margin: 0,
35
- padding: 0,
36
- boxShadow: 'none',
37
- fontSize: _.theme.fontSizes[2]
38
- });
39
- },
40
- option: function option(provided) {
41
- return _extends({}, provided, {
42
- paddingTop: _.theme.space[1],
43
- paddingBottom: _.theme.space[1],
44
- paddingLeft: _.theme.space[2]
45
- });
46
- },
47
- menu: function menu(provided) {
48
- return _extends({}, provided, {
49
- boxShadow: _.theme.shadows.low
50
- });
51
- },
52
- indicatorSeparator: function indicatorSeparator() {
53
- return {
54
- display: 'none'
55
- };
56
- },
57
- valueContainer: function valueContainer(provided) {
58
- return _extends({}, provided, {
59
- paddingLeft: _.theme.space[1],
60
- paddingRight: _.theme.space[1]
61
- });
62
- },
63
- singleValue: function singleValue(provided) {
64
- return _extends({}, provided, {
65
- paddingLeft: _.theme.space[1],
66
- paddingRight: _.theme.space[1]
67
- });
68
- }
69
- };
70
- exports.selectStyles = selectStyles;
28
+ 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; }
71
29
 
72
30
  var Option = function Option(_ref) {
73
31
  var label = _ref.label,
@@ -84,7 +42,7 @@ var Option = function Option(_ref) {
84
42
  sx: {
85
43
  mb: 0,
86
44
  mr: 2,
87
- color: 'green.60',
45
+ color: 'green.80',
88
46
  svg: {
89
47
  display: 'block'
90
48
  }
@@ -142,22 +100,44 @@ ClearIndicator.propTypes = {
142
100
 
143
101
  var SearchSelect = function SearchSelect(props) {
144
102
  return (0, _jsxRuntime.jsx)(_reactSelect["default"], _extends({}, props, {
103
+ classNamePrefix: 'select',
145
104
  components: {
146
105
  Option: Option,
147
106
  DropdownIndicator: DropdownIndicator,
148
107
  ClearIndicator: ClearIndicator
149
108
  },
150
- styles: selectStyles,
151
- theme: function theme(_theme) {
152
- return _extends({}, _theme, {
153
- colors: _extends({}, _theme.colors, {
154
- primary25: _.theme.colors.hover,
155
- primary50: _.theme.colors.brand['7'],
156
- primary: _.theme.colors.heading,
157
- dangerLight: _.theme.colors.red['10'],
158
- danger: _.theme.colors.red['70']
159
- })
160
- });
109
+ sx: {
110
+ '.select__control': {
111
+ background: 'none',
112
+ color: 'heading',
113
+ border: '1px solid',
114
+ borderColor: 'border',
115
+ margin: 0,
116
+ padding: 0,
117
+ boxShadow: 'none',
118
+ fontSize: 2
119
+ },
120
+ '.select__single-value': {
121
+ color: 'heading',
122
+ px: 1
123
+ },
124
+ '.select__menu': {
125
+ bg: 'dialog',
126
+ boxShadow: 'medium'
127
+ },
128
+ '.react-select__option': {
129
+ color: 'text',
130
+ paddingTop: 1,
131
+ paddingBottom: 1,
132
+ paddingLeft: 2,
133
+ bg: 'hover',
134
+ '&:hover': {
135
+ bg: 'hover'
136
+ }
137
+ },
138
+ '.select__option--is-focused': {
139
+ bg: 'hover'
140
+ }
161
141
  }
162
142
  }));
163
143
  };
@@ -45,9 +45,9 @@ var Select = function Select(_ref) {
45
45
 
46
46
  exports.Select = Select;
47
47
  Select.propTypes = {
48
- isMulti: _propTypes["default"].bool,
49
48
  isInline: _propTypes["default"].bool,
49
+ isMulti: _propTypes["default"].bool,
50
50
  isSearch: _propTypes["default"].bool,
51
- options: _propTypes["default"].array,
52
- label: _propTypes["default"].string
51
+ label: _propTypes["default"].string,
52
+ options: _propTypes["default"].array
53
53
  };
@@ -30,7 +30,7 @@ var Textarea = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
30
30
 
31
31
  return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
32
32
  children: [label && (0, _jsxRuntime.jsxs)(_.Label, {
33
- "for": forLabel,
33
+ htmlFor: forLabel,
34
34
  children: [label, required && '*']
35
35
  }), (0, _jsxRuntime.jsx)("textarea", _extends({}, props, {
36
36
  ref: ref,
@@ -69,4 +69,5 @@ Textarea.propTypes = {
69
69
  required: _propTypes["default"].bool,
70
70
  forLabel: _propTypes["default"].string,
71
71
  errorMessage: _propTypes["default"].string
72
- };
72
+ };
73
+ Textarea.displayName = 'Textarea';
@@ -82,7 +82,7 @@ var CheckBox = function CheckBox(props) {
82
82
  margin: 0,
83
83
  display: 'block',
84
84
  '&:checked + label': {
85
- backgroundColor: 'green.50',
85
+ backgroundColor: 'success',
86
86
  '&::after': {
87
87
  content: "''",
88
88
  display: 'block',
@@ -3,14 +3,10 @@
3
3
  exports.__esModule = true;
4
4
  exports.ToggleGroup = void 0;
5
5
 
6
- var _react = _interopRequireDefault(require("react"));
7
-
8
6
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
7
 
10
8
  var RadioGroupPrimitive = _interopRequireWildcard(require("@radix-ui/react-radio-group"));
11
9
 
12
- var _md = require("react-icons/md");
13
-
14
10
  var _jsxRuntime = require("theme-ui/jsx-runtime");
15
11
 
16
12
  var _excluded = ["onChange", "groupLabel", "value", "options"];
@@ -56,7 +56,8 @@ var ToggleRow = function ToggleRow(_ref) {
56
56
  width: 32,
57
57
  sx: {
58
58
  display: 'block'
59
- }
59
+ },
60
+ alt: "Icon representing a toggle"
60
61
  })
61
62
  })
62
63
  }), (0, _jsxRuntime.jsxs)(_.Box, {
@@ -95,10 +96,10 @@ var ToggleRow = function ToggleRow(_ref) {
95
96
 
96
97
  exports.ToggleRow = ToggleRow;
97
98
  ToggleRow.propTypes = {
98
- image: _propTypes["default"].string,
99
+ image: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string]),
99
100
  badge: _propTypes["default"].string,
100
- title: _propTypes["default"].string,
101
- subTitle: _propTypes["default"].string,
101
+ title: _propTypes["default"].node,
102
+ subTitle: _propTypes["default"].node,
102
103
  body: _propTypes["default"].node,
103
104
  meta: _propTypes["default"].node,
104
105
  sx: _propTypes["default"].object
@@ -29,14 +29,14 @@ var Validation = function Validation(_ref) {
29
29
  variant: "h5",
30
30
  as: "p",
31
31
  sx: {
32
- color: isValid ? 'green.50' : 'red.50'
32
+ color: isValid ? 'success' : 'error',
33
+ display: 'flex',
34
+ alignItems: 'center'
33
35
  }
34
36
  }, props, {
35
37
  children: [(0, _jsxRuntime.jsx)(Icon, {
36
38
  sx: {
37
- mr: 1,
38
- position: 'relative',
39
- top: '0.125em'
39
+ mr: 1
40
40
  }
41
41
  }), children]
42
42
  }));
@@ -7,9 +7,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
7
7
 
8
8
  var _md = require("react-icons/md");
9
9
 
10
- var _themeUi = require("theme-ui");
11
-
12
- var _2 = require("../");
10
+ var _ = require("../");
13
11
 
14
12
  var _jsxRuntime = require("theme-ui/jsx-runtime");
15
13
 
@@ -21,97 +19,101 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
21
19
 
22
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; }
23
21
 
24
- var Notice = function Notice(_ref) {
25
- var _ref$variant = _ref.variant,
26
- variant = _ref$variant === void 0 ? 'warning' : _ref$variant,
27
- _ref$inline = _ref.inline,
28
- inline = _ref$inline === void 0 ? false : _ref$inline,
29
- children = _ref.children,
30
- title = _ref.title,
31
- _ref$sx = _ref.sx,
32
- sx = _ref$sx === void 0 ? {} : _ref$sx,
33
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
34
-
35
- var _useColorMode = (0, _themeUi.useColorMode)(),
36
- colorMode = _useColorMode[0],
37
- _ = _useColorMode[1];
38
-
39
- var color = 'yellow';
22
+ var NoticeIcon = function NoticeIcon(_ref) {
23
+ var color = _ref.color,
24
+ variant = _ref.variant;
40
25
  var Icon = _md.MdWarning;
41
26
 
42
27
  switch (variant) {
43
28
  case 'info':
44
- color = 'blue';
45
29
  Icon = _md.MdInfo;
46
30
  break;
47
31
 
48
32
  case 'alert':
49
- color = 'red';
50
33
  Icon = _md.MdError;
51
34
  break;
52
35
 
53
36
  case 'success':
54
- color = 'green';
55
37
  Icon = _md.MdCheckCircle;
56
38
  break;
57
39
  }
58
40
 
59
- var modeColor = {
60
- color: color + ".70",
61
- bg: inline ? 'transparent' : color + ".0"
62
- };
41
+ return (0, _jsxRuntime.jsx)(Icon, {
42
+ sx: {
43
+ marginRight: 2,
44
+ color: color,
45
+ flex: '0 0 auto'
46
+ }
47
+ });
48
+ };
49
+
50
+ NoticeIcon.propTypes = {
51
+ color: _propTypes["default"].string,
52
+ variant: _propTypes["default"].string
53
+ };
63
54
 
64
- if (colorMode === 'dark') {
65
- modeColor = {
66
- color: color + ".40",
67
- bg: undefined
68
- };
69
- }
55
+ var Notice = function Notice(_ref2) {
56
+ var _ref2$variant = _ref2.variant,
57
+ variant = _ref2$variant === void 0 ? 'warning' : _ref2$variant,
58
+ _ref2$inline = _ref2.inline,
59
+ inline = _ref2$inline === void 0 ? false : _ref2$inline,
60
+ children = _ref2.children,
61
+ title = _ref2.title,
62
+ _ref2$sx = _ref2.sx,
63
+ sx = _ref2$sx === void 0 ? {} : _ref2$sx,
64
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded);
70
65
 
71
- var NoticeIcon = function NoticeIcon(_ref2) {
72
- var color = _ref2.color;
73
- return (0, _jsxRuntime.jsx)(Icon, {
74
- sx: {
75
- marginRight: 2,
76
- color: color,
77
- flex: '0 0 auto'
78
- }
79
- });
80
- };
66
+ var color = 'yellow';
67
+
68
+ switch (variant) {
69
+ case 'info':
70
+ color = 'blue';
71
+ break;
72
+
73
+ case 'alert':
74
+ color = 'red';
75
+ break;
76
+
77
+ case 'success':
78
+ color = 'green';
79
+ break;
80
+ }
81
81
 
82
- return (0, _jsxRuntime.jsx)(_2.Card, _extends({
82
+ return (0, _jsxRuntime.jsx)(_.Card, _extends({
83
83
  sx: _extends({
84
84
  boxShadow: 'none',
85
85
  borderRadius: 2,
86
+ bg: inline ? 'transparent' : color + ".10",
86
87
  p: inline ? 0 : 3,
87
- bg: modeColor.bg,
88
+ color: color + ".90",
88
89
  a: {
89
- color: modeColor.color,
90
+ color: color + ".90",
90
91
  textDecoration: 'underline',
91
92
  border: 'none'
92
93
  }
93
94
  }, sx)
94
95
  }, props, {
95
- children: (0, _jsxRuntime.jsxs)(_2.Flex, {
96
+ children: (0, _jsxRuntime.jsxs)(_.Flex, {
96
97
  sx: {
97
98
  alignItems: 'center'
98
99
  },
99
- children: [(0, _jsxRuntime.jsx)(_2.Flex, {
100
+ children: [(0, _jsxRuntime.jsx)(_.Flex, {
100
101
  sx: {
101
102
  alignItems: 'center'
102
103
  },
103
104
  children: (0, _jsxRuntime.jsx)(NoticeIcon, {
104
- color: modeColor.color
105
+ color: color + ".100",
106
+ variant: variant
105
107
  })
106
- }), (0, _jsxRuntime.jsxs)(_2.Box, {
108
+ }), (0, _jsxRuntime.jsxs)(_.Box, {
107
109
  sx: {
108
110
  ml: 23
109
111
  },
110
- children: [title && (0, _jsxRuntime.jsx)(_2.Heading, {
112
+ children: [title && (0, _jsxRuntime.jsx)(_.Heading, {
111
113
  variant: "h4",
112
114
  as: "p",
113
115
  sx: {
114
- color: modeColor.color,
116
+ color: color + ".100",
115
117
  mb: 0
116
118
  },
117
119
  children: title
@@ -123,8 +125,10 @@ var Notice = function Notice(_ref) {
123
125
 
124
126
  exports.Notice = Notice;
125
127
  Notice.propTypes = {
126
- variant: _propTypes["default"].string,
127
- title: _propTypes["default"].string,
128
+ children: _propTypes["default"].node,
129
+ color: _propTypes["default"].string,
128
130
  inline: _propTypes["default"].bool,
129
- children: _propTypes["default"].node
131
+ sx: _propTypes["default"].object,
132
+ title: _propTypes["default"].node,
133
+ variant: _propTypes["default"].string
130
134
  };
@@ -51,12 +51,12 @@ var Notification = function Notification(_ref) {
51
51
  },
52
52
  children: [status === 'error' ? (0, _jsxRuntime.jsx)(_md.MdError, {
53
53
  sx: {
54
- color: 'red.50',
54
+ color: 'error',
55
55
  flex: '0 0 auto'
56
56
  }
57
57
  }) : (0, _jsxRuntime.jsx)(_md.MdCheckCircle, {
58
58
  sx: {
59
- color: 'green.50',
59
+ color: 'success',
60
60
  flex: '0 0 auto'
61
61
  }
62
62
  }), (0, _jsxRuntime.jsxs)(_.Box, {
@@ -84,7 +84,7 @@ var Notification = function Notification(_ref) {
84
84
 
85
85
  exports.Notification = Notification;
86
86
  Notification.propTypes = {
87
- title: _propTypes["default"].string,
87
+ title: _propTypes["default"].node,
88
88
  body: _propTypes["default"].node,
89
89
  status: _propTypes["default"].string,
90
90
  onClose: _propTypes["default"].func
@@ -42,7 +42,8 @@ var OptionRow = function OptionRow(_ref) {
42
42
  border: '1px solid',
43
43
  borderColor: 'border',
44
44
  background: 'none',
45
- boxShadow: 'none'
45
+ boxShadow: 'none',
46
+ color: 'grey.70'
46
47
  } : {};
47
48
  var inlineStyles = inline ? {
48
49
  py: 2,
@@ -69,22 +70,22 @@ var OptionRow = function OptionRow(_ref) {
69
70
  }
70
71
  }, inlineStyles),
71
72
  children: [(0, _jsxRuntime.jsx)(_.Box, {
72
- children: image ? (0, _jsxRuntime.jsx)(_.Card, {
73
+ children: image ? (0, _jsxRuntime.jsx)(_.Box, {
73
74
  sx: _extends({
74
75
  display: ['inline-block', 'inline-block', 'block'],
75
- p: small ? 3 : 24,
76
- boxShadow: 'low',
76
+ p: small ? 12 : 20,
77
77
  flex: '0 0 auto',
78
- svg: {
79
- display: 'block'
80
- }
78
+ bg: 'brand.70',
79
+ color: 'brand.10',
80
+ borderRadius: 1
81
81
  }, mergedCard),
82
82
  children: /*#__PURE__*/_react["default"].isValidElement(image) ? image : (0, _jsxRuntime.jsx)("img", {
83
83
  src: image,
84
84
  width: small ? 32 : 48,
85
85
  sx: {
86
86
  display: 'block'
87
- }
87
+ },
88
+ alt: "Image representing the list item"
88
89
  })
89
90
  }) : icon && icon
90
91
  }), (0, _jsxRuntime.jsxs)(_.Box, {
@@ -124,12 +125,12 @@ var OptionRow = function OptionRow(_ref) {
124
125
 
125
126
  exports.OptionRow = OptionRow;
126
127
  OptionRow.propTypes = {
127
- image: _propTypes["default"].node,
128
+ image: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].string]),
128
129
  icon: _propTypes["default"].node,
129
130
  badge: _propTypes["default"].string,
130
131
  label: _propTypes["default"].node,
131
132
  inline: _propTypes["default"].bool,
132
- subTitle: _propTypes["default"].string,
133
+ subTitle: _propTypes["default"].node,
133
134
  body: _propTypes["default"].node,
134
135
  meta: _propTypes["default"].node,
135
136
  to: _propTypes["default"].string,
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.ResourceItem = void 0;
5
+
6
+ var _propTypes = _interopRequireDefault(require("prop-types"));
7
+
8
+ var _ = require("..");
9
+
10
+ var _jsxRuntime = require("theme-ui/jsx-runtime");
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+
14
+ /** @jsxImportSource theme-ui */
15
+
16
+ /**
17
+ * External dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+ var ResourceItem = function ResourceItem(_ref) {
24
+ var children = _ref.children,
25
+ item = _ref.item,
26
+ renderActions = _ref.renderActions,
27
+ _ref$relativeTime = _ref.relativeTime,
28
+ relativeTime = _ref$relativeTime === void 0 ? false : _ref$relativeTime,
29
+ _ref$timeOnly = _ref.timeOnly,
30
+ timeOnly = _ref$timeOnly === void 0 ? false : _ref$timeOnly,
31
+ dateKey = _ref.dateKey,
32
+ _ref$icon = _ref.icon,
33
+ icon = _ref$icon === void 0 ? null : _ref$icon;
34
+ return (0, _jsxRuntime.jsxs)(_.Flex, {
35
+ sx: {
36
+ alignItems: 'center',
37
+ gap: 3
38
+ },
39
+ children: [icon, (0, _jsxRuntime.jsx)(_.Box, {
40
+ sx: {
41
+ flex: '1 1 auto'
42
+ },
43
+ children: children
44
+ }), (0, _jsxRuntime.jsxs)(_.Flex, {
45
+ sx: {
46
+ flex: '0 0 auto',
47
+ alignItems: 'center',
48
+ gap: 3
49
+ },
50
+ children: [(0, _jsxRuntime.jsx)(_.Time, {
51
+ className: "time",
52
+ relativeTime: relativeTime,
53
+ timeOnly: timeOnly,
54
+ time: item[dateKey],
55
+ sx: {
56
+ color: 'muted',
57
+ mb: 0,
58
+ textAlign: 'right',
59
+ flex: '0 0 auto'
60
+ }
61
+ }), renderActions && (0, _jsxRuntime.jsxs)(_.Flex, {
62
+ className: "actions",
63
+ sx: {
64
+ alignItems: 'center',
65
+ gap: 3
66
+ },
67
+ children: [(0, _jsxRuntime.jsx)(_.Box, {
68
+ sx: {
69
+ width: 4,
70
+ height: 4,
71
+ borderRadius: 4,
72
+ bg: 'border'
73
+ }
74
+ }), renderActions(item)]
75
+ })]
76
+ })]
77
+ });
78
+ };
79
+
80
+ exports.ResourceItem = ResourceItem;
81
+ ResourceItem.propTypes = {
82
+ children: _propTypes["default"].node,
83
+ item: _propTypes["default"].object,
84
+ icon: _propTypes["default"].node,
85
+ relativeTime: _propTypes["default"].bool,
86
+ timeOnly: _propTypes["default"].bool,
87
+ dateKey: _propTypes["default"].string,
88
+ renderActions: _propTypes["default"].func
89
+ };