libreria-astro-lefebvre 0.0.147 → 0.0.148

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libreria-astro-lefebvre",
3
- "version": "0.0.147",
3
+ "version": "0.0.148",
4
4
  "description": "Librería de componentes Astro, React y Vue para Lefebvre",
5
5
  "author": "Equipo web desarrollo Lefebvre",
6
6
  "type": "module",
@@ -0,0 +1,81 @@
1
+ import type { ComponentMetadata } from '../interfaces/types';
2
+
3
+ export const metadata: ComponentMetadata = {
4
+ component_name: 'Formulario_2026_Wichita',
5
+ category: 'Formulario',
6
+ name: 'Formulario de GenIA-L 2026',
7
+ description: 'Formulario para el directorio de GenIA-L en la corporativa de Lefebvre',
8
+ framework: 'Astro',
9
+ priority: 1,
10
+ tags: ['contenido', 'video', 'genial'],
11
+ fields: [
12
+ {
13
+ name: 'title',
14
+ type: 'text',
15
+ help: 'Introduce el título del formulario',
16
+ label: 'Texto del título',
17
+ mandatory: false,
18
+ example_value: 'Pruébalo ya'
19
+ },
20
+ {
21
+ name: 'description',
22
+ type: 'text',
23
+ help: 'Introduce la descripción del formulario',
24
+ label: 'Texto de la descripción',
25
+ mandatory: false,
26
+ example_value: 'Texto descriptivo del título'
27
+ },
28
+ {
29
+ name: 'imageSrc',
30
+ type: 'image',
31
+ help: 'Introduce la URL de la imagen del formulario',
32
+ label: 'Src de la imagen',
33
+ mandatory: false,
34
+ example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-3-4.png'
35
+ },
36
+ {
37
+ name: 'lf2FormTitle',
38
+ type: 'text',
39
+ help: 'Introduce el título del formulario en LF2',
40
+ label: 'Título del formulario en LF2',
41
+ mandatory: false,
42
+ example_value: '27925 Formulario Vamos Más Allá'
43
+ },
44
+ {
45
+ name: 'businessAction',
46
+ type: 'text',
47
+ help: 'Introduce el identificador businessAction del formulario en LF2',
48
+ label: 'businessAction del formulario en LF2',
49
+ mandatory: false,
50
+ example_value: '27925'
51
+ },
52
+ {
53
+ name: 'orientation',
54
+ type: 'select',
55
+ help: 'Selecciona la posición de la imagen respecto al formulario',
56
+ label: 'Orientación del contenido',
57
+ options: ['left', 'right'],
58
+ options_labels: ['Izquierda', 'Derecha'],
59
+ example_value: 'left'
60
+ },
61
+ {
62
+ name: 'loading',
63
+ type: 'select',
64
+ help: 'Selecciona el tipo de carga de la imagen: diferida o inmediata',
65
+ label: 'Carga de la imagen',
66
+ options: ['lazy', 'eager'],
67
+ options_labels: ['Diferida', 'Inmediata'],
68
+ example_value: 'lazy'
69
+ },
70
+ {
71
+ name: 'showImage',
72
+ type: 'boolean',
73
+ help: 'Indica si se debe mostrar la imagen',
74
+ label: 'Mostrar imagen',
75
+ mandatory: false,
76
+ options: ['false', 'true'],
77
+ options_labels: ['Falso', 'Verdadero'],
78
+ example_value: true
79
+ }
80
+ ]
81
+ };
@@ -0,0 +1,95 @@
1
+ ---
2
+ import { extractImageUrl } from '../../lib/functions.js';
3
+
4
+ const {
5
+ title,
6
+ description = "",
7
+ showImage = false,
8
+ orientation = "left",
9
+ imageSrc,
10
+ lf2FormTitle = "Formulario de contacto",
11
+ businessAction = false,
12
+ loading = "lazy"
13
+ } = Astro.props;
14
+
15
+ const imageSrcUrl = extractImageUrl(imageSrc);
16
+ const idTargetLf2 = 'lf2-form-' + Math.random().toString(36).substring(2, 15);
17
+
18
+ const structuredData = `<script type="application/ld+json">
19
+ {
20
+ "@context": "https://schema.org",
21
+ "@type": "ContactPage",
22
+ "name": "${title}",
23
+ "description": "${description}",
24
+ "mainEntity": {
25
+ "@type": "WebPage",
26
+ "name": "${lf2FormTitle}",
27
+ "description": "Formulario de contacto para consultas",
28
+ "url": "${Astro.url.href}",
29
+ "contactType": "customer service"
30
+ },
31
+ "publisher": {
32
+ "@type": "Organization",
33
+ "name": "Lefebvre"
34
+ }
35
+ }
36
+ </script>`;
37
+ ---
38
+
39
+
40
+
41
+ <div class="w-full flex flex-col md:flex-row px-6 md:px-4 lg:px-0 gap-8">
42
+ <div class="max-w-7xl w-full mx-auto flex justify-start flex-col">
43
+ {showImage ? (
44
+ <article class="flex flex-col items-center justify-center">
45
+ <div class={`flex-col md:flex ${orientation === 'left' ? 'flex-row' : 'flex-row-reverse'} w-full items-start gap-4 justify-between`}>
46
+ <div class="w-full flex justify-start mb-8 flex-col">
47
+ <div id={idTargetLf2} class="w-full flex flex-col mx-auto gap-3"></div>
48
+ </div>
49
+ <div class={`w-full p-0 md:p-4 flex items-center ${orientation === 'left' ? 'justify-end' : 'justify-start'}`}>
50
+ <img src={imageSrcUrl} alt={title} width="600" height="650" class="w-full md:w-4/5 min-h-auto md:min-h-[650px] object-cover rounded-lg" loading={loading}/>
51
+ </div>
52
+ </div>
53
+ </article>
54
+ ) : (
55
+ <article class="flex flex-col items-center justify-center">
56
+ <div class={`flex-col md:flex ${orientation === 'left' ? 'flex-row' : 'flex-row-reverse'} w-full items-start gap-4 justify-center`}>
57
+ <div class="w-full md:w-1/3 flex justify-start mb-8 flex-col">
58
+ <h2 class="w-[300px] sm:w-auto font-poppins text-[#262626] text-[32px] font-semibold text-left leading-10 mb-4 text-wrap">{title}</h2>
59
+ <p class="text-[#363942] font-poppins text-xl">{description}</p>
60
+ </div>
61
+ <div class={`w-full md:w-1/2 p-0 md:p-4 flex items-center ${orientation === 'left' ? 'justify-end' : 'justify-start'}`}>
62
+ <div id={idTargetLf2} class="w-full flex flex-col mx-auto gap-3"></div>
63
+ </div>
64
+ </div>
65
+ </article>
66
+ )}
67
+ </div>
68
+ </div>
69
+
70
+
71
+ <script is:client define:vars={{ idTargetLf2 , lf2FormTitle, businessAction}}>
72
+ document.addEventListener('DOMContentLoaded', () => {
73
+
74
+ let defaultParameters = {};
75
+ if(businessAction) {
76
+ defaultParameters.accioncomercial = businessAction;
77
+ }
78
+
79
+ let configLf2 = {
80
+ fake: true,
81
+ formulario: lf2FormTitle,
82
+ bootstrap: true,
83
+ target: '#'+idTargetLf2,
84
+ defaultparameters: defaultParameters,
85
+ };
86
+ try {
87
+ apiManager.pintarFormularioAutogestionado(configLf2);
88
+ } catch (error) {
89
+ var apiManager = new LeadformApiManagerClass();
90
+ apiManager.pintarFormularioAutogestionado(configLf2);
91
+ }
92
+ });
93
+ </script>
94
+
95
+ <Fragment set:html={structuredData} />
@@ -37,6 +37,7 @@ import * as Footer_2025_Napoles from '../carbins/Footer_2025_Napoles.ts';
37
37
  import * as Formulario_2025_Nara from '../carbins/Formulario_2025_Nara.ts';
