Contratos de tipos de bloque

Propósito y alcance

Esta referencia describe bloques publicados, campos editables, traducciones, reglas de hijos y renderizado público. La administración muestra el contrato en modo solo lectura; no define esquemas personalizados ni crea formularios nuevos.

El sistema de plugins de plugins añade hooks de bloque de plugin solo declarativos mediante PluginBlockTypeDefinition, PluginBlockPackDefinition y PluginBlockRegistry. Los plugins habilitados pueden exponer handles propios del plugin, como analytics-tools::score-card, para su descubrimiento, pero estas declaraciones no sustituyen a los contratos de bloque core distribuidos, las vistas de bloque core, los seeders core ni los servicios de edición de bloques. Los handles sin cualificar de estilo core, como hero, siguen perteneciendo al core y se rechazan en las declaraciones de plugins.

Definición

A El contrato de tipo de bloque es el acuerdo técnico actual sobre cómo se comporta un tipo de bloque en las capas de CMS:

  • identidad del catálogo: slug, etiqueta, categoría, estado y metadatos del sistema o contenedor
  • fuente del formulario de administrador: qué parcial de Blade edita actualmente el bloque y qué campos expone
  • validación y solicitud manejo: cómo WebBlocks\Cms\Http\Requests\Admin\BlockRequest normaliza y valida actualmente las cargas útiles de bloque
  • propiedad de almacenamiento: qué valores se encuentran en blocks, filas de traducción dedicadas, block_media o registros relacionados
  • propiedad de traducción: qué campos de cara al usuario son locale-owned
  • propiedad compartida: qué configuraciones o relaciones permanecen compartidas entre locales
  • propiedad de medios o relaciones: media_id directo, block_media ordenado, búsquedas de navegación o relaciones en la misma página
  • soporte infantil: si el bloque es un contenedor y si los tipos secundarios están restringidos
  • fuente de renderizador público: qué Blade público parcial representa el bloque hoy
  • contrato raíz del renderizador: si el bloque posee su marcado raíz público o depende de la ruta contenedora genérica
  • portabilidad y revisiones: si la forma de almacenamiento actual debe continuar viajando a través de revisiones, clonación, exportación/importación y promoción
  • Pruebas y brechas: cobertura enfocada conocida, comportamiento poco claro o deuda de compatibilidad

Términos del contrato actual

Términos de estado utilizados a continuación:

  • clear: el formulario de administración, la gestión de peticiones, el almacenamiento y el renderizador coinciden en gran medida
  • mostly clear: el contrato actual se entiende, pero tiene una salvedad destacable
  • transitional: el contrato actual mantiene de forma intencionada una ruta de compatibilidad o un patrón de propiedad mixto
  • needs review: confirme el contrato instalado antes de depender del comportamiento
  • legacy/fallback: el comportamiento publicado depende de una ruta alternativa o de compatibilidad

Reglas de propiedad del almacenamiento

El contrato de trabajo actual y futuro debe mantener explícitas estas reglas de propiedad:

  • La copia orientada al usuario pertenece a las filas de traducción cuando el bloque es de propiedad local
  • Los datos operativos o de configuración compartidos pertenecen a la configuración del bloque compartido o relaciones explícitas
  • Los medios deben usar media_id o block_media rutas de propiedad cuando corresponda
  • evite mover contenido de cara al usuario a configuraciones compartidas arbitrarias
  • mantenga las rutas de almacenamiento de compatibilidad documentadas cuando aún afecten la salida pública o las importaciones

Desde CMS 1.98.6, el campo modelo settings/API compatible está respaldado por registros relacionales. Los campos principales conocidos utilizan columnas de apariencia, medios, navegación y contenido de tipo finito. Los enlaces de contenido, la configuración de la colección y los valores de la instancia de la aplicación tienen registros separados; Los nodos escritos conservan la estructura, el orden y las extensiones históricas/de complementos. CMS 1.98.8 eliminó las copias de reversión temporales de JSON; SQL tiene autoridad. El editor, la propiedad de la traducción, las cargas útiles API y los métodos de renderizado mantienen sus contratos existentes; La migración de almacenamiento no mueve la copia de propiedad local a la configuración compartida.

Validación de los ajustes de edición

CMS 1.105.9 agrega el descubrimiento authoring_settings_schema revisado para los 55 bloques principales publicados. Lea los indicadores de creación, PATCH y escritura del administrador por separado antes de proporcionar un campo. Los valores nuevos o modificados deben satisfacer los tipos, enumeraciones y límites declarados; Los campos no admitidos devuelven errores de validación en lugar de aceptarse o borrarse silenciosamente. Este sigue siendo un contrato de propiedad del código, no un esquema editable ni un generador de formularios generado.

U Los valores históricos sin cambios sobreviven a ediciones no relacionadas y clonaciones, puestas en escena y revisiones confiables. Los bloques nuevos y los reemplazos completos deben pasar la validación actual. Los complementos sin esquema conservan su comportamiento existente; Los esquemas escalares del complemento opcional no reemplazan los validadores de medios, aplicaciones o Dynamic Content. HTML sigue siendo solo para humanos.

Consulte Esquemas de ajustes de edición por bloque para conocer los metadatos de operación, las reglas de compatibilidad y el comando de compatibilidad de solo lectura webblocks:blocks:audit-settings. La auditoría de catálogo que aparece a continuación comprueba los formularios y renderizadores distribuidos, no los ajustes almacenados.

Fuentes distribuidas

