@automattic/vip-design-system 0.27.10 → 0.27.12

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 (141) hide show
  1. package/.storybook/decorators/withColorMode.jsx +2 -1
  2. package/build/system/Accordion/Accordion.js +22 -25
  3. package/build/system/Badge/Badge.js +15 -3
  4. package/build/system/Badge/Badge.stories.js +78 -4
  5. package/build/system/Button/Button.js +26 -7
  6. package/build/system/Button/Button.stories.js +86 -13
  7. package/build/system/Button/Button.test.js +53 -7
  8. package/build/system/Code/Code.js +5 -6
  9. package/build/system/Dialog/DialogButton.js +2 -2
  10. package/build/system/Form/Checkbox.js +10 -14
  11. package/build/system/Form/Checkbox.stories.js +2 -2
  12. package/build/system/Form/InlineSelect.js +9 -6
  13. package/build/system/Form/Input.js +9 -25
  14. package/build/system/Form/Input.styles.js +47 -0
  15. package/build/system/Form/Label.js +12 -7
  16. package/build/system/Form/Radio.js +10 -8
  17. package/build/system/Form/Radio.stories.js +5 -5
  18. package/build/system/Form/RadioBoxGroup.js +1 -1
  19. package/build/system/Form/RequiredLabel.js +1 -5
  20. package/build/system/Form/SearchSelect.js +10 -7
  21. package/build/system/Form/Toggle.stories.js +6 -0
  22. package/build/system/Form/ToggleGroup.js +1 -1
  23. package/build/system/Form/Validation.js +3 -4
  24. package/build/system/Link/Link.js +2 -1
  25. package/build/system/NewDialog/DialogClose.js +6 -7
  26. package/build/system/NewForm/Fieldset.js +56 -0
  27. package/build/system/NewForm/FormAutocomplete.js +25 -23
  28. package/build/system/NewForm/FormSelect.js +7 -21
  29. package/build/system/NewForm/FormSelectArrow.js +14 -5
  30. package/build/system/NewForm/FormSelectContent.js +1 -4
  31. package/build/system/NewForm/FormSelectInline.js +24 -9
  32. package/build/system/NewForm/FormSelectLoading.js +10 -1
  33. package/build/system/NewForm/FormSelectSearch.js +2 -2
  34. package/build/system/NewForm/Legend.js +50 -0
  35. package/build/system/NewForm/index.js +8 -0
  36. package/build/system/NewTabs/TabsList.js +1 -1
  37. package/build/system/NewTabs/TabsTrigger.js +7 -8
  38. package/build/system/Notice/Notice.js +27 -35
  39. package/build/system/Notice/Notice.stories.js +16 -1
  40. package/build/system/OptionRow/OptionRow.js +12 -14
  41. package/build/system/OptionRow/OptionRow.stories.js +15 -14
  42. package/build/system/ResourceList/ResourceList.js +35 -26
  43. package/build/system/ResourceList/ResourceList.stories.js +2 -0
  44. package/build/system/Spinner/Spinner.js +1 -1
  45. package/build/system/Table/Table.js +2 -3
  46. package/build/system/Table/Table.stories.js +4 -38
  47. package/build/system/Table/TableCell.js +4 -2
  48. package/build/system/Text/Text.js +2 -1
  49. package/build/system/Text/Text.stories.js +46 -2
  50. package/build/system/Time/Time.stories.js +1 -1
  51. package/build/system/Timeline/Timeline.stories.js +1 -1
  52. package/build/system/Wizard/Wizard.js +1 -1
  53. package/build/system/Wizard/WizardStep.js +2 -2
  54. package/build/system/theme/colors.js +14 -220
  55. package/build/system/theme/generated/valet-theme.json +668 -236
  56. package/build/system/theme/getColor.js +23 -4
  57. package/build/system/theme/index.js +138 -79
  58. package/package.json +2 -2
  59. package/src/system/Accordion/Accordion.js +5 -5
  60. package/src/system/Badge/Badge.js +14 -2
  61. package/src/system/Badge/Badge.stories.jsx +33 -1
  62. package/src/system/Button/Button.js +46 -28
  63. package/src/system/Button/Button.stories.jsx +56 -4
  64. package/src/system/Button/Button.test.js +30 -3
  65. package/src/system/Code/Code.js +5 -6
  66. package/src/system/Dialog/DialogButton.js +2 -2
  67. package/src/system/Form/Checkbox.js +7 -7
  68. package/src/system/Form/Checkbox.stories.jsx +3 -3
  69. package/src/system/Form/InlineSelect.js +9 -6
  70. package/src/system/Form/Input.js +3 -16
  71. package/src/system/Form/Input.styles.js +32 -0
  72. package/src/system/Form/Label.js +9 -4
  73. package/src/system/Form/Radio.js +9 -8
  74. package/src/system/Form/Radio.stories.jsx +10 -8
  75. package/src/system/Form/RadioBoxGroup.js +1 -1
  76. package/src/system/Form/RequiredLabel.js +3 -5
  77. package/src/system/Form/SearchSelect.js +10 -7
  78. package/src/system/Form/Toggle.stories.jsx +7 -0
  79. package/src/system/Form/ToggleGroup.js +1 -1
  80. package/src/system/Form/Validation.js +3 -4
  81. package/src/system/Link/Link.js +2 -1
  82. package/src/system/NewDialog/DialogClose.js +3 -3
  83. package/src/system/NewForm/Fieldset.js +47 -0
  84. package/src/system/NewForm/FormAutocomplete.js +17 -15
  85. package/src/system/NewForm/FormSelect.js +2 -10
  86. package/src/system/NewForm/FormSelectArrow.js +12 -4
  87. package/src/system/NewForm/FormSelectContent.js +0 -1
  88. package/src/system/NewForm/FormSelectInline.js +16 -6
  89. package/src/system/NewForm/FormSelectLoading.js +8 -0
  90. package/src/system/NewForm/FormSelectSearch.js +2 -2
  91. package/src/system/NewForm/Legend.js +41 -0
  92. package/src/system/NewForm/index.js +3 -1
  93. package/src/system/NewTabs/Tabs.stories.jsx +1 -1
  94. package/src/system/NewTabs/TabsList.js +1 -1
  95. package/src/system/NewTabs/TabsTrigger.js +7 -6
  96. package/src/system/Notice/Notice.js +22 -27
  97. package/src/system/Notice/Notice.stories.jsx +8 -1
  98. package/src/system/OptionRow/OptionRow.js +10 -14
  99. package/src/system/OptionRow/OptionRow.stories.jsx +9 -19
  100. package/src/system/Spinner/Spinner.js +1 -1
  101. package/src/system/Table/Table.js +1 -3
  102. package/src/system/Table/Table.stories.jsx +7 -29
  103. package/src/system/Table/TableCell.js +6 -2
  104. package/src/system/Text/Text.js +1 -0
  105. package/src/system/Text/Text.stories.jsx +27 -6
  106. package/src/system/Time/Time.stories.jsx +1 -1
  107. package/src/system/Timeline/Timeline.stories.jsx +1 -1
  108. package/src/system/Wizard/Wizard.js +1 -1
  109. package/src/system/Wizard/WizardStep.js +2 -2
  110. package/src/system/theme/colors.js +7 -229
  111. package/src/system/theme/generated/valet-theme.json +668 -236
  112. package/src/system/theme/getColor.js +23 -3
  113. package/src/system/theme/index.js +181 -78
  114. package/tokens/valet-core/$metadata.json +18 -0
  115. package/tokens/valet-core/$themes.json +1056 -0
  116. package/tokens/valet-core/figma-parsely-expressive-type.json +1217 -0
  117. package/tokens/valet-core/figma-valet-expressive-type.json +1217 -0
  118. package/tokens/valet-core/figma-wpvip-expressive-type.json +1213 -0
  119. package/tokens/valet-core/parsely-expressive-color.json +729 -0
  120. package/tokens/valet-core/parsely-expressive-core.json +122 -0
  121. package/tokens/valet-core/parsely-expressive-type.json +350 -0
  122. package/tokens/valet-core/valet-core.json +1980 -0
  123. package/tokens/valet-core/valet-expressive-color.json +677 -0
  124. package/tokens/valet-core/valet-expressive-core.json +122 -0
  125. package/tokens/valet-core/wpvip-expressive-color-dark.json +735 -0
  126. package/tokens/valet-core/wpvip-expressive-color.json +730 -0
  127. package/tokens/valet-core/wpvip-expressive-core.json +122 -0
  128. package/tokens/valet-core/wpvip-expressive-type.json +400 -0
  129. package/tokens/valet-core/wpvip-productive-color.json +883 -0
  130. package/.idea/GitLink.xml +0 -6
  131. package/.idea/codeStyles/Project.xml +0 -69
  132. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  133. package/.idea/dbnavigator.xml +0 -467
  134. package/.idea/git_toolbox_prj.xml +0 -15
  135. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  136. package/.idea/jsLinters/eslint.xml +0 -6
  137. package/.idea/misc.xml +0 -6
  138. package/.idea/modules.xml +0 -8
  139. package/.idea/vcs.xml +0 -6
  140. package/.idea/vip-design-system.iml +0 -9
  141. package/tokens/valet-core.json +0 -6558
