@kaizen/components 1.65.0 → 1.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.cjs +6 -42
- package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.module.css.cjs +10 -0
- package/dist/cjs/Loading/LoadingSpinner/subcomponents/SpinnerIcon.cjs +80 -0
- package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.mjs +6 -42
- package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.module.css.mjs +8 -0
- package/dist/esm/Loading/LoadingSpinner/subcomponents/SpinnerIcon.mjs +72 -0
- package/dist/styles.css +61 -42
- package/dist/types/Loading/LoadingSpinner/LoadingSpinner.d.ts +2 -2
- package/dist/types/Loading/LoadingSpinner/subcomponents/SpinnerIcon.d.ts +5 -0
- package/dist/types/Loading/LoadingSpinner/subcomponents/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/Loading/LoadingSpinner/LoadingSpinner.module.css +32 -0
- package/src/Loading/LoadingSpinner/LoadingSpinner.tsx +10 -54
- package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.mdx +7 -2
- package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.stickersheet.stories.tsx +2 -1
- package/src/Loading/LoadingSpinner/_docs/LoadingSpinner.stories.tsx +19 -0
- package/src/Loading/LoadingSpinner/subcomponents/SpinnerIcon.tsx +87 -0
- package/src/Loading/LoadingSpinner/subcomponents/index.ts +1 -0
- package/src/__actions__/Button/v3/_docs/Button.stickersheet.stories.tsx +2 -2
- package/dist/cjs/Loading/LoadingSpinner/LoadingSpinner.module.scss.cjs +0 -7
- package/dist/esm/Loading/LoadingSpinner/LoadingSpinner.module.scss.mjs +0 -5
- package/src/Loading/LoadingSpinner/LoadingSpinner.module.scss +0 -16
|
@@ -4,7 +4,8 @@ var tslib = require('tslib');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classnames = require('classnames');
|
|
6
6
|
var VisuallyHidden = require('../../VisuallyHidden/VisuallyHidden.cjs');
|
|
7
|
-
var
|
|
7
|
+
var SpinnerIcon = require('./subcomponents/SpinnerIcon.cjs');
|
|
8
|
+
var LoadingSpinner_module = require('./LoadingSpinner.module.css.cjs');
|
|
8
9
|
function _interopDefault(e) {
|
|
9
10
|
return e && e.__esModule ? e : {
|
|
10
11
|
default: e
|
|
@@ -25,48 +26,11 @@ var LoadingSpinner = function (_a) {
|
|
|
25
26
|
classNameOverride = _a.classNameOverride,
|
|
26
27
|
props = tslib.__rest(_a, ["accessibilityLabel", "size", "classNameOverride"]);
|
|
27
28
|
return React__default.default.createElement("div", tslib.__assign({
|
|
28
|
-
|
|
29
|
-
className: classnames__default.default(LoadingSpinner_module.loadingSpinner, classNameOverride),
|
|
29
|
+
className: classnames__default.default(LoadingSpinner_module.loadingSpinner, LoadingSpinner_module[size], classNameOverride),
|
|
30
30
|
role: "status"
|
|
31
|
-
}, props), React__default.default.createElement(VisuallyHidden.VisuallyHidden, null, accessibilityLabel),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
viewBox: "0 0 48 48",
|
|
35
|
-
width: 48,
|
|
36
|
-
fill: "none",
|
|
37
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
38
|
-
}, React__default.default.createElement("circle", {
|
|
39
|
-
cx: "24",
|
|
40
|
-
cy: "24",
|
|
41
|
-
r: "22.5",
|
|
42
|
-
stroke: "currentColor",
|
|
43
|
-
strokeWidth: "3",
|
|
44
|
-
strokeOpacity: "0.3"
|
|
45
|
-
}), React__default.default.createElement("path", {
|
|
46
|
-
fillRule: "evenodd",
|
|
47
|
-
clipRule: "evenodd",
|
|
48
|
-
fill: "currentColor",
|
|
49
|
-
d: "M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
50
|
-
})) : React__default.default.createElement("svg", {
|
|
51
|
-
className: LoadingSpinner_module.spinner,
|
|
52
|
-
"aria-hidden": "true",
|
|
53
|
-
viewBox: "0 0 24 24",
|
|
54
|
-
width: 24,
|
|
55
|
-
fill: "none",
|
|
56
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
57
|
-
}, React__default.default.createElement("circle", {
|
|
58
|
-
cx: "12",
|
|
59
|
-
cy: "12",
|
|
60
|
-
r: "9",
|
|
61
|
-
stroke: "currentColor",
|
|
62
|
-
strokeWidth: "2",
|
|
63
|
-
strokeOpacity: "0.3"
|
|
64
|
-
}), React__default.default.createElement("path", {
|
|
65
|
-
fillRule: "evenodd",
|
|
66
|
-
clipRule: "evenodd",
|
|
67
|
-
fill: "currentColor",
|
|
68
|
-
d: "M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
69
|
-
})));
|
|
31
|
+
}, props), React__default.default.createElement(VisuallyHidden.VisuallyHidden, null, accessibilityLabel), React__default.default.createElement(SpinnerIcon.SpinnerIcon, {
|
|
32
|
+
size: size
|
|
33
|
+
}));
|
|
70
34
|
};
|
|
71
35
|
LoadingSpinner.displayName = "LoadingSpinner";
|
|
72
36
|
exports.LoadingSpinner = LoadingSpinner;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var styles = {
|
|
4
|
+
"loadingSpinner": "LoadingSpinner-module_loadingSpinner__Zc2mJ",
|
|
5
|
+
"xs": "LoadingSpinner-module_xs__y46OT",
|
|
6
|
+
"sm": "LoadingSpinner-module_sm__nkmIa",
|
|
7
|
+
"md": "LoadingSpinner-module_md__OWP2-",
|
|
8
|
+
"spinner": "LoadingSpinner-module_spinner__BKrX0"
|
|
9
|
+
};
|
|
10
|
+
module.exports = styles;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var LoadingSpinner_module = require('../LoadingSpinner.module.css.cjs');
|
|
5
|
+
function _interopDefault(e) {
|
|
6
|
+
return e && e.__esModule ? e : {
|
|
7
|
+
default: e
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
11
|
+
var SmallSpinnerIcon = function () {
|
|
12
|
+
return React__default.default.createElement("svg", {
|
|
13
|
+
className: LoadingSpinner_module.spinner,
|
|
14
|
+
"aria-hidden": "true",
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
fill: "none",
|
|
17
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
18
|
+
}, React__default.default.createElement("circle", {
|
|
19
|
+
cx: "12",
|
|
20
|
+
cy: "12",
|
|
21
|
+
r: "9",
|
|
22
|
+
stroke: "currentColor",
|
|
23
|
+
strokeWidth: "2",
|
|
24
|
+
strokeOpacity: "0.3"
|
|
25
|
+
}), React__default.default.createElement("path", {
|
|
26
|
+
fillRule: "evenodd",
|
|
27
|
+
clipRule: "evenodd",
|
|
28
|
+
fill: "currentColor",
|
|
29
|
+
d: "M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
30
|
+
}));
|
|
31
|
+
};
|
|
32
|
+
var MediumSpinnerIcon = function () {
|
|
33
|
+
return React__default.default.createElement("svg", {
|
|
34
|
+
className: LoadingSpinner_module.spinner,
|
|
35
|
+
"aria-hidden": "true",
|
|
36
|
+
viewBox: "0 0 48 48",
|
|
37
|
+
fill: "none",
|
|
38
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
39
|
+
}, React__default.default.createElement("circle", {
|
|
40
|
+
cx: "24",
|
|
41
|
+
cy: "24",
|
|
42
|
+
r: "22.5",
|
|
43
|
+
stroke: "currentColor",
|
|
44
|
+
strokeWidth: "3",
|
|
45
|
+
strokeOpacity: "0.3"
|
|
46
|
+
}), React__default.default.createElement("path", {
|
|
47
|
+
fillRule: "evenodd",
|
|
48
|
+
clipRule: "evenodd",
|
|
49
|
+
fill: "currentColor",
|
|
50
|
+
d: "M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
var ExtraSmallSpinnerIcon = function () {
|
|
54
|
+
return React__default.default.createElement("svg", {
|
|
55
|
+
className: LoadingSpinner_module.spinner,
|
|
56
|
+
viewBox: "0 0 16 16",
|
|
57
|
+
fill: "none",
|
|
58
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
59
|
+
}, React__default.default.createElement("circle", {
|
|
60
|
+
opacity: "0.3",
|
|
61
|
+
cx: "8",
|
|
62
|
+
cy: "8",
|
|
63
|
+
r: "6",
|
|
64
|
+
stroke: "currentColor",
|
|
65
|
+
strokeWidth: "2"
|
|
66
|
+
}), React__default.default.createElement("path", {
|
|
67
|
+
d: "M14 8C14 4.68629 11.3137 2 8 2",
|
|
68
|
+
stroke: "currentColor",
|
|
69
|
+
strokeWidth: "2",
|
|
70
|
+
strokeLinecap: "round",
|
|
71
|
+
strokeLinejoin: "round"
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
var SpinnerIcon = function (_a) {
|
|
75
|
+
var size = _a.size;
|
|
76
|
+
if (size === "xs") return React__default.default.createElement(ExtraSmallSpinnerIcon, null);
|
|
77
|
+
if (size === "sm") return React__default.default.createElement(SmallSpinnerIcon, null);
|
|
78
|
+
return React__default.default.createElement(MediumSpinnerIcon, null);
|
|
79
|
+
};
|
|
80
|
+
exports.SpinnerIcon = SpinnerIcon;
|
|
@@ -2,7 +2,8 @@ import { __rest, __assign } from 'tslib';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import { VisuallyHidden } from '../../VisuallyHidden/VisuallyHidden.mjs';
|
|
5
|
-
import
|
|
5
|
+
import { SpinnerIcon } from './subcomponents/SpinnerIcon.mjs';
|
|
6
|
+
import styles from './LoadingSpinner.module.css.mjs';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082093253/Loading+Spinner Guidance} |
|
|
@@ -17,48 +18,11 @@ const LoadingSpinner = /*#__PURE__*/function () {
|
|
|
17
18
|
classNameOverride = _a.classNameOverride,
|
|
18
19
|
props = __rest(_a, ["accessibilityLabel", "size", "classNameOverride"]);
|
|
19
20
|
return /*#__PURE__*/React.createElement("div", __assign({
|
|
20
|
-
|
|
21
|
-
className: classnames(styles.loadingSpinner, classNameOverride),
|
|
21
|
+
className: classnames(styles.loadingSpinner, styles[size], classNameOverride),
|
|
22
22
|
role: "status"
|
|
23
|
-
}, props), /*#__PURE__*/React.createElement(VisuallyHidden, null, accessibilityLabel),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
viewBox: "0 0 48 48",
|
|
27
|
-
width: 48,
|
|
28
|
-
fill: "none",
|
|
29
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
30
|
-
}, /*#__PURE__*/React.createElement("circle", {
|
|
31
|
-
cx: "24",
|
|
32
|
-
cy: "24",
|
|
33
|
-
r: "22.5",
|
|
34
|
-
stroke: "currentColor",
|
|
35
|
-
strokeWidth: "3",
|
|
36
|
-
strokeOpacity: "0.3"
|
|
37
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
38
|
-
fillRule: "evenodd",
|
|
39
|
-
clipRule: "evenodd",
|
|
40
|
-
fill: "currentColor",
|
|
41
|
-
d: "M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
42
|
-
}))) : ( /*#__PURE__*/React.createElement("svg", {
|
|
43
|
-
className: styles.spinner,
|
|
44
|
-
"aria-hidden": "true",
|
|
45
|
-
viewBox: "0 0 24 24",
|
|
46
|
-
width: 24,
|
|
47
|
-
fill: "none",
|
|
48
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
49
|
-
}, /*#__PURE__*/React.createElement("circle", {
|
|
50
|
-
cx: "12",
|
|
51
|
-
cy: "12",
|
|
52
|
-
r: "9",
|
|
53
|
-
stroke: "currentColor",
|
|
54
|
-
strokeWidth: "2",
|
|
55
|
-
strokeOpacity: "0.3"
|
|
56
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
57
|
-
fillRule: "evenodd",
|
|
58
|
-
clipRule: "evenodd",
|
|
59
|
-
fill: "currentColor",
|
|
60
|
-
d: "M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
61
|
-
}))));
|
|
23
|
+
}, props), /*#__PURE__*/React.createElement(VisuallyHidden, null, accessibilityLabel), /*#__PURE__*/React.createElement(SpinnerIcon, {
|
|
24
|
+
size: size
|
|
25
|
+
}));
|
|
62
26
|
};
|
|
63
27
|
LoadingSpinner.displayName = "LoadingSpinner";
|
|
64
28
|
return LoadingSpinner;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"loadingSpinner": "LoadingSpinner-module_loadingSpinner__Zc2mJ",
|
|
3
|
+
"xs": "LoadingSpinner-module_xs__y46OT",
|
|
4
|
+
"sm": "LoadingSpinner-module_sm__nkmIa",
|
|
5
|
+
"md": "LoadingSpinner-module_md__OWP2-",
|
|
6
|
+
"spinner": "LoadingSpinner-module_spinner__BKrX0"
|
|
7
|
+
};
|
|
8
|
+
export { styles as default };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styles from '../LoadingSpinner.module.css.mjs';
|
|
3
|
+
var SmallSpinnerIcon = function () {
|
|
4
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
5
|
+
className: styles.spinner,
|
|
6
|
+
"aria-hidden": "true",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
fill: "none",
|
|
9
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
10
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
11
|
+
cx: "12",
|
|
12
|
+
cy: "12",
|
|
13
|
+
r: "9",
|
|
14
|
+
stroke: "currentColor",
|
|
15
|
+
strokeWidth: "2",
|
|
16
|
+
strokeOpacity: "0.3"
|
|
17
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
18
|
+
fillRule: "evenodd",
|
|
19
|
+
clipRule: "evenodd",
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
d: "M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
var MediumSpinnerIcon = function () {
|
|
25
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
26
|
+
className: styles.spinner,
|
|
27
|
+
"aria-hidden": "true",
|
|
28
|
+
viewBox: "0 0 48 48",
|
|
29
|
+
fill: "none",
|
|
30
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
31
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
32
|
+
cx: "24",
|
|
33
|
+
cy: "24",
|
|
34
|
+
r: "22.5",
|
|
35
|
+
stroke: "currentColor",
|
|
36
|
+
strokeWidth: "3",
|
|
37
|
+
strokeOpacity: "0.3"
|
|
38
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
39
|
+
fillRule: "evenodd",
|
|
40
|
+
clipRule: "evenodd",
|
|
41
|
+
fill: "currentColor",
|
|
42
|
+
d: "M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
43
|
+
}));
|
|
44
|
+
};
|
|
45
|
+
var ExtraSmallSpinnerIcon = function () {
|
|
46
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
47
|
+
className: styles.spinner,
|
|
48
|
+
viewBox: "0 0 16 16",
|
|
49
|
+
fill: "none",
|
|
50
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
51
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
52
|
+
opacity: "0.3",
|
|
53
|
+
cx: "8",
|
|
54
|
+
cy: "8",
|
|
55
|
+
r: "6",
|
|
56
|
+
stroke: "currentColor",
|
|
57
|
+
strokeWidth: "2"
|
|
58
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
59
|
+
d: "M14 8C14 4.68629 11.3137 2 8 2",
|
|
60
|
+
stroke: "currentColor",
|
|
61
|
+
strokeWidth: "2",
|
|
62
|
+
strokeLinecap: "round",
|
|
63
|
+
strokeLinejoin: "round"
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
var SpinnerIcon = function (_a) {
|
|
67
|
+
var size = _a.size;
|
|
68
|
+
if (size === "xs") return /*#__PURE__*/React.createElement(ExtraSmallSpinnerIcon, null);
|
|
69
|
+
if (size === "sm") return /*#__PURE__*/React.createElement(SmallSpinnerIcon, null);
|
|
70
|
+
return /*#__PURE__*/React.createElement(MediumSpinnerIcon, null);
|
|
71
|
+
};
|
|
72
|
+
export { SpinnerIcon };
|
package/dist/styles.css
CHANGED
|
@@ -1,38 +1,4 @@
|
|
|
1
1
|
@layer tokens, normalize, reset;@layer tokens{:root{--theme-key:heart;--animation-easing-function-ease-in-out:cubic-bezier(0.455,0.03,0.515,0.955);--animation-easing-function-ease-in:cubic-bezier(0.55,0.085,0.68,0.53);--animation-easing-function-ease-out:cubic-bezier(0.25,0.46,0.45,0.94);--animation-easing-function-linear:linear;--animation-easing-function-bounce-in:cubic-bezier(0.485,0.155,0.24,1.245);--animation-easing-function-bounce-out:cubic-bezier(0.485,0.155,0.515,0.845);--animation-easing-function-bounce-in-out:cubic-bezier(0.76,-0.245,0.24,1.245);--animation-duration-instant:0ms;--animation-duration-immediate:100ms;--animation-duration-rapid:200ms;--animation-duration-fast:300ms;--animation-duration-slow:400ms;--animation-duration-deliberate:700ms;--border-solid-border-width:2px;--border-solid-border-radius:7px;--border-solid-border-style:solid;--border-solid-border-color:#e1e2ea;--border-solid-border-color-rgb:225,226,234;--border-dashed-border-width:2px;--border-dashed-border-radius:7px;--border-dashed-border-style:dashed;--border-borderless-border-width:2px;--border-borderless-border-radius:7px;--border-borderless-border-style:solid;--border-borderless-border-color:transparent;--border-borderless-border-color-rgb:0,0,0;--border-focus-ring-border-width:2px;--border-focus-ring-border-radius:10px;--border-focus-ring-border-style:solid;--border-width-1:1px;--color-purple-100:#f4edf8;--color-purple-100-rgb:244,237,248;--color-purple-200:#dfc9ea;--color-purple-200-rgb:223,201,234;--color-purple-300:#c9a5dd;--color-purple-300-rgb:201,165,221;--color-purple-400:#ae67b1;--color-purple-400-rgb:174,103,177;--color-purple-500:#844587;--color-purple-500-rgb:132,69,135;--color-purple-600:#5f3361;--color-purple-600-rgb:95,51,97;--color-purple-700:#4a234d;--color-purple-700-rgb:74,35,77;--color-purple-800:#2f2438;--color-purple-800-rgb:47,36,56;--color-blue-100:#e6f6ff;--color-blue-100-rgb:230,246,255;--color-blue-200:#bde2f5;--color-blue-200-rgb:189,226,245;--color-blue-300:#73c0e8;--color-blue-300-rgb:115,192,232;--color-blue-400:#008bd6;--color-blue-400-rgb:0,139,214;--color-blue-500:#0168b3;--color-blue-500-rgb:1,104,179;--color-blue-600:#004970;--color-blue-600-rgb:0,73,112;--color-blue-700:#003157;--color-blue-700-rgb:0,49,87;--color-green-100:#e8f8f4;--color-green-100-rgb:232,248,244;--color-green-200:#c4ede2;--color-green-200-rgb:196,237,226;--color-green-300:#8fdbc7;--color-green-300-rgb:143,219,199;--color-green-400:#5dcaad;--color-green-400-rgb:93,202,173;--color-green-500:#3f9a86;--color-green-500-rgb:63,154,134;--color-green-600:#2c7d67;--color-green-600-rgb:44,125,103;--color-green-700:#22594a;--color-green-700-rgb:34,89,74;--color-yellow-100:#fff9e4;--color-yellow-100-rgb:255,249,228;--color-yellow-200:#ffeeb3;--color-yellow-200-rgb:255,238,179;--color-yellow-300:#ffe36e;--color-yellow-300-rgb:255,227,110;--color-yellow-400:#ffca4d;--color-yellow-400-rgb:255,202,77;--color-yellow-500:#ffb600;--color-yellow-500-rgb:255,182,0;--color-yellow-600:#c68600;--color-yellow-600-rgb:198,134,0;--color-yellow-700:#876400;--color-yellow-700-rgb:135,100,0;--color-red-100:#fdeaee;--color-red-100-rgb:253,234,238;--color-red-200:#f9c2cb;--color-red-200-rgb:249,194,203;--color-red-300:#f597a8;--color-red-300-rgb:245,151,168;--color-red-400:#e0707d;--color-red-400-rgb:224,112,125;--color-red-500:#c93b55;--color-red-500-rgb:201,59,85;--color-red-600:#a82433;--color-red-600-rgb:168,36,51;--color-red-700:#6c1e20;--color-red-700-rgb:108,30,32;--color-orange-100:#fff0e8;--color-orange-100-rgb:255,240,232;--color-orange-200:#ffd1b9;--color-orange-200-rgb:255,209,185;--color-orange-300:#ffb08a;--color-orange-300-rgb:255,176,138;--color-orange-400:#ff9461;--color-orange-400-rgb:255,148,97;--color-orange-500:#e96c2f;--color-orange-500-rgb:233,108,47;--color-orange-600:#b74302;--color-orange-600-rgb:183,67,2;--color-orange-700:#903c00;--color-orange-700-rgb:144,60,0;--color-gray-100:#f9f9f9;--color-gray-100-rgb:249,249,249;--color-gray-200:#f4f4f5;--color-gray-200-rgb:244,244,245;--color-gray-300:#eaeaec;--color-gray-300-rgb:234,234,236;--color-gray-400:#cdcdd0;--color-gray-400-rgb:205,205,208;--color-gray-500:#878792;--color-gray-500-rgb:135,135,146;--color-gray-600:#524e56;--color-gray-600-rgb:82,78,86;--color-white:#fff;--color-white-rgb:255,255,255;--color-black:#000;--color-black-rgb:0,0,0;--data-viz-favorable:#7dd5bd;--data-viz-favorable-rgb:125,213,189;--data-viz-unfavorable:#e68d97;--data-viz-unfavorable-rgb:230,141,151;--layout-content-max-width:1392px;--layout-content-max-width-with-sidebar:1080px;--layout-content-side-margin:72px;--layout-mobile-actions-drawer-height:60px;--layout-navigation-bar-height:72px;--layout-breakpoints-medium:768px;--layout-breakpoints-large:1080px;--shadow-small-box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 3px 16px 0 rgba(0,0,0,.06);--shadow-large-box-shadow:0 3px 9px 0 rgba(0,0,0,.1),0 8px 40px 0 rgba(0,0,0,.08);--spacing-0:0;--spacing-1:.0625rem;--spacing-2:.125rem;--spacing-4:.25rem;--spacing-6:.375rem;--spacing-8:.5rem;--spacing-12:.75rem;--spacing-16:1rem;--spacing-20:1.25rem;--spacing-24:1.5rem;--spacing-32:2rem;--spacing-40:2.5rem;--spacing-48:3rem;--spacing-56:3.5rem;--spacing-64:4rem;--spacing-72:4.5rem;--spacing-80:5rem;--spacing-96:6rem;--spacing-112:7rem;--spacing-128:8rem;--spacing-160:10rem;--spacing-200:12.5rem;--spacing-240:15rem;--spacing-280:17.5rem;--spacing-320:20rem;--spacing-xs:0.375rem;--spacing-sm:0.75rem;--spacing-md:1.5rem;--spacing-lg:2.25rem;--spacing-xl:3rem;--spacing-xxl:3.75rem;--spacing-xxxl:4.5rem;--spacing-xxxxl:5.25rem;--spacing-xxxxxl:6rem;--typography-data-large-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-font-weight:700;--typography-data-large-font-size:5.25rem;--typography-data-large-line-height:5.25rem;--typography-data-large-letter-spacing:normal;--typography-data-large-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-large-units-font-weight:700;--typography-data-large-units-font-size:2.625rem;--typography-data-large-units-line-height:5.25rem;--typography-data-large-units-letter-spacing:normal;--typography-data-medium-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-font-weight:700;--typography-data-medium-font-size:3rem;--typography-data-medium-line-height:5rem;--typography-data-medium-letter-spacing:normal;--typography-data-medium-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-medium-units-font-weight:700;--typography-data-medium-units-font-size:1.5rem;--typography-data-medium-units-line-height:5rem;--typography-data-medium-units-letter-spacing:normal;--typography-data-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-font-weight:700;--typography-data-small-font-size:1.5rem;--typography-data-small-line-height:1.5rem;--typography-data-small-letter-spacing:normal;--typography-data-small-units-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-data-small-units-font-weight:700;--typography-data-small-units-font-size:1.125rem;--typography-data-small-units-line-height:1.5rem;--typography-data-small-units-letter-spacing:normal;--typography-display-0-font-family:"Tiempos Headline",Georgia,serif;--typography-display-0-font-weight:800;--typography-display-0-font-size:4.5rem;--typography-display-0-line-height:5.25rem;--typography-display-0-letter-spacing:0em;--typography-heading-1-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-1-font-weight:500;--typography-heading-1-font-size:2.125rem;--typography-heading-1-line-height:2.625rem;--typography-heading-1-letter-spacing:normal;--typography-heading-2-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-2-font-weight:600;--typography-heading-2-font-size:1.75rem;--typography-heading-2-line-height:2.25rem;--typography-heading-2-letter-spacing:normal;--typography-heading-3-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-3-font-weight:600;--typography-heading-3-font-size:1.375rem;--typography-heading-3-line-height:1.875rem;--typography-heading-3-letter-spacing:normal;--typography-heading-4-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-4-font-weight:600;--typography-heading-4-font-size:1.125rem;--typography-heading-4-line-height:1.5rem;--typography-heading-4-letter-spacing:normal;--typography-heading-5-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-5-font-weight:600;--typography-heading-5-font-size:1rem;--typography-heading-5-line-height:1.5rem;--typography-heading-5-letter-spacing:normal;--typography-heading-6-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-heading-6-font-weight:600;--typography-heading-6-font-size:0.875rem;--typography-heading-6-line-height:1.5rem;--typography-heading-6-letter-spacing:normal;--typography-paragraph-intro-lede-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-intro-lede-font-weight:400;--typography-paragraph-intro-lede-font-size:1.25rem;--typography-paragraph-intro-lede-line-height:1.875rem;--typography-paragraph-intro-lede-letter-spacing:0;--typography-paragraph-intro-lede-max-width:975px;--typography-paragraph-body-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-body-font-weight:400;--typography-paragraph-body-font-size:1rem;--typography-paragraph-body-line-height:1.5rem;--typography-paragraph-body-letter-spacing:normal;--typography-paragraph-body-max-width:780px;--typography-paragraph-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-small-font-weight:400;--typography-paragraph-small-font-size:0.875rem;--typography-paragraph-small-line-height:1.125rem;--typography-paragraph-small-letter-spacing:normal;--typography-paragraph-small-max-width:680px;--typography-paragraph-extra-small-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-paragraph-extra-small-font-weight:400;--typography-paragraph-extra-small-font-size:0.75rem;--typography-paragraph-extra-small-line-height:1.125rem;--typography-paragraph-extra-small-letter-spacing:normal;--typography-paragraph-extra-small-max-width:600px;--typography-paragraph-bold-font-weight:600;--typography-button-primary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-primary-font-weight:700;--typography-button-primary-font-size:1.125rem;--typography-button-primary-line-height:1.5rem;--typography-button-primary-letter-spacing:normal;--typography-button-secondary-font-family:"Inter","Noto Sans",Helvetica,Arial,sans-serif;--typography-button-secondary-font-weight:500;--typography-button-secondary-font-size:1rem;--typography-button-secondary-line-height:1.5rem;--typography-button-secondary-letter-spacing:normal}}@layer normalize{html{text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{appearance:none}::-webkit-file-upload-button{appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}}@layer reset{@font-face{font-family:Tiempos Headline;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-bold.woff)}@font-face{font-family:Tiempos Headline;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/tiempos/tiempos-headline-medium.woff)}@font-face{font-family:Greycliff CF;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-light.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-regular.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-medium.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-demi-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-bold.woff) format("woff")}@font-face{font-family:Greycliff CF;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/greycliff/greycliff-cf-extra-bold.woff) format("woff")}@font-face{font-family:Inter;font-weight:300;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-light.woff)}@font-face{font-family:Inter;font-weight:400;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-regular.woff)}@font-face{font-family:Inter;font-weight:500;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-medium.woff)}@font-face{font-family:Inter;font-weight:600;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-demi-bold.woff)}@font-face{font-family:Inter;font-weight:700;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-bold.woff)}@font-face{font-family:Inter;font-weight:800;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/inter/inter-extra-bold.woff)}@font-face{font-family:IBM Plex Mono;src:url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff2),url(https://d1e7r7b0lb8p4d.cloudfront.net/fonts/ibm-plex-mono/ibm-plex-mono-regular.woff)}}@layer reset{*,:after,:before{border-color:var(--border-solid-border-color,"currentColor");border-style:solid;border-width:0}}
|
|
2
|
-
.MenuItem-module_item__DPerF {
|
|
3
|
-
font-family: var(--typography-paragraph-body-font-family);
|
|
4
|
-
font-size: var(--typography-paragraph-body-font-size);
|
|
5
|
-
letter-spacing: var(--typography-paragraph-body-letter-spacing);
|
|
6
|
-
font-weight: var(--typography-paragraph-body-font-weight);
|
|
7
|
-
line-height: var(--typography-paragraph-body-line-height);
|
|
8
|
-
color: rgba(var(--color-purple-800-rgb), 0.7);
|
|
9
|
-
padding: var(--spacing-6) var(--spacing-8);
|
|
10
|
-
border: var(--border-focus-ring-border-width) var(--border-focus-ring-border-style) transparent;
|
|
11
|
-
border-radius: 4px;
|
|
12
|
-
display: flex;
|
|
13
|
-
gap: 0 var(--spacing-8);
|
|
14
|
-
align-items: center;
|
|
15
|
-
margin-inline: var(--spacing-6);
|
|
16
|
-
text-decoration: none;
|
|
17
|
-
cursor: pointer;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.MenuItem-module_iconWrapper__bRdQN {
|
|
21
|
-
flex-shrink: 0;
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.MenuItem-module_item__DPerF[data-focused] {
|
|
27
|
-
background-color: var(--color-blue-100);
|
|
28
|
-
color: var(--color-blue-500);
|
|
29
|
-
outline: none;
|
|
30
|
-
border-color: var(--color-blue-500);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.MenuItem-module_item__DPerF[data-disabled] {
|
|
34
|
-
opacity: 0.3;
|
|
35
|
-
}
|
|
36
2
|
.Button-module_button__QOSYH {
|
|
37
3
|
--button-min-height-width: var(--spacing-48);
|
|
38
4
|
--button-padding-x: calc(
|
|
@@ -121,9 +87,6 @@
|
|
|
121
87
|
--button-icon-size: var(--spacing-16);
|
|
122
88
|
gap: var(--spacing-8);
|
|
123
89
|
}
|
|
124
|
-
.Focusable-module_focusableWrapper__NfuIi {
|
|
125
|
-
display: inline-flex;
|
|
126
|
-
}
|
|
127
90
|
.Menu-module_menu__iHYqh {
|
|
128
91
|
background-color: var(--color-white);
|
|
129
92
|
color: var(--color-purple-800);
|
|
@@ -154,6 +117,43 @@
|
|
|
154
117
|
display: block;
|
|
155
118
|
margin-block: var(--spacing-6);
|
|
156
119
|
}
|
|
120
|
+
.MenuItem-module_item__DPerF {
|
|
121
|
+
font-family: var(--typography-paragraph-body-font-family);
|
|
122
|
+
font-size: var(--typography-paragraph-body-font-size);
|
|
123
|
+
letter-spacing: var(--typography-paragraph-body-letter-spacing);
|
|
124
|
+
font-weight: var(--typography-paragraph-body-font-weight);
|
|
125
|
+
line-height: var(--typography-paragraph-body-line-height);
|
|
126
|
+
color: rgba(var(--color-purple-800-rgb), 0.7);
|
|
127
|
+
padding: var(--spacing-6) var(--spacing-8);
|
|
128
|
+
border: var(--border-focus-ring-border-width) var(--border-focus-ring-border-style) transparent;
|
|
129
|
+
border-radius: 4px;
|
|
130
|
+
display: flex;
|
|
131
|
+
gap: 0 var(--spacing-8);
|
|
132
|
+
align-items: center;
|
|
133
|
+
margin-inline: var(--spacing-6);
|
|
134
|
+
text-decoration: none;
|
|
135
|
+
cursor: pointer;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.MenuItem-module_iconWrapper__bRdQN {
|
|
139
|
+
flex-shrink: 0;
|
|
140
|
+
display: flex;
|
|
141
|
+
align-items: center;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.MenuItem-module_item__DPerF[data-focused] {
|
|
145
|
+
background-color: var(--color-blue-100);
|
|
146
|
+
color: var(--color-blue-500);
|
|
147
|
+
outline: none;
|
|
148
|
+
border-color: var(--color-blue-500);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.MenuItem-module_item__DPerF[data-disabled] {
|
|
152
|
+
opacity: 0.3;
|
|
153
|
+
}
|
|
154
|
+
.Focusable-module_focusableWrapper__NfuIi {
|
|
155
|
+
display: inline-flex;
|
|
156
|
+
}
|
|
157
157
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
158
158
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
159
159
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
@@ -1098,20 +1098,39 @@
|
|
|
1098
1098
|
white-space: nowrap;
|
|
1099
1099
|
width: 1px;
|
|
1100
1100
|
}
|
|
1101
|
-
|
|
1102
|
-
|
|
1101
|
+
.LoadingSpinner-module_loadingSpinner__Zc2mJ {
|
|
1102
|
+
--loading-spinner-size: 48px;
|
|
1103
|
+
|
|
1103
1104
|
display: flex;
|
|
1105
|
+
width: var(--loading-spinner-size);
|
|
1106
|
+
height: var(--loading-spinner-size);
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
.LoadingSpinner-module_xs__y46OT {
|
|
1110
|
+
--loading-spinner-size: 16px;
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
.LoadingSpinner-module_sm__nkmIa {
|
|
1114
|
+
--loading-spinner-size: 24px;
|
|
1104
1115
|
}
|
|
1105
1116
|
|
|
1106
|
-
.LoadingSpinner-
|
|
1107
|
-
|
|
1117
|
+
.LoadingSpinner-module_md__OWP2- {
|
|
1118
|
+
--loading-spinner-size: 48px;
|
|
1108
1119
|
}
|
|
1109
1120
|
|
|
1110
|
-
|
|
1121
|
+
.LoadingSpinner-module_spinner__BKrX0 {
|
|
1122
|
+
animation: LoadingSpinner-module_spinner__BKrX0 var(--animation-duration-deliberate)
|
|
1123
|
+
var(--animation-easing-function-ease-in-out) infinite;
|
|
1124
|
+
width: 100%;
|
|
1125
|
+
height: 100%;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
@keyframes LoadingSpinner-module_spinner__BKrX0 {
|
|
1111
1129
|
100% {
|
|
1112
1130
|
transform: rotate(360deg);
|
|
1113
1131
|
}
|
|
1114
1132
|
}
|
|
1133
|
+
|
|
1115
1134
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
1116
1135
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
1117
1136
|
/** THIS IS AN AUTOGENERATED FILE **/
|
|
@@ -3,9 +3,9 @@ import { OverrideClassName } from "../../types/OverrideClassName";
|
|
|
3
3
|
export type LoadingSpinnerProps = {
|
|
4
4
|
accessibilityLabel: string;
|
|
5
5
|
/**
|
|
6
|
-
* Generally use "md" unless spinner is inside a form field
|
|
6
|
+
* Generally use "md" unless spinner is inside a form field. @default "md"
|
|
7
7
|
*/
|
|
8
|
-
size?: "sm" | "md";
|
|
8
|
+
size?: "xs" | "sm" | "md";
|
|
9
9
|
} & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, "children">>;
|
|
10
10
|
/**
|
|
11
11
|
* {@link https://cultureamp.atlassian.net/wiki/spaces/DesignSystem/pages/3082093253/Loading+Spinner Guidance} |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./SpinnerIcon";
|
package/package.json
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
.loadingSpinner {
|
|
2
|
+
--loading-spinner-size: 48px;
|
|
3
|
+
|
|
4
|
+
display: flex;
|
|
5
|
+
width: var(--loading-spinner-size);
|
|
6
|
+
height: var(--loading-spinner-size);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.xs {
|
|
10
|
+
--loading-spinner-size: 16px;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sm {
|
|
14
|
+
--loading-spinner-size: 24px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.md {
|
|
18
|
+
--loading-spinner-size: 48px;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.spinner {
|
|
22
|
+
animation: spinner var(--animation-duration-deliberate)
|
|
23
|
+
var(--animation-easing-function-ease-in-out) infinite;
|
|
24
|
+
width: 100%;
|
|
25
|
+
height: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@keyframes spinner {
|
|
29
|
+
100% {
|
|
30
|
+
transform: rotate(360deg);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -2,14 +2,15 @@ import React, { HTMLAttributes } from "react"
|
|
|
2
2
|
import classnames from "classnames"
|
|
3
3
|
import { VisuallyHidden } from "~components/VisuallyHidden"
|
|
4
4
|
import { OverrideClassName } from "~components/types/OverrideClassName"
|
|
5
|
-
import
|
|
5
|
+
import { SpinnerIcon } from "./subcomponents"
|
|
6
|
+
import styles from "./LoadingSpinner.module.css"
|
|
6
7
|
|
|
7
8
|
export type LoadingSpinnerProps = {
|
|
8
9
|
accessibilityLabel: string
|
|
9
10
|
/**
|
|
10
|
-
* Generally use "md" unless spinner is inside a form field
|
|
11
|
+
* Generally use "md" unless spinner is inside a form field. @default "md"
|
|
11
12
|
*/
|
|
12
|
-
size?: "sm" | "md"
|
|
13
|
+
size?: "xs" | "sm" | "md"
|
|
13
14
|
} & OverrideClassName<Omit<HTMLAttributes<HTMLDivElement>, "children">>
|
|
14
15
|
|
|
15
16
|
/**
|
|
@@ -23,61 +24,16 @@ export const LoadingSpinner = ({
|
|
|
23
24
|
...props
|
|
24
25
|
}: LoadingSpinnerProps): JSX.Element => (
|
|
25
26
|
<div
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
className={classnames(
|
|
28
|
+
styles.loadingSpinner,
|
|
29
|
+
styles[size],
|
|
30
|
+
classNameOverride
|
|
31
|
+
)}
|
|
28
32
|
role="status"
|
|
29
33
|
{...props}
|
|
30
34
|
>
|
|
31
35
|
<VisuallyHidden>{accessibilityLabel}</VisuallyHidden>
|
|
32
|
-
{size
|
|
33
|
-
<svg
|
|
34
|
-
className={styles.spinner}
|
|
35
|
-
aria-hidden="true"
|
|
36
|
-
viewBox="0 0 48 48"
|
|
37
|
-
width={48} // Ideally we'd use spacing tokens converted to unitless values
|
|
38
|
-
fill="none"
|
|
39
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
40
|
-
>
|
|
41
|
-
<circle
|
|
42
|
-
cx="24"
|
|
43
|
-
cy="24"
|
|
44
|
-
r="22.5"
|
|
45
|
-
stroke="currentColor"
|
|
46
|
-
strokeWidth="3"
|
|
47
|
-
strokeOpacity="0.3"
|
|
48
|
-
/>
|
|
49
|
-
<path
|
|
50
|
-
fillRule="evenodd"
|
|
51
|
-
clipRule="evenodd"
|
|
52
|
-
fill="currentColor"
|
|
53
|
-
d="M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
54
|
-
/>
|
|
55
|
-
</svg>
|
|
56
|
-
) : (
|
|
57
|
-
<svg
|
|
58
|
-
className={styles.spinner}
|
|
59
|
-
aria-hidden="true"
|
|
60
|
-
viewBox="0 0 24 24"
|
|
61
|
-
width={24} // Ideally we'd use spacing tokens converted to unitless values
|
|
62
|
-
fill="none"
|
|
63
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
64
|
-
>
|
|
65
|
-
<circle
|
|
66
|
-
cx="12"
|
|
67
|
-
cy="12"
|
|
68
|
-
r="9"
|
|
69
|
-
stroke="currentColor"
|
|
70
|
-
strokeWidth="2"
|
|
71
|
-
strokeOpacity="0.3"
|
|
72
|
-
/>
|
|
73
|
-
<path
|
|
74
|
-
fillRule="evenodd"
|
|
75
|
-
clipRule="evenodd"
|
|
76
|
-
fill="currentColor"
|
|
77
|
-
d="M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
78
|
-
/>
|
|
79
|
-
</svg>
|
|
80
|
-
)}
|
|
36
|
+
<SpinnerIcon size={size} />
|
|
81
37
|
</div>
|
|
82
38
|
)
|
|
83
39
|
|
|
@@ -31,12 +31,17 @@ When inside a button, it is intended to have the same color as the label text.
|
|
|
31
31
|
|
|
32
32
|
### ClassNameOverride
|
|
33
33
|
|
|
34
|
-
Override styles such as the colour of the spinner using `classNameOverride`.
|
|
34
|
+
Override styles, such as the colour of the spinner using `classNameOverride`.
|
|
35
35
|
|
|
36
36
|
<Canvas of={LoadingSpinnerStories.ClassNameOverride} />
|
|
37
37
|
|
|
38
|
+
Below is an example of how to apply the current color tokens used in designs.
|
|
39
|
+
|
|
40
|
+
<Canvas of={LoadingSpinnerStories.Colors} />
|
|
41
|
+
|
|
38
42
|
### Size
|
|
39
43
|
|
|
40
|
-
Generally use `"md"` (default value) unless spinner is inside a form field.
|
|
44
|
+
Generally use `"md"` (default value) unless spinner is inside a form field, in which case use `sm`. The `xs` size is for buttons or content dense layouts.
|
|
41
45
|
|
|
42
46
|
<Canvas of={LoadingSpinnerStories.Size} />
|
|
47
|
+
|
|
@@ -18,10 +18,11 @@ const StickerSheetTemplate: StickerSheetStory = {
|
|
|
18
18
|
render: ({ isReversed }) => (
|
|
19
19
|
<StickerSheet isReversed={isReversed}>
|
|
20
20
|
<StickerSheet.Header
|
|
21
|
-
headings={['Size "sm"', 'Size "md"', "Custom
|
|
21
|
+
headings={['Size "xs"', 'Size "sm"', 'Size "md"', "Custom color"]}
|
|
22
22
|
/>
|
|
23
23
|
<StickerSheet.Body>
|
|
24
24
|
<StickerSheet.Row>
|
|
25
|
+
<LoadingSpinner accessibilityLabel="Loading" size="xs" />
|
|
25
26
|
<LoadingSpinner accessibilityLabel="Loading" size="sm" />
|
|
26
27
|
<LoadingSpinner accessibilityLabel="Loading" size="md" />
|
|
27
28
|
<LoadingSpinner
|
|
@@ -28,9 +28,28 @@ export const ClassNameOverride: Story = {
|
|
|
28
28
|
args: { classNameOverride: "text-green-400" },
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
+
export const Colors: Story = {
|
|
32
|
+
render: args => (
|
|
33
|
+
<>
|
|
34
|
+
<LoadingSpinner {...args} classNameOverride="text-green-400" />
|
|
35
|
+
<LoadingSpinner {...args} classNameOverride="text-purple-800" />
|
|
36
|
+
<LoadingSpinner {...args} classNameOverride="text-blue-500" />
|
|
37
|
+
<LoadingSpinner {...args} classNameOverride="text-red-500" />
|
|
38
|
+
</>
|
|
39
|
+
),
|
|
40
|
+
decorators: [
|
|
41
|
+
Story => (
|
|
42
|
+
<div className="flex gap-24">
|
|
43
|
+
<Story />
|
|
44
|
+
</div>
|
|
45
|
+
),
|
|
46
|
+
],
|
|
47
|
+
}
|
|
48
|
+
|
|
31
49
|
export const Size: Story = {
|
|
32
50
|
render: args => (
|
|
33
51
|
<>
|
|
52
|
+
<LoadingSpinner {...args} size="xs" />
|
|
34
53
|
<LoadingSpinner {...args} size="sm" />
|
|
35
54
|
<LoadingSpinner {...args} size="md" />
|
|
36
55
|
</>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React from "react"
|
|
2
|
+
import styles from "../LoadingSpinner.module.css"
|
|
3
|
+
|
|
4
|
+
const SmallSpinnerIcon = (): JSX.Element => (
|
|
5
|
+
<svg
|
|
6
|
+
className={styles.spinner}
|
|
7
|
+
aria-hidden="true"
|
|
8
|
+
viewBox="0 0 24 24"
|
|
9
|
+
fill="none"
|
|
10
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
11
|
+
>
|
|
12
|
+
<circle
|
|
13
|
+
cx="12"
|
|
14
|
+
cy="12"
|
|
15
|
+
r="9"
|
|
16
|
+
stroke="currentColor"
|
|
17
|
+
strokeWidth="2"
|
|
18
|
+
strokeOpacity="0.3"
|
|
19
|
+
/>
|
|
20
|
+
<path
|
|
21
|
+
fillRule="evenodd"
|
|
22
|
+
clipRule="evenodd"
|
|
23
|
+
fill="currentColor"
|
|
24
|
+
d="M21.0564 13c.5076 0 .9377-.3851.9431-.8926.0004-.0358.0005-.0716.0005-.1074 0-5.52285-4.4771-10-10-10-.0359 0-.0718.00019-.1076.00057-.5076.00535-.8926.43552-.8926.94308v.11543C10.9998 3.59163 11.4675 4 12 4c4.4183 0 8 3.58172 8 8 0 .5324.4083 1 .9407 1h.1157z"
|
|
25
|
+
/>
|
|
26
|
+
</svg>
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
const MediumSpinnerIcon = (): JSX.Element => (
|
|
30
|
+
<svg
|
|
31
|
+
className={styles.spinner}
|
|
32
|
+
aria-hidden="true"
|
|
33
|
+
viewBox="0 0 48 48"
|
|
34
|
+
fill="none"
|
|
35
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
36
|
+
>
|
|
37
|
+
<circle
|
|
38
|
+
cx="24"
|
|
39
|
+
cy="24"
|
|
40
|
+
r="22.5"
|
|
41
|
+
stroke="currentColor"
|
|
42
|
+
strokeWidth="3"
|
|
43
|
+
strokeOpacity="0.3"
|
|
44
|
+
/>
|
|
45
|
+
<path
|
|
46
|
+
fillRule="evenodd"
|
|
47
|
+
clipRule="evenodd"
|
|
48
|
+
fill="currentColor"
|
|
49
|
+
d="M46.5 24c.8284 0 1.5049-.6734 1.4539-1.5002C47.21 10.44 37.5601.789989 25.5003.0461639 24.6734-.004835 24 .671607 24 1.50003c0 .82843.6738 1.49444 1.5002 1.55277 10.4023.73424 18.7128 9.0447 19.447 19.447C45.0056 23.3262 45.6716 24 46.5 24z"
|
|
50
|
+
/>
|
|
51
|
+
</svg>
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
const ExtraSmallSpinnerIcon = (): JSX.Element => (
|
|
55
|
+
<svg
|
|
56
|
+
className={styles.spinner}
|
|
57
|
+
viewBox="0 0 16 16"
|
|
58
|
+
fill="none"
|
|
59
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
60
|
+
>
|
|
61
|
+
<circle
|
|
62
|
+
opacity="0.3"
|
|
63
|
+
cx="8"
|
|
64
|
+
cy="8"
|
|
65
|
+
r="6"
|
|
66
|
+
stroke="currentColor"
|
|
67
|
+
strokeWidth="2"
|
|
68
|
+
/>
|
|
69
|
+
<path
|
|
70
|
+
d="M14 8C14 4.68629 11.3137 2 8 2"
|
|
71
|
+
stroke="currentColor"
|
|
72
|
+
strokeWidth="2"
|
|
73
|
+
strokeLinecap="round"
|
|
74
|
+
strokeLinejoin="round"
|
|
75
|
+
/>
|
|
76
|
+
</svg>
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
type SpinnerIconProps = {
|
|
80
|
+
size: "xs" | "sm" | "md"
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const SpinnerIcon = ({ size }: SpinnerIconProps): JSX.Element => {
|
|
84
|
+
if (size === "xs") return <ExtraSmallSpinnerIcon />
|
|
85
|
+
if (size === "sm") return <SmallSpinnerIcon />
|
|
86
|
+
return <MediumSpinnerIcon />
|
|
87
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./SpinnerIcon"
|
|
@@ -82,7 +82,7 @@ const StickerSheetTemplate: StickerSheetStory = {
|
|
|
82
82
|
<ArrowForwardIcon role="presentation" />
|
|
83
83
|
</Button>
|
|
84
84
|
<Button size="small" isDisabled>
|
|
85
|
-
<LoadingSpinner size="
|
|
85
|
+
<LoadingSpinner size="xs" accessibilityLabel="submitting label" />
|
|
86
86
|
</Button>
|
|
87
87
|
</StickerSheet.Row>
|
|
88
88
|
<StickerSheet.Row rowTitle="Icon only small">
|
|
@@ -93,7 +93,7 @@ const StickerSheetTemplate: StickerSheetStory = {
|
|
|
93
93
|
<TrashIcon role="img" aria-label="Remove label" />
|
|
94
94
|
</Button>
|
|
95
95
|
<Button size="small" isDisabled>
|
|
96
|
-
<LoadingSpinner size="
|
|
96
|
+
<LoadingSpinner size="xs" accessibilityLabel="Removing label" />
|
|
97
97
|
</Button>
|
|
98
98
|
</StickerSheet.Row>
|
|
99
99
|
</StickerSheet.Body>
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
@import "~@kaizen/design-tokens/sass/animation";
|
|
2
|
-
|
|
3
|
-
.loadingSpinner {
|
|
4
|
-
display: flex;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.spinner {
|
|
8
|
-
animation: spinner $animation-duration-deliberate
|
|
9
|
-
$animation-easing-function-ease-in-out infinite;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@keyframes spinner {
|
|
13
|
-
100% {
|
|
14
|
-
transform: rotate(360deg);
|
|
15
|
-
}
|
|
16
|
-
}
|