@transferwise/components 0.0.0-experimental-8ef2fe2 → 0.0.0-experimental-1ffdc56
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/alert/Alert.js +33 -17
- package/build/alert/Alert.js.map +1 -1
- package/build/alert/Alert.mjs +30 -14
- package/build/alert/Alert.mjs.map +1 -1
- package/build/common/action/Action.js +26 -15
- package/build/common/action/Action.js.map +1 -1
- package/build/common/action/Action.mjs +26 -15
- package/build/common/action/Action.mjs.map +1 -1
- package/build/common/propsValues/sentiment.js +1 -0
- package/build/common/propsValues/sentiment.js.map +1 -1
- package/build/common/propsValues/sentiment.mjs +1 -0
- package/build/common/propsValues/sentiment.mjs.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.js +10 -73
- package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.mjs +11 -74
- package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
- package/build/i18n/en.json +1 -0
- package/build/i18n/en.json.js +1 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +1 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/main.css +14 -72
- package/build/statusIcon/StatusIcon.js +5 -1
- package/build/statusIcon/StatusIcon.js.map +1 -1
- package/build/statusIcon/StatusIcon.messages.js +3 -0
- package/build/statusIcon/StatusIcon.messages.js.map +1 -1
- package/build/statusIcon/StatusIcon.messages.mjs +3 -0
- package/build/statusIcon/StatusIcon.messages.mjs.map +1 -1
- package/build/statusIcon/StatusIcon.mjs +5 -1
- package/build/statusIcon/StatusIcon.mjs.map +1 -1
- package/build/styles/button/Button.css +3 -0
- package/build/styles/criticalBanner/CriticalCommsBanner.css +7 -72
- package/build/styles/main.css +14 -72
- package/build/styles/statusIcon/StatusIcon.css +4 -0
- package/build/types/alert/Alert.d.ts +2 -1
- package/build/types/alert/Alert.d.ts.map +1 -1
- package/build/types/common/action/Action.d.ts +4 -1
- package/build/types/common/action/Action.d.ts.map +1 -1
- package/build/types/common/propsValues/sentiment.d.ts +1 -0
- package/build/types/common/propsValues/sentiment.d.ts.map +1 -1
- package/build/types/criticalBanner/CriticalCommsBanner.d.ts.map +1 -1
- package/build/types/statusIcon/StatusIcon.d.ts.map +1 -1
- package/build/types/statusIcon/StatusIcon.messages.d.ts +5 -0
- package/build/types/statusIcon/StatusIcon.messages.d.ts.map +1 -1
- package/build/types/test-utils/index.d.ts +2 -0
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/alert/Alert.story.tsx +36 -0
- package/src/alert/Alert.tsx +37 -8
- package/src/button/Button.css +3 -0
- package/src/button/Button.less +6 -2
- package/src/button/Button.vars.less +0 -2
- package/src/common/action/Action.tsx +39 -21
- package/src/common/propsValues/sentiment.ts +1 -0
- package/src/criticalBanner/CriticalCommsBanner.css +7 -72
- package/src/criticalBanner/CriticalCommsBanner.less +12 -73
- package/src/criticalBanner/CriticalCommsBanner.story.tsx +13 -9
- package/src/criticalBanner/CriticalCommsBanner.tsx +8 -50
- package/src/i18n/en.json +1 -0
- package/src/main.css +14 -72
- package/src/statusIcon/StatusIcon.css +4 -0
- package/src/statusIcon/StatusIcon.less +4 -0
- package/src/statusIcon/StatusIcon.messages.ts +6 -0
- package/src/statusIcon/StatusIcon.tsx +8 -1
|
@@ -1,76 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
--critical-comms-subtitle-color: var(--color-content-secondary);
|
|
5
|
-
--critical-comms-subtitle-color-padding-left: var(--size-16);
|
|
6
|
-
--critical-comms-vertical-spacing: var(--size-8);
|
|
7
|
-
background-color: rgba(255,135,135,0.10196);
|
|
8
|
-
background-color: var(--critical-comms-background-color);
|
|
9
|
-
display: flex;
|
|
10
|
-
justify-content: center;
|
|
11
|
-
align-items: center;
|
|
12
|
-
}
|
|
13
|
-
.np-theme-personal div.critical-comms,
|
|
14
|
-
.np-theme-personal--dark div.critical-comms {
|
|
15
|
-
--critical-comms-background-color: var(--color-sentiment-negative);
|
|
16
|
-
--critical-comms-title-color: var(--color-contrast);
|
|
17
|
-
--critical-comms-subtitle-color: var(--color-contrast);
|
|
18
|
-
--critical-comms-subtitle-color-padding-left: 0;
|
|
19
|
-
--critical-comms-vertical-spacing: var(--size-16);
|
|
20
|
-
padding: 24px;
|
|
21
|
-
padding: var(--padding-medium);
|
|
22
|
-
}
|
|
23
|
-
.np-theme-personal div.critical-comms .tw-icon-alert-circle-fill,
|
|
24
|
-
.np-theme-personal--dark div.critical-comms .tw-icon-alert-circle-fill {
|
|
25
|
-
color: var(--color-contrast);
|
|
26
|
-
}
|
|
27
|
-
.np-theme-personal div.critical-comms .tw-icon-alert-circle-fill svg,
|
|
28
|
-
.np-theme-personal--dark div.critical-comms .tw-icon-alert-circle-fill svg {
|
|
29
|
-
width: 48px;
|
|
30
|
-
height: 48px;
|
|
31
|
-
}
|
|
32
|
-
.np-theme-personal div.critical-comms .cta-btn,
|
|
33
|
-
.np-theme-personal--dark div.critical-comms .cta-btn {
|
|
34
|
-
background-color: var(--color-contrast);
|
|
35
|
-
}
|
|
36
|
-
.np-theme-personal div.critical-comms .cta-btn:not(.disabled):not(:disabled):focus,
|
|
37
|
-
.np-theme-personal--dark div.critical-comms .cta-btn:not(.disabled):not(:disabled):focus {
|
|
38
|
-
outline-color: var(--color-contrast);
|
|
1
|
+
.np-theme-personal .critical-comms .alert-critical {
|
|
2
|
+
color: var(--color-contrast-overlay);
|
|
3
|
+
background-color: var(--color-sentiment-negative) !important;
|
|
39
4
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
display: inline;
|
|
43
|
-
display: initial;
|
|
44
|
-
}
|
|
5
|
+
.np-theme-personal .critical-comms .alert-critical .np-text-title-body {
|
|
6
|
+
color: var(--color-contrast-overlay);
|
|
45
7
|
}
|
|
46
|
-
|
|
47
|
-
color: var(--critical-comms-title-color);
|
|
48
|
-
}
|
|
49
|
-
div.critical-comms .critical-comms--subtitle {
|
|
50
|
-
color: var(--critical-comms-subtitle-color);
|
|
51
|
-
}
|
|
52
|
-
div.critical-comms .critical-comms--cta {
|
|
53
|
-
padding-left: 0;
|
|
54
|
-
}
|
|
55
|
-
@media (max-width: 767px) {
|
|
56
|
-
div.critical-comms .critical-comms--cta {
|
|
57
|
-
padding-left: var(--critical-comms-subtitle-color-padding-left);
|
|
58
|
-
padding-top: var(--critical-comms-vertical-spacing);
|
|
59
|
-
min-width: 100%;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
div.critical-comms .critical-comms-body {
|
|
8
|
+
.np-theme-personal .critical-comms .action__desktop {
|
|
63
9
|
display: flex;
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
@media (max-width: 767px) {
|
|
67
|
-
div.critical-comms .critical-comms-body {
|
|
68
|
-
flex-direction: column;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
@media (max-width: 767px) {
|
|
72
|
-
div.critical-comms .critical-comms-content {
|
|
73
|
-
padding-top: var(--critical-comms-vertical-spacing);
|
|
74
|
-
flex-wrap: wrap;
|
|
75
|
-
}
|
|
10
|
+
align-items: center;
|
|
76
11
|
}
|
|
@@ -1,78 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.np-theme-personal--dark & {
|
|
10
|
-
--critical-comms-background-color: var(--color-sentiment-negative);
|
|
11
|
-
--critical-comms-title-color: var(--color-contrast);
|
|
12
|
-
--critical-comms-subtitle-color: var(--color-contrast);
|
|
13
|
-
--critical-comms-subtitle-color-padding-left: 0;
|
|
14
|
-
--critical-comms-vertical-spacing: var(--size-16);
|
|
15
|
-
|
|
16
|
-
padding: var(--padding-medium);
|
|
17
|
-
|
|
18
|
-
.tw-icon-alert-circle-fill {
|
|
19
|
-
color: var(--color-contrast);
|
|
20
|
-
|
|
21
|
-
svg {
|
|
22
|
-
width: 48px;
|
|
23
|
-
height: 48px;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.cta-btn {
|
|
28
|
-
background-color: var(--color-contrast);
|
|
29
|
-
|
|
30
|
-
&:not(.disabled,:disabled):focus {
|
|
31
|
-
outline-color: var(--color-contrast);
|
|
1
|
+
.np-theme-personal {
|
|
2
|
+
.critical-comms {
|
|
3
|
+
.alert-critical {
|
|
4
|
+
color: var(--color-contrast-overlay);
|
|
5
|
+
background-color: var(--color-sentiment-negative) !important;
|
|
6
|
+
|
|
7
|
+
.np-text-title-body {
|
|
8
|
+
color: var(--color-contrast-overlay);
|
|
32
9
|
}
|
|
33
10
|
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
background-color: var(--critical-comms-background-color);
|
|
37
|
-
display: flex;
|
|
38
|
-
justify-content: center;
|
|
39
|
-
align-items: center;
|
|
40
|
-
|
|
41
|
-
@media (--screen-sm-max) {
|
|
42
|
-
display: initial;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.critical-comms--title {
|
|
46
|
-
color: var(--critical-comms-title-color);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.critical-comms--subtitle {
|
|
50
|
-
color: var(--critical-comms-subtitle-color);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.critical-comms--cta {
|
|
54
|
-
padding-left: 0;
|
|
55
|
-
|
|
56
|
-
@media (--screen-sm-max) {
|
|
57
|
-
padding-left: var(--critical-comms-subtitle-color-padding-left);
|
|
58
|
-
padding-top: var(--critical-comms-vertical-spacing);
|
|
59
|
-
min-width: 100%;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.critical-comms-body {
|
|
64
|
-
display: flex;
|
|
65
|
-
width: 100%;
|
|
66
|
-
|
|
67
|
-
@media (--screen-sm-max) {
|
|
68
|
-
flex-direction: column;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
11
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
flex-wrap: wrap;
|
|
12
|
+
.action__desktop {
|
|
13
|
+
display: flex;
|
|
14
|
+
align-items: center;
|
|
76
15
|
}
|
|
77
16
|
}
|
|
78
|
-
}
|
|
17
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { Meta
|
|
1
|
+
import { Meta } from '@storybook/react';
|
|
2
2
|
|
|
3
3
|
import CriticalCommsBanner from '.';
|
|
4
|
+
import { Variant } from '../common';
|
|
5
|
+
import { storyConfig } from '../test-utils';
|
|
4
6
|
|
|
5
7
|
export default {
|
|
6
8
|
component: CriticalCommsBanner,
|
|
@@ -8,12 +10,14 @@ export default {
|
|
|
8
10
|
tags: ['autodocs'],
|
|
9
11
|
} satisfies Meta<typeof CriticalCommsBanner>;
|
|
10
12
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
export const Basic = storyConfig(
|
|
14
|
+
{
|
|
15
|
+
args: {
|
|
16
|
+
title: 'Your account is overdrawn',
|
|
17
|
+
subtitle: 'Add money within the next 30 days',
|
|
18
|
+
action: { label: 'Take action', href: 'https://wise.com' },
|
|
19
|
+
variant: Variant.DESKTOP,
|
|
20
|
+
},
|
|
18
21
|
},
|
|
19
|
-
}
|
|
22
|
+
{ variants: ['default', 'dark', 'rtl'] },
|
|
23
|
+
);
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { useTheme } from '@wise/components-theming';
|
|
1
|
+
import Alert from '../alert';
|
|
3
2
|
import { clsx } from 'clsx';
|
|
4
3
|
|
|
5
|
-
import Avatar, { AvatarType } from '../avatar';
|
|
6
|
-
import Body from '../body';
|
|
7
|
-
import Button from '../button';
|
|
8
|
-
import { ControlType, Priority, Size, Typography } from '../common';
|
|
9
|
-
import Title from '../title';
|
|
10
|
-
|
|
11
4
|
export type CriticalCommsBannerProps = {
|
|
12
5
|
title: string;
|
|
13
6
|
subtitle?: string;
|
|
@@ -19,50 +12,15 @@ export type CriticalCommsBannerProps = {
|
|
|
19
12
|
};
|
|
20
13
|
|
|
21
14
|
function CriticalCommsBanner({ title, subtitle, action, className }: CriticalCommsBannerProps) {
|
|
22
|
-
const { isModern } = useTheme();
|
|
23
15
|
return (
|
|
24
16
|
<div className={clsx('critical-comms', className)}>
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
>
|
|
34
|
-
{isModern ? <AlertCircleFill /> : <DangerIcon size={24} />}
|
|
35
|
-
</Avatar>
|
|
36
|
-
<div className="critical-comms-content d-flex align-items-center flex-grow-1">
|
|
37
|
-
<div className={clsx('flex-grow-1', { 'p-x-2': !isModern })}>
|
|
38
|
-
<Title
|
|
39
|
-
type={isModern ? Typography.TITLE_BODY : Typography.TITLE_GROUP}
|
|
40
|
-
className="critical-comms--title"
|
|
41
|
-
>
|
|
42
|
-
{title}
|
|
43
|
-
</Title>
|
|
44
|
-
<Body className="critical-comms--subtitle">{subtitle}</Body>
|
|
45
|
-
</div>
|
|
46
|
-
{action ? (
|
|
47
|
-
<div className="critical-comms--cta">
|
|
48
|
-
<Button
|
|
49
|
-
block={isModern}
|
|
50
|
-
size={Size.SMALL}
|
|
51
|
-
type={ControlType.NEGATIVE}
|
|
52
|
-
priority={isModern ? Priority.SECONDARY : Priority.PRIMARY}
|
|
53
|
-
className="cta-btn"
|
|
54
|
-
onClick={() => {
|
|
55
|
-
if (action) {
|
|
56
|
-
window.location.href = action.href;
|
|
57
|
-
}
|
|
58
|
-
}}
|
|
59
|
-
>
|
|
60
|
-
{action.label}
|
|
61
|
-
</Button>
|
|
62
|
-
</div>
|
|
63
|
-
) : null}
|
|
64
|
-
</div>
|
|
65
|
-
</div>
|
|
17
|
+
<Alert
|
|
18
|
+
title={title}
|
|
19
|
+
message={subtitle}
|
|
20
|
+
action={{ target: action?.href, text: action?.label }}
|
|
21
|
+
className={className}
|
|
22
|
+
type="critical"
|
|
23
|
+
/>
|
|
66
24
|
</div>
|
|
67
25
|
);
|
|
68
26
|
}
|
package/src/i18n/en.json
CHANGED
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
"neptune.SelectInput.noResultsFound": "No results found",
|
|
28
28
|
"neptune.SelectOption.action.label": "Choose",
|
|
29
29
|
"neptune.SelectOption.selected.action.label": "Change chosen option",
|
|
30
|
+
"neptune.StatusIcon.iconLabel.critical": "Critical:",
|
|
30
31
|
"neptune.StatusIcon.iconLabel.error": "Error:",
|
|
31
32
|
"neptune.StatusIcon.iconLabel.information": "Information:",
|
|
32
33
|
"neptune.StatusIcon.iconLabel.pending": "Pending:",
|
package/src/main.css
CHANGED
|
@@ -1,78 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
--critical-comms-subtitle-color: var(--color-content-secondary);
|
|
5
|
-
--critical-comms-subtitle-color-padding-left: var(--size-16);
|
|
6
|
-
--critical-comms-vertical-spacing: var(--size-8);
|
|
7
|
-
background-color: rgba(255,135,135,0.10196);
|
|
8
|
-
background-color: var(--critical-comms-background-color);
|
|
9
|
-
display: flex;
|
|
10
|
-
justify-content: center;
|
|
11
|
-
align-items: center;
|
|
12
|
-
}
|
|
13
|
-
.np-theme-personal div.critical-comms,
|
|
14
|
-
.np-theme-personal--dark div.critical-comms {
|
|
15
|
-
--critical-comms-background-color: var(--color-sentiment-negative);
|
|
16
|
-
--critical-comms-title-color: var(--color-contrast);
|
|
17
|
-
--critical-comms-subtitle-color: var(--color-contrast);
|
|
18
|
-
--critical-comms-subtitle-color-padding-left: 0;
|
|
19
|
-
--critical-comms-vertical-spacing: var(--size-16);
|
|
20
|
-
padding: 24px;
|
|
21
|
-
padding: var(--padding-medium);
|
|
22
|
-
}
|
|
23
|
-
.np-theme-personal div.critical-comms .tw-icon-alert-circle-fill,
|
|
24
|
-
.np-theme-personal--dark div.critical-comms .tw-icon-alert-circle-fill {
|
|
25
|
-
color: var(--color-contrast);
|
|
26
|
-
}
|
|
27
|
-
.np-theme-personal div.critical-comms .tw-icon-alert-circle-fill svg,
|
|
28
|
-
.np-theme-personal--dark div.critical-comms .tw-icon-alert-circle-fill svg {
|
|
29
|
-
width: 48px;
|
|
30
|
-
height: 48px;
|
|
31
|
-
}
|
|
32
|
-
.np-theme-personal div.critical-comms .cta-btn,
|
|
33
|
-
.np-theme-personal--dark div.critical-comms .cta-btn {
|
|
34
|
-
background-color: var(--color-contrast);
|
|
35
|
-
}
|
|
36
|
-
.np-theme-personal div.critical-comms .cta-btn:not(.disabled):not(:disabled):focus,
|
|
37
|
-
.np-theme-personal--dark div.critical-comms .cta-btn:not(.disabled):not(:disabled):focus {
|
|
38
|
-
outline-color: var(--color-contrast);
|
|
39
|
-
}
|
|
40
|
-
@media (max-width: 767px) {
|
|
41
|
-
div.critical-comms {
|
|
42
|
-
display: inline;
|
|
43
|
-
display: initial;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
div.critical-comms .critical-comms--title {
|
|
47
|
-
color: var(--critical-comms-title-color);
|
|
48
|
-
}
|
|
49
|
-
div.critical-comms .critical-comms--subtitle {
|
|
50
|
-
color: var(--critical-comms-subtitle-color);
|
|
51
|
-
}
|
|
52
|
-
div.critical-comms .critical-comms--cta {
|
|
53
|
-
padding-left: 0;
|
|
1
|
+
.np-theme-personal .critical-comms .alert-critical {
|
|
2
|
+
color: var(--color-contrast-overlay);
|
|
3
|
+
background-color: var(--color-sentiment-negative) !important;
|
|
54
4
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
padding-left: var(--critical-comms-subtitle-color-padding-left);
|
|
58
|
-
padding-top: var(--critical-comms-vertical-spacing);
|
|
59
|
-
min-width: 100%;
|
|
60
|
-
}
|
|
5
|
+
.np-theme-personal .critical-comms .alert-critical .np-text-title-body {
|
|
6
|
+
color: var(--color-contrast-overlay);
|
|
61
7
|
}
|
|
62
|
-
|
|
8
|
+
.np-theme-personal .critical-comms .action__desktop {
|
|
63
9
|
display: flex;
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
@media (max-width: 767px) {
|
|
67
|
-
div.critical-comms .critical-comms-body {
|
|
68
|
-
flex-direction: column;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
@media (max-width: 767px) {
|
|
72
|
-
div.critical-comms .critical-comms-content {
|
|
73
|
-
padding-top: var(--critical-comms-vertical-spacing);
|
|
74
|
-
flex-wrap: wrap;
|
|
75
|
-
}
|
|
10
|
+
align-items: center;
|
|
76
11
|
}
|
|
77
12
|
.tw-date-lookup-calendar > tbody > tr > td.weekend button {
|
|
78
13
|
font-size: 0.875rem;
|
|
@@ -939,6 +874,9 @@ div.critical-comms .critical-comms-body {
|
|
|
939
874
|
.np-theme-personal--bright-green .wds-Button--minimal .wds-Button-avatars .np-circle {
|
|
940
875
|
--circle-border-color: color-mix(in srgb, var(--Button-color) 12%, transparent);
|
|
941
876
|
}
|
|
877
|
+
.critical-comms .wds-Button {
|
|
878
|
+
--Button-background: var(--color-contrast-overlay);
|
|
879
|
+
}
|
|
942
880
|
[dir="rtl"] .wds-Button .tw-icon-chevron-right,[dir="rtl"] .wds-Button .tw-icon-arrow-right,[dir="rtl"] .wds-Button .tw-icon-chevron-left,[dir="rtl"] .wds-Button .tw-icon-arrow-left,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-down,[dir="rtl"] .wds-Button .tw-icon-arrow-diagonal-up,[dir="rtl"] .wds-Button .tw-icon-list,[dir="rtl"] .wds-Button .tw-icon-activity {
|
|
943
881
|
scale: -1 1;
|
|
944
882
|
}
|
|
@@ -4477,6 +4415,10 @@ html:not([dir="rtl"]) .np-navigation-option {
|
|
|
4477
4415
|
.status-circle.error {
|
|
4478
4416
|
background-color: var(--color-sentiment-negative);
|
|
4479
4417
|
}
|
|
4418
|
+
.status-circle.critical {
|
|
4419
|
+
background-color: #ffffff;
|
|
4420
|
+
background-color: var(--color-background-screen);
|
|
4421
|
+
}
|
|
4480
4422
|
.status-circle.neutral {
|
|
4481
4423
|
background-color: #5d7079;
|
|
4482
4424
|
background-color: var(--color-content-secondary);
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
.status-circle.error {
|
|
18
18
|
background-color: var(--color-sentiment-negative);
|
|
19
19
|
}
|
|
20
|
+
.status-circle.critical {
|
|
21
|
+
background-color: #ffffff;
|
|
22
|
+
background-color: var(--color-background-screen);
|
|
23
|
+
}
|
|
20
24
|
.status-circle.neutral {
|
|
21
25
|
background-color: #5d7079;
|
|
22
26
|
background-color: var(--color-content-secondary);
|
|
@@ -19,6 +19,12 @@ export default defineMessages({
|
|
|
19
19
|
description:
|
|
20
20
|
'Visually hidden label read by screen readers, describing the Warning icon – normally a prefix to remaining visible content, e.g. validation result.',
|
|
21
21
|
},
|
|
22
|
+
criticalLabel: {
|
|
23
|
+
id: 'neptune.StatusIcon.iconLabel.critical',
|
|
24
|
+
defaultMessage: 'Critical:',
|
|
25
|
+
description:
|
|
26
|
+
'Visually hidden label read by screen readers, describing the Critical icon – normally a prefix to remaining visible content, e.g. validation result.',
|
|
27
|
+
},
|
|
22
28
|
pendingLabel: {
|
|
23
29
|
id: 'neptune.StatusIcon.iconLabel.pending',
|
|
24
30
|
defaultMessage: 'Pending:',
|
|
@@ -52,6 +52,10 @@ const StatusIcon = ({ sentiment = 'neutral', size: sizeProp = 40, iconLabel }: S
|
|
|
52
52
|
Icon: Alert,
|
|
53
53
|
defaultIconLabel: intl.formatMessage(messages.warningLabel),
|
|
54
54
|
},
|
|
55
|
+
[Sentiment.CRITICAL]: {
|
|
56
|
+
Icon: Alert,
|
|
57
|
+
defaultIconLabel: intl.formatMessage(messages.criticalLabel),
|
|
58
|
+
},
|
|
55
59
|
[Sentiment.PENDING]: {
|
|
56
60
|
Icon: ClockBorderless,
|
|
57
61
|
defaultIconLabel: intl.formatMessage(messages.pendingLabel),
|
|
@@ -76,7 +80,10 @@ const StatusIcon = ({ sentiment = 'neutral', size: sizeProp = 40, iconLabel }: S
|
|
|
76
80
|
};
|
|
77
81
|
const { Icon, defaultIconLabel } = iconMetaBySentiment[sentiment];
|
|
78
82
|
|
|
79
|
-
const iconColor =
|
|
83
|
+
const iconColor =
|
|
84
|
+
sentiment === 'warning' || sentiment === 'pending' || sentiment === 'critical'
|
|
85
|
+
? 'dark'
|
|
86
|
+
: 'light';
|
|
80
87
|
const isTinyViewport = useMedia(`(max-width: ${Breakpoint.ZOOM_400}px)`);
|
|
81
88
|
const size = mapLegacySize[sizeProp] ?? sizeProp;
|
|
82
89
|
return (
|