UNPKG

libreria-astro-lefebvre

Version:

Librería de componentes Astro, React y Vue para Lefebvre

112 lines (110 loc) 4.45 kB
import type { ComponentMetadata } from '../interfaces/types'; export const metadata: ComponentMetadata = { component_name: 'Mapa_2026_Girona', category: 'Contenido de Imagen', name: 'Mapa de contacto Google 2026', description: 'Sección de contacto con un mapa de Google Maps embebido (no requiere API key) junto a un panel con los datos de contacto: dirección, teléfono, email y horario. El mapa se construye automáticamente a partir de la dirección, o se puede pegar directamente el enlace de "Insertar un mapa" de Google. Incluye botón "Cómo llegar" y structured data schema.org (LocalBusiness + PostalAddress)', framework: 'Astro', priority: 1, tags: ['mapa', 'google maps', 'contacto', 'ubicacion', 'direccion'], fields: [ { name: 'title', type: 'text', help: 'Título de la sección (opcional). Se muestra centrado sobre el mapa', label: 'Título', mandatory: false, example_value: 'Dónde encontrarnos' }, { name: 'description', type: 'textArea', help: 'Texto introductorio opcional que se muestra bajo el título', label: 'Descripción', mandatory: false, example_value: 'Ven a visitarnos o ponte en contacto con nosotros.' }, { name: 'address', type: 'text', help: 'Dirección completa del lugar. Se usa para generar el mapa, el enlace "Cómo llegar" y el structured data. Ejemplo: "Carrer de la Força, 8, 17004 Girona"', label: 'Dirección', mandatory: true, example_value: 'Carrer de la Força, 8, 17004 Girona' }, { name: 'embedUrl', type: 'textArea', help: 'Opcional. Si quieres un mapa más preciso, pega aquí el enlace del campo "src" que aparece en Google Maps > Compartir > Insertar un mapa. Si lo rellenas, tiene prioridad sobre la dirección', label: 'Enlace de inserción de Google Maps (opcional)', mandatory: false, example_value: '' }, { name: 'zoom', type: 'select', help: 'Nivel de zoom del mapa cuando se genera a partir de la dirección. Valores bajos alejan, valores altos acercan. Se ignora si se rellena el enlace de inserción', label: 'Zoom del mapa', options: ['10', '12', '14', '15', '16', '17', '18'], options_labels: ['10 (ciudad)', '12', '14', '15 (barrio)', '16', '17', '18 (calle)'], example_value: '15' }, { name: 'mapPosition', type: 'select', help: 'Posición del mapa respecto al panel de datos de contacto en escritorio', label: 'Posición del mapa', options: ['right', 'left'], options_labels: ['Mapa a la derecha', 'Mapa a la izquierda'], example_value: 'right' }, { name: 'backgroundColor', type: 'select', help: 'Color de fondo de la sección. "Transparente" hereda el fondo de la página. Si eliges un color, la sección añade padding y bordes redondeados', label: 'Color de fondo', options: ['transparent', '#F8F8F8', '#F2F2F2', '#DDE0EC', '#262626'], options_labels: ['Transparente', 'Gris muy claro', 'Gris claro', 'Azul claro', 'Oscuro'], example_value: 'transparent' }, { name: 'textColor', type: 'text', help: 'Color del texto y los iconos en formato hex. Usa un tono oscuro (ej. #262626) sobre fondos claros y uno claro (ej. #f2f3f8) sobre fondos oscuros. El panel de contacto se adapta automáticamente', label: 'Color del texto', mandatory: false, example_value: '#262626' }, { name: 'showContactInfo', type: 'boolean', help: 'Muestra el panel lateral con los datos de contacto. Si se desactiva, el mapa ocupa todo el ancho', label: 'Mostrar datos de contacto', example_value: true }, { name: 'phone', type: 'text', help: 'Teléfono de contacto. Se muestra como enlace clicable (tel:)', label: 'Teléfono', mandatory: false, example_value: '+34 972 00 00 00' }, { name: 'email', type: 'text', help: 'Email de contacto. Se muestra como enlace clicable (mailto:)', label: 'Email', mandatory: false, example_value: 'contacto@ejemplo.com' }, { name: 'schedule', type: 'textArea', help: 'Horario de atención. Admite varias líneas', label: 'Horario', mandatory: false, example_value: 'Lunes a Viernes: 9:00 - 18:00' } ] };