# Implementación de Avanza UI en Studio Panel ## 🚀 Pasos de Instalación ### 1. Instalar Avanza UI en studio-panel ```bash cd packages/studio-panel npm install ../ui-components ``` ### 2. Actualizar package.json de studio-panel ```json { "dependencies": { "avanza-ui": "file:../ui-components", "react": "^18.3.1", "react-dom": "^18.3.1" } } ``` ### 3. Importar estilos globales en main.tsx ```tsx // packages/studio-panel/src/main.tsx import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App'; // Importar estilos de Avanza UI import 'avanza-ui/dist/index.css'; // Tus estilos personalizados import './styles.css'; ReactDOM.createRoot(document.getElementById('root')!).render( ); ``` ### 4. Ejemplo de Uso en Componentes #### Header.tsx con Avanza UI ```tsx // packages/studio-panel/src/components/Header.tsx import React from 'react'; import { Avatar, Button, Dropdown, DropdownItem, DropdownDivider, Tooltip, } from 'avanza-ui'; export const Header: React.FC = () => { return (
Logo
} align="right" > 👤}>Mi Perfil ⚙️}>Configuración 🚪}> Cerrar Sesión
); }; ``` #### Sidebar.tsx con Avanza UI ```tsx // packages/studio-panel/src/components/Sidebar.tsx import React from 'react'; import { Card, CardHeader, CardBody, Badge, Tooltip } from 'avanza-ui'; export const Sidebar: React.FC = () => { return ( ); }; ``` #### StudioLayout.tsx con Avanza UI ```tsx // packages/studio-panel/src/components/StudioLayout.tsx import React, { useState } from 'react'; import { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input, Alert, Spinner, } from 'avanza-ui'; import { Header } from './Header'; import { Sidebar } from './Sidebar'; export const StudioLayout: React.FC = () => { const [isModalOpen, setIsModalOpen] = useState(false); const [isLoading, setIsLoading] = useState(false); return (
{isLoading && (

Conectando...

)}
{/* Modal de Configuración */} setIsModalOpen(false)} size="md" > setIsModalOpen(false)} />
); }; ``` ## 🎨 Personalización del Tema ### Archivo de estilos personalizado (styles.css) ```css /* packages/studio-panel/src/styles.css */ /* Personalizar colores primarios */ :root { --au-primary-600: #6366f1; /* Tu color primario */ --au-primary-700: #4f46e5; } /* Dark theme personalizado */ [data-theme="dark"] { --au-bg-primary: #0a0e1a; --au-surface: #13192b; } /* Estilos adicionales específicos del studio */ .studio-video-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--au-spacing-4); padding: var(--au-spacing-4); } ``` ### Toggle de Tema ```tsx // packages/studio-panel/src/components/ThemeToggle.tsx import React, { useState, useEffect } from 'react'; import { Button } from 'avanza-ui'; export const ThemeToggle: React.FC = () => { const [theme, setTheme] = useState<'light' | 'dark'>('light'); useEffect(() => { // Leer tema del localStorage const savedTheme = localStorage.getItem('theme') as 'light' | 'dark' | null; if (savedTheme) { setTheme(savedTheme); document.documentElement.setAttribute('data-theme', savedTheme); } }, []); const toggleTheme = () => { const newTheme = theme === 'light' ? 'dark' : 'light'; setTheme(newTheme); document.documentElement.setAttribute('data-theme', newTheme); localStorage.setItem('theme', newTheme); }; return ( ); }; ``` ## 📋 Checklist de Migración - [ ] Instalar avanza-ui en package.json - [ ] Importar estilos globales en main.tsx - [ ] Reemplazar componentes existentes con Avanza UI - [ ] Configurar tema dark/light - [ ] Personalizar variables CSS si es necesario - [ ] Probar en diferentes navegadores - [ ] Verificar accesibilidad ## 🔄 Comparación con Vristo | Vristo | Avanza UI | Beneficio | |--------|-----------|-----------| | Depende de Tailwind | CSS Modules | Sin conflictos de clases | | require('react-popper') | Estado interno | Menos dependencias | | Configuración compleja | Plug & Play | Más rápido de implementar | | Múltiples estilos | Variables CSS | Personalización fácil | ## 🚀 Comandos Útiles ```bash # Desarrollo cd packages/ui-components && npm run dev cd packages/studio-panel && npm run dev # Build de producción cd packages/ui-components && npm run build cd packages/studio-panel && npm run build # Actualizar biblioteca cd packages/ui-components && npm run build cd packages/studio-panel && npm install ../ui-components ``` --- ¡Listo para usar Avanza UI en tu Studio Panel!