@telcomdev/ui 0.1.17 → 0.1.19

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/README.md CHANGED
@@ -139,6 +139,51 @@ El comportamiento predeterminado durante el scroll es `reposition`, por lo que
139
139
  el panel permanece unido al control. Puede cambiarse con
140
140
  `scrollBehavior="close"`.
141
141
 
142
+ ## File Upload
143
+
144
+ Selector de archivos con soporte para formularios Angular, drag and drop,
145
+ validación de formatos y previsualización de imágenes/PDF mediante el visor de
146
+ archivos de la librería.
147
+
148
+ ### Variante input
149
+
150
+ ```html
151
+ <td-file-upload
152
+ label="Logo del proveedor"
153
+ variant="input"
154
+ accept="image/*"
155
+ [maxSizeMb]="2"
156
+ [(ngModel)]="logo"
157
+ />
158
+ ```
159
+
160
+ ```ts
161
+ logo: File | null = null;
162
+ ```
163
+
164
+ ### Variante dropzone con preview
165
+
166
+ ```html
167
+ <td-file-upload
168
+ label="Adjuntos del expediente"
169
+ description="Arrastra contrato, evidencia o documentos."
170
+ accept="image/*,.pdf,.xml,.xlsx,.zip"
171
+ [multiple]="true"
172
+ [maxFiles]="5"
173
+ [maxSizeMb]="8"
174
+ [(ngModel)]="adjuntos"
175
+ (filesChange)="actualizarArchivos($event)"
176
+ (rejected)="mostrarRechazos($event)"
177
+ />
178
+ ```
179
+
180
+ ```ts
181
+ adjuntos: File[] = [];
182
+ ```
183
+
184
+ Cuando `multiple` está desactivado el valor del formulario es `File | null`.
185
+ Cuando `multiple` está activado el valor es `File[]`.
186
+
142
187
  ## Tabs
143
188
 
144
189
  ```html
@@ -457,6 +502,41 @@ También funciona con formularios tradicionales:
457
502
  <td-checkbox label="Principal" [formControl]="controlPrincipal" />
458
503
  ```
459
504
 
505
+ ## Radio Button
506
+
507
+ `TdRadioGroup` permite selección única tipada y mantiene compatibilidad con
508
+ Signal Forms, `ngModel` y Reactive Forms.
509
+
510
+ ```html
511
+ <td-radio-group
512
+ label="Tipo de documento"
513
+ [options]="tiposDocumento"
514
+ [(ngModel)]="tipoDocumento"
515
+ />
516
+ ```
517
+
518
+ ```ts
519
+ readonly tiposDocumento = [
520
+ { value: 'dni', label: 'DNI' },
521
+ { value: 'ruc', label: 'RUC' },
522
+ { value: 'ce', label: 'Carné de extranjería' },
523
+ ];
524
+
525
+ tipoDocumento: 'dni' | 'ruc' | 'ce' | null = 'ruc';
526
+ ```
527
+
528
+ También cuenta con variante tipo tarjeta:
529
+
530
+ ```html
531
+ <td-radio-group
532
+ label="Canal de notificación"
533
+ variant="card"
534
+ direction="horizontal"
535
+ [options]="canales"
536
+ [formField]="fields.canal"
537
+ />
538
+ ```
539
+
460
540
  Con Signal Forms no se necesita una variable intermedia ni eventos manuales. El
461
541
  modelo debe inicializar el campo como `true` o `false`, nunca como `null`.
462
542