libreria-astro-lefebvre
Version:
Librería de componentes Astro, React y Vue para Lefebvre
150 lines (148 loc) • 6.47 kB
text/typescript
import type { ComponentMetadata } from '../interfaces/types';
export const metadata: ComponentMetadata = {
component_name: 'Formulario_2025_Teruel',
category: 'Formulario',
name: 'Tarjeta horizontal con imagen, dos botones y popup con formulario LF2 2025',
description: 'Tarjeta horizontal con imagen + texto + dos botones (uno que navega a un enlace externo, otro que abre un popup). El popup contiene título h2, imagen lateral, descripción HTML y formulario LF2 inyectado dinámicamente. Incluye toggle de borde inferior separador (útil cuando se usan varias tarjetas seguidas — p. ej. dentro de Contenido_2026_Michigan)',
framework: 'Astro',
priority: 1,
tags: ['contenido', 'card', 'imagen', 'popup', 'formulario', 'lf2', 'modal', 'cta'],
fields: [
{
name: 'orientation',
type: 'select',
help: 'Posición de la imagen respecto al texto. "Izquierda" coloca la imagen a la izquierda y el texto a la derecha (flex-row). "Derecha" invierte el orden (flex-row-reverse)',
label: 'Orientación del contenido',
options: ['left', 'right'],
options_labels: ['Izquierda', 'Derecha'],
mandatory: false,
example_value: 'left',
},
{
name: 'bottomBorder',
type: 'boolean',
help: 'Activa/desactiva el borde inferior separador. Útil cuando se usan varias tarjetas seguidas (p. ej. dentro de Contenido_2026_Michigan) para poner borde en todas excepto la última',
label: 'Mostrar borde inferior',
mandatory: false,
options: ['false', 'true'],
options_labels: ['Falso', 'Verdadero'],
example_value: true
},
{
name: 'title',
type: 'text',
help: 'Título de la tarjeta (h2). Se renderiza siempre; si se deja vacío aparece el h2 vacío. No admite HTML. También se usa como alt de la imagen principal',
label: 'Texto del título',
mandatory: false,
example_value: 'Automatización de contratos con IA'
},
{
name: 'description',
type: 'text',
help: 'Descripción de la tarjeta. Admite HTML (útil para listas, negritas, etc.). Se renderiza siempre',
label: 'Texto de la descripción',
mandatory: false,
example_value: 'Redacta borradores de contratos en segundos a partir de plantillas personalizables, con revisión automática de cláusulas'
},
{
name: 'imageSrc',
type: 'image',
help: 'URL de la imagen principal de la tarjeta (lateral al texto)',
label: 'Src de la imagen',
mandatory: false,
example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-16-9.png'
},
{
name: 'showBtn',
type: 'boolean',
help: 'Activa/desactiva el botón primario (enlace externo). Recuerda: también requiere "Url del enlace" relleno; si está vacío el botón no aparece',
label: 'Mostrar botón',
mandatory: false,
options: ['false', 'true'],
options_labels: ['Falso', 'Verdadero'],
example_value: false
},
{
name: 'txtBtn',
type: 'text',
help: 'Texto del botón primario (enlace). Solo se muestra si "Mostrar botón" está activado Y "Url del enlace" tiene valor',
label: 'Texto del botón',
mandatory: false,
example_value: 'Saber más'
},
{
name: 'linkBtn',
type: 'text',
help: 'URL de destino del botón primario (se abre en la misma pestaña). Si se deja vacío, el botón NO aparece aunque "Mostrar botón" esté activado',
label: 'Url del enlace',
mandatory: false,
example_value: '/genia-l/automatizacion-contratos'
},
{
name: 'showBtnModal',
type: 'boolean',
help: 'Activa/desactiva el botón que abre el popup con el formulario LF2. Si está activado, al hacer click se abre un modal con título, imagen, descripción y formulario LF2 inyectado dinámicamente',
label: 'Mostrar botón modal',
mandatory: false,
options: ['false', 'true'],
options_labels: ['Falso', 'Verdadero'],
example_value: true
},
{
name: 'txtBtnModal',
type: 'text',
help: 'Texto del botón que abre el popup. Solo se muestra si "Mostrar botón modal" está activado',
label: 'Texto del botón modal',
mandatory: false,
example_value: 'Descargar guía en PDF'
},
{
name: 'titleModal',
type: 'text',
help: 'Título (h2) que aparece dentro del popup, junto al formulario LF2',
label: 'Texto del título modal',
mandatory: false,
example_value: 'Descarga la guía de automatización jurídica'
},
{
name: 'subtitleModal',
type: 'text',
help: 'Subtítulo del modal. AVISO: este campo está DECLARADO en el carbin pero en el .astro está comentado (L76), por lo que NO se renderiza actualmente. Déjalo vacío o usa "Descripción del modal"',
label: 'Texto del subtítulo modal (no se usa)',
mandatory: false,
example_value: ''
},
{
name: 'descriptionModal',
type: 'text',
help: 'Descripción que aparece dentro del popup, antes del formulario LF2. Admite HTML',
label: 'Texto de la descripción modal',
mandatory: false,
example_value: 'Déjanos tus datos y te enviaremos el whitepaper de 40 páginas con los casos de uso más relevantes'
},
{
name: 'imageModal',
type: 'image',
help: 'Imagen que aparece en la columna izquierda del popup (la portada de la guía, por ejemplo)',
label: 'Src de la imagen modal',
mandatory: false,
example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-16-9.png'
},
{
name: 'altModal',
type: 'text',
help: 'Texto alternativo de la imagen del popup para accesibilidad',
label: 'Alt de la imagen modal',
mandatory: false,
example_value: 'Portada de la guía de automatización jurídica'
},
{
name: 'lf2FormTitle',
type: 'text',
help: 'Nombre EXACTO del formulario tal como está dado de alta en LF2. Se pasa a apiManager.pintarFormularioAutogestionado() para cargar el formulario correcto dentro del popup. Si es erróneo, el formulario no se renderizará',
label: 'Nombre del formulario en LF2',
mandatory: false,
example_value: ''
}
]
};