@automattic/vip-design-system 2.13.12 → 2.14.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/Button/Button.d.ts +1 -0
- package/build/system/Button/Button.js +18 -6
- package/build/system/Button/Button.stories.d.ts +9 -7
- package/build/system/Button/Button.stories.js +195 -74
- package/build/system/DescriptionList/DescriptionList.js +10 -7
- package/build/system/NewConfirmationDialog/NewConfirmationDialog.js +1 -1
- package/build/system/NewDialog/DialogClose.js +1 -1
- package/build/system/Wizard/Wizard.stories.js +3 -1
- package/build/system/Wizard/WizardStep.js +4 -3
- package/build/system/theme/index.d.ts +65 -0
- package/build/system/theme/index.js +77 -0
- package/package.json +1 -1
- package/src/system/Button/Button.stories.tsx +128 -39
- package/src/system/Button/Button.tsx +35 -5
- package/src/system/DescriptionList/DescriptionList.tsx +13 -8
- package/src/system/NewConfirmationDialog/NewConfirmationDialog.js +1 -1
- package/src/system/NewDialog/DialogClose.tsx +1 -1
- package/src/system/Wizard/Wizard.stories.tsx +8 -1
- package/src/system/Wizard/WizardStep.tsx +4 -3
- package/src/system/theme/index.js +77 -0
|
@@ -18,6 +18,7 @@ export interface ButtonProps extends ThemeButtonProps {
|
|
|
18
18
|
full?: boolean;
|
|
19
19
|
grow?: boolean;
|
|
20
20
|
variant?: keyof typeof ButtonVariant;
|
|
21
|
+
danger?: boolean;
|
|
21
22
|
}
|
|
22
23
|
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
23
24
|
export { Button };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["className", "disabled", "preferAriaDisabled", "onClick", "sx", "full", "grow"];
|
|
1
|
+
var _excluded = ["className", "disabled", "preferAriaDisabled", "onClick", "sx", "full", "grow", "variant", "danger"];
|
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
|
|
3
3
|
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; }
|
|
4
4
|
import classNames from 'classnames';
|
|
@@ -24,12 +24,17 @@ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
24
24
|
sx = _ref.sx,
|
|
25
25
|
full = _ref.full,
|
|
26
26
|
grow = _ref.grow,
|
|
27
|
+
_ref$variant = _ref.variant,
|
|
28
|
+
variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
|
|
29
|
+
_ref$danger = _ref.danger,
|
|
30
|
+
danger = _ref$danger === void 0 ? variant === 'danger' : _ref$danger,
|
|
27
31
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
28
32
|
var disabledAttributes = disabled && preferAriaDisabled === true ? {
|
|
29
33
|
'aria-disabled': true
|
|
30
34
|
} : {
|
|
31
35
|
disabled: disabled
|
|
32
36
|
};
|
|
37
|
+
var disabledStyles = {};
|
|
33
38
|
var handleOnClick = useCallback(function (event) {
|
|
34
39
|
if (preferAriaDisabled && disabled) {
|
|
35
40
|
return event.preventDefault();
|
|
@@ -38,19 +43,23 @@ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
38
43
|
return onClick(event);
|
|
39
44
|
}
|
|
40
45
|
}, [disabled, onClick]);
|
|
46
|
+
if (disabled && !danger && variant !== 'text' && variant !== 'ghost' && variant !== 'tertiary') {
|
|
47
|
+
disabledStyles = {
|
|
48
|
+
opacity: 0.7,
|
|
49
|
+
backgroundColor: 'input.border.disabled',
|
|
50
|
+
color: 'texts.secondary'
|
|
51
|
+
};
|
|
52
|
+
}
|
|
41
53
|
return _jsx(ThemeButton, _extends({
|
|
42
54
|
sx: _extends({
|
|
43
55
|
'&:focus': 'none',
|
|
44
56
|
'&:focus-visible': function focusVisible(theme) {
|
|
45
57
|
return theme.outline;
|
|
46
58
|
},
|
|
47
|
-
'&[disabled], &[aria-disabled="true"]': {
|
|
48
|
-
opacity: 0.7,
|
|
49
|
-
backgroundColor: 'input.border.disabled',
|
|
50
|
-
color: 'texts.secondary',
|
|
59
|
+
'&[disabled], &[aria-disabled="true"]': _extends({
|
|
51
60
|
cursor: 'not-allowed',
|
|
52
61
|
pointerEvents: 'none'
|
|
53
|
-
},
|
|
62
|
+
}, disabledStyles),
|
|
54
63
|
'&:hover, &:focus': {
|
|
55
64
|
textDecoration: 'none'
|
|
56
65
|
},
|
|
@@ -58,8 +67,11 @@ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
58
67
|
width: Boolean(full) === true ? '100%' : undefined
|
|
59
68
|
}, sx)
|
|
60
69
|
}, rest, disabledAttributes, {
|
|
70
|
+
variant: variant === 'danger' ? 'primary' : variant // fallback for danger variant used before the prop was added
|
|
71
|
+
,
|
|
61
72
|
onClick: handleOnClick,
|
|
62
73
|
className: classNames('vip-button-component', className),
|
|
74
|
+
"data-danger": danger,
|
|
63
75
|
ref: ref
|
|
64
76
|
}));
|
|
65
77
|
});
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/** @jsxImportSource theme-ui */
|
|
2
|
-
|
|
3
|
-
* External dependencies
|
|
4
|
-
*/
|
|
5
|
-
import React from 'react';
|
|
2
|
+
/// <reference types="react" />
|
|
6
3
|
/**
|
|
7
4
|
* Internal dependencies
|
|
8
5
|
*/
|
|
9
6
|
import { ButtonVariant } from '..';
|
|
10
7
|
declare const _default: {
|
|
11
8
|
title: string;
|
|
12
|
-
component:
|
|
9
|
+
component: import("react").ForwardRefExoticComponent<Omit<import("./Button").ButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
13
10
|
argTypes: {
|
|
14
11
|
children: {};
|
|
15
12
|
disabled: {
|
|
@@ -17,6 +14,11 @@ declare const _default: {
|
|
|
17
14
|
type: string;
|
|
18
15
|
};
|
|
19
16
|
};
|
|
17
|
+
danger: {
|
|
18
|
+
control: {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
20
22
|
variant: {
|
|
21
23
|
type: string;
|
|
22
24
|
options: (string | ButtonVariant)[];
|
|
@@ -31,5 +33,5 @@ declare const _default: {
|
|
|
31
33
|
};
|
|
32
34
|
};
|
|
33
35
|
export default _default;
|
|
34
|
-
export declare const Default: (args: any) =>
|
|
35
|
-
export declare const PreferAriaDisabled: (args: any) =>
|
|
36
|
+
export declare const Default: (args: any) => import("react").JSX.Element;
|
|
37
|
+
export declare const PreferAriaDisabled: (args: any) => import("react").JSX.Element;
|
|
@@ -4,14 +4,12 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
|
|
|
4
4
|
/**
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
|
-
import React from 'react';
|
|
8
7
|
import { BiCalendarHeart } from 'react-icons/bi';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Internal dependencies
|
|
12
11
|
*/
|
|
13
|
-
import { Button, ButtonVariant } from '..';
|
|
14
|
-
import { Flex } from '../Flex/Flex';
|
|
12
|
+
import { Button, ButtonVariant, Table, TableCell, TableRow } from '..';
|
|
15
13
|
import ScreenReaderText from '../ScreenReaderText';
|
|
16
14
|
import { jsx as _jsx } from "theme-ui/jsx-runtime";
|
|
17
15
|
import { jsxs as _jsxs } from "theme-ui/jsx-runtime";
|
|
@@ -25,6 +23,11 @@ export default {
|
|
|
25
23
|
type: 'boolean'
|
|
26
24
|
}
|
|
27
25
|
},
|
|
26
|
+
danger: {
|
|
27
|
+
control: {
|
|
28
|
+
type: 'boolean'
|
|
29
|
+
}
|
|
30
|
+
},
|
|
28
31
|
variant: {
|
|
29
32
|
type: 'select',
|
|
30
33
|
options: Object.values(ButtonVariant)
|
|
@@ -40,78 +43,127 @@ export default {
|
|
|
40
43
|
};
|
|
41
44
|
var Template = function Template(args) {
|
|
42
45
|
return _jsxs("div", {
|
|
43
|
-
children: [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
}, args, {
|
|
70
|
-
children: "Ghost"
|
|
71
|
-
})), _jsx(Button, _extends({
|
|
72
|
-
variant: "display",
|
|
73
|
-
sx: {
|
|
74
|
-
ml: 2
|
|
75
|
-
}
|
|
76
|
-
}, args, {
|
|
77
|
-
children: "Display"
|
|
78
|
-
})), _jsx(Button, _extends({
|
|
79
|
-
variant: "danger",
|
|
80
|
-
sx: {
|
|
81
|
-
ml: 2
|
|
82
|
-
}
|
|
83
|
-
}, args, {
|
|
84
|
-
children: "Danger"
|
|
85
|
-
})), _jsx(Button, _extends({
|
|
86
|
-
variant: "primary",
|
|
87
|
-
disabled: true,
|
|
88
|
-
sx: {
|
|
89
|
-
ml: 2
|
|
90
|
-
}
|
|
91
|
-
}, args, {
|
|
92
|
-
children: "Disabled"
|
|
93
|
-
})), _jsx(Button, _extends({
|
|
94
|
-
variant: "text",
|
|
95
|
-
sx: {
|
|
96
|
-
ml: 2
|
|
97
|
-
},
|
|
98
|
-
as: "a",
|
|
99
|
-
href: "https://google/com"
|
|
100
|
-
}, args, {
|
|
101
|
-
children: "Button link"
|
|
102
|
-
})), _jsxs(Button, _extends({
|
|
103
|
-
variant: "icon",
|
|
104
|
-
sx: {
|
|
105
|
-
ml: 2
|
|
106
|
-
},
|
|
107
|
-
type: "button"
|
|
108
|
-
}, args, {
|
|
109
|
-
children: [_jsx(BiCalendarHeart, {
|
|
110
|
-
size: 24
|
|
111
|
-
}), _jsx(ScreenReaderText, {
|
|
112
|
-
children: "domain.com"
|
|
46
|
+
children: [_jsx("h3", {
|
|
47
|
+
children: "Default"
|
|
48
|
+
}), _jsxs(Table, {
|
|
49
|
+
children: [_jsxs(TableRow, {
|
|
50
|
+
children: [_jsx(TableCell, {
|
|
51
|
+
head: true,
|
|
52
|
+
children: "Variant"
|
|
53
|
+
}), _jsx(TableCell, {
|
|
54
|
+
head: true,
|
|
55
|
+
children: "Primary"
|
|
56
|
+
}), _jsx(TableCell, {
|
|
57
|
+
head: true,
|
|
58
|
+
children: "Secondary"
|
|
59
|
+
}), _jsx(TableCell, {
|
|
60
|
+
head: true,
|
|
61
|
+
children: "Tertiary"
|
|
62
|
+
}), _jsx(TableCell, {
|
|
63
|
+
head: true,
|
|
64
|
+
children: "Ghost"
|
|
65
|
+
}), _jsx(TableCell, {
|
|
66
|
+
head: true,
|
|
67
|
+
children: "Display"
|
|
68
|
+
}), _jsx(TableCell, {
|
|
69
|
+
head: true,
|
|
70
|
+
children: "Icon"
|
|
113
71
|
})]
|
|
114
|
-
})
|
|
72
|
+
}), _jsxs(TableRow, {
|
|
73
|
+
children: [_jsx(TableCell, {
|
|
74
|
+
children: "Default"
|
|
75
|
+
}), _jsx(TableCell, {
|
|
76
|
+
children: _jsx(Button, _extends({}, args, {
|
|
77
|
+
children: "Primary"
|
|
78
|
+
}))
|
|
79
|
+
}), _jsx(TableCell, {
|
|
80
|
+
children: _jsx(Button, _extends({
|
|
81
|
+
variant: "secondary"
|
|
82
|
+
}, args, {
|
|
83
|
+
children: "Secondary"
|
|
84
|
+
}))
|
|
85
|
+
}), _jsx(TableCell, {
|
|
86
|
+
children: _jsx(Button, _extends({
|
|
87
|
+
variant: "tertiary"
|
|
88
|
+
}, args, {
|
|
89
|
+
children: "Tertiary"
|
|
90
|
+
}))
|
|
91
|
+
}), _jsx(TableCell, {
|
|
92
|
+
children: _jsx(Button, _extends({
|
|
93
|
+
variant: "ghost"
|
|
94
|
+
}, args, {
|
|
95
|
+
children: "Ghost"
|
|
96
|
+
}))
|
|
97
|
+
}), _jsx(TableCell, {
|
|
98
|
+
children: _jsx(Button, _extends({
|
|
99
|
+
variant: "display"
|
|
100
|
+
}, args, {
|
|
101
|
+
children: "Display"
|
|
102
|
+
}))
|
|
103
|
+
}), _jsx(TableCell, {
|
|
104
|
+
children: _jsxs(Button, _extends({
|
|
105
|
+
variant: "icon",
|
|
106
|
+
type: "button"
|
|
107
|
+
}, args, {
|
|
108
|
+
children: [_jsx(BiCalendarHeart, {
|
|
109
|
+
size: 24
|
|
110
|
+
}), _jsx(ScreenReaderText, {
|
|
111
|
+
children: "domain.com"
|
|
112
|
+
})]
|
|
113
|
+
}))
|
|
114
|
+
})]
|
|
115
|
+
}), _jsxs(TableRow, {
|
|
116
|
+
children: [_jsx(TableCell, {
|
|
117
|
+
children: "Disabled"
|
|
118
|
+
}), _jsx(TableCell, {
|
|
119
|
+
children: _jsx(Button, _extends({
|
|
120
|
+
variant: "primary",
|
|
121
|
+
disabled: true
|
|
122
|
+
}, args, {
|
|
123
|
+
children: "Primary"
|
|
124
|
+
}))
|
|
125
|
+
}), _jsx(TableCell, {
|
|
126
|
+
children: _jsx(Button, _extends({
|
|
127
|
+
variant: "secondary",
|
|
128
|
+
disabled: true
|
|
129
|
+
}, args, {
|
|
130
|
+
children: "Secondary"
|
|
131
|
+
}))
|
|
132
|
+
}), _jsx(TableCell, {
|
|
133
|
+
children: _jsx(Button, _extends({
|
|
134
|
+
variant: "tertiary",
|
|
135
|
+
disabled: true
|
|
136
|
+
}, args, {
|
|
137
|
+
children: "Tertiary"
|
|
138
|
+
}))
|
|
139
|
+
}), _jsx(TableCell, {
|
|
140
|
+
children: _jsx(Button, _extends({
|
|
141
|
+
variant: "ghost",
|
|
142
|
+
disabled: true
|
|
143
|
+
}, args, {
|
|
144
|
+
children: "Ghost"
|
|
145
|
+
}))
|
|
146
|
+
}), _jsx(TableCell, {
|
|
147
|
+
children: _jsx(Button, _extends({
|
|
148
|
+
variant: "display",
|
|
149
|
+
disabled: true
|
|
150
|
+
}, args, {
|
|
151
|
+
children: "Display"
|
|
152
|
+
}))
|
|
153
|
+
}), _jsx(TableCell, {
|
|
154
|
+
children: _jsxs(Button, _extends({
|
|
155
|
+
variant: "icon",
|
|
156
|
+
type: "button",
|
|
157
|
+
disabled: true
|
|
158
|
+
}, args, {
|
|
159
|
+
children: [_jsx(BiCalendarHeart, {
|
|
160
|
+
size: 24
|
|
161
|
+
}), _jsx(ScreenReaderText, {
|
|
162
|
+
children: "domain.com"
|
|
163
|
+
})]
|
|
164
|
+
}))
|
|
165
|
+
})]
|
|
166
|
+
})]
|
|
115
167
|
}), _jsx("div", {
|
|
116
168
|
sx: {
|
|
117
169
|
mt: 3
|
|
@@ -135,6 +187,75 @@ var Template = function Template(args) {
|
|
|
135
187
|
grow: true,
|
|
136
188
|
children: "Button with grow width"
|
|
137
189
|
}))
|
|
190
|
+
}), _jsx("h3", {
|
|
191
|
+
children: "Danger"
|
|
192
|
+
}), _jsxs(Table, {
|
|
193
|
+
children: [_jsxs(TableRow, {
|
|
194
|
+
children: [_jsx(TableCell, {
|
|
195
|
+
head: true,
|
|
196
|
+
children: "Variant"
|
|
197
|
+
}), _jsx(TableCell, {
|
|
198
|
+
head: true,
|
|
199
|
+
children: "Primary"
|
|
200
|
+
}), _jsx(TableCell, {
|
|
201
|
+
head: true,
|
|
202
|
+
children: "Secondary"
|
|
203
|
+
}), _jsx(TableCell, {
|
|
204
|
+
head: true,
|
|
205
|
+
children: "Ghost"
|
|
206
|
+
})]
|
|
207
|
+
}), _jsxs(TableRow, {
|
|
208
|
+
children: [_jsx(TableCell, {
|
|
209
|
+
children: "Default"
|
|
210
|
+
}), _jsx(TableCell, {
|
|
211
|
+
children: _jsx(Button, _extends({
|
|
212
|
+
danger: true
|
|
213
|
+
}, args, {
|
|
214
|
+
children: "Primary"
|
|
215
|
+
}))
|
|
216
|
+
}), _jsx(TableCell, {
|
|
217
|
+
children: _jsx(Button, _extends({
|
|
218
|
+
danger: true,
|
|
219
|
+
variant: "secondary"
|
|
220
|
+
}, args, {
|
|
221
|
+
children: "Secondary"
|
|
222
|
+
}))
|
|
223
|
+
}), _jsx(TableCell, {
|
|
224
|
+
children: _jsx(Button, _extends({
|
|
225
|
+
danger: true,
|
|
226
|
+
variant: "ghost"
|
|
227
|
+
}, args, {
|
|
228
|
+
children: "Ghost"
|
|
229
|
+
}))
|
|
230
|
+
})]
|
|
231
|
+
}), _jsxs(TableRow, {
|
|
232
|
+
children: [_jsx(TableCell, {
|
|
233
|
+
children: "Disabled"
|
|
234
|
+
}), _jsx(TableCell, {
|
|
235
|
+
children: _jsx(Button, _extends({
|
|
236
|
+
variant: "primary",
|
|
237
|
+
danger: true,
|
|
238
|
+
disabled: true
|
|
239
|
+
}, args, {
|
|
240
|
+
children: "Primary"
|
|
241
|
+
}))
|
|
242
|
+
}), _jsx(TableCell, {
|
|
243
|
+
children: _jsx(Button, _extends({
|
|
244
|
+
variant: "secondary",
|
|
245
|
+
danger: true,
|
|
246
|
+
disabled: true
|
|
247
|
+
}, args, {
|
|
248
|
+
children: "Secondary"
|
|
249
|
+
}))
|
|
250
|
+
}), _jsx(TableCell, {
|
|
251
|
+
children: _jsx(Button, _extends({
|
|
252
|
+
variant: "ghost",
|
|
253
|
+
disabled: true
|
|
254
|
+
}, args, {
|
|
255
|
+
children: "Ghost"
|
|
256
|
+
}))
|
|
257
|
+
})]
|
|
258
|
+
})]
|
|
138
259
|
})]
|
|
139
260
|
});
|
|
140
261
|
};
|
|
@@ -89,7 +89,7 @@ var DescriptionListComponent = function DescriptionListComponent(_ref2) {
|
|
|
89
89
|
})]
|
|
90
90
|
});
|
|
91
91
|
};
|
|
92
|
-
var DescriptionList = /*#__PURE__*/forwardRef(function (_ref3) {
|
|
92
|
+
var DescriptionList = /*#__PURE__*/forwardRef(function (_ref3, ref) {
|
|
93
93
|
var sx = _ref3.sx,
|
|
94
94
|
className = _ref3.className,
|
|
95
95
|
list = _ref3.list,
|
|
@@ -99,12 +99,15 @@ var DescriptionList = /*#__PURE__*/forwardRef(function (_ref3) {
|
|
|
99
99
|
as = _ref3$as === void 0 ? 'dl' : _ref3$as,
|
|
100
100
|
title = _ref3.title;
|
|
101
101
|
var Component = as === 'table' ? TableComponent : DescriptionListComponent;
|
|
102
|
-
return _jsx(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
102
|
+
return _jsx(Box, {
|
|
103
|
+
ref: ref,
|
|
104
|
+
children: _jsx(Component, {
|
|
105
|
+
list: list,
|
|
106
|
+
className: className,
|
|
107
|
+
sx: sx,
|
|
108
|
+
labelWidth: labelWidth,
|
|
109
|
+
title: title
|
|
110
|
+
})
|
|
108
111
|
});
|
|
109
112
|
});
|
|
110
113
|
DescriptionList.displayName = 'DescriptionList';
|
|
@@ -22,7 +22,7 @@ const NewConfirmationDialogContent = ( {
|
|
|
22
22
|
} ) => (
|
|
23
23
|
<Box className={ classNames( 'vip-confirmation-dialog-component', className ) }>
|
|
24
24
|
<Flex sx={ { justifyContent: 'flex-end', mt: 4 } }>
|
|
25
|
-
<Button variant="
|
|
25
|
+
<Button variant="ghost" sx={ { mr: 2 } } onClick={ onClose }>
|
|
26
26
|
Cancel
|
|
27
27
|
</Button>
|
|
28
28
|
<NewDialog.Close>
|
|
@@ -41,7 +41,7 @@ export var DialogCloseDefault = /*#__PURE__*/forwardRef(function (_ref, forwarde
|
|
|
41
41
|
children: _jsx(Button, {
|
|
42
42
|
ref: forwardedRef,
|
|
43
43
|
"aria-label": "Close",
|
|
44
|
-
variant: "
|
|
44
|
+
variant: "ghost",
|
|
45
45
|
sx: defaultCloseStyles(variant),
|
|
46
46
|
children: _jsx(IoClose, {
|
|
47
47
|
"aria-hidden": "true",
|
|
@@ -36,7 +36,8 @@ export var Default = function Default() {
|
|
|
36
36
|
})
|
|
37
37
|
}, {
|
|
38
38
|
title: 'Configure DNS',
|
|
39
|
-
titleVariant: 'h2'
|
|
39
|
+
titleVariant: 'h2',
|
|
40
|
+
summaryTitle: 'Summary of Configure DNS'
|
|
40
41
|
}, {
|
|
41
42
|
title: 'Configure Certificate',
|
|
42
43
|
titleVariant: 'h2'
|
|
@@ -51,6 +52,7 @@ export var Default = function Default() {
|
|
|
51
52
|
activeStep: 0,
|
|
52
53
|
steps: steps,
|
|
53
54
|
completed: [1],
|
|
55
|
+
summaryAs: "dl",
|
|
54
56
|
className: "vip-wizard-xyz"
|
|
55
57
|
})
|
|
56
58
|
})
|
|
@@ -56,7 +56,7 @@ export var WizardStep = /*#__PURE__*/React.forwardRef(function (_ref, forwardRef
|
|
|
56
56
|
if (statusText !== '') {
|
|
57
57
|
statusText = "Status: " + statusText;
|
|
58
58
|
}
|
|
59
|
-
var stepText = "
|
|
59
|
+
var stepText = "STEP " + order + " OF " + totalSteps;
|
|
60
60
|
var borderLeftColor = "wizard.step.border." + status;
|
|
61
61
|
var statusIconColor = "wizard.step.icon." + status;
|
|
62
62
|
var statusIconStyles = {
|
|
@@ -78,6 +78,7 @@ export var WizardStep = /*#__PURE__*/React.forwardRef(function (_ref, forwardRef
|
|
|
78
78
|
backgroundColor: active ? 'background' : 'transparent',
|
|
79
79
|
borderRadius: 0,
|
|
80
80
|
borderBottom: active ? 'none' : '1px solid',
|
|
81
|
+
borderRight: active ? 'none' : '1px solid',
|
|
81
82
|
'&:first-of-type': {
|
|
82
83
|
borderTopWidth: '1px',
|
|
83
84
|
borderTopStyle: 'solid'
|
|
@@ -150,9 +151,9 @@ export var WizardStep = /*#__PURE__*/React.forwardRef(function (_ref, forwardRef
|
|
|
150
151
|
children: actionIcon
|
|
151
152
|
})]
|
|
152
153
|
})]
|
|
153
|
-
}), !active && (complete || skipped) && summary && _jsx(DescriptionList, {
|
|
154
|
+
}), !active && (complete || skipped) && (summary || summaryTitle) && _jsx(DescriptionList, {
|
|
154
155
|
as: summaryAs,
|
|
155
|
-
list: summary,
|
|
156
|
+
list: summary || [],
|
|
156
157
|
title: summaryTitle
|
|
157
158
|
}), subTitle && active && _jsx(Text, {
|
|
158
159
|
sx: {
|
|
@@ -147,6 +147,27 @@ declare namespace _default {
|
|
|
147
147
|
fill: string;
|
|
148
148
|
};
|
|
149
149
|
};
|
|
150
|
+
'&[data-danger="true"]': {
|
|
151
|
+
color: string;
|
|
152
|
+
bg: string;
|
|
153
|
+
border: string;
|
|
154
|
+
borderColor: string;
|
|
155
|
+
};
|
|
156
|
+
'&:hover[data-danger="true"]': {
|
|
157
|
+
backgroundColor: string;
|
|
158
|
+
color: string;
|
|
159
|
+
border: string;
|
|
160
|
+
borderColor: string;
|
|
161
|
+
};
|
|
162
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
163
|
+
backgroundColor: string;
|
|
164
|
+
color: string;
|
|
165
|
+
opacity: number;
|
|
166
|
+
};
|
|
167
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
168
|
+
backgroundColor: string;
|
|
169
|
+
color: string;
|
|
170
|
+
};
|
|
150
171
|
};
|
|
151
172
|
export { primary_1 as primary };
|
|
152
173
|
let secondary_1: {
|
|
@@ -157,6 +178,28 @@ declare namespace _default {
|
|
|
157
178
|
backgroundColor: string;
|
|
158
179
|
color: string;
|
|
159
180
|
};
|
|
181
|
+
'&[data-danger="true"]': {
|
|
182
|
+
color: string;
|
|
183
|
+
bg: string;
|
|
184
|
+
border: string;
|
|
185
|
+
borderColor: string;
|
|
186
|
+
};
|
|
187
|
+
'&:hover[data-danger="true"]': {
|
|
188
|
+
backgroundColor: string;
|
|
189
|
+
color: string;
|
|
190
|
+
border: string;
|
|
191
|
+
borderColor: string;
|
|
192
|
+
};
|
|
193
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
194
|
+
backgroundColor: string;
|
|
195
|
+
color: string;
|
|
196
|
+
};
|
|
197
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
198
|
+
backgroundColor: string;
|
|
199
|
+
color: string;
|
|
200
|
+
border: string;
|
|
201
|
+
borderColor: string;
|
|
202
|
+
};
|
|
160
203
|
};
|
|
161
204
|
export { secondary_1 as secondary };
|
|
162
205
|
export let tertiary: {
|
|
@@ -171,6 +214,10 @@ declare namespace _default {
|
|
|
171
214
|
border: string;
|
|
172
215
|
borderColor: string;
|
|
173
216
|
};
|
|
217
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
218
|
+
backgroundColor: string;
|
|
219
|
+
color: string;
|
|
220
|
+
};
|
|
174
221
|
};
|
|
175
222
|
let display_3: {
|
|
176
223
|
variant: string;
|
|
@@ -184,6 +231,10 @@ declare namespace _default {
|
|
|
184
231
|
border: string;
|
|
185
232
|
borderColor: string;
|
|
186
233
|
};
|
|
234
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
235
|
+
backgroundColor: string;
|
|
236
|
+
color: string;
|
|
237
|
+
};
|
|
187
238
|
};
|
|
188
239
|
export { display_3 as display };
|
|
189
240
|
export let ghost: {
|
|
@@ -198,6 +249,20 @@ declare namespace _default {
|
|
|
198
249
|
border: string;
|
|
199
250
|
borderColor: string;
|
|
200
251
|
};
|
|
252
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
253
|
+
backgroundColor: string;
|
|
254
|
+
color: string;
|
|
255
|
+
};
|
|
256
|
+
'&[data-danger="true"]': {
|
|
257
|
+
color: string;
|
|
258
|
+
bg: string;
|
|
259
|
+
};
|
|
260
|
+
'&:hover[data-danger="true"]': {
|
|
261
|
+
backgroundColor: string;
|
|
262
|
+
color: string;
|
|
263
|
+
border: string;
|
|
264
|
+
borderColor: string;
|
|
265
|
+
};
|
|
201
266
|
};
|
|
202
267
|
export let danger: {
|
|
203
268
|
variant: string;
|
|
@@ -362,6 +362,30 @@ export default {
|
|
|
362
362
|
fill: 'inherit',
|
|
363
363
|
},
|
|
364
364
|
},
|
|
365
|
+
'&[data-danger="true"]': {
|
|
366
|
+
color: 'button.danger.primary.label.default',
|
|
367
|
+
bg: 'button.danger.primary.background.default',
|
|
368
|
+
border: '1px solid',
|
|
369
|
+
borderColor: 'transparent',
|
|
370
|
+
},
|
|
371
|
+
|
|
372
|
+
'&:hover[data-danger="true"]': {
|
|
373
|
+
backgroundColor: 'button.danger.primary.background.hover',
|
|
374
|
+
color: 'button.danger.primary.label.hover',
|
|
375
|
+
border: '1px solid',
|
|
376
|
+
borderColor: 'transparent',
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
380
|
+
backgroundColor: 'button.primary.background.disabled',
|
|
381
|
+
color: 'button.primary.label.disabled',
|
|
382
|
+
opacity: 0.7,
|
|
383
|
+
},
|
|
384
|
+
|
|
385
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
386
|
+
backgroundColor: 'button.secondary.background.disabled',
|
|
387
|
+
color: 'button.secondary.label.default',
|
|
388
|
+
},
|
|
365
389
|
},
|
|
366
390
|
|
|
367
391
|
secondary: {
|
|
@@ -373,6 +397,32 @@ export default {
|
|
|
373
397
|
backgroundColor: 'button.secondary.background.hover',
|
|
374
398
|
color: 'button.secondary.label.hover',
|
|
375
399
|
},
|
|
400
|
+
|
|
401
|
+
'&[data-danger="true"]': {
|
|
402
|
+
color: 'button.danger.secondary.label.default',
|
|
403
|
+
bg: 'button.danger.secondary.background.default',
|
|
404
|
+
border: '1px solid',
|
|
405
|
+
borderColor: 'button.danger.secondary.border.default',
|
|
406
|
+
},
|
|
407
|
+
|
|
408
|
+
'&:hover[data-danger="true"]': {
|
|
409
|
+
backgroundColor: 'button.danger.secondary.background.hover',
|
|
410
|
+
color: 'button.danger.secondary.label.hover',
|
|
411
|
+
border: '1px solid',
|
|
412
|
+
borderColor: 'transparent',
|
|
413
|
+
},
|
|
414
|
+
|
|
415
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
416
|
+
backgroundColor: 'button.secondary.background.disabled',
|
|
417
|
+
color: 'button.secondary.label.disabled',
|
|
418
|
+
},
|
|
419
|
+
|
|
420
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
421
|
+
backgroundColor: 'button.danger.secondary.background.default',
|
|
422
|
+
color: 'button.secondary.label.disabled',
|
|
423
|
+
border: '1px solid',
|
|
424
|
+
borderColor: 'button.secondary.border.default',
|
|
425
|
+
},
|
|
376
426
|
},
|
|
377
427
|
|
|
378
428
|
tertiary: {
|
|
@@ -388,6 +438,11 @@ export default {
|
|
|
388
438
|
border: '1px solid',
|
|
389
439
|
borderColor: 'button.tertiary.border.hover',
|
|
390
440
|
},
|
|
441
|
+
|
|
442
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
443
|
+
backgroundColor: 'button.tertiary.background.default',
|
|
444
|
+
color: 'texts.disabled',
|
|
445
|
+
},
|
|
391
446
|
},
|
|
392
447
|
|
|
393
448
|
display: {
|
|
@@ -403,6 +458,11 @@ export default {
|
|
|
403
458
|
border: '1px solid',
|
|
404
459
|
borderColor: 'transparent',
|
|
405
460
|
},
|
|
461
|
+
|
|
462
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
463
|
+
backgroundColor: 'button.display.background.disabled',
|
|
464
|
+
color: 'button.display.label.disabled',
|
|
465
|
+
},
|
|
406
466
|
},
|
|
407
467
|
|
|
408
468
|
ghost: {
|
|
@@ -418,6 +478,23 @@ export default {
|
|
|
418
478
|
border: '1px solid',
|
|
419
479
|
borderColor: 'transparent',
|
|
420
480
|
},
|
|
481
|
+
|
|
482
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
483
|
+
backgroundColor: 'button.ghost.background.default',
|
|
484
|
+
color: 'texts.disabled',
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
'&[data-danger="true"]': {
|
|
488
|
+
color: 'button.danger.ghost.label.default',
|
|
489
|
+
bg: 'button.danger.ghost.background.default',
|
|
490
|
+
},
|
|
491
|
+
|
|
492
|
+
'&:hover[data-danger="true"]': {
|
|
493
|
+
backgroundColor: 'button.danger.ghost.background.hover',
|
|
494
|
+
color: 'button.danger.ghost.label.hover',
|
|
495
|
+
border: '1px solid',
|
|
496
|
+
borderColor: 'transparent',
|
|
497
|
+
},
|
|
421
498
|
},
|
|
422
499
|
|
|
423
500
|
danger: {
|
package/package.json
CHANGED
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import React from 'react';
|
|
7
6
|
import { BiCalendarHeart } from 'react-icons/bi';
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* Internal dependencies
|
|
11
10
|
*/
|
|
12
|
-
import { Button, ButtonVariant } from '..';
|
|
13
|
-
import { Flex } from '../Flex/Flex';
|
|
11
|
+
import { Button, ButtonVariant, Table, TableCell, TableRow } from '..';
|
|
14
12
|
import ScreenReaderText from '../ScreenReaderText';
|
|
15
13
|
|
|
16
14
|
export default {
|
|
@@ -21,6 +19,9 @@ export default {
|
|
|
21
19
|
disabled: {
|
|
22
20
|
control: { type: 'boolean' },
|
|
23
21
|
},
|
|
22
|
+
danger: {
|
|
23
|
+
control: { type: 'boolean' },
|
|
24
|
+
},
|
|
24
25
|
variant: {
|
|
25
26
|
type: 'select',
|
|
26
27
|
options: Object.values( ButtonVariant ),
|
|
@@ -68,42 +69,84 @@ This documentation is heavily inspired by the [U.S Web Design System (USWDS)](ht
|
|
|
68
69
|
|
|
69
70
|
const Template = args => (
|
|
70
71
|
<div>
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
<
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
72
|
+
<h3>Default</h3>
|
|
73
|
+
<Table>
|
|
74
|
+
<TableRow>
|
|
75
|
+
<TableCell head>Variant</TableCell>
|
|
76
|
+
<TableCell head>Primary</TableCell>
|
|
77
|
+
<TableCell head>Secondary</TableCell>
|
|
78
|
+
<TableCell head>Tertiary</TableCell>
|
|
79
|
+
<TableCell head>Ghost</TableCell>
|
|
80
|
+
<TableCell head>Display</TableCell>
|
|
81
|
+
<TableCell head>Icon</TableCell>
|
|
82
|
+
</TableRow>
|
|
83
|
+
<TableRow>
|
|
84
|
+
<TableCell>Default</TableCell>
|
|
85
|
+
<TableCell>
|
|
86
|
+
<Button { ...args }>Primary</Button>
|
|
87
|
+
</TableCell>
|
|
88
|
+
<TableCell>
|
|
89
|
+
<Button variant="secondary" { ...args }>
|
|
90
|
+
Secondary
|
|
91
|
+
</Button>
|
|
92
|
+
</TableCell>
|
|
93
|
+
<TableCell>
|
|
94
|
+
<Button variant="tertiary" { ...args }>
|
|
95
|
+
Tertiary
|
|
96
|
+
</Button>
|
|
97
|
+
</TableCell>
|
|
98
|
+
<TableCell>
|
|
99
|
+
<Button variant="ghost" { ...args }>
|
|
100
|
+
Ghost
|
|
101
|
+
</Button>
|
|
102
|
+
</TableCell>
|
|
103
|
+
<TableCell>
|
|
104
|
+
<Button variant="display" { ...args }>
|
|
105
|
+
Display
|
|
106
|
+
</Button>
|
|
107
|
+
</TableCell>
|
|
108
|
+
<TableCell>
|
|
109
|
+
<Button variant="icon" type="button" { ...args }>
|
|
110
|
+
<BiCalendarHeart size={ 24 } />
|
|
111
|
+
<ScreenReaderText>domain.com</ScreenReaderText>
|
|
112
|
+
</Button>
|
|
113
|
+
</TableCell>
|
|
114
|
+
</TableRow>
|
|
115
|
+
<TableRow>
|
|
116
|
+
<TableCell>Disabled</TableCell>
|
|
117
|
+
<TableCell>
|
|
118
|
+
<Button variant="primary" disabled { ...args }>
|
|
119
|
+
Primary
|
|
120
|
+
</Button>
|
|
121
|
+
</TableCell>
|
|
122
|
+
<TableCell>
|
|
123
|
+
<Button variant="secondary" disabled={ true } { ...args }>
|
|
124
|
+
Secondary
|
|
125
|
+
</Button>
|
|
126
|
+
</TableCell>
|
|
127
|
+
<TableCell>
|
|
128
|
+
<Button variant="tertiary" disabled { ...args }>
|
|
129
|
+
Tertiary
|
|
130
|
+
</Button>
|
|
131
|
+
</TableCell>
|
|
132
|
+
<TableCell>
|
|
133
|
+
<Button variant="ghost" disabled { ...args }>
|
|
134
|
+
Ghost
|
|
135
|
+
</Button>
|
|
136
|
+
</TableCell>
|
|
137
|
+
<TableCell>
|
|
138
|
+
<Button variant="display" disabled { ...args }>
|
|
139
|
+
Display
|
|
140
|
+
</Button>
|
|
141
|
+
</TableCell>
|
|
142
|
+
<TableCell>
|
|
143
|
+
<Button variant="icon" type="button" disabled { ...args }>
|
|
144
|
+
<BiCalendarHeart size={ 24 } />
|
|
145
|
+
<ScreenReaderText>domain.com</ScreenReaderText>
|
|
146
|
+
</Button>
|
|
147
|
+
</TableCell>
|
|
148
|
+
</TableRow>
|
|
149
|
+
</Table>
|
|
107
150
|
|
|
108
151
|
<div sx={ { mt: 3 } }>
|
|
109
152
|
<Button variant="secondary" href="https://google/com" { ...args } full>
|
|
@@ -116,6 +159,52 @@ const Template = args => (
|
|
|
116
159
|
Button with grow width
|
|
117
160
|
</Button>
|
|
118
161
|
</div>
|
|
162
|
+
|
|
163
|
+
<h3>Danger</h3>
|
|
164
|
+
<Table>
|
|
165
|
+
<TableRow>
|
|
166
|
+
<TableCell head>Variant</TableCell>
|
|
167
|
+
<TableCell head>Primary</TableCell>
|
|
168
|
+
<TableCell head>Secondary</TableCell>
|
|
169
|
+
<TableCell head>Ghost</TableCell>
|
|
170
|
+
</TableRow>
|
|
171
|
+
<TableRow>
|
|
172
|
+
<TableCell>Default</TableCell>
|
|
173
|
+
<TableCell>
|
|
174
|
+
<Button danger { ...args }>
|
|
175
|
+
Primary
|
|
176
|
+
</Button>
|
|
177
|
+
</TableCell>
|
|
178
|
+
<TableCell>
|
|
179
|
+
<Button danger variant="secondary" { ...args }>
|
|
180
|
+
Secondary
|
|
181
|
+
</Button>
|
|
182
|
+
</TableCell>
|
|
183
|
+
<TableCell>
|
|
184
|
+
<Button danger variant="ghost" { ...args }>
|
|
185
|
+
Ghost
|
|
186
|
+
</Button>
|
|
187
|
+
</TableCell>
|
|
188
|
+
</TableRow>
|
|
189
|
+
<TableRow>
|
|
190
|
+
<TableCell>Disabled</TableCell>
|
|
191
|
+
<TableCell>
|
|
192
|
+
<Button variant="primary" danger disabled { ...args }>
|
|
193
|
+
Primary
|
|
194
|
+
</Button>
|
|
195
|
+
</TableCell>
|
|
196
|
+
<TableCell>
|
|
197
|
+
<Button variant="secondary" danger disabled { ...args }>
|
|
198
|
+
Secondary
|
|
199
|
+
</Button>
|
|
200
|
+
</TableCell>
|
|
201
|
+
<TableCell>
|
|
202
|
+
<Button variant="ghost" disabled { ...args }>
|
|
203
|
+
Ghost
|
|
204
|
+
</Button>
|
|
205
|
+
</TableCell>
|
|
206
|
+
</TableRow>
|
|
207
|
+
</Table>
|
|
119
208
|
</div>
|
|
120
209
|
);
|
|
121
210
|
|
|
@@ -9,7 +9,7 @@ interface ButtonTheme extends Theme {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
export enum ButtonVariant {
|
|
12
|
-
'danger',
|
|
12
|
+
'danger', // will be deprecated in the future
|
|
13
13
|
'display',
|
|
14
14
|
'ghost',
|
|
15
15
|
'icon',
|
|
@@ -26,12 +26,28 @@ export interface ButtonProps extends ThemeButtonProps {
|
|
|
26
26
|
full?: boolean;
|
|
27
27
|
grow?: boolean;
|
|
28
28
|
variant?: keyof typeof ButtonVariant; // converts the enum to a string union type
|
|
29
|
+
danger?: boolean;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
const Button = forwardRef< HTMLButtonElement, ButtonProps >(
|
|
32
|
-
(
|
|
33
|
+
(
|
|
34
|
+
{
|
|
35
|
+
className,
|
|
36
|
+
disabled,
|
|
37
|
+
preferAriaDisabled,
|
|
38
|
+
onClick,
|
|
39
|
+
sx,
|
|
40
|
+
full,
|
|
41
|
+
grow,
|
|
42
|
+
variant = 'primary',
|
|
43
|
+
danger = variant === 'danger', // fallback for danger variant used before the prop was added
|
|
44
|
+
...rest
|
|
45
|
+
},
|
|
46
|
+
ref
|
|
47
|
+
) => {
|
|
33
48
|
const disabledAttributes =
|
|
34
49
|
disabled && preferAriaDisabled === true ? { 'aria-disabled': true } : { disabled };
|
|
50
|
+
let disabledStyles = {};
|
|
35
51
|
|
|
36
52
|
const handleOnClick = useCallback(
|
|
37
53
|
( event: ButtonClickType ) => {
|
|
@@ -46,17 +62,29 @@ const Button = forwardRef< HTMLButtonElement, ButtonProps >(
|
|
|
46
62
|
[ disabled, onClick ]
|
|
47
63
|
);
|
|
48
64
|
|
|
65
|
+
if (
|
|
66
|
+
disabled &&
|
|
67
|
+
! danger &&
|
|
68
|
+
variant !== 'text' &&
|
|
69
|
+
variant !== 'ghost' &&
|
|
70
|
+
variant !== 'tertiary'
|
|
71
|
+
) {
|
|
72
|
+
disabledStyles = {
|
|
73
|
+
opacity: 0.7,
|
|
74
|
+
backgroundColor: 'input.border.disabled',
|
|
75
|
+
color: 'texts.secondary',
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
49
79
|
return (
|
|
50
80
|
<ThemeButton
|
|
51
81
|
sx={ {
|
|
52
82
|
'&:focus': 'none',
|
|
53
83
|
'&:focus-visible': ( theme: ButtonTheme ) => theme.outline,
|
|
54
84
|
'&[disabled], &[aria-disabled="true"]': {
|
|
55
|
-
opacity: 0.7,
|
|
56
|
-
backgroundColor: 'input.border.disabled',
|
|
57
|
-
color: 'texts.secondary',
|
|
58
85
|
cursor: 'not-allowed',
|
|
59
86
|
pointerEvents: 'none',
|
|
87
|
+
...disabledStyles,
|
|
60
88
|
},
|
|
61
89
|
'&:hover, &:focus': {
|
|
62
90
|
textDecoration: 'none',
|
|
@@ -67,8 +95,10 @@ const Button = forwardRef< HTMLButtonElement, ButtonProps >(
|
|
|
67
95
|
} }
|
|
68
96
|
{ ...rest }
|
|
69
97
|
{ ...disabledAttributes }
|
|
98
|
+
variant={ variant === 'danger' ? 'primary' : variant } // fallback for danger variant used before the prop was added
|
|
70
99
|
onClick={ handleOnClick }
|
|
71
100
|
className={ classNames( 'vip-button-component', className ) }
|
|
101
|
+
data-danger={ danger }
|
|
72
102
|
ref={ ref }
|
|
73
103
|
/>
|
|
74
104
|
);
|
|
@@ -83,17 +83,22 @@ const DescriptionListComponent = ( {
|
|
|
83
83
|
);
|
|
84
84
|
|
|
85
85
|
const DescriptionList = forwardRef< HTMLDivElement, DescriptionListProps >(
|
|
86
|
-
(
|
|
86
|
+
(
|
|
87
|
+
{ sx, className, list, labelWidth = '100px', as = 'dl', title }: DescriptionListProps,
|
|
88
|
+
ref
|
|
89
|
+
) => {
|
|
87
90
|
const Component = as === 'table' ? TableComponent : DescriptionListComponent;
|
|
88
91
|
|
|
89
92
|
return (
|
|
90
|
-
<
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
<Box ref={ ref }>
|
|
94
|
+
<Component
|
|
95
|
+
list={ list }
|
|
96
|
+
className={ className }
|
|
97
|
+
sx={ sx }
|
|
98
|
+
labelWidth={ labelWidth }
|
|
99
|
+
title={ title }
|
|
100
|
+
/>
|
|
101
|
+
</Box>
|
|
97
102
|
);
|
|
98
103
|
}
|
|
99
104
|
);
|
|
@@ -22,7 +22,7 @@ const NewConfirmationDialogContent = ( {
|
|
|
22
22
|
} ) => (
|
|
23
23
|
<Box className={ classNames( 'vip-confirmation-dialog-component', className ) }>
|
|
24
24
|
<Flex sx={ { justifyContent: 'flex-end', mt: 4 } }>
|
|
25
|
-
<Button variant="
|
|
25
|
+
<Button variant="ghost" sx={ { mr: 2 } } onClick={ onClose }>
|
|
26
26
|
Cancel
|
|
27
27
|
</Button>
|
|
28
28
|
<NewDialog.Close>
|
|
@@ -47,7 +47,7 @@ export const DialogCloseDefault = forwardRef< HTMLButtonElement, DialogCloseDefa
|
|
|
47
47
|
<Button
|
|
48
48
|
ref={ forwardedRef }
|
|
49
49
|
aria-label="Close"
|
|
50
|
-
variant="
|
|
50
|
+
variant="ghost"
|
|
51
51
|
sx={ defaultCloseStyles( variant ) }
|
|
52
52
|
>
|
|
53
53
|
<IoClose aria-hidden="true" width={ 20 } height={ 20 } />
|
|
@@ -34,6 +34,7 @@ export const Default = () => {
|
|
|
34
34
|
{
|
|
35
35
|
title: 'Configure DNS',
|
|
36
36
|
titleVariant: 'h2',
|
|
37
|
+
summaryTitle: 'Summary of Configure DNS',
|
|
37
38
|
},
|
|
38
39
|
{
|
|
39
40
|
title: 'Configure Certificate',
|
|
@@ -47,7 +48,13 @@ export const Default = () => {
|
|
|
47
48
|
return (
|
|
48
49
|
<React.Fragment>
|
|
49
50
|
<Box mt={ 4 }>
|
|
50
|
-
<Wizard
|
|
51
|
+
<Wizard
|
|
52
|
+
activeStep={ 0 }
|
|
53
|
+
steps={ steps }
|
|
54
|
+
completed={ [ 1 ] }
|
|
55
|
+
summaryAs="dl"
|
|
56
|
+
className="vip-wizard-xyz"
|
|
57
|
+
/>
|
|
51
58
|
</Box>
|
|
52
59
|
</React.Fragment>
|
|
53
60
|
);
|
|
@@ -79,7 +79,7 @@ export const WizardStep = React.forwardRef< HTMLDivElement, WizardStepProps >(
|
|
|
79
79
|
if ( statusText !== '' ) {
|
|
80
80
|
statusText = `Status: ${ statusText }`;
|
|
81
81
|
}
|
|
82
|
-
const stepText = `
|
|
82
|
+
const stepText = `STEP ${ order } OF ${ totalSteps }`;
|
|
83
83
|
|
|
84
84
|
const borderLeftColor = `wizard.step.border.${ status }`;
|
|
85
85
|
const statusIconColor = `wizard.step.icon.${ status }`;
|
|
@@ -104,6 +104,7 @@ export const WizardStep = React.forwardRef< HTMLDivElement, WizardStepProps >(
|
|
|
104
104
|
backgroundColor: active ? 'background' : 'transparent',
|
|
105
105
|
borderRadius: 0,
|
|
106
106
|
borderBottom: active ? 'none' : '1px solid',
|
|
107
|
+
borderRight: active ? 'none' : '1px solid',
|
|
107
108
|
'&:first-of-type': {
|
|
108
109
|
borderTopWidth: '1px',
|
|
109
110
|
borderTopStyle: 'solid',
|
|
@@ -168,8 +169,8 @@ export const WizardStep = React.forwardRef< HTMLDivElement, WizardStepProps >(
|
|
|
168
169
|
</Button>
|
|
169
170
|
) }
|
|
170
171
|
</Flex>
|
|
171
|
-
{ ! active && ( complete || skipped ) && summary && (
|
|
172
|
-
<DescriptionList as={ summaryAs } list={ summary } title={ summaryTitle } />
|
|
172
|
+
{ ! active && ( complete || skipped ) && ( summary || summaryTitle ) && (
|
|
173
|
+
<DescriptionList as={ summaryAs } list={ summary || [] } title={ summaryTitle } />
|
|
173
174
|
) }
|
|
174
175
|
|
|
175
176
|
{ subTitle && active && <Text sx={ { mb: 3, mt: 2 } }>{ subTitle }</Text> }
|
|
@@ -362,6 +362,30 @@ export default {
|
|
|
362
362
|
fill: 'inherit',
|
|
363
363
|
},
|
|
364
364
|
},
|
|
365
|
+
'&[data-danger="true"]': {
|
|
366
|
+
color: 'button.danger.primary.label.default',
|
|
367
|
+
bg: 'button.danger.primary.background.default',
|
|
368
|
+
border: '1px solid',
|
|
369
|
+
borderColor: 'transparent',
|
|
370
|
+
},
|
|
371
|
+
|
|
372
|
+
'&:hover[data-danger="true"]': {
|
|
373
|
+
backgroundColor: 'button.danger.primary.background.hover',
|
|
374
|
+
color: 'button.danger.primary.label.hover',
|
|
375
|
+
border: '1px solid',
|
|
376
|
+
borderColor: 'transparent',
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
380
|
+
backgroundColor: 'button.primary.background.disabled',
|
|
381
|
+
color: 'button.primary.label.disabled',
|
|
382
|
+
opacity: 0.7,
|
|
383
|
+
},
|
|
384
|
+
|
|
385
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
386
|
+
backgroundColor: 'button.secondary.background.disabled',
|
|
387
|
+
color: 'button.secondary.label.default',
|
|
388
|
+
},
|
|
365
389
|
},
|
|
366
390
|
|
|
367
391
|
secondary: {
|
|
@@ -373,6 +397,32 @@ export default {
|
|
|
373
397
|
backgroundColor: 'button.secondary.background.hover',
|
|
374
398
|
color: 'button.secondary.label.hover',
|
|
375
399
|
},
|
|
400
|
+
|
|
401
|
+
'&[data-danger="true"]': {
|
|
402
|
+
color: 'button.danger.secondary.label.default',
|
|
403
|
+
bg: 'button.danger.secondary.background.default',
|
|
404
|
+
border: '1px solid',
|
|
405
|
+
borderColor: 'button.danger.secondary.border.default',
|
|
406
|
+
},
|
|
407
|
+
|
|
408
|
+
'&:hover[data-danger="true"]': {
|
|
409
|
+
backgroundColor: 'button.danger.secondary.background.hover',
|
|
410
|
+
color: 'button.danger.secondary.label.hover',
|
|
411
|
+
border: '1px solid',
|
|
412
|
+
borderColor: 'transparent',
|
|
413
|
+
},
|
|
414
|
+
|
|
415
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
416
|
+
backgroundColor: 'button.secondary.background.disabled',
|
|
417
|
+
color: 'button.secondary.label.disabled',
|
|
418
|
+
},
|
|
419
|
+
|
|
420
|
+
'&[disabled][data-danger="true"], &[aria-disabled="true"][data-danger="true"]': {
|
|
421
|
+
backgroundColor: 'button.danger.secondary.background.default',
|
|
422
|
+
color: 'button.secondary.label.disabled',
|
|
423
|
+
border: '1px solid',
|
|
424
|
+
borderColor: 'button.secondary.border.default',
|
|
425
|
+
},
|
|
376
426
|
},
|
|
377
427
|
|
|
378
428
|
tertiary: {
|
|
@@ -388,6 +438,11 @@ export default {
|
|
|
388
438
|
border: '1px solid',
|
|
389
439
|
borderColor: 'button.tertiary.border.hover',
|
|
390
440
|
},
|
|
441
|
+
|
|
442
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
443
|
+
backgroundColor: 'button.tertiary.background.default',
|
|
444
|
+
color: 'texts.disabled',
|
|
445
|
+
},
|
|
391
446
|
},
|
|
392
447
|
|
|
393
448
|
display: {
|
|
@@ -403,6 +458,11 @@ export default {
|
|
|
403
458
|
border: '1px solid',
|
|
404
459
|
borderColor: 'transparent',
|
|
405
460
|
},
|
|
461
|
+
|
|
462
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
463
|
+
backgroundColor: 'button.display.background.disabled',
|
|
464
|
+
color: 'button.display.label.disabled',
|
|
465
|
+
},
|
|
406
466
|
},
|
|
407
467
|
|
|
408
468
|
ghost: {
|
|
@@ -418,6 +478,23 @@ export default {
|
|
|
418
478
|
border: '1px solid',
|
|
419
479
|
borderColor: 'transparent',
|
|
420
480
|
},
|
|
481
|
+
|
|
482
|
+
'&[disabled], &[aria-disabled="true"]': {
|
|
483
|
+
backgroundColor: 'button.ghost.background.default',
|
|
484
|
+
color: 'texts.disabled',
|
|
485
|
+
},
|
|
486
|
+
|
|
487
|
+
'&[data-danger="true"]': {
|
|
488
|
+
color: 'button.danger.ghost.label.default',
|
|
489
|
+
bg: 'button.danger.ghost.background.default',
|
|
490
|
+
},
|
|
491
|
+
|
|
492
|
+
'&:hover[data-danger="true"]': {
|
|
493
|
+
backgroundColor: 'button.danger.ghost.background.hover',
|
|
494
|
+
color: 'button.danger.ghost.label.hover',
|
|
495
|
+
border: '1px solid',
|
|
496
|
+
borderColor: 'transparent',
|
|
497
|
+
},
|
|
421
498
|
},
|
|
422
499
|
|
|
423
500
|
danger: {
|