ywana-core8 0.1.103 → 0.2.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/dist/index.css +4941 -324
- package/dist/index.js +42338 -0
- package/dist/index.js.map +1 -0
- package/dist/index.modern.js +37458 -31678
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +39634 -34010
- package/dist/index.umd.js.map +1 -1
- package/package.json +26 -29
- package/src/Test.stories.jsx +28 -0
- package/src/desktop/Desktop.stories.jsx +110 -0
- package/src/desktop/WindowContext.js +135 -0
- package/src/desktop/WindowManager.js +355 -0
- package/src/desktop/desktop.css +55 -4
- package/src/desktop/desktop.js +312 -6
- package/src/desktop/index.js +7 -0
- package/src/desktop/window.css +229 -36
- package/src/desktop/window.js +254 -20
- package/src/desktop.backup/desktop.css +6 -0
- package/src/desktop.backup/desktop.js +13 -0
- package/src/desktop.backup/window.css +58 -0
- package/src/desktop.backup/window.js +27 -0
- package/src/html/Accordion.stories.jsx +178 -0
- package/src/html/Button.stories.jsx +175 -0
- package/src/html/Checkbox.stories.jsx +131 -0
- package/src/html/Chip.stories.jsx +189 -0
- package/src/html/Color.stories.jsx +234 -0
- package/src/html/Form.stories.jsx +271 -0
- package/src/html/Icon.stories.jsx +233 -0
- package/src/html/Progress.stories.jsx +247 -0
- package/src/html/Radio.stories.jsx +289 -0
- package/src/html/StyleTest.stories.jsx +81 -0
- package/src/html/Switch.stories.jsx +329 -0
- package/src/html/Tab.stories.jsx +239 -0
- package/src/html/Table.stories.jsx +188 -0
- package/src/html/Table2.stories.jsx +238 -0
- package/src/html/TextField2.stories.jsx +337 -0
- package/src/html/Tree.stories.jsx +285 -0
- package/src/html/accordion.example.js +0 -74
- package/src/html/accordion.js +1 -6
- package/src/html/button.js +2 -13
- package/src/html/checkbox.js +1 -9
- package/src/html/chip.js +2 -19
- package/src/html/color.js +1 -14
- package/src/html/form.js +4 -15
- package/src/html/header2.js +1 -12
- package/src/html/icon.js +1 -7
- package/src/html/index.js +1 -1
- package/src/html/list.js +1 -19
- package/src/html/menu.js +9 -5
- package/src/html/progress.js +5 -53
- package/src/html/property.js +9 -25
- package/src/html/radio.js +2 -16
- package/src/html/section.js +1 -6
- package/src/html/selector.js +2 -19
- package/src/html/switch.css +134 -100
- package/src/html/switch.example.js +46 -36
- package/src/html/switch.js +43 -192
- package/src/html/tab.js +3 -24
- package/src/html/text.js +1 -12
- package/src/html/textfield2.js +5 -42
- package/src/html/thumbnail.js +1 -12
- package/src/html/tokenfield.js +2 -21
- package/src/html/tree.js +3 -35
- package/src/index.js +1 -0
- package/__previewjs__/Wrapper.tsx +0 -14
- package/build-doc.sh +0 -10
- package/db/db.json +0 -89
- package/db/routes.json +0 -0
- package/dist/index.cjs +0 -36722
- package/dist/index.cjs.map +0 -1
- package/dist/index.css.map +0 -1
- package/doc/README.md +0 -196
- package/doc/evalulations/ACCORDION_EVALUATION.md +0 -583
- package/doc/evalulations/CHECKBOX_EVALUATION.md +0 -273
- package/doc/evalulations/CHIP_EVALUATION.md +0 -542
- package/doc/evalulations/COLOR_EVALUATION.md +0 -524
- package/doc/evalulations/COMPONENTS_EVALUATION.md +0 -477
- package/doc/evalulations/FORM_EVALUATION.md +0 -459
- package/doc/evalulations/HEADER_EVALUATION.md +0 -436
- package/doc/evalulations/ICON_EVALUATION.md +0 -254
- package/doc/evalulations/LIST_EVALUATION.md +0 -574
- package/doc/evalulations/PROGRESS_EVALUATION.md +0 -450
- package/doc/evalulations/RADIO_EVALUATION.md +0 -439
- package/doc/evalulations/RADIO_VISUAL_FIX.md +0 -183
- package/doc/evalulations/SECTION_IMPROVEMENTS.md +0 -153
- package/doc/evalulations/SWITCH_EVALUATION.md +0 -335
- package/doc/evalulations/SWITCH_VISUAL_FIX.md +0 -232
- package/doc/evalulations/TAB_EVALUATION.md +0 -626
- package/doc/evalulations/TEXTFIELD_EVALUATION.md +0 -747
- package/doc/evalulations/TOOLTIP_FIX.md +0 -157
- package/doc/evalulations/TREE_EVALUATION.md +0 -708
- package/doc/index.html +0 -0
- package/doc/package-lock.json +0 -17298
- package/doc/package.json +0 -34
- package/doc/public/index.html +0 -24
- package/doc/scripts/generate-examples.js +0 -129
- package/doc/src/App.css +0 -171
- package/doc/src/App.js +0 -114
- package/doc/src/components/ExamplePage.js +0 -129
- package/doc/src/components/WelcomePage.js +0 -84
- package/doc/src/index.css +0 -246
- package/doc/src/index.js +0 -17
- package/doc/src/theme.css +0 -256
- package/jest.config.js +0 -24
- package/preview.config.js +0 -38
- package/publish.sh +0 -6
- package/src/desktop/dektop.test.js +0 -11
- package/src/domain/CollectionAPI.test.js +0 -19
- package/src/domain/ContentEditor.test.js +0 -52
- package/src/domain2/CollectionAPI.test.js +0 -19
- package/src/domain2/CollectionContext.test.js +0 -71
- package/src/domain2/CollectionPage.test.js +0 -112
- package/src/domain2/DynamicForm.test.js +0 -47
- package/src/html/accordion.test.js +0 -37
- package/src/html/accordion.unit.test.js +0 -334
- package/src/html/button.example.new.js +0 -416
- package/src/html/button.test.js +0 -422
- package/src/html/checkbox.test.js +0 -285
- package/src/html/chip.test.js +0 -425
- package/src/html/color.example.js.backup +0 -527
- package/src/html/color.test.js +0 -377
- package/src/html/components.example.js.backup +0 -492
- package/src/html/components_enhanced.test.js +0 -581
- package/src/html/form.example.js.backup +0 -385
- package/src/html/form.test.js +0 -369
- package/src/html/header2.example.js.backup +0 -411
- package/src/html/header2.test.js +0 -377
- package/src/html/icon.example.js.backup +0 -268
- package/src/html/icon.test.js +0 -231
- package/src/html/label.test.js +0 -0
- package/src/html/list.example.js.backup +0 -404
- package/src/html/list.test.js +0 -383
- package/src/html/progress.example.js.backup +0 -424
- package/src/html/progress.test.js +0 -313
- package/src/html/property.example.js.backup +0 -553
- package/src/html/property.test.js +0 -371
- package/src/html/radio.example.js.backup +0 -389
- package/src/html/radio.test.js +0 -318
- package/src/html/section.example.js.backup +0 -99
- package/src/html/section.test.js +0 -131
- package/src/html/selector.test.js +0 -20
- package/src/html/switch.example.js.backup +0 -461
- package/src/html/switch.test.js +0 -355
- package/src/html/tab.example.js.backup +0 -446
- package/src/html/tab.test.js +0 -25
- package/src/html/tab_enhanced.test.js +0 -504
- package/src/html/table.test.js +0 -70
- package/src/html/table2.test.js +0 -582
- package/src/html/text.test.js +0 -15
- package/src/html/textfield.test.js +0 -51
- package/src/html/textfield2.example.js.backup +0 -1370
- package/src/html/textfield2.test.js +0 -950
- package/src/html/tokenfield.example.js.backup +0 -503
- package/src/html/tokenfield.test.js +0 -423
- package/src/html/tree.example.js.backup +0 -475
- package/src/html/tree.test.js +0 -43
- package/src/html/tree_enhanced.test.js +0 -495
- package/src/http/token.test.js +0 -50
- package/src/incubator/pdfViewer.js +0 -33
- package/src/incubator/wizard.test.js +0 -127
- package/src/site/site.test.js +0 -230
- package/src/site/view.test.js +0 -41
- package/src/widgets/calendar/Calendar.test.js +0 -28
- package/src/widgets/explorer/Explorer.test.js +0 -121
- package/src/widgets/ide/editor.test.js +0 -33
- package/src/widgets/kanban/Kanban.test.js +0 -78
- package/src/widgets/login/LoginBox.test.js +0 -12
- package/src/widgets/login/ResetPasswordBox.test.js +0 -34
- package/src/widgets/login/validations.test.js +0 -51
- package/src/widgets/planner/Planner.test.js +0 -60
- package/src/widgets/upload/Upload.test.js +0 -32
- package/table2.test.js +0 -454
@@ -0,0 +1,234 @@
|
|
1
|
+
import React, { useState } from 'react'
|
2
|
+
import { ColorField, ColorPicker } from './color.js'
|
3
|
+
|
4
|
+
/**
|
5
|
+
* ColorField básico
|
6
|
+
*/
|
7
|
+
export const BasicColorField = () => {
|
8
|
+
const [colors, setColors] = useState({
|
9
|
+
basic1: '#3498db',
|
10
|
+
basic2: '#e74c3c'
|
11
|
+
})
|
12
|
+
|
13
|
+
const handleChange = (id, value) => {
|
14
|
+
setColors(prev => ({ ...prev, [id]: value }))
|
15
|
+
}
|
16
|
+
|
17
|
+
return (
|
18
|
+
<div style={{ padding: '20px' }}>
|
19
|
+
<h3>ColorField Básico</h3>
|
20
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
21
|
+
<ColorField
|
22
|
+
id="basic1"
|
23
|
+
label="Color primario"
|
24
|
+
value={colors.basic1}
|
25
|
+
onChange={handleChange}
|
26
|
+
/>
|
27
|
+
<ColorField
|
28
|
+
id="basic2"
|
29
|
+
label="Color secundario"
|
30
|
+
value={colors.basic2}
|
31
|
+
onChange={handleChange}
|
32
|
+
/>
|
33
|
+
</div>
|
34
|
+
<div style={{ marginTop: '1rem', padding: '1rem', background: '#f8f9fa', borderRadius: '4px' }}>
|
35
|
+
<strong>Valores seleccionados:</strong>
|
36
|
+
<pre>{JSON.stringify(colors, null, 2)}</pre>
|
37
|
+
</div>
|
38
|
+
</div>
|
39
|
+
)
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* ColorField con funciones avanzadas
|
44
|
+
*/
|
45
|
+
export const EnhancedColorField = () => {
|
46
|
+
const [colors, setColors] = useState({
|
47
|
+
enhanced1: '#9b59b6',
|
48
|
+
enhanced2: '#f39c12'
|
49
|
+
})
|
50
|
+
|
51
|
+
const handleChange = (id, value) => {
|
52
|
+
setColors(prev => ({ ...prev, [id]: value }))
|
53
|
+
}
|
54
|
+
|
55
|
+
return (
|
56
|
+
<div style={{ padding: '20px' }}>
|
57
|
+
<h3>ColorField Avanzado</h3>
|
58
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
59
|
+
<ColorField
|
60
|
+
id="enhanced1"
|
61
|
+
label="Color con transparencia"
|
62
|
+
value={colors.enhanced1}
|
63
|
+
onChange={handleChange}
|
64
|
+
allowTransparency={true}
|
65
|
+
showPreview={true}
|
66
|
+
showHex={true}
|
67
|
+
showRgb={true}
|
68
|
+
/>
|
69
|
+
<ColorField
|
70
|
+
id="enhanced2"
|
71
|
+
label="Color con paleta personalizada"
|
72
|
+
value={colors.enhanced2}
|
73
|
+
onChange={handleChange}
|
74
|
+
palette={['#e74c3c', '#f39c12', '#f1c40f', '#2ecc71', '#3498db', '#9b59b6']}
|
75
|
+
showPalette={true}
|
76
|
+
/>
|
77
|
+
</div>
|
78
|
+
</div>
|
79
|
+
)
|
80
|
+
}
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Diferentes tamaños
|
84
|
+
*/
|
85
|
+
export const ColorFieldSizes = () => {
|
86
|
+
const [colors, setColors] = useState({
|
87
|
+
small: '#e74c3c',
|
88
|
+
medium: '#f39c12',
|
89
|
+
large: '#2ecc71'
|
90
|
+
})
|
91
|
+
|
92
|
+
const handleChange = (id, value) => {
|
93
|
+
setColors(prev => ({ ...prev, [id]: value }))
|
94
|
+
}
|
95
|
+
|
96
|
+
return (
|
97
|
+
<div style={{ padding: '20px' }}>
|
98
|
+
<h3>Diferentes Tamaños</h3>
|
99
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
100
|
+
<ColorField
|
101
|
+
id="small"
|
102
|
+
label="Pequeño"
|
103
|
+
value={colors.small}
|
104
|
+
onChange={handleChange}
|
105
|
+
size="small"
|
106
|
+
/>
|
107
|
+
<ColorField
|
108
|
+
id="medium"
|
109
|
+
label="Mediano"
|
110
|
+
value={colors.medium}
|
111
|
+
onChange={handleChange}
|
112
|
+
size="medium"
|
113
|
+
/>
|
114
|
+
<ColorField
|
115
|
+
id="large"
|
116
|
+
label="Grande"
|
117
|
+
value={colors.large}
|
118
|
+
onChange={handleChange}
|
119
|
+
size="large"
|
120
|
+
/>
|
121
|
+
</div>
|
122
|
+
</div>
|
123
|
+
)
|
124
|
+
}
|
125
|
+
|
126
|
+
/**
|
127
|
+
* Estados especiales
|
128
|
+
*/
|
129
|
+
export const SpecialStates = () => {
|
130
|
+
const [colors, setColors] = useState({
|
131
|
+
required: '',
|
132
|
+
error: '#invalid',
|
133
|
+
disabled: '#95a5a6',
|
134
|
+
transparent: 'transparent'
|
135
|
+
})
|
136
|
+
|
137
|
+
const handleChange = (id, value) => {
|
138
|
+
setColors(prev => ({ ...prev, [id]: value }))
|
139
|
+
}
|
140
|
+
|
141
|
+
return (
|
142
|
+
<div style={{ padding: '20px' }}>
|
143
|
+
<h3>Estados Especiales</h3>
|
144
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
|
145
|
+
<ColorField
|
146
|
+
id="required"
|
147
|
+
label="Campo requerido"
|
148
|
+
value={colors.required}
|
149
|
+
onChange={handleChange}
|
150
|
+
required={true}
|
151
|
+
/>
|
152
|
+
<ColorField
|
153
|
+
id="error"
|
154
|
+
label="Campo con error"
|
155
|
+
value={colors.error}
|
156
|
+
onChange={handleChange}
|
157
|
+
error="Color inválido"
|
158
|
+
/>
|
159
|
+
<ColorField
|
160
|
+
id="disabled"
|
161
|
+
label="Campo deshabilitado"
|
162
|
+
value={colors.disabled}
|
163
|
+
onChange={handleChange}
|
164
|
+
disabled={true}
|
165
|
+
/>
|
166
|
+
<ColorField
|
167
|
+
id="transparent"
|
168
|
+
label="Con transparencia"
|
169
|
+
value={colors.transparent}
|
170
|
+
onChange={handleChange}
|
171
|
+
allowTransparency={true}
|
172
|
+
/>
|
173
|
+
</div>
|
174
|
+
</div>
|
175
|
+
)
|
176
|
+
}
|
177
|
+
|
178
|
+
/**
|
179
|
+
* ColorPicker avanzado
|
180
|
+
*/
|
181
|
+
export const ColorPickerExample = () => {
|
182
|
+
const [selectedColor, setSelectedColor] = useState('#3498db')
|
183
|
+
|
184
|
+
return (
|
185
|
+
<div style={{ padding: '20px' }}>
|
186
|
+
<h3>ColorPicker Avanzado</h3>
|
187
|
+
<div style={{ display: 'flex', gap: '2rem', alignItems: 'flex-start' }}>
|
188
|
+
<div>
|
189
|
+
<ColorPicker
|
190
|
+
value={selectedColor}
|
191
|
+
onChange={setSelectedColor}
|
192
|
+
showPreview={true}
|
193
|
+
showHex={true}
|
194
|
+
showRgb={true}
|
195
|
+
showHsl={true}
|
196
|
+
allowTransparency={true}
|
197
|
+
/>
|
198
|
+
</div>
|
199
|
+
<div style={{
|
200
|
+
width: '200px',
|
201
|
+
height: '200px',
|
202
|
+
backgroundColor: selectedColor,
|
203
|
+
border: '2px solid #ddd',
|
204
|
+
borderRadius: '8px',
|
205
|
+
display: 'flex',
|
206
|
+
alignItems: 'center',
|
207
|
+
justifyContent: 'center',
|
208
|
+
color: '#fff',
|
209
|
+
textShadow: '1px 1px 2px rgba(0,0,0,0.5)'
|
210
|
+
}}>
|
211
|
+
<div style={{ textAlign: 'center' }}>
|
212
|
+
<div>Vista previa</div>
|
213
|
+
<div style={{ fontSize: '0.8rem', marginTop: '0.5rem' }}>
|
214
|
+
{selectedColor}
|
215
|
+
</div>
|
216
|
+
</div>
|
217
|
+
</div>
|
218
|
+
</div>
|
219
|
+
</div>
|
220
|
+
)
|
221
|
+
}
|
222
|
+
|
223
|
+
/**
|
224
|
+
* Todos los ejemplos
|
225
|
+
*/
|
226
|
+
export const AllExamples = () => (
|
227
|
+
<div>
|
228
|
+
<BasicColorField />
|
229
|
+
<EnhancedColorField />
|
230
|
+
<ColorFieldSizes />
|
231
|
+
<SpecialStates />
|
232
|
+
<ColorPickerExample />
|
233
|
+
</div>
|
234
|
+
)
|
@@ -0,0 +1,271 @@
|
|
1
|
+
import React, { useState } from 'react'
|
2
|
+
import { Form } from './form.js'
|
3
|
+
import { TextField } from './textfield.js'
|
4
|
+
import { CheckBox } from './checkbox.js'
|
5
|
+
import { Button } from './button.js'
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Formulario básico
|
9
|
+
*/
|
10
|
+
export const BasicForm = () => {
|
11
|
+
const [formData, setFormData] = useState({})
|
12
|
+
|
13
|
+
const handleFormChange = (data) => {
|
14
|
+
setFormData(data)
|
15
|
+
console.log('Form data changed:', data)
|
16
|
+
}
|
17
|
+
|
18
|
+
const handleSubmit = (data) => {
|
19
|
+
console.log('Form submitted:', data)
|
20
|
+
alert('Formulario enviado: ' + JSON.stringify(data, null, 2))
|
21
|
+
}
|
22
|
+
|
23
|
+
return (
|
24
|
+
<div style={{ padding: '20px' }}>
|
25
|
+
<h3>Formulario Básico</h3>
|
26
|
+
<div style={{
|
27
|
+
background: '#fff',
|
28
|
+
padding: '1.5rem',
|
29
|
+
borderRadius: '8px',
|
30
|
+
border: '1px solid #ddd'
|
31
|
+
}}>
|
32
|
+
<Form
|
33
|
+
title="Información Personal"
|
34
|
+
columns={2}
|
35
|
+
outlined={true}
|
36
|
+
onChange={handleFormChange}
|
37
|
+
onSubmit={handleSubmit}
|
38
|
+
>
|
39
|
+
<TextField
|
40
|
+
id="firstName"
|
41
|
+
label="Nombre"
|
42
|
+
required={true}
|
43
|
+
/>
|
44
|
+
<TextField
|
45
|
+
id="lastName"
|
46
|
+
label="Apellidos"
|
47
|
+
required={true}
|
48
|
+
/>
|
49
|
+
<TextField
|
50
|
+
id="email"
|
51
|
+
label="Email"
|
52
|
+
type="email"
|
53
|
+
required={true}
|
54
|
+
/>
|
55
|
+
<TextField
|
56
|
+
id="phone"
|
57
|
+
label="Teléfono"
|
58
|
+
type="tel"
|
59
|
+
/>
|
60
|
+
<CheckBox
|
61
|
+
id="newsletter"
|
62
|
+
label="Suscribirse al newsletter"
|
63
|
+
/>
|
64
|
+
</Form>
|
65
|
+
</div>
|
66
|
+
</div>
|
67
|
+
)
|
68
|
+
}
|
69
|
+
|
70
|
+
/**
|
71
|
+
* Formulario de registro
|
72
|
+
*/
|
73
|
+
export const RegistrationForm = () => {
|
74
|
+
const [formData, setFormData] = useState({})
|
75
|
+
|
76
|
+
const handleFormChange = (data) => {
|
77
|
+
setFormData(data)
|
78
|
+
}
|
79
|
+
|
80
|
+
return (
|
81
|
+
<div style={{ padding: '20px' }}>
|
82
|
+
<h3>Formulario de Registro</h3>
|
83
|
+
<div style={{
|
84
|
+
background: '#fff',
|
85
|
+
padding: '1.5rem',
|
86
|
+
borderRadius: '8px',
|
87
|
+
border: '1px solid #ddd'
|
88
|
+
}}>
|
89
|
+
<Form
|
90
|
+
title="Registro de Usuario"
|
91
|
+
columns={1}
|
92
|
+
outlined={true}
|
93
|
+
onChange={handleFormChange}
|
94
|
+
>
|
95
|
+
<TextField
|
96
|
+
id="username"
|
97
|
+
label="Nombre de usuario"
|
98
|
+
required={true}
|
99
|
+
placeholder="Ingresa tu nombre de usuario"
|
100
|
+
/>
|
101
|
+
<TextField
|
102
|
+
id="email"
|
103
|
+
label="Correo electrónico"
|
104
|
+
type="email"
|
105
|
+
required={true}
|
106
|
+
placeholder="tu@email.com"
|
107
|
+
/>
|
108
|
+
<TextField
|
109
|
+
id="password"
|
110
|
+
label="Contraseña"
|
111
|
+
type="password"
|
112
|
+
required={true}
|
113
|
+
placeholder="Mínimo 8 caracteres"
|
114
|
+
/>
|
115
|
+
<TextField
|
116
|
+
id="confirmPassword"
|
117
|
+
label="Confirmar contraseña"
|
118
|
+
type="password"
|
119
|
+
required={true}
|
120
|
+
/>
|
121
|
+
<CheckBox
|
122
|
+
id="terms"
|
123
|
+
label="Acepto los términos y condiciones"
|
124
|
+
required={true}
|
125
|
+
/>
|
126
|
+
<CheckBox
|
127
|
+
id="marketing"
|
128
|
+
label="Recibir comunicaciones de marketing"
|
129
|
+
/>
|
130
|
+
</Form>
|
131
|
+
</div>
|
132
|
+
</div>
|
133
|
+
)
|
134
|
+
}
|
135
|
+
|
136
|
+
/**
|
137
|
+
* Formulario con múltiples columnas
|
138
|
+
*/
|
139
|
+
export const MultiColumnForm = () => {
|
140
|
+
const [formData, setFormData] = useState({})
|
141
|
+
|
142
|
+
const handleFormChange = (data) => {
|
143
|
+
setFormData(data)
|
144
|
+
}
|
145
|
+
|
146
|
+
return (
|
147
|
+
<div style={{ padding: '20px' }}>
|
148
|
+
<h3>Formulario Multi-columna</h3>
|
149
|
+
<div style={{
|
150
|
+
background: '#fff',
|
151
|
+
padding: '1.5rem',
|
152
|
+
borderRadius: '8px',
|
153
|
+
border: '1px solid #ddd'
|
154
|
+
}}>
|
155
|
+
<Form
|
156
|
+
title="Dirección de Envío"
|
157
|
+
columns={3}
|
158
|
+
outlined={true}
|
159
|
+
onChange={handleFormChange}
|
160
|
+
>
|
161
|
+
<TextField
|
162
|
+
id="street"
|
163
|
+
label="Calle"
|
164
|
+
required={true}
|
165
|
+
colSpan={2}
|
166
|
+
/>
|
167
|
+
<TextField
|
168
|
+
id="number"
|
169
|
+
label="Número"
|
170
|
+
required={true}
|
171
|
+
/>
|
172
|
+
<TextField
|
173
|
+
id="city"
|
174
|
+
label="Ciudad"
|
175
|
+
required={true}
|
176
|
+
/>
|
177
|
+
<TextField
|
178
|
+
id="state"
|
179
|
+
label="Estado/Provincia"
|
180
|
+
required={true}
|
181
|
+
/>
|
182
|
+
<TextField
|
183
|
+
id="zipCode"
|
184
|
+
label="Código Postal"
|
185
|
+
required={true}
|
186
|
+
/>
|
187
|
+
<TextField
|
188
|
+
id="country"
|
189
|
+
label="País"
|
190
|
+
required={true}
|
191
|
+
colSpan={3}
|
192
|
+
/>
|
193
|
+
</Form>
|
194
|
+
</div>
|
195
|
+
</div>
|
196
|
+
)
|
197
|
+
}
|
198
|
+
|
199
|
+
/**
|
200
|
+
* Estados especiales
|
201
|
+
*/
|
202
|
+
export const SpecialStates = () => (
|
203
|
+
<div style={{ padding: '20px' }}>
|
204
|
+
<h3>Estados Especiales</h3>
|
205
|
+
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(400px, 1fr))', gap: '2rem' }}>
|
206
|
+
<div style={{
|
207
|
+
background: '#fff',
|
208
|
+
padding: '1.5rem',
|
209
|
+
borderRadius: '8px',
|
210
|
+
border: '1px solid #ddd'
|
211
|
+
}}>
|
212
|
+
<h4>Formulario Deshabilitado</h4>
|
213
|
+
<Form
|
214
|
+
title="Solo Lectura"
|
215
|
+
columns={1}
|
216
|
+
outlined={true}
|
217
|
+
disabled={true}
|
218
|
+
>
|
219
|
+
<TextField
|
220
|
+
id="readOnlyField1"
|
221
|
+
label="Campo 1"
|
222
|
+
value="Valor fijo"
|
223
|
+
/>
|
224
|
+
<TextField
|
225
|
+
id="readOnlyField2"
|
226
|
+
label="Campo 2"
|
227
|
+
value="Otro valor"
|
228
|
+
/>
|
229
|
+
</Form>
|
230
|
+
</div>
|
231
|
+
|
232
|
+
<div style={{
|
233
|
+
background: '#fff',
|
234
|
+
padding: '1.5rem',
|
235
|
+
borderRadius: '8px',
|
236
|
+
border: '1px solid #ddd'
|
237
|
+
}}>
|
238
|
+
<h4>Formulario Cargando</h4>
|
239
|
+
<Form
|
240
|
+
title="Enviando..."
|
241
|
+
columns={1}
|
242
|
+
outlined={true}
|
243
|
+
loading={true}
|
244
|
+
>
|
245
|
+
<TextField
|
246
|
+
id="loadingField1"
|
247
|
+
label="Campo en proceso"
|
248
|
+
value="Enviando datos..."
|
249
|
+
/>
|
250
|
+
<TextField
|
251
|
+
id="loadingField2"
|
252
|
+
label="Otro campo"
|
253
|
+
value="Procesando..."
|
254
|
+
/>
|
255
|
+
</Form>
|
256
|
+
</div>
|
257
|
+
</div>
|
258
|
+
</div>
|
259
|
+
)
|
260
|
+
|
261
|
+
/**
|
262
|
+
* Todos los ejemplos
|
263
|
+
*/
|
264
|
+
export const AllExamples = () => (
|
265
|
+
<div>
|
266
|
+
<BasicForm />
|
267
|
+
<RegistrationForm />
|
268
|
+
<MultiColumnForm />
|
269
|
+
<SpecialStates />
|
270
|
+
</div>
|
271
|
+
)
|