@gestionresidencial/shared-ui
v0.3.1
Published
Biblioteca de componentes compartida para los frontends de Gestion Residencial.
Readme
@gestionresidencial/shared-ui
Biblioteca de componentes compartida por los frontends de Gestión Residencial: el login y las aplicaciones de residente, vigilante y administración.
Diseño monocromático y adaptable. Los componentes no traen textos ni destinos propios: cada aplicación aporta los suyos por props.
Instalación
pnpm add @gestionresidencial/shared-uireact y react-dom 19 son dependencias entre pares y las aporta la aplicación consumidora.
Uso
Importa la hoja de estilos una sola vez, en el layout raíz:
import "@gestionresidencial/shared-ui/styles.css";Después, los componentes donde hagan falta:
import { AppShell, HomePage, Button } from "@gestionresidencial/shared-ui";Personalización
El aspecto se controla con variables CSS. Redefínelas después de importar la hoja de estilos para cambiar el tema sin tocar componentes:
:root {
--color-action: #1f4fd8;
--radius-card: 20px;
}Variables disponibles: --color-background, --color-surface, --color-text, --color-text-muted, --color-border, --color-action, --color-action-text, --color-subtle, --radius-control, --radius-card y --font-body.
Qué exporta
| Grupo | Exportaciones |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Primitivos | Button, TextField, Card, Avatar, Feedback, EmptyState, Skeleton |
| Formularios | PasswordField, LoginForm, ProfileForm, ChangePasswordForm |
| Estructura | AppShell, AuthLayout, HomePage |
| Navegación | DropdownMenu, Dialog |
| Tipos | NavigationItem, HomeModule, Profile, ProfileValues, LoginValues, LoginLabels, ProfileLabels, ChangePasswordValues, ChangePasswordLabels |
Restricciones de diseño
La biblioteca no importa next/link ni next/navigation. Recibe href como texto y comunica eventos por callbacks, de modo que sirva a cualquier consumidor de React, use Next.js o no.
El paquete se construye sin empaquetar (bundle: false), archivo por archivo, para preservar la directiva "use client" de cada componente. Agrupar el código obligaría a que toda la biblioteca se ejecute en el cliente.
Desarrollo
pnpm --filter @gestionresidencial/shared-ui buildLa salida queda en dist/: ESM, mapas de origen, declaraciones de tipos y la hoja de estilos.
¿Vas a agregar un componente? Lee la guía de contribución primero — cubre dónde va cada tipo de cambio y cómo probarlo sin publicar.
Consulta ADR-002 para la decisión de distribución y docs/architecture.md para el recorrido completo del frontend.