Componentes Web Reutilizables (Custom Elements)

BaP Framework utiliza componentes web nativos basados en el estándar del W3C (Custom Elements). Esto permite encapsular estilos y lógica sin la sobrecarga de frameworks externos.

Registro e Instanciación

El orquestador central se encuentra en ./src/_components/customComponentsRegistration.js, el cual expone la función setCustomComponents() para darlos de alta en el DOM de forma dinámica y asíncrona.


1. <bap-chip>

Etiqueta visual pequeña para representar categorías o palabras clave.

AtributoTipoRequeridoDescripción
idStringOpcionalIdentificador del elemento.
(inner HTML)StringContenido de la etiqueta.
<!-- Declaración HTML -->
<bap-chip>Vanilla JS</bap-chip>
Vanilla JSCSS3HTML5

2. <bap-dialog>

Modal premium con Glassmorphism, sanitización de datos y enlaces Base64 seguros.

AtributoTipoRequeridoDescripción
idStringOpcionalID único del modal (autogenerado si se omite).
title-topStringOpcionalSobre-título de cabecera.
title-mainStringOpcionalTítulo destacado en H2.
title-subStringOpcionalSubtítulo en H3.
image-detailStringOpcionalURL de la imagen del cuerpo.
link-url-base64StringOpcionalURL de acción principal codificada en Base64.
link-text-base64StringOpcionalTexto del botón codificado en Base64.
<!-- URL: https://github.com -> aHR0cHM6Ly9naXRodWIuY29t -->
<!-- Texto: Ver Código -> VmVyIEPDs2RpZ28= -->
<bap-dialog 
  id="demo-modal"
  title-main="Modal Premium"
  link-url-base64="aHR0cHM6Ly9naXRodWIuY29t"
  link-text-base64="VmVyIEPDs2RpZ28=">
  Contenido HTML del modal sanitizado.
</bap-dialog>

Pie de página adaptativo que incluye los metadatos y traducción asíncrona.

No recibe atributos HTML. Carga su lógica y traducciones directamente desde constantes.

<bap-footer></bap-footer>
Visualiza este componente en la parte inferior de esta página de documentación.

4. <bap-header>

Barra de navegación responsiva que controla el inicio de sesión y la conmutación de temas (Modo Claro / Modo Oscuro).

AtributoTipoRequeridoDescripción
hide-actionsBooleanOpcionalOculta las acciones y botones.
show-admin-actionsBooleanOpcionalHabilita opciones de administración.
is-admin-userBooleanOpcionalMarca visual de rol administrador.
<bap-header show-admin-actions is-admin-user></bap-header>
Visualiza este componente en la parte superior de esta página de documentación.

5. <bap-loading-state>

Capa opaca de bloqueo de pantalla completa con spinner animado.

AtributoTipoRequeridoDescripción
sub-messageStringOpcionalTexto explicativo secundario.
(inner HTML)StringOpcionalMensaje principal del overlay.
<bap-loading-state sub-message="Procesando..."></bap-loading-state>

Renderiza el logotipo principal de la marca o un fallback vectorial SVG adaptable.

AtributoTipoRequeridoDescripción
color-modeStringOpcionalTono cromático del SVG ("light" o "dark").
<bap-logo color-mode="dark"></bap-logo>

7. <bap-notification>

Alertas visuales tipo Toast o Banner aisladas en su Shadow DOM.

AtributoTipoRequeridoDescripción
typeStringOpcionalTipo de caja: "toast" o "alert".
severityStringOpcionalGravedad: "info", "warning", "error".
showBooleanOpcionalAplica animación para mostrar la alerta en pantalla.
<bap-notification type="toast" severity="info" show>
  Sincronización completada.
</bap-notification>

8. <bap-spinner>

Loader circular animado puramente en CSS.

No recibe atributos HTML.

<bap-spinner></bap-spinner>

9. <bap-svg-image>

Renderiza vectores desde una iconoteca estática.

AtributoTipoRequeridoDescripción
nameStringIdentificador único del icono en icons.js.
sizeStringOpcionalTamaños: "xs", "s", "m", "l", "xl".
mobile-sizeStringOpcionalTamaño en dispositivos móviles.
<bap-svg-image name="close" size="l" mobile-size="s"></bap-svg-image>