label="Suscribirse al newsletter" checked={formData.subscribe} onChange={(e) => setFormData({...formData, subscribe: e.target.checked})} /> setFormData({...formData, darkMode: e.target.checked})} /> ); } ``` ### Tabs con Formularios ```tsx import { Tabs, Input, Textarea, Button } from 'avanza-ui'; function SettingsPanel() { return ( ) }, { id: 'privacy', label: 'Privacidad', content: ( <> ) }, { id: 'notifications', label: 'Notificaciones', content: ( <> ) } ]} /> ); } ``` --- ## 📏 Tamaños de Bundle Actualizados ```bash dist/ ├── index.css (25KB) ⬆️ +6KB ├── index.esm.js (28KB) ⬆️ +7KB ├── index.js (30KB) ⬆️ +8KB └── Total: ~83KB (vs 40KB anterior) ``` **Nota:** El aumento es por los 7 nuevos componentes. Aún así, el bundle es muy pequeño comparado con otras bibliotecas. --- ## 🎯 Características de los Nuevos Componentes ### Checkbox & Radio - ✅ 5 variantes de color - ✅ 3 tamaños - ✅ Estados: checked, disabled - ✅ Totalmente accesible - ✅ Sin dependencias externas ### Switch (Toggle) - ✅ Animación suave - ✅ 5 variantes de color - ✅ 3 tamaños - ✅ ARIA role="switch" ### Select - ✅ Dropdown nativo del navegador - ✅ Placeholder - ✅ Opciones con disabled - ✅ Icono de flecha personalizado - ✅ Validación integrada ### Textarea - ✅ Contador de caracteres - ✅ Límite de caracteres - ✅ Resize configurable - ✅ Rows personalizables - ✅ Validación y estados de error ### Tabs - ✅ 3 variantes: default, pills, boxed - ✅ Orientación horizontal/vertical - ✅ Soporte para íconos - ✅ Tabs deshabilitados - ✅ Animación al cambiar --- ## 🚀 Migración desde Vristo Todos los componentes de formulario de Vristo han sido migrados y mejorados: | Vristo | Avanza UI | Mejoras | |--------|-----------|---------| | `` | `` | Componente dedicado, más props | | `` | `` | Componente dedicado, variantes | | `` | Tipado, validación, opciones | | `