libreria-astro-lefebvre 0.1.44 → 0.1.46
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_Jaen.ts +3 -3
- 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_Jaen.astro +1 -0
- package/src/components/Astro/Contenido_2026_Mostoles.astro +4 -2
- 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
|
+
};
|
|
@@ -60,10 +60,10 @@ export const metadata: ComponentMetadata = {
|
|
|
60
60
|
{
|
|
61
61
|
name: 'tipo',
|
|
62
62
|
type: 'select',
|
|
63
|
-
help: 'Etiqueta HTML y estilo del título. Cada opción aplica estilos distintos: "h1 categoría blog" 40px centrado normal, "h1 autor blog" 40px izquierda semibold, "h1 post blog" 40px centrado semibold, "h1 post enriquecido" 40px izquierda semibold, "h2 blog" 28px/32px izquierda normal, "h2" 36px/40px centrado normal, "h3" 20px/24px izquierda semibold, "h4" xl izquierda semibold. Si se elige un valor fuera de la lista, el título se renderiza como párrafo simple',
|
|
63
|
+
help: 'Etiqueta HTML y estilo del título. Cada opción aplica estilos distintos: "h1 categoría blog" 40px centrado normal, "h1 autor blog" 40px izquierda semibold, "h1 post blog" 40px centrado semibold, "h1 post enriquecido" 40px izquierda semibold, "h2 blog" 28px/32px izquierda normal, "h2" 36px/40px centrado normal, "h3" 20px/24px izquierda semibold, "h4" xl izquierda semibold, "h3 (como párrafo)" mismo estilo visual que H3 pero renderizado como <p> (sin que cuente como encabezado en la jerarquía SEO). Si se elige un valor fuera de la lista, el título se renderiza como párrafo simple',
|
|
64
64
|
label: 'Etiqueta del título',
|
|
65
|
-
options: ['h1-blog-categoria', 'h1-blog-autor', 'h1-blog-post', 'h1-blog-postenriquecido', 'h2-blog', 'h2', 'h3', 'h4'],
|
|
66
|
-
options_labels: ['H1 categoría blog', 'H1 autor blog', 'H1 post blog', 'H1 post enriquecido blog', 'H2 blog', 'H2', 'H3', 'H4'],
|
|
65
|
+
options: ['h1-blog-categoria', 'h1-blog-autor', 'h1-blog-post', 'h1-blog-postenriquecido', 'h2-blog', 'h2', 'h3', 'h3-p', 'h4'],
|
|
66
|
+
options_labels: ['H1 categoría blog', 'H1 autor blog', 'H1 post blog', 'H1 post enriquecido blog', 'H2 blog', 'H2', 'H3', 'H3 (como párrafo)', 'H4'],
|
|
67
67
|
example_value: 'h1-blog-autor'
|
|
68
68
|
},
|
|
69
69
|
{
|
|
@@ -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>
|
|
@@ -31,6 +31,7 @@ import RRSS_2025_Pisa from "./RRSS_2025_Pisa.astro";
|
|
|
31
31
|
: tipo === "h2" ? <h2 class="font-poppins text-[#262626] text-[36px] md:text-[40px] font-normal text-center leading-[48px] my-8 md:mb-8" set:html={title}></h2>
|
|
32
32
|
: tipo === "h3" ? <h3 class="font-poppins text-[#262626] text-[20px] md:text-[24px] font-semibold text-left leading-8 my-4" set:html={title}></h3>
|
|
33
33
|
: tipo === "h4" ? <h4 class="font-poppins text-[#262626] text-xl font-semibold text-left my-1" set:html={title}></h4>
|
|
34
|
+
: tipo === "h3-p" ? <p class="font-poppins text-[#262626] text-[20px] md:text-[24px] font-semibold text-left leading-8 my-4" set:html={title}></p>
|
|
34
35
|
: <p>{title}</p>
|
|
35
36
|
}
|
|
36
37
|
<div class="w-full flex gap-8 justify-start items-center">
|
|
@@ -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
|
)}
|
|
@@ -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,
|