@greghowe79/the-lib 2.8.7 → 2.8.8

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.
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("@builder.io/qwik/jsx-runtime");
4
+ const qwik = require("@builder.io/qwik");
5
+ const styles = require("./styles.css.qwik.cjs");
6
+ const AnimatedTextSlider = qwik.component$(({ headline, subtitle, items, duration, reverse }) => {
7
+ qwik.useStyles$(styles);
8
+ const activeIndex = qwik.useSignal(0);
9
+ const isPaused = qwik.useSignal(false);
10
+ const isCarousel = qwik.useSignal(false);
11
+ const carouselRef = qwik.useSignal();
12
+ const wrapperRef = qwik.useSignal();
13
+ const durationMs = qwik.useComputed$(() => duration || 8e3);
14
+ const updateCarouselMode = qwik.$(() => {
15
+ isCarousel.value = window.innerWidth < 1024;
16
+ });
17
+ qwik.useOnWindow("resize", updateCarouselMode);
18
+ const fixCarouselHeight = qwik.$(() => {
19
+ const wrapper = wrapperRef.value;
20
+ if (!wrapper) return;
21
+ if (!isCarousel.value) {
22
+ wrapper.style.height = "";
23
+ return;
24
+ }
25
+ wrapper.style.height = "";
26
+ let maxH = 0;
27
+ for (let i = 0; i < wrapper.children.length; i++) {
28
+ maxH = Math.max(maxH, wrapper.children[i].scrollHeight);
29
+ }
30
+ if (maxH > 0) {
31
+ wrapper.style.height = `${maxH}px`;
32
+ }
33
+ });
34
+ qwik.useOnWindow("resize", fixCarouselHeight);
35
+ qwik.useVisibleTask$(() => {
36
+ updateCarouselMode();
37
+ fixCarouselHeight();
38
+ }, {
39
+ strategy: "document-idle"
40
+ });
41
+ qwik.useVisibleTask$(({ cleanup }) => {
42
+ const el = carouselRef.value;
43
+ if (!el) return;
44
+ let scrollTimeout;
45
+ const onScroll = () => {
46
+ clearTimeout(scrollTimeout);
47
+ scrollTimeout = setTimeout(() => {
48
+ if (!isCarousel.value) return;
49
+ const newIndex = Math.round(el.scrollLeft / el.offsetWidth);
50
+ if (newIndex >= 0 && newIndex < items.length && newIndex !== activeIndex.value) {
51
+ activeIndex.value = newIndex;
52
+ }
53
+ }, 100);
54
+ };
55
+ el.addEventListener("scroll", onScroll, {
56
+ passive: true
57
+ });
58
+ cleanup(() => {
59
+ el.removeEventListener("scroll", onScroll);
60
+ clearTimeout(scrollTimeout);
61
+ });
62
+ });
63
+ qwik.useVisibleTask$(({ track, cleanup }) => {
64
+ const index = track(() => activeIndex.value);
65
+ const paused = track(() => isPaused.value);
66
+ const ms = track(() => durationMs.value);
67
+ if (paused) return;
68
+ const timer = setTimeout(() => {
69
+ activeIndex.value = (index + 1) % items.length;
70
+ }, ms);
71
+ cleanup(() => clearTimeout(timer));
72
+ });
73
+ qwik.useVisibleTask$(({ track }) => {
74
+ const index = track(() => activeIndex.value);
75
+ if (!isCarousel.value) return;
76
+ const el = carouselRef.value;
77
+ if (!el) return;
78
+ el.scrollTo({
79
+ left: index * el.offsetWidth,
80
+ behavior: "smooth"
81
+ });
82
+ });
83
+ return /* @__PURE__ */ jsxRuntime.jsx("div", {
84
+ class: `glue-page ${reverse ? "glue-reverse" : ""}`,
85
+ style: {
86
+ "--duration": `${durationMs.value}ms`
87
+ },
88
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
89
+ class: "glue-grid",
90
+ children: [
91
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
92
+ class: "glue-cell-pre-title"
93
+ }),
94
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
95
+ class: "glue-cell-title",
96
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", {
97
+ class: "glue-text-center",
98
+ children: [
99
+ /* @__PURE__ */ jsxRuntime.jsx("h2", {
100
+ class: "glue-headline",
101
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
102
+ class: "glue-font-weight-medium",
103
+ children: headline
104
+ })
105
+ }),
106
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("div", {
107
+ class: "glue-spacer glue-body",
108
+ children: subtitle
109
+ }),
110
+ /* @__PURE__ */ jsxRuntime.jsx(qwik.Slot, {
111
+ name: "header-extra"
112
+ })
113
+ ]
114
+ })
115
+ }),
116
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
117
+ class: "glue-cell-post-title"
118
+ }),
119
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
120
+ class: "glue-cell-pre-slider"
121
+ }),
122
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
123
+ class: "glue-slider-image-container",
124
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
125
+ class: "image-wrapper",
126
+ children: items.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs("picture", {
127
+ class: `slide-picture ${activeIndex.value === index ? "show" : ""}`,
128
+ "data-crop": "animatedTextImage-1x1",
129
+ children: [
130
+ /* @__PURE__ */ jsxRuntime.jsx("source", {
131
+ srcset: slide.imageSources.webp,
132
+ type: "image/webp",
133
+ width: "999",
134
+ height: "1000"
135
+ }),
136
+ /* @__PURE__ */ jsxRuntime.jsx("source", {
137
+ srcset: slide.imageSources.fallback,
138
+ width: "999",
139
+ height: "1000"
140
+ }),
141
+ /* @__PURE__ */ jsxRuntime.jsx("img", {
142
+ class: "Image slide-image-element",
143
+ alt: slide.title,
144
+ srcset: slide.imageSources.fallback,
145
+ width: "999",
146
+ height: "1000",
147
+ loading: "lazy",
148
+ src: slide.imageSources.src
149
+ })
150
+ ]
151
+ }, index))
152
+ })
153
+ }),
154
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
155
+ class: "animated-text-list",
156
+ ref: carouselRef,
157
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
158
+ class: "glue-item-animated-wrapper",
159
+ ref: wrapperRef,
160
+ children: items.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", {
161
+ class: `item-animated ${activeIndex.value === index ? "is-active" : ""}`,
162
+ onClick$: () => activeIndex.value = index,
163
+ children: [
164
+ /* @__PURE__ */ jsxRuntime.jsx("h3", {
165
+ class: "glue-font-weight-medium item-title",
166
+ children: slide.title
167
+ }),
168
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
169
+ class: "accordion-content",
170
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
171
+ class: "accordion-inner glue-body",
172
+ children: slide.description
173
+ })
174
+ }),
175
+ /* @__PURE__ */ jsxRuntime.jsx("div", {
176
+ class: "progress-track",
177
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", {
178
+ class: "progress-bar"
179
+ })
180
+ })
181
+ ]
182
+ }, index))
183
+ })
184
+ }),
185
+ /* @__PURE__ */ jsxRuntime.jsxs("div", {
186
+ class: "glue-pagination",
187
+ children: [
188
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
189
+ class: "pagination-arrow",
190
+ onClick$: () => {
191
+ if (activeIndex.value > 0) activeIndex.value--;
192
+ },
193
+ disabled: activeIndex.value === 0,
194
+ "aria-label": "Slide precedente",
195
+ children: /* @__PURE__ */ jsxRuntime.jsx("svg", {
196
+ width: "24",
197
+ height: "24",
198
+ role: "presentation",
199
+ "aria-hidden": "true",
200
+ viewBox: "0 0 24 24",
201
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", {
202
+ d: "M16.41 5.41L15 4l-8 8 8 8 1.41-1.41L9.83 12"
203
+ })
204
+ })
205
+ }),
206
+ /* @__PURE__ */ jsxRuntime.jsxs("span", {
207
+ class: "pagination-number",
208
+ children: [
209
+ activeIndex.value + 1,
210
+ " / ",
211
+ items.length
212
+ ]
213
+ }),
214
+ /* @__PURE__ */ jsxRuntime.jsx("button", {
215
+ class: "pagination-arrow",
216
+ onClick$: () => {
217
+ if (activeIndex.value < items.length - 1) activeIndex.value++;
218
+ },
219
+ disabled: activeIndex.value === items.length - 1,
220
+ "aria-label": "Slide successiva",
221
+ children: /* @__PURE__ */ jsxRuntime.jsx("svg", {
222
+ width: "24",
223
+ height: "24",
224
+ role: "presentation",
225
+ "aria-hidden": "true",
226
+ viewBox: "0 0 24 24",
227
+ children: /* @__PURE__ */ jsxRuntime.jsx("path", {
228
+ d: "M7.59 18.59L9 20l8-8-8-8-1.41 1.41L14.17 12"
229
+ })
230
+ })
231
+ })
232
+ ]
233
+ })
234
+ ]
235
+ })
236
+ });
237
+ });
238
+ exports.AnimatedTextSlider = AnimatedTextSlider;
@@ -0,0 +1,238 @@
1
+ import { jsx, jsxs } from "@builder.io/qwik/jsx-runtime";
2
+ import { component$, useStyles$, useSignal, useComputed$, $, useOnWindow, useVisibleTask$, Slot } from "@builder.io/qwik";
3
+ import styles from "./styles.css.qwik.mjs";
4
+ const AnimatedTextSlider = component$(({ headline, subtitle, items, duration, reverse }) => {
5
+ useStyles$(styles);
6
+ const activeIndex = useSignal(0);
7
+ const isPaused = useSignal(false);
8
+ const isCarousel = useSignal(false);
9
+ const carouselRef = useSignal();
10
+ const wrapperRef = useSignal();
11
+ const durationMs = useComputed$(() => duration || 8e3);
12
+ const updateCarouselMode = $(() => {
13
+ isCarousel.value = window.innerWidth < 1024;
14
+ });
15
+ useOnWindow("resize", updateCarouselMode);
16
+ const fixCarouselHeight = $(() => {
17
+ const wrapper = wrapperRef.value;
18
+ if (!wrapper) return;
19
+ if (!isCarousel.value) {
20
+ wrapper.style.height = "";
21
+ return;
22
+ }
23
+ wrapper.style.height = "";
24
+ let maxH = 0;
25
+ for (let i = 0; i < wrapper.children.length; i++) {
26
+ maxH = Math.max(maxH, wrapper.children[i].scrollHeight);
27
+ }
28
+ if (maxH > 0) {
29
+ wrapper.style.height = `${maxH}px`;
30
+ }
31
+ });
32
+ useOnWindow("resize", fixCarouselHeight);
33
+ useVisibleTask$(() => {
34
+ updateCarouselMode();
35
+ fixCarouselHeight();
36
+ }, {
37
+ strategy: "document-idle"
38
+ });
39
+ useVisibleTask$(({ cleanup }) => {
40
+ const el = carouselRef.value;
41
+ if (!el) return;
42
+ let scrollTimeout;
43
+ const onScroll = () => {
44
+ clearTimeout(scrollTimeout);
45
+ scrollTimeout = setTimeout(() => {
46
+ if (!isCarousel.value) return;
47
+ const newIndex = Math.round(el.scrollLeft / el.offsetWidth);
48
+ if (newIndex >= 0 && newIndex < items.length && newIndex !== activeIndex.value) {
49
+ activeIndex.value = newIndex;
50
+ }
51
+ }, 100);
52
+ };
53
+ el.addEventListener("scroll", onScroll, {
54
+ passive: true
55
+ });
56
+ cleanup(() => {
57
+ el.removeEventListener("scroll", onScroll);
58
+ clearTimeout(scrollTimeout);
59
+ });
60
+ });
61
+ useVisibleTask$(({ track, cleanup }) => {
62
+ const index = track(() => activeIndex.value);
63
+ const paused = track(() => isPaused.value);
64
+ const ms = track(() => durationMs.value);
65
+ if (paused) return;
66
+ const timer = setTimeout(() => {
67
+ activeIndex.value = (index + 1) % items.length;
68
+ }, ms);
69
+ cleanup(() => clearTimeout(timer));
70
+ });
71
+ useVisibleTask$(({ track }) => {
72
+ const index = track(() => activeIndex.value);
73
+ if (!isCarousel.value) return;
74
+ const el = carouselRef.value;
75
+ if (!el) return;
76
+ el.scrollTo({
77
+ left: index * el.offsetWidth,
78
+ behavior: "smooth"
79
+ });
80
+ });
81
+ return /* @__PURE__ */ jsx("div", {
82
+ class: `glue-page ${reverse ? "glue-reverse" : ""}`,
83
+ style: {
84
+ "--duration": `${durationMs.value}ms`
85
+ },
86
+ children: /* @__PURE__ */ jsxs("div", {
87
+ class: "glue-grid",
88
+ children: [
89
+ /* @__PURE__ */ jsx("div", {
90
+ class: "glue-cell-pre-title"
91
+ }),
92
+ /* @__PURE__ */ jsx("div", {
93
+ class: "glue-cell-title",
94
+ children: /* @__PURE__ */ jsxs("div", {
95
+ class: "glue-text-center",
96
+ children: [
97
+ /* @__PURE__ */ jsx("h2", {
98
+ class: "glue-headline",
99
+ children: /* @__PURE__ */ jsx("div", {
100
+ class: "glue-font-weight-medium",
101
+ children: headline
102
+ })
103
+ }),
104
+ subtitle && /* @__PURE__ */ jsx("div", {
105
+ class: "glue-spacer glue-body",
106
+ children: subtitle
107
+ }),
108
+ /* @__PURE__ */ jsx(Slot, {
109
+ name: "header-extra"
110
+ })
111
+ ]
112
+ })
113
+ }),
114
+ /* @__PURE__ */ jsx("div", {
115
+ class: "glue-cell-post-title"
116
+ }),
117
+ /* @__PURE__ */ jsx("div", {
118
+ class: "glue-cell-pre-slider"
119
+ }),
120
+ /* @__PURE__ */ jsx("div", {
121
+ class: "glue-slider-image-container",
122
+ children: /* @__PURE__ */ jsx("div", {
123
+ class: "image-wrapper",
124
+ children: items.map((slide, index) => /* @__PURE__ */ jsxs("picture", {
125
+ class: `slide-picture ${activeIndex.value === index ? "show" : ""}`,
126
+ "data-crop": "animatedTextImage-1x1",
127
+ children: [
128
+ /* @__PURE__ */ jsx("source", {
129
+ srcset: slide.imageSources.webp,
130
+ type: "image/webp",
131
+ width: "999",
132
+ height: "1000"
133
+ }),
134
+ /* @__PURE__ */ jsx("source", {
135
+ srcset: slide.imageSources.fallback,
136
+ width: "999",
137
+ height: "1000"
138
+ }),
139
+ /* @__PURE__ */ jsx("img", {
140
+ class: "Image slide-image-element",
141
+ alt: slide.title,
142
+ srcset: slide.imageSources.fallback,
143
+ width: "999",
144
+ height: "1000",
145
+ loading: "lazy",
146
+ src: slide.imageSources.src
147
+ })
148
+ ]
149
+ }, index))
150
+ })
151
+ }),
152
+ /* @__PURE__ */ jsx("div", {
153
+ class: "animated-text-list",
154
+ ref: carouselRef,
155
+ children: /* @__PURE__ */ jsx("div", {
156
+ class: "glue-item-animated-wrapper",
157
+ ref: wrapperRef,
158
+ children: items.map((slide, index) => /* @__PURE__ */ jsxs("div", {
159
+ class: `item-animated ${activeIndex.value === index ? "is-active" : ""}`,
160
+ onClick$: () => activeIndex.value = index,
161
+ children: [
162
+ /* @__PURE__ */ jsx("h3", {
163
+ class: "glue-font-weight-medium item-title",
164
+ children: slide.title
165
+ }),
166
+ /* @__PURE__ */ jsx("div", {
167
+ class: "accordion-content",
168
+ children: /* @__PURE__ */ jsx("div", {
169
+ class: "accordion-inner glue-body",
170
+ children: slide.description
171
+ })
172
+ }),
173
+ /* @__PURE__ */ jsx("div", {
174
+ class: "progress-track",
175
+ children: /* @__PURE__ */ jsx("div", {
176
+ class: "progress-bar"
177
+ })
178
+ })
179
+ ]
180
+ }, index))
181
+ })
182
+ }),
183
+ /* @__PURE__ */ jsxs("div", {
184
+ class: "glue-pagination",
185
+ children: [
186
+ /* @__PURE__ */ jsx("button", {
187
+ class: "pagination-arrow",
188
+ onClick$: () => {
189
+ if (activeIndex.value > 0) activeIndex.value--;
190
+ },
191
+ disabled: activeIndex.value === 0,
192
+ "aria-label": "Slide precedente",
193
+ children: /* @__PURE__ */ jsx("svg", {
194
+ width: "24",
195
+ height: "24",
196
+ role: "presentation",
197
+ "aria-hidden": "true",
198
+ viewBox: "0 0 24 24",
199
+ children: /* @__PURE__ */ jsx("path", {
200
+ d: "M16.41 5.41L15 4l-8 8 8 8 1.41-1.41L9.83 12"
201
+ })
202
+ })
203
+ }),
204
+ /* @__PURE__ */ jsxs("span", {
205
+ class: "pagination-number",
206
+ children: [
207
+ activeIndex.value + 1,
208
+ " / ",
209
+ items.length
210
+ ]
211
+ }),
212
+ /* @__PURE__ */ jsx("button", {
213
+ class: "pagination-arrow",
214
+ onClick$: () => {
215
+ if (activeIndex.value < items.length - 1) activeIndex.value++;
216
+ },
217
+ disabled: activeIndex.value === items.length - 1,
218
+ "aria-label": "Slide successiva",
219
+ children: /* @__PURE__ */ jsx("svg", {
220
+ width: "24",
221
+ height: "24",
222
+ role: "presentation",
223
+ "aria-hidden": "true",
224
+ viewBox: "0 0 24 24",
225
+ children: /* @__PURE__ */ jsx("path", {
226
+ d: "M7.59 18.59L9 20l8-8-8-8-1.41 1.41L14.17 12"
227
+ })
228
+ })
229
+ })
230
+ ]
231
+ })
232
+ ]
233
+ })
234
+ });
235
+ });
236
+ export {
237
+ AnimatedTextSlider
238
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ const styles = "/* =========================================\r\n 1. BASE\r\n ========================================= */\r\n.glue-page {\r\n margin: 0 10px;\r\n --duration: 8000ms;\r\n --active-size: 28px;\r\n --inactive-size: 20px;\r\n --spacing-top: 118px;\r\n overflow-x: hidden;\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n.glue-grid {\r\n display: grid;\r\n grid-template-columns: repeat(4, minmax(5px, 1fr));\r\n column-gap: 28px;\r\n overflow-anchor: none;\r\n align-items: center;\r\n}\r\n\r\n.glue-cell-pre-title,\r\n.glue-cell-post-title,\r\n.glue-cell-pre-slider {\r\n display: none;\r\n}\r\n\r\n.glue-cell-title {\r\n grid-column: 1 / -1;\r\n}\r\n\r\n.glue-text-center {\r\n text-align: center;\r\n}\r\n\r\n.glue-headline {\r\n font-family: 'Roboto Condensed', sans-serif;\r\n color: #333;\r\n font-size: 1.75rem;\r\n line-height: 1.2857;\r\n font-weight: 500;\r\n margin: 0;\r\n}\r\n\r\n.glue-body {\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n color: #3c4043;\r\n font-family: 'Roboto Condensed', sans-serif;\r\n}\r\n\r\n.glue-spacer {\r\n margin-top: 24px;\r\n}\r\n\r\n/* =========================================\r\n 2. ACCORDION\r\n ========================================= */\r\n.animated-text-list {\r\n grid-column: 1 / -1;\r\n align-self: center;\r\n margin-top: 40px;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.glue-item-animated-wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.item-animated {\r\n position: relative;\r\n cursor: pointer;\r\n padding-left: 32px;\r\n border: none;\r\n scroll-margin-top: calc(var(--spacing-top) + 16px);\r\n transition: padding 0.3s ease;\r\n}\r\n\r\n.item-animated:not(:first-child) {\r\n margin-top: 32px;\r\n}\r\n\r\n.item-title {\r\n margin: 0;\r\n font-size: var(--inactive-size);\r\n color: #5f6368;\r\n font-weight: 400;\r\n transition:\r\n font-size 0.3s ease,\r\n color 0.3s ease;\r\n}\r\n\r\n.item-animated.is-active .item-title {\r\n font-size: var(--active-size);\r\n color: #333;\r\n}\r\n\r\n.accordion-content {\r\n max-height: 0;\r\n overflow: hidden;\r\n opacity: 0;\r\n transition:\r\n max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),\r\n opacity 0.4s ease;\r\n}\r\n\r\n.item-animated.is-active .accordion-content {\r\n max-height: 250px;\r\n opacity: 1;\r\n}\r\n\r\n.accordion-inner {\r\n padding-top: 12px;\r\n}\r\n\r\n/* Progress bar */\r\n.item-animated::before {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 2px;\r\n background-color: #f1f3f4;\r\n}\r\n\r\n.progress-track {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 2px;\r\n background-color: #dadce0;\r\n overflow: hidden;\r\n}\r\n\r\n.progress-bar {\r\n width: 100%;\r\n height: 0%;\r\n background-color: #333;\r\n}\r\n\r\n.item-animated.is-active .progress-bar {\r\n animation: progressFillVertical var(--duration) linear forwards;\r\n}\r\n\r\n@keyframes progressFillVertical {\r\n from {\r\n height: 0%;\r\n }\r\n to {\r\n height: 100%;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 3. IMMAGINI\r\n ========================================= */\r\n.glue-slider-image-container {\r\n display: none;\r\n grid-column: 1 / -1;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.image-wrapper {\r\n position: relative;\r\n width: 100%;\r\n min-width: 280px;\r\n aspect-ratio: 999 / 1000;\r\n}\r\n\r\n.slide-picture {\r\n position: absolute;\r\n inset: 0;\r\n opacity: 0;\r\n z-index: 0;\r\n visibility: hidden;\r\n transition:\r\n opacity 0.6s ease-in-out,\r\n visibility 0.6s;\r\n}\r\n\r\n.slide-picture.show {\r\n opacity: 1;\r\n z-index: 1;\r\n visibility: visible;\r\n}\r\n\r\n.slide-image-element {\r\n width: 100%;\r\n height: auto;\r\n object-fit: contain;\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n 4. PAGINATION (nascosta di default)\r\n ========================================= */\r\n.glue-pagination {\r\n display: none;\r\n}\r\n\r\n.pagination-arrow {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n padding: 8px;\r\n color: #5f6368;\r\n font-size: 18px;\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: color 0.2s ease;\r\n}\r\n\r\n.pagination-arrow:hover {\r\n color: #333;\r\n}\r\n\r\n.pagination-arrow:disabled {\r\n visibility: hidden;\r\n}\r\n\r\n.pagination-number {\r\n border: 1px solid #dadce0;\r\n padding: 6px 20px;\r\n border-radius: 20px;\r\n font-size: 14px;\r\n color: #5f6368;\r\n font-family: 'Roboto Condensed', sans-serif;\r\n user-select: none;\r\n}\r\n\r\n/* =========================================\r\n 5. MOBILE + TABLET (< 1024px)\r\n Layout carousel condiviso\r\n ========================================= */\r\n@media (max-width: 1023px) {\r\n .glue-grid {\r\n grid-template-columns: 1fr;\r\n column-gap: 0;\r\n grid-template-areas:\r\n 'title'\r\n 'image'\r\n 'slider'\r\n 'pagination';\r\n justify-items: center;\r\n align-items: start;\r\n }\r\n\r\n .glue-cell-pre-title,\r\n .glue-cell-post-title,\r\n .glue-cell-pre-slider {\r\n display: none;\r\n }\r\n\r\n .glue-cell-title {\r\n grid-area: title;\r\n grid-column: auto;\r\n width: 100%;\r\n max-width: 780px;\r\n }\r\n\r\n .glue-headline {\r\n max-width: clamp(480px, 75%, 720px);\r\n margin: 0 auto;\r\n }\r\n\r\n /* Immagine centrata sopra */\r\n .glue-slider-image-container {\r\n grid-area: image;\r\n grid-column: auto;\r\n display: flex;\r\n width: 100%;\r\n max-width: 780px;\r\n padding: 20px;\r\n margin-top: 40px;\r\n margin-bottom: 40px;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 280px;\r\n }\r\n\r\n /* Carousel: scroll-snap orizzontale */\r\n .animated-text-list {\r\n grid-area: slider;\r\n grid-column: auto;\r\n flex-direction: row;\r\n overflow-x: auto;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n margin-top: 0;\r\n padding: 0;\r\n width: 100%;\r\n max-width: 780px;\r\n }\r\n\r\n .animated-text-list::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n .glue-item-animated-wrapper {\r\n flex-direction: row;\r\n min-width: 100%;\r\n /* Altezza fissa: previene il resize a fisarmonica.\r\n Tutti gli item si allineano in alto,\r\n il wrapper mantiene l'altezza del più alto */\r\n align-items: flex-start;\r\n }\r\n\r\n .item-animated {\r\n flex: 0 0 100%;\r\n scroll-snap-align: center;\r\n padding: 0 40px;\r\n text-align: center;\r\n margin-top: 0 !important;\r\n box-sizing: border-box;\r\n }\r\n\r\n .item-animated::before,\r\n .progress-track {\r\n display: none;\r\n }\r\n\r\n .item-title {\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n color: #333;\r\n margin-bottom: 10px;\r\n }\r\n\r\n .accordion-content {\r\n max-height: none;\r\n opacity: 1;\r\n overflow: visible;\r\n transition: none;\r\n }\r\n\r\n /* Paginazione visibile */\r\n .glue-pagination {\r\n grid-area: pagination;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 20px;\r\n margin-top: 20px;\r\n margin-bottom: 40px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 5b. TABLET ≥ 600px (sovrascrive solo spacing)\r\n ========================================= */\r\n@media (min-width: 600px) and (max-width: 1023px) {\r\n .glue-page {\r\n margin: 0 40px;\r\n }\r\n\r\n .glue-headline {\r\n font-size: 2.5rem;\r\n line-height: 1.2;\r\n letter-spacing: -0.5px;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 320px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 5a. MOBILE < 600px (sovrascrive font)\r\n ========================================= */\r\n@media (max-width: 599px) {\r\n .glue-headline {\r\n font-size: 1.75rem;\r\n line-height: 1.2857;\r\n letter-spacing: 0;\r\n }\r\n\r\n .item-title {\r\n font-size: 20px;\r\n font-weight: 400;\r\n }\r\n\r\n .accordion-inner {\r\n color: #5f6368;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 6. DESKTOP ≥ 1024px\r\n ========================================= */\r\n@media (min-width: 1024px) {\r\n .glue-page {\r\n margin: 0 72px;\r\n }\r\n\r\n .glue-grid {\r\n grid-template-columns: repeat(12, minmax(5px, 1fr));\r\n grid-template-areas: none;\r\n column-gap: 48px;\r\n height: 750px;\r\n align-items: center;\r\n justify-items: stretch;\r\n }\r\n\r\n /* Riga 1: titolo */\r\n .glue-cell-pre-title {\r\n display: block;\r\n grid-column: 1 / span 1;\r\n grid-row: 1;\r\n }\r\n\r\n .glue-cell-title {\r\n grid-column: 2 / span 10;\r\n grid-row: 1;\r\n width: auto;\r\n max-width: none;\r\n }\r\n\r\n .glue-cell-post-title {\r\n display: block;\r\n grid-column: 12 / span 1;\r\n grid-row: 1;\r\n }\r\n\r\n .glue-headline {\r\n font-size: 3rem;\r\n line-height: 1.1666;\r\n max-width: none;\r\n }\r\n\r\n .glue-cell-pre-slider {\r\n display: block;\r\n grid-column: 1 / span 1;\r\n grid-row: 2;\r\n }\r\n\r\n /* Riga 2: accordion (sinistra) */\r\n .animated-text-list {\r\n grid-column: 2 / span 5;\r\n grid-row: 2;\r\n flex-direction: column;\r\n overflow: visible;\r\n scroll-snap-type: none;\r\n width: auto;\r\n max-width: none;\r\n margin-top: 0;\r\n }\r\n\r\n .glue-item-animated-wrapper {\r\n flex-direction: column;\r\n min-width: unset;\r\n }\r\n\r\n .item-animated {\r\n flex: unset;\r\n text-align: left;\r\n padding: 0 0 0 32px;\r\n scroll-snap-align: unset;\r\n }\r\n\r\n .item-animated:not(:first-child) {\r\n margin-top: 32px !important;\r\n }\r\n\r\n .item-title {\r\n font-size: var(--inactive-size);\r\n color: #5f6368;\r\n font-weight: 400;\r\n margin-bottom: 0;\r\n }\r\n\r\n .item-animated.is-active .item-title {\r\n font-size: var(--active-size);\r\n color: #333;\r\n }\r\n\r\n .item-animated::before,\r\n .progress-track {\r\n display: block;\r\n }\r\n\r\n .accordion-content {\r\n max-height: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n transition:\r\n max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),\r\n opacity 0.4s ease;\r\n }\r\n\r\n .item-animated.is-active .accordion-content {\r\n max-height: 250px;\r\n opacity: 1;\r\n }\r\n\r\n .accordion-inner {\r\n color: #3c4043;\r\n }\r\n\r\n /* Riga 2: immagine (destra) */\r\n .glue-slider-image-container {\r\n display: flex;\r\n grid-column: 8 / span 4;\r\n grid-row: 2;\r\n transform: translateX(-32px);\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n height: 100%;\r\n width: auto;\r\n max-width: none;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 434px;\r\n }\r\n\r\n .glue-pagination {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (min-width: 1440px) {\r\n .glue-grid {\r\n column-gap: 64px;\r\n height: 800px;\r\n }\r\n\r\n .glue-slider-image-container {\r\n grid-column: 8 / span 5;\r\n transform: translateX(-125px);\r\n }\r\n\r\n .glue-cell-title {\r\n grid-column: 3 / span 8;\r\n }\r\n\r\n /* Reverse ≥ 1440px */\r\n .glue-reverse .glue-slider-image-container {\r\n grid-column: 1 / span 5;\r\n transform: translateX(125px);\r\n }\r\n\r\n .glue-reverse .animated-text-list {\r\n grid-column: 7 / span 5;\r\n }\r\n}\r\n\r\n@media (min-width: 1600px) {\r\n .glue-grid {\r\n margin-inline: auto;\r\n max-width: 1456px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n REVERSE LAYOUT (desktop only)\r\n Immagine a sinistra, accordion a destra\r\n ========================================= */\r\n@media (min-width: 1024px) {\r\n .glue-reverse .glue-slider-image-container {\r\n grid-column: 2 / span 4;\r\n transform: translateX(32px);\r\n }\r\n\r\n .glue-reverse .animated-text-list {\r\n grid-column: 7 / span 5;\r\n }\r\n}\r\n";
3
+ module.exports = styles;
@@ -0,0 +1,4 @@
1
+ const styles = "/* =========================================\r\n 1. BASE\r\n ========================================= */\r\n.glue-page {\r\n margin: 0 10px;\r\n --duration: 8000ms;\r\n --active-size: 28px;\r\n --inactive-size: 20px;\r\n --spacing-top: 118px;\r\n overflow-x: hidden;\r\n text-rendering: optimizeLegibility;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n.glue-grid {\r\n display: grid;\r\n grid-template-columns: repeat(4, minmax(5px, 1fr));\r\n column-gap: 28px;\r\n overflow-anchor: none;\r\n align-items: center;\r\n}\r\n\r\n.glue-cell-pre-title,\r\n.glue-cell-post-title,\r\n.glue-cell-pre-slider {\r\n display: none;\r\n}\r\n\r\n.glue-cell-title {\r\n grid-column: 1 / -1;\r\n}\r\n\r\n.glue-text-center {\r\n text-align: center;\r\n}\r\n\r\n.glue-headline {\r\n font-family: 'Roboto Condensed', sans-serif;\r\n color: #333;\r\n font-size: 1.75rem;\r\n line-height: 1.2857;\r\n font-weight: 500;\r\n margin: 0;\r\n}\r\n\r\n.glue-body {\r\n font-size: 1rem;\r\n line-height: 1.5;\r\n color: #3c4043;\r\n font-family: 'Roboto Condensed', sans-serif;\r\n}\r\n\r\n.glue-spacer {\r\n margin-top: 24px;\r\n}\r\n\r\n/* =========================================\r\n 2. ACCORDION\r\n ========================================= */\r\n.animated-text-list {\r\n grid-column: 1 / -1;\r\n align-self: center;\r\n margin-top: 40px;\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.glue-item-animated-wrapper {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n\r\n.item-animated {\r\n position: relative;\r\n cursor: pointer;\r\n padding-left: 32px;\r\n border: none;\r\n scroll-margin-top: calc(var(--spacing-top) + 16px);\r\n transition: padding 0.3s ease;\r\n}\r\n\r\n.item-animated:not(:first-child) {\r\n margin-top: 32px;\r\n}\r\n\r\n.item-title {\r\n margin: 0;\r\n font-size: var(--inactive-size);\r\n color: #5f6368;\r\n font-weight: 400;\r\n transition:\r\n font-size 0.3s ease,\r\n color 0.3s ease;\r\n}\r\n\r\n.item-animated.is-active .item-title {\r\n font-size: var(--active-size);\r\n color: #333;\r\n}\r\n\r\n.accordion-content {\r\n max-height: 0;\r\n overflow: hidden;\r\n opacity: 0;\r\n transition:\r\n max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),\r\n opacity 0.4s ease;\r\n}\r\n\r\n.item-animated.is-active .accordion-content {\r\n max-height: 250px;\r\n opacity: 1;\r\n}\r\n\r\n.accordion-inner {\r\n padding-top: 12px;\r\n}\r\n\r\n/* Progress bar */\r\n.item-animated::before {\r\n content: '';\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 2px;\r\n background-color: #f1f3f4;\r\n}\r\n\r\n.progress-track {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 2px;\r\n background-color: #dadce0;\r\n overflow: hidden;\r\n}\r\n\r\n.progress-bar {\r\n width: 100%;\r\n height: 0%;\r\n background-color: #333;\r\n}\r\n\r\n.item-animated.is-active .progress-bar {\r\n animation: progressFillVertical var(--duration) linear forwards;\r\n}\r\n\r\n@keyframes progressFillVertical {\r\n from {\r\n height: 0%;\r\n }\r\n to {\r\n height: 100%;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 3. IMMAGINI\r\n ========================================= */\r\n.glue-slider-image-container {\r\n display: none;\r\n grid-column: 1 / -1;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.image-wrapper {\r\n position: relative;\r\n width: 100%;\r\n min-width: 280px;\r\n aspect-ratio: 999 / 1000;\r\n}\r\n\r\n.slide-picture {\r\n position: absolute;\r\n inset: 0;\r\n opacity: 0;\r\n z-index: 0;\r\n visibility: hidden;\r\n transition:\r\n opacity 0.6s ease-in-out,\r\n visibility 0.6s;\r\n}\r\n\r\n.slide-picture.show {\r\n opacity: 1;\r\n z-index: 1;\r\n visibility: visible;\r\n}\r\n\r\n.slide-image-element {\r\n width: 100%;\r\n height: auto;\r\n object-fit: contain;\r\n display: block;\r\n}\r\n\r\n/* =========================================\r\n 4. PAGINATION (nascosta di default)\r\n ========================================= */\r\n.glue-pagination {\r\n display: none;\r\n}\r\n\r\n.pagination-arrow {\r\n background: none;\r\n border: none;\r\n cursor: pointer;\r\n padding: 8px;\r\n color: #5f6368;\r\n font-size: 18px;\r\n line-height: 1;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: color 0.2s ease;\r\n}\r\n\r\n.pagination-arrow:hover {\r\n color: #333;\r\n}\r\n\r\n.pagination-arrow:disabled {\r\n visibility: hidden;\r\n}\r\n\r\n.pagination-number {\r\n border: 1px solid #dadce0;\r\n padding: 6px 20px;\r\n border-radius: 20px;\r\n font-size: 14px;\r\n color: #5f6368;\r\n font-family: 'Roboto Condensed', sans-serif;\r\n user-select: none;\r\n}\r\n\r\n/* =========================================\r\n 5. MOBILE + TABLET (< 1024px)\r\n Layout carousel condiviso\r\n ========================================= */\r\n@media (max-width: 1023px) {\r\n .glue-grid {\r\n grid-template-columns: 1fr;\r\n column-gap: 0;\r\n grid-template-areas:\r\n 'title'\r\n 'image'\r\n 'slider'\r\n 'pagination';\r\n justify-items: center;\r\n align-items: start;\r\n }\r\n\r\n .glue-cell-pre-title,\r\n .glue-cell-post-title,\r\n .glue-cell-pre-slider {\r\n display: none;\r\n }\r\n\r\n .glue-cell-title {\r\n grid-area: title;\r\n grid-column: auto;\r\n width: 100%;\r\n max-width: 780px;\r\n }\r\n\r\n .glue-headline {\r\n max-width: clamp(480px, 75%, 720px);\r\n margin: 0 auto;\r\n }\r\n\r\n /* Immagine centrata sopra */\r\n .glue-slider-image-container {\r\n grid-area: image;\r\n grid-column: auto;\r\n display: flex;\r\n width: 100%;\r\n max-width: 780px;\r\n padding: 20px;\r\n margin-top: 40px;\r\n margin-bottom: 40px;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 280px;\r\n }\r\n\r\n /* Carousel: scroll-snap orizzontale */\r\n .animated-text-list {\r\n grid-area: slider;\r\n grid-column: auto;\r\n flex-direction: row;\r\n overflow-x: auto;\r\n scroll-snap-type: x mandatory;\r\n scroll-behavior: smooth;\r\n scrollbar-width: none;\r\n -ms-overflow-style: none;\r\n margin-top: 0;\r\n padding: 0;\r\n width: 100%;\r\n max-width: 780px;\r\n }\r\n\r\n .animated-text-list::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n .glue-item-animated-wrapper {\r\n flex-direction: row;\r\n min-width: 100%;\r\n /* Altezza fissa: previene il resize a fisarmonica.\r\n Tutti gli item si allineano in alto,\r\n il wrapper mantiene l'altezza del più alto */\r\n align-items: flex-start;\r\n }\r\n\r\n .item-animated {\r\n flex: 0 0 100%;\r\n scroll-snap-align: center;\r\n padding: 0 40px;\r\n text-align: center;\r\n margin-top: 0 !important;\r\n box-sizing: border-box;\r\n }\r\n\r\n .item-animated::before,\r\n .progress-track {\r\n display: none;\r\n }\r\n\r\n .item-title {\r\n font-size: 1.5rem;\r\n font-weight: 500;\r\n color: #333;\r\n margin-bottom: 10px;\r\n }\r\n\r\n .accordion-content {\r\n max-height: none;\r\n opacity: 1;\r\n overflow: visible;\r\n transition: none;\r\n }\r\n\r\n /* Paginazione visibile */\r\n .glue-pagination {\r\n grid-area: pagination;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 20px;\r\n margin-top: 20px;\r\n margin-bottom: 40px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 5b. TABLET ≥ 600px (sovrascrive solo spacing)\r\n ========================================= */\r\n@media (min-width: 600px) and (max-width: 1023px) {\r\n .glue-page {\r\n margin: 0 40px;\r\n }\r\n\r\n .glue-headline {\r\n font-size: 2.5rem;\r\n line-height: 1.2;\r\n letter-spacing: -0.5px;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 320px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 5a. MOBILE < 600px (sovrascrive font)\r\n ========================================= */\r\n@media (max-width: 599px) {\r\n .glue-headline {\r\n font-size: 1.75rem;\r\n line-height: 1.2857;\r\n letter-spacing: 0;\r\n }\r\n\r\n .item-title {\r\n font-size: 20px;\r\n font-weight: 400;\r\n }\r\n\r\n .accordion-inner {\r\n color: #5f6368;\r\n }\r\n}\r\n\r\n/* =========================================\r\n 6. DESKTOP ≥ 1024px\r\n ========================================= */\r\n@media (min-width: 1024px) {\r\n .glue-page {\r\n margin: 0 72px;\r\n }\r\n\r\n .glue-grid {\r\n grid-template-columns: repeat(12, minmax(5px, 1fr));\r\n grid-template-areas: none;\r\n column-gap: 48px;\r\n height: 750px;\r\n align-items: center;\r\n justify-items: stretch;\r\n }\r\n\r\n /* Riga 1: titolo */\r\n .glue-cell-pre-title {\r\n display: block;\r\n grid-column: 1 / span 1;\r\n grid-row: 1;\r\n }\r\n\r\n .glue-cell-title {\r\n grid-column: 2 / span 10;\r\n grid-row: 1;\r\n width: auto;\r\n max-width: none;\r\n }\r\n\r\n .glue-cell-post-title {\r\n display: block;\r\n grid-column: 12 / span 1;\r\n grid-row: 1;\r\n }\r\n\r\n .glue-headline {\r\n font-size: 3rem;\r\n line-height: 1.1666;\r\n max-width: none;\r\n }\r\n\r\n .glue-cell-pre-slider {\r\n display: block;\r\n grid-column: 1 / span 1;\r\n grid-row: 2;\r\n }\r\n\r\n /* Riga 2: accordion (sinistra) */\r\n .animated-text-list {\r\n grid-column: 2 / span 5;\r\n grid-row: 2;\r\n flex-direction: column;\r\n overflow: visible;\r\n scroll-snap-type: none;\r\n width: auto;\r\n max-width: none;\r\n margin-top: 0;\r\n }\r\n\r\n .glue-item-animated-wrapper {\r\n flex-direction: column;\r\n min-width: unset;\r\n }\r\n\r\n .item-animated {\r\n flex: unset;\r\n text-align: left;\r\n padding: 0 0 0 32px;\r\n scroll-snap-align: unset;\r\n }\r\n\r\n .item-animated:not(:first-child) {\r\n margin-top: 32px !important;\r\n }\r\n\r\n .item-title {\r\n font-size: var(--inactive-size);\r\n color: #5f6368;\r\n font-weight: 400;\r\n margin-bottom: 0;\r\n }\r\n\r\n .item-animated.is-active .item-title {\r\n font-size: var(--active-size);\r\n color: #333;\r\n }\r\n\r\n .item-animated::before,\r\n .progress-track {\r\n display: block;\r\n }\r\n\r\n .accordion-content {\r\n max-height: 0;\r\n opacity: 0;\r\n overflow: hidden;\r\n transition:\r\n max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),\r\n opacity 0.4s ease;\r\n }\r\n\r\n .item-animated.is-active .accordion-content {\r\n max-height: 250px;\r\n opacity: 1;\r\n }\r\n\r\n .accordion-inner {\r\n color: #3c4043;\r\n }\r\n\r\n /* Riga 2: immagine (destra) */\r\n .glue-slider-image-container {\r\n display: flex;\r\n grid-column: 8 / span 4;\r\n grid-row: 2;\r\n transform: translateX(-32px);\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n height: 100%;\r\n width: auto;\r\n max-width: none;\r\n }\r\n\r\n .image-wrapper {\r\n min-width: 434px;\r\n }\r\n\r\n .glue-pagination {\r\n display: none;\r\n }\r\n}\r\n\r\n@media (min-width: 1440px) {\r\n .glue-grid {\r\n column-gap: 64px;\r\n height: 800px;\r\n }\r\n\r\n .glue-slider-image-container {\r\n grid-column: 8 / span 5;\r\n transform: translateX(-125px);\r\n }\r\n\r\n .glue-cell-title {\r\n grid-column: 3 / span 8;\r\n }\r\n\r\n /* Reverse ≥ 1440px */\r\n .glue-reverse .glue-slider-image-container {\r\n grid-column: 1 / span 5;\r\n transform: translateX(125px);\r\n }\r\n\r\n .glue-reverse .animated-text-list {\r\n grid-column: 7 / span 5;\r\n }\r\n}\r\n\r\n@media (min-width: 1600px) {\r\n .glue-grid {\r\n margin-inline: auto;\r\n max-width: 1456px;\r\n }\r\n}\r\n\r\n/* =========================================\r\n REVERSE LAYOUT (desktop only)\r\n Immagine a sinistra, accordion a destra\r\n ========================================= */\r\n@media (min-width: 1024px) {\r\n .glue-reverse .glue-slider-image-container {\r\n grid-column: 2 / span 4;\r\n transform: translateX(32px);\r\n }\r\n\r\n .glue-reverse .animated-text-list {\r\n grid-column: 7 / span 5;\r\n }\r\n}\r\n";
2
+ export {
3
+ styles as default
4
+ };
@@ -11,6 +11,7 @@ const hero = require("./components/hero/hero.qwik.cjs");
11
11
  const onboardingsteps = require("./components/onboarding/onboardingsteps.qwik.cjs");
12
12
  const select = require("./components/select/select.qwik.cjs");
13
13
  const text_area = require("./components/text_area/text_area.qwik.cjs");
14
+ const AnimatedTextSlider = require("./components/sliders/AnimatedTextSlider.qwik.cjs");
14
15
  const card = require("./components/card/card.qwik.cjs");
15
16
  const skeleton_suggestion = require("./components/skeletons/SkeletonSuggestion/skeleton_suggestion.qwik.cjs");
16
17
  exports.Logo = logo.Logo;
@@ -24,5 +25,6 @@ exports.Hero = hero.Hero;
24
25
  exports.OnboardingSteps = onboardingsteps.OnboardingSteps;
25
26
  exports.Select = select.Select;
26
27
  exports.TextArea = text_area.TextArea;
28
+ exports.AnimatedTextSlider = AnimatedTextSlider.AnimatedTextSlider;
27
29
  exports.Card = card.Card;
28
30
  exports.SkeletonSuggestion = skeleton_suggestion.SkeletonSuggestion;
@@ -9,9 +9,11 @@ import { Hero } from "./components/hero/hero.qwik.mjs";
9
9
  import { OnboardingSteps } from "./components/onboarding/onboardingsteps.qwik.mjs";
10
10
  import { Select } from "./components/select/select.qwik.mjs";
11
11
  import { TextArea } from "./components/text_area/text_area.qwik.mjs";
12
+ import { AnimatedTextSlider } from "./components/sliders/AnimatedTextSlider.qwik.mjs";
12
13
  import { Card } from "./components/card/card.qwik.mjs";
13
14
  import { SkeletonSuggestion } from "./components/skeletons/SkeletonSuggestion/skeleton_suggestion.qwik.mjs";
14
15
  export {
16
+ AnimatedTextSlider,
15
17
  Button,
16
18
  Card,
17
19
  Counter,
@@ -0,0 +1,24 @@
1
+ interface ImageSources {
2
+ webp: string;
3
+ fallback: string;
4
+ src: string;
5
+ }
6
+ export interface SliderItem {
7
+ title: string;
8
+ description: string;
9
+ imageSources: ImageSources;
10
+ }
11
+ export interface VisualRegistrationProps {
12
+ /** Titolo principale della sezione */
13
+ headline: string;
14
+ /** Sottotitolo della sezione */
15
+ subtitle?: string;
16
+ /** Slide da mostrare */
17
+ items: SliderItem[];
18
+ /** Durata in ms di ogni slide (default: 8000) */
19
+ duration?: number;
20
+ /** Inverte il layout desktop: immagine a sinistra, testo a destra */
21
+ reverse?: boolean;
22
+ }
23
+ export declare const AnimatedTextSlider: import("@builder.io/qwik").Component<VisualRegistrationProps>;
24
+ export {};
@@ -10,5 +10,6 @@ export { Hero } from './components/hero/hero';
10
10
  export { OnboardingSteps } from './components/onboarding/onboardingsteps';
11
11
  export { type SelectProps, Select } from './components/select/select';
12
12
  export { TextArea } from './components/text_area/text_area';
13
+ export { AnimatedTextSlider } from './components/sliders/AnimatedTextSlider';
13
14
  export { Card } from './components/card/card';
14
15
  export { SkeletonSuggestion } from './components/skeletons/SkeletonSuggestion/skeleton_suggestion';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greghowe79/the-lib",
3
- "version": "2.8.7",
3
+ "version": "2.8.8",
4
4
  "description": "Collection of fast components for Qwik",
5
5
  "main": "./lib/index.qwik.mjs",
6
6
  "qwik": "./lib/index.qwik.mjs",