@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.
@@ -10,6 +10,7 @@ export interface CodeplexElementoMenuLateral {
10
10
  insignia?: string;
11
11
  hijos?: CodeplexElementoMenuLateral[];
12
12
  alHacerClick?: () => void;
13
+ tipo?: 'item' | 'seccion' | 'divisor';
13
14
  }
14
15
  export interface CodeplexBarraLateralProps {
15
16
  elementos: CodeplexElementoMenuLateral[];
@@ -1,20 +1,63 @@
1
1
  import { BoxProps as MuiBoxProps } from '@mui/material';
2
+ export type CodeplexCajaVariante = 'predeterminado' | 'bordeado' | 'sombreado' | 'vidrio' | 'gradiente';
3
+ export type CodeplexCajaValidacion = 'error' | 'exito' | 'advertencia' | 'info';
2
4
  export interface CodeplexCajaProps extends MuiBoxProps {
3
5
  /**
4
- * Acceso directo para hacer que la caja sea un contenedor flexible centrado (vertical y horizontal).
6
+ * Variante visual de la caja.
7
+ * - `predeterminado`: Sin estilos especiales.
8
+ * - `bordeado`: Con borde sutil.
9
+ * - `sombreado`: Con sombra elevada.
10
+ * - `vidrio`: Efecto Glassmorphism (requiere fondo detrás).
11
+ * - `gradiente`: Fondo con degradado sutil.
12
+ * @default 'predeterminado'
13
+ */
14
+ variante?: CodeplexCajaVariante;
15
+ /**
16
+ * Estado de validación para dar feedback visual (borde de color).
17
+ */
18
+ validacion?: CodeplexCajaValidacion;
19
+ /**
20
+ * Centra el contenido vertical y horizontalmente (display: flex).
5
21
  */
6
22
  centrado?: boolean;
7
23
  /**
8
- * Acceso directo para establecer width: 100vw y height: 100vh.
24
+ * Ocupa todo el ancho y alto de la ventana visible (100vw, 100vh).
9
25
  */
10
26
  pantallaCompleta?: boolean;
11
27
  /**
12
- * Acceso directo para display: 'flex', flexDirection: 'row'.
28
+ * Configura flex-direction: row y display: flex.
13
29
  */
14
30
  flexFila?: boolean;
15
31
  /**
16
- * Acceso directo para display: 'flex', flexDirection: 'column'.
17
- */
32
+ * Configura flex-direction: column y display: flex.
33
+ */
18
34
  flexColumna?: boolean;
35
+ /**
36
+ * Color de fondo personalizado (acepta valores del tema, ej: 'primary.main').
37
+ */
38
+ colorFondo?: string;
39
+ /**
40
+ * Color de texto personalizado (acepta valores del tema).
41
+ */
42
+ colorTexto?: string;
43
+ /**
44
+ * Relleno interno (Padding). Shortcut para `p`.
45
+ */
46
+ relleno?: MuiBoxProps['p'];
47
+ /**
48
+ * Margen externo (Margin). Shortcut para `m`.
49
+ */
50
+ margen?: MuiBoxProps['m'];
51
+ /**
52
+ * Borde redondeado. Shortcut para `borderRadius`.
53
+ */
54
+ redondeado?: MuiBoxProps['borderRadius'];
55
+ /**
56
+ * Configuración de interacciones al pasar el mouse.
57
+ */
58
+ alFlotar?: {
59
+ elevar?: boolean;
60
+ escalar?: boolean;
61
+ };
19
62
  }
20
- export declare const CodeplexCaja: ({ centrado, pantallaCompleta, flexFila, flexColumna, sx, ...props }: CodeplexCajaProps) => import("react/jsx-runtime").JSX.Element;
63
+ export declare const CodeplexCaja: import('react').ForwardRefExoticComponent<Omit<CodeplexCajaProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,35 +1,41 @@
1
1
  import { GridProps as MuiGridProps } from '@mui/material';
2
- import { ElementType } from 'react';
3
- export interface CodeplexCuadriculaProps extends Omit<MuiGridProps, 'container' | 'item' | 'spacing' | 'direction' | 'wrap'> {
2
+ export type CodeplexCuadriculaDireccion = 'fila' | 'columna' | 'fila-reversa' | 'columna-reversa';
3
+ export type CodeplexCuadriculaEnvoltorio = 'envolver' | 'no-envolver' | 'envolver-reversa';
4
+ export type CodeplexCuadriculaAlineacion = 'inicio' | 'centro' | 'fin' | 'estirar' | 'linea-base';
5
+ export type CodeplexCuadriculaJustificacion = 'inicio' | 'centro' | 'fin' | 'entre' | 'alrededor' | 'uniforme';
6
+ export interface CodeplexCuadriculaProps extends Omit<MuiGridProps, 'container' | 'item' | 'spacing' | 'direction' | 'wrap' | 'alignItems' | 'justifyContent'> {
4
7
  /**
5
- * Si es true, el componente se comportará como un contenedor de cuadrícula.
8
+ * Si es true, el componente se comportará como un contenedor de cuadrícula (Grid Container).
6
9
  */
7
10
  contenedor?: boolean;
8
11
  /**
9
- * Si es true, el componente se comportará como un elemento de cuadrícula.
12
+ * Si es true, el componente se comportará como un elemento de cuadrícula (Grid Item).
10
13
  */
11
14
  elemento?: boolean;
12
15
  /**
13
- * Define el espacio entre los elementos.
16
+ * Define el espacio entre los elementos (solo para contenedor).
14
17
  */
15
18
  espaciado?: MuiGridProps['spacing'];
16
19
  /**
17
- * Define la dirección del flex-container.
20
+ * Define la dirección del flex-container (solo para contenedor).
18
21
  */
19
- direccion?: MuiGridProps['direction'];
22
+ direccion?: CodeplexCuadriculaDireccion;
20
23
  /**
21
- * Define si los elementos deben envolverse o no.
24
+ * Define si los elementos deben envolverse (solo para contenedor).
22
25
  */
23
- envolver?: MuiGridProps['wrap'];
26
+ envolver?: CodeplexCuadriculaEnvoltorio;
24
27
  /**
25
- * Si es true (y contenedor es true), centra los elementos mediante justifyContent="center" y alignItems="center".
28
+ * Alineación vertical de los elementos (align-items).
26
29
  */
27
- centrado?: boolean;
30
+ alineacion?: CodeplexCuadriculaAlineacion;
28
31
  /**
29
- * El componente utilizado para el nodo raíz.
30
- * Puede ser una cadena HTML o un componente.
32
+ * Alineación horizontal de los elementos (justify-content).
31
33
  */
32
- component?: ElementType;
34
+ justificacion?: CodeplexCuadriculaJustificacion;
35
+ /**
36
+ * Si es true (y contenedor es true), centra los elementos mediante justificacion="centro" y alineacion="centro".
37
+ */
38
+ centrado?: boolean;
33
39
  /**
34
40
  * Definir el número de columnas (de 1 a 12) para el breakpoint xs.
35
41
  */
@@ -46,9 +52,19 @@ export interface CodeplexCuadriculaProps extends Omit<MuiGridProps, 'container'
46
52
  * Definir el número de columnas (de 1 a 12) para el breakpoint lg.
47
53
  */
48
54
  lg?: boolean | number | 'auto';
55
+ /**
56
+ * Definir el número de columnas (de 1 a 12) para el breakpoint xl.
57
+ */
49
58
  /**
50
59
  * Definir el número de columnas (de 1 a 12) para el breakpoint xl.
51
60
  */
52
61
  xl?: boolean | number | 'auto';
62
+ /**
63
+ * Propiedad unificada para definir el tamaño de la columna (Grid v2).
64
+ * Puede ser un número (1-12) o un objeto con breakpoints { xs: 12, md: 6 }.
65
+ */
66
+ tamano?: number | {
67
+ [key in 'xs' | 'sm' | 'md' | 'lg' | 'xl']?: boolean | number | 'auto';
68
+ };
53
69
  }
54
- export declare const CodeplexCuadricula: ({ contenedor, elemento, espaciado, direccion, envolver, centrado, sx, component, ...props }: CodeplexCuadriculaProps) => import("react/jsx-runtime").JSX.Element;
70
+ export declare const CodeplexCuadricula: import('react').ForwardRefExoticComponent<Omit<CodeplexCuadriculaProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,30 @@
1
+ import { default as React } from 'react';
2
+ import { CodeplexCabeceraProps } from '../cabecera/cabecera';
3
+ import { CodeplexBarraLateralProps } from '../barra-lateral/barra-lateral';
4
+ import { CodeplexPiePaginaProps } from '../pie-pagina/pie-pagina';
5
+ export interface CodeplexEsqueletoProps {
6
+ /** Elementos del menú lateral */
7
+ menu: CodeplexBarraLateralProps['elementos'];
8
+ /** Información del usuario */
9
+ usuario?: CodeplexBarraLateralProps['usuario'];
10
+ /** Configuración adicional del sidebar */
11
+ sidebarProps?: Partial<CodeplexBarraLateralProps>;
12
+ /** Configuración adicional del header */
13
+ headerProps?: Partial<CodeplexCabeceraProps>;
14
+ /** Configuración adicional del footer */
15
+ footerProps?: Partial<CodeplexPiePaginaProps>;
16
+ /** Título de la aplicación */
17
+ titulo?: string;
18
+ /** Logo de la aplicación */
19
+ logo?: string;
20
+ /** Contenido principal */
21
+ children: React.ReactNode;
22
+ /** Callback al navegar */
23
+ alNavegar?: (href: string) => void;
24
+ }
25
+ /**
26
+ * Componente CodeplexEsqueleto.
27
+ * Proporciona una estructura de página preconfigurada con Sidebar, Header y Footer.
28
+ * Gestiona automáticamente el estado de colapsado y los márgenes responsivos.
29
+ */
30
+ export declare const CodeplexEsqueleto: ({ menu, usuario, sidebarProps, headerProps, footerProps, titulo, logo, children, alNavegar, }: CodeplexEsqueletoProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ export interface CodeplexListaImagenesProps extends Omit<MuiImageListProps, 'col
3
3
  columnas?: MuiImageListProps['cols'];
4
4
  altoFila?: MuiImageListProps['rowHeight'];
5
5
  espacio?: MuiImageListProps['gap'];
6
- variante?: MuiImageListProps['variant'];
6
+ variante?: 'estandar' | 'mosaico' | 'mamposteria' | 'tejido';
7
7
  }
8
8
  export interface CodeplexElementoListaImagenesProps extends Omit<MuiImageListItemProps, 'cols' | 'rows'> {
9
9
  columnas?: MuiImageListItemProps['cols'];
@@ -1,20 +1,40 @@
1
1
  import { StackProps as MuiStackProps } from '@mui/material';
2
- export interface CodeplexPilaProps extends Omit<MuiStackProps, 'direction' | 'spacing'> {
2
+ export type CodeplexPilaDireccion = 'fila' | 'columna' | 'fila-reversa' | 'columna-reversa';
3
+ export type CodeplexPilaAlineacion = 'inicio' | 'centro' | 'fin' | 'estirar' | 'linea-base';
4
+ export type CodeplexPilaJustificacion = 'inicio' | 'centro' | 'fin' | 'entre' | 'alrededor' | 'uniforme';
5
+ export interface CodeplexPilaProps extends Omit<MuiStackProps, 'direction' | 'spacing' | 'alignItems' | 'justifyContent' | 'divider'> {
3
6
  /**
4
- * Define la dirección de la pila.
7
+ * Define la dirección de la pila. Soporta valores responsivos.
8
+ * @default 'columna'
5
9
  */
6
- direccion?: MuiStackProps['direction'] | 'fila' | 'columna' | 'fila-reversa' | 'columna-reversa';
10
+ direccion?: CodeplexPilaDireccion | CodeplexPilaDireccion[] | {
11
+ [key: string]: CodeplexPilaDireccion;
12
+ };
7
13
  /**
8
- * Define el espaciado entre los elementos.
14
+ * Define el espaciado entre los elementos. Puede ser un número (factor del tema) o string (e.g. '20px').
15
+ * @default 0
9
16
  */
10
- espaciado?: MuiStackProps['spacing'];
17
+ espaciado?: number | string;
11
18
  /**
12
- * Centra los hijos horizontal y verticalmente.
19
+ * Alineación transversal de los elementos (align-items).
20
+ */
21
+ alineacion?: CodeplexPilaAlineacion;
22
+ /**
23
+ * Distribución principal de los elementos (justify-content).
24
+ */
25
+ justificacion?: CodeplexPilaJustificacion;
26
+ /**
27
+ * Si es verdadero, agrega un divisor predeterminado entre cada elemento.
28
+ * Si se pasa un elemento React, se usa ese elemento como divisor.
29
+ */
30
+ divisor?: boolean | React.ReactNode;
31
+ /**
32
+ * Acceso directo para centrar vertical y horizontalmente (alineacion="centro", justificacion="centro").
13
33
  */
14
34
  centrado?: boolean;
15
35
  /**
16
- * Aplica justifyContent: 'space-between'
36
+ * Acceso directo para justificacion="entre" (justify-content: space-between).
17
37
  */
18
38
  entre?: boolean;
19
39
  }
20
- export declare const CodeplexPila: ({ direccion, espaciado, centrado, entre, sx, alignItems, justifyContent, ...props }: CodeplexPilaProps) => import("react/jsx-runtime").JSX.Element;
40
+ export declare const CodeplexPila: import('react').ForwardRefExoticComponent<Omit<CodeplexPilaProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@codeplex-sac/layout",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
+ "type": "module",
4
5
  "main": "./index.js",
5
6
  "types": "./index.d.ts",
6
7
  "exports": {