@automattic/vip-design-system 1.2.3 → 1.3.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/.eslintignore +2 -1
- package/.prettierignore +1 -0
- package/.storybook/decorators/withBoundingBox.tsx +30 -4
- package/.storybook/decorators/withColorMode.tsx +5 -5
- package/CONTRIBUTING.md +1 -1
- package/build/system/Accordion/Accordion.js +6 -6
- package/build/system/Accordion/Accordion.stories.js +1 -1
- package/build/system/Accordion/Accordion.test.js +7 -5
- package/build/system/Avatar/Avatar.js +3 -2
- package/build/system/Badge/Badge.js +1 -0
- package/build/system/Button/Button.d.ts +11 -0
- package/build/system/Button/Button.js +12 -1
- package/build/system/Button/Button.stories.d.ts +2 -1
- package/build/system/Button/Button.stories.js +1 -2
- package/build/system/Button/Button.test.js +72 -45
- package/build/system/Button/ButtonSubmit.d.ts +17 -1
- package/build/system/Button/ButtonSubmit.js +58 -65
- package/build/system/Button/ButtonSubmit.stories.d.ts +17 -37
- package/build/system/Button/ButtonSubmit.stories.js +52 -0
- package/build/system/Button/ButtonSubmit.test.js +55 -35
- package/build/system/Button/index.d.ts +7 -3
- package/build/system/Button/index.js +8 -7
- package/build/system/Dropdown/DropdownContent.js +1 -1
- package/build/system/Dropdown/DropdownItem.js +1 -1
- package/build/system/Dropdown/DropdownLabel.js +1 -1
- package/build/system/Form/Checkbox.d.ts +9 -9
- package/build/system/Form/Checkbox.js +56 -61
- package/build/system/Form/Checkbox.stories.d.ts +6 -6
- package/build/system/Form/Checkbox.stories.js +71 -0
- package/build/system/Form/Input.d.ts +14 -1
- package/build/system/Form/Input.js +59 -72
- package/build/system/Form/Input.stories.d.ts +6 -4
- package/build/system/Form/Input.stories.js +53 -0
- package/build/system/Form/Input.styles.d.ts +23 -14
- package/build/system/Form/Input.styles.js +40 -28
- package/build/system/Form/InputWithCopyButton.stories.jsx +7 -0
- package/build/system/Form/Label.d.ts +19 -8
- package/build/system/Form/Label.js +39 -43
- package/build/system/Form/Label.stories.d.ts +7 -5
- package/build/system/Form/Label.stories.js +32 -0
- package/build/system/Form/Radio.js +4 -4
- package/build/system/Form/Radio.stories.jsx +1 -1
- package/build/system/Form/RadioBoxGroup.js +1 -1
- package/build/system/Form/RequiredLabel.d.ts +2 -1
- package/build/system/Form/RequiredLabel.js +16 -7
- package/build/system/Form/Toggle.js +2 -2
- package/build/system/Form/Validation.d.ts +8 -13
- package/build/system/Form/Validation.js +39 -35
- package/build/system/Heading/Heading.stories.js +3 -0
- package/build/system/Link/Link.js +1 -1
- package/build/system/NewDialog/DialogClose.js +2 -2
- package/build/system/NewDialog/DialogContent.js +3 -3
- package/build/system/NewDialog/DialogTitle.js +3 -1
- package/build/system/NewDialog/NewDialog.stories.d.ts +0 -1
- package/build/system/NewDialog/NewDialog.stories.jsx +0 -27
- package/build/system/NewForm/Fieldset.d.ts +12 -1
- package/build/system/NewForm/Fieldset.js +38 -40
- package/build/system/NewForm/Form.d.ts +8 -1
- package/build/system/NewForm/Form.js +24 -23
- package/build/system/NewForm/FormAutocomplete.css +0 -11
- package/build/system/NewForm/FormAutocomplete.js +8 -8
- package/build/system/NewForm/FormAutocomplete.stories.jsx +1 -3
- package/build/system/NewForm/FormAutocompleteMultiselect.js +10 -10
- package/build/system/NewForm/FormSelect.js +1 -1
- package/build/system/NewForm/FormSelectArrow.js +1 -1
- package/build/system/NewForm/FormSelectInline.js +1 -1
- package/build/system/NewForm/FormSelectLoading.js +1 -1
- package/build/system/NewForm/FormSelectSearch.js +2 -2
- package/build/system/NewForm/Legend.d.ts +12 -1
- package/build/system/NewForm/Legend.js +32 -34
- package/build/system/NewForm/index.d.ts +1 -1
- package/build/system/OptionRow/OptionRow.js +1 -1
- package/build/system/Progress/Progress.d.ts +9 -2
- package/build/system/Progress/Progress.js +75 -70
- package/build/system/Progress/Progress.stories.d.ts +9 -7
- package/build/system/Progress/Progress.stories.js +34 -0
- package/build/system/Progress/Progress.test.d.ts +1 -0
- package/build/system/Progress/Progress.test.js +65 -0
- package/build/system/Progress/index.d.ts +4 -2
- package/build/system/Progress/index.js +5 -5
- package/build/system/ScreenReaderText/ScreenReaderText.js +1 -2
- package/build/system/Tabs/TabsTrigger.js +0 -1
- package/build/system/Text/Text.js +1 -1
- package/build/system/Text/Text.stories.js +36 -0
- package/build/system/Tooltip/Tooltip.css +6 -2
- package/build/system/Tooltip/Tooltip.stories.js +2 -2
- package/build/system/Wizard/Wizard.d.ts +14 -1
- package/build/system/Wizard/Wizard.js +62 -93
- package/build/system/Wizard/Wizard.stories.d.ts +11 -8
- package/build/system/Wizard/Wizard.stories.js +167 -0
- package/build/system/Wizard/WizardStep.d.ts +24 -1
- package/build/system/Wizard/WizardStep.js +180 -190
- package/build/system/Wizard/index.d.ts +4 -2
- package/build/system/Wizard/index.js +6 -7
- package/build/system/index.d.ts +2 -2
- package/build/system/index.js +2 -1
- package/build/system/theme/generated/valet-theme-dark.json +1219 -476
- package/build/system/theme/generated/valet-theme-light.json +1217 -474
- package/build/system/theme/{getColor.d.ts → getPropValue.d.ts} +2 -1
- package/{src/system/theme/getColor.js → build/system/theme/getPropValue.js} +36 -4
- package/build/system/theme/index.d.ts +20 -65
- package/build/system/theme/index.js +27 -57
- package/package.json +4 -4
- package/src/system/Accordion/Accordion.stories.tsx +1 -1
- package/src/system/Accordion/Accordion.test.tsx +3 -0
- package/src/system/Accordion/Accordion.tsx +6 -6
- package/src/system/Avatar/Avatar.tsx +3 -3
- package/src/system/Badge/Badge.tsx +1 -1
- package/src/system/Button/Button.stories.tsx +2 -3
- package/src/system/Button/{Button.test.js → Button.test.tsx} +2 -2
- package/src/system/Button/Button.tsx +12 -0
- package/src/system/Button/ButtonSubmit.stories.tsx +31 -0
- package/src/system/Button/{ButtonSubmit.test.js → ButtonSubmit.test.tsx} +4 -4
- package/src/system/Button/{ButtonSubmit.js → ButtonSubmit.tsx} +21 -27
- package/src/system/Button/index.ts +8 -0
- package/src/system/Dropdown/DropdownContent.js +1 -1
- package/src/system/Dropdown/DropdownItem.js +1 -1
- package/src/system/Dropdown/DropdownLabel.js +1 -1
- package/src/system/Form/{Checkbox.stories.jsx → Checkbox.stories.tsx} +3 -2
- package/src/system/Form/{Checkbox.js → Checkbox.tsx} +6 -10
- package/src/system/Form/{Input.stories.jsx → Input.stories.tsx} +1 -0
- package/src/system/Form/{Input.styles.js → Input.styles.ts} +14 -5
- package/src/system/Form/{Input.js → Input.tsx} +10 -19
- package/src/system/Form/InputWithCopyButton.stories.jsx +7 -0
- package/src/system/Form/{Label.js → Label.tsx} +8 -13
- package/src/system/Form/Radio.js +4 -4
- package/src/system/Form/Radio.stories.jsx +1 -1
- package/src/system/Form/RadioBoxGroup.js +1 -1
- package/src/system/Form/{RequiredLabel.js → RequiredLabel.tsx} +1 -3
- package/src/system/Form/Toggle.js +2 -2
- package/src/system/Form/{Validation.js → Validation.tsx} +11 -12
- package/src/system/Heading/Heading.stories.tsx +1 -0
- package/src/system/Link/Link.tsx +1 -1
- package/src/system/NewDialog/DialogClose.js +2 -2
- package/src/system/NewDialog/DialogContent.js +3 -3
- package/src/system/NewDialog/DialogTitle.js +3 -1
- package/src/system/NewDialog/NewDialog.stories.jsx +0 -27
- package/src/system/NewForm/Fieldset.tsx +46 -0
- package/src/system/NewForm/Form.tsx +23 -0
- package/src/system/NewForm/FormAutocomplete.css +0 -11
- package/src/system/NewForm/FormAutocomplete.js +8 -8
- package/src/system/NewForm/FormAutocomplete.stories.jsx +1 -3
- package/src/system/NewForm/FormAutocompleteMultiselect.js +10 -10
- package/src/system/NewForm/FormSelect.js +1 -1
- package/src/system/NewForm/FormSelectArrow.js +1 -1
- package/src/system/NewForm/FormSelectInline.js +1 -1
- package/src/system/NewForm/FormSelectLoading.js +1 -1
- package/src/system/NewForm/FormSelectSearch.js +2 -2
- package/src/system/NewForm/Legend.tsx +40 -0
- package/src/system/OptionRow/OptionRow.js +1 -1
- package/src/system/Progress/Progress.test.tsx +33 -0
- package/src/system/Progress/{Progress.js → Progress.tsx} +16 -19
- package/src/system/Progress/index.ts +4 -0
- package/src/system/ScreenReaderText/ScreenReaderText.tsx +0 -2
- package/src/system/Tabs/TabsTrigger.js +0 -1
- package/src/system/Text/Text.stories.tsx +7 -0
- package/src/system/Text/Text.tsx +1 -1
- package/src/system/Tooltip/Tooltip.css +6 -2
- package/src/system/Tooltip/Tooltip.stories.tsx +4 -4
- package/{build/system/Wizard/Wizard.stories.jsx → src/system/Wizard/Wizard.stories.tsx} +18 -23
- package/src/system/Wizard/Wizard.tsx +62 -0
- package/src/system/Wizard/{WizardStep.js → WizardStep.tsx} +38 -41
- package/src/system/Wizard/index.ts +7 -0
- package/src/system/index.js +2 -1
- package/src/system/theme/generated/valet-theme-dark.json +1219 -476
- package/src/system/theme/generated/valet-theme-light.json +1217 -474
- package/{build/system/theme/getColor.js → src/system/theme/getPropValue.js} +36 -4
- package/src/system/theme/index.js +27 -57
- package/tokens/utilities/colors/color output/blue.json +305 -0
- package/tokens/utilities/colors/color output/gold.json +305 -0
- package/tokens/utilities/colors/color output/gray.json +305 -0
- package/tokens/utilities/colors/color output/green.json +305 -0
- package/tokens/utilities/colors/color output/orange.json +305 -0
- package/tokens/utilities/colors/color output/pink.json +305 -0
- package/tokens/utilities/colors/color output/red.json +305 -0
- package/tokens/utilities/colors/color output/salmon.json +305 -0
- package/tokens/utilities/colors/color output/yellow.json +305 -0
- package/tokens/utilities/colors/colorOutput.json +4062 -0
- package/tokens/utilities/colors/color_3d_plot.js +43 -0
- package/tokens/utilities/colors/color_graph.js +31 -0
- package/tokens/utilities/colors/colors.json +1981 -0
- package/tokens/utilities/colors/index.js +118 -0
- package/tokens/utilities/colors/package-lock.json +6749 -0
- package/tokens/utilities/colors/package.json +21 -0
- package/tokens/utilities/figma-type-calculator/responsive-type.js +98 -0
- package/tokens/valet-core/$metadata.json +19 -15
- package/tokens/valet-core/$themes.json +3323 -419
- package/tokens/valet-core/{figma-parsely-expressive-type.json → figma-parsely-web-type.json} +128 -128
- package/tokens/valet-core/{figma-valet-expressive-type.json → figma-valet-web-type.json} +126 -126
- package/tokens/valet-core/figma-wpvip-services-web-type.json +1267 -0
- package/tokens/valet-core/{figma-wpvip-expressive-type.json → figma-wpvip-web-type.json} +162 -162
- package/tokens/valet-core/{parsely-expressive-color.json → parsely-web-color.json} +1 -1
- package/tokens/valet-core/{wpvip-expressive-core.json → parsely-web-core.json} +73 -23
- package/tokens/valet-core/{parsely-expressive-type.json → parsely-web-type.json} +21 -9
- package/tokens/valet-core/valet-core.json +331 -232
- package/tokens/valet-core/{valet-expressive-color.json → valet-web-color.json} +1 -1
- package/tokens/valet-core/{parsely-expressive-core.json → valet-web-core.json} +72 -22
- package/tokens/valet-core/{wpvip-productive-color.json → wpvip-product-core.json} +663 -7
- package/tokens/valet-core/{wpvip-productive-color-dark.json → wpvip-product-dark.json} +332 -10
- package/tokens/valet-core/{wpvip-expressive-color.json → wpvip-services-web-color.json} +1 -1
- package/tokens/valet-core/{valet-expressive-core.json → wpvip-services-web-core.json} +72 -22
- package/tokens/valet-core/wpvip-services-web-type.json +412 -0
- package/tokens/valet-core/{wpvip-expressive-color-dark.json → wpvip-web-color-dark.json} +1 -1
- package/tokens/valet-core/wpvip-web-color.json +730 -0
- package/tokens/valet-core/{wpvip-expressive-type.json → wpvip-web-type.json} +24 -12
- package/tokens/valet-core/wpvip-web.json +1310 -0
- package/tsconfig.json +2 -1
- package/build/system/Button/ButtonSubmit.stories.jsx +0 -40
- package/build/system/Button/variants.d.ts +0 -2
- package/build/system/Button/variants.js +0 -1
- package/build/system/Form/Checkbox.stories.jsx +0 -54
- package/build/system/Form/Input.stories.jsx +0 -38
- package/build/system/Wizard/WizardStepHorizontal.d.ts +0 -2
- package/build/system/Wizard/WizardStepHorizontal.js +0 -55
- package/build/system/theme/textStyles.d.ts +0 -71
- package/build/system/theme/textStyles.js +0 -46
- package/src/system/Button/ButtonSubmit.stories.jsx +0 -40
- package/src/system/Button/index.js +0 -8
- package/src/system/Button/variants.js +0 -1
- package/src/system/Form/Label.stories.jsx +0 -36
- package/src/system/NewForm/Fieldset.js +0 -47
- package/src/system/NewForm/Form.js +0 -26
- package/src/system/NewForm/Legend.js +0 -41
- package/src/system/Progress/Progress.stories.jsx +0 -25
- package/src/system/Progress/index.js +0 -6
- package/src/system/Wizard/Wizard.js +0 -103
- package/src/system/Wizard/Wizard.stories.jsx +0 -145
- package/src/system/Wizard/WizardStepHorizontal.js +0 -55
- package/src/system/Wizard/index.js +0 -8
- package/src/system/theme/textStyles.js +0 -46
- /package/{build/system/Form/Label.stories.jsx → src/system/Form/Label.stories.tsx} +0 -0
- /package/{build/system/Progress/Progress.stories.jsx → src/system/Progress/Progress.stories.tsx} +0 -0
|
@@ -5,15 +5,34 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import React, { useLayoutEffect } from 'react';
|
|
7
7
|
import { BsCircleFill, BsFillCheckCircleFill } from 'react-icons/bs';
|
|
8
|
-
import PropTypes from 'prop-types';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Internal dependencies
|
|
12
11
|
*/
|
|
13
12
|
import { Card, Heading, Text, Flex, Table, TableRow, TableCell, Button } from '..';
|
|
14
13
|
import { ScreenReaderText } from '../ScreenReaderText';
|
|
14
|
+
import { HeadingProps } from '../Heading/Heading';
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
export interface WizardStepSummary {
|
|
17
|
+
label?: React.ReactNode;
|
|
18
|
+
value?: React.ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export interface WizardStepProps {
|
|
21
|
+
active?: boolean;
|
|
22
|
+
complete?: boolean;
|
|
23
|
+
order?: number;
|
|
24
|
+
totalSteps?: number;
|
|
25
|
+
title: React.ReactNode;
|
|
26
|
+
titleVariant?: HeadingProps[ 'variant' ];
|
|
27
|
+
subTitle?: React.ReactNode;
|
|
28
|
+
children?: React.ReactNode;
|
|
29
|
+
skipped?: boolean;
|
|
30
|
+
onChange?: () => void;
|
|
31
|
+
summary?: WizardStepSummary[];
|
|
32
|
+
shouldFocusTitle?: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const WizardStep = React.forwardRef< HTMLDivElement, WizardStepProps >(
|
|
17
36
|
(
|
|
18
37
|
{
|
|
19
38
|
title,
|
|
@@ -31,7 +50,7 @@ const WizardStep = React.forwardRef(
|
|
|
31
50
|
},
|
|
32
51
|
forwardRef
|
|
33
52
|
) => {
|
|
34
|
-
const titleRef = React.useRef( null );
|
|
53
|
+
const titleRef = React.useRef< HTMLHeadingElement >( null );
|
|
35
54
|
let status = 'inactive';
|
|
36
55
|
let statusText = 'Step not completed';
|
|
37
56
|
if ( active ) {
|
|
@@ -51,10 +70,13 @@ const WizardStep = React.forwardRef(
|
|
|
51
70
|
|
|
52
71
|
const borderLeftColor = `wizard.step.border.${ status }`;
|
|
53
72
|
const statusIconColor = `wizard.step.icon.${ status }`;
|
|
73
|
+
const statusIconStyles = {
|
|
74
|
+
mr: 3,
|
|
75
|
+
mt: 0,
|
|
76
|
+
color: statusIconColor,
|
|
77
|
+
};
|
|
54
78
|
const headingColor = `wizard.step.heading.${ status }`;
|
|
55
79
|
|
|
56
|
-
const StatusIcon = complete ? BsFillCheckCircleFill : BsCircleFill;
|
|
57
|
-
|
|
58
80
|
useLayoutEffect( () => {
|
|
59
81
|
if ( active && titleRef?.current && shouldFocusTitle ) {
|
|
60
82
|
titleRef.current.focus();
|
|
@@ -81,7 +103,6 @@ const WizardStep = React.forwardRef(
|
|
|
81
103
|
data-step={ order }
|
|
82
104
|
data-active={ active || undefined }
|
|
83
105
|
ref={ forwardRef }
|
|
84
|
-
// aria-current={ active ? 'step' : undefined }
|
|
85
106
|
>
|
|
86
107
|
<Flex sx={ { alignItems: 'flex-end', mb: 2 } }>
|
|
87
108
|
<Heading
|
|
@@ -90,7 +111,7 @@ const WizardStep = React.forwardRef(
|
|
|
90
111
|
mb: 1,
|
|
91
112
|
color: headingColor,
|
|
92
113
|
fontSize: 2,
|
|
93
|
-
fontWeight: '
|
|
114
|
+
fontWeight: 'heading',
|
|
94
115
|
flexGrow: 1,
|
|
95
116
|
} }
|
|
96
117
|
ref={ titleRef }
|
|
@@ -102,13 +123,11 @@ const WizardStep = React.forwardRef(
|
|
|
102
123
|
</Text>
|
|
103
124
|
|
|
104
125
|
<Flex as="span" sx={ { mt: 3, alignItems: 'center' } } aria-hidden="true">
|
|
105
|
-
|
|
106
|
-
sx={
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
} }
|
|
111
|
-
/>
|
|
126
|
+
{ complete ? (
|
|
127
|
+
<BsFillCheckCircleFill sx={ statusIconStyles } />
|
|
128
|
+
) : (
|
|
129
|
+
<BsCircleFill sx={ statusIconStyles } />
|
|
130
|
+
) }
|
|
112
131
|
{ title }
|
|
113
132
|
</Flex>
|
|
114
133
|
|
|
@@ -117,7 +136,7 @@ const WizardStep = React.forwardRef(
|
|
|
117
136
|
* we are adding the composed title here so that it's announced correctly by the voiceover
|
|
118
137
|
* Using tags inside the heading would make the voiceover read the heading in multiple parts
|
|
119
138
|
**/
|
|
120
|
-
`${ stepText }: ${ title }. ${ statusText }`
|
|
139
|
+
`${ stepText }: ${ title?.toString() }. ${ statusText }`
|
|
121
140
|
}</ScreenReaderText>
|
|
122
141
|
</Heading>
|
|
123
142
|
|
|
@@ -127,19 +146,19 @@ const WizardStep = React.forwardRef(
|
|
|
127
146
|
onClick={ onChange }
|
|
128
147
|
sx={ { height: 'auto', alignSelf: 'flex-end' } }
|
|
129
148
|
>
|
|
130
|
-
Change <ScreenReaderText>{ `the ${ title } step` }</ScreenReaderText>
|
|
149
|
+
Change <ScreenReaderText>{ `the ${ title?.toString() } step` }</ScreenReaderText>
|
|
131
150
|
</Button>
|
|
132
151
|
) }
|
|
133
152
|
</Flex>
|
|
134
|
-
{ ! active && ( complete || skipped ) && summary
|
|
153
|
+
{ ! active && ( complete || skipped ) && summary && summary.length > 0 && (
|
|
135
154
|
<Table
|
|
136
|
-
caption={ `Summary of ${ title }` }
|
|
155
|
+
caption={ `Summary of ${ title?.toString() }` }
|
|
137
156
|
sx={ {
|
|
138
157
|
width: 'auto',
|
|
139
158
|
minWidth: 'auto',
|
|
140
159
|
'> tbody > tr': {
|
|
141
160
|
'> td, > th': {
|
|
142
|
-
fontWeight: '
|
|
161
|
+
fontWeight: 'heading',
|
|
143
162
|
border: 'none',
|
|
144
163
|
pl: 0,
|
|
145
164
|
'&:first-of-type': { pl: 0 },
|
|
@@ -176,25 +195,3 @@ const WizardStep = React.forwardRef(
|
|
|
176
195
|
);
|
|
177
196
|
|
|
178
197
|
WizardStep.displayName = 'WizardStep';
|
|
179
|
-
|
|
180
|
-
WizardStep.propTypes = {
|
|
181
|
-
active: PropTypes.bool,
|
|
182
|
-
children: PropTypes.node,
|
|
183
|
-
complete: PropTypes.bool,
|
|
184
|
-
order: PropTypes.number.isRequired,
|
|
185
|
-
totalSteps: PropTypes.number.isRequired,
|
|
186
|
-
subTitle: PropTypes.node,
|
|
187
|
-
title: PropTypes.string,
|
|
188
|
-
titleVariant: PropTypes.string,
|
|
189
|
-
skipped: PropTypes.bool,
|
|
190
|
-
onChange: PropTypes.func,
|
|
191
|
-
summary: PropTypes.arrayOf(
|
|
192
|
-
PropTypes.shape( {
|
|
193
|
-
label: PropTypes.node,
|
|
194
|
-
value: PropTypes.node,
|
|
195
|
-
} )
|
|
196
|
-
),
|
|
197
|
-
shouldFocusTitle: PropTypes.bool,
|
|
198
|
-
};
|
|
199
|
-
|
|
200
|
-
export { WizardStep };
|
package/src/system/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { Avatar } from './Avatar';
|
|
5
5
|
import { Badge } from './Badge';
|
|
6
6
|
import { Box } from './Box';
|
|
7
|
-
import { Button, ButtonSubmit } from './Button';
|
|
7
|
+
import { Button, ButtonSubmit, ButtonVariant } from './Button';
|
|
8
8
|
import { Card } from './Card';
|
|
9
9
|
import { Code } from './Code';
|
|
10
10
|
import {
|
|
@@ -58,6 +58,7 @@ export {
|
|
|
58
58
|
Box,
|
|
59
59
|
Button,
|
|
60
60
|
ButtonSubmit,
|
|
61
|
+
ButtonVariant,
|
|
61
62
|
Card,
|
|
62
63
|
Checkbox,
|
|
63
64
|
Code,
|