libreria-astro-lefebvre 0.0.27 → 0.0.29

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.
Files changed (65) hide show
  1. package/README.md +46 -46
  2. package/package.json +30 -30
  3. package/src/carbins/AstroButton.ts +34 -34
  4. package/src/carbins/CTA_2025_Formentera.ts +47 -47
  5. package/src/carbins/Cabecera_2025_Barcelona.ts +34 -34
  6. package/src/carbins/Cabecera_2025_Madrid.ts +34 -34
  7. package/src/carbins/Contenido_2025_Alcorcon.ts +76 -76
  8. package/src/carbins/Contenido_2025_Cordoba.ts +59 -59
  9. package/src/carbins/Contenido_2025_Granada.ts +67 -67
  10. package/src/carbins/Contenido_2025_Malaga.ts +100 -100
  11. package/src/carbins/Contenido_2025_Montevideo.ts +56 -56
  12. package/src/carbins/Footer_2025_Napoles.ts +12 -12
  13. package/src/carbins/Formulario_2025_Seul.ts +56 -56
  14. package/src/carbins/Imagen_2025_Bogota.ts +76 -76
  15. package/src/carbins/ReactButton.ts +32 -32
  16. package/src/carbins/Repetidor_2025_Cabra.ts +12 -12
  17. package/src/carbins/Repetidor_2025_Dubai.ts +48 -48
  18. package/src/carbins/Repetidor_2025_Estocolmo.ts +12 -12
  19. package/src/carbins/Repetidor_2025_Mallorca.ts +75 -75
  20. package/src/carbins/Repetidor_2025_Menorca.ts +75 -75
  21. package/src/carbins/Repetidor_2025_Michigan.ts +21 -21
  22. package/src/carbins/Repetidor_2025_Orcasitas.ts +34 -34
  23. package/src/carbins/Repetidor_2025_Oslo.ts +12 -12
  24. package/src/carbins/Repetidor_2025_Quito.ts +20 -20
  25. package/src/carbins/Repetidor_2025_Seattle.ts +12 -12
  26. package/src/carbins/Repetidor_2025_Tokyo.ts +48 -48
  27. package/src/carbins/Repetidor_2025_Ubeda.ts +12 -12
  28. package/src/carbins/Repetidor_2025_Yakarta.ts +12 -12
  29. package/src/carbins/SEO_Head_Section.ts +49 -49
  30. package/src/carbins/Separador_2025_Reinosa.ts +12 -12
  31. package/src/carbins/Titulo_2025_Algeciras.ts +51 -51
  32. package/src/carbins/Titulo_2025_Santorini.ts +20 -20
  33. package/src/carbins/Video_2025_Valencia.ts +12 -12
  34. package/src/carbins/VueButton.ts +35 -35
  35. package/src/components/Astro/Button.astro +5 -5
  36. package/src/components/Astro/CTA_2025_Formentera.astro +38 -38
  37. package/src/components/Astro/Cabecera_2025_Barcelona.astro +55 -52
  38. package/src/components/Astro/Cabecera_2025_Madrid.astro +176 -180
  39. package/src/components/Astro/Contenido_2025_Alcorcon.astro +48 -78
  40. package/src/components/Astro/Contenido_2025_Granada.astro +239 -239
  41. package/src/components/Astro/Contenido_2025_Malaga.astro +162 -162
  42. package/src/components/Astro/Contenido_2025_Montevideo.astro +35 -35
  43. package/src/components/Astro/Footer_2025_Napoles.astro +134 -134
  44. package/src/components/Astro/Formulario_2025_Seul.astro +91 -91
  45. package/src/components/Astro/Imagen_2025_Bogota.astro +61 -61
  46. package/src/components/Astro/Repetidor_2025_Cabra.astro +152 -152
  47. package/src/components/Astro/Repetidor_2025_Cordoba.astro +132 -132
  48. package/src/components/Astro/Repetidor_2025_Dubai.astro +29 -29
  49. package/src/components/Astro/Repetidor_2025_Estocolmo.astro +22 -22
  50. package/src/components/Astro/Repetidor_2025_Mallorca.astro +42 -42
  51. package/src/components/Astro/Repetidor_2025_Menorca.astro +43 -43
  52. package/src/components/Astro/Repetidor_2025_Michigan.astro +45 -45
  53. package/src/components/Astro/Repetidor_2025_Orcasitas.astro +235 -235
  54. package/src/components/Astro/Repetidor_2025_Oslo.astro +76 -76
  55. package/src/components/Astro/Repetidor_2025_Quito.astro +61 -61
  56. package/src/components/Astro/Repetidor_2025_Seattle.astro +22 -22
  57. package/src/components/Astro/Repetidor_2025_Tokyo.astro +56 -56
  58. package/src/components/Astro/Repetidor_2025_Ubeda.astro +39 -39
  59. package/src/components/Astro/Repetidor_2025_Yakarta.astro +203 -179
  60. package/src/components/Astro/SEO_Head_Section.astro +32 -32
  61. package/src/components/Astro/Separador_2025_Reinosa.astro +3 -3
  62. package/src/components/Astro/Titulo_2025_Algeciras.astro +57 -57
  63. package/src/components/Astro/Titulo_2025_Santorini.astro +8 -8
  64. package/src/generated/componentRegistry.ts +96 -96
  65. package/src/index.ts +123 -123
@@ -1,181 +1,177 @@
1
- ---
2
- const {
3
- label = 'Pruébalo ya',
4
- url = '#',
5
- subdirectory = ''
6
- } = Astro.props;
7
-
8
- const categories = [
9
- // {
10
- // name: 'Conócenos',
11
- // link: subdirectory + '/conocenos',
12
- // subcategories: [{name: 'Quiénes somos', link: '#'}, {name: 'Nuestra cultura', link: '#'}, {name: 'Equipo', link: '#'}],
13
- // },
14
- {
15
- name: 'Cómo funciona',
16
- link: subdirectory + '/conoce-genia-l/',
17
- subcategories: [],
18
- },
19
- {
20
- name: 'Seguridad',
21
- link: subdirectory + '/seguridad',
22
- subcategories: [],
23
- },
24
- // {
25
- // name: 'IA Jurídica',
26
- // link: subdirectory + '/ia-juridica',
27
- // subcategories: [],
28
- // },
29
- {
30
- name: 'Casos reales',
31
- link: subdirectory + '/casos-reales/',
32
- subcategories: [],
33
- },
34
- // {
35
- // name: 'Novedades y recursos',
36
- // link: subdirectory + '/novedades-y-recursos',
37
- // subcategories: [],
38
- // },
39
- // {
40
- // name: 'FAQs',
41
- // link: subdirectory + '/faqs',
42
- // subcategories: [],
43
- // },
44
- {
45
- name: 'Contacto',
46
- link: subdirectory + '/contacto/',
47
- subcategories: [],
48
- },
49
- ];
50
-
51
-
52
-
53
-
54
- const structuredData = `<script type="application/ld+json">
55
- {
56
- "@context": "https://schema.org",
57
- "@type": "WebSite",
58
- "name": "Lefebvre",
59
- "url": "${Astro.url.origin}${subdirectory}",
60
- "logo": "https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg",
61
- "potentialAction": {
62
- "@type": "SearchAction",
63
- "target": {
64
- "@type": "EntryPoint",
65
- "urlTemplate": "${Astro.url.origin}${subdirectory}/search?q={search_term_string}"
66
- },
67
- "query-input": "required name=search_term_string"
68
- },
69
- "mainEntity": {
70
- "@type": "SiteNavigationElement",
71
- "name": "Main Navigation",
72
- "url": "${Astro.url.origin}${subdirectory}",
73
- "hasPart": [
74
- ${categories.map(category => `{
75
- "@type": "SiteNavigationElement",
76
- "name": "${category.name}",
77
- "url": "${Astro.url.origin}${category.link}"
78
- }`).join(',\n ')}
79
- ]
80
- }
81
- }
82
- </script>`;
83
-
84
-
85
-
86
- ---
87
-
88
- <header class="sticky top-0 w-full bg-white z-50 flex flex-col justify-center align-center items-center p-0">
89
- <nav class="px-4 py-3 w-full">
90
-
91
- <div class="max-w-7xl flex items-center justify-between mx-auto">
92
- <a href={subdirectory + '/'} class="hidden md:flex items-center">
93
- <img src="https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg" class="h-[40px]" alt="Logo Lefebvre">
94
- </a>
95
- <a href="#" class="flex md:hidden items-center">
96
- <img src="https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg" class="h-[40px]" alt="Logo Lefebvre">
97
- </a>
98
-
99
- <div class="flex items-center gap-4">
100
- <div class="flex items-center gap-4">
101
- <a href={url} class="h-[48px] max-[375px]:px-2 px-5 py-3 font-inter font-semibold max-[375px]:text-sm text-base border-1 border-[#2134F1] text-[#2134F1] hover:text-[#ffffff] hover:border-[#2134F1] hover:bg-[#2134F1] transition-all duration-300 rounded-lg cursor-pointer shadow-sm">{label}</a>
102
- </div>
103
- <button onclick="document.getElementById('navbar-default').classList.toggle('hidden'); event.target.classList.toggle('bg-gray-50');"
104
- type="button" class="inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg lg:hidden hover:bg-gray-100
105
- focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600"
106
- aria-controls="navbar-default" aria-expanded="false">
107
- <span class="sr-only pointer-events-none">Abrir menú</span>
108
- <svg class="w-5 h-5 pointer-events-none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 17 14">
109
- <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"/>
110
- </svg>
111
- </button>
112
-
113
- </div>
114
-
115
- </div>
116
- </nav>
117
- <nav class="w-full flex items-center border-1 border-gray-300">
118
- <ul class="max-w-7xl hidden lg:flex items-center justify-start gap-8 mx-auto">
119
- {categories.map(category => (
120
- <li class="relative group border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600 hover:bg-gray-100">
121
- <a href={category.link} class="flex items-center px-8 py-6">
122
- <span>
123
- {category.name}
124
- </span>
125
- {category.subcategories.length > 0 && (
126
- <span class="ml-1 text-xs">∨</span>
127
- )}
128
- </a>
129
- {category.subcategories.length > 0 && (
130
- <ul class="absolute left-0 mt-6 bg-white border border-gray-300 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-10 min-w-[280px]"
131
-
132
- >
133
- {category.subcategories.map(sub => (
134
- <li class="hover:text-indigo-900 hover:font-semibold">
135
- <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
136
- </li>
137
- ))}
138
- </ul>
139
- )}
140
- </li>
141
- ))}
142
- </ul>
143
- </nav>
144
-
145
- <nav class="hidden w-full bg-white border-gray-200" id="navbar-default">
146
- <div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto">
147
-
148
- <div class="w-full lg:flex lg:w-auto">
149
- <ul>
150
- {categories.map(category => (
151
- <li class="relative group px-6 py-4 border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600">
152
- <a href={category.link} class="flex items-center">
153
- <span class="hover:underline">
154
- {category.name}
155
- </span>
156
- {category.subcategories.length > 0 && (
157
- <span class="ml-1 text-xs">∨</span>
158
- )}
159
- </a>
160
- {category.subcategories.length > 0 && (
161
- <ul class="absolute left-0 mt-6 bg-white border border-gray-300 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-10 min-w-[280px]"
162
-
163
- >
164
- {category.subcategories.map(sub => (
165
- <li class="hover:text-indigo-900 hover:font-semibold">
166
- <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
167
- </li>
168
- ))}
169
- </ul>
170
- )}
171
- </li>
172
- ))}
173
- </ul>
174
- </div>
175
- </div>
176
- </nav>
177
-
178
-
179
- </header>
180
-
1
+ ---
2
+ const {
3
+ label = 'Pruébalo ya',
4
+ url = '#',
5
+ subdirectory = ''
6
+ } = Astro.props;
7
+
8
+ const categories = [
9
+ // {
10
+ // name: 'Conócenos',
11
+ // link: subdirectory + '/conocenos',
12
+ // subcategories: [{name: 'Quiénes somos', link: '#'}, {name: 'Nuestra cultura', link: '#'}, {name: 'Equipo', link: '#'}],
13
+ // },
14
+ {
15
+ name: 'Cómo funciona',
16
+ link: subdirectory + '/conoce-genia-l/',
17
+ subcategories: [],
18
+ },
19
+ {
20
+ name: 'Seguridad',
21
+ link: subdirectory + '/seguridad/',
22
+ subcategories: [],
23
+ },
24
+ // {
25
+ // name: 'IA Jurídica',
26
+ // link: subdirectory + '/ia-juridica',
27
+ // subcategories: [],
28
+ // },
29
+ {
30
+ name: 'Casos reales',
31
+ link: subdirectory + '/casos-reales/',
32
+ subcategories: [],
33
+ },
34
+ // {
35
+ // name: 'Novedades y recursos',
36
+ // link: subdirectory + '/novedades-y-recursos',
37
+ // subcategories: [],
38
+ // },
39
+ // {
40
+ // name: 'FAQs',
41
+ // link: subdirectory + '/faqs',
42
+ // subcategories: [],
43
+ // },
44
+ {
45
+ name: 'Contacto',
46
+ link: subdirectory + '/contacto/',
47
+ subcategories: [],
48
+ },
49
+ ];
50
+
51
+
52
+
53
+
54
+ const structuredData = `<script type="application/ld+json">
55
+ {
56
+ "@context": "https://schema.org",
57
+ "@type": "WebSite",
58
+ "name": "Lefebvre",
59
+ "url": "${Astro.url.origin}${subdirectory}",
60
+ "logo": "https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg",
61
+ "potentialAction": {
62
+ "@type": "SearchAction",
63
+ "target": {
64
+ "@type": "EntryPoint",
65
+ "urlTemplate": "${Astro.url.origin}${subdirectory}/search?q={search_term_string}"
66
+ },
67
+ "query-input": "required name=search_term_string"
68
+ },
69
+ "mainEntity": {
70
+ "@type": "SiteNavigationElement",
71
+ "name": "Main Navigation",
72
+ "url": "${Astro.url.origin}${subdirectory}",
73
+ "hasPart": [
74
+ ${categories.map(category => `{
75
+ "@type": "SiteNavigationElement",
76
+ "name": "${category.name}",
77
+ "url": "${Astro.url.origin}${category.link}"
78
+ }`).join(',\n ')}
79
+ ]
80
+ }
81
+ }
82
+ </script>`;
83
+
84
+
85
+
86
+ ---
87
+
88
+ <header class="sticky top-0 w-full bg-white z-50 flex flex-col justify-center align-center items-center p-0">
89
+ <nav class="px-4 py-3 w-full">
90
+
91
+ <div class="max-w-7xl flex items-center justify-between mx-auto">
92
+ <a href={subdirectory + '/'} class="flex items-center">
93
+ <img src="https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg" class="h-[40px]" alt="GenIA-L Lefebvre">
94
+ </a>
95
+ <div class="flex items-center gap-4">
96
+ <div class="flex items-center gap-4">
97
+ <a href={url} class="h-[48px] max-[375px]:px-2 px-5 py-3 font-inter font-semibold max-[375px]:text-sm text-base border-1 border-[#2134F1] text-[#2134F1] hover:text-[#ffffff] hover:border-[#2134F1] hover:bg-[#2134F1] transition-all duration-300 rounded-lg cursor-pointer shadow-sm">{label}</a>
98
+ </div>
99
+ <button onclick="document.getElementById('navbar-default').classList.toggle('hidden'); event.target.classList.toggle('bg-gray-50');"
100
+ type="button" class="inline-flex items-center p-2 w-10 h-10 justify-center text-sm text-gray-500 rounded-lg lg:hidden hover:bg-gray-100
101
+ focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600"
102
+ aria-controls="navbar-default" aria-expanded="false">
103
+ <span class="sr-only pointer-events-none">Abrir menú</span>
104
+ <svg class="w-5 h-5 pointer-events-none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 17 14">
105
+ <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"/>
106
+ </svg>
107
+ </button>
108
+
109
+ </div>
110
+
111
+ </div>
112
+ </nav>
113
+ <nav class="w-full flex items-center border-1 border-gray-300">
114
+ <ul class="max-w-7xl hidden lg:flex items-center justify-start gap-8 mx-auto">
115
+ {categories.map(category => (
116
+ <li class="relative group border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600 hover:bg-gray-100">
117
+ <a href={category.link} class="flex items-center px-8 py-6">
118
+ <span>
119
+ {category.name}
120
+ </span>
121
+ {category.subcategories.length > 0 && (
122
+ <span class="ml-1 text-xs">∨</span>
123
+ )}
124
+ </a>
125
+ {category.subcategories.length > 0 && (
126
+ <ul class="absolute left-0 mt-6 bg-white border border-gray-300 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-10 min-w-[280px]"
127
+
128
+ >
129
+ {category.subcategories.map(sub => (
130
+ <li class="hover:text-indigo-900 hover:font-semibold">
131
+ <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
132
+ </li>
133
+ ))}
134
+ </ul>
135
+ )}
136
+ </li>
137
+ ))}
138
+ </ul>
139
+ </nav>
140
+
141
+ <nav class="hidden w-full bg-white border-gray-200" id="navbar-default">
142
+ <div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto">
143
+
144
+ <div class="w-full lg:flex lg:w-auto">
145
+ <ul>
146
+ {categories.map(category => (
147
+ <li class="relative group px-6 py-4 border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600">
148
+ <a href={category.link} class="flex items-center">
149
+ <span class="hover:underline">
150
+ {category.name}
151
+ </span>
152
+ {category.subcategories.length > 0 && (
153
+ <span class="ml-1 text-xs">∨</span>
154
+ )}
155
+ </a>
156
+ {category.subcategories.length > 0 && (
157
+ <ul class="absolute left-0 mt-6 bg-white border border-gray-300 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-10 min-w-[280px]"
158
+
159
+ >
160
+ {category.subcategories.map(sub => (
161
+ <li class="hover:text-indigo-900 hover:font-semibold">
162
+ <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
163
+ </li>
164
+ ))}
165
+ </ul>
166
+ )}
167
+ </li>
168
+ ))}
169
+ </ul>
170
+ </div>
171
+ </div>
172
+ </nav>
173
+
174
+
175
+ </header>
176
+
181
177
  <Fragment set:html={structuredData} />
@@ -1,78 +1,48 @@
1
- ---
2
- const {
3
- title,
4
- subtitle,
5
- description,
6
- txtBtn,
7
- linkBtn,
8
- alt,
9
- src,
10
- iframeSrc,
11
- showBtn = true
12
- } = Astro.props;
13
-
14
-
15
- const structuredData = `<script type="application/ld+json">
16
- {
17
- "@context": "https://schema.org",
18
- "@type": "WebPageElement",
19
- "name": "${title}",
20
- "description": "${description?.replace(/<[^>]*>/g, '').replace(/"/g, '\\"') || ''}",
21
- "image": "${src || ''}",
22
- "mainEntity": {
23
- "@type": "Article",
24
- "headline": "${title}",
25
- "alternativeHeadline": "${subtitle || ''}",
26
- "description": "${description?.replace(/<[^>]*>/g, '').replace(/"/g, '\\"') || ''}",
27
- ${src ? `"image": "${src}",` : ''}
28
- ${iframeSrc ? `"video": "${iframeSrc}",` : ''}
29
- "author": {
30
- "@type": "Organization",
31
- "name": "Lefebvre"
32
- }
33
- }${linkBtn && showBtn ? `,
34
- "potentialAction": {
35
- "@type": "ViewAction",
36
- "name": "${txtBtn || 'Ver más'}",
37
- "target": "${linkBtn}"
38
- }` : ''}
39
- }
40
- </script>`;
41
-
42
-
43
-
44
- ---
45
-
46
- <section class="w-full flex items-center justify-center pb-[36px]">
47
-
48
- <article class="w-full flex flex-col items-center justify-center p-6 md:p-0">
49
-
50
- <div class="max-w-7xl w-full flex justify-center items-center relative md:w-4/5">
51
- <div class="relative w-full max-w-7xl min-h-[400px] md:min-h-[500px] lg:min-h-[auto]">
52
- {src && src !== "" ? (
53
- <img src={src} alt={alt} title={title} class="object-cover object-center w-full h-full min-h-[400px] md:min-h-[500px] lg:min-h-[auto] rounded-2xl">
54
- ) : (
55
- <video autoplay loop muted playsinline class="object-cover object-center w-full h-full min-h-[400px] md:min-h-[500px] lg:min-h-[auto] rounded-2xl">
56
- <source src={iframeSrc} type="video/mp4" />
57
- </video>
58
- )}
59
-
60
- {(title || subtitle || description || (showBtn && linkBtn)) && (
61
- <div class="absolute inset-0 flex flex-col justify-center items-center p-4 md:p-6 lg:p-8 z-10">
62
- <div class="max-w-4xl w-full text-center">
63
- {title && <h2 class="text-[#262626] font-poppins text-[28px] sm:text-[36px] md:text-[48px] lg:text-[64px] font-medium text-center leading-tight mb-4">{title}</h2>}
64
- {subtitle && <p class="text-[#262626] font-poppins text-[18px] sm:text-[22px] md:text-[28px] lg:text-[32px] font-normal leading-tight text-center mb-4">{subtitle}</p>}
65
- {description && <div class="text-[#363942] font-inter text-sm sm:text-base md:text-lg lg:text-xl font-normal leading-relaxed mb-6 text-center" set:html={description}></div>}
66
-
67
- {showBtn && linkBtn && (
68
- <a href={linkBtn} target="_self" class="inline-block h-[44px] md:h-[48px] text-[#ffffff] font-inter font-semibold bg-[#2134F1] px-[20px] md:px-[28px] py-[10px] md:py-[12px] border border-[#2134F1] rounded-xl hover:bg-[#ffffff] transition-all duration-300 hover:text-[#262626] hover:border-[#262626] text-sm md:text-base">{txtBtn}</a>
69
- )}
70
- </div>
71
- </div>
72
- )}
73
- </div>
74
- </div>
75
- </article>
76
- </section>
77
-
78
- <div set:html={structuredData}></div>
1
+ ---
2
+ const {
3
+ title,
4
+ subtitle,
5
+ description,
6
+ txtBtn,
7
+ linkBtn,
8
+ alt,
9
+ src,
10
+ iframeSrc,
11
+ showBtn = true
12
+ } = Astro.props;
13
+
14
+
15
+ ---
16
+
17
+ <section class="w-full flex items-center justify-center pb-[36px]">
18
+
19
+ <article class="w-full flex flex-col items-center justify-center p-6 md:p-0">
20
+
21
+ <div class="max-w-7xl w-full flex justify-center items-center relative md:w-4/5">
22
+ <div class="relative w-full max-w-7xl min-h-[400px] md:min-h-[500px] lg:min-h-[auto]">
23
+ {src && src !== "" ? (
24
+ <img src={src} alt={alt} title={title} class="object-cover object-center w-full h-full lg:max-h-[446px] min-h-[400px] md:min-h-[500px] lg:min-h-[auto] rounded-2xl">
25
+ ) : (
26
+ <video autoplay loop muted playsinline class="object-cover object-center w-full h-full lg:max-h-[446px] min-h-[400px] md:min-h-[500px] lg:min-h-[auto] rounded-2xl">
27
+ <source src={iframeSrc} type="video/mp4" />
28
+ </video>
29
+ )}
30
+
31
+ {(title || subtitle || description || (showBtn && linkBtn)) && (
32
+ <div class="absolute inset-0 flex flex-col justify-center items-center p-4 md:p-6 lg:p-8 z-10">
33
+ <div class="max-w-4xl w-full text-center">
34
+ {title && <h2 class="text-[#262626] font-poppins text-[28px] sm:text-[36px] md:text-[48px] lg:text-[64px] font-medium text-center leading-tight mb-4">{title}</h2>}
35
+ {subtitle && <p class="text-[#262626] font-poppins text-[18px] sm:text-[22px] md:text-[28px] lg:text-[32px] font-normal leading-tight text-center mb-4">{subtitle}</p>}
36
+ {description && <div class="text-[#363942] font-poppins text-sm sm:text-base md:text-lg lg:text-xl font-normal leading-relaxed mb-6 text-center" set:html={description}></div>}
37
+
38
+ {showBtn && linkBtn && (
39
+ <a href={linkBtn} target="_self" class="inline-block h-[44px] md:h-[48px] text-[#ffffff] font-inter font-semibold bg-[#2134F1] px-[20px] md:px-[28px] py-[10px] md:py-[12px] border border-[#2134F1] rounded-xl hover:bg-[#ffffff] transition-all duration-300 hover:text-[#262626] hover:border-[#262626] text-sm md:text-base">{txtBtn}</a>
40
+ )}
41
+ </div>
42
+ </div>
43
+ )}
44
+ </div>
45
+ </div>
46
+ </article>
47
+ </section>
48
+