La referencia utiliza el catálogo, formularios y renderizadores distribuidos.

  • fuente del catálogo: src/Support/Blocks/CoreBlockTypeCatalogSyncer.php
  • normalización de solicitud de edición de bloque: src/Http/Requests/Admin/BlockRequest.php
  • ayudantes de persistencia: src/Support/Blocks/BlockPayloadWriter.php, src/Support/Blocks/BlockTranslationWriter.php, src/Support/Blocks/BlockTranslationResolver.php
  • registro de traducción: src/Support/Blocks/BlockTranslationRegistry.php
  • formularios de administrador: resources/views/admin/blocks/types/*.blade.php
  • representantes públicos: resources/views/pages/partials/blocks/*.blade.php
  • referencias de cobertura: catálogo de bloques, renderizado, traducción y pruebas específicas de slug bajo tests/Feature/

Tipos de bloques principales publicados actualmente documentados aquí: 55.

Conciliación de catálogo: WebBlocks CMS 1.105.8. La tabla cubre las 55 definiciones principales publicadas; siete definiciones adicionales permanecen inéditas. Las notas de la fase posterior a continuación son registros históricos, no un segundo recuento del catálogo actual.

Comando de auditoría

Operadores y desarrolladores pueden ejecutar esta comprobación de solo lectura:

php artisan block-types:contracts-audit
php artisan block-types:contracts-audit --json

El comando es de solo lectura.

  • no modifica la base de datos
  • no depende del contenido del sitio instalado
  • lee las definiciones del catálogo core distribuido
  • verifica la presencia de los archivos del formulario de administración y del renderizador público distribuidos
  • informa de los metadatos de la familia de traducción y del soporte básico de contenedores

El comando es una ayuda de actualidad para detectar desviaciones del catálogo y de la presencia de archivos. No sustituye a las notas de contrato más completas de este documento.

Vista Administrativa De Solo Lectura

Abra los detalles en modo solo lectura en Admin -> System -> Block Types.

  • cada fila puede abrir un modal Block Type Contract
  • el modal es solo informativo y no envía actualizaciones
  • muestra los detalles de catálogo, formulario de administración, almacenamiento, traducción, medios o relaciones, hijos, renderizador y carencias a partir del código distribuido
  • no convierte la administración de Block Types en un editor de esquemas ni en un constructor de formularios
  • los tipos de bloque personalizados o en borrador también pueden abrir el modal, pero pueden mostrar No shipped contract is documented for this block type yet. cuando no hay ningún contrato core definido

Matriz de contratos de bloques publicados

Contenido

Header — header

Contenido y comportamiento
Campo Contrato
Slug header
Label Header
Categoría content
Campos traducibles title mediante filas de traducción de texto
Campos compartidos/de ajustes variant nivel de encabezado; settings.alignment; anclaje compartido en settings.anchor con reserva heredada en url
Campos de medios/relación TOC en la misma ranura lee bloques de encabezado anclados
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas Bloque de encabezado canónico; el contrato del anclaje compartido es claro, pero todavía conserva el comportamiento de reserva heredado con url.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/header.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/header.blade.php
Contrato de la raíz del renderizador Posee su propio elemento de encabezado raíz
Pruebas / cobertura SyncCoreBlockTypesCommandTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Plain Text — plain_text

Contenido y comportamiento
Campo Contrato
Slug plain_text
Label Plain Text
Categoría content
Campos traducibles content mediante filas de traducción de texto
Campos compartidos/de ajustes settings.alignment
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas Primitiva sencilla de texto corrido traducido.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/plain_text.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/plain_text.blade.php
Contrato de la raíz del renderizador Posee su raíz <p>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Rich Text — rich-text

Contenido y comportamiento
Campo Contrato
Slug rich-text
Label Rich Text
Categoría content
Campos traducibles content mediante filas de traducción de texto
Campos compartidos/de ajustes Ninguno
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas El almacenamiento seguro de HTML y la propiedad de la traducción están claros.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/rich-text.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/rich-text.blade.php
Contrato de la raíz del renderizador Posee su raíz .wb-rich-text cuando hay contenido
Pruebas / cobertura RichTextBlockTest, PublicRichContentTest, BlockTranslationIntegrityTest

Code — code

Contenido y comportamiento
Campo Contrato
Slug code
Label Code
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes settings.language
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas El bloque alinea el título traducido del código, la etiqueta y el cuerpo del fragmento con la arquitectura de traducción de texto existente, y ahora ignora en la salida pública los árboles de hijos históricos arbitrarios.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/code.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/code.blade.php
Contrato de la raíz del renderizador Posee su raíz <pre><code>
Pruebas / cobertura PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest
Campo Contrato
Slug button_link
Label Button Link
Categoría content
Campos traducibles la etiqueta title mediante filas de traducción de texto
Campos compartidos/de ajustes settings.url; settings.target; variant compartido
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La URL y el destino compartidos con la etiqueta traducida son coherentes.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/button_link.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/button_link.blade.php
Contrato de la raíz del renderizador Posee su raíz <a.wb-btn>
Pruebas / cobertura PublicEditorialBlocksRenderingTest

Card — card

Contenido y comportamiento
Campo Contrato
Slug card
Label Card
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes Compartido media_id; settings.layout_name; settings.background_position; settings.background_overlay; opcionales settings.url y settings.target
Campos de medios/relación Fondo opcional image vía directa media_id; Los bloques de regiones secundarias definen la estructura.
Comportamiento como hijo/contenedor Contenedor; los únicos hijos directos permitidos son card_header, card_body y card_footer
Estado actual clear
Carencias conocidas / notas La tarjeta es un shell componible. Su URL completa-card opcional es segura y semántica; Los editores no deben colocar controles interactivos anidados en Tarjetas vinculadas. Admite fondos de biblioteca multimedia y mantiene un respaldo heredado mínimo para filas más antiguas sin regiones de tarjeta.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/card.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/card.blade.php
Contrato de la raíz del renderizador Posee su raíz <article class="wb-card"> o una raíz semántica <a class="wb-card wb-no-decoration"> cuando está vinculado
Pruebas / cobertura CardClickableRenderTest, PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, MediaVisualBlockContractsTest

Card Header — card_header

Contenido y comportamiento
Campo Contrato
Slug card_header
Label Card Header
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name, settings.icon_slug, settings.icon_tone, settings.icon_size
Campos de medios/relación Solo la relación con el card padre
Comportamiento como hijo/contenedor Contenedor; solo puede colocarse bajo card; no se admiten hijos de región de tarjeta
Estado actual clear
Carencias conocidas / notas Bloque de región de tarjeta componible para header content. Los íconos opcionales utilizan slugs activos del catálogo content y se representan solo a través de clases seguras de íconos, tonos y tamaños. El encabezado de la tarjeta no tiene copia de la credencial y, por lo tanto, no muestra ningún tono de credencial.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/card_header.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/card_header.blade.php
Contrato de la raíz del renderizador Posee su raíz <div class="wb-card-header">
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Card Body — card_body

Contenido y comportamiento
Campo Contrato
Slug card_body
Label Card Body
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name
Campos de medios/relación Solo la relación con el card padre
Comportamiento como hijo/contenedor Contenedor; solo puede colocarse bajo card; no se admiten hijos de región de tarjeta
Estado actual clear
Carencias conocidas / notas Bloque de región Card componible para el contenido principal.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/card_body.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/card_body.blade.php
Contrato de la raíz del renderizador Posee su raíz <div class="wb-card-body">
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest
Campo Contrato
Slug card_footer
Label Card Footer
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name
Campos de medios/relación Solo la relación con el card padre
Comportamiento como hijo/contenedor Contenedor; solo puede colocarse bajo card; no se admiten hijos de región de tarjeta
Estado actual clear
Carencias conocidas / notas Bloque de región Card componible para el pie o el contenido de acción.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/card_footer.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/card_footer.blade.php
Contrato de la raíz del renderizador Posee su raíz <div class="wb-card-footer">
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Stat Card — stat-card

Contenido y comportamiento
Campo Contrato
Slug stat-card
Label Stat Card
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes El url canónico sigue siendo compartido en la fila del bloque
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas El bloque mantiene el campo de URL opcional existente y ahora renderiza un enlace público sencillo cuando está presente.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/stat-card.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/stat-card.blade.php
Contrato de la raíz del renderizador Posee su raíz de stat-card
Pruebas / cobertura StatCardTest, BlockTranslationIntegrityTest

Image — image

Contenido y comportamiento
Campo Contrato
Slug image
Label Image
Categoría content
Campos traducibles caption, alt text mediante filas de traducción de imagen
Campos compartidos/de ajustes media_id compartido; canónico compartido url; settings.viewer_enabled; settings.viewer_group
Campos de medios/relación Relación directa con medios de imagen mediante media_id
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas Caption y alt text son propiedad local, mientras que los medios, la URL del enlace opcional y la agrupación de espectadores permanecen compartidos. Los enlaces explícitos tienen prioridad; de lo contrario, los bloques de imágenes habilitados con el mismo grupo comparten el Visor de galería CMS existente sin cambiar la composición de la página.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/image.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/image.blade.php
Contrato de la raíz del renderizador Posee su raíz semántica <figure> cuando existen medios y puede registrarse con un Visor de galería agrupado.
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, BlockTranslationIntegrityTest, PublicOverlayRegistryTest
Campo Contrato
Slug gallery
Label Gallery
Categoría content
Campos traducibles Por cada elemento de la galería: alt_text, caption, overlay_title y overlay_text mediante block_gallery_item_translations
Campos compartidos/de ajustes Configuración de presentación compartida de gallery más visor opcional title y relaciones de elementos ordenados block_media gallery
Campos de medios/relación Filas block_media ordenadas con el rol gallery_item; el texto de los elementos de la galería propio de cada idioma vive en block_gallery_item_translations; pueden seguir existiendo valores heredados de title/subtitle guardados en el bloque, pero el renderizado público los ignora
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas La galería ahora es un bloque de colección de medios. El formulario de administración normal utiliza un editor de filas de lista compacto en lugar del antiguo grid de activos seleccionados. Su selector Add Gallery Items anidado permanece en el contrato de administrador compartido #wb-overlay-root, por lo que WebBlocks UI posee el ciclo de vida modal apilado y las listas de resultados largas y compactas mantienen la altura de fila natural mientras que el cuerpo modal sigue siendo el contenedor de desplazamiento. Las variantes públicas son distintas: grid mantiene celdas iguales, masonry usa CSS columns con altura natural image y collage mantiene la primera composición destacada. Los valores masonary guardados heredados aún se aceptan y normalizan según la ruta canónica masonry. La galería ya no posee encabezados de introducción ni resultados de párrafos; Los editores deben colocar content_header más plain_text o rich-text antes de la Galería cuando se necesita una copia de la sección. El visor opcional title etiqueta solo el modal de caja de luz header. Los elementos de reserva basados ​​en configuraciones heredadas siguen siendo legibles para content anteriores.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/gallery.blade.php más resources/views/admin/blocks/types/partials/gallery-items-editor.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/gallery.blade.php
Contrato de la raíz del renderizador Posee la raíz de su envoltorio de galería y registra un único modal de visor bajo #wb-overlay-root cuando el lightbox está activado
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, PageBuilderExperienceTest, SiteCloneServiceTest, SiteExportImportTest, SitePromotionTest, ReconstructionIntegrityTest, SharedSlotRevisionTest

Download — download

Contenido y comportamiento
Campo Contrato
Slug download
Label Download
Categoría content
Campos traducibles title, subtitle mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; variant compartido
Campos de medios/relación Relación directa con el archivo de descarga mediante media_id
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas El bloque mantiene compartidos el archivo de descarga seleccionado y la variante del botón, y traslada la etiqueta visible y el texto de ayuda a la vía de traducción de texto existente.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/download.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/download.blade.php
Contrato de la raíz del renderizador Posee la raíz de su envoltorio de CTA cuando existe el archivo de medios
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

File — file

Contenido y comportamiento
Campo Contrato
Slug file
Label File
Categoría content
Campos traducibles title, content mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; url canónico compartido
Campos de medios/relación Relación directa con medios mediante media_id, con reserva a una URL externa
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas El bloque productiza el renderizador de File ya publicado con un formulario de administración propio y deja explícita la propiedad compartida del origen del archivo entre la biblioteca de medios y la reserva de URL externa.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/file.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/file.blade.php
Contrato de la raíz del renderizador Posee su raíz de tarjeta de archivo
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Video — video

Contenido y comportamiento
Campo Contrato
Slug video
Label Video
Categoría content
Campos traducibles title, content mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; url canónico compartido
Campos de medios/relación Relación directa con medios mediante media_id, con reserva segura a una URL externa
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas El bloque añade el formulario de administración y la ruta de guardado que faltaban, de modo que el vídeo subido, las URL seguras de proveedores externos, el texto visible traducido y el comportamiento público de reserva describen ahora el mismo contrato.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/video.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/video.blade.php
Contrato de la raíz del renderizador Posee su raíz de tarjeta de vídeo
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Audio — audio

Contenido y comportamiento
Campo Contrato
Slug audio
Label Audio
Categoría content
Campos traducibles title, content mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; url canónico compartido
Campos de medios/relación Relación directa con medios mediante media_id, con reserva a una URL externa
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas Las escrituras de bloques incrementales, de plan de contenido y de administración aceptan medios audio con el tipo other y un tipo MIME audio/*; Se rechazan los medios incompatibles. La copia localizada y la representación segura sin controles vacíos siguen siendo nativas.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/audio.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/audio.blade.php
Contrato de la raíz del renderizador Posee su raíz de tarjeta de audio
Pruebas / cobertura MediaVisualBlockContractsTest, PublicMediaBlocksTest, AudioContentApiTest

Table — table

Contenido y comportamiento
Campo Contrato
Slug table
Label Table
Categoría content
Campos traducibles title, content mediante filas de traducción de texto
Campos compartidos/de ajustes variant compartido; el renderizador también comprueba la reserva settings.rows
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual mostly clear
Carencias conocidas / notas El bloque alinea la propiedad del título traducido y del texto de las filas con la arquitectura de traducción de texto existente y ahora ignora en la salida pública los árboles de hijos históricos arbitrarios; la vía heredada de reserva settings.rows sigue documentada.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/table.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/table.blade.php
Contrato de la raíz del renderizador Posee la raíz de su envoltorio de tabla
Pruebas / cobertura PublicRichContentTest, BlockTypePhaseThreeContractsTest, PageBuilderExperienceTest

Quote — quote

Contenido y comportamiento
Campo Contrato
Slug quote
Label Quote
Categoría content
Campos traducibles Ninguno en el registro actual
Campos compartidos/de ajustes title, subtitle, content y variant canónicos
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas El bloque deja de tratar Quote como un envoltorio de layout o contenedor en la salida pública, conservando a la vez las filas hijas guardadas en los árboles de bloques de administración.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/quote.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/quote.blade.php
Contrato de la raíz del renderizador Posee su raíz de cita
Pruebas / cobertura PublicRichContentTest, PageBuilderExperienceTest

Hero — hero

Contenido y comportamiento
Campo Contrato
Slug hero
Label Hero
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes Compartido media_id; compartido variant; settings.layout; settings.title_tag; settings.background_position; settings.background_overlay
Campos de medios/relación Fondo opcional image vía directa media_id; bloques secundarios button_link para acciones
Comportamiento como hijo/contenedor Contenedor; Hijos button_link (también se permite el modelo button heredado), sin recuento fijo
Estado actual transitional
Carencias conocidas / notas Hero es ahora un contrato principal publicado respaldado por fuentes. La copia de introducción es propiedad de la configuración regional, los botones de acción son elementos secundarios normales de button_link que poseen sus propias etiquetas y URL, y las imágenes de fondo de la biblioteca multimedia opcionales se representan a través de la primitiva de medios de fondo nativa WebBlocks UI. Las reservas heredadas de content siguen siendo legibles cuando los campos canónicos traducidos están vacíos.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/hero.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/hero.blade.php
Contrato de la raíz del renderizador Posee su raíz promocional <section>
Pruebas / cobertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Columns — columns

Contenido y comportamiento
Campo Contrato
Slug columns
Label Columns
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes variant compartido
Campos de medios/relación Bloques column_item hijos
Comportamiento como hijo/contenedor Contenedor; solo hijos column_item
Estado actual clear
Carencias conocidas / notas Columns es ahora un bloque de contenido estructurado publicado y de primera clase. El texto de introducción pertenece a cada idioma, mientras que la variante, el orden de los hijos y las URL de los hijos siguen siendo compartidos.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/columns.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/columns.blade.php
Contrato de la raíz del renderizador Posee su raíz estructurada-content <section>
Pruebas / cobertura PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Column Item — column_item

Contenido y comportamiento
Campo Contrato
Slug column_item
Label Column Item
Categoría content
Campos traducibles title, eyebrow como etiqueta de insignia, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes Canónico compartido url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone El artículo de columna
Campos de medios/relación Relación con el columns padre
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas utiliza la composición WebBlocks UI wb-icon-card enviada para las variantes sencillas con íconos y card. Las ediciones locales actualizan la copia del elemento sin sobrescribir las URL compartidas, el icono, el tono, el tamaño del icono o el tono de la insignia.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/column_item.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/column_item.blade.php
Contrato de la raíz del renderizador La raíz del elemento la determina el padre y varía según la variante de Columns
Pruebas / cobertura PublicColumnsRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

CTA — cta

Contenido y comportamiento
Campo Contrato
Slug cta
Label CTA
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; compartido variant; settings.background_position; settings.background_overlay
Campos de medios/relación Fondo opcional image vía directa media_id; bloques secundarios button_link para acciones
Comportamiento como hijo/contenedor Contenedor; Hijos button_link (también se permite el modelo button heredado), sin recuento fijo
Estado actual clear
Carencias conocidas / notas CTA es ahora un contrato promocional publicado con copia de propiedad local, botones de acción como elementos secundarios button_link normales, imágenes de fondo de biblioteca multimedia opcionales y un renderizador público propietario de la raíz.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/cta.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/cta.blade.php
Contrato de la raíz del renderizador Posee su raíz promocional <section>
Pruebas / cobertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Feature Grid — feature-grid

Contenido y comportamiento
Campo Contrato
Slug feature-grid
Label Feature Grid
Categoría content
Campos traducibles title, subtitle, content mediante filas de traducción de texto; niño feature-item title, etiqueta de identificación y content
Campos compartidos/de ajustes Estructura secundaria compartida, orden, enlaces, barras de íconos, tonos de íconos y tonos de insignias
Campos de medios/relación Bloques feature-item hijos, con soporte compatible con el heredado column_item
Comportamiento como hijo/contenedor Contenedor; los hijos permitidos son feature-item y column_item
Estado actual transitional
Carencias conocidas / notas Feature Grid es ahora un alias de compatibilidad publicado, porque tiene vías reales de administración y renderizado ya publicadas, pero sigue delegando de forma intencionada en el contrato de tarjetas de Columns.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/feature-grid.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/feature-grid.blade.php
Contrato de la raíz del renderizador Delega en la presentación de tarjetas de Columns y sigue usando el envoltorio público genérico
Pruebas / cobertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Feature Item — feature-item

Contenido y comportamiento
Campo Contrato
Slug feature-item
Label Feature Item
Categoría content
Campos traducibles title, eyebrow como etiqueta de insignia, content mediante filas de traducción de texto
Campos compartidos/de ajustes Canónico compartido url, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone
Campos de medios/relación Relación con el feature-grid padre
Comportamiento como hijo/contenedor No es un contenedor
Estado actual transitional
Carencias conocidas / notas Elemento de característica ahora es un contrato secundario de soporte publicado para Feature Grid y al mismo tiempo comparte las tarjetas de elementos de columna existentes y la representación del icono content.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/feature-item.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/feature-item.blade.php
Contrato de la raíz del renderizador Delega en la presentación de tarjetas de Column Item
Pruebas / cobertura PublicHeroBlockRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, PublicIconBadgeSupportTest

Diseño

Section — section

Contenido y comportamiento
Campo Contrato
Slug section
Label Section
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes media_id compartido; settings.layout_name; settings.spacing; settings.background_position; settings.background_overlay
Campos de medios/relación Imagen de fondo opcional mediante media_id directo; Los bloques secundarios siguen siendo contenido estructural.
Comportamiento como hijo/contenedor Contenedor; sin lista blanca explícita de hijos
Estado actual clear
Carencias conocidas / notas La fase 3 mantiene la sección layout orientada: la configuración compartida de layout permanece canónica, los medios de fondo opcionales utilizan el contrato de biblioteca multimedia estándar, poseen la raíz semántica <section> y no mueven la copia de cara al usuario a configuraciones arbitrarias.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/section.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/section.blade.php
Contrato de la raíz del renderizador Posee su raíz <section>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Container — container

Contenido y comportamiento
Campo Contrato
Slug container
Label Container
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.width; settings.flow
Campos de medios/relación Solo bloques hijos
Comportamiento como hijo/contenedor Contenedor; sin lista blanca explícita de hijos
Estado actual clear
Carencias conocidas / notas El contenedor es layout neutral cuando el flujo no está configurado o none; solo el Flow: Stack explícito agrega flujo secundario vertical.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/container.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/container.blade.php
Contrato de la raíz del renderizador Posee su raíz container <div>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Pila — stack

Contenido y comportamiento
Campo Contrato
Slug stack
Label Pila
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.spacing
Campos de medios/relación Solo bloques hijos
Comportamiento como hijo/contenedor Contenedor; sin lista blanca explícita de hijos
Estado actual clear
Carencias conocidas / notas Mapas de flujo secundario verticales solo para las clases wb-stack y wb-stack-* enviadas.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/stack.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/stack.blade.php
Contrato de la raíz del renderizador Posee su raíz stack <div>
Pruebas / cobertura StackSplitCatalogTest, StackSplitContractTest

Dividir — split

Contenido y comportamiento
Campo Contrato
Slug split
Label Dividir
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.gap; settings.items_alignment; settings.width
Campos de medios/relación Exactamente dos bloques secundarios directos
Comportamiento como hijo/contenedor Contenedor; no hay una lista blanca explícita de tipos de niños, pero el recuento directo de niños está limitado a dos
Estado actual clear
Carencias conocidas / notas El primer hijo directo crece y el segundo permanece en el tamaño del contenido. Se puede anidar una pila en cualquier lado. La interfaz de usuario fijada aún no tiene ningún modificador adaptable split-to-stack.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/split.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/split.blade.php
Contrato de la raíz del renderizador Posee su raíz split <div>
Pruebas / cobertura StackSplitCatalogTest, StackSplitContractTest

Cluster — cluster

Contenido y comportamiento
Campo Contrato
Slug cluster
Label Cluster
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.gap; settings.alignment; settings.items_alignment; settings.wrap; settings.width
Campos de medios/relación Solo bloques hijos
Comportamiento como hijo/contenedor Contenedor; sin lista blanca explícita de hijos
Estado actual clear
Carencias conocidas / notas Los ajustes de layout compartidos siguen siendo explícitos y propiedad del renderizador, incluida la vía de composición existente compatible con la navbar (full-width, between, center, nowrap) sin añadir lógica específica de navbar.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/cluster.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/cluster.blade.php
Contrato de la raíz del renderizador Posee su raíz cluster <div>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Grid — grid

Contenido y comportamiento
Campo Contrato
Slug grid
Label Grid
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.columns; settings.gap; settings.alternate_media_text_sections; settings.alternate_start
Campos de medios/relación Solo bloques hijos
Comportamiento como hijo/contenedor Contenedor; sin lista blanca explícita de hijos
Estado actual clear
Carencias conocidas / notas La configuración compartida de grid sigue siendo canónica. Las cuadrículas alternas de medios/texto mantienen el contenedor wb-grid-* enviado y reordenan los pares secundarios directos de medios/texto, incluidas las estructuras de sección deslizante más texto, según el contenido visual detectado. Las cuadrículas alternas hermanas bajo el mismo padre comparten una secuencia incluso cuando aparecen otros bloques entre ellos, y la primera cuadrícula alterna controla la dirección de inicio.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/grid.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/grid.blade.php
Contrato de la raíz del renderizador Posee su raíz grid <div>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest

Patrón

Content Header — content_header

Contenido y comportamiento
Campo Contrato
Slug content_header
Label Content Header
Categoría pattern
Campos traducibles title, eyebrow como etiqueta de insignia, subtitle, meta mediante filas de traducción de texto
Campos compartidos/de ajustes media_id compartido; settings.alignment, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone, settings.background_position, settings.background_overlay
Campos de medios/relación Imagen de fondo opcional mediante media_id directo; meta se almacena como lista estructurada content
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas es un bloque content-shell pattern. Mantiene el title, la etiqueta de la insignia, la introducción y la copia de meta de propiedad local, siempre representa su title como H1, ignora cualquier valor de nivel de título heredado guardado en el momento de la renderización y mantiene compartidos la alineación, el slug del ícono, el tono del ícono, el tamaño del ícono, el tono de la insignia y los medios de fondo opcionales.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/content_header.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/content_header.blade.php
Contrato de la raíz del renderizador Posee su raíz <header> El encabezado de contenido
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTypePhaseThreeContractsTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

Alert — alert

Contenido y comportamiento
Campo Contrato
Slug alert
Label Alert
Categoría pattern
Campos traducibles title, content mediante filas de traducción de texto
Campos compartidos/de ajustes settings.variant
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La variante compartida y el texto traducido encajan sin problemas.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/alert.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/alert.blade.php
Contrato de la raíz del renderizador Posee la raíz de su alerta
Pruebas / cobertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Campo Contrato
Slug link-list
Label Link List
Categoría navigation
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes Opcional settings.row_layout (indexado/apilado) y settings.list_frame (unido/tarjetas)
Campos de medios/relación Bloques link-list-item hijos
Comportamiento como hijo/contenedor Contenedor; solo hijos link-list-item
Estado actual clear
Carencias conocidas / notas La fase 3 renderiza ahora el texto de introducción traducido existente por encima de la lista de enlaces pública, sin cambiar el comportamiento de los elementos hijos.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/link-list.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/link-list.blade.php
Contrato de la raíz del renderizador Posee su raíz .wb-link-list cuando existen filas secundarias, agregando wb-link-list--stacked y wb-link-list--cards para los estilos seleccionados.
Pruebas / cobertura LinkListBlockTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest
Campo Contrato
Slug link-list-item
Label Link List Item
Categoría navigation
Campos traducibles Requerido title, opcional eyebrow como etiqueta de insignia, opcional subtitle, opcional content mediante filas de traducción de texto
Campos compartidos/de ajustes url compartido requerido, miniatura de media_id compartido opcional, settings.icon_slug, settings.icon_tone, settings.icon_size, settings.badge_tone opcionales
Campos de medios/relación Medios en miniatura opcionales a través de la relación de bloque directo media_id; relación padre link-list
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La URL compartida con la copia de fila traducida es coherente. Los íconos opcionales utilizan slugs activos del catálogo content y se representan solo a través de clases seguras de íconos, tonos y tamaños. Una miniatura de imagen opcional se representa como wb-link-list-thumb en la única columna principal de la fila y reemplaza al ícono cuando ambos están configurados.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/link-list-item.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/link-list-item.blade.php
Contrato de la raíz del renderizador Posee su raíz de enlace de fila, agrega wb-link-list-item--media cuando se representa una miniatura o un ícono y omite el elemento de descripción cuando content está en blanco
Pruebas / cobertura LinkListBlockTest, LinkListThumbnailTest, PageBuilderExperienceTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest, PublicIconBadgeSupportTest

TOC — toc

Contenido y comportamiento
Campo Contrato
Slug toc
Label TOC
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes Solo el title canónico
Campos de medios/relación Bloques header publicados en la misma ranura con anclajes válidos
Comportamiento como hijo/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite la colocación de nuevos hijos
Estado actual clear
Carencias conocidas / notas TOC es un tipo de bloque del sistema. Escanea solo la ranura en la que está colocado, no toda la página, recorrida en el orden de los documentos y ya no trata los bloques secundarios arbitrarios como TOC público content.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/toc.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/toc.blade.php
Contrato de la raíz del renderizador Posee su envoltorio de TOC generado cuando existen encabezados
Pruebas / cobertura PublicRichContentTest, PageBuilderExperienceTest, TocHeadingScanTest

Breadcrumb — breadcrumb

Contenido y comportamiento
Campo Contrato
Slug breadcrumb
Label Breadcrumb
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.home_label; settings.include_current compartidos
Campos de medios/relación Contexto de breadcrumb de la página, el sitio y el idioma (locale) actuales
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La fase 3 conserva los ajustes de breadcrumb expuestos a través de la vía compartida BlockRequest, de modo que el comportamiento del formulario coincide ahora con la persistencia y el renderizado.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/breadcrumb.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/breadcrumb.blade.php
Contrato de la raíz del renderizador Posee su raíz <nav.wb-breadcrumb>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest

Header Actions — header-actions

Contenido y comportamiento
Campo Contrato
Slug header-actions
Label Header Actions
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.show_mode_toggle compartido; settings.show_accent_toggle; settings.show_search; settings.show_language_switcher
Campos de medios/relación Ruta de búsqueda más hooks de interfaz del lado del cliente
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas Bloque de utilidad del sistema; por diseño no posee traducciones.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/header-actions.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/header-actions.blade.php
Contrato de la raíz del renderizador Posee únicamente su cluster de acciones interno
Pruebas / cobertura PublicEditorialBlocksRenderingTest

Navbar — sticky-navbar

Contenido y comportamiento
Campo Contrato
Slug sticky-navbar
Label Navbar
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.sticky_mode
Campos de medios/relación Bloques hijos anidados de la navbar
Comportamiento como hijo/contenedor Contenedor; los hijos permitidos son container, cluster, header, plain_text, rich-text, button_link, navbar-brand, navbar-navigation, header-actions, search-form
Estado actual clear
Carencias conocidas / notas La fase 3 alinea el slug persistido sticky-navbar con Block::ownsPublicRoot(), de modo que Navbar ya no recibe un envoltorio de bloque público genérico adicional.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sticky-navbar.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sticky-navbar.blade.php
Contrato de la raíz del renderizador El renderizador público posee la raíz externa <nav.wb-navbar>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicLayoutStructureTest, BlockTypePhaseThreeContractsTest

Navbar Brand — navbar-brand

Contenido y comportamiento
Campo Contrato
Slug navbar-brand
Label Navbar Brand
Categoría navigation
Campos traducibles title, subtitle mediante filas de traducción de texto
Campos compartidos/de ajustes settings.url; settings.target; settings.aria_label compartidos
Campos de medios/relación Medio de logotipo compartido mediante media_id; reserva a la URL de inicio del sitio
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La fase 3 alinea el comportamiento de guardado de la administración con el contrato del renderizador distribuido: la URL guardada explícita tiene prioridad; en su defecto se utiliza la ruta de inicio del sitio actual cuando está disponible y, por último, / como reserva segura final.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/navbar-brand.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/navbar-brand.blade.php
Contrato de la raíz del renderizador Posee únicamente el enlace de marca interno
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Navbar Navigation — navbar-navigation

Contenido y comportamiento
Campo Contrato
Slug navbar-navigation
Label Navbar Navigation
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes Canonical title como etiqueta ARIA compartida; settings.menu_key; settings.active_indicator; settings.active_matching
Campos de medios/relación Árbol de menú NavigationItem compartido
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas El enlace de menú compartido, la etiqueta ARIA, el indicador activo y la coincidencia activa son comportamientos actuales propiedad del producto.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/navbar-navigation.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/navbar-navigation.blade.php
Contrato de la raíz del renderizador Posee únicamente el contenedor interno navigation y asigna la configuración del indicador activo a las clases activas de la barra de navegación WebBlocks UI
Pruebas / cobertura PublicEditorialBlocksRenderingTest

Sidebar Brand — sidebar-brand

Contenido y comportamiento
Campo Contrato
Slug sidebar-brand
Label Sidebar Brand
Categoría navigation
Campos traducibles title, subtitle mediante filas de traducción de texto
Campos compartidos/de ajustes settings.url; settings.target; settings.aria_label compartidos
Campos de medios/relación Medio de logotipo compartido mediante media_id; reserva a la URL de inicio del sitio
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La fase 3 otorga a Sidebar Brand el mismo orden de reserva del nombre accesible cuando solo hay logotipo que Navbar Brand, y el mismo contrato conservador de reserva de la URL compartida.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sidebar-brand.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sidebar-brand.blade.php
Contrato de la raíz del renderizador Posee únicamente el enlace de marca interno
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Sidebar Navigation — sidebar-navigation

Contenido y comportamiento
Campo Contrato
Slug sidebar-navigation
Label Sidebar Navigation
Categoría navigation
Campos traducibles title mediante filas de traducción de texto
Campos compartidos/de ajustes settings.menu_key; settings.layout_name; settings.show_icons; settings.active_matching compartidos
Campos de medios/relación El árbol NavigationItem del CMS o bien bloques hijos manuales
Comportamiento como hijo/contenedor Contenedor; solo hijos sidebar-nav-item y sidebar-nav-group
Estado actual clear
Carencias conocidas / notas Tanto los ajustes compartidos del modo de menú como el modo de hijos manuales son explícitos.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sidebar-navigation.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sidebar-navigation.blade.php
Contrato de la raíz del renderizador Posee su raíz <nav.wb-sidebar-nav>
Pruebas / cobertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Item — sidebar-nav-item

Contenido y comportamiento
Campo Contrato
Slug sidebar-nav-item
Label Sidebar Nav Item
Categoría navigation
Campos traducibles title mediante filas de traducción de texto
Campos compartidos/de ajustes settings.url; settings.target; settings.icon; settings.active_mode; settings.manual_active compartidos
Campos de medios/relación Slug compartido del catálogo de iconos; relación con la barra lateral padre
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas El comportamiento de enlace compartido y la etiqueta traducida encajan bien.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sidebar-nav-item.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sidebar-nav-item.blade.php
Contrato de la raíz del renderizador Posee la raíz de su enlace de barra lateral
Pruebas / cobertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Sidebar Nav Group — sidebar-nav-group

Contenido y comportamiento
Campo Contrato
Slug sidebar-nav-group
Label Sidebar Nav Group
Categoría navigation
Campos traducibles title mediante filas de traducción de texto
Campos compartidos/de ajustes settings.icon; settings.initially_open; settings.layout_name compartidos
Campos de medios/relación Bloques sidebar-nav-item hijos; slug del catálogo de iconos
Comportamiento como hijo/contenedor Contenedor; solo hijos sidebar-nav-item
Estado actual clear
Carencias conocidas / notas La fase 3 mantiene el contrato del envoltorio nav-group distribuido de WebBlocks UI, mientras que los enlaces hijos manuales anidados reutilizan ahora la misma semántica de elemento de barra lateral para href, target, icono y salida del estado activo.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sidebar-nav-group.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sidebar-nav-group.blade.php
Contrato de la raíz del renderizador Posee su raíz .wb-nav-group
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PageBuilderExperienceTest, BlockTranslationIntegrityTest, BlockTypePhaseThreeContractsTest

Search Form — search-form

Contenido y comportamiento
Campo Contrato
Slug search-form
Label Search Form
Categoría navigation
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes variant; settings.show_button compartidos
Campos de medios/relación Contexto de la ruta de búsqueda, del sitio y del idioma (locale)
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas Los ajustes compartidos de visualización del botón y las etiquetas traducidas son explícitos.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/search-form.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/search-form.blade.php
Contrato de la raíz del renderizador Posee su raíz <form role="search">
Pruebas / cobertura SearchFormTest, PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest
Campo Contrato
Slug sidebar-footer
Label Sidebar Footer
Categoría navigation
Campos traducibles title, subtitle, content mediante filas de traducción de texto
Campos compartidos/de ajustes settings.variant compartido
Campos de medios/relación Ninguno
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas La variante compartida con texto traducido es sencilla.
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/sidebar-footer.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/sidebar-footer.blade.php
Contrato de la raíz del renderizador Posee la raíz de su bloque de pie interno
Pruebas / cobertura PublicEditorialBlocksRenderingTest, BlockTranslationIntegrityTest

Formularios

Contact Form — contact_form

Contenido y comportamiento
Campo Contrato
Slug contact_form
Label Contact Form
Categoría form
Campos traducibles title, content, submit_label, success_message mediante filas de traducción del formulario de contacto
Campos compartidos/de ajustes settings.recipient_email; settings.send_email_notification; settings.store_submissions compartidos
Campos de medios/relación Los envíos de contact_messages se relacionan de vuelta con el bloque y la página
Comportamiento como hijo/contenedor No es un contenedor
Estado actual clear
Carencias conocidas / notas El procesador emite un campo de verificación antispam generado oculto propiedad del CMS que no es una entrada normal del visitante y no debe crearse manualmente. Los envíos de campos de verificación completados devuelven un éxito genérico sin almacenamiento ni notificación. Los mensajes legítimos se almacenan antes de la notificación, el spam calificado se retiene para revisión del administrador, el respaldo del destinatario se bloquea, sitio, CONTACT_RECIPIENT_EMAIL, luego MAIL_FROM_ADDRESS, y las páginas de contacto no deben usar Trusted HTML/raw form/mailto: como sustitutos. Los planes Internal Content API content conservan submit_label y success_message, y la representación local en alemán utiliza etiquetas form predeterminadas en alemán cuando no hay copia personalizada.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/contact_form.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/contact_form.blade.php
Contrato de la raíz del renderizador Posee su raíz section.wb-card y emite un formulario nativo protegido por CSRF que envía a /contact-messages
Pruebas / cobertura ContactFormModuleTest, InternalContentApiTest, ContactMailDiagnoseCommandTest

Avanzado

HTML (Trusted) — html

Contenido y comportamiento
Campo Contrato
Slug html
Etiqueta HTML (Trusted)
Categoría advanced
Campos traducibles Ninguno
Campos compartidos/de configuración El content HTML de confianza canónico
Campos de medios/relación Los registros públicos de overlay y de final de body pueden recibir fragmentos extraídos
Comportamiento de hijos/contenedor No es un contenedor; se conservan las filas hijas históricas, pero no se admite colocar nuevos hijos
Estado actual mostly clear
Carencias conocidas / notas La fase 3 deja de tratar Trusted HTML como un envoltorio contenedor de hijos público. El marcado de confianza todavía puede afectar a la salida compartida de overlay o de final de body más allá de la raíz visible.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/html.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/html.blade.php
Contrato de raíz del renderizador Envuelve el marcado de confianza en un <div> y también puede emitir contenido de superposición o de fin del cuerpo fuera de esa raíz.
Pruebas / cobertura PublicEditorialBlocksRenderingTest, PublicRichContentTest, PageBuilderExperienceTest

Contratos adicionales publicados

Control deslizante — slider

Contenido y comportamiento
Campo Contrato
Slug slider
Label Control deslizante
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.layout_name; settings.height; settings.min_height; settings.aspect_ratio; settings.transition; settings.interval_ms; settings.autoplay; settings.pause_on_hover; settings.show_arrows; settings.show_dots; settings.loop; settings.swipe; settings.keyboard; settings.overlay; settings.content_position; settings.content_width; settings.text_color; settings.background_fit
Campos de medios/relación Los bloques secundarios slide son la relación principal. Slider en sí no admite la propiedad directa de los medios.
Comportamiento como hijo/contenedor Compatible con contenedores. El tipo de niño permitido es slide.
Estado actual clear
Carencias conocidas / notas Ninguno
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/slider.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/slider.blade.php
Contrato de la raíz del renderizador Posee su raíz pública <section data-wb-slider>, pista interna, controles y punto navigation.
Pruebas / cobertura Prueba de posición de contenido del control deslizante

Diapositiva — slide

Contenido y comportamiento
Campo Contrato
Slug slide
Label Diapositiva
Categoría layout
Campos traducibles Ninguno
Campos compartidos/de ajustes media_id; settings.layout_name; settings.aria_label; settings.background_position; settings.background_overlay; settings.content_position; settings.content_width; settings.text_color; settings.background_fit; mobile_media_id
Campos de medios/relación El medio de fondo opcional slide se posee a través de la relación de bloque directo media_id. Los bloques secundarios son la relación visible content.; mobile_media_id asigna un registro de la biblioteca multimedia de imágenes a través de block_media.mobile_image. Envíe nulo a clear la anulación.
Comportamiento como hijo/contenedor Compatible con contenedores. Los tipos de niños no están restringidos explícitamente en el asistente actual.
Estado actual clear
Carencias conocidas / notas Ninguno
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/slide.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/slide.blade.php
Contrato de la raíz del renderizador Posee su raíz pública <article class="wb-slide"> y delega copia/UI visible a bloques secundarios anidados. En anchos de ventana gráfica de hasta 768 px, una imagen móvil pública anula el objeto visual predeterminado a través de la imagen/fuente o la imagen de fondo; las anulaciones ausentes o no disponibles utilizan la imagen predeterminada.
Pruebas / cobertura Prueba de posición de contenido del control deslizante

Navegación automática — navigation-auto

Contenido y comportamiento
Campo Contrato
Slug navigation-auto
Label Navegación automática
Categoría navigation
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.menu_key
Campos de medios/relación El sitio actual y el contexto local resuelven el árbol de menús renderizado en el momento del renderizado.
Comportamiento como hijo/contenedor No es un contenedor. Los elementos del menú provienen de registros de navegación, no de bloques secundarios.
Estado actual clear
Carencias conocidas / notas Ninguno
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/navigation-auto.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/navigation-auto.blade.php
Contrato de la raíz del renderizador Posee su raíz pública <nav class="wb-stack wb-gap-2" data-wb-menu-key="..."> y representa el árbol de menú visible como listas <ul> anidadas de anclajes wb-link.
Pruebas / cobertura PruebaCtaApi Administrada Clasificación

título — rating

Contenido y comportamiento
Campo Contrato
Slug rating
Label título
Categoría system
Campos traducibles ; subtítulo
Campos compartidos/de ajustes settings.scale; settings.allow_change; settings.show_summary; settings.data_scope
Campos de medios/relación La página actual, el sitio, el bloque, el hash de visitante y la URL de origen se registran en las filas rating.
Comportamiento como hijo/contenedor No es un contenedor en el contrato actual.
Estado actual clear
Carencias conocidas / notas Ninguno
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/rating.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/rating.blade.php
Contrato de la raíz del renderizador Posee su raíz pública section.wb-card.wb-rating, genera una copia de título/subtítulo localizado opcional, un promedio wb-rating-stars de solo lectura y un formulario de estrella wb-rating-input sin JS que publica cada envío en /content-ratings.
Pruebas / cobertura Prueba de gestión de compromiso

Comentarios — comments

Contenido y comportamiento
Campo Contrato
Slug comments
Label Comentarios
Categoría system
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.form_enabled; settings.show_approved; settings.show_author_name; settings.sort_order; settings.data_scope
Campos de medios/relación La página actual, el sitio, el bloque, el hash de visitante y la URL de origen se registran en las filas de comentarios.
Comportamiento como hijo/contenedor No es un contenedor en el contrato actual.
Estado actual clear
Carencias conocidas / notas Ninguno
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/comments.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/comments.blade.php
Contrato de la raíz del renderizador Posee su raíz pública section.wb-card, genera comments aprobado y emite un formulario de comentarios nativo protegido por CSRF que se publica en /comment-entries.
Pruebas / cobertura Prueba de gestión de compromiso

Lista de páginas — page-list

Contenido y comportamiento
Campo Contrato
Slug page-list
Label Lista de páginas
Categoría content
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.scope; settings.page_type; settings.path_prefix; settings.sort; settings.limit; settings.layout; settings.columns; settings.show_thumbnail; settings.show_description; settings.exclude_current; settings.clickable_card
Campos de medios/relación No hay medios de bloqueo. Las miniaturas se resuelven a partir de cada traducción de página enumerada en el momento del procesamiento.
Comportamiento como hijo/contenedor No es un contenedor. Las filas provienen de una consulta de página, no de bloques secundarios.
Estado actual clear
Carencias conocidas / notas Las descripciones de tarjetas y las miniaturas reutilizan la descripción de SEO y la imagen de Open Graph, que se crean para búsqueda y redes sociales en lugar de para una tarjeta. Se planean configuraciones de páginas dedicadas list_excerpt y list_image. Aplicación
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/page-list.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/page-list.blade.php
Contrato de la raíz del renderizador Posee su raíz pública: un wb-grid de artículos wb-card o anclajes de tarjeta completa en las tarjetas layout, o un wb-link-list de anclajes wb-link-list-item en los enlaces layout. No representa nada cuando la consulta no devuelve páginas.
Pruebas / cobertura ListaPáginaBloqueRenderTest

— application

Contenido y comportamiento
Campo Contrato
Slug application
Label
Categoría content
Campos traducibles Ninguno
Campos compartidos/de ajustes settings.application_handle; settings.application_settings; settings.width; settings.loading; settings.aspect_ratio; settings.min_height; settings.show_loading_state; settings.show_failure_state
Campos de medios/relación No hay relación directa con CMS Media. Los activos ejecutables application son archivos propiedad del registro, no medios editoriales.
Comportamiento como hijo/contenedor No es un contenedor. El tiempo de ejecución application posee su DOM interno.
Estado actual clear
Carencias conocidas / notas El código de la aplicación y la gestión del registro permanecen separados de la ubicación editorial; el bloque selecciona una definición habilitada y valida su configuración.
Fuentes y pruebas
Fuente Contrato
Origen del formulario de administración resources/views/admin/blocks/types/application.blade.php
Origen del renderizador público resources/views/pages/partials/blocks/application.blade.php
Contrato de la raíz del renderizador Posee una raíz .wb-application. Las definiciones en línea reciben un elemento de montaje seguro; Las definiciones de iframe reciben un contenedor de iframe propiedad del CMS. Las definiciones faltantes o no válidas nunca interrumpen la página circundante.
Pruebas / cobertura Prueba de aplicaciones integradas

Visión general de la validación y la persistencia

Los tipos de bloques publicados no tienen cada uno su propia clase de solicitud dedicada en la actualidad.

  • WebBlocks\Cms\Http\Requests\Admin\BlockRequest es la ruta de solicitud de edición compartida
  • Las ramas específicas de slug dentro de esa solicitud normalizan los campos en el almacenamiento canónico actual
  • WebBlocks\Cms\Support\Blocks\BlockPayloadWriter persiste el carga útil de bloque normalizada
  • WebBlocks\Cms\Support\Blocks\BlockTranslationWriter mueve campos de propiedad local a filas de traducción para familias registradas
  • WebBlocks\Cms\Support\Blocks\BlockTranslationResolver resuelve valores traducidos o alternativos en una instancia de bloque renderizable

Comportamiento De Compatibilidad

Los ajustes heredados de Gallery y Table pueden seguir siendo legibles cuando falten traducciones canónicas o medios ordenados. Los valores alternativos históricos no son el formato preferido de creación. Use la matriz actual.

Las filas de borrador y los identificadores de compatibilidad exclusivos del renderer no son contratos publicados. El descubrimiento y el diálogo pueden indicar que no existe contrato distribuido.

Adiciones de medios y editores hasta 1.94.2

Desde CMS 1.91.0, los elementos de diapositiva, imagen, héroe, sección, tarjeta, CTA, encabezado de contenido y lista de enlaces admiten mobile_media_id opcional en planes y actualizaciones de bloques existentes. La relación utiliza block_media.role = mobile_image, se comparte entre configuraciones regionales y reemplaza la imagen predeterminada de hasta 768 px con una alternativa cuando no está disponible. No introduce subtítulos ni texto alternativo móvil separados. Ver Variantes de imágenes multimedia.

Desde 1.91.1, Slide y Slider ofrecen nueve posiciones de contenido: centro, centro izquierda, centro derecha, arriba a la izquierda, arriba al centro, arriba a la derecha, abajo a la izquierda, abajo al centro y abajo a la derecha. Estos valores los comparten el administrador, la API y el renderizador.

Desde 1.93.0, el editor de texto enriquecido tiene deshacer/rehacer por campo, restauración de selección, modo de enfoque y recuento de palabras. Los títulos pegados y el texto de las celdas de la tabla permanecen como párrafos de cuerpo seguros; Los encabezados semánticos, las tablas y los medios pertenecen a bloques dedicados. Esto no agrega una nueva variante de texto enriquecido almacenado ni permite el marcado ejecutable. Ver Texto enriquecido.