libreria-astro-lefebvre
Version:
Librería de componentes Astro, React y Vue para Lefebvre
78 lines (76 loc) • 5.79 kB
text/typescript
import type { ComponentMetadata } from '../interfaces/types';
export const metadata: ComponentMetadata = {
component_name: 'Contenido_2026_Dubai',
category: 'Contenido con listas',
name: 'Bloque intro con título, descripción, CTA y carrusel mixto vídeo/imagen 2026',
description: 'Bloque compuesto de cabecera (título h2, descripción HTML, botón CTA opcional) seguida de un carrusel horizontal que mezcla ítems de vídeo (iframe con thumbnail antes de reproducir) e ítems de imagen en el mismo listado. Los ítems de vídeo incluyen testimonio + autor + cargo y structured data SEO (VideoObject). Los ítems de imagen exponen alt y descripción para el structured data',
framework: 'Astro',
priority: 1,
tags: ['contenido', 'carrusel', 'video', 'imagen', 'cta', 'boton', 'seo'],
fields: [
{
name: 'title',
type: 'text',
help: 'Título principal (h2) que aparece sobre el carrusel. Se renderiza siempre; si se deja vacío, aparece el h2 vacío. No admite HTML',
label: 'Texto del título',
mandatory: false,
example_value: 'Experiencias reales con GenIA-L'
},
{
name: 'description',
type: 'text',
help: 'Descripción que aparece debajo del título. Admite HTML. Se renderiza siempre; si se deja vacía, aparece el párrafo vacío',
label: 'Texto de la descripción',
mandatory: false,
example_value: 'Descubre cómo profesionales del Derecho están transformando su día a día con inteligencia artificial'
},
{
name: 'buttonText',
type: 'text',
help: 'Texto del botón que aparece debajo del carrusel. Solo se muestra si "Mostrar botón" está activado',
label: 'Label del botón',
mandatory: false,
example_value: 'Ver todos los casos de uso'
},
{
name: 'buttonUrl',
type: 'text',
help: 'URL de destino del botón. ATENCIÓN: si "Mostrar botón" está activado pero esta URL está vacía, el botón se muestra igualmente con un href inválido. Rellena siempre esta URL si activas el botón',
label: 'Enlace del botón',
mandatory: false,
example_value: '/genia-l/casos-reales'
},
{
name: 'showBtn',
type: 'boolean',
help: 'Activa o desactiva la visualización del botón debajo del carrusel. ATENCIÓN: no valida que "Enlace del botón" tenga valor — si activas el botón con URL vacía, el enlace será inválido',
label: 'Mostrar botón',
mandatory: false,
options: ['false', 'true'],
options_labels: ['Falso', 'Verdadero'],
example_value: true
},
{
name: 'items',
type: 'list',
help: 'Listado de ítems del carrusel. Cada ítem puede ser un VÍDEO (si se rellena "Url iframe") o una IMAGEN (si se deja el iframe vacío y se rellena "Imagen"). Los dos tipos pueden coexistir en el mismo carrusel. Algunos subcampos aplican solo a un tipo u otro',
label: 'Listado de items del carrusel',
mandatory: false,
items: {
type: 'object',
fields: [
{ name: 'iframeSrc', type: 'text', help: 'URL del iframe del vídeo (p. ej. Vimeo/YouTube). Si tiene valor, el ítem se renderiza como VÍDEO (con thumbnail "Url imagen" hasta que se reproduzca). Si se deja vacío, el ítem se renderiza como IMAGEN', label: 'Url iframe', example_value: 'https://player.vimeo.com/video/123456' },
{ name: 'imageSrc', type: 'text', help: 'Thumbnail/preview del vídeo que se muestra antes de reproducirlo. Solo aplica a ítems tipo VÍDEO (cuando "Url iframe" tiene valor)', label: 'Url imagen (thumbnail del vídeo)', example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-16-9.png' },
{ name: 'thumbnailUrl', type: 'text', help: 'URL de la miniatura usada en el structured data SEO del vídeo. Solo aplica a ítems tipo VÍDEO', label: 'Url miniatura (SEO)', example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-16-9.png' },
{ name: 'image', type: 'image', help: 'Imagen del ítem. Solo aplica cuando el ítem es tipo IMAGEN (es decir, cuando "Url iframe" está vacío)', label: 'Imagen', example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-16-9.png' },
{ name: 'altImage', type: 'text', help: 'Texto alternativo de la imagen para accesibilidad. Solo aplica a ítems tipo IMAGEN', label: 'Alt Imagen', example_value: 'Captura del dashboard de GenIA-L mostrando el editor de contratos' },
{ name: 'descriptionImage', type: 'textArea', help: 'Descripción de la imagen para el structured data SEO. Solo aplica a ítems tipo IMAGEN', label: 'Descripción de imagen', example_value: 'Captura del dashboard de GenIA-L mostrando el editor de contratos' },
{ name: 'description', type: 'textArea', help: 'Descripción del ítem (testimonio o comentario). Se muestra junto al autor en los ítems tipo VÍDEO', label: 'Descripción', example_value: 'GenIA-L nos ha reducido el tiempo de redacción de contratos en un 70%' },
{ name: 'uploadDate', type: 'text', help: 'Fecha de publicación del vídeo (formato ISO YYYY-MM-DD). Se usa en el structured data SEO. Solo aplica a ítems tipo VÍDEO', label: 'Fecha de publicación', example_value: '2026-01-15' },
{ name: 'author', type: 'text', help: 'Nombre del autor del testimonio. Se muestra junto a la descripción en los ítems tipo VÍDEO', label: 'Nombre del autor', example_value: 'María García López' },
{ name: 'positionCompany', type: 'text', help: 'Cargo del autor en su empresa. Aparece debajo del nombre. Solo aplica a ítems tipo VÍDEO', label: 'Cargo del autor', example_value: 'Socia directora de Derecho Fiscal en Despacho García' }
]
}
}
]
};