libreria-astro-lefebvre 0.0.5 → 0.0.7

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 (91) hide show
  1. package/README.md +46 -46
  2. package/package.json +30 -30
  3. package/src/carbins/AstroButton.ts +34 -10
  4. package/src/carbins/CTA_2025_Formentera.ts +48 -0
  5. package/src/carbins/Cabecera_2025_Barcelona.ts +34 -0
  6. package/src/carbins/Cabecera_2025_Madrid.ts +34 -0
  7. package/src/carbins/Contenido_2025_Alcorcon.ts +76 -0
  8. package/src/carbins/Contenido_2025_Granada.ts +59 -0
  9. package/src/carbins/Contenido_2025_Malaga.ts +100 -0
  10. package/src/carbins/CorpFooter.ts +13 -0
  11. package/src/carbins/CorpHero.ts +20 -0
  12. package/src/carbins/FooterCorporativo.ts +13 -0
  13. package/src/carbins/Footer_2025_Napoles.ts +12 -0
  14. package/src/carbins/Formulario_2025_Seul.ts +56 -0
  15. package/src/carbins/GeometricShapeCard.ts +19 -8
  16. package/src/carbins/HeaderCorporativo.ts +34 -0
  17. package/src/carbins/ImageTextSimple.ts +45 -0
  18. package/src/carbins/Imagen_2025_Bogota.ts +69 -0
  19. package/src/carbins/ReactButton.ts +32 -8
  20. package/src/carbins/Repetidor_2025_Cabra.ts +12 -0
  21. package/src/carbins/Repetidor_2025_Dubai.ts +48 -0
  22. package/src/carbins/Repetidor_2025_Estocolmo.ts +12 -0
  23. package/src/carbins/Repetidor_2025_Menorca.ts +75 -0
  24. package/src/carbins/Repetidor_2025_Michigan.ts +21 -0
  25. package/src/carbins/Repetidor_2025_Orcasitas.ts +34 -0
  26. package/src/carbins/Repetidor_2025_Oslo.ts +12 -0
  27. package/src/carbins/Repetidor_2025_Quito.ts +20 -0
  28. package/src/carbins/Repetidor_2025_Seatle.ts +12 -0
  29. package/src/carbins/Repetidor_2025_Tokyo.ts +48 -0
  30. package/src/carbins/Repetidor_2025_Ubeda.ts +12 -0
  31. package/src/carbins/Repetidor_2025_Yakarta.ts +12 -0
  32. package/src/carbins/Separador_2025_Reinosa.ts +12 -0
  33. package/src/carbins/SpectrumSeparator.ts +12 -0
  34. package/src/carbins/TestPadre.ts +20 -0
  35. package/src/carbins/TextBox.ts +27 -0
  36. package/src/carbins/TextImageBackground.ts +47 -0
  37. package/src/carbins/TextImageBlock.ts +62 -0
  38. package/src/carbins/TextImageCard.ts +44 -0
  39. package/src/carbins/TextImageHeader.ts +68 -0
  40. package/src/carbins/Titulo_2025_Algeciras.ts +43 -0
  41. package/src/carbins/Titulo_2025_Santorini.ts +20 -0
  42. package/src/carbins/VideoAutoplay.ts +36 -0
  43. package/src/carbins/VueButton.ts +35 -11
  44. package/src/components/Astro/Button.astro +5 -5
  45. package/src/components/Astro/CTA_2025_Formentera.astro +20 -0
  46. package/src/components/Astro/Cabecera_2025_Barcelona.astro +17 -0
  47. package/src/components/Astro/Cabecera_2025_Madrid.astro +147 -0
  48. package/src/components/Astro/Contenido_2025_Alcorcon.astro +46 -0
  49. package/src/components/Astro/Contenido_2025_Granada.astro +67 -0
  50. package/src/components/Astro/Contenido_2025_Malaga.astro +125 -0
  51. package/src/components/Astro/CorpFooter.astro +107 -0
  52. package/src/components/Astro/CorpHero.astro +21 -0
  53. package/src/components/Astro/CorpNavigation.astro +87 -0
  54. package/src/components/Astro/FooterCorporativo.astro +82 -0
  55. package/src/components/Astro/Footer_2025_Napoles.astro +128 -0
  56. package/src/components/Astro/Formulario_2025_Seul.astro +63 -0
  57. package/src/components/Astro/GeometricShape.astro +0 -0
  58. package/src/components/Astro/GeometricShapeCard.astro +0 -0
  59. package/src/components/Astro/HeaderCorporativo.astro +26 -0
  60. package/src/components/Astro/ImageTextSimple.astro +56 -0
  61. package/src/components/Astro/Imagen_2025_Bogota.astro +43 -0
  62. package/src/components/Astro/Repetidor_2025_Cabra.astro +121 -0
  63. package/src/components/Astro/Repetidor_2025_Dubai.astro +30 -0
  64. package/src/components/Astro/Repetidor_2025_Estocolmo.astro +34 -0
  65. package/src/components/Astro/Repetidor_2025_Menorca.astro +42 -0
  66. package/src/components/Astro/Repetidor_2025_Michigan.astro +24 -0
  67. package/src/components/Astro/Repetidor_2025_Orcasitas.astro +189 -0
  68. package/src/components/Astro/Repetidor_2025_Oslo.astro +54 -0
  69. package/src/components/Astro/Repetidor_2025_Quito.astro +43 -0
  70. package/src/components/Astro/Repetidor_2025_Seatle.astro +32 -0
  71. package/src/components/Astro/Repetidor_2025_Tokyo.astro +55 -0
  72. package/src/components/Astro/Repetidor_2025_Ubeda.astro +19 -0
  73. package/src/components/Astro/Repetidor_2025_Yakarta.astro +136 -0
  74. package/src/components/Astro/Separador_2025_Reinosa.astro +4 -0
  75. package/src/components/Astro/SpectrumSeparator.astro +11 -0
  76. package/src/components/Astro/TestHijo.astro +5 -0
  77. package/src/components/Astro/TestPadre.astro +7 -0
  78. package/src/components/Astro/TextBox.astro +11 -0
  79. package/src/components/Astro/TextImageBackground.astro +18 -0
  80. package/src/components/Astro/TextImageBlock.astro +29 -0
  81. package/src/components/Astro/TextImageCard.astro +25 -0
  82. package/src/components/Astro/TextImageHeader.astro +31 -0
  83. package/src/components/Astro/Titulo_2025_Algeciras.astro +27 -0
  84. package/src/components/Astro/Titulo_2025_Santorini.astro +9 -0
  85. package/src/components/Astro/VideoAutoplay.astro +20 -0
  86. package/src/components/React/ReactButton.jsx +0 -0
  87. package/src/components/Vue/VueButton.vue +0 -0
  88. package/src/generated/componentRegistry.ts +86 -12
  89. package/src/index.ts +113 -5
  90. package/src/interfaces/types.ts +3 -0
  91. package/src/lib/functions.js +0 -0
@@ -0,0 +1,47 @@
1
+ // dame en un string el codigo html resultante de la renderizacion de este componente quitando las clases de tailwind y poniendo estilos inline de css, no debe tener codigo js, es para hcer una preview
2
+
3
+ import type { ComponentMetadata } from '../interfaces/types';
4
+
5
+ export const metadata: ComponentMetadata = {
6
+ component_name: 'TextImageBackground',
7
+ category: 'Contenido',
8
+ name: 'Contenido con imagen de fondo',
9
+ description: 'Tarjeta con imagen de background y texto para destacar contenido',
10
+ framework: 'Astro',
11
+ tags: ['card', 'interactivo','lefebvre.es'],
12
+ fields: [
13
+ {
14
+ name: 'title',
15
+ type: 'text',
16
+ label: 'Título',
17
+ mandatory: true,
18
+ example_value: 'Una marca más fuerte.<br>Un grupo más unido.<br>Un propósito compartido.'
19
+ },
20
+ {
21
+ name: 'description',
22
+ type: 'textArea',
23
+ label: 'Contenido principal (HTML)',
24
+ mandatory: true,
25
+ example_value: `<p>Somos un grupo europeo con más de 200 años de historia, presente en 8 países y comprometido con un mismo propósito: <b>activar el conocimiento para crear una sociedad más justa, eficiente y sostenible.</b></p>
26
+ <p>Unidos bajo una sola marca, compartimos una ambición clara: liderar la transformación del sector legal europeo con soluciones innovadoras y una inteligencia artificial segura, ética y entrenada con contenido experto.</p>
27
+ <p>Desde nuestra herencia editorial, construimos, para ti, el futuro del conocimiento jurídico europeo.</p>
28
+ `
29
+ },
30
+ {
31
+ name: 'image',
32
+ type: 'text',
33
+ label: 'URL de la imagen',
34
+ mandatory: true,
35
+ example_value: 'https://lefebvre.es/build/images/img-map.57810cde.webp'
36
+ },
37
+ {
38
+ name: 'orientation',
39
+ type: 'select',
40
+ label: 'Orientación de la figura',
41
+ options: ['right', 'left'],
42
+ options_labels: ['Derecha','Izquierda'],
43
+ example_value: 'right'
44
+ },
45
+ ]
46
+
47
+ };
@@ -0,0 +1,62 @@
1
+ // dame en un string el codigo html resultante de la renderizacion de este componente quitando las clases de tailwind y poniendo estilos inline de css, no debe tener codigo js, es para hcer una preview
2
+
3
+ import type { ComponentMetadata } from '../interfaces/types';
4
+
5
+ export const metadata: ComponentMetadata = {
6
+ component_name: 'TextImageBlock',
7
+ category: 'Contenido',
8
+ name: 'Contenido de texto con imagen',
9
+ description: 'Tarjeta con texto e imagen',
10
+ framework: 'Astro',
11
+ tags: ['card', 'interactivo','lefebvre.es'],
12
+ fields: [
13
+ {
14
+ name: 'title',
15
+ type: 'text',
16
+ label: 'Título',
17
+ mandatory: true,
18
+ example_value: 'Descubre GenIA-L, la IA jurídica más certera'
19
+ },
20
+ {
21
+ name: 'description',
22
+ type: 'textArea',
23
+ label: 'Contenido principal (HTML)',
24
+ mandatory: true,
25
+ example_value: `<p><b>No trabajes más, trabaja mejor.</b> GenIA-L no sólo domina la jurisprudencia, sino que piensa como tú: además de hablar el mismo idioma,
26
+ es la primera IA que razona de forma lógica cómo abordar los desafíos legales más complejos.</p>
27
+ <p>En Lefebvre hemos ido un paso más allá, combinando el llamado razonamiento profundo con la base de datos jurídica más completa. ¿El resultado? La IA
28
+ jurídica más certera del mercado, con la que obtienes respuestas claras, razonadas y fundamentadas para abordar cualquier reto legal que te plantees en cuestión de segundos.</p>
29
+ `
30
+ },
31
+ {
32
+ name: 'buttonText',
33
+ type: 'text',
34
+ label: 'Texto del botón',
35
+ mandatory: true,
36
+ example_value: 'Conoce más sobre GenIA-L'
37
+ },
38
+ {
39
+ name: 'buttonUrl',
40
+ type: 'text',
41
+ label: 'URL del botón',
42
+ mandatory: true,
43
+ example_value: 'https://lefebvre.es/ecosistema-productos/genial-inteligencia-artificial-generativa-ia/'
44
+ },
45
+ {
46
+ name: 'image',
47
+ type: 'text',
48
+ label: 'URL de la imagen',
49
+ mandatory: true,
50
+ example_value: 'https://lefebvre.es/build/images/home/img-pc.webp'
51
+ },
52
+ {
53
+ name: 'orientation',
54
+ type: 'select',
55
+ label: 'Orientación de la figura',
56
+ options: ['right', 'left'],
57
+ options_labels: ['Derecha','Izquierda'],
58
+ example_value: 'left'
59
+ },
60
+ ]
61
+
62
+ };
@@ -0,0 +1,44 @@
1
+ // dame en un string el codigo html resultante de la renderizacion de este componente quitando las clases de tailwind y poniendo estilos inline de css, no debe tener codigo js, es para hcer una preview
2
+
3
+ import type { ComponentMetadata } from '../interfaces/types';
4
+
5
+ export const metadata: ComponentMetadata = {
6
+ component_name: 'TextImageCard',
7
+ category: 'Contenido',
8
+ name: 'Card de texto con imagen',
9
+ description: 'Card con texto e imagen',
10
+ framework: 'Astro',
11
+ tags: ['card', 'interactivo','lefebvre.es'],
12
+ fields: [
13
+ {
14
+ name: 'title',
15
+ type: 'text',
16
+ label: 'Título',
17
+ mandatory: true,
18
+ example_value: '¿Por qué este cambio?'
19
+ },
20
+ {
21
+ name: 'description',
22
+ type: 'textArea',
23
+ label: 'Contenido principal (HTML)',
24
+ mandatory: true,
25
+ example_value: `<p>Porque liderar también significa evolucionar. Esta nueva identidad expresa con más fuerza quiénes somos hoy: una compañía tecnológica de conocimiento jurídico, más clara, más conectada y, más cercana.</p>`
26
+ },
27
+ {
28
+ name: 'image',
29
+ type: 'text',
30
+ label: 'URL de la imagen',
31
+ mandatory: true,
32
+ example_value: 'https://lefebvre.es/build/images/home/img-card1.webp'
33
+ },
34
+ {
35
+ name: 'orientation',
36
+ type: 'select',
37
+ label: 'Orientación de la figura',
38
+ options: ['right', 'left'],
39
+ options_labels: ['Derecha','Izquierda'],
40
+ example_value: 'right'
41
+ },
42
+ ]
43
+
44
+ };
@@ -0,0 +1,68 @@
1
+ // dame en un string el codigo html resultante de la renderizacion de este componente quitando las clases de tailwind y poniendo estilos inline de css, no debe tener codigo js, es para hcer una preview
2
+
3
+ import type { ComponentMetadata } from '../interfaces/types';
4
+
5
+ export const metadata: ComponentMetadata = {
6
+ component_name: 'TextImageHeader',
7
+ category: 'Contenido',
8
+ name: 'Contenido de texto con imagen y polígono con degradado',
9
+ description: 'Cabecera con texto destacado, imagen y botón de acción personalizable. Ideal para resaltar información clave en páginas principales.',
10
+ framework: 'Astro',
11
+ tags: ['card','lefebvre.es'],
12
+ fields: [
13
+ {
14
+ name: 'pretitle',
15
+ type: 'text',
16
+ label: 'Pretítulo',
17
+ mandatory: false,
18
+ example_value: 'CONÓCENOS'
19
+ },
20
+ {
21
+ name: 'title',
22
+ type: 'text',
23
+ label: 'Título',
24
+ mandatory: true,
25
+ example_value: 'Activamos el conocimiento, para una sociedad más justa, eficiente y sostenible'
26
+ },
27
+ {
28
+ name: 'description',
29
+ type: 'textArea',
30
+ label: 'Contenido principal (HTML)',
31
+ mandatory: true,
32
+ example_value: `<p><b>No trabajes más, trabaja mejor.</b> GenIA-L no sólo domina la jurisprudencia, sino que piensa como tú: además de hablar el mismo idioma,
33
+ es la primera IA que razona de forma lógica cómo abordar los desafíos legales más complejos.</p>
34
+ <p>En Lefebvre hemos ido un paso más allá, combinando el llamado razonamiento profundo con la base de datos jurídica más completa. ¿El resultado? La IA
35
+ jurídica más certera del mercado, con la que obtienes respuestas claras, razonadas y fundamentadas para abordar cualquier reto legal que te plantees en cuestión de segundos.</p>
36
+ `
37
+ },
38
+ {
39
+ name: 'buttonText',
40
+ type: 'text',
41
+ label: 'Texto del botón',
42
+ mandatory: true,
43
+ example_value: 'Descubre más sobre nosotros'
44
+ },
45
+ {
46
+ name: 'buttonUrl',
47
+ type: 'text',
48
+ label: 'URL del botón',
49
+ mandatory: true,
50
+ example_value: '/conocenos'
51
+ },
52
+ {
53
+ name: 'image',
54
+ type: 'text',
55
+ label: 'URL de la imagen',
56
+ mandatory: true,
57
+ example_value: 'https://lefebvre.es/build/images/bg-conocenos.d1b98242.webp'
58
+ },
59
+ {
60
+ name: 'orientation',
61
+ type: 'select',
62
+ label: 'Orientación de la figura',
63
+ options: ['right', 'left'],
64
+ options_labels: ['Derecha','Izquierda'],
65
+ example_value: 'left'
66
+ },
67
+ ]
68
+ };
@@ -0,0 +1,43 @@
1
+ import type { ComponentMetadata } from '../interfaces/types';
2
+
3
+ export const metadata: ComponentMetadata = {
4
+ component_name: 'Titulo_2025_Algeciras',
5
+ category: 'Título',
6
+ name: 'Título Genial 2025',
7
+ description: 'Título para el directorio de Genial en la corporativa de Lefebvre',
8
+ framework: 'Astro',
9
+ priority: 1,
10
+ tags: ['title', 'genial'],
11
+ fields: [
12
+ {
13
+ name: 'title',
14
+ type: 'text',
15
+ label: 'Texto del título',
16
+ mandatory: false,
17
+ example_value: 'Pruébalo ya'
18
+ },
19
+ {
20
+ name: 'description',
21
+ type: 'text',
22
+ label: 'Texto de la descripción',
23
+ mandatory: false,
24
+ example_value: 'Texto descriptivo del título'
25
+ },
26
+ {
27
+ name: 'tipo',
28
+ type: 'select',
29
+ label: 'Etiqueta del título',
30
+ options: ['h1', 'h2', 'h2-mb64', 'h3', 'h3-mb32', 'h4', 'h5', 'h6', 'p'],
31
+ options_labels: ['H1', 'H2', 'H2 con margen inferior 64px', 'H3', 'H3 con margen inferior 32px', 'H4', 'H5', 'H6', 'Párrafo'],
32
+ example_value: 'h1'
33
+ },
34
+ {
35
+ name: 'flexJustify',
36
+ type: 'select',
37
+ label: 'Justificación del contenido',
38
+ options: ['justify-start', 'justify-center'],
39
+ options_labels: ['Izquierda', 'Centro'],
40
+ example_value: 'justify-start'
41
+ }
42
+ ]
43
+ };
@@ -0,0 +1,20 @@
1
+ import type { ComponentMetadata } from '../interfaces/types';
2
+
3
+ export const metadata: ComponentMetadata = {
4
+ component_name: 'Titulo_2025_Santorini',
5
+ category: 'Título',
6
+ name: 'Texto azul Genial 2025',
7
+ description: 'Texto azul para el directorio de Genial en la corporativa de Lefebvre',
8
+ framework: 'Astro',
9
+ priority: 1,
10
+ tags: ['texto', 'genial'],
11
+ fields: [
12
+ {
13
+ name: 'description',
14
+ type: 'text',
15
+ label: 'Texto de la descripción',
16
+ mandatory: false,
17
+ example_value: 'Texto descriptivo del título'
18
+ }
19
+ ]
20
+ };
@@ -0,0 +1,36 @@
1
+ // dame en un string el codigo html resultante de la renderizacion de este componente quitando las clases de tailwind y poniendo estilos inline de css, no debe tener codigo js, es para hcer una preview
2
+
3
+ import type { ComponentMetadata } from '../interfaces/types';
4
+
5
+ export const metadata: ComponentMetadata = {
6
+ component_name: 'VideoAutoplay',
7
+ category: 'Contenido',
8
+ name: 'Sección con video autoplay',
9
+ description: 'Sección con video que se reproduce automáticamente',
10
+ framework: 'Astro',
11
+ tags: ['video', 'autoplay', 'lefebvre.es'],
12
+ fields: [
13
+ {
14
+ name: 'title',
15
+ type: 'text',
16
+ label: 'Título',
17
+ mandatory: true,
18
+ example_value: 'Hoy empieza un nuevo capítulo de nuestra historia'
19
+ },
20
+ {
21
+ name: 'description',
22
+ type: 'text',
23
+ label: 'Contenido principal',
24
+ mandatory: true,
25
+ example_value: 'Somos quienes te han acompañado durante décadas. Somos quienes se anticipan contigo al futuro del conocimiento jurídico.'
26
+ },
27
+ {
28
+ name: 'iframeSrc',
29
+ type: 'text',
30
+ label: 'URL del iframe',
31
+ mandatory: true,
32
+ example_value: 'https://player.vimeo.com/video/1087114916?controls=0&amp;autoplay=1&amp;muted=1&amp;loop=1&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479'
33
+ }
34
+ ]
35
+
36
+ };
@@ -1,11 +1,35 @@
1
-
2
- import type { ComponentMetadata } from '../interfaces/types';
3
-
4
- export const metadata: ComponentMetadata = {
5
- component_name: 'VueButton',
6
- name: 'Botón en Vue',
7
- description: 'Botón de prueba en Vue',
8
- framework: 'Vue',
9
- priority: 2,
10
- tags: ['boton', 'interactivo', 'ejemplo'],
11
- };
1
+
2
+ import type { ComponentMetadata } from '../interfaces/types';
3
+
4
+ export const metadata: ComponentMetadata = {
5
+ component_name: 'VueButton',
6
+ category: 'Call to Action',
7
+ name: 'Botón en Vue',
8
+ description: 'Botón de prueba en Vue',
9
+ framework: 'Vue',
10
+ priority: 2,
11
+ tags: ['boton', 'interactivo', 'ejemplo'],
12
+ fields: [
13
+ {
14
+ name: 'label',
15
+ type: 'text',
16
+ label: 'Texto del botón',
17
+ mandatory: true,
18
+ example_value: 'Botón en Vue'
19
+ },
20
+ {
21
+ name: 'href',
22
+ type: 'text',
23
+ label: 'Url de destino',
24
+ mandatory: true,
25
+ example_value: 'https://lefebvre.es'
26
+ },
27
+ {
28
+ name: 'target',
29
+ type: 'text',
30
+ label: 'Indicar si se abre en la misma ventana o en una nueva (_blank)',
31
+ mandatory: false,
32
+ example_value: '_blank'
33
+ },
34
+ ]
35
+ };
@@ -1,6 +1,6 @@
1
- ---
2
-
3
- const { label } = Astro.props;
4
-
5
- ---
1
+ ---
2
+
3
+ const { label } = Astro.props;
4
+
5
+ ---
6
6
  <button class="btn bg-cyan-600 text-gray-200 p-2 rounded-lg font-bold m-4 cursor-pointer transition-colors duration-300 hover:bg-red-600">{label}</button>
@@ -0,0 +1,20 @@
1
+ ---
2
+
3
+ const {
4
+ buttonText = "xxx",
5
+ buttonUrl = "#",
6
+ frontColor = 'white',
7
+ backColor = '#2134F1',
8
+ borderColor = '#2134F1',
9
+ } = Astro.props;
10
+
11
+ ---
12
+ <a
13
+ href={buttonUrl}
14
+ class="font-bold block m-8 p-3 px-5 rounded-xl transition-colors duration-300"
15
+ style={`border: 1px solid ${borderColor}; background-color: ${backColor}; color: ${frontColor};`}
16
+ onmouseover={`this.style.backgroundColor='${frontColor}'; this.style.color='${backColor}';`}
17
+ onmouseout={`this.style.backgroundColor='${backColor}'; this.style.color='${frontColor}';`}
18
+ >
19
+ {buttonText}
20
+ </a>
@@ -0,0 +1,17 @@
1
+ ---
2
+ const {
3
+ text,
4
+ link = "#",
5
+ subdirectory = "",
6
+ } = Astro.props;
7
+
8
+ ---
9
+
10
+ <section class="w-full flex pb-12">
11
+ <div class="max-w-7xl w-full mx-auto flex gap-2 bg-white text-[#363942] py-2 text-[14px]">
12
+ <a href={subdirectory + '/'}><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
13
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M11.607 2.26475C11.1639 2.32582 10.6509 2.48899 10.1624 2.72428C9.60055 2.99492 9.00859 3.34706 6.66084 4.80718C4.31852 6.26394 3.93572 6.53182 3.40193 7.08788C2.90464 7.60592 2.64374 8.07514 2.46575 8.77158C2.28122 9.49354 2.26758 9.74391 2.2535 12.6665C2.24172 15.1104 2.25893 16.3111 2.31649 17.061C2.44485 18.7333 2.80188 19.7175 3.55237 20.4678C4.28974 21.2051 5.2235 21.5501 6.83418 21.6806C7.50612 21.735 8.61888 21.75 11.9999 21.75C15.3809 21.75 16.4937 21.735 17.1656 21.6806C18.7575 21.5516 19.699 21.2081 20.4254 20.4911C20.9976 19.9264 21.341 19.2288 21.5307 18.2464C21.724 17.2457 21.7637 16.2126 21.7463 12.6447C21.7321 9.7458 21.7182 9.49232 21.534 8.77158C21.356 8.07514 21.0951 7.60592 20.5979 7.08788C20.0641 6.53182 19.6813 6.26394 17.3389 4.80718C14.9942 3.34893 14.4021 2.99663 13.8362 2.72324C13.4707 2.54669 13.003 2.3831 12.6586 2.3114C12.3947 2.25643 11.8444 2.23204 11.607 2.26475ZM11.6269 3.73267C11.5426 3.74947 11.3777 3.79614 11.2605 3.83636C10.6997 4.02896 10.2326 4.29571 7.66624 5.88901C5.52292 7.21964 5.04514 7.53681 4.65608 7.88712C3.98123 8.49478 3.78607 9.00003 3.72514 10.2972C3.69616 10.9139 3.69657 15.5359 3.72565 16.2378C3.80342 18.1147 4.03097 18.9336 4.63227 19.501C5.0201 19.867 5.59984 20.0807 6.49905 20.189C7.24869 20.2793 7.46553 20.283 11.9999 20.283C16.5343 20.283 16.7511 20.2793 17.5007 20.189C19.2668 19.9762 19.925 19.3378 20.1684 17.6016C20.2815 16.7945 20.3028 15.9639 20.291 12.8283C20.284 10.9976 20.272 10.0331 20.254 9.86956C20.1456 8.88351 19.9347 8.41609 19.3684 7.90674C18.9506 7.53089 18.535 7.25522 16.2312 5.82558C13.7693 4.29779 13.2896 4.02434 12.7476 3.83985C12.3354 3.69954 11.9691 3.6645 11.6269 3.73267Z" fill="#363942"/>
14
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.5553 14.1632C10.1564 14.1632 9.83307 14.4866 9.83307 14.8856V20.6644C9.83307 21.0634 9.50969 21.3868 9.11079 21.3868C8.71189 21.3868 8.38852 21.0634 8.38852 20.6644V14.8856C8.38852 13.6888 9.35864 12.7185 10.5553 12.7185H13.4444C14.6411 12.7185 15.6113 13.6888 15.6113 14.8856V20.6644C15.6113 21.0634 15.2879 21.3868 14.889 21.3868C14.4901 21.3868 14.1667 21.0634 14.1667 20.6644V14.8856C14.1667 14.4866 13.8433 14.1632 13.4444 14.1632H10.5553Z" fill="#363942"/>
15
+ </svg></a> / <a href={link}><span class="text-[#363942] font-normal" set:html={text}></span></a>
16
+ </div>
17
+ </section>
@@ -0,0 +1,147 @@
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: 'GenIA-L',
16
+ link: subdirectory + '/conoce-genia-l',
17
+ subcategories: [],
18
+ },
19
+ // {
20
+ // name: 'IA Jurídica',
21
+ // link: subdirectory + '/ia-juridica',
22
+ // subcategories: [],
23
+ // },
24
+ {
25
+ name: 'Casos reales',
26
+ link: subdirectory + '/casos-reales',
27
+ subcategories: [],
28
+ },
29
+ // {
30
+ // name: 'Novedades y recursos',
31
+ // link: subdirectory + '/novedades-y-recursos',
32
+ // subcategories: [],
33
+ // },
34
+ // {
35
+ // name: 'FAQs',
36
+ // link: subdirectory + '/faqs',
37
+ // subcategories: [],
38
+ // },
39
+ {
40
+ name: 'Contacto',
41
+ link: subdirectory + '/contacto',
42
+ subcategories: [],
43
+ },
44
+ ];
45
+ ---
46
+
47
+ <header class="sticky top-0 w-full bg-white z-50 flex flex-col justify-center align-center items-center p-0">
48
+ <nav class="px-4 py-2 w-full border-b-1 border-gray-400">
49
+
50
+ <div class="max-w-7xl flex items-center justify-between py-2 mx-auto">
51
+ <a href={subdirectory + '/'} class="hidden md:flex items-center">
52
+ <svg xmlns="http://www.w3.org/2000/svg" class="logo-svg" width="149" height="40" viewBox="0 0 149 40" fill="none">
53
+ <path d="M22.9413 11.6973H19.6725V28.3047H29.5979V25.4978H22.9413V11.6973Z" fill="#1D1D1B"/>
54
+ <path d="M14.3234 25.4978H7.66687V28.3047H17.5923V11.6973H14.3234V25.4978Z" fill="#1D1D1B"/>
55
+ <path d="M72.925 18.3636C72.3901 17.8373 71.7958 17.3695 71.0826 17.0771C70.3694 16.7848 69.5967 16.6093 68.7647 16.6093C67.9326 16.6093 67.16 16.7848 66.3873 17.0771C65.6741 17.3695 65.0204 17.8373 64.4855 18.3636C63.9506 18.8899 63.5345 19.5332 63.2374 20.2349C62.9402 20.9366 62.7619 21.7553 62.7619 22.574C62.7619 23.3926 62.9402 24.2113 63.2374 24.913C63.5345 25.6148 64.01 26.258 64.5449 26.7843C65.0798 27.3106 65.793 27.7199 66.5656 28.0708C67.3383 28.3632 68.1703 28.5386 69.0618 28.5386C69.9533 28.5386 70.8448 28.4216 71.5581 28.1293C72.3307 27.8369 73.0439 27.4275 73.7571 26.8428L71.7364 25.03C71.4392 25.3224 71.0232 25.5563 70.6071 25.7317C70.1317 25.9071 69.6562 25.9656 69.1807 25.9656C68.3486 25.9656 67.6949 25.7317 67.1005 25.3224C66.5062 24.8546 66.0902 24.3283 65.9119 23.5681H74.5892V22.7494C74.5892 21.8722 74.4703 21.0536 74.1731 20.2934C73.876 19.5332 73.4599 18.8899 72.9845 18.3636M65.8524 21.4044C66.0307 20.7027 66.3873 20.1179 66.9222 19.7086C67.4571 19.2993 68.0515 19.0654 68.7647 19.0654C69.4779 19.0654 70.0128 19.2993 70.5477 19.7086C71.0826 20.1179 71.4392 20.7027 71.6175 21.346H65.8524V21.4044ZM84.0985 16.5509C82.9693 16.5509 82.0778 17.428 82.0778 18.5391C82.0778 19.6501 82.9693 20.5273 84.0985 20.5273C85.2278 20.5273 86.1193 19.6501 86.1193 18.5391C86.1193 17.428 85.2278 16.5509 84.0985 16.5509ZM55.1544 11.6973H51.8855V28.3047H61.8109V25.4978H55.095V11.7558L55.1544 11.6973ZM79.641 11.9312C78.8684 12.5744 77.858 13.8609 77.858 15.9661V17.0187H76.1344V20.001H77.858V28.2462H80.9486V15.9661C80.9486 14.1533 82.1372 13.5101 83.8014 13.744C84.3957 13.744 85.0495 13.9779 85.4655 14.1533L86.2976 11.4634C85.8815 11.288 85.3466 11.1125 84.5146 10.9371C82.5533 10.5862 80.8297 10.9371 79.641 11.8727M134.558 16.5509C133.428 16.5509 132.537 17.428 132.537 18.5391C132.537 19.6501 133.428 20.5273 134.558 20.5273C135.687 20.5273 136.578 19.6501 136.578 18.5391C136.578 17.428 135.687 16.5509 134.558 16.5509ZM96.5796 18.3636C96.0447 17.8373 95.4503 17.3695 94.7372 17.0771C94.0239 16.7848 93.2513 16.6093 92.4192 16.6093C91.5872 16.6093 90.8145 16.7848 90.0419 17.0771C89.3287 17.3695 88.6749 17.8373 88.14 18.3636C87.6051 18.8899 87.1891 19.5332 86.8919 20.2349C86.5947 20.9366 86.4165 21.7553 86.4165 22.574C86.4165 23.3926 86.5947 24.2113 86.8919 24.913C87.1891 25.6148 87.6646 26.258 88.1995 26.7843C88.7344 27.3106 89.4476 27.7199 90.2202 28.0708C90.9928 28.3632 91.8249 28.5386 92.7164 28.5386C93.6079 28.5386 94.4994 28.4216 95.2126 28.1293C95.9852 27.8369 96.6985 27.4275 97.4117 26.8428L95.3909 25.03C95.0938 25.3224 94.6777 25.5563 94.2617 25.7317C93.7862 25.9071 93.3107 25.9656 92.8353 25.9656C92.0032 25.9656 91.3494 25.7317 90.7551 25.3224C90.1608 24.8546 89.7447 24.3283 89.5664 23.5681H98.2437V22.7494C98.2437 21.8722 98.1249 21.0536 97.8277 20.2934C97.5305 19.5332 97.1145 18.8899 96.639 18.3636M89.507 21.4044C89.6853 20.7027 90.0419 20.1179 90.5768 19.7086C91.1117 19.2993 91.706 19.0654 92.4192 19.0654C93.1324 19.0654 93.6674 19.2993 94.2022 19.7086C94.7372 20.1179 95.0938 20.7027 95.272 21.346H89.507V21.4044ZM147.336 18.3636C146.801 17.8373 146.207 17.3695 145.493 17.0771C144.78 16.7848 144.008 16.6093 143.176 16.6093C142.343 16.6093 141.571 16.7848 140.798 17.0771C140.085 17.3695 139.431 17.8373 138.896 18.3636C138.361 18.8899 137.945 19.5332 137.648 20.2349C137.351 20.9366 137.173 21.7553 137.173 22.574C137.173 23.3926 137.351 24.2113 137.648 24.913C137.945 25.6148 138.421 26.258 138.956 26.7843C139.491 27.3106 140.204 27.7199 140.976 28.0708C141.749 28.3632 142.581 28.5386 143.473 28.5386C144.364 28.5386 145.256 28.4216 145.969 28.1293C146.742 27.8369 147.455 27.4275 148.168 26.8428L146.147 25.03C145.85 25.3224 145.434 25.5563 145.018 25.7317C144.542 25.9071 144.067 25.9656 143.592 25.9656C142.759 25.9656 142.106 25.7317 141.511 25.3224C140.917 24.8546 140.501 24.3283 140.323 23.5681H149V22.7494C149 21.8722 148.881 21.0536 148.584 20.2934C148.287 19.5332 147.871 18.8899 147.395 18.3636M140.263 21.4044C140.442 20.7027 140.798 20.1179 141.333 19.7086C141.868 19.2993 142.462 19.0654 143.176 19.0654C143.889 19.0654 144.424 19.2993 144.959 19.7086C145.493 20.1179 145.85 20.7027 146.028 21.346H140.263V21.4044ZM128.198 28.3047H131.289V16.7848H128.198V28.3047ZM119.878 24.4452L116.668 16.7848H113.34L118.392 28.3047H121.363L126.415 16.7848H123.146L119.937 24.4452H119.878ZM111.141 18.3636C110.606 17.8373 109.952 17.428 109.239 17.0771C108.526 16.7848 107.753 16.6093 106.921 16.6093C106.089 16.6093 105.732 16.7263 105.197 16.9017C104.663 17.0771 104.128 17.3695 103.652 17.6619V11.6388H100.562V28.2462H103.593V27.486C104.068 27.7784 104.544 28.0123 105.138 28.1877C105.673 28.3632 106.267 28.4216 106.862 28.4216C107.456 28.4216 108.466 28.2462 109.239 27.9538C109.952 27.6614 110.606 27.2521 111.141 26.7258C111.676 26.1995 112.092 25.5563 112.448 24.8546C112.746 24.1528 112.924 23.3342 112.924 22.5155C112.924 21.6968 112.746 20.9366 112.448 20.1764C112.151 19.4747 111.735 18.8315 111.2 18.3052M108.882 24.913C108.229 25.5563 107.396 25.8487 106.446 25.8487C105.495 25.8487 105.376 25.7317 104.9 25.5563C104.425 25.3808 104.009 25.0885 103.652 24.7961V20.2934C104.009 19.9425 104.425 19.6501 104.9 19.4747C105.376 19.2993 105.911 19.1823 106.446 19.1823C107.396 19.1823 108.169 19.4747 108.882 20.1179C109.536 20.7612 109.893 21.5214 109.893 22.5155C109.893 23.5096 109.536 24.2698 108.882 24.913Z" fill="#1D1D1B"/>
56
+ <path d="M34.7092 40L2.49621 38.7135C1.0698 38.7135 0 37.4855 0 36.1405V3.74443C0 2.45794 1.30754 1.34688 2.61508 1.28841L34.8281 0.00191719C36.4922 -0.0565595 37.8592 1.22993 37.8592 2.86728V36.9007C37.8592 38.5966 36.4328 40 34.6498 39.9415H34.7092V40ZM3.86318 35.7897L33.8771 36.6083C34.2932 36.6083 34.7092 36.2575 34.7092 35.8481V3.91986C34.7092 3.51052 34.412 3.21814 33.996 3.21814L3.80375 4.27072C3.26885 4.27072 2.85281 4.73853 2.85281 5.26482V34.7956C2.85281 35.3219 3.26885 35.7312 3.80375 35.7897H3.86318Z" fill="#1D1D1B"/>
57
+ </svg>
58
+ </a>
59
+ <a href="#" class="flex md:hidden items-center">
60
+ <svg xmlns="http://www.w3.org/2000/svg" width="39" height="40" viewBox="0 0 39 40" fill="none">
61
+ <path d="M23.672 11.6973H20.4178V28.3047H30.2988V25.4978H23.672V11.6973Z" fill="#1D1D1B"/>
62
+ <path d="M15.0927 25.4978H8.46588V28.3047H18.3469V11.6973H15.0927V25.4978Z" fill="#1D1D1B"/>
63
+ <path d="M35.3872 40L3.31835 38.7135C1.89833 38.7135 0.833313 37.4855 0.833313 36.1405V3.74443C0.833313 2.45794 2.135 1.34688 3.43669 1.28841L35.5056 0.00191719C37.1623 -0.0565595 38.5231 1.22993 38.5231 2.86728V36.9007C38.5231 38.5966 37.1031 40 35.3281 39.9415H35.3872V40ZM4.67921 35.7897L34.5589 36.6083C34.973 36.6083 35.3872 36.2575 35.3872 35.8481V3.91986C35.3872 3.51052 35.0914 3.21814 34.6772 3.21814L4.62004 4.27072C4.08753 4.27072 3.67336 4.73853 3.67336 5.26482V34.7956C3.67336 35.3219 4.08753 35.7312 4.62004 35.7897H4.67921Z" fill="#1D1D1B"/>
64
+ </svg>
65
+ </a>
66
+
67
+ <div class="flex items-center gap-4">
68
+ <div class="flex items-center gap-4">
69
+ <a href={url} class="px-5 py-3 font-inter font-semibold text-base border-1 border-[#2134F1] text-[#2134F1] hover:text-[#262626] hover:border-[#262626] transition-all duration-300 rounded-lg cursor-pointer shadow-sm">{label}</a>
70
+ </div>
71
+ <button onclick="document.getElementById('navbar-default').classList.toggle('hidden'); event.target.classList.toggle('bg-gray-50');"
72
+ 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
73
+ focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600"
74
+ aria-controls="navbar-default" aria-expanded="false">
75
+ <span class="sr-only pointer-events-none">Abrir menú</span>
76
+ <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">
77
+ <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"/>
78
+ </svg>
79
+ </button>
80
+
81
+ </div>
82
+
83
+ </div>
84
+ </nav>
85
+ <nav class="w-full flex items-center border-b-1 border-gray-300">
86
+ <ul class="max-w-7xl hidden lg:flex items-center justify-start gap-8 mx-auto">
87
+ {categories.map(category => (
88
+ <li class="relative group px-8 py-6 border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600">
89
+ <a href={category.link} class="flex items-center">
90
+ <span>
91
+ {category.name}
92
+ </span>
93
+ {category.subcategories.length > 0 && (
94
+ <span class="ml-1 text-xs">∨</span>
95
+ )}
96
+ </a>
97
+ {category.subcategories.length > 0 && (
98
+ <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]"
99
+
100
+ >
101
+ {category.subcategories.map(sub => (
102
+ <li class="hover:text-indigo-900 hover:font-semibold">
103
+ <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
104
+ </li>
105
+ ))}
106
+ </ul>
107
+ )}
108
+ </li>
109
+ ))}
110
+ </ul>
111
+ </nav>
112
+
113
+ <nav class="hidden w-full bg-white border-gray-200" id="navbar-default">
114
+ <div class="max-w-screen-xl flex flex-wrap items-center justify-between mx-auto">
115
+
116
+ <div class="w-full lg:flex lg:w-auto">
117
+ <ul>
118
+ {categories.map(category => (
119
+ <li class="relative group px-6 py-4 border-b-2 border-transparent hover:border-b-2 hover:border-indigo-600">
120
+ <a href={category.link} class="flex items-center">
121
+ <span class="hover:underline">
122
+ {category.name}
123
+ </span>
124
+ {category.subcategories.length > 0 && (
125
+ <span class="ml-1 text-xs">∨</span>
126
+ )}
127
+ </a>
128
+ {category.subcategories.length > 0 && (
129
+ <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]"
130
+
131
+ >
132
+ {category.subcategories.map(sub => (
133
+ <li class="hover:text-indigo-900 hover:font-semibold">
134
+ <a href={sub.link} class="block px-4 py-3 hover:bg-gray-100">{sub.name}</a>
135
+ </li>
136
+ ))}
137
+ </ul>
138
+ )}
139
+ </li>
140
+ ))}
141
+ </ul>
142
+ </div>
143
+ </div>
144
+ </nav>
145
+
146
+
147
+ </header>
@@ -0,0 +1,46 @@
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
+ <section class="w-full flex items-center justify-center">
17
+
18
+ <article class="w-full flex flex-col items-center justify-center p-6">
19
+
20
+ <div class="max-w-7xl h-full flex justify-center items-center aspect-auto relative md:w-4/5 lg:aspect-video">
21
+ <div class="absolute inset-0">
22
+
23
+ {src && src !== "" ? (
24
+ <img src={src} alt={alt} title={title} class="object-cover object-center w-full h-full rounded-2xl">
25
+ ) : (
26
+ <video autoplay loop muted playsinline class="object-cover object-center w-full h-full rounded-2xl">
27
+ <source src={iframeSrc} type="video/mp4" />
28
+ </video>
29
+ )}
30
+ </div>
31
+
32
+ <div class="w-4/5 relative z-10 flex flex-col justify-center items-center h-full text-center p-0 py-8 md:p-6">
33
+ <h2 class="text-[#262626] font-poppins text-[72px] font-semibold text-center leading-none">{title}</h2>
34
+ <p class="text-[#262626] font-poppins text-[36px] font-normal leading-[32px] text-center mb-8">{subtitle}</p>
35
+ <div class="text-[#363942] font-inter text-xl font-normal leading-[28px] mb-8 text-center" set:html={description}></div>
36
+
37
+ {showBtn ? (
38
+ <a href={linkBtn} target="_self" class="text-[#ffffff] font-poppins font-semibold bg-[#2134F1] px-[28px] py-[14px] border-[#2134F1] rounded-xl hover:bg-[#ffffff] transition-all duration-300 hover:text-[#262626] hover:border border-[#262626]">{txtBtn}</a>
39
+ ) : (
40
+ <div class="flex justify-center"></div>
41
+ )}
42
+ </div>
43
+ </div>
44
+ </article>
45
+ </section>
46
+