@codeplex-sac/layout 0.0.5 → 0.0.7

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 CHANGED
@@ -1,175 +1,250 @@
1
1
  # @codeplex-sac/layout
2
2
 
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.
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
- ## 📦 Instalación
5
+ ## 🚀 Instalación
6
6
 
7
7
  ```bash
8
- pnpm add @mui/material @emotion/react @emotion/styled @codeplex-sac/layout
8
+ bun add @codeplex-sac/layout @mui/material @emotion/react @emotion/styled
9
9
  ```
10
10
 
11
11
  ---
12
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`. |
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
- ## 🧭 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. |
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
- ## 🗂️ 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. |
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
- ## 🖼️ Multimedia
83
+ ### CodeplexCuadricula (Grid)
84
+ Sistema de rejilla basado en 12 columnas, ideal para diseños complejos y responsivos.
130
85
 
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`).
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
- ### 💡 Ejemplo: Layout de Dashboard Completo
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
- 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
- };
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
@@ -11,3 +11,4 @@ export * from './lib/caja/caja';
11
11
  export * from './lib/cuadricula/cuadricula';
12
12
  export * from './lib/pila/pila';
13
13
  export * from './lib/lista-imagenes/lista-imagenes';
14
+ export * from './lib/esqueleto/esqueleto';