@automattic/vip-design-system 0.19.0 → 0.19.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.
- package/build/system/BlankState/BlankState.stories.js +1 -1
- package/build/system/ConfirmationDialog/ConfirmationDialog.stories.js +1 -1
- package/build/system/Dialog/Dialog.stories.js +1 -1
- package/build/system/Form/Input.js +5 -3
- package/build/system/Link/Link.js +8 -6
- package/build/system/NewDialog/DialogClose.js +1 -1
- package/build/system/NewForm/Form.js +34 -0
- package/build/system/NewForm/FormSelect.js +117 -0
- package/build/system/NewForm/FormSelect.stories.js +120 -0
- package/build/system/NewForm/FormSelect.test.js +71 -0
- package/build/system/NewForm/FormSelectArrow.js +39 -0
- package/build/system/NewForm/FormSelectContent.js +55 -0
- package/build/system/NewForm/FormSelectInline.js +33 -0
- package/build/system/NewForm/index.js +18 -0
- package/build/system/Notice/Notice.js +0 -1
- package/build/system/OptionRow/OptionRow.js +2 -2
- package/build/system/ResourceList/ResourceList.js +1 -1
- package/build/system/Table/TableCell.js +1 -1
- package/build/system/Tabs/TabItem.js +3 -2
- package/build/system/Wizard/Wizard.js +10 -6
- package/build/system/Wizard/Wizard.stories.js +24 -2
- package/build/system/Wizard/WizardStep.js +18 -12
- package/build/system/Wizard/WizardStepHorizontal.js +8 -5
- package/build/system/index.js +5 -1
- package/build/system/theme/index.js +17 -4
- package/package.json +1 -1
- package/src/system/BlankState/BlankState.stories.jsx +1 -1
- package/src/system/ConfirmationDialog/ConfirmationDialog.stories.jsx +1 -1
- package/src/system/Dialog/Dialog.stories.jsx +1 -1
- package/src/system/Form/Input.js +2 -4
- package/src/system/Link/Link.js +8 -6
- package/src/system/NewDialog/DialogClose.js +1 -1
- package/src/system/NewForm/Form.js +19 -0
- package/src/system/NewForm/FormSelect.js +91 -0
- package/src/system/NewForm/FormSelect.stories.jsx +96 -0
- package/src/system/NewForm/FormSelect.test.js +34 -0
- package/src/system/NewForm/FormSelectArrow.js +27 -0
- package/src/system/NewForm/FormSelectContent.js +37 -0
- package/src/system/NewForm/FormSelectInline.js +31 -0
- package/src/system/NewForm/index.js +13 -0
- package/src/system/Notice/Notice.js +0 -1
- package/src/system/OptionRow/OptionRow.js +2 -2
- package/src/system/ResourceList/ResourceList.js +1 -1
- package/src/system/Table/TableCell.js +1 -1
- package/src/system/Tabs/TabItem.js +2 -1
- package/src/system/Wizard/Wizard.js +8 -6
- package/src/system/Wizard/Wizard.stories.jsx +19 -0
- package/src/system/Wizard/WizardStep.js +22 -11
- package/src/system/Wizard/WizardStepHorizontal.js +5 -4
- package/src/system/index.js +3 -0
- package/src/system/theme/index.js +21 -5
|
@@ -48,9 +48,11 @@ var Input = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
48
48
|
color: 'text',
|
|
49
49
|
display: 'block',
|
|
50
50
|
width: '100%',
|
|
51
|
-
'&:focus': {
|
|
52
|
-
|
|
53
|
-
|
|
51
|
+
'&:focus': function focus(theme) {
|
|
52
|
+
return theme.outline;
|
|
53
|
+
},
|
|
54
|
+
'&:focus-visible': function focusVisible(theme) {
|
|
55
|
+
return theme.outline;
|
|
54
56
|
},
|
|
55
57
|
'&:disabled': {
|
|
56
58
|
bg: 'backgroundSecondary'
|
|
@@ -24,15 +24,17 @@ var Link = function Link(_ref) {
|
|
|
24
24
|
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
25
25
|
return (0, _jsxRuntime.jsx)(_themeUi.Link, (0, _extends2["default"])({}, props, {
|
|
26
26
|
sx: (0, _extends2["default"])({
|
|
27
|
-
color: active ? '
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
borderBottomColor: 'border',
|
|
27
|
+
color: active ? 'links.active' : 'link',
|
|
28
|
+
textDdecorationThickness: '0.1em',
|
|
29
|
+
textUnderlineOffset: '0.1em',
|
|
31
30
|
'&:visited': {
|
|
32
|
-
color: '
|
|
31
|
+
color: 'links.visited'
|
|
32
|
+
},
|
|
33
|
+
'&:active': {
|
|
34
|
+
color: 'links.active'
|
|
33
35
|
},
|
|
34
36
|
'&:hover, &:focus': {
|
|
35
|
-
color: '
|
|
37
|
+
color: 'links.hover'
|
|
36
38
|
},
|
|
37
39
|
'&:focus': function focus(theme) {
|
|
38
40
|
return theme.outline;
|
|
@@ -68,7 +68,7 @@ var DialogCloseDefault = /*#__PURE__*/_react["default"].forwardRef(function (pro
|
|
|
68
68
|
top: 10,
|
|
69
69
|
right: 10,
|
|
70
70
|
'&:hover': {
|
|
71
|
-
backgroundColor: '
|
|
71
|
+
backgroundColor: 'borders.2',
|
|
72
72
|
outlineStyle: 'solid',
|
|
73
73
|
outlineColor: 'primary',
|
|
74
74
|
outlineWidth: '2px'
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.Form = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
17
|
+
|
|
18
|
+
var _excluded = ["children"];
|
|
19
|
+
|
|
20
|
+
var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef) {
|
|
21
|
+
var children = _ref.children,
|
|
22
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
23
|
+
return (0, _jsxRuntime.jsx)("form", (0, _extends2["default"])({
|
|
24
|
+
ref: forwardRef
|
|
25
|
+
}, props, {
|
|
26
|
+
children: children
|
|
27
|
+
}));
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
exports.Form = Form;
|
|
31
|
+
Form.propTypes = {
|
|
32
|
+
children: _propTypes["default"].any
|
|
33
|
+
};
|
|
34
|
+
Form.displayName = 'Form';
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.FormSelect = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _Label = require("../Form/Label");
|
|
17
|
+
|
|
18
|
+
var _FormSelectArrow = require("./FormSelectArrow");
|
|
19
|
+
|
|
20
|
+
var _FormSelectContent = require("./FormSelectContent");
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
var _excluded = ["isInline", "placeholder", "forLabel", "options", "label"];
|
|
25
|
+
var MAX_SUGGESTED_OPTIONS = 15;
|
|
26
|
+
var isDev = process.env.NODE_ENV !== 'production';
|
|
27
|
+
var defaultStyles = {
|
|
28
|
+
width: '100%',
|
|
29
|
+
paddingLeft: 3,
|
|
30
|
+
paddingRight: 40,
|
|
31
|
+
// 40px for the icon
|
|
32
|
+
py: 0,
|
|
33
|
+
borderColor: 'border',
|
|
34
|
+
borderRadius: 1,
|
|
35
|
+
appearance: 'none',
|
|
36
|
+
minHeight: '36px',
|
|
37
|
+
'&:focus': function focus(theme) {
|
|
38
|
+
return theme.outline;
|
|
39
|
+
},
|
|
40
|
+
'&:focus-visible': function focusVisible(theme) {
|
|
41
|
+
return theme.outline;
|
|
42
|
+
},
|
|
43
|
+
'&:focus-within': function focusWithin(theme) {
|
|
44
|
+
return theme.outline;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var renderOption = function renderOption(label, value) {
|
|
49
|
+
return (0, _jsxRuntime.jsx)("option", {
|
|
50
|
+
value: value,
|
|
51
|
+
children: label
|
|
52
|
+
}, value);
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var renderGroup = function renderGroup(groupLabel, groupOptions) {
|
|
56
|
+
return (0, _jsxRuntime.jsx)("optgroup", {
|
|
57
|
+
label: groupLabel,
|
|
58
|
+
children: groupOptions.map(function (_ref) {
|
|
59
|
+
var label = _ref.label,
|
|
60
|
+
value = _ref.value;
|
|
61
|
+
return renderOption(label, value);
|
|
62
|
+
})
|
|
63
|
+
}, groupLabel);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
var FormSelect = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, forwardRef) {
|
|
67
|
+
var isInline = _ref2.isInline,
|
|
68
|
+
placeholder = _ref2.placeholder,
|
|
69
|
+
forLabel = _ref2.forLabel,
|
|
70
|
+
options = _ref2.options,
|
|
71
|
+
label = _ref2.label,
|
|
72
|
+
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, _excluded);
|
|
73
|
+
|
|
74
|
+
if (isDev && options.length > MAX_SUGGESTED_OPTIONS) {
|
|
75
|
+
// eslint-disable-next-line no-console
|
|
76
|
+
console.info('For 16 or more items, consider using another component with a typeahead capability.');
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
var SelectLabel = function SelectLabel() {
|
|
80
|
+
return (0, _jsxRuntime.jsx)(_Label.Label, {
|
|
81
|
+
htmlFor: forLabel || props.id,
|
|
82
|
+
children: label
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var inlineLabel = !!(isInline && label);
|
|
87
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
88
|
+
children: [label && !isInline && (0, _jsxRuntime.jsx)(SelectLabel, {}), (0, _jsxRuntime.jsxs)(_FormSelectContent.FormSelectContent, {
|
|
89
|
+
isInline: inlineLabel,
|
|
90
|
+
label: inlineLabel ? (0, _jsxRuntime.jsx)(SelectLabel, {}) : null,
|
|
91
|
+
children: [(0, _jsxRuntime.jsxs)("select", (0, _extends2["default"])({
|
|
92
|
+
ref: forwardRef,
|
|
93
|
+
sx: defaultStyles
|
|
94
|
+
}, props, {
|
|
95
|
+
children: [placeholder && (0, _jsxRuntime.jsx)("option", {
|
|
96
|
+
children: placeholder
|
|
97
|
+
}), options.map(function (_ref3) {
|
|
98
|
+
var optionLabel = _ref3.label,
|
|
99
|
+
value = _ref3.value,
|
|
100
|
+
groupOptions = _ref3.options;
|
|
101
|
+
return value ? renderOption(optionLabel, value) : renderGroup(optionLabel, groupOptions);
|
|
102
|
+
})]
|
|
103
|
+
})), (0, _jsxRuntime.jsx)(_FormSelectArrow.FormSelectArrow, {})]
|
|
104
|
+
})]
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
exports.FormSelect = FormSelect;
|
|
109
|
+
FormSelect.propTypes = {
|
|
110
|
+
id: _propTypes["default"].string,
|
|
111
|
+
isInline: _propTypes["default"].bool,
|
|
112
|
+
forLabel: _propTypes["default"].string,
|
|
113
|
+
placeholder: _propTypes["default"].string,
|
|
114
|
+
label: _propTypes["default"].string,
|
|
115
|
+
options: _propTypes["default"].array
|
|
116
|
+
};
|
|
117
|
+
FormSelect.displayName = 'FormSelect';
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports["default"] = exports.WithGroup = exports.IsInline = exports.Default = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
+
|
|
12
|
+
var Form = _interopRequireWildcard(require("."));
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
var _excluded = ["label", "width"];
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
var _default = {
|
|
23
|
+
title: 'Form/Select',
|
|
24
|
+
argTypes: {
|
|
25
|
+
placeholder: {
|
|
26
|
+
type: {
|
|
27
|
+
name: 'string',
|
|
28
|
+
required: false
|
|
29
|
+
},
|
|
30
|
+
control: {
|
|
31
|
+
type: 'text'
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
label: {
|
|
35
|
+
type: {
|
|
36
|
+
name: 'string',
|
|
37
|
+
required: false
|
|
38
|
+
},
|
|
39
|
+
control: {
|
|
40
|
+
type: 'text'
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
exports["default"] = _default;
|
|
46
|
+
var options = [{
|
|
47
|
+
value: 'chocolate',
|
|
48
|
+
label: 'Chocolate'
|
|
49
|
+
}, {
|
|
50
|
+
value: 'strawberry',
|
|
51
|
+
label: 'Strawberry Chocolate Vanilla Chocolate Vanilla'
|
|
52
|
+
}, {
|
|
53
|
+
value: 'vanilla',
|
|
54
|
+
label: 'Vanilla'
|
|
55
|
+
}]; // eslint-disable-next-line react/prop-types
|
|
56
|
+
|
|
57
|
+
var DefaultComponent = function DefaultComponent(_ref) {
|
|
58
|
+
var _ref$label = _ref.label,
|
|
59
|
+
label = _ref$label === void 0 ? 'Label' : _ref$label,
|
|
60
|
+
_ref$width = _ref.width,
|
|
61
|
+
width = _ref$width === void 0 ? 250 : _ref$width,
|
|
62
|
+
rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
63
|
+
return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
64
|
+
children: [(0, _jsxRuntime.jsxs)("p", {
|
|
65
|
+
children: ["This is a simple wrapper at the top of a browser default select component. This component should be used for situations where you have up to ", (0, _jsxRuntime.jsx)("strong", {
|
|
66
|
+
children: "15 options"
|
|
67
|
+
}), ". If you need to use a auto-complete, searchable solution, please use another component with a typeahead capability."]
|
|
68
|
+
}), (0, _jsxRuntime.jsxs)("p", {
|
|
69
|
+
children: ["This component was heavily inspired by the", ' ', (0, _jsxRuntime.jsxs)("a", {
|
|
70
|
+
href: "https://designsystem.digital.gov/components/select/",
|
|
71
|
+
target: "_blank",
|
|
72
|
+
rel: "noreferrer",
|
|
73
|
+
children: [' ', "U.S. Web Design System (USWDS) Select component"]
|
|
74
|
+
}), "."]
|
|
75
|
+
}), (0, _jsxRuntime.jsx)(Form.Root, {
|
|
76
|
+
children: (0, _jsxRuntime.jsx)("div", {
|
|
77
|
+
sx: {
|
|
78
|
+
width: width
|
|
79
|
+
},
|
|
80
|
+
children: (0, _jsxRuntime.jsx)(Form.Select, (0, _extends2["default"])({
|
|
81
|
+
id: "form-select",
|
|
82
|
+
label: label
|
|
83
|
+
}, rest))
|
|
84
|
+
})
|
|
85
|
+
})]
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var Default = DefaultComponent.bind({});
|
|
90
|
+
exports.Default = Default;
|
|
91
|
+
Default.args = {
|
|
92
|
+
placeholder: '- Select -',
|
|
93
|
+
options: options
|
|
94
|
+
};
|
|
95
|
+
var WithGroup = DefaultComponent.bind({});
|
|
96
|
+
exports.WithGroup = WithGroup;
|
|
97
|
+
WithGroup.args = {
|
|
98
|
+
label: 'Group Label',
|
|
99
|
+
options: [{
|
|
100
|
+
label: 'Group name',
|
|
101
|
+
options: options
|
|
102
|
+
}, {
|
|
103
|
+
label: 'Another Group name',
|
|
104
|
+
options: options
|
|
105
|
+
}]
|
|
106
|
+
};
|
|
107
|
+
var IsInline = DefaultComponent.bind({});
|
|
108
|
+
exports.IsInline = IsInline;
|
|
109
|
+
IsInline.args = {
|
|
110
|
+
label: 'Inline Select',
|
|
111
|
+
isInline: true,
|
|
112
|
+
width: '100%',
|
|
113
|
+
options: [{
|
|
114
|
+
label: 'Group name',
|
|
115
|
+
options: options
|
|
116
|
+
}, {
|
|
117
|
+
label: 'Another Group name',
|
|
118
|
+
options: options
|
|
119
|
+
}]
|
|
120
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
8
|
+
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
|
|
11
|
+
var _react = require("@testing-library/react");
|
|
12
|
+
|
|
13
|
+
var _jestAxe = require("jest-axe");
|
|
14
|
+
|
|
15
|
+
var _FormSelect = require("./FormSelect");
|
|
16
|
+
|
|
17
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* External dependencies
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Internal dependencies
|
|
25
|
+
*/
|
|
26
|
+
var options = [{
|
|
27
|
+
value: 'chocolate',
|
|
28
|
+
label: 'Chocolate'
|
|
29
|
+
}, {
|
|
30
|
+
value: 'strawberry',
|
|
31
|
+
label: 'Strawberry Chocolate Vanilla Chocolate Vanilla'
|
|
32
|
+
}, {
|
|
33
|
+
value: 'vanilla',
|
|
34
|
+
label: 'Vanilla'
|
|
35
|
+
}];
|
|
36
|
+
var defaultProps = {
|
|
37
|
+
label: 'This is a label',
|
|
38
|
+
forLabel: 'my_desert_list',
|
|
39
|
+
options: options
|
|
40
|
+
};
|
|
41
|
+
describe('<FormSelect />', function () {
|
|
42
|
+
it('renders the FormSelect component', /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
43
|
+
var _render, container;
|
|
44
|
+
|
|
45
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
|
+
while (1) {
|
|
47
|
+
switch (_context.prev = _context.next) {
|
|
48
|
+
case 0:
|
|
49
|
+
_render = (0, _react.render)((0, _jsxRuntime.jsx)(_FormSelect.FormSelect, (0, _extends2["default"])({
|
|
50
|
+
id: "my_desert_list"
|
|
51
|
+
}, defaultProps))), container = _render.container;
|
|
52
|
+
expect(_react.screen.getByLabelText(defaultProps.label)).toBeInTheDocument();
|
|
53
|
+
expect(_react.screen.getByRole('combobox')).toBeInTheDocument(); // Check for accessibility issues
|
|
54
|
+
|
|
55
|
+
_context.t0 = expect;
|
|
56
|
+
_context.next = 6;
|
|
57
|
+
return (0, _jestAxe.axe)(container);
|
|
58
|
+
|
|
59
|
+
case 6:
|
|
60
|
+
_context.t1 = _context.sent;
|
|
61
|
+
_context.next = 9;
|
|
62
|
+
return (0, _context.t0)(_context.t1).toHaveNoViolations();
|
|
63
|
+
|
|
64
|
+
case 9:
|
|
65
|
+
case "end":
|
|
66
|
+
return _context.stop();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, _callee);
|
|
70
|
+
})));
|
|
71
|
+
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.FormSelectArrow = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _md = require("react-icons/md");
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
/** @jsxImportSource theme-ui */
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* External dependencies
|
|
20
|
+
*/
|
|
21
|
+
var FormSelectArrow = /*#__PURE__*/_react["default"].forwardRef(function (props, forwardRef) {
|
|
22
|
+
return (0, _jsxRuntime.jsx)(_md.MdExpandMore, (0, _extends2["default"])({
|
|
23
|
+
ref: forwardRef,
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
size: 24,
|
|
26
|
+
sx: {
|
|
27
|
+
paddingLeft: 2,
|
|
28
|
+
borderLeftWidth: '1px',
|
|
29
|
+
borderLeftStyle: 'solid',
|
|
30
|
+
borderLeftColor: 'border',
|
|
31
|
+
position: 'relative',
|
|
32
|
+
right: 34,
|
|
33
|
+
pointerEvents: 'none'
|
|
34
|
+
}
|
|
35
|
+
}, props));
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
exports.FormSelectArrow = FormSelectArrow;
|
|
39
|
+
FormSelectArrow.displayName = 'FormSelectArrow';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
exports.__esModule = true;
|
|
6
|
+
exports.FormSelectContent = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _FormSelectInline = require("./FormSelectInline");
|
|
13
|
+
|
|
14
|
+
var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
15
|
+
|
|
16
|
+
/** @jsxImportSource theme-ui */
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* External dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
var defaultStyles = {
|
|
26
|
+
'&:hover select': {
|
|
27
|
+
borderColor: 'border'
|
|
28
|
+
},
|
|
29
|
+
display: 'inline-flex',
|
|
30
|
+
flexDirection: 'row',
|
|
31
|
+
alignItems: 'center'
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var FormSelectContent = /*#__PURE__*/_react["default"].forwardRef(function (_ref, forwardRef) {
|
|
35
|
+
var isInline = _ref.isInline,
|
|
36
|
+
label = _ref.label,
|
|
37
|
+
children = _ref.children;
|
|
38
|
+
return (0, _jsxRuntime.jsxs)("div", {
|
|
39
|
+
sx: isInline ? _FormSelectInline.inlineStyles : {},
|
|
40
|
+
className: "vip-select-component",
|
|
41
|
+
ref: forwardRef,
|
|
42
|
+
children: [isInline && label, (0, _jsxRuntime.jsx)("div", {
|
|
43
|
+
sx: defaultStyles,
|
|
44
|
+
children: children
|
|
45
|
+
})]
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports.FormSelectContent = FormSelectContent;
|
|
50
|
+
FormSelectContent.propTypes = {
|
|
51
|
+
isInline: _propTypes["default"].bool,
|
|
52
|
+
label: _propTypes["default"].any,
|
|
53
|
+
children: _propTypes["default"].any
|
|
54
|
+
};
|
|
55
|
+
FormSelectContent.displayName = 'FormSelectContent';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.inlineStyles = void 0;
|
|
5
|
+
var inlineStyles = {
|
|
6
|
+
position: 'relative',
|
|
7
|
+
display: 'inline-flex',
|
|
8
|
+
alignItems: 'center',
|
|
9
|
+
borderColor: 'border',
|
|
10
|
+
borderRadius: 1,
|
|
11
|
+
borderWidth: 1,
|
|
12
|
+
borderStyle: 'solid',
|
|
13
|
+
paddingRight: 0,
|
|
14
|
+
paddingLeft: 3,
|
|
15
|
+
label: {
|
|
16
|
+
margin: 0,
|
|
17
|
+
paddingRight: 2,
|
|
18
|
+
borderRightWidth: '1px',
|
|
19
|
+
borderRightStyle: 'solid',
|
|
20
|
+
borderRightColor: 'border'
|
|
21
|
+
},
|
|
22
|
+
select: {
|
|
23
|
+
width: '100%',
|
|
24
|
+
border: 'none',
|
|
25
|
+
margin: 0,
|
|
26
|
+
paddingLeft: 2
|
|
27
|
+
},
|
|
28
|
+
svg: {
|
|
29
|
+
right: 2,
|
|
30
|
+
position: 'absolute'
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.inlineStyles = inlineStyles;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports["default"] = exports.Select = exports.Root = void 0;
|
|
5
|
+
|
|
6
|
+
var _FormSelect = require("./FormSelect");
|
|
7
|
+
|
|
8
|
+
var _Form = require("./Form");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Internal dependencies
|
|
12
|
+
*/
|
|
13
|
+
var Select = _FormSelect.FormSelect;
|
|
14
|
+
exports.Select = Select;
|
|
15
|
+
var Root = _Form.Form;
|
|
16
|
+
exports.Root = Root;
|
|
17
|
+
var _default = Root;
|
|
18
|
+
exports["default"] = _default;
|
|
@@ -24,7 +24,7 @@ var _jsxRuntime = require("theme-ui/jsx-runtime");
|
|
|
24
24
|
var _excluded = ["image", "icon", "badge", "label", "inline", "subTitle", "body", "meta", "to", "small", "disabled", "order", "className"];
|
|
25
25
|
var disabledStyles = {
|
|
26
26
|
border: '1px solid',
|
|
27
|
-
borderColor: '
|
|
27
|
+
borderColor: 'borders.2',
|
|
28
28
|
background: 'none',
|
|
29
29
|
boxShadow: 'none',
|
|
30
30
|
color: 'grey.70'
|
|
@@ -40,7 +40,7 @@ var regularGridStyle = function regularGridStyle(small) {
|
|
|
40
40
|
py: 3,
|
|
41
41
|
px: [3, 3, small ? 3 : 5],
|
|
42
42
|
borderBottom: '1px solid',
|
|
43
|
-
borderColor: '
|
|
43
|
+
borderColor: 'borders.2'
|
|
44
44
|
};
|
|
45
45
|
};
|
|
46
46
|
|
|
@@ -25,7 +25,7 @@ var TableCell = function TableCell(_ref) {
|
|
|
25
25
|
borderBottom: '1px solid',
|
|
26
26
|
borderTop: head ? '1px solid' : 'none',
|
|
27
27
|
// borderColor should come after borderTop so it can override it
|
|
28
|
-
borderColor: '
|
|
28
|
+
borderColor: 'borders.2',
|
|
29
29
|
fontWeight: 'body',
|
|
30
30
|
px: 3,
|
|
31
31
|
py: 2,
|
|
@@ -23,8 +23,8 @@ var TabItem = function TabItem(_ref) {
|
|
|
23
23
|
sx = _ref.sx,
|
|
24
24
|
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, _excluded);
|
|
25
25
|
return (0, _jsxRuntime.jsx)(_.Link, (0, _extends2["default"])({
|
|
26
|
-
variant: "h4"
|
|
27
|
-
|
|
26
|
+
variant: "h4" // as="button"
|
|
27
|
+
,
|
|
28
28
|
tabIndex: "0",
|
|
29
29
|
"data-active": active || undefined,
|
|
30
30
|
sx: (0, _extends2["default"])({
|
|
@@ -40,6 +40,7 @@ var TabItem = function TabItem(_ref) {
|
|
|
40
40
|
borderLeft: 'none',
|
|
41
41
|
borderRight: 'none',
|
|
42
42
|
borderBottom: '1px solid',
|
|
43
|
+
textDecoration: 'none',
|
|
43
44
|
borderColor: active ? 'link' : 'transparent',
|
|
44
45
|
transform: 'translateY(1px)',
|
|
45
46
|
'&:visited': {
|
|
@@ -42,13 +42,15 @@ var Wizard = function Wizard(_ref) {
|
|
|
42
42
|
}, props, {
|
|
43
43
|
children: steps.map(function (_ref2, index) {
|
|
44
44
|
var title = _ref2.title,
|
|
45
|
-
subTitle = _ref2.subTitle
|
|
45
|
+
subTitle = _ref2.subTitle,
|
|
46
|
+
titleVariant = _ref2.titleVariant;
|
|
46
47
|
return (0, _jsxRuntime.jsxs)(_react["default"].Fragment, {
|
|
47
48
|
children: [(0, _jsxRuntime.jsx)(_.WizardStepHorizontal, {
|
|
48
|
-
order: index + 1,
|
|
49
49
|
active: index === activeStep,
|
|
50
|
+
order: index + 1,
|
|
51
|
+
subTitle: subTitle,
|
|
50
52
|
title: title,
|
|
51
|
-
|
|
53
|
+
titleVariant: titleVariant
|
|
52
54
|
}), index < steps.length - 1 && (0, _jsxRuntime.jsx)(_md.MdArrowForward, {
|
|
53
55
|
sx: {
|
|
54
56
|
mx: 2,
|
|
@@ -61,13 +63,15 @@ var Wizard = function Wizard(_ref) {
|
|
|
61
63
|
}) : steps.map(function (_ref3, index) {
|
|
62
64
|
var title = _ref3.title,
|
|
63
65
|
subTitle = _ref3.subTitle,
|
|
64
|
-
children = _ref3.children
|
|
66
|
+
children = _ref3.children,
|
|
67
|
+
titleVariant = _ref3.titleVariant;
|
|
65
68
|
return (0, _jsxRuntime.jsx)(_.WizardStep, {
|
|
66
69
|
active: index === activeStep,
|
|
67
|
-
title: title,
|
|
68
|
-
subTitle: subTitle,
|
|
69
70
|
complete: completed.includes(index),
|
|
70
71
|
order: index + 1,
|
|
72
|
+
subTitle: subTitle,
|
|
73
|
+
title: title,
|
|
74
|
+
titleVariant: titleVariant,
|
|
71
75
|
children: children
|
|
72
76
|
}, index);
|
|
73
77
|
})
|