@automattic/vip-design-system 0.28.0 → 0.28.2
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/.storybook/decorators/withColorMode.jsx +15 -2
- package/README.md +3 -3
- package/build/system/Accordion/Accordion.js +21 -30
- package/build/system/Badge/Badge.stories.js +1 -1
- package/build/system/Dialog/DialogButton.js +1 -1
- package/build/system/Dropdown/Dropdown.stories.js +9 -5
- package/build/system/Form/InlineSelect.js +3 -3
- package/build/system/Form/Input.js +1 -0
- package/build/system/Form/Input.styles.js +2 -2
- package/build/system/Form/Label.js +1 -1
- package/build/system/Form/Radio.stories.js +1 -1
- package/build/system/Form/SearchSelect.js +4 -4
- package/build/system/NewForm/FormAutocomplete.js +12 -2
- package/build/system/NewForm/FormAutocomplete.stories.js +14 -2
- package/build/system/NewForm/FormSelect.stories.js +3 -1
- package/build/system/Notice/Notice.js +1 -0
- package/build/system/Notice/Notice.stories.js +13 -23
- package/build/system/ResourceList/ResourceList.js +35 -26
- package/build/system/ResourceList/ResourceList.stories.js +2 -0
- package/build/system/Table/Table.stories.js +0 -3
- package/build/system/Tabs/Tabs.stories.js +3 -3
- package/build/system/Wizard/WizardStep.js +5 -3
- package/build/system/theme/colors.js +7 -170
- package/build/system/theme/generated/valet-theme-dark.json +2924 -0
- package/{src/system/theme/generated/valet-theme.json → build/system/theme/generated/valet-theme-light.json} +73 -16
- package/build/system/theme/generated/valet-theme.json +26 -8
- package/build/system/theme/getColor.js +53 -50
- package/build/system/theme/index.js +114 -150
- package/build/system/theme/textStyles.js +51 -0
- package/package.json +7 -3
- package/src/system/Accordion/Accordion.js +8 -6
- package/src/system/Badge/Badge.stories.jsx +2 -2
- package/src/system/Dialog/DialogButton.js +1 -1
- package/src/system/Dropdown/Dropdown.stories.jsx +12 -10
- package/src/system/Form/InlineSelect.js +3 -3
- package/src/system/Form/Input.js +1 -0
- package/src/system/Form/Input.styles.js +2 -2
- package/src/system/Form/Label.js +1 -1
- package/src/system/Form/Radio.stories.jsx +3 -3
- package/src/system/Form/SearchSelect.js +4 -4
- package/src/system/NewForm/FormAutocomplete.js +11 -0
- package/src/system/NewForm/FormAutocomplete.stories.jsx +13 -0
- package/src/system/NewForm/FormSelect.stories.jsx +3 -2
- package/src/system/Notice/Notice.js +3 -1
- package/src/system/Notice/Notice.stories.jsx +8 -12
- package/src/system/Table/Table.stories.jsx +1 -1
- package/src/system/Tabs/Tabs.stories.jsx +3 -3
- package/src/system/Wizard/WizardStep.js +9 -3
- package/src/system/theme/colors.js +5 -171
- package/src/system/theme/generated/valet-theme-dark.json +2924 -0
- package/src/system/theme/generated/valet-theme-light.json +2918 -0
- package/src/system/theme/getColor.js +46 -40
- package/src/system/theme/index.js +150 -172
- package/src/system/theme/textStyles.js +46 -0
- package/tokens/valet-core/$metadata.json +1 -0
- package/tokens/valet-core/$themes.json +15 -91
- package/tokens/valet-core/wpvip-expressive-type.json +8 -8
- package/tokens/valet-core/wpvip-productive-color-dark.json +946 -0
- package/tokens/valet-core/wpvip-productive-color.json +73 -16
- package/.idea/GitLink.xml +0 -6
- package/.idea/codeStyles/Project.xml +0 -69
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/dbnavigator.xml +0 -467
- package/.idea/git_toolbox_prj.xml +0 -15
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/jsLinters/eslint.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/php.xml +0 -12
- package/.idea/vcs.xml +0 -6
- package/.idea/vip-design-system.iml +0 -9
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.textStyles = void 0;
|
|
5
|
+
var textStyles = {
|
|
6
|
+
h1: {
|
|
7
|
+
fontSize: 5,
|
|
8
|
+
marginBottom: 3,
|
|
9
|
+
letterSpacing: '-.02em',
|
|
10
|
+
fontWeight: 'body',
|
|
11
|
+
fontFamily: 'serif',
|
|
12
|
+
color: 'heading'
|
|
13
|
+
},
|
|
14
|
+
h2: {
|
|
15
|
+
fontSize: 4,
|
|
16
|
+
marginBottom: 2,
|
|
17
|
+
letterSpacing: '-.005em',
|
|
18
|
+
fontWeight: 400,
|
|
19
|
+
color: 'heading'
|
|
20
|
+
},
|
|
21
|
+
h3: {
|
|
22
|
+
fontSize: 3,
|
|
23
|
+
marginBottom: 3,
|
|
24
|
+
letterSpacing: '-.005em',
|
|
25
|
+
lineHeight: 1.4,
|
|
26
|
+
fontWeight: 'heading',
|
|
27
|
+
color: 'heading'
|
|
28
|
+
},
|
|
29
|
+
h4: {
|
|
30
|
+
fontSize: 2,
|
|
31
|
+
marginBottom: 1,
|
|
32
|
+
lineHeight: 1.5,
|
|
33
|
+
fontWeight: 'heading',
|
|
34
|
+
color: 'heading'
|
|
35
|
+
},
|
|
36
|
+
h5: {
|
|
37
|
+
fontSize: 1,
|
|
38
|
+
marginBottom: 1,
|
|
39
|
+
lineHeight: 1.5,
|
|
40
|
+
fontWeight: 'heading',
|
|
41
|
+
color: 'heading'
|
|
42
|
+
},
|
|
43
|
+
caps: {
|
|
44
|
+
fontSize: 1,
|
|
45
|
+
marginBottom: 2,
|
|
46
|
+
color: 'muted',
|
|
47
|
+
fontWeight: 'bold',
|
|
48
|
+
letterSpacing: '.05em'
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
exports.textStyles = textStyles;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/vip-design-system",
|
|
3
|
-
"version": "0.28.
|
|
3
|
+
"version": "0.28.2",
|
|
4
4
|
"main": "build/system/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build-storybook": "build-storybook",
|
|
@@ -11,8 +11,12 @@
|
|
|
11
11
|
"jest": "NODE_ENV=test jest --detectOpenHandles --env=jsdom",
|
|
12
12
|
"jest:coverage": "npm run jest && open-cli ./coverage/index.html",
|
|
13
13
|
"jest:watch": "npm run jest --watch",
|
|
14
|
-
"theme-builder-copy": "
|
|
15
|
-
"theme-
|
|
14
|
+
"theme-builder-copy": "npm run theme-builder-copy-light && npm run theme-builder-copy-dark",
|
|
15
|
+
"theme-builder-copy-light": "mkdir -p build/system/theme/generated/ && cp src/system/theme/generated/valet-theme-light.json build/system/theme/generated/valet-theme-light.json",
|
|
16
|
+
"theme-builder-copy-dark": "mkdir -p build/system/theme/generated/ && cp src/system/theme/generated/valet-theme-dark.json build/system/theme/generated/valet-theme-dark.json",
|
|
17
|
+
"theme-update": "npm run theme-update-light && npm run theme-update-dark",
|
|
18
|
+
"theme-update-light": "token-transformer tokens/valet-core src/system/theme/generated/valet-theme-light.json valet-core,wpvip-productive-color",
|
|
19
|
+
"theme-update-dark": "token-transformer tokens/valet-core src/system/theme/generated/valet-theme-dark.json valet-core,wpvip-productive-color-dark",
|
|
16
20
|
"lint": "eslint . --fix --max-warnings 0",
|
|
17
21
|
"storybook": "start-storybook -p 6006",
|
|
18
22
|
"dev": "npm run storybook",
|
|
@@ -81,15 +81,15 @@ export const Trigger = React.forwardRef(
|
|
|
81
81
|
fontWeight: 600,
|
|
82
82
|
|
|
83
83
|
'&[data-state="closed"]': {
|
|
84
|
-
backgroundColor:
|
|
84
|
+
backgroundColor: 'accordion.background.closed',
|
|
85
85
|
},
|
|
86
86
|
'&[data-state="open"]': {
|
|
87
|
-
backgroundColor:
|
|
87
|
+
backgroundColor: 'accordion.background.open',
|
|
88
88
|
borderBottom: '1px solid',
|
|
89
89
|
borderBottomColor: 'borders.2',
|
|
90
90
|
'.vip-accordion-trigger-indicator': { transform: 'rotate(270deg)' },
|
|
91
91
|
},
|
|
92
|
-
'&:hover': { backgroundColor:
|
|
92
|
+
'&:hover': { backgroundColor: 'accordion.background.hover' },
|
|
93
93
|
...sx,
|
|
94
94
|
} }
|
|
95
95
|
{ ...props }
|
|
@@ -122,7 +122,9 @@ Trigger.propTypes = {
|
|
|
122
122
|
export const TriggerWithIcon = React.forwardRef( ( { children, icon, ...props }, forwardedRef ) => (
|
|
123
123
|
<Trigger { ...props } ref={ forwardedRef }>
|
|
124
124
|
<span sx={ { color: 'icon.primary', fontSize: 3 } }>{ icon }</span>
|
|
125
|
-
<div sx={ { color: '
|
|
125
|
+
<div sx={ { color: 'accordion.trigger.text', flexGrow: 1, textAlign: 'left', ml: 3 } }>
|
|
126
|
+
{ children }
|
|
127
|
+
</div>
|
|
126
128
|
</Trigger>
|
|
127
129
|
) );
|
|
128
130
|
|
|
@@ -137,8 +139,8 @@ export const Content = React.forwardRef( ( { children, sx = {}, ...props }, forw
|
|
|
137
139
|
return (
|
|
138
140
|
<AccordionPrimitive.Content
|
|
139
141
|
sx={ {
|
|
140
|
-
backgroundColor: '
|
|
141
|
-
color: 'text',
|
|
142
|
+
backgroundColor: 'accordion.content.background',
|
|
143
|
+
color: 'accordion.content.text',
|
|
142
144
|
fontSize: 2,
|
|
143
145
|
overflow: 'hidden',
|
|
144
146
|
px: 3,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Badge } from '..';
|
|
4
|
+
import { Badge, Link } from '..';
|
|
5
5
|
|
|
6
6
|
export default {
|
|
7
7
|
title: 'Badge',
|
|
@@ -11,7 +11,7 @@ export default {
|
|
|
11
11
|
const Template = props => <Badge { ...props } sx={ { m: 2 } } />;
|
|
12
12
|
const TemplateLink = props => (
|
|
13
13
|
<Template { ...props } sx={ { m: 2 } }>
|
|
14
|
-
<
|
|
14
|
+
<Link href="http://google.com">Google.com</Link>
|
|
15
15
|
</Template>
|
|
16
16
|
);
|
|
17
17
|
|
|
@@ -12,6 +12,8 @@ import { DotFilledIcon, CheckIcon, ChevronRightIcon } from '@radix-ui/react-icon
|
|
|
12
12
|
import * as Dropdown from '.';
|
|
13
13
|
import { Button } from '../Button';
|
|
14
14
|
import * as NewDialog from '../NewDialog';
|
|
15
|
+
import { Link } from '../Link';
|
|
16
|
+
import { Text } from '../Text';
|
|
15
17
|
|
|
16
18
|
export default {
|
|
17
19
|
title: 'Dropdown',
|
|
@@ -29,17 +31,17 @@ export const Default = () => (
|
|
|
29
31
|
<Dropdown.Item>Errored</Dropdown.Item>
|
|
30
32
|
</Dropdown.Root>
|
|
31
33
|
|
|
32
|
-
<
|
|
34
|
+
<Text>
|
|
33
35
|
This component is based on the Radix Dropdown. You can find all available options, props and
|
|
34
36
|
features in the{ ' ' }
|
|
35
|
-
<
|
|
37
|
+
<Link
|
|
36
38
|
href="https://www.radix-ui.com/docs/primitives/components/dropdown-menu"
|
|
37
39
|
target="_blank"
|
|
38
40
|
rel="noopener noreferrer"
|
|
39
41
|
>
|
|
40
42
|
Dropdown Documentation page.
|
|
41
|
-
</
|
|
42
|
-
</
|
|
43
|
+
</Link>
|
|
44
|
+
</Text>
|
|
43
45
|
</>
|
|
44
46
|
);
|
|
45
47
|
|
|
@@ -98,17 +100,17 @@ export const ComplexOptions = () => {
|
|
|
98
100
|
</Dropdown.RadioGroup>
|
|
99
101
|
</Dropdown.Root>
|
|
100
102
|
|
|
101
|
-
<
|
|
103
|
+
<Text>
|
|
102
104
|
This component is based on the Radix Dropdown. You can find all available options, props and
|
|
103
105
|
features in the{ ' ' }
|
|
104
|
-
<
|
|
106
|
+
<Link
|
|
105
107
|
href="https://www.radix-ui.com/docs/primitives/components/dropdown-menu"
|
|
106
108
|
target="_blank"
|
|
107
109
|
rel="noopener noreferrer"
|
|
108
110
|
>
|
|
109
111
|
Dropdown Documentation page.
|
|
110
|
-
</
|
|
111
|
-
</
|
|
112
|
+
</Link>
|
|
113
|
+
</Text>
|
|
112
114
|
</>
|
|
113
115
|
);
|
|
114
116
|
};
|
|
@@ -134,11 +136,11 @@ export const WithDialog = () => {
|
|
|
134
136
|
|
|
135
137
|
return (
|
|
136
138
|
<div>
|
|
137
|
-
<
|
|
139
|
+
<Text>
|
|
138
140
|
This is an important example when combining the Dropdown component with the NewDialog
|
|
139
141
|
component. In order to have the correct accessibility, there are some events you need to
|
|
140
142
|
use. Use this example if you want to copy and paste the code.
|
|
141
|
-
</
|
|
143
|
+
</Text>
|
|
142
144
|
|
|
143
145
|
<Dropdown.Root
|
|
144
146
|
modal={ ! alertOpen }
|
|
@@ -71,10 +71,10 @@ const InlineSelect = ( {
|
|
|
71
71
|
sx={ {
|
|
72
72
|
'.select__control': {
|
|
73
73
|
background: 'none',
|
|
74
|
-
color: 'input.text',
|
|
74
|
+
color: 'input.text.default',
|
|
75
75
|
},
|
|
76
76
|
'.select__single-value': {
|
|
77
|
-
color: 'input.text',
|
|
77
|
+
color: 'input.text.default',
|
|
78
78
|
px: 1,
|
|
79
79
|
},
|
|
80
80
|
'.react-select__option': {
|
|
@@ -90,7 +90,7 @@ const InlineSelect = ( {
|
|
|
90
90
|
borderColor: 'input.border',
|
|
91
91
|
},
|
|
92
92
|
'.select__placeholder': {
|
|
93
|
-
color: 'input.placeholder',
|
|
93
|
+
color: 'input.text.placeholder',
|
|
94
94
|
},
|
|
95
95
|
} }
|
|
96
96
|
{ ...props }
|
package/src/system/Form/Input.js
CHANGED
|
@@ -4,7 +4,7 @@ export const baseControlBorderStyle = {
|
|
|
4
4
|
borderColor: 'input.border.default',
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
export const inputBaseText = 'input.text';
|
|
7
|
+
export const inputBaseText = 'input.text.default';
|
|
8
8
|
export const inputBaseBackground = 'input.background';
|
|
9
9
|
export const baseControlFocusStyle = {
|
|
10
10
|
'&:focus': theme => theme.outline,
|
|
@@ -26,7 +26,7 @@ export const baseControlStyle = {
|
|
|
26
26
|
},
|
|
27
27
|
|
|
28
28
|
'&::placeholder': {
|
|
29
|
-
color: 'input.placeholder',
|
|
29
|
+
color: 'input.text.placeholder',
|
|
30
30
|
opacity: 1,
|
|
31
31
|
},
|
|
32
32
|
};
|
package/src/system/Form/Label.js
CHANGED
|
@@ -11,7 +11,7 @@ import PropTypes from 'prop-types';
|
|
|
11
11
|
*/
|
|
12
12
|
import { RequiredLabel } from './RequiredLabel';
|
|
13
13
|
|
|
14
|
-
export const baseLabelColor = '
|
|
14
|
+
export const baseLabelColor = 'input.label.default';
|
|
15
15
|
export const baseLabelStyle = {
|
|
16
16
|
fontWeight: 500,
|
|
17
17
|
fontSize: 2,
|
|
@@ -8,7 +8,7 @@ import { useState } from 'react';
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
|
-
import { Form } from '..';
|
|
11
|
+
import { Form, Link } from '..';
|
|
12
12
|
import { Radio } from './Radio';
|
|
13
13
|
import { Flex } from '../Flex';
|
|
14
14
|
import { Label } from './Label';
|
|
@@ -27,9 +27,9 @@ export const Default = () => {
|
|
|
27
27
|
<p>
|
|
28
28
|
Per recommendation, if you have a Radio button, use a Fieldset with a legend as wrapper to
|
|
29
29
|
your options.{ ' ' }
|
|
30
|
-
<
|
|
30
|
+
<Link href="https://a11y-collective.github.io/demos/en/accessible-code/form-fieldsets.html">
|
|
31
31
|
Reference to Form fieldsets
|
|
32
|
-
</
|
|
32
|
+
</Link>
|
|
33
33
|
</p>
|
|
34
34
|
<Form.Fieldset>
|
|
35
35
|
<Form.Legend sx={ { mb: 0, fontSize: 2, fontWeight: 'bold' } }>
|
|
@@ -89,7 +89,7 @@ const SearchSelect = props => (
|
|
|
89
89
|
sx={ {
|
|
90
90
|
'.select__control': {
|
|
91
91
|
background: 'none',
|
|
92
|
-
color: 'input.text',
|
|
92
|
+
color: 'input.text.default',
|
|
93
93
|
border: '1px solid',
|
|
94
94
|
borderColor: 'input.border',
|
|
95
95
|
margin: 0,
|
|
@@ -98,10 +98,10 @@ const SearchSelect = props => (
|
|
|
98
98
|
fontSize: 2,
|
|
99
99
|
},
|
|
100
100
|
'.select__placeholder': {
|
|
101
|
-
color: 'input.placeholder',
|
|
101
|
+
color: 'input.text.placeholder',
|
|
102
102
|
},
|
|
103
103
|
'.select__single-value': {
|
|
104
|
-
color: 'input.text',
|
|
104
|
+
color: 'input.text.default',
|
|
105
105
|
px: 1,
|
|
106
106
|
},
|
|
107
107
|
'.select__menu': {
|
|
@@ -109,7 +109,7 @@ const SearchSelect = props => (
|
|
|
109
109
|
boxShadow: 'medium',
|
|
110
110
|
},
|
|
111
111
|
'.react-select__option': {
|
|
112
|
-
color: 'input.text',
|
|
112
|
+
color: 'input.text.default',
|
|
113
113
|
paddingTop: 1,
|
|
114
114
|
paddingBottom: 1,
|
|
115
115
|
paddingLeft: 2,
|
|
@@ -18,6 +18,7 @@ import { Label } from '../Form/Label';
|
|
|
18
18
|
import { FormSelectSearch } from './FormSelectSearch';
|
|
19
19
|
import { FormSelectLoading } from './FormSelectLoading';
|
|
20
20
|
import { baseControlBorderStyle, inputBaseBackground, inputBaseText } from '../Form/Input.styles';
|
|
21
|
+
import { Validation } from '../Form';
|
|
21
22
|
|
|
22
23
|
const baseBorderTextColors = {
|
|
23
24
|
...baseControlBorderStyle,
|
|
@@ -115,6 +116,8 @@ const FormAutocomplete = React.forwardRef(
|
|
|
115
116
|
showAllValues = true,
|
|
116
117
|
source,
|
|
117
118
|
value,
|
|
119
|
+
hasError,
|
|
120
|
+
errorMessage,
|
|
118
121
|
...props
|
|
119
122
|
},
|
|
120
123
|
forwardRef
|
|
@@ -246,6 +249,12 @@ const FormAutocomplete = React.forwardRef(
|
|
|
246
249
|
<FormSelectArrow />
|
|
247
250
|
</FormSelectContent>
|
|
248
251
|
</div>
|
|
252
|
+
|
|
253
|
+
{ hasError && errorMessage && (
|
|
254
|
+
<Validation isValid={ false } describedId={ forLabel }>
|
|
255
|
+
{ errorMessage }
|
|
256
|
+
</Validation>
|
|
257
|
+
) }
|
|
249
258
|
</div>
|
|
250
259
|
);
|
|
251
260
|
}
|
|
@@ -273,6 +282,8 @@ FormAutocomplete.propTypes = {
|
|
|
273
282
|
showAllValues: PropTypes.bool,
|
|
274
283
|
source: PropTypes.func,
|
|
275
284
|
value: PropTypes.string,
|
|
285
|
+
hasError: PropTypes.bool,
|
|
286
|
+
errorMessage: PropTypes.string,
|
|
276
287
|
};
|
|
277
288
|
|
|
278
289
|
FormAutocomplete.displayName = 'FormAutocomplete';
|
|
@@ -134,3 +134,16 @@ export const WithCustomMessages = () => {
|
|
|
134
134
|
</>
|
|
135
135
|
);
|
|
136
136
|
};
|
|
137
|
+
export const WithErrors = () => {
|
|
138
|
+
const customArgs = {
|
|
139
|
+
...args,
|
|
140
|
+
hasError: true,
|
|
141
|
+
errorMessage: 'Please select a value',
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
return (
|
|
145
|
+
<>
|
|
146
|
+
<DefaultComponent { ...customArgs } />
|
|
147
|
+
</>
|
|
148
|
+
);
|
|
149
|
+
};
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { useCallback, useState } from 'react';
|
|
7
7
|
import * as Form from '.';
|
|
8
|
+
import { Link } from '../Link';
|
|
8
9
|
|
|
9
10
|
export default {
|
|
10
11
|
title: 'Form/Select',
|
|
@@ -49,14 +50,14 @@ const DefaultComponent = ( { label = 'Label', width = 250, onChange, ...rest } )
|
|
|
49
50
|
|
|
50
51
|
<p>
|
|
51
52
|
This component was heavily inspired by the{ ' ' }
|
|
52
|
-
<
|
|
53
|
+
<Link
|
|
53
54
|
href="https://designsystem.digital.gov/components/select/"
|
|
54
55
|
target="_blank"
|
|
55
56
|
rel="noreferrer"
|
|
56
57
|
>
|
|
57
58
|
{ ' ' }
|
|
58
59
|
U.S. Web Design System (USWDS) Select component
|
|
59
|
-
</
|
|
60
|
+
</Link>
|
|
60
61
|
.
|
|
61
62
|
</p>
|
|
62
63
|
<Form.Root>
|
|
@@ -14,7 +14,9 @@ import { MdError, MdWarning, MdCheckCircle, MdInfo } from 'react-icons/md';
|
|
|
14
14
|
import { Box, Flex, Heading, Card } from '../';
|
|
15
15
|
|
|
16
16
|
const colorSystemVariant = color =>
|
|
17
|
-
( { warning: 'warning', alert: 'error', success: 'success', info: 'info' }[
|
|
17
|
+
( { warning: 'warning', error: 'error', alert: 'error', success: 'success', info: 'info' }[
|
|
18
|
+
color
|
|
19
|
+
] );
|
|
18
20
|
|
|
19
21
|
const NoticeIcon = ( { color, variant } ) => {
|
|
20
22
|
let Icon = MdWarning;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Internal dependencies
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import { Notice,
|
|
9
|
+
import { Notice, Link } from '..';
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
title: 'Notice',
|
|
@@ -21,10 +21,8 @@ export const Default = () => (
|
|
|
21
21
|
sx={ { mb: 4 } }
|
|
22
22
|
title="Your site is ready to launch!"
|
|
23
23
|
>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
<Link href="https://google.com/">application with the world.</Link>
|
|
27
|
-
</Text>
|
|
24
|
+
It looks like you‘re ready to share your{ ' ' }
|
|
25
|
+
<Link href="https://google.com/">application with the world.</Link>
|
|
28
26
|
</Notice>
|
|
29
27
|
|
|
30
28
|
<Notice variant="success" sx={ { mb: 4 } }>
|
|
@@ -43,10 +41,8 @@ export const Default = () => (
|
|
|
43
41
|
</Notice>
|
|
44
42
|
|
|
45
43
|
<Notice variant="info" sx={ { mb: 4 } } title="Please read this first">
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<a href="/?path=/story/avatar--default">A link to Avatar</a>
|
|
49
|
-
</Text>
|
|
44
|
+
This notice has a title and children and{ ' ' }
|
|
45
|
+
<Link href="/?path=/story/avatar--default">A link to Avatar</Link>
|
|
50
46
|
</Notice>
|
|
51
47
|
|
|
52
48
|
<Notice
|
|
@@ -57,13 +53,13 @@ export const Default = () => (
|
|
|
57
53
|
>
|
|
58
54
|
<ul sx={ { mb: 0 } }>
|
|
59
55
|
<li>
|
|
60
|
-
<
|
|
56
|
+
<Link href="#name">Please enter your name.</Link>
|
|
61
57
|
</li>
|
|
62
58
|
<li>
|
|
63
|
-
<
|
|
59
|
+
<Link href="#email">Please enter your email address.</Link>
|
|
64
60
|
</li>
|
|
65
61
|
<li>
|
|
66
|
-
<
|
|
62
|
+
<Link href="#terms">Please agree to the terms.</Link>
|
|
67
63
|
</li>
|
|
68
64
|
</ul>
|
|
69
65
|
</Notice>
|
|
@@ -6,7 +6,7 @@ import React from 'react';
|
|
|
6
6
|
/**
|
|
7
7
|
* Internal dependencies
|
|
8
8
|
*/
|
|
9
|
-
import { Tabs, TabsTrigger, TabsList, TabsContent, Text } from '..';
|
|
9
|
+
import { Tabs, TabsTrigger, TabsList, TabsContent, Text, Link, Button } from '..';
|
|
10
10
|
|
|
11
11
|
export default {
|
|
12
12
|
title: 'Tabs',
|
|
@@ -25,13 +25,13 @@ export const Default = () => (
|
|
|
25
25
|
</TabsList>
|
|
26
26
|
<TabsContent value="all">
|
|
27
27
|
<Text>
|
|
28
|
-
All content <
|
|
28
|
+
All content <Link href="https://google.com">https://google.com</Link>
|
|
29
29
|
</Text>
|
|
30
30
|
</TabsContent>
|
|
31
31
|
<TabsContent value="live">Live content</TabsContent>
|
|
32
32
|
<TabsContent value="dev">
|
|
33
33
|
<Text>
|
|
34
|
-
In Development content <
|
|
34
|
+
In Development content <Button variant="secondary">Hey I am a button</Button>{ ' ' }
|
|
35
35
|
</Text>
|
|
36
36
|
</TabsContent>
|
|
37
37
|
</Tabs>
|
|
@@ -25,7 +25,7 @@ const WizardStep = React.forwardRef(
|
|
|
25
25
|
borderLeftColor = 'primary';
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
let color = '
|
|
28
|
+
let color = 'text';
|
|
29
29
|
|
|
30
30
|
if ( complete ) {
|
|
31
31
|
color = 'success';
|
|
@@ -68,12 +68,18 @@ const WizardStep = React.forwardRef(
|
|
|
68
68
|
fontWeight: active ? 'bold' : 'normal',
|
|
69
69
|
} }
|
|
70
70
|
>
|
|
71
|
-
<MdCheckCircle
|
|
71
|
+
<MdCheckCircle
|
|
72
|
+
aria-hidden="true"
|
|
73
|
+
sx={ { mr: 2, color: active ? 'icon.primary' : 'icon.disabled' } }
|
|
74
|
+
/>
|
|
72
75
|
{ title }
|
|
73
76
|
</Heading>
|
|
74
77
|
) : (
|
|
75
78
|
<Flex sx={ { alignItems: 'center', color } }>
|
|
76
|
-
<MdCheckCircle
|
|
79
|
+
<MdCheckCircle
|
|
80
|
+
aria-hidden="true"
|
|
81
|
+
sx={ { mr: 2, color: active ? 'icon.primary' : 'icon.disabled' } }
|
|
82
|
+
/>
|
|
77
83
|
{ title }
|
|
78
84
|
</Flex>
|
|
79
85
|
) }
|