38
38
  import * as Formulario_2025_Seul from '../carbins/Formulario_2025_Seul.ts';
39
39
  import * as Formulario_2025_Teruel from '../carbins/Formulario_2025_Teruel.ts';
40
+ import * as Formulario_2026_Wichita from '../carbins/Formulario_2026_Wichita.ts';
40
41
  import * as GeometricShapeCard from '../carbins/GeometricShapeCard.ts';
41
42
  import * as HeaderCorporativo from '../carbins/HeaderCorporativo.ts';
42
43
  import * as Hero_2025_Benidorm from '../carbins/Hero_2025_Benidorm.ts';
@@ -129,6 +130,7 @@ export const components = [
129
130
  {component: Formulario_2025_Nara},
130
131
  {component: Formulario_2025_Seul},
131
132
  {component: Formulario_2025_Teruel},
133
+ {component: Formulario_2026_Wichita},
132
134
  {component: GeometricShapeCard},
133
135
  {component: HeaderCorporativo},
134
136
  {component: Hero_2025_Benidorm},
package/src/index.ts CHANGED
@@ -42,6 +42,7 @@ import Footer_2025_Napoles from './components/Astro/Footer_2025_Napoles.astro';
42
42
  import Formulario_2025_Nara from './components/Astro/Formulario_2025_Nara.astro';
43
43
  import Formulario_2025_Seul from './components/Astro/Formulario_2025_Seul.astro';
44
44
  import Formulario_2025_Teruel from './components/Astro/Formulario_2025_Teruel.astro';
45
+ import Formulario_2026_Wichita from './components/Astro/Formulario_2026_Wichita.astro';
45
46
  import GeometricShape from './components/Astro/GeometricShape.astro';
46
47
  import GeometricShapeCard from './components/Astro/GeometricShapeCard.astro';
47
48
  import HeaderCorporativo from './components/Astro/HeaderCorporativo.astro';
@@ -100,7 +101,7 @@ import ReactButton from './components/React/ReactButton.jsx';
100
101
  // Exporta todos los componentes uno a uno para que puedan ser usados directamente.
101
102
 
102
103
 
103
- export { VueButton, Author_2025_Algarve, Button, CTA_2025_Formentera, Cabecera_2025_Barcelona, Cabecera_2025_Madrid, Cabecera_2026_Madrid, Card_2025_Malta, Contenido_2025_Alcorcon, Contenido_2025_Granada, Contenido_2025_Malaga, Contenido_2025_Montevideo, Contenido_2026_Cabra, Contenido_2026_Dubai, Contenido_2026_Estocolmo, Contenido_2026_Jaen, Contenido_2026_Leon, Contenido_2026_Mallorca, Contenido_2026_Marruecos, Contenido_2026_Menorca, Contenido_2026_Michigan, Contenido_2026_Mostoles, Contenido_2026_Orcasitas, Contenido_2026_Oslo, Contenido_2026_Quito, Contenido_2026_Sevilla, Contenido_2026_Tokyo, Contenido_2026_Ubeda, Contenido_2026_Yakarta, CorpFooter, CorpHero, CorpNavigation, Enlace_2025_Venecia, FAQ_2025_Hiroshima, FooterCorporativo, Footer_2025_Napoles, Formulario_2025_Nara, Formulario_2025_Seul, Formulario_2025_Teruel, GeometricShape, GeometricShapeCard, HeaderCorporativo, Hero_2025_Benidorm, Hero_2026_Benidorm, ImageTextSimple, Imagen_2025_Bogota, Imagen_2025_Fukushima, Indice_2025_Taiwan, Modal_2025_Sagunto, Paginacion_2025_Paris, RRSS_2025_Pisa, Repetidor_2025_Cabra, Repetidor_2025_Cordoba, Repetidor_2025_Dubai, Repetidor_2025_Estocolmo, Repetidor_2025_Jaen, Repetidor_2025_Mallorca, Repetidor_2025_Marruecos, Repetidor_2025_Menorca, Repetidor_2025_Michigan, Repetidor_2025_Mostoles, Repetidor_2025_Orcasitas, Repetidor_2025_Oslo, Repetidor_2025_Quito, Repetidor_2025_Seattle, Repetidor_2025_Sevilla, Repetidor_2025_Tokyo, Repetidor_2025_Ubeda, Repetidor_2025_Yakarta, SEO_Head_Section, Separador_2025_Reinosa, Separador_2025_Toledo, Share_2025_Florencia, SpectrumSeparator, Sumario_2025_Beijing, Tabla_2025_Fuenlabrada, Tag_2025_Bolonia, TestHijo, TestPadre, Test_2026_Gaza, TextBox, TextImageBackground, TextImageBlock, TextImageCard, TextImageHeader, Texto_2025_Kyoto, Tiempo_2025_Londres, Titulo_2025_Algeciras, Titulo_2025_Santorini, VideoAutoplay, Video_2025_Polop, Video_2025_Valencia, ReactButton };
104
+ export { VueButton, Author_2025_Algarve, Button, CTA_2025_Formentera, Cabecera_2025_Barcelona, Cabecera_2025_Madrid, Cabecera_2026_Madrid, Card_2025_Malta, Contenido_2025_Alcorcon, Contenido_2025_Granada, Contenido_2025_Malaga, Contenido_2025_Montevideo, Contenido_2026_Cabra, Contenido_2026_Dubai, Contenido_2026_Estocolmo, Contenido_2026_Jaen, Contenido_2026_Leon, Contenido_2026_Mallorca, Contenido_2026_Marruecos, Contenido_2026_Menorca, Contenido_2026_Michigan, Contenido_2026_Mostoles, Contenido_2026_Orcasitas, Contenido_2026_Oslo, Contenido_2026_Quito, Contenido_2026_Sevilla, Contenido_2026_Tokyo, Contenido_2026_Ubeda, Contenido_2026_Yakarta, CorpFooter, CorpHero, CorpNavigation, Enlace_2025_Venecia, FAQ_2025_Hiroshima, FooterCorporativo, Footer_2025_Napoles, Formulario_2025_Nara, Formulario_2025_Seul, Formulario_2025_Teruel, Formulario_2026_Wichita, GeometricShape, GeometricShapeCard, HeaderCorporativo, Hero_2025_Benidorm, Hero_2026_Benidorm, ImageTextSimple, Imagen_2025_Bogota, Imagen_2025_Fukushima, Indice_2025_Taiwan, Modal_2025_Sagunto, Paginacion_2025_Paris, RRSS_2025_Pisa, Repetidor_2025_Cabra, Repetidor_2025_Cordoba, Repetidor_2025_Dubai, Repetidor_2025_Estocolmo, Repetidor_2025_Jaen, Repetidor_2025_Mallorca, Repetidor_2025_Marruecos, Repetidor_2025_Menorca, Repetidor_2025_Michigan, Repetidor_2025_Mostoles, Repetidor_2025_Orcasitas, Repetidor_2025_Oslo, Repetidor_2025_Quito, Repetidor_2025_Seattle, Repetidor_2025_Sevilla, Repetidor_2025_Tokyo, Repetidor_2025_Ubeda, Repetidor_2025_Yakarta, SEO_Head_Section, Separador_2025_Reinosa, Separador_2025_Toledo, Share_2025_Florencia, SpectrumSeparator, Sumario_2025_Beijing, Tabla_2025_Fuenlabrada, Tag_2025_Bolonia, TestHijo, TestPadre, Test_2026_Gaza, TextBox, TextImageBackground, TextImageBlock, TextImageCard, TextImageHeader, Texto_2025_Kyoto, Tiempo_2025_Londres, Titulo_2025_Algeciras, Titulo_2025_Santorini, VideoAutoplay, Video_2025_Polop, Video_2025_Valencia, ReactButton };
104
105
 
105
106
 
106
107
  // Exporta la función listComponents para que sea usado en el Pagebuilder en Vue.
@@ -154,6 +155,7 @@ export const components = {
154
155
  Formulario_2025_Nara: Formulario_2025_Nara,
155
156
  Formulario_2025_Seul: Formulario_2025_Seul,
156
157
  Formulario_2025_Teruel: Formulario_2025_Teruel,
158
+ Formulario_2026_Wichita: Formulario_2026_Wichita,
157
159
  GeometricShape: GeometricShape,
158
160
  GeometricShapeCard: GeometricShapeCard,
159
161
  HeaderCorporativo: HeaderCorporativo,