norma-library 0.6.6 → 0.6.61
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/.babelrc.json +18 -18
- package/.prettierignore +10 -10
- package/.prettierrc.json +20 -20
- package/.storybook/main.ts +20 -20
- package/.storybook/preview.ts +15 -15
- package/README.md +43 -43
- package/commitlint.config.js +1 -1
- package/dist/esm/helpers/colors.d.ts +72 -0
- package/dist/esm/helpers/colors.js +66 -27
- package/dist/esm/helpers/colors.js.map +1 -1
- package/docs/index.md +118 -118
- package/package.json +136 -136
- package/src/components/Accordion.tsx +39 -39
- package/src/components/Avatar.tsx +17 -17
- package/src/components/Badge.tsx +14 -14
- package/src/components/Box/index.tsx +12 -12
- package/src/components/Box/interfaces.ts +3 -3
- package/src/components/Box/styles.tsx +22 -22
- package/src/components/Breadcrumb/index.tsx +27 -27
- package/src/components/Breadcrumb/interface.ts +8 -8
- package/src/components/Breadcrumb/styles.tsx +32 -32
- package/src/components/Button.tsx +26 -26
- package/src/components/Card.tsx +37 -37
- package/src/components/ChatMessage.tsx +87 -87
- package/src/components/ChatMessageBalloon/ChatMessageBalloon.style.ts +56 -56
- package/src/components/ChatMessageBalloon/ChatMessageBalloon.tsx +55 -55
- package/src/components/CheckBox.tsx +21 -21
- package/src/components/DateInput/index.tsx +34 -34
- package/src/components/DateInput/interface.ts +13 -13
- package/src/components/DateInput/styles.tsx +27 -27
- package/src/components/DatePicker.tsx +67 -67
- package/src/components/DropDown.tsx +24 -24
- package/src/components/IconButton.tsx +37 -37
- package/src/components/Icons.tsx +82 -82
- package/src/components/Modal.tsx +103 -103
- package/src/components/MultiSelectInput/components/MultiValue/index.tsx +44 -44
- package/src/components/MultiSelectInput/components/Option/index.tsx +62 -62
- package/src/components/MultiSelectInput/components/Option/styles.tsx +8 -8
- package/src/components/MultiSelectInput/index.tsx +60 -60
- package/src/components/MultiSelectInput/interfaces.ts +15 -15
- package/src/components/MultiSelectInput/styles.tsx +43 -43
- package/src/components/Paper.tsx +12 -12
- package/src/components/ProgressBar.tsx +71 -71
- package/src/components/RadioGroup.tsx +43 -43
- package/src/components/RangerSlider.tsx +65 -65
- package/src/components/Select.tsx +74 -74
- package/src/components/SelectInput/components/Option/index.tsx +61 -61
- package/src/components/SelectInput/components/Option/styles.tsx +8 -8
- package/src/components/SelectInput/index.tsx +45 -45
- package/src/components/SelectInput/interfaces.ts +15 -15
- package/src/components/SelectInput/styles.tsx +31 -31
- package/src/components/StatusModal/StatusModal.style.tsx +75 -75
- package/src/components/StatusModal/StatusModal.tsx +58 -58
- package/src/components/Svgs.tsx +506 -506
- package/src/components/Table/components/header/index.tsx +86 -86
- package/src/components/Table/components/header/styles.tsx +59 -59
- package/src/components/Table/components/index.tsx +8 -8
- package/src/components/Table/components/pagination/index.tsx +39 -39
- package/src/components/Table/components/pagination/styles.tsx +28 -28
- package/src/components/Table/components/tbody/index.tsx +30 -30
- package/src/components/Table/components/tbody/styles.tsx +4 -4
- package/src/components/Table/index.tsx +317 -317
- package/src/components/Table/interface.ts +23 -23
- package/src/components/Table/styles.tsx +117 -117
- package/src/components/Tabs.tsx +105 -105
- package/src/components/Tag.tsx +33 -33
- package/src/components/TextField.tsx +19 -19
- package/src/components/TextInput/index.tsx +37 -37
- package/src/components/TextInput/interface.ts +9 -9
- package/src/components/TextInput/styles.tsx +23 -23
- package/src/components/TimeLine.tsx +89 -89
- package/src/components/TimePicker.tsx +78 -78
- package/src/components/Typography/Text/index.tsx +20 -20
- package/src/components/Typography/Text/interfaces.ts +5 -5
- package/src/components/Typography/Text/styles.tsx +40 -40
- package/src/components/Typography/Title/index.tsx +22 -22
- package/src/components/Typography/Title/interfaces.ts +6 -6
- package/src/components/Typography/Title/styles.tsx +40 -40
- package/src/components/Typography/index.tsx +6 -6
- package/src/components/UncontrolledTable/components/header/index.tsx +72 -72
- package/src/components/UncontrolledTable/components/header/styles.tsx +66 -66
- package/src/components/UncontrolledTable/components/index.tsx +8 -8
- package/src/components/UncontrolledTable/components/pagination/index.tsx +43 -43
- package/src/components/UncontrolledTable/components/pagination/styles.tsx +28 -28
- package/src/components/UncontrolledTable/components/tbody/index.tsx +33 -33
- package/src/components/UncontrolledTable/components/tbody/styles.tsx +32 -32
- package/src/components/UncontrolledTable/index.tsx +223 -223
- package/src/components/UncontrolledTable/interface.ts +46 -46
- package/src/components/UncontrolledTable/styles.tsx +123 -123
- package/src/components/UncontrolledTabs/UncontrolledTabs.style.tsx +58 -58
- package/src/components/UncontrolledTabs/UncontrolledTabs.tsx +71 -71
- package/src/components/UncontrolledTabs/UncontrolledTabsInfo.style.ts +8 -8
- package/src/components/index.ts +24 -24
- package/src/helpers/alignments.ts +14 -14
- package/src/helpers/borders.ts +18 -18
- package/src/helpers/colors.ts +298 -258
- package/src/helpers/index.ts +5 -5
- package/src/helpers/radios.ts +24 -24
- package/src/helpers/sizes.ts +72 -72
- package/src/hooks/useClickOutside.tsx +18 -18
- package/src/index.ts +70 -70
- package/src/interfaces/Accordion.ts +12 -12
- package/src/interfaces/Avatar.tsx +15 -15
- package/src/interfaces/Badge.ts +19 -19
- package/src/interfaces/Button.ts +22 -22
- package/src/interfaces/Card.ts +11 -11
- package/src/interfaces/ChatMessage.ts +12 -12
- package/src/interfaces/ChatMessageBalloon.ts +17 -17
- package/src/interfaces/CheckBox.ts +27 -27
- package/src/interfaces/DatePicker.ts +13 -13
- package/src/interfaces/DropDown.ts +14 -14
- package/src/interfaces/IconButton.ts +22 -22
- package/src/interfaces/Icons.ts +17 -17
- package/src/interfaces/Modal.ts +18 -18
- package/src/interfaces/Paper.ts +12 -12
- package/src/interfaces/ProgressBar.ts +29 -29
- package/src/interfaces/RadioGroup.ts +23 -23
- package/src/interfaces/RangerSlider.ts +21 -21
- package/src/interfaces/Select.ts +17 -17
- package/src/interfaces/Tabs.ts +19 -19
- package/src/interfaces/Tag.ts +17 -17
- package/src/interfaces/TextField.ts +44 -44
- package/src/interfaces/TimeLine.ts +11 -11
- package/src/interfaces/TimePicker.ts +13 -13
- package/src/interfaces/index.ts +23 -23
- package/src/providers/NormaProvider.tsx +13 -13
- package/src/sample-data-2.json +178 -178
- package/src/sample-data.json +177 -177
- package/src/stories/Accordion.stories.tsx +65 -65
- package/src/stories/Avatar.stories.tsx +123 -123
- package/src/stories/Badge.stories.tsx +39 -39
- package/src/stories/Box.stories.tsx +35 -35
- package/src/stories/Breadcrumb.stories.tsx +44 -44
- package/src/stories/Button.stories.tsx +93 -93
- package/src/stories/Card.stories.tsx +39 -39
- package/src/stories/ChatMessage.stories.tsx +84 -84
- package/src/stories/ChatMessageBalloon.stories.tsx +108 -108
- package/src/stories/CheckBox.stories.tsx +88 -88
- package/src/stories/DateInput.stories.tsx +51 -51
- package/src/stories/DatePicker.stories.tsx +50 -50
- package/src/stories/DropDown.stories.tsx +57 -57
- package/src/stories/IconButton.stories.tsx +78 -78
- package/src/stories/Modal.stories.tsx +246 -246
- package/src/stories/ModalStatus.stories.tsx +46 -46
- package/src/stories/MultiSelectInput.stories.tsx +90 -90
- package/src/stories/Paper.stories.tsx +53 -53
- package/src/stories/ProgressBar.stories.tsx +116 -116
- package/src/stories/RadioGroup.stories.tsx +87 -87
- package/src/stories/RangerSlider.stories.tsx +149 -149
- package/src/stories/Select.stories.tsx +100 -100
- package/src/stories/SelectInput.stories.tsx +78 -78
- package/src/stories/Table.stories.tsx +372 -372
- package/src/stories/Tabs.stories.tsx +61 -61
- package/src/stories/Tag.stories.tsx +56 -56
- package/src/stories/Text.stories.tsx +37 -37
- package/src/stories/TextField.stories.tsx +310 -310
- package/src/stories/TextInput.stories.tsx +52 -52
- package/src/stories/TimeLine.stories.tsx +35 -35
- package/src/stories/TimePicker.stories.tsx +87 -87
- package/src/stories/Title.stories.tsx +43 -43
- package/src/stories/UncontrolledTable.stories.tsx +315 -315
- package/src/stories/UncontrolledTabs.stories.tsx +74 -74
- package/src/styles/globals.scss +17 -17
- package/src/types/index.ts +207 -207
- package/src/utils/styledBreakpoints.ts +25 -25
- package/vite.config.ts +15 -15
|
@@ -1,310 +1,310 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import Box from '@mui/material/Box';
|
|
4
|
-
import type { Meta, StoryObj } from '@storybook/react';
|
|
5
|
-
import { TextField } from '../components';
|
|
6
|
-
|
|
7
|
-
const meta = {
|
|
8
|
-
title: 'Form/TextField',
|
|
9
|
-
component: TextField,
|
|
10
|
-
parameters: {
|
|
11
|
-
layout: 'centered',
|
|
12
|
-
},
|
|
13
|
-
tags: ['autodocs'],
|
|
14
|
-
argTypes: {},
|
|
15
|
-
} satisfies Meta<typeof TextField>;
|
|
16
|
-
|
|
17
|
-
export default meta;
|
|
18
|
-
|
|
19
|
-
type Story = StoryObj<typeof meta>;
|
|
20
|
-
|
|
21
|
-
const defaultArgs = {
|
|
22
|
-
disabled: false,
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export const Playground: Story = {
|
|
26
|
-
args: {
|
|
27
|
-
label: 'Nome',
|
|
28
|
-
id: 'input-demo',
|
|
29
|
-
color: 'primary',
|
|
30
|
-
variant: 'standard',
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const TextFieldVariant = () => (
|
|
35
|
-
<>
|
|
36
|
-
<TextField variant="standard" label="Variant text" />
|
|
37
|
-
<TextField variant="filled" label="Variant Contained" />
|
|
38
|
-
<TextField variant="outlined" label="Variant Outlined" />
|
|
39
|
-
</>
|
|
40
|
-
);
|
|
41
|
-
TextFieldVariant.storyName = 'TextField Variants';
|
|
42
|
-
|
|
43
|
-
export const TextFieldValidation = () => (
|
|
44
|
-
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
45
|
-
<Box
|
|
46
|
-
component="form"
|
|
47
|
-
sx={{
|
|
48
|
-
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
49
|
-
}}
|
|
50
|
-
noValidate
|
|
51
|
-
autoComplete="off"
|
|
52
|
-
>
|
|
53
|
-
<div>
|
|
54
|
-
<TextField error id="outlined-error" label="Error" defaultValue="Hello World" />
|
|
55
|
-
<TextField
|
|
56
|
-
error
|
|
57
|
-
id="outlined-error-helper-text"
|
|
58
|
-
label="Error"
|
|
59
|
-
defaultValue="Hello World"
|
|
60
|
-
helperText="Incorrect entry."
|
|
61
|
-
/>
|
|
62
|
-
</div>
|
|
63
|
-
<div>
|
|
64
|
-
<TextField error id="filled-error" label="Error" defaultValue="Hello World" variant="filled" />
|
|
65
|
-
<TextField
|
|
66
|
-
error
|
|
67
|
-
id="filled-error-helper-text"
|
|
68
|
-
label="Error"
|
|
69
|
-
defaultValue="Hello World"
|
|
70
|
-
helperText="Incorrect entry."
|
|
71
|
-
variant="filled"
|
|
72
|
-
/>
|
|
73
|
-
</div>
|
|
74
|
-
<div>
|
|
75
|
-
<TextField error id="standard-error" label="Error" defaultValue="Hello World" variant="standard" />
|
|
76
|
-
<TextField
|
|
77
|
-
error
|
|
78
|
-
id="standard-error-helper-text"
|
|
79
|
-
label="Error"
|
|
80
|
-
defaultValue="Hello World"
|
|
81
|
-
helperText="Incorrect entry."
|
|
82
|
-
variant="standard"
|
|
83
|
-
/>
|
|
84
|
-
</div>
|
|
85
|
-
</Box>
|
|
86
|
-
</div>
|
|
87
|
-
);
|
|
88
|
-
TextFieldValidation.storyName = 'TextField Validation';
|
|
89
|
-
|
|
90
|
-
export const TextFieldMultiline = () => (
|
|
91
|
-
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
92
|
-
<Box
|
|
93
|
-
component="form"
|
|
94
|
-
sx={{
|
|
95
|
-
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
96
|
-
}}
|
|
97
|
-
noValidate
|
|
98
|
-
autoComplete="off"
|
|
99
|
-
>
|
|
100
|
-
<div>
|
|
101
|
-
<TextField id="outlined-multiline-flexible" label="Multiline" multiline maxRows={4} />
|
|
102
|
-
<TextField id="outlined-textarea" label="Multiline Placeholder" placeholder="Placeholder" multiline />
|
|
103
|
-
<TextField id="outlined-multiline-static" label="Multiline" multiline rows={4} defaultValue="Default Value" />
|
|
104
|
-
</div>
|
|
105
|
-
<div>
|
|
106
|
-
<TextField id="filled-multiline-flexible" label="Multiline" multiline maxRows={4} variant="filled" />
|
|
107
|
-
<TextField
|
|
108
|
-
id="filled-textarea"
|
|
109
|
-
label="Multiline Placeholder"
|
|
110
|
-
placeholder="Placeholder"
|
|
111
|
-
multiline
|
|
112
|
-
variant="filled"
|
|
113
|
-
/>
|
|
114
|
-
<TextField
|
|
115
|
-
id="filled-multiline-static"
|
|
116
|
-
label="Multiline"
|
|
117
|
-
multiline
|
|
118
|
-
rows={4}
|
|
119
|
-
defaultValue="Default Value"
|
|
120
|
-
variant="filled"
|
|
121
|
-
/>
|
|
122
|
-
</div>
|
|
123
|
-
<div>
|
|
124
|
-
<TextField id="standard-multiline-flexible" label="Multiline" multiline maxRows={4} variant="standard" />
|
|
125
|
-
<TextField
|
|
126
|
-
id="standard-textarea"
|
|
127
|
-
label="Multiline Placeholder"
|
|
128
|
-
placeholder="Placeholder"
|
|
129
|
-
multiline
|
|
130
|
-
variant="standard"
|
|
131
|
-
/>
|
|
132
|
-
<TextField
|
|
133
|
-
id="standard-multiline-static"
|
|
134
|
-
label="Multiline"
|
|
135
|
-
multiline
|
|
136
|
-
rows={4}
|
|
137
|
-
defaultValue="Default Value"
|
|
138
|
-
variant="standard"
|
|
139
|
-
/>
|
|
140
|
-
</div>
|
|
141
|
-
</Box>
|
|
142
|
-
</div>
|
|
143
|
-
);
|
|
144
|
-
TextFieldMultiline.storyName = 'TextField Multiline';
|
|
145
|
-
|
|
146
|
-
export const TextFieldSizes = () => (
|
|
147
|
-
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
148
|
-
<Box
|
|
149
|
-
component="form"
|
|
150
|
-
sx={{
|
|
151
|
-
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
152
|
-
}}
|
|
153
|
-
noValidate
|
|
154
|
-
autoComplete="off"
|
|
155
|
-
>
|
|
156
|
-
<div>
|
|
157
|
-
<TextField label="Size" id="outlined-size-small" defaultValue="Small" size="small" />
|
|
158
|
-
<TextField label="Size" id="outlined-size-normal" defaultValue="Normal" />
|
|
159
|
-
</div>
|
|
160
|
-
<div>
|
|
161
|
-
<TextField label="Size" id="filled-size-small" defaultValue="Small" variant="filled" size="small" />
|
|
162
|
-
<TextField label="Size" id="filled-size-normal" defaultValue="Normal" variant="filled" />
|
|
163
|
-
</div>
|
|
164
|
-
<div>
|
|
165
|
-
<TextField label="Size" id="standard-size-small" defaultValue="Small" size="small" variant="standard" />
|
|
166
|
-
<TextField label="Size" id="standard-size-normal" defaultValue="Normal" variant="standard" />
|
|
167
|
-
</div>
|
|
168
|
-
</Box>
|
|
169
|
-
</div>
|
|
170
|
-
);
|
|
171
|
-
TextFieldSizes.storyName = 'TextField Sizes';
|
|
172
|
-
|
|
173
|
-
export const TextFieldColors = () => (
|
|
174
|
-
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
175
|
-
<Box
|
|
176
|
-
component="form"
|
|
177
|
-
sx={{
|
|
178
|
-
'& > :not(style)': { m: 1, width: '100%' },
|
|
179
|
-
}}
|
|
180
|
-
noValidate
|
|
181
|
-
autoComplete="off"
|
|
182
|
-
>
|
|
183
|
-
<TextField label="Outlined Primary" color="primary" focused />
|
|
184
|
-
<TextField label="Outlined secondary" color="secondary" focused />
|
|
185
|
-
<TextField label="Filled success" variant="filled" color="success" focused />
|
|
186
|
-
<TextField label="Standard warning" variant="standard" color="warning" focused />
|
|
187
|
-
</Box>
|
|
188
|
-
</div>
|
|
189
|
-
);
|
|
190
|
-
TextFieldColors.storyName = 'TextField Colors';
|
|
191
|
-
|
|
192
|
-
export const TextFieldProps = () => (
|
|
193
|
-
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
194
|
-
<Box
|
|
195
|
-
component="form"
|
|
196
|
-
sx={{
|
|
197
|
-
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
198
|
-
display: 'flex',
|
|
199
|
-
gap: '1rem',
|
|
200
|
-
margin: 15,
|
|
201
|
-
}}
|
|
202
|
-
noValidate
|
|
203
|
-
autoComplete="off"
|
|
204
|
-
>
|
|
205
|
-
<div>
|
|
206
|
-
<TextField required id="outlined-required" label="Required" defaultValue="Hello World" />
|
|
207
|
-
<TextField disabled id="outlined-disabled" label="Disabled" defaultValue="Hello World" />
|
|
208
|
-
<TextField id="outlined-password-input" label="Password" type="password" autoComplete="current-password" />
|
|
209
|
-
<TextField
|
|
210
|
-
id="outlined-read-only-input"
|
|
211
|
-
label="Read Only"
|
|
212
|
-
defaultValue="Hello World"
|
|
213
|
-
InputProps={{
|
|
214
|
-
readOnly: true,
|
|
215
|
-
}}
|
|
216
|
-
/>
|
|
217
|
-
<TextField
|
|
218
|
-
id="outlined-number"
|
|
219
|
-
label="Number"
|
|
220
|
-
type="number"
|
|
221
|
-
InputLabelProps={{
|
|
222
|
-
shrink: true,
|
|
223
|
-
}}
|
|
224
|
-
/>
|
|
225
|
-
<TextField id="outlined-search" label="Search field" type="search" />
|
|
226
|
-
<TextField
|
|
227
|
-
id="outlined-helperText"
|
|
228
|
-
label="Helper text"
|
|
229
|
-
defaultValue="Default Value"
|
|
230
|
-
helperText="Some important text"
|
|
231
|
-
/>
|
|
232
|
-
</div>
|
|
233
|
-
<div>
|
|
234
|
-
<TextField required id="filled-required" label="Required" defaultValue="Hello World" variant="filled" />
|
|
235
|
-
<TextField disabled id="filled-disabled" label="Disabled" defaultValue="Hello World" variant="filled" />
|
|
236
|
-
<TextField
|
|
237
|
-
id="filled-password-input"
|
|
238
|
-
label="Password"
|
|
239
|
-
type="password"
|
|
240
|
-
autoComplete="current-password"
|
|
241
|
-
variant="filled"
|
|
242
|
-
/>
|
|
243
|
-
<TextField
|
|
244
|
-
id="filled-read-only-input"
|
|
245
|
-
label="Read Only"
|
|
246
|
-
defaultValue="Hello World"
|
|
247
|
-
InputProps={{
|
|
248
|
-
readOnly: true,
|
|
249
|
-
}}
|
|
250
|
-
variant="filled"
|
|
251
|
-
/>
|
|
252
|
-
<TextField
|
|
253
|
-
id="filled-number"
|
|
254
|
-
label="Number"
|
|
255
|
-
type="number"
|
|
256
|
-
InputLabelProps={{
|
|
257
|
-
shrink: true,
|
|
258
|
-
}}
|
|
259
|
-
variant="filled"
|
|
260
|
-
/>
|
|
261
|
-
<TextField id="filled-search" label="Search field" type="search" variant="filled" />
|
|
262
|
-
<TextField
|
|
263
|
-
id="filled-helperText"
|
|
264
|
-
label="Helper text"
|
|
265
|
-
defaultValue="Default Value"
|
|
266
|
-
helperText="Some important text"
|
|
267
|
-
variant="filled"
|
|
268
|
-
/>
|
|
269
|
-
</div>
|
|
270
|
-
<div>
|
|
271
|
-
<TextField required id="standard-required" label="Required" defaultValue="Hello World" variant="standard" />
|
|
272
|
-
<TextField disabled id="standard-disabled" label="Disabled" defaultValue="Hello World" variant="standard" />
|
|
273
|
-
<TextField
|
|
274
|
-
id="standard-password-input"
|
|
275
|
-
label="Password"
|
|
276
|
-
type="password"
|
|
277
|
-
autoComplete="current-password"
|
|
278
|
-
variant="standard"
|
|
279
|
-
/>
|
|
280
|
-
<TextField
|
|
281
|
-
id="standard-read-only-input"
|
|
282
|
-
label="Read Only"
|
|
283
|
-
defaultValue="Hello World"
|
|
284
|
-
InputProps={{
|
|
285
|
-
readOnly: true,
|
|
286
|
-
}}
|
|
287
|
-
variant="standard"
|
|
288
|
-
/>
|
|
289
|
-
<TextField
|
|
290
|
-
id="standard-number"
|
|
291
|
-
label="Number"
|
|
292
|
-
type="number"
|
|
293
|
-
InputLabelProps={{
|
|
294
|
-
shrink: true,
|
|
295
|
-
}}
|
|
296
|
-
variant="standard"
|
|
297
|
-
/>
|
|
298
|
-
<TextField id="standard-search" label="Search field" type="search" variant="standard" />
|
|
299
|
-
<TextField
|
|
300
|
-
id="standard-helperText"
|
|
301
|
-
label="Helper text"
|
|
302
|
-
defaultValue="Default Value"
|
|
303
|
-
helperText="Some important text"
|
|
304
|
-
variant="standard"
|
|
305
|
-
/>
|
|
306
|
-
</div>
|
|
307
|
-
</Box>
|
|
308
|
-
</div>
|
|
309
|
-
);
|
|
310
|
-
TextFieldProps.storyName = 'TextField Props';
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import Box from '@mui/material/Box';
|
|
4
|
+
import type { Meta, StoryObj } from '@storybook/react';
|
|
5
|
+
import { TextField } from '../components';
|
|
6
|
+
|
|
7
|
+
const meta = {
|
|
8
|
+
title: 'Form/TextField',
|
|
9
|
+
component: TextField,
|
|
10
|
+
parameters: {
|
|
11
|
+
layout: 'centered',
|
|
12
|
+
},
|
|
13
|
+
tags: ['autodocs'],
|
|
14
|
+
argTypes: {},
|
|
15
|
+
} satisfies Meta<typeof TextField>;
|
|
16
|
+
|
|
17
|
+
export default meta;
|
|
18
|
+
|
|
19
|
+
type Story = StoryObj<typeof meta>;
|
|
20
|
+
|
|
21
|
+
const defaultArgs = {
|
|
22
|
+
disabled: false,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export const Playground: Story = {
|
|
26
|
+
args: {
|
|
27
|
+
label: 'Nome',
|
|
28
|
+
id: 'input-demo',
|
|
29
|
+
color: 'primary',
|
|
30
|
+
variant: 'standard',
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const TextFieldVariant = () => (
|
|
35
|
+
<>
|
|
36
|
+
<TextField variant="standard" label="Variant text" />
|
|
37
|
+
<TextField variant="filled" label="Variant Contained" />
|
|
38
|
+
<TextField variant="outlined" label="Variant Outlined" />
|
|
39
|
+
</>
|
|
40
|
+
);
|
|
41
|
+
TextFieldVariant.storyName = 'TextField Variants';
|
|
42
|
+
|
|
43
|
+
export const TextFieldValidation = () => (
|
|
44
|
+
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
45
|
+
<Box
|
|
46
|
+
component="form"
|
|
47
|
+
sx={{
|
|
48
|
+
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
49
|
+
}}
|
|
50
|
+
noValidate
|
|
51
|
+
autoComplete="off"
|
|
52
|
+
>
|
|
53
|
+
<div>
|
|
54
|
+
<TextField error id="outlined-error" label="Error" defaultValue="Hello World" />
|
|
55
|
+
<TextField
|
|
56
|
+
error
|
|
57
|
+
id="outlined-error-helper-text"
|
|
58
|
+
label="Error"
|
|
59
|
+
defaultValue="Hello World"
|
|
60
|
+
helperText="Incorrect entry."
|
|
61
|
+
/>
|
|
62
|
+
</div>
|
|
63
|
+
<div>
|
|
64
|
+
<TextField error id="filled-error" label="Error" defaultValue="Hello World" variant="filled" />
|
|
65
|
+
<TextField
|
|
66
|
+
error
|
|
67
|
+
id="filled-error-helper-text"
|
|
68
|
+
label="Error"
|
|
69
|
+
defaultValue="Hello World"
|
|
70
|
+
helperText="Incorrect entry."
|
|
71
|
+
variant="filled"
|
|
72
|
+
/>
|
|
73
|
+
</div>
|
|
74
|
+
<div>
|
|
75
|
+
<TextField error id="standard-error" label="Error" defaultValue="Hello World" variant="standard" />
|
|
76
|
+
<TextField
|
|
77
|
+
error
|
|
78
|
+
id="standard-error-helper-text"
|
|
79
|
+
label="Error"
|
|
80
|
+
defaultValue="Hello World"
|
|
81
|
+
helperText="Incorrect entry."
|
|
82
|
+
variant="standard"
|
|
83
|
+
/>
|
|
84
|
+
</div>
|
|
85
|
+
</Box>
|
|
86
|
+
</div>
|
|
87
|
+
);
|
|
88
|
+
TextFieldValidation.storyName = 'TextField Validation';
|
|
89
|
+
|
|
90
|
+
export const TextFieldMultiline = () => (
|
|
91
|
+
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
92
|
+
<Box
|
|
93
|
+
component="form"
|
|
94
|
+
sx={{
|
|
95
|
+
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
96
|
+
}}
|
|
97
|
+
noValidate
|
|
98
|
+
autoComplete="off"
|
|
99
|
+
>
|
|
100
|
+
<div>
|
|
101
|
+
<TextField id="outlined-multiline-flexible" label="Multiline" multiline maxRows={4} />
|
|
102
|
+
<TextField id="outlined-textarea" label="Multiline Placeholder" placeholder="Placeholder" multiline />
|
|
103
|
+
<TextField id="outlined-multiline-static" label="Multiline" multiline rows={4} defaultValue="Default Value" />
|
|
104
|
+
</div>
|
|
105
|
+
<div>
|
|
106
|
+
<TextField id="filled-multiline-flexible" label="Multiline" multiline maxRows={4} variant="filled" />
|
|
107
|
+
<TextField
|
|
108
|
+
id="filled-textarea"
|
|
109
|
+
label="Multiline Placeholder"
|
|
110
|
+
placeholder="Placeholder"
|
|
111
|
+
multiline
|
|
112
|
+
variant="filled"
|
|
113
|
+
/>
|
|
114
|
+
<TextField
|
|
115
|
+
id="filled-multiline-static"
|
|
116
|
+
label="Multiline"
|
|
117
|
+
multiline
|
|
118
|
+
rows={4}
|
|
119
|
+
defaultValue="Default Value"
|
|
120
|
+
variant="filled"
|
|
121
|
+
/>
|
|
122
|
+
</div>
|
|
123
|
+
<div>
|
|
124
|
+
<TextField id="standard-multiline-flexible" label="Multiline" multiline maxRows={4} variant="standard" />
|
|
125
|
+
<TextField
|
|
126
|
+
id="standard-textarea"
|
|
127
|
+
label="Multiline Placeholder"
|
|
128
|
+
placeholder="Placeholder"
|
|
129
|
+
multiline
|
|
130
|
+
variant="standard"
|
|
131
|
+
/>
|
|
132
|
+
<TextField
|
|
133
|
+
id="standard-multiline-static"
|
|
134
|
+
label="Multiline"
|
|
135
|
+
multiline
|
|
136
|
+
rows={4}
|
|
137
|
+
defaultValue="Default Value"
|
|
138
|
+
variant="standard"
|
|
139
|
+
/>
|
|
140
|
+
</div>
|
|
141
|
+
</Box>
|
|
142
|
+
</div>
|
|
143
|
+
);
|
|
144
|
+
TextFieldMultiline.storyName = 'TextField Multiline';
|
|
145
|
+
|
|
146
|
+
export const TextFieldSizes = () => (
|
|
147
|
+
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
148
|
+
<Box
|
|
149
|
+
component="form"
|
|
150
|
+
sx={{
|
|
151
|
+
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
152
|
+
}}
|
|
153
|
+
noValidate
|
|
154
|
+
autoComplete="off"
|
|
155
|
+
>
|
|
156
|
+
<div>
|
|
157
|
+
<TextField label="Size" id="outlined-size-small" defaultValue="Small" size="small" />
|
|
158
|
+
<TextField label="Size" id="outlined-size-normal" defaultValue="Normal" />
|
|
159
|
+
</div>
|
|
160
|
+
<div>
|
|
161
|
+
<TextField label="Size" id="filled-size-small" defaultValue="Small" variant="filled" size="small" />
|
|
162
|
+
<TextField label="Size" id="filled-size-normal" defaultValue="Normal" variant="filled" />
|
|
163
|
+
</div>
|
|
164
|
+
<div>
|
|
165
|
+
<TextField label="Size" id="standard-size-small" defaultValue="Small" size="small" variant="standard" />
|
|
166
|
+
<TextField label="Size" id="standard-size-normal" defaultValue="Normal" variant="standard" />
|
|
167
|
+
</div>
|
|
168
|
+
</Box>
|
|
169
|
+
</div>
|
|
170
|
+
);
|
|
171
|
+
TextFieldSizes.storyName = 'TextField Sizes';
|
|
172
|
+
|
|
173
|
+
export const TextFieldColors = () => (
|
|
174
|
+
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
175
|
+
<Box
|
|
176
|
+
component="form"
|
|
177
|
+
sx={{
|
|
178
|
+
'& > :not(style)': { m: 1, width: '100%' },
|
|
179
|
+
}}
|
|
180
|
+
noValidate
|
|
181
|
+
autoComplete="off"
|
|
182
|
+
>
|
|
183
|
+
<TextField label="Outlined Primary" color="primary" focused />
|
|
184
|
+
<TextField label="Outlined secondary" color="secondary" focused />
|
|
185
|
+
<TextField label="Filled success" variant="filled" color="success" focused />
|
|
186
|
+
<TextField label="Standard warning" variant="standard" color="warning" focused />
|
|
187
|
+
</Box>
|
|
188
|
+
</div>
|
|
189
|
+
);
|
|
190
|
+
TextFieldColors.storyName = 'TextField Colors';
|
|
191
|
+
|
|
192
|
+
export const TextFieldProps = () => (
|
|
193
|
+
<div style={{ display: 'flex', gap: '1rem', margin: 15 }}>
|
|
194
|
+
<Box
|
|
195
|
+
component="form"
|
|
196
|
+
sx={{
|
|
197
|
+
'& .MuiTextField-root': { m: 1, width: '100%' },
|
|
198
|
+
display: 'flex',
|
|
199
|
+
gap: '1rem',
|
|
200
|
+
margin: 15,
|
|
201
|
+
}}
|
|
202
|
+
noValidate
|
|
203
|
+
autoComplete="off"
|
|
204
|
+
>
|
|
205
|
+
<div>
|
|
206
|
+
<TextField required id="outlined-required" label="Required" defaultValue="Hello World" />
|
|
207
|
+
<TextField disabled id="outlined-disabled" label="Disabled" defaultValue="Hello World" />
|
|
208
|
+
<TextField id="outlined-password-input" label="Password" type="password" autoComplete="current-password" />
|
|
209
|
+
<TextField
|
|
210
|
+
id="outlined-read-only-input"
|
|
211
|
+
label="Read Only"
|
|
212
|
+
defaultValue="Hello World"
|
|
213
|
+
InputProps={{
|
|
214
|
+
readOnly: true,
|
|
215
|
+
}}
|
|
216
|
+
/>
|
|
217
|
+
<TextField
|
|
218
|
+
id="outlined-number"
|
|
219
|
+
label="Number"
|
|
220
|
+
type="number"
|
|
221
|
+
InputLabelProps={{
|
|
222
|
+
shrink: true,
|
|
223
|
+
}}
|
|
224
|
+
/>
|
|
225
|
+
<TextField id="outlined-search" label="Search field" type="search" />
|
|
226
|
+
<TextField
|
|
227
|
+
id="outlined-helperText"
|
|
228
|
+
label="Helper text"
|
|
229
|
+
defaultValue="Default Value"
|
|
230
|
+
helperText="Some important text"
|
|
231
|
+
/>
|
|
232
|
+
</div>
|
|
233
|
+
<div>
|
|
234
|
+
<TextField required id="filled-required" label="Required" defaultValue="Hello World" variant="filled" />
|
|
235
|
+
<TextField disabled id="filled-disabled" label="Disabled" defaultValue="Hello World" variant="filled" />
|
|
236
|
+
<TextField
|
|
237
|
+
id="filled-password-input"
|
|
238
|
+
label="Password"
|
|
239
|
+
type="password"
|
|
240
|
+
autoComplete="current-password"
|
|
241
|
+
variant="filled"
|
|
242
|
+
/>
|
|
243
|
+
<TextField
|
|
244
|
+
id="filled-read-only-input"
|
|
245
|
+
label="Read Only"
|
|
246
|
+
defaultValue="Hello World"
|
|
247
|
+
InputProps={{
|
|
248
|
+
readOnly: true,
|
|
249
|
+
}}
|
|
250
|
+
variant="filled"
|
|
251
|
+
/>
|
|
252
|
+
<TextField
|
|
253
|
+
id="filled-number"
|
|
254
|
+
label="Number"
|
|
255
|
+
type="number"
|
|
256
|
+
InputLabelProps={{
|
|
257
|
+
shrink: true,
|
|
258
|
+
}}
|
|
259
|
+
variant="filled"
|
|
260
|
+
/>
|
|
261
|
+
<TextField id="filled-search" label="Search field" type="search" variant="filled" />
|
|
262
|
+
<TextField
|
|
263
|
+
id="filled-helperText"
|
|
264
|
+
label="Helper text"
|
|
265
|
+
defaultValue="Default Value"
|
|
266
|
+
helperText="Some important text"
|
|
267
|
+
variant="filled"
|
|
268
|
+
/>
|
|
269
|
+
</div>
|
|
270
|
+
<div>
|
|
271
|
+
<TextField required id="standard-required" label="Required" defaultValue="Hello World" variant="standard" />
|
|
272
|
+
<TextField disabled id="standard-disabled" label="Disabled" defaultValue="Hello World" variant="standard" />
|
|
273
|
+
<TextField
|
|
274
|
+
id="standard-password-input"
|
|
275
|
+
label="Password"
|
|
276
|
+
type="password"
|
|
277
|
+
autoComplete="current-password"
|
|
278
|
+
variant="standard"
|
|
279
|
+
/>
|
|
280
|
+
<TextField
|
|
281
|
+
id="standard-read-only-input"
|
|
282
|
+
label="Read Only"
|
|
283
|
+
defaultValue="Hello World"
|
|
284
|
+
InputProps={{
|
|
285
|
+
readOnly: true,
|
|
286
|
+
}}
|
|
287
|
+
variant="standard"
|
|
288
|
+
/>
|
|
289
|
+
<TextField
|
|
290
|
+
id="standard-number"
|
|
291
|
+
label="Number"
|
|
292
|
+
type="number"
|
|
293
|
+
InputLabelProps={{
|
|
294
|
+
shrink: true,
|
|
295
|
+
}}
|
|
296
|
+
variant="standard"
|
|
297
|
+
/>
|
|
298
|
+
<TextField id="standard-search" label="Search field" type="search" variant="standard" />
|
|
299
|
+
<TextField
|
|
300
|
+
id="standard-helperText"
|
|
301
|
+
label="Helper text"
|
|
302
|
+
defaultValue="Default Value"
|
|
303
|
+
helperText="Some important text"
|
|
304
|
+
variant="standard"
|
|
305
|
+
/>
|
|
306
|
+
</div>
|
|
307
|
+
</Box>
|
|
308
|
+
</div>
|
|
309
|
+
);
|
|
310
|
+
TextFieldProps.storyName = 'TextField Props';
|