libreria-astro-lefebvre 0.0.28 → 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 -55
  38. package/src/components/Astro/Cabecera_2025_Madrid.astro +176 -176
  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 -203
  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,153 +1,153 @@
1
- ---
2
-
3
- import Repetidor_2025_Menorca from './Repetidor_2025_Menorca.astro';
4
- import Titulo_2025_Algeciras from './Titulo_2025_Algeciras.astro';
5
-
6
- const {
7
- items = [],
8
- } = Astro.props;
9
-
10
- const identifier = 'js-megablock'+ Math.random().toString(36).substring(2, 15);
11
-
12
- const structuredData = `<script type="application/ld+json">
13
- {
14
- "@context": "https://schema.org",
15
- "@type": "WebPage",
16
- "name": "Interactive Content Tabs",
17
- "description": "Interactive tabbed content component with multiple sections",
18
- "mainEntity": {
19
- "@type": "ItemList",
20
- "numberOfItems": ${items.length},
21
- "itemListElement": [
22
- ${items.map((item, index) => `{
23
- "@type": "ListItem",
24
- "position": ${index + 1},
25
- "name": "${item.name}",
26
- "description": "Interactive content section",
27
- ${item.image ? `"image": "${item.image}",` : ''}
28
- ${item.buttonUrl ? `"url": "${item.buttonUrl}"` : ''}
29
- }`).join(',\n ')}
30
- ]
31
- },
32
- "interactionStatistic": {
33
- "@type": "InteractionCounter",
34
- "interactionType": "https://schema.org/ClickAction",
35
- "userInteractionCount": "${items.length}"
36
- }
37
- }
38
- </script>`;
39
-
40
- ---
41
-
42
-
43
- <section class="w-full flex items-center justify-center">
44
- <article class="w-full flex flex-col items-center justify-center">
45
- <div class="w-full flex justify-center items-center relative text-[56px] text-center font inter leading-[64px] mt-[40px]">
46
- <!-- <div class="flex bg-transparent md:bg-gray-50 md:border md:border-[#B6B7BB] rounded-lg"> -->
47
- <div class="flex gap-1 md:gap-8 items-center">
48
- {items.map((item, index) => (
49
- <p class="text-base">
50
- {/* <a href={`#accordion${index + 1}`} class="btn py-[20px] px-[16px]">{item}</a> */}
51
- <button data-linkedto={`${identifier}${index + 1}`}
52
- class={`
53
- btn py-[14px] px-[20px] font-inter
54
- cursor-pointer border border-transparent
55
- hover:border hover:border-[#5F6168]
56
- hover:bg-white rounded-lg ${identifier}button
57
- ${item.default ? 'active' : ''}
58
- bg-F2F3F8 text-gray-100 max-w-[40px] max-h-[20px] text-[0px]
59
- md:bg-gray-50 md:text-black md:max-w-none md:max-h-none md:text-[16px]
60
- `}
61
- >{item.name}</button>
62
- </p>
63
- ))}
64
- </div>
65
- </div>
66
- <div class="lg:max-w-7xl md:w-full px-6 md:w-4/5 md:px-[0] col my-[40px]">
67
- {items.map((item, index) => (
68
- <div id={`${identifier}${index + 1}`} class={`${item.default ? '' : 'hidden'} collapse-arrow ${identifier}item`}>
69
-
70
-
71
- <div class="w-full flex-col flex md:flex-row gap-[16px] md:gap-[48px]">
72
- <div class="w-full md:w-1/2">
73
- <Titulo_2025_Algeciras
74
- title={item.name}
75
- tipo="h3-mb32"
76
- flexJustify="justify-start"
77
- />
78
- <Repetidor_2025_Menorca
79
- flexOrientationIcoText = "flex-row"
80
- flexOrientationBlockIcoText = "flex-col"
81
- positionFlex = 'items-start'
82
- positionBtnFlex = 'justify-start'
83
- items = {item.items}
84
- headingType = 'h4'
85
- showBtn = {true}
86
- btnLabel = "Ver experiencias de uso"
87
- buttonUrl={item.buttonUrl}
88
- />
89
- </div>
90
- <div class="w-full md:w-1/2 p-0 md:pr-2">
91
- <img src={item.image} alt="Imagen" class="w-full min-h-auto lg:min-h-full object-cover rounded-xl" />
92
- </div>
93
- </div>
94
-
95
- </div>
96
- ))}
97
- </div>
98
- </article>
99
- </section>
100
-
101
-
102
-
103
- <style>
104
- .bg-F2F3F8 {
105
- background-color: #F2F3F8;
106
- }
107
- .active{
108
- background-color: #ffffff;
109
- border: 1px solid #5F6168;
110
- color: black;
111
- max-width: none;
112
- max-height: none;
113
- font-size: 16px;
114
-
115
- &:hover{
116
- background-color: #ffffff;
117
- border: 1px solid #5F6168;
118
- }
119
- }
120
- </style>
121
-
122
- <script is:inline define:vars={{ identifier }}>
123
-
124
- document.querySelectorAll(`.${identifier}button`).forEach(btn => {
125
-
126
- btn.addEventListener('click', (e) => {
127
- const linkedId = btn.getAttribute('data-linkedto');
128
- const targetItem = document.getElementById(linkedId);
129
- if (targetItem) {
130
-
131
- const collapseCount = document.querySelectorAll(`.${identifier}item.collapse`).length;
132
- const hiddenCount = document.querySelectorAll(`.${identifier}item.hidden`).length;
133
- const desiredClass = collapseCount > hiddenCount ? 'collapse' : 'hidden';
134
-
135
- document.querySelectorAll(`.${identifier}item`).forEach(item => {
136
- if (item === targetItem) return;
137
- if (item.classList.contains(desiredClass)) return;
138
- item.classList.add(desiredClass);
139
- });
140
- targetItem.classList.toggle(desiredClass);
141
-
142
-
143
- document.querySelectorAll(`.${identifier}button`).forEach(item => {
144
- if (item === btn) return;
145
- item.classList.remove('active');
146
- });
147
- btn.classList.toggle('active');
148
- }
149
- });
150
- });
151
- </script>
152
-
1
+ ---
2
+
3
+ import Repetidor_2025_Menorca from './Repetidor_2025_Menorca.astro';
4
+ import Titulo_2025_Algeciras from './Titulo_2025_Algeciras.astro';
5
+
6
+ const {
7
+ items = [],
8
+ } = Astro.props;
9
+
10
+ const identifier = 'js-megablock'+ Math.random().toString(36).substring(2, 15);
11
+
12
+ const structuredData = `<script type="application/ld+json">
13
+ {
14
+ "@context": "https://schema.org",
15
+ "@type": "WebPage",
16
+ "name": "Interactive Content Tabs",
17
+ "description": "Interactive tabbed content component with multiple sections",
18
+ "mainEntity": {
19
+ "@type": "ItemList",
20
+ "numberOfItems": ${items.length},
21
+ "itemListElement": [
22
+ ${items.map((item, index) => `{
23
+ "@type": "ListItem",
24
+ "position": ${index + 1},
25
+ "name": "${item.name}",
26
+ "description": "Interactive content section",
27
+ ${item.image ? `"image": "${item.image}",` : ''}
28
+ ${item.buttonUrl ? `"url": "${item.buttonUrl}"` : ''}
29
+ }`).join(',\n ')}
30
+ ]
31
+ },
32
+ "interactionStatistic": {
33
+ "@type": "InteractionCounter",
34
+ "interactionType": "https://schema.org/ClickAction",
35
+ "userInteractionCount": "${items.length}"
36
+ }
37
+ }
38
+ </script>`;
39
+
40
+ ---
41
+
42
+
43
+ <section class="w-full flex items-center justify-center">
44
+ <article class="w-full flex flex-col items-center justify-center">
45
+ <div class="w-full flex justify-center items-center relative text-[56px] text-center font inter leading-[64px] mt-[40px]">
46
+ <!-- <div class="flex bg-transparent md:bg-gray-50 md:border md:border-[#B6B7BB] rounded-lg"> -->
47
+ <div class="flex gap-1 md:gap-8 items-center">
48
+ {items.map((item, index) => (
49
+ <p class="text-base">
50
+ {/* <a href={`#accordion${index + 1}`} class="btn py-[20px] px-[16px]">{item}</a> */}
51
+ <button data-linkedto={`${identifier}${index + 1}`}
52
+ class={`
53
+ btn py-[14px] px-[20px] font-inter
54
+ cursor-pointer border border-transparent
55
+ hover:border hover:border-[#5F6168]
56
+ hover:bg-white rounded-lg ${identifier}button
57
+ ${item.default ? 'active' : ''}
58
+ bg-F2F3F8 text-gray-100 max-w-[40px] max-h-[20px] text-[0px]
59
+ md:bg-gray-50 md:text-black md:max-w-none md:max-h-none md:text-[16px]
60
+ `}
61
+ >{item.name}</button>
62
+ </p>
63
+ ))}
64
+ </div>
65
+ </div>
66
+ <div class="lg:max-w-7xl md:w-full px-6 md:w-4/5 md:px-[0] col my-[40px]">
67
+ {items.map((item, index) => (
68
+ <div id={`${identifier}${index + 1}`} class={`${item.default ? '' : 'hidden'} collapse-arrow ${identifier}item`}>
69
+
70
+
71
+ <div class="w-full flex-col flex md:flex-row gap-[16px] md:gap-[48px]">
72
+ <div class="w-full md:w-1/2">
73
+ <Titulo_2025_Algeciras
74
+ title={item.name}
75
+ tipo="h3-mb32"
76
+ flexJustify="justify-start"
77
+ />
78
+ <Repetidor_2025_Menorca
79
+ flexOrientationIcoText = "flex-row"
80
+ flexOrientationBlockIcoText = "flex-col"
81
+ positionFlex = 'items-start'
82
+ positionBtnFlex = 'justify-start'
83
+ items = {item.items}
84
+ headingType = 'h4'
85
+ showBtn = {true}
86
+ btnLabel = "Ver experiencias de uso"
87
+ buttonUrl={item.buttonUrl}
88
+ />
89
+ </div>
90
+ <div class="w-full md:w-1/2 p-0 md:pr-2">
91
+ <img src={item.image} alt="Imagen" class="w-full min-h-auto lg:min-h-full object-cover rounded-xl" />
92
+ </div>
93
+ </div>
94
+
95
+ </div>
96
+ ))}
97
+ </div>
98
+ </article>
99
+ </section>
100
+
101
+
102
+
103
+ <style>
104
+ .bg-F2F3F8 {
105
+ background-color: #F2F3F8;
106
+ }
107
+ .active{
108
+ background-color: #ffffff;
109
+ border: 1px solid #5F6168;
110
+ color: black;
111
+ max-width: none;
112
+ max-height: none;
113
+ font-size: 16px;
114
+
115
+ &:hover{
116
+ background-color: #ffffff;
117
+ border: 1px solid #5F6168;
118
+ }
119
+ }
120
+ </style>
121
+
122
+ <script is:inline define:vars={{ identifier }}>
123
+
124
+ document.querySelectorAll(`.${identifier}button`).forEach(btn => {
125
+
126
+ btn.addEventListener('click', (e) => {
127
+ const linkedId = btn.getAttribute('data-linkedto');
128
+ const targetItem = document.getElementById(linkedId);
129
+ if (targetItem) {
130
+
131
+ const collapseCount = document.querySelectorAll(`.${identifier}item.collapse`).length;
132
+ const hiddenCount = document.querySelectorAll(`.${identifier}item.hidden`).length;
133
+ const desiredClass = collapseCount > hiddenCount ? 'collapse' : 'hidden';
134
+
135
+ document.querySelectorAll(`.${identifier}item`).forEach(item => {
136
+ if (item === targetItem) return;
137
+ if (item.classList.contains(desiredClass)) return;
138
+ item.classList.add(desiredClass);
139
+ });
140
+ targetItem.classList.toggle(desiredClass);
141
+
142
+
143
+ document.querySelectorAll(`.${identifier}button`).forEach(item => {
144
+ if (item === btn) return;
145
+ item.classList.remove('active');
146
+ });
147
+ btn.classList.toggle('active');
148
+ }
149
+ });
150
+ });
151
+ </script>
152
+
153
153
  <Fragment set:html={structuredData} />