@@ -1,9 +1,10 @@
1
1
  import React, { useEffect } from 'react';
2
2
  import { makeDecorator } from '@storybook/addons';
3
3
  import { useColorMode } from 'theme-ui';
4
+ import { getColor } from '../../src/system/theme/getColor';
4
5
 
5
6
  // These need to be updated to import VIP design tokens;
6
- const lightBackground = '#ffffff';
7
+ const lightBackground = getColor( 'background', 'primary' );
7
8
  const darkBackground = '#1C1C1B';
8
9
 
9
10
  export const backgrounds = {
@@ -60,7 +60,7 @@ var Item = function Item(_ref) {
60
60
  overflow: 'hidden',
61
61
  borderWidth: '0 1px 1px 1px',
62
62
  borderStyle: 'solid',
63
- borderColor: 'border',
63
+ borderColor: 'borders.2',
64
64
  '&:first-of-type': {
65
65
  borderTopWidth: '1px',
66
66
  borderTopLeftRadius: 4,
@@ -111,7 +111,6 @@ var Trigger = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, forward
111
111
  justifyContent: 'space-between',
112
112
  fontSize: 1,
113
113
  fontWeight: 600,
114
- textTransform: 'uppercase',
115
114
  '&[data-state="closed"]': {
116
115
  backgroundColor: function backgroundColor(_ref3) {
117
116
  var accordion = _ref3.accordion;
@@ -123,17 +122,15 @@ var Trigger = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, forward
123
122
  var accordion = _ref4.accordion;
124
123
  return accordion.background.open;
125
124
  },
126
- borderBottom: function borderBottom(_ref5) {
127
- var colors = _ref5.colors;
128
- return "1px solid " + colors.border;
129
- },
125
+ borderBottom: '1px solid',
126
+ borderBottomColor: 'borders.2',
130
127
  '.vip-accordion-trigger-indicator': {
131
128
  transform: 'rotate(270deg)'
132
129
  }
133
130
  },
134
131
  '&:hover': {
135
- backgroundColor: function backgroundColor(_ref6) {
136
- var accordion = _ref6.accordion;
132
+ backgroundColor: function backgroundColor(_ref5) {
133
+ var accordion = _ref5.accordion;
137
134
  return accordion.background.hover;
138
135
  }
139
136
  }
@@ -144,7 +141,7 @@ var Trigger = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, forward
144
141
  className: "vip-accordion-trigger-indicator",
145
142
  sx: {
146
143
  fontSize: 3,
147
- color: 'text',
144
+ color: 'icon.primary',
148
145
  transform: 'rotate(90deg)',
149
146
  transition: 'transform 300ms cubic-bezier(0.87, 0, 0.13, 1)'
150
147
  },
@@ -162,15 +159,15 @@ Trigger.propTypes = {
162
159
  sx: _propTypes["default"].object
163
160
  };
164
161
 
165
- var TriggerWithIcon = /*#__PURE__*/_react["default"].forwardRef(function (_ref7, forwardedRef) {
166
- var children = _ref7.children,
167
- icon = _ref7.icon,
168
- props = (0, _objectWithoutPropertiesLoose2["default"])(_ref7, _excluded3);
162
+ var TriggerWithIcon = /*#__PURE__*/_react["default"].forwardRef(function (_ref6, forwardedRef) {
163
+ var children = _ref6.children,
164
+ icon = _ref6.icon,
165
+ props = (0, _objectWithoutPropertiesLoose2["default"])(_ref6, _excluded3);
169
166
  return (0, _jsxRuntime.jsxs)(Trigger, (0, _extends2["default"])({}, props, {
170
167
  ref: forwardedRef,
171
168
  children: [(0, _jsxRuntime.jsx)("span", {
172
169
  sx: {
173
- color: 'text',
170
+ color: 'icon.primary',
174
171
  fontSize: 3
175
172
  },
176
173
  children: icon
@@ -193,11 +190,11 @@ TriggerWithIcon.propTypes = {
193
190
  icon: _propTypes["default"].node.isRequired
194
191
  };
195
192
 
196
- var Content = /*#__PURE__*/_react["default"].forwardRef(function (_ref8, forwardedRef) {
197
- var children = _ref8.children,
198
- _ref8$sx = _ref8.sx,
199
- sx = _ref8$sx === void 0 ? {} : _ref8$sx,
200
- props = (0, _objectWithoutPropertiesLoose2["default"])(_ref8, _excluded4);
193
+ var Content = /*#__PURE__*/_react["default"].forwardRef(function (_ref7, forwardedRef) {
194
+ var children = _ref7.children,
195
+ _ref7$sx = _ref7.sx,
196
+ sx = _ref7$sx === void 0 ? {} : _ref7$sx,
197
+ props = (0, _objectWithoutPropertiesLoose2["default"])(_ref7, _excluded4);
201
198
  return (0, _jsxRuntime.jsx)(AccordionPrimitive.Content, (0, _extends2["default"])({
202
199
  sx: (0, _extends2["default"])({
203
200
  backgroundColor: 'transparent',
@@ -226,12 +223,12 @@ Content.propTypes = {
226
223
  sx: _propTypes["default"].object
227
224
  };
228
225
 
229
- var Root = /*#__PURE__*/_react["default"].forwardRef(function (_ref9, forwardRef) {
230
- var _ref9$sx = _ref9.sx,
231
- sx = _ref9$sx === void 0 ? {} : _ref9$sx,
232
- children = _ref9.children,
233
- className = _ref9.className,
234
- props = (0, _objectWithoutPropertiesLoose2["default"])(_ref9, _excluded5);
226
+ var Root = /*#__PURE__*/_react["default"].forwardRef(function (_ref8, forwardRef) {
227
+ var _ref8$sx = _ref8.sx,
228
+ sx = _ref8$sx === void 0 ? {} : _ref8$sx,
229
+ children = _ref8.children,
230
+ className = _ref8.className,
231
+ props = (0, _objectWithoutPropertiesLoose2["default"])(_ref8, _excluded5);
235
232
  return (0, _jsxRuntime.jsx)(AccordionPrimitive.Root, (0, _extends2["default"])({
236
233
  className: (0, _classnames["default"])('vip-accordion-component', className),
237
234
  collapsible: true,
@@ -33,14 +33,26 @@ var Badge = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef
33
33
  sx: (0, _extends2["default"])({
34
34
  fontSize: 0,
35
35
  padding: 0,
36
- bg: variant + ".20",
37
- color: variant + ".100",
36
+ bg: "tag." + variant + ".background",
37
+ color: "tag." + variant + ".text",
38
38
  py: 1,
39
39
  verticalAlign: 'middle',
40
40
  px: 2,
41
41
  display: 'inline-block',
42
42
  borderRadius: 1,
43
- fontWeight: 'heading'
43
+ fontWeight: 'heading',
44
+ '&:hover, &:focus': {
45
+ backgroundColor: "tag." + variant + ".hover"
46
+ },
47
+ a: {
48
+ color: "tag." + variant + ".text",
49
+ '&:hover, &:focus, &:active': {
50
+ textDecoration: 'none'
51
+ },
52
+ '&:active': {
53
+ color: variant + ".active"
54
+ }
55
+ }
44
56
  }, sx),
45
57
  className: (0, _classnames["default"])('vip-badge-component', className),
46
58
  ref: forwardRef
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  exports.__esModule = true;
4
- exports["default"] = exports.Default = void 0;
6
+ exports["default"] = exports.WithLinks = exports.Default = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
9
 
6
10
  var _ = require("..");
7
11
 
@@ -16,10 +20,80 @@ var _default = {
16
20
  };
17
21
  exports["default"] = _default;
18
22
 
23
+ var Template = function Template(props) {
24
+ return (0, _jsxRuntime.jsx)(_.Badge, (0, _extends2["default"])({}, props, {
25
+ sx: {
26
+ m: 2
27
+ }
28
+ }));
29
+ };
30
+
31
+ var TemplateLink = function TemplateLink(props) {
32
+ return (0, _jsxRuntime.jsx)(Template, (0, _extends2["default"])({}, props, {
33
+ sx: {
34
+ m: 2
35
+ },
36
+ children: (0, _jsxRuntime.jsx)("a", {
37
+ href: "http://google.com",
38
+ children: "Google.com"
39
+ })
40
+ }));
41
+ };
42
+
19
43
  var Default = function Default() {
20
- return (0, _jsxRuntime.jsx)(_.Badge, {
21
- children: "Badge"
44
+ return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
45
+ children: [(0, _jsxRuntime.jsx)(Template, {
46
+ children: "Badge"
47
+ }), (0, _jsxRuntime.jsx)(Template, {
48
+ variant: "red",
49
+ children: "Badge"
50
+ }), (0, _jsxRuntime.jsx)(Template, {
51
+ variant: "yellow",
52
+ children: "Badge"
53
+ }), (0, _jsxRuntime.jsx)(Template, {
54
+ variant: "green",
55
+ children: "Badge"
56
+ }), (0, _jsxRuntime.jsx)(Template, {
57
+ variant: "gray",
58
+ children: "Badge"
59
+ }), (0, _jsxRuntime.jsx)(Template, {
60
+ variant: "orange",
61
+ children: "Badge"
62
+ }), (0, _jsxRuntime.jsx)(Template, {
63
+ variant: "gold",
64
+ children: "Badge"
65
+ }), (0, _jsxRuntime.jsx)(Template, {
66
+ variant: "pink",
67
+ children: "Badge"
68
+ }), (0, _jsxRuntime.jsx)(Template, {
69
+ variant: "salmon",
70
+ children: "Badge"
71
+ })]
72
+ });
73
+ };
74
+
75
+ exports.Default = Default;
76
+
77
+ var WithLinks = function WithLinks() {
78
+ return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
79
+ children: [(0, _jsxRuntime.jsx)(TemplateLink, {}), (0, _jsxRuntime.jsx)(TemplateLink, {
80
+ variant: "red"
81
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
82
+ variant: "yellow"
83
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
84
+ variant: "green"
85
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
86
+ variant: "gray"
87
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
88
+ variant: "orange"
89
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
90
+ variant: "gold"
91
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
92
+ variant: "pink"
93
+ }), (0, _jsxRuntime.jsx)(TemplateLink, {
94
+ variant: "salmon"
95
+ })]
22
96
  });
23
97
  };
24
98
 
25
- exports.Default = Default;
99
+ exports.WithLinks = WithLinks;
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
 
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
 
12
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
@@ -19,11 +19,26 @@ var _themeUi = require("theme-ui");
19
19
 
20
20
  var _jsxRuntime = require("theme-ui/jsx-runtime");
21
21
 
22
- var _excluded = ["sx"];
22
+ var _excluded = ["disabled", "onClick", "sx"];
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ 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; }
23
27
 
24
28
  var Button = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef) {
25
- var sx = _ref.sx,
29
+ var disabled = _ref.disabled,
30
+ onClick = _ref.onClick,
31
+ sx = _ref.sx,
26
32
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
33
+ var handleOnClick = (0, _react.useCallback)(function (event) {
34
+ if (disabled) {
35
+ return event.preventDefault();
36
+ }
37
+
38
+ if (onClick) {
39
+ return onClick(event);
40
+ }
41
+ }, [disabled, onClick]);
27
42
  return (0, _jsxRuntime.jsx)(_themeUi.Button, (0, _extends2["default"])({
28
43
  sx: (0, _extends2["default"])({
29
44
  verticalAlign: 'middle',
@@ -42,13 +57,15 @@ var Button = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRe
42
57
  '&:focus-visible': function focusVisible(theme) {
43
58
  return theme.outline;
44
59
  },
45
- '&:disabled': {
60
+ '&[aria-disabled="true"]': {
46
61
  opacity: 0.7,
47
62
  cursor: 'not-allowed',
48
63
  pointerEvents: 'all'
49
64
  }
50
65
  }, sx),
51
- className: (0, _classnames["default"])('vip-button-component', props.className)
66
+ "aria-disabled": disabled,
67
+ className: (0, _classnames["default"])('vip-button-component', props.className),
68
+ onClick: handleOnClick
52
69
  }, props, {
53
70
  ref: forwardRef
54
71
  }));
@@ -57,6 +74,8 @@ var Button = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRe
57
74
  exports.Button = Button;
58
75
  Button.displayName = 'Button';
59
76
  Button.propTypes = {
60
- sx: _propTypes["default"].object,
61
- className: _propTypes["default"].any
77
+ className: _propTypes["default"].any,
78
+ disabled: _propTypes["default"].bool,
79
+ onClick: _propTypes["default"].func,
80
+ sx: _propTypes["default"].object
62
81
  };
@@ -3,10 +3,16 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports["default"] = exports.Default = void 0;
6
+ exports["default"] = exports.WithOnClick = exports.Link = exports.Default = void 0;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
12
+ var _bi = require("react-icons/bi");
13
+
14
+ var _ScreenReaderText = _interopRequireDefault(require("../ScreenReaderText"));
15
+
10
16
  var _ = require("..");
11
17
 
12
18
  var _jsxRuntime = require("theme-ui/jsx-runtime");
@@ -20,33 +26,100 @@ var _jsxRuntime = require("theme-ui/jsx-runtime");
20
26
  */
21
27
  var _default = {
22
28
  title: 'Button',
23
- component: _.Button
29
+ component: _.Button,
30
+ argTypes: {
31
+ children: {},
32
+ disabled: {
33
+ control: {
34
+ type: 'boolean'
35
+ }
36
+ },
37
+ variant: {
38
+ type: 'select',
39
+ options: ['primary', 'secondary', 'text', 'icon', 'tertiary', 'ghost', 'danger', 'display']
40
+ }
41
+ }
24
42
  };
25
43
  exports["default"] = _default;
26
44
 
27
- var Default = function Default() {
45
+ var Template = function Template(args) {
28
46
  return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
29
- children: [(0, _jsxRuntime.jsx)(_.Button, {
30
- sx: {
31
- mr: 2
32
- },
47
+ children: [(0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({}, args, {
33
48
  children: "Primary"
34
- }), (0, _jsxRuntime.jsx)(_.Button, {
49
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
35
50
  variant: "secondary",
36
51
  sx: {
37
52
  ml: 2
38
- },
53
+ }
54
+ }, args, {
39
55
  children: "Secondary"
40
- }), (0, _jsxRuntime.jsx)(_.Button, {
56
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
57
+ variant: "tertiary",
58
+ sx: {
59
+ ml: 2
60
+ }
61
+ }, args, {
62
+ children: "Tertiary"
63
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
64
+ variant: "ghost",
65
+ sx: {
66
+ ml: 2
67
+ }
68
+ }, args, {
69
+ children: "Ghost"
70
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
71
+ variant: "display",
72
+ sx: {
73
+ ml: 2
74
+ }
75
+ }, args, {
76
+ children: "Display"
77
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
78
+ variant: "danger",
79
+ sx: {
80
+ ml: 2
81
+ }
82
+ }, args, {
83
+ children: "Danger"
84
+ })), (0, _jsxRuntime.jsx)(_.Button, (0, _extends2["default"])({
41
85
  variant: "text",
42
86
  sx: {
43
87
  ml: 2
44
88
  },
45
89
  as: "a",
46
- href: "https://google/com",
90
+ href: "https://google/com"
91
+ }, args, {
47
92
  children: "Button link"
48
- })]
93
+ })), (0, _jsxRuntime.jsxs)(_.Button, (0, _extends2["default"])({
94
+ variant: "icon",
95
+ sx: {
96
+ ml: 2
97
+ },
98
+ type: "button"
99
+ }, args, {
100
+ children: [(0, _jsxRuntime.jsx)(_bi.BiCalendarHeart, {
101
+ size: 24
102
+ }), (0, _jsxRuntime.jsx)(_ScreenReaderText["default"], {
103
+ children: "domain.com"
104
+ })]
105
+ }))]
49
106
  });
50
107
  };
51
108
 
52
- exports.Default = Default;
109
+ var Default = Template.bind({});
110
+ exports.Default = Default;
111
+ var Link = Template.bind({});
112
+ exports.Link = Link;
113
+ Link.args = {
114
+ variant: 'text',
115
+ as: 'a',
116
+ href: 'https://www.google.com'
117
+ };
118
+ var WithOnClick = Template.bind({});
119
+ exports.WithOnClick = WithOnClick;
120
+ Link.args = {
121
+ onClick: function onClick() {
122
+ // eslint-disable-next-line no-undef
123
+ alert('Clicked');
124
+ }
125
+ };
@@ -21,33 +21,79 @@ var _jsxRuntime = require("theme-ui/jsx-runtime");
21
21
  /**
22
22
  * Internal dependencies
23
23
  */
24
+ var BUTTON_TEXT = 'Button Text';
24
25
  describe('<Button />', function () {
25
26
  it('renders the Button component', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
26
- var _render, container;
27
+ var onClick, _render, container, component;
27
28
 
28
29
  return _regenerator["default"].wrap(function _callee$(_context) {
29
30
  while (1) {
30
31
  switch (_context.prev = _context.next) {
31
32
  case 0:
33
+ onClick = jest.fn(function () {});
32
34
  _render = (0, _react.render)((0, _jsxRuntime.jsx)(_Button.Button, {
33
- children: "Button text"
35
+ onClick: onClick,
36
+ children: BUTTON_TEXT
34
37
  })), container = _render.container;
35
- expect(_react.screen.getByText('Button text')).toBeInTheDocument(); // Check for accessibility issues
38
+ component = _react.screen.getByText(BUTTON_TEXT);
39
+ expect(component).toBeInTheDocument();
40
+
41
+ _react.fireEvent.click(component);
42
+
43
+ expect(onClick).toHaveBeenCalledTimes(1); // Check for accessibility issues
36
44
 
37
45
  _context.t0 = expect;
38
- _context.next = 5;
46
+ _context.next = 9;
39
47
  return (0, _jestAxe.axe)(container);
40
48
 
41
- case 5:
49
+ case 9:
42
50
  _context.t1 = _context.sent;
43
- _context.next = 8;
51
+ _context.next = 12;
44
52
  return (0, _context.t0)(_context.t1).toHaveNoViolations();
45
53
 
46
- case 8:
54
+ case 12:
47
55
  case "end":
48
56
  return _context.stop();
49
57
  }
50
58
  }
51
59
  }, _callee);
52
60
  })));
61
+ it('renders the Button with disabled prop', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
62
+ var onClick, _render2, container, component;
63
+
64
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
65
+ while (1) {
66
+ switch (_context2.prev = _context2.next) {
67
+ case 0:
68
+ onClick = jest.fn(function () {});
69
+ _render2 = (0, _react.render)((0, _jsxRuntime.jsx)(_Button.Button, {
70
+ disabled: true,
71
+ onClick: onClick,
72
+ children: BUTTON_TEXT
73
+ })), container = _render2.container;
74
+ component = _react.screen.getByText(BUTTON_TEXT);
75
+ expect(component).toBeInTheDocument();
76
+ expect(component).toHaveAttribute('aria-disabled', 'true');
77
+ expect(component).not.toHaveAttribute('disabled');
78
+
79
+ _react.fireEvent.click(component);
80
+
81
+ expect(onClick).toHaveBeenCalledTimes(0); // Check for accessibility issues
82
+
83
+ _context2.t0 = expect;
84
+ _context2.next = 11;
85
+ return (0, _jestAxe.axe)(container);
86
+
87
+ case 11:
88
+ _context2.t1 = _context2.sent;
89
+ _context2.next = 14;
90
+ return (0, _context2.t0)(_context2.t1).toHaveNoViolations();
91
+
92
+ case 14:
93
+ case "end":
94
+ return _context2.stop();
95
+ }
96
+ }
97
+ }, _callee2);
98
+ })));
53
99
  });
@@ -40,8 +40,8 @@ var Code = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef)
40
40
  sx: {
41
41
  fontSize: 1,
42
42
  display: 'block',
43
- bg: 'grey.90',
44
- color: 'grey.10',
43
+ bg: 'layer.inverse',
44
+ color: 'texts.inverse',
45
45
  borderRadius: 1,
46
46
  py: 2,
47
47
  px: 3,
@@ -72,18 +72,17 @@ var Code = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef)
72
72
  children: [codeDom, (0, _jsxRuntime.jsx)("button", {
73
73
  "aria-label": "Copy code",
74
74
  sx: {
75
- bg: 'grey.10',
75
+ bg: 'notice.background.warning',
76
76
  borderTopRightRadius: 1,
77
77
  borderWidth: 0,
78
- color: 'muted',
79
- opacity: 0.8,
78
+ color: 'notice.text.warning',
80
79
  paddingBottom: 1,
81
80
  paddingLeft: 2,
82
81
  paddingRight: 2,
83
82
  paddingTop: 1,
84
83
  position: 'absolute',
85
84
  right: 0,
86
- top: '-1px',
85
+ top: 0,
87
86
  '&:hover': {
88
87
  opacity: 1,
89
88
  cursor: 'pointer'
@@ -41,7 +41,7 @@ var DialogButton = function DialogButton(_ref) {
41
41
  as: "span",
42
42
  sx: {
43
43
  mb: 0,
44
- color: 'muted',
44
+ color: 'heading',
45
45
  mr: 2,
46
46
  flex: '0 0 auto'
47
47
  },
@@ -53,7 +53,7 @@ var DialogButton = function DialogButton(_ref) {
53
53
  flex: '1 1 auto',
54
54
  whiteSpace: 'nowrap',
55
55
  overflow: 'hidden',
56
- color: 'heading',
56
+ color: 'input.text',
57
57
  textOverflow: 'ellipsis'
58
58
  },
59
59
  children: value
@@ -15,6 +15,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _md = require("react-icons/md");
17
17
 
18
+ var _Input = require("./Input.styles");
19
+
18
20
  var _jsxRuntime = require("theme-ui/jsx-runtime");
19
21
 
20
22
  var _excluded = ["disabled"];
@@ -25,36 +27,31 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
25
27
 
26
28
  var StyledCheckbox = function StyledCheckbox(props) {
27
29
  return (0, _jsxRuntime.jsx)(CheckboxPrimitive.Root, (0, _extends2["default"])({
28
- sx: {
30
+ sx: (0, _extends2["default"])({
29
31
  all: 'unset',
30
- backgroundColor: 'grey.10',
32
+ backgroundColor: _Input.inputBaseBackground
33
+ }, _Input.baseControlBorderStyle, _Input.baseControlFocusStyle, {
31
34
  width: 16,
32
35
  height: 16,
33
36
  borderRadius: 1,
34
37
  display: 'flex',
35
38
  alignItems: 'center',
36
39
  justifyContent: 'center',
37
- '&:hover': {
38
- backgroundColor: 'grey.20'
39
- },
40
- '&:focus': {
41
- boxShadow: '0 0 0 2px black'
42
- },
43
40
  '&[data-state=checked]': {
44
- backgroundColor: 'primary',
45
- color: 'brand.0'
41
+ backgroundColor: 'link',
42
+ color: 'link'
46
43
  },
47
44
  svg: {
48
45
  display: 'block'
49
46
  }
50
- }
47
+ })
51
48
  }, props));
52
49
  };
53
50
 
54
51
  var StyledIndicator = function StyledIndicator(props) {
55
52
  return (0, _jsxRuntime.jsx)(CheckboxPrimitive.Indicator, (0, _extends2["default"])({
56
53
  sx: {
57
- color: 'brand.0'
54
+ color: 'white'
58
55
  }
59
56
  }, props));
60
57
  };
@@ -64,8 +61,7 @@ var Checkbox = function Checkbox(_ref) {
64
61
  props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
65
62
  return (0, _jsxRuntime.jsx)(StyledCheckbox, (0, _extends2["default"])({
66
63
  sx: {
67
- opacity: disabled ? 0.4 : 1,
68
- border: 'none'
64
+ opacity: disabled ? 0.4 : 1
69
65
  },
70
66
  disabled: disabled
71
67
  }, props, {
@@ -38,8 +38,8 @@ var Default = function Default() {
38
38
  setChecked2 = _useState2[1];
39
39
 
40
40
  return (0, _jsxRuntime.jsx)(_.Form.Root, {
41
- children: (0, _jsxRuntime.jsxs)("fieldset", {
42
- children: [(0, _jsxRuntime.jsx)("legend", {
41
+ children: (0, _jsxRuntime.jsxs)(_.Form.Fieldset, {
42
+ children: [(0, _jsxRuntime.jsx)(_.Form.Legend, {
43
43
  children: "Tell me your prefereces"
44
44
  }), (0, _jsxRuntime.jsxs)(_Flex.Flex, {
45
45
  sx: {