diff --git a/docs/guidelines/architecture.md b/docs/guidelines/architecture.md index 3d109e6..1f33565 100644 --- a/docs/guidelines/architecture.md +++ b/docs/guidelines/architecture.md @@ -230,24 +230,26 @@ interface PaginationParams { **Componentes compartidos:** -| Componente | Props | Descripción | -| ------------------------------ | ---------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `LoadingSpinner` | `fullScreen?: boolean` | CircularProgress centrado. `fullScreen`: 100vh × 100% | -| `ErrorBoundary` | `children` | Class component que captura errores de render y muestra `ErrorFallback`. Cableado en `AppLayout` alrededor del `` y en cada ruta `bare` | -| `ErrorFallback` | `error?: Error`, `onRetry?: () => void` | Pantalla de error con botón Reintentar (presentacional) | -| `PageWrapper` | `children`, `...BoxProps` | `
` con `p: {xs:2, md:3}`, `maxWidth: 1200`, `mx: auto` | -| `NotificationHost` | — | Render único de las notificaciones del `notificationStore`. Montado en los providers; una a la vez. Usa `Snackbar` + `Alert` de MUI hasta que TESIS-68 defina el Toast del DS | -| `StatCard` / `CompactStatCard` | Ver `StatCard.types.ts` | Tarjeta de KPI: ícono + chip de tendencia o etiqueta, valor destacado, aclaración opcional (`note`) y footer comparativo. `tone: 'error'` suma borde y halo de acento. `loading` reemplaza el valor por un skeleton de la misma altura. La variante condensada es una sola fila. Presentacionales: el valor llega ya formateado | -| `ProgressIndicator` | Ver `ProgressIndicator.types.ts` | Barra lineal con tono semántico. `size` thin/medium/large, `layout` stacked/inline, `indeterminate` para progreso desconocido. El ancho sale del porcentaje | -| `StepsProgress` | `total`, `completed`, `tone?`, `label?`, `caption?` | Progreso por etapas discretas, para procesos con pasos nombrados | -| `ProgressSkeleton` | `label?`, `avatar?`, `lines?` | Placeholder de carga con la silueta del contenido que reemplaza | -| `TopNavBar` | Ver `TopNavBar.types.ts` | Shell de navegación global (brand + búsqueda + acciones + usuario). Presentacional — sin datos, sin `uiStore`; único acople: el `Link` de Router (brand/engranaje). Fixed/z-index intrínsecos vía `MuiAppBar` en el tema. Cableado real en `app/layout/Header.tsx`. | -| `StatusFeed` | Ver `StatusFeed.types.ts` | Bitácora de eventos de alta densidad: barra fina como eje temporal, título y metadato en monoespaciada. `current` marca la entrada vigente; el resto se atenúa. Renderiza `
    ` porque el orden es información | -| `Logo` | `brand`, `tagline` | Lockup de marca (isotipo + wordmark). Las reglas del manual viajan con el componente: área de respeto como padding propio y mínimo de 140px como `minWidth` | -| `LogoMark` | `size?: number` | Isotipo suelto, inline y con `currentColor` para que herede el color del contenedor | -| `DataTable` | Ver `DataTable.types.ts` | Tabla genérica del DS: pestañas, selección, acciones por fila, paginación, `title` y `footer`. `density: 'compact'` baja la fila a 52px para las tablas que viven dentro de un formulario (líneas del alta manual). Presentacional: el formato de cada celda lo resuelve el `render` de su columna | -| `LabeledField` | `label`, `children`, `error?`, `helperText?`, `fullWidth?` | Campo con el rótulo arriba del input, como pide el DS (MUI lo flota en el borde). Renderiza `