@codeplex-sac/layout 0.0.3 → 0.0.5
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 +172 -4
- package/index.mjs +710 -709
- package/lib/barra-lateral/barra-lateral.d.ts +2 -1
- package/lib/pila/pila.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,175 @@
|
|
|
1
|
-
# layout
|
|
1
|
+
# @codeplex-sac/layout
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Este paquete proporciona los cimientos estructurales y de navegación para aplicaciones Codeplex. Envuelve componentes primitivos de MUI y añade patrones de diseño comunes (Dashboards, Paneles, Grillas) con una API declarativa en español.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 📦 Instalación
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
pnpm add @mui/material @emotion/react @emotion/styled @codeplex-sac/layout
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 🏗️ Estructura y Grilla
|
|
14
|
+
|
|
15
|
+
Bloques fundamentales para el maquetado de páginas.
|
|
16
|
+
|
|
17
|
+
### `<CodeplexCaja />` (Box)
|
|
18
|
+
Contenedor genérico ultra-flexible.
|
|
19
|
+
| Propiedad | Descripción |
|
|
20
|
+
| :--- | :--- |
|
|
21
|
+
| `centrado` | `boolean`. Centra contenido vertical y horizontalmente. |
|
|
22
|
+
| `pantallaCompleta` | `boolean`. Ancho y alto de viewport (100vw/vh). |
|
|
23
|
+
| `flexFila` / `flexColumna` | Atajos para dirección Flex. |
|
|
24
|
+
|
|
25
|
+
### `<CodeplexContenedor />` (Container)
|
|
26
|
+
Contenedor central con anchos máximos responsivos.
|
|
27
|
+
| Propiedad | Descripción |
|
|
28
|
+
| :--- | :--- |
|
|
29
|
+
| `fluido` | `boolean`. Ancho 100% sin máximos. |
|
|
30
|
+
| `paginaCentrada` | `boolean`. Altura 100vh y centro absoluto (ideal Login/404). |
|
|
31
|
+
| `anchoMaximo` | `'xs' | 'sm' | 'md' | 'lg' | 'xl'`. |
|
|
32
|
+
| `deshabilitarMargenes` | Elimina padding horizontal. |
|
|
33
|
+
|
|
34
|
+
### `<CodeplexCuadricula />` (Grid)
|
|
35
|
+
Sistema de rejilla de 12 columnas (MUI Grid v2).
|
|
36
|
+
| Propiedad | Descripción |
|
|
37
|
+
| :--- | :--- |
|
|
38
|
+
| `contenedor` | Activa el modo contenedor (padre). |
|
|
39
|
+
| `elemento` | Activa el modo ítem (hijo). |
|
|
40
|
+
| `espaciado` | Número (x8px) de separación. |
|
|
41
|
+
| `xs`, `md`, `lg`... | Número de columnas (1-12) u 'auto'. |
|
|
42
|
+
|
|
43
|
+
### `<CodeplexColumna />` (Div + Tailwind)
|
|
44
|
+
Alternativa ligera a Grid para columnas responsivas simples.
|
|
45
|
+
| Propiedad | Descripción |
|
|
46
|
+
| :--- | :--- |
|
|
47
|
+
| `xs`, `sm`, `md`... | Número de columnas (1-12). Ejemplo: `md={6}` (50%). |
|
|
48
|
+
| `etiqueta` | Tag HTML (default `div`). |
|
|
49
|
+
|
|
50
|
+
### `<CodeplexFila />`
|
|
51
|
+
Contenedor Flex horizontal con wrap automático y gutters negativos. Útil para agrupar tarjetas o inputs.
|
|
52
|
+
| Propiedad | Descripción |
|
|
53
|
+
| :--- | :--- |
|
|
54
|
+
| `alineacion` | `'start' | 'center' | 'end' | 'stretch'`. |
|
|
55
|
+
| `justificacion` | `'start' | 'center' | 'between' | 'around'`. |
|
|
56
|
+
| `sinMargenes` | Quita los márgenes negativos de corrección. |
|
|
57
|
+
|
|
58
|
+
### `<CodeplexPila />` (Stack)
|
|
59
|
+
Lista vertical u horizontal de elementos con espaciado uniforme.
|
|
60
|
+
| Propiedad | Descripción |
|
|
61
|
+
| :--- | :--- |
|
|
62
|
+
| `direccion` | `'fila' | 'columna'`. |
|
|
63
|
+
| `espaciado` | Separación entre hijos. |
|
|
64
|
+
| `entre` | `justify-content: space-between`. |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 🧭 Navegación Principal
|
|
69
|
+
|
|
70
|
+
Componentes de alto nivel para Layouts de Aplicación (Dashboards, Landings).
|
|
71
|
+
|
|
72
|
+
### `<CodeplexBarraLateral />` (Sidebar)
|
|
73
|
+
Menú lateral colapsable para dashboards.
|
|
74
|
+
| Propiedad | Tipo | Descripción |
|
|
75
|
+
| :--- | :--- | :--- |
|
|
76
|
+
| `elementos` | `CodeplexElementoMenuLateral[]` | Array de objetos con `id`, `etiqueta`, `icono`, `href`, `hijos`. |
|
|
77
|
+
| `usuario` | `CodeplexInfoUsuario` | Datos del usuario mostrados al pie. |
|
|
78
|
+
| `colapsado` | `boolean` | Estado controlado del colapso. |
|
|
79
|
+
| `alAlternar` | `(c: boolean) => void` | Callback de colapso. |
|
|
80
|
+
|
|
81
|
+
### `<CodeplexBarraNavegacion />` (Navbar)
|
|
82
|
+
Barra superior para Landing Pages o Apps simples.
|
|
83
|
+
| Propiedad | Descripción |
|
|
84
|
+
| :--- | :--- |
|
|
85
|
+
| `textoLogo` / `srcLogo` | Identidad de marca. |
|
|
86
|
+
| `enlaces` | Array de links simples (`etiqueta`, `href`). |
|
|
87
|
+
| `posicion` | `'fixed' | 'sticky' | 'static'`. |
|
|
88
|
+
| `children` | Slots para acciones extra (derecha). |
|
|
89
|
+
|
|
90
|
+
### `<CodeplexCabecera />` (Header Dashboard)
|
|
91
|
+
Barra superior para Dashboards, complementa a la Barra Lateral.
|
|
92
|
+
| Propiedad | Descripción |
|
|
93
|
+
| :--- | :--- |
|
|
94
|
+
| `titulo` | Título de la página actual. |
|
|
95
|
+
| `migasPan` | Array `{ etiqueta, href }` para Breadcrumbs. |
|
|
96
|
+
| `mostrarBusqueda` | `boolean`. Muestra input de búsqueda global. |
|
|
97
|
+
| `conteoNotificaciones` | Número para el badge de campana. |
|
|
98
|
+
|
|
99
|
+
### `<CodeplexPiePagina />` (Footer)
|
|
100
|
+
| Propiedad | Descripción |
|
|
101
|
+
| :--- | :--- |
|
|
102
|
+
| `derechosAutor` | String custom de copyright. |
|
|
103
|
+
| `redesSociales` | Objeto `{ facebook, twitter, github, linkedin }` con URLs. |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 🗂️ Contenidos y Paneles
|
|
108
|
+
|
|
109
|
+
### `<CodeplexAcordeon />`
|
|
110
|
+
Lista de paneles expandibles.
|
|
111
|
+
| Propiedad | Descripción |
|
|
112
|
+
| :--- | :--- |
|
|
113
|
+
| `elementos` | Array `{ titulo, contenido, iconoIzquierda, subtitulo }`. |
|
|
114
|
+
| `multiple` | Permite varios abiertos a la vez. |
|
|
115
|
+
| `variante` | `'simple' | 'bordeado' | 'separado'`. |
|
|
116
|
+
|
|
117
|
+
### `<CodeplexPanelLateral />` (Drawer)
|
|
118
|
+
Panel deslizante (Off-canvas) para detalles o formularios sin salir de la página.
|
|
119
|
+
| Propiedad | Descripción |
|
|
120
|
+
| :--- | :--- |
|
|
121
|
+
| `abierto` | `boolean`. Controla visibilidad. |
|
|
122
|
+
| `lado` | `'izquierda' | 'derecha'`. |
|
|
123
|
+
| `tamano` | `'sm' | 'md' | 'lg' | 'xl' | 'full'`. |
|
|
124
|
+
| `titulo` / `descripcion` | Cabecera del panel. |
|
|
125
|
+
| `pie` | Slot para botones de acción (Guardar/Cancelar) fijos al fondo. |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 🖼️ Multimedia
|
|
130
|
+
|
|
131
|
+
### `<CodeplexListaImagenes />`
|
|
132
|
+
Mosaico de imágenes (Masonry o Grid estándar).
|
|
133
|
+
* **Subcomponentes**: `CodeplexElementoListaImagenes`, `CodeplexBarraElementoListaImagenes`.
|
|
134
|
+
* Propiedades espejo de MUI ImageList (`columnas`, `altoFila`, `variante`).
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
### 💡 Ejemplo: Layout de Dashboard Completo
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
import {
|
|
142
|
+
CodeplexCaja,
|
|
143
|
+
CodeplexBarraLateral,
|
|
144
|
+
CodeplexCabecera
|
|
145
|
+
} from '@codeplex-sac/layout';
|
|
146
|
+
|
|
147
|
+
export const DashboardLayout = ({ children }) => {
|
|
148
|
+
const [colapsado, setColapsado] = useState(false);
|
|
149
|
+
|
|
150
|
+
return (
|
|
151
|
+
<CodeplexCaja flexFila pantallaCompleta>
|
|
152
|
+
{/* 1. Menú Lateral */}
|
|
153
|
+
<CodeplexBarraLateral
|
|
154
|
+
colapsado={colapsado}
|
|
155
|
+
alAlternar={setColapsado}
|
|
156
|
+
elementos={MENU_ITEMS}
|
|
157
|
+
/>
|
|
158
|
+
|
|
159
|
+
{/* 2. Área Principal */}
|
|
160
|
+
<CodeplexCaja flexColumna sx={{ flex: 1, overflow: 'hidden' }}>
|
|
161
|
+
{/* Header */}
|
|
162
|
+
<CodeplexCabecera
|
|
163
|
+
titulo="Inicio"
|
|
164
|
+
barraLateralColapsada={colapsado}
|
|
165
|
+
/>
|
|
166
|
+
|
|
167
|
+
{/* Contenido con Scroll */}
|
|
168
|
+
<main className="flex-1 overflow-auto p-4 bg-gray-50 dark:bg-gray-900">
|
|
169
|
+
{children}
|
|
170
|
+
</main>
|
|
171
|
+
</CodeplexCaja>
|
|
172
|
+
</CodeplexCaja>
|
|
173
|
+
);
|
|
174
|
+
};
|
|
175
|
+
```
|