@codeplex-sac/layout 0.0.5 → 0.0.6
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 +225 -150
- package/index.d.ts +1 -0
- package/index.js +16183 -0
- package/lib/barra-lateral/barra-lateral.d.ts +1 -0
- package/lib/caja/caja.d.ts +49 -6
- package/lib/cuadricula/cuadricula.d.ts +31 -15
- package/lib/esqueleto/esqueleto.d.ts +30 -0
- package/lib/lista-imagenes/lista-imagenes.d.ts +1 -1
- package/lib/pila/pila.d.ts +28 -8
- package/package.json +2 -1
- package/index.mjs +0 -6858
package/README.md
CHANGED
|
@@ -1,175 +1,250 @@
|
|
|
1
1
|
# @codeplex-sac/layout
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
El motor de estructura y maquetación definitiva para el ecosistema **Codeplex-SAC**. Este paquete proporciona una base sólida y flexible para construir interfaces modernas, desde rejillas responsivas hasta cascarones de aplicación completos, todo con una API semántica en **Español**.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 🚀 Instalación
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
|
|
8
|
+
bun add @codeplex-sac/layout @mui/material @emotion/react @emotion/styled
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
## 🏗️ Estructura
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
###
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
|
|
43
|
-
|
|
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`. |
|
|
13
|
+
## 🏗️ Estructura Base (Grid & Flex)
|
|
14
|
+
|
|
15
|
+
Componentes fundamentales para la distribución y alineación del contenido.
|
|
16
|
+
|
|
17
|
+
### CodeplexCaja (Box)
|
|
18
|
+
El bloque de construcción más básico. Soporta variantes visuales avanzadas y comportamientos de layout rápidos.
|
|
19
|
+
|
|
20
|
+
**Ejemplo de Uso:**
|
|
21
|
+
```tsx
|
|
22
|
+
import { CodeplexCaja } from '@codeplex-sac/layout';
|
|
23
|
+
|
|
24
|
+
export const MiCaja = () => (
|
|
25
|
+
<CodeplexCaja
|
|
26
|
+
variante="vidrio"
|
|
27
|
+
relleno={4}
|
|
28
|
+
centrado
|
|
29
|
+
alFlotar={{ elevar: true }}
|
|
30
|
+
>
|
|
31
|
+
Contenido con Glassmorphism
|
|
32
|
+
</CodeplexCaja>
|
|
33
|
+
);
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Propiedades Destacadas (Props):**
|
|
37
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
38
|
+
| :--- | :--- | :--- | :--- |
|
|
39
|
+
| `variante` | `Variante` | `'predeterminado'`| `predeterminado`, `bordeado`, `sombreado`, `vidrio`, `gradiente`. |
|
|
40
|
+
| `centrado` | `boolean` | `false` | Centra el contenido en ambos ejes. |
|
|
41
|
+
| `relleno` | `number \| string`| - | Espaciado interno (padding). |
|
|
42
|
+
| `alFlotar` | `object` | - | Opciones de interactividad: `{ elevar, escalar }`. |
|
|
43
|
+
| `validacion`| `Validacion` | - | Feedback visual: `error`, `exito`, `advertencia`, `info`. |
|
|
65
44
|
|
|
66
45
|
---
|
|
67
46
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
| `
|
|
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. |
|
|
47
|
+
### CodeplexContenedor (Container)
|
|
48
|
+
Centra tu contenido horizontalmente y establece anchos máximos consistentes.
|
|
49
|
+
|
|
50
|
+
**Propiedades (Props):**
|
|
51
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
52
|
+
| :--- | :--- | :--- | :--- |
|
|
53
|
+
| `fluido` | `boolean` | `false` | Elimina el ancho máximo para ocupar el 100%. |
|
|
54
|
+
| `anchoMaximo`| `string \| false` | `'lg'` | Puntos de ruptura de MUI (xs, sm, md, lg, xl). |
|
|
55
|
+
| `paginaCentrada`| `boolean` | `false` | Altura 100vh y contenido centrado. |
|
|
104
56
|
|
|
105
57
|
---
|
|
106
58
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
|
124
|
-
|
|
|
125
|
-
| `
|
|
59
|
+
### CodeplexPila (Stack)
|
|
60
|
+
Organiza elementos en una dirección (fila o columna) con espaciado uniforme.
|
|
61
|
+
|
|
62
|
+
**Ejemplo de Uso:**
|
|
63
|
+
```tsx
|
|
64
|
+
import { CodeplexPila } from '@codeplex-sac/layout';
|
|
65
|
+
|
|
66
|
+
export const Lista = () => (
|
|
67
|
+
<CodeplexPila direccion="columna" espaciado={2} divisor>
|
|
68
|
+
<div>Item 1</div>
|
|
69
|
+
<div>Item 2</div>
|
|
70
|
+
</CodeplexPila>
|
|
71
|
+
);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Propiedades (Props):**
|
|
75
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
76
|
+
| :--- | :--- | :--- | :--- |
|
|
77
|
+
| `direccion` | `string \| obj` | `'columna'` | `fila`, `columna`, `fila-reversa`, `columna-reversa`. |
|
|
78
|
+
| `espaciado` | `number \| string`| `0` | Factor de multiplicación para el gap. |
|
|
79
|
+
| `divisor` | `boolean \| node` | `false` | Agrega una línea o componente entre cada hijo. |
|
|
126
80
|
|
|
127
81
|
---
|
|
128
82
|
|
|
129
|
-
|
|
83
|
+
### CodeplexCuadricula (Grid)
|
|
84
|
+
Sistema de rejilla basado en 12 columnas, ideal para diseños complejos y responsivos.
|
|
130
85
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
86
|
+
**Propiedades (Props):**
|
|
87
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
88
|
+
| :--- | :--- | :--- | :--- |
|
|
89
|
+
| `contenedor` | `boolean` | `false` | Define el componente como contenedor Grid. |
|
|
90
|
+
| `elemento` | `boolean` | `false` | Define el componente como item Grid. |
|
|
91
|
+
| `espaciado` | `number` | - | Espacio entre columnas (Padding). |
|
|
92
|
+
| `tamano` | `number \| object`| - | Número de columnas (1-12) o breakpoints `{ xs, md }`. |
|
|
135
93
|
|
|
136
94
|
---
|
|
137
95
|
|
|
138
|
-
###
|
|
96
|
+
### CodeplexFila y CodeplexColumna
|
|
97
|
+
Utilidades ligeras basadas en Tailwind CSS para maquetación rápida y flexible.
|
|
139
98
|
|
|
99
|
+
**Ejemplo de Uso:**
|
|
140
100
|
```tsx
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
};
|
|
101
|
+
<CodeplexFila justificacion="between" alineacion="center">
|
|
102
|
+
<CodeplexColumna md={6}>Contenido Izquierdo</CodeplexColumna>
|
|
103
|
+
<CodeplexColumna md={6}>Contenido Derecho</CodeplexColumna>
|
|
104
|
+
</CodeplexFila>
|
|
175
105
|
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## 🏛️ Cascarón de Aplicación (Shell)
|
|
110
|
+
|
|
111
|
+
Componentes diseñados para construir la estructura de alto nivel de aplicaciones corporativas.
|
|
112
|
+
|
|
113
|
+
### CodeplexEsqueleto (Standard Scaffold)
|
|
114
|
+
Combina Cabecera, Barra Lateral y Pie de Página en una estructura unificada y lista para usar.
|
|
115
|
+
|
|
116
|
+
**Ejemplo de Uso:**
|
|
117
|
+
```tsx
|
|
118
|
+
import { CodeplexEsqueleto } from '@codeplex-sac/layout';
|
|
119
|
+
|
|
120
|
+
const MENU = [
|
|
121
|
+
{ id: '1', etiqueta: 'Dashboard', icono: <DashboardIcon />, activo: true },
|
|
122
|
+
{ id: '2', etiqueta: 'Usuarios', icono: <PeopleIcon /> }
|
|
123
|
+
];
|
|
124
|
+
|
|
125
|
+
export const MiPantalla = () => (
|
|
126
|
+
<CodeplexEsqueleto menu={MENU} titulo="Admin Panel">
|
|
127
|
+
Contenido principal de la página
|
|
128
|
+
</CodeplexEsqueleto>
|
|
129
|
+
);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### CodeplexCabecera (Header)
|
|
135
|
+
Barra superior fija con soporte para migas de pan (breadcrumbs), búsqueda y perfil de usuario.
|
|
136
|
+
|
|
137
|
+
**Propiedades (Props):**
|
|
138
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
139
|
+
| :--- | :--- | :--- | :--- |
|
|
140
|
+
| `titulo` | `string` | - | Título principal (si no hay migas de pan). |
|
|
141
|
+
| `migasPan` | `Array<Item>` | - | Lista de niveles con `etiqueta`, `href` y callback. |
|
|
142
|
+
| `usuario` | `object` | - | `{ nombre, rol, avatar }`. |
|
|
143
|
+
| `conteoNotificaciones`| `number`| `0` | Badge sobre el icono de campana. |
|
|
144
|
+
| `alBuscar` | `function` | - | Callback que recibe el texto de búsqueda. |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### CodeplexBarraNavegacion (Navbar)
|
|
149
|
+
Barra de navegación horizontal con soporte para logo, enlaces responsivos y perfil de usuario.
|
|
150
|
+
|
|
151
|
+
**Ejemplo de Uso:**
|
|
152
|
+
```tsx
|
|
153
|
+
<CodeplexBarraNavegacion
|
|
154
|
+
textoLogo="Codeplex"
|
|
155
|
+
enlaces={[
|
|
156
|
+
{ id: '1', etiqueta: 'Inicio', activo: true },
|
|
157
|
+
{ id: '2', etiqueta: 'Servicios', href: '/servicios' }
|
|
158
|
+
]}
|
|
159
|
+
posicion="sticky"
|
|
160
|
+
/>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### CodeplexBarraLateral (Sidebar)
|
|
166
|
+
Navegación vertical avanzada con soporte para submenús, colapsado manual y modo móvil automático.
|
|
167
|
+
|
|
168
|
+
**Propiedades (Props):**
|
|
169
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
170
|
+
| :--- | :--- | :--- | :--- |
|
|
171
|
+
| `elementos` | `Array<Item>` | - | Árbol de navegación con `etiqueta`, `icono`, `hijos`. |
|
|
172
|
+
| `colapsado` | `boolean` | `false` | Estado contraído del sidebar (solo iconos). |
|
|
173
|
+
| `ancho` | `number` | `260` | Ancho del panel expandido. |
|
|
174
|
+
| `alAlternar` | `function` | - | Callback ejecutado al expandir/colapsar. |
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### CodeplexPanelLateral (Side Panel / Drawer)
|
|
179
|
+
Panel deslizante para flujos secundarios, disponible en ambos lados y múltiples tamaños.
|
|
180
|
+
|
|
181
|
+
**Propiedades (Props):**
|
|
182
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
183
|
+
| :--- | :--- | :--- | :--- |
|
|
184
|
+
| `abierto` | `boolean` | - | Controla la visibilidad. |
|
|
185
|
+
| `lado` | `string` | `'derecha'` | `'izquierda'` o `'derecha'`. |
|
|
186
|
+
| `tamano` | `string` | `'md'` | `'sm'`, `'md'`, `'lg'`, `'xl'`, `'full'`. |
|
|
187
|
+
| `pie` | `ReactNode` | - | Contenido fijo al final del panel. |
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
### CodeplexPiePagina (Footer)
|
|
192
|
+
Pie de página consistente con soporte para enlaces legales y redes sociales.
|
|
193
|
+
|
|
194
|
+
**Propiedades (Props):**
|
|
195
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
196
|
+
| :--- | :--- | :--- | :--- |
|
|
197
|
+
| `derechosAutor`| `string` | - | Texto de copyright personalizado. |
|
|
198
|
+
| `enlaces` | `Array` | - | Lista de enlaces legales `{ etiqueta, href }`. |
|
|
199
|
+
| `redesSociales`| `object` | - | `{ facebook, twitter, github, linkedin }`. |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 📦 Contenedores de Contenido
|
|
204
|
+
|
|
205
|
+
### CodeplexAcordeon
|
|
206
|
+
Organiza información en paneles colapsables con animaciones fluidas y múltiples variantes.
|
|
207
|
+
|
|
208
|
+
**Ejemplo de Uso:**
|
|
209
|
+
```tsx
|
|
210
|
+
import { CodeplexAcordeon } from '@codeplex-sac/layout';
|
|
211
|
+
|
|
212
|
+
const DATOS = [
|
|
213
|
+
{ id: '1', titulo: 'Sección 1', contenido: 'Detalle 1', iconoIzquierda: <InfoIcon /> },
|
|
214
|
+
{ id: '2', titulo: 'Sección 2', contenido: 'Detalle 2' }
|
|
215
|
+
];
|
|
216
|
+
|
|
217
|
+
export const Faq = () => (
|
|
218
|
+
<CodeplexAcordeon elementos={DATOS} variante="separado" multiple />
|
|
219
|
+
);
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Propiedades (Props):**
|
|
223
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
224
|
+
| :--- | :--- | :--- | :--- |
|
|
225
|
+
| `elementos` | `Array<Item>` | - | Lista de paneles con `id`, `titulo`, `contenido`. |
|
|
226
|
+
| `variante` | `string` | `'simple'` | `'simple'`, `'bordeado'`, `'separado'`. |
|
|
227
|
+
| `multiple` | `boolean` | `false` | Permite abrir varios paneles a la vez. |
|
|
228
|
+
| `alCambiar` | `function` | - | Callback con los IDs de los items abiertos. |
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
### CodeplexListaImagenes (Image List)
|
|
233
|
+
Distribuye una colección de imágenes en rejillas optimizadas (estándar, mosaico o mampostería).
|
|
234
|
+
|
|
235
|
+
**Propiedades (Props):**
|
|
236
|
+
| Propiedad | Tipo | Por Defecto | Descripción |
|
|
237
|
+
| :--- | :--- | :--- | :--- |
|
|
238
|
+
| `variante` | `string` | `'estandar'`| `estandar`, `mosaico`, `mamposteria`, `tejido`. |
|
|
239
|
+
| `columnas` | `number` | `2` | Número de columnas en la rejilla. |
|
|
240
|
+
| `espacio` | `number` | `4` | Espacio entre imágenes (px). |
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 🎨 Diseño y Consistencia
|
|
245
|
+
|
|
246
|
+
Todos los componentes de `@codeplex-sac/layout` están construidos sobre los cimientos de `@codeplex-sac/theme`. Utilizan tokens de espaciado, elevaciones y colores corporativos para garantizar que la maquetación de tus aplicaciones sea impecable y profesional por defecto.
|
|
247
|
+
|
|
248
|
+
## 📄 Licencia
|
|
249
|
+
|
|
250
|
+
Este proyecto es propiedad privada de **Codeplex SAC**. Todos los derechos reservados.
|
package/index.d.ts
CHANGED