libreria-astro-lefebvre 0.1.43 → 0.1.45
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 +1 -1
- package/src/carbins/Cabecera_2026_Dakota.ts +55 -0
- package/src/carbins/Contenido_2026_Mostoles.ts +11 -1
- package/src/components/Astro/Cabecera_2026_Dakota.astro +34 -0
- package/src/components/Astro/Contenido_2026_Moraira.astro +2 -2
- package/src/components/Astro/Contenido_2026_Mostoles.astro +4 -2
- package/src/components/Astro/Footer_2025_Napoles.astro +1 -1
- package/src/generated/componentRegistry.ts +2 -0
- package/src/index.ts +3 -1
package/package.json
CHANGED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ComponentMetadata } from '../interfaces/types';
|
|
2
|
+
|
|
3
|
+
export const metadata: ComponentMetadata = {
|
|
4
|
+
component_name: 'Cabecera_2026_Dakota',
|
|
5
|
+
category: 'Header',
|
|
6
|
+
name: 'Cabecera con logo Lefebvre y logo personalizable 2026',
|
|
7
|
+
description: 'Cabecera no sticky con el logo de Lefebvre alineado a la izquierda o al centro y un segundo logo personalizable (subible por Limbo) en el extremo derecho',
|
|
8
|
+
framework: 'Astro',
|
|
9
|
+
priority: 1,
|
|
10
|
+
tags: ['cabecera', 'logo', 'lefebvre'],
|
|
11
|
+
fields: [
|
|
12
|
+
{
|
|
13
|
+
name: 'logoAlign',
|
|
14
|
+
type: 'select',
|
|
15
|
+
help: 'Posición del logo',
|
|
16
|
+
label: 'Alineación del logo',
|
|
17
|
+
options: ['left', 'center'],
|
|
18
|
+
options_labels: ['Izquierda', 'Centro'],
|
|
19
|
+
example_value: ''
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'rightLogo',
|
|
23
|
+
type: 'image',
|
|
24
|
+
help: 'Logo que se muestra en el extremo derecho de la cabecera. Altura máxima 74px',
|
|
25
|
+
label: 'Logo derecho',
|
|
26
|
+
mandatory: false,
|
|
27
|
+
example_value: 'https://assets.lefebvre.es/media/img/preview-comp/comp-160-40.png'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'rightLogoAlt',
|
|
31
|
+
type: 'text',
|
|
32
|
+
help: 'Texto alternativo del logo derecho para accesibilidad',
|
|
33
|
+
label: 'Alt del logo derecho',
|
|
34
|
+
mandatory: false,
|
|
35
|
+
example_value: 'Logo'
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'subdirectory',
|
|
39
|
+
type: 'text',
|
|
40
|
+
help: 'Prefijo de la URL del sitio',
|
|
41
|
+
label: 'Subdirectorio',
|
|
42
|
+
mandatory: false,
|
|
43
|
+
example_value: ''
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'loading',
|
|
47
|
+
type: 'select',
|
|
48
|
+
help: 'Carga de la imagen del logo',
|
|
49
|
+
label: 'Carga de la imagen',
|
|
50
|
+
options: ['eager', 'lazy'],
|
|
51
|
+
options_labels: ['Inmediata', 'Diferida'],
|
|
52
|
+
example_value: 'eager'
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
};
|
|
@@ -12,11 +12,21 @@ export const metadata: ComponentMetadata = {
|
|
|
12
12
|
{
|
|
13
13
|
name: 'title',
|
|
14
14
|
type: 'text',
|
|
15
|
-
help: 'Título principal del banner
|
|
15
|
+
help: 'Título principal del banner. Si se deja vacío, NO se muestra. No admite HTML',
|
|
16
16
|
label: 'Texto del título',
|
|
17
17
|
mandatory: false,
|
|
18
18
|
example_value: 'Prueba GenIA-L gratis'
|
|
19
19
|
},
|
|
20
|
+
{
|
|
21
|
+
name: 'titleTag',
|
|
22
|
+
type: 'select',
|
|
23
|
+
help: 'Etiqueta HTML del título. Usa "h3" para que cuente como encabezado en la jerarquía SEO; usa "p" si solo quieres el estilo visual sin que sea un encabezado. El aspecto visual es idéntico en ambos casos',
|
|
24
|
+
label: 'Etiqueta del título',
|
|
25
|
+
mandatory: false,
|
|
26
|
+
options: ['p', 'h3'],
|
|
27
|
+
options_labels: ['Párrafo (p)', 'Encabezado (h3)'],
|
|
28
|
+
example_value: 'p'
|
|
29
|
+
},
|
|
20
30
|
{
|
|
21
31
|
name: 'description',
|
|
22
32
|
type: 'text',
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
import LimboImage from '../LimboImage.astro';
|
|
3
|
+
|
|
4
|
+
const {
|
|
5
|
+
logoAlign = 'left',
|
|
6
|
+
rightLogo = '',
|
|
7
|
+
rightLogoAlt = '',
|
|
8
|
+
subdirectory = '',
|
|
9
|
+
loading = 'eager' as 'lazy' | 'eager',
|
|
10
|
+
} = Astro.props;
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<header class="w-full bg-white">
|
|
14
|
+
<nav class="px-4 py-3 w-full">
|
|
15
|
+
<div class="max-w-7xl mx-auto grid grid-cols-3 items-center gap-4">
|
|
16
|
+
<div class={`flex ${logoAlign === 'center' ? 'justify-center col-start-2' : 'justify-start col-start-1'}`}>
|
|
17
|
+
<a href={subdirectory + '/'}>
|
|
18
|
+
<img src="https://assets.lefebvre.es/media/logos-2/svg/lefebvre.svg" class="h-10" alt="Lefebvre" width="160" height="40" loading={loading}>
|
|
19
|
+
</a>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="flex justify-end col-start-3">
|
|
22
|
+
<LimboImage
|
|
23
|
+
src={rightLogo}
|
|
24
|
+
alt={rightLogoAlt}
|
|
25
|
+
fallback="https://assets.lefebvre.es/media/img/preview-comp/comp-160-40.png"
|
|
26
|
+
class="w-auto max-h-[74px] object-contain"
|
|
27
|
+
width="160"
|
|
28
|
+
height="40"
|
|
29
|
+
loading={loading}
|
|
30
|
+
/>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</nav>
|
|
34
|
+
</header>
|
|
@@ -38,7 +38,7 @@ const hasContent = title || description;
|
|
|
38
38
|
<section class={`w-full flex flex-col ${hasContent ? 'justify-between' : 'justify-center'} items-center p-6 rounded-2xl bg-cover bg-center min-h-[289px] bg-white`} style={backgroundStyle}>
|
|
39
39
|
{hasContent && (
|
|
40
40
|
<div class="w-full max-w-7xl flex flex-col items-center justify-center text-left gap-4">
|
|
41
|
-
{title && <
|
|
41
|
+
{title && <p class="text-[#262626] font-poppins text-2xl font-semibold leading-8">{title}</p>}
|
|
42
42
|
{description && <p class="text-[#363942] font-inter text-base font-normal leading-6" set:html={description}></p>}
|
|
43
43
|
</div>
|
|
44
44
|
)}
|
|
@@ -60,7 +60,7 @@ const hasContent = title || description;
|
|
|
60
60
|
<section class={`w-full flex flex-col items-center p-6 rounded-2xl bg-cover bg-center min-h-[289px] my-8 ${hasContent ? 'justify-between gap-6' : ''}`} style={backgroundStyle}>
|
|
61
61
|
{hasContent && (
|
|
62
62
|
<div class={`w-full max-w-7xl flex flex-col items-center justify-center text-left gap-4 ${darkImage ? 'bg-white/50 backdrop-blur-sm rounded-2xl p-6' : ''}`}>
|
|
63
|
-
{title && <
|
|
63
|
+
{title && <p class="text-[#262626] font-poppins text-2xl font-semibold leading-8">{title}</p>}
|
|
64
64
|
{description && <p class="text-[#363942] font-inter text-base font-normal leading-6" set:html={description}></p>}
|
|
65
65
|
</div>
|
|
66
66
|
)}
|
|
@@ -4,6 +4,7 @@ import Modal_2025_Sagunto from './Modal_2025_Sagunto.astro';
|
|
|
4
4
|
|
|
5
5
|
const {
|
|
6
6
|
title,
|
|
7
|
+
titleTag = 'p',
|
|
7
8
|
description,
|
|
8
9
|
txtBtn = "Solicita una demo",
|
|
9
10
|
linkBtn,
|
|
@@ -30,6 +31,7 @@ const borderBgStyle = hasBorder
|
|
|
30
31
|
? `background: linear-gradient(90deg, var(--BrandBlue-1000, #001978) 0%, var(--BrightBlue-1000, #2134F1) 50%, var(--Pink-1000, #F81BBD) 95%);`
|
|
31
32
|
: '';
|
|
32
33
|
const hasContent = title || description;
|
|
34
|
+
const TitleTag = titleTag === 'p' ? 'p' : 'h3';
|
|
33
35
|
---
|
|
34
36
|
|
|
35
37
|
{hasBorder ? (
|
|
@@ -38,7 +40,7 @@ const hasContent = title || description;
|
|
|
38
40
|
<section class={`w-full flex flex-col ${hasContent ? 'justify-between' : 'justify-center'} items-center p-6 rounded-2xl bg-cover bg-center min-h-[289px] bg-white`} style={backgroundStyle}>
|
|
39
41
|
{hasContent && (
|
|
40
42
|
<div class="w-full max-w-7xl flex flex-col items-center justify-center text-left gap-4">
|
|
41
|
-
{title && <
|
|
43
|
+
{title && <TitleTag class="text-[#262626] font-[Poppins] text-2xl font-semibold leading-8">{title}</TitleTag>}
|
|
42
44
|
{description && <p class="text-[#627384] font-[Inter] text-base font-normal leading-6" set:html={description}></p>}
|
|
43
45
|
</div>
|
|
44
46
|
)}
|
|
@@ -60,7 +62,7 @@ const hasContent = title || description;
|
|
|
60
62
|
<section class={`w-full flex flex-col items-center p-6 rounded-2xl bg-cover bg-center min-h-[289px] my-8 ${hasContent ? 'justify-between' : ''}`} style={backgroundStyle}>
|
|
61
63
|
{hasContent && (
|
|
62
64
|
<div class="w-full max-w-7xl flex flex-col items-center justify-center text-left gap-4">
|
|
63
|
-
{title && <
|
|
65
|
+
{title && <TitleTag class="text-[#262626] font-[Poppins] text-2xl font-semibold leading-8">{title}</TitleTag>}
|
|
64
66
|
{description && <p class="text-[#627384] font-[Inter] text-base font-normal leading-6" set:html={description}></p>}
|
|
65
67
|
</div>
|
|
66
68
|
)}
|
|
@@ -60,7 +60,7 @@ const categories = [
|
|
|
60
60
|
<div class="max-w-7xl flex-wrap md:flex-nowrap w-full px-4 md:px-0 flex items-start mx-auto">
|
|
61
61
|
{categories.map(category => (
|
|
62
62
|
<div class="w-1/2 flex-nowrap px-2 md:px-4 mb-4 flex-1">
|
|
63
|
-
<
|
|
63
|
+
<p class="text-xl text-[#262626] font-semibold mb-4">{category.name}</p>
|
|
64
64
|
<ul>
|
|
65
65
|
{category.subcategories.length > 0 ? (
|
|
66
66
|
category.subcategories.map(sub => (
|
|
@@ -5,6 +5,7 @@ import * as CTA_2025_Formentera from '../carbins/CTA_2025_Formentera.ts';
|
|
|
5
5
|
import * as Cabecera_2025_Barcelona from '../carbins/Cabecera_2025_Barcelona.ts';
|
|
6
6
|
import * as Cabecera_2025_Madrid from '../carbins/Cabecera_2025_Madrid.ts';
|
|
7
7
|
import * as Cabecera_2026_Bilbao from '../carbins/Cabecera_2026_Bilbao.ts';
|
|
8
|
+
import * as Cabecera_2026_Dakota from '../carbins/Cabecera_2026_Dakota.ts';
|
|
8
9
|
import * as Cabecera_2026_Madrid from '../carbins/Cabecera_2026_Madrid.ts';
|
|
9
10
|
import * as Card_2025_Malta from '../carbins/Card_2025_Malta.ts';
|
|
10
11
|
import * as Contenido_2025_Alcorcon from '../carbins/Contenido_2025_Alcorcon.ts';
|
|
@@ -94,6 +95,7 @@ export const components = [
|
|
|
94
95
|
{component: Cabecera_2025_Barcelona},
|
|
95
96
|
{component: Cabecera_2025_Madrid},
|
|
96
97
|
{component: Cabecera_2026_Bilbao},
|
|
98
|
+
{component: Cabecera_2026_Dakota},
|
|
97
99
|
{component: Cabecera_2026_Madrid},
|
|
98
100
|
{component: Card_2025_Malta},
|
|
99
101
|
{component: Contenido_2025_Alcorcon},
|
package/src/index.ts
CHANGED
|
@@ -10,6 +10,7 @@ import CTA_2025_Formentera from './components/Astro/CTA_2025_Formentera.astro';
|
|
|
10
10
|
import Cabecera_2025_Barcelona from './components/Astro/Cabecera_2025_Barcelona.astro';
|
|
11
11
|
import Cabecera_2025_Madrid from './components/Astro/Cabecera_2025_Madrid.astro';
|
|
12
12
|
import Cabecera_2026_Bilbao from './components/Astro/Cabecera_2026_Bilbao.astro';
|
|
13
|
+
import Cabecera_2026_Dakota from './components/Astro/Cabecera_2026_Dakota.astro';
|
|
13
14
|
import Cabecera_2026_Madrid from './components/Astro/Cabecera_2026_Madrid.astro';
|
|
14
15
|
import Card_2025_Malta from './components/Astro/Card_2025_Malta.astro';
|
|
15
16
|
import Contenido_2025_Alcorcon from './components/Astro/Contenido_2025_Alcorcon.astro';
|
|
@@ -97,7 +98,7 @@ import ReactButton from './components/React/ReactButton.jsx';
|
|
|
97
98
|
// Exporta todos los componentes uno a uno para que puedan ser usados directamente.
|
|
98
99
|
|
|
99
100
|
|
|
100
|
-
export { VueButton, Author_2025_Algarve, Button, CTA_2025_Formentera, Cabecera_2025_Barcelona, Cabecera_2025_Madrid, Cabecera_2026_Bilbao, Cabecera_2026_Madrid, Card_2025_Malta, Contenido_2025_Alcorcon, Contenido_2025_Cordoba, Contenido_2025_Granada, Contenido_2025_Malaga, Contenido_2025_Montevideo, Contenido_2026_Cabra, Contenido_2026_Denia, 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_Moraira, Contenido_2026_Mostoles, Contenido_2026_Orcasitas, Contenido_2026_Oslo, Contenido_2026_Quito, Contenido_2026_Seattle, Contenido_2026_Sevilla, Contenido_2026_Tokyo, Contenido_2026_Ubeda, Contenido_2026_Yakarta, CorpFooter, CorpHero, CorpNavigation, Enlace_2025_Venecia, FAQ_2025_Hiroshima, Footer_2025_Napoles, Formulario_2025_Nara, Formulario_2025_Seul, Formulario_2025_Teruel, Formulario_2026_Carabanchel, Formulario_2026_Wichita, Galeria_2026_Segorbe, GeometricShape, GeometricShapeCard, HeaderCorporativo, Hero_2025_Benidorm, Hero_2026_Benidorm, ImageTextSimple, Imagen_2025_Bogota, Imagen_2025_Fukushima, Imagen_2026_Algar, Indice_2025_Taiwan, Mapa_2026_Girona, Modal_2025_Sagunto, Modal_2026_Almeria, Paginacion_2025_Paris, RRSS_2025_Pisa, SEO_Head_Section, SEO_Schema_Page, Separador_2025_Reinosa, Separador_2025_Toledo, Share_2025_Florencia, SpectrumSeparator, Sumario_2025_Beijing, Tabla_2025_Fuenlabrada, Tabla_2026_Cadiz, Tag_2025_Bolonia, TestHijo, TestPadre, Test_2026_Gaza, TextBox, TextImageBackground, TextImageBlock, TextImageCard, TextImageHeader, Texto_2025_Kyoto, Texto_2026_Alicante, Texto_2026_Castellon, Tiempo_2025_Londres, Titulo_2025_Algeciras, Titulo_2025_Santorini, VideoAutoplay, Video_2025_Polop, Video_2025_Valencia, Video_2026_Andujar, ReactButton };
|
|
101
|
+
export { VueButton, Author_2025_Algarve, Button, CTA_2025_Formentera, Cabecera_2025_Barcelona, Cabecera_2025_Madrid, Cabecera_2026_Bilbao, Cabecera_2026_Dakota, Cabecera_2026_Madrid, Card_2025_Malta, Contenido_2025_Alcorcon, Contenido_2025_Cordoba, Contenido_2025_Granada, Contenido_2025_Malaga, Contenido_2025_Montevideo, Contenido_2026_Cabra, Contenido_2026_Denia, 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_Moraira, Contenido_2026_Mostoles, Contenido_2026_Orcasitas, Contenido_2026_Oslo, Contenido_2026_Quito, Contenido_2026_Seattle, Contenido_2026_Sevilla, Contenido_2026_Tokyo, Contenido_2026_Ubeda, Contenido_2026_Yakarta, CorpFooter, CorpHero, CorpNavigation, Enlace_2025_Venecia, FAQ_2025_Hiroshima, Footer_2025_Napoles, Formulario_2025_Nara, Formulario_2025_Seul, Formulario_2025_Teruel, Formulario_2026_Carabanchel, Formulario_2026_Wichita, Galeria_2026_Segorbe, GeometricShape, GeometricShapeCard, HeaderCorporativo, Hero_2025_Benidorm, Hero_2026_Benidorm, ImageTextSimple, Imagen_2025_Bogota, Imagen_2025_Fukushima, Imagen_2026_Algar, Indice_2025_Taiwan, Mapa_2026_Girona, Modal_2025_Sagunto, Modal_2026_Almeria, Paginacion_2025_Paris, RRSS_2025_Pisa, SEO_Head_Section, SEO_Schema_Page, Separador_2025_Reinosa, Separador_2025_Toledo, Share_2025_Florencia, SpectrumSeparator, Sumario_2025_Beijing, Tabla_2025_Fuenlabrada, Tabla_2026_Cadiz, Tag_2025_Bolonia, TestHijo, TestPadre, Test_2026_Gaza, TextBox, TextImageBackground, TextImageBlock, TextImageCard, TextImageHeader, Texto_2025_Kyoto, Texto_2026_Alicante, Texto_2026_Castellon, Tiempo_2025_Londres, Titulo_2025_Algeciras, Titulo_2025_Santorini, VideoAutoplay, Video_2025_Polop, Video_2025_Valencia, Video_2026_Andujar, ReactButton };
|
|
101
102
|
|
|
102
103
|
|
|
103
104
|
// Exporta la función listComponents para que sea usado en el Pagebuilder en Vue.
|
|
@@ -119,6 +120,7 @@ export const components = {
|
|
|
119
120
|
Cabecera_2025_Barcelona: Cabecera_2025_Barcelona,
|
|
120
121
|
Cabecera_2025_Madrid: Cabecera_2025_Madrid,
|
|
121
122
|
Cabecera_2026_Bilbao: Cabecera_2026_Bilbao,
|
|
123
|
+
Cabecera_2026_Dakota: Cabecera_2026_Dakota,
|
|
122
124
|
Cabecera_2026_Madrid: Cabecera_2026_Madrid,
|
|
123
125
|
Card_2025_Malta: Card_2025_Malta,
|
|
124
126
|
Contenido_2025_Alcorcon: Contenido_2025_Alcorcon,
|