@mission-studio/puck 1.0.21 → 1.0.24
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/dist/Popup-Dg78fu78.d.mts +260 -0
- package/dist/Popup-L7kcJo05.d.ts +260 -0
- package/dist/ResponsiveToggleField-65CqZEK-.d.mts +10 -0
- package/dist/ResponsiveToggleField-QCve94L_.d.ts +10 -0
- package/dist/chunk-MYS3PLMF.mjs +463 -0
- package/dist/chunk-TRPKXVMO.mjs +695 -0
- package/dist/{chunk-MWW5LYLN.mjs → chunk-YIPEC4L4.mjs} +709 -1075
- package/dist/components/page/astro/index.d.mts +54 -0
- package/dist/components/page/astro/index.d.ts +54 -0
- package/dist/components/page/astro/index.js +2056 -0
- package/dist/components/page/astro/index.mjs +51 -0
- package/dist/config/server.js +630 -700
- package/dist/config/server.mjs +33 -83
- package/dist/config-entry.js +592 -478
- package/dist/config-entry.mjs +11 -11
- package/dist/{ResponsiveToggleField-CfBKL5oY.d.ts → defaults-j55hBQHu.d.mts} +2 -8
- package/dist/{ResponsiveToggleField-BihXsGIJ.d.mts → defaults-z8Ft2j5r.d.ts} +2 -8
- package/dist/editor.d.mts +5 -4
- package/dist/editor.d.ts +5 -4
- package/dist/index.d.mts +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +388 -274
- package/dist/index.mjs +11 -11
- package/dist/renderer.d.mts +9 -250
- package/dist/renderer.d.ts +9 -250
- package/dist/renderer.js +388 -274
- package/dist/renderer.mjs +11 -11
- package/dist/resolve/index.d.mts +1 -1
- package/dist/resolve/index.d.ts +1 -1
- package/dist/{types-D-CIduaE.d.mts → types-HQ6hIbYr.d.mts} +1 -1
- package/dist/{types-D-CIduaE.d.ts → types-HQ6hIbYr.d.ts} +1 -1
- package/package.json +6 -1
- package/dist/chunk-WFLVAZV2.mjs +0 -142
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import {
|
|
2
|
-
getShadowCSS,
|
|
3
2
|
useEntries,
|
|
4
3
|
useTheme
|
|
5
4
|
} from "./chunk-PJXZC564.mjs";
|
|
@@ -12,586 +11,120 @@ import {
|
|
|
12
11
|
hexToRgba
|
|
13
12
|
} from "./chunk-C6V3YUPF.mjs";
|
|
14
13
|
|
|
15
|
-
// components/page/
|
|
14
|
+
// components/page/VideoEmbed.tsx
|
|
16
15
|
import { jsx } from "react/jsx-runtime";
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
var aspectRatioMap = {
|
|
17
|
+
"16:9": "56.25%",
|
|
18
|
+
// 9/16 * 100
|
|
19
|
+
"4:3": "75%",
|
|
20
|
+
"1:1": "100%",
|
|
21
|
+
"21:9": "42.86%"
|
|
22
22
|
};
|
|
23
23
|
var radiusMap = {
|
|
24
24
|
none: "0",
|
|
25
25
|
sm: "4px",
|
|
26
26
|
md: "8px",
|
|
27
|
-
lg: "16px"
|
|
28
|
-
|
|
27
|
+
lg: "16px"
|
|
28
|
+
};
|
|
29
|
+
var maxWidthMap = {
|
|
30
|
+
sm: "400px",
|
|
31
|
+
md: "600px",
|
|
32
|
+
lg: "800px",
|
|
33
|
+
xl: "1000px",
|
|
34
|
+
full: "100%"
|
|
29
35
|
};
|
|
30
|
-
function isThemeableValue(value) {
|
|
31
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
32
|
-
}
|
|
33
36
|
function isEntryBoundValue(value) {
|
|
34
37
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
35
38
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
fullWidth = false,
|
|
46
|
-
align = "center",
|
|
47
|
-
id
|
|
48
|
-
}) {
|
|
49
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
50
|
-
const { getEntryValue } = useEntries();
|
|
51
|
-
const utm = useUtmParams();
|
|
52
|
-
const sendEvent = useGtmEvent();
|
|
53
|
-
const resolvedText = (() => {
|
|
54
|
-
if (!text) return "Button";
|
|
55
|
-
if (typeof text === "string") return text;
|
|
56
|
-
if (isEntryBoundValue(text)) {
|
|
57
|
-
if (text.useEntry) {
|
|
58
|
-
return String(getEntryValue(text.entryName, text.fieldKey) ?? "Button");
|
|
59
|
-
}
|
|
60
|
-
return text.value;
|
|
61
|
-
}
|
|
62
|
-
return "Button";
|
|
63
|
-
})();
|
|
64
|
-
const handleClick = () => {
|
|
65
|
-
const sessionId = typeof window !== "undefined" ? sessionStorage.getItem("session_id") : null;
|
|
66
|
-
sendEvent("button_click", {
|
|
67
|
-
text: resolvedText,
|
|
68
|
-
href: href || void 0,
|
|
69
|
-
variant,
|
|
70
|
-
session_id: sessionId,
|
|
71
|
-
...utm
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
const resolvedColor = (() => {
|
|
75
|
-
if (!color) return resolveColor2("primary");
|
|
76
|
-
if (typeof color === "string") return { color, opacity: 100 };
|
|
77
|
-
if (isThemeableValue(color)) {
|
|
78
|
-
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
79
|
-
}
|
|
80
|
-
if ("color" in color) return color;
|
|
81
|
-
return resolveColor2("primary");
|
|
82
|
-
})();
|
|
83
|
-
const resolvedTextColor = (() => {
|
|
84
|
-
if (!textColor) {
|
|
85
|
-
if (variant === "solid") return { color: "#FFFFFF", opacity: 100 };
|
|
86
|
-
return resolvedColor;
|
|
87
|
-
}
|
|
88
|
-
if (typeof textColor === "string")
|
|
89
|
-
return { color: textColor, opacity: 100 };
|
|
90
|
-
if (isThemeableValue(textColor)) {
|
|
91
|
-
return textColor.useTheme ? resolveColor2(textColor.themeKey) : textColor.value;
|
|
92
|
-
}
|
|
93
|
-
if ("color" in textColor) return textColor;
|
|
94
|
-
return { color: "#FFFFFF", opacity: 100 };
|
|
95
|
-
})();
|
|
96
|
-
const bgColor = hexToRgba(resolvedColor.color, resolvedColor.opacity);
|
|
97
|
-
const fgColor = hexToRgba(resolvedTextColor.color, resolvedTextColor.opacity);
|
|
98
|
-
const baseStyle = {
|
|
99
|
-
...sizeStyles[size],
|
|
100
|
-
borderRadius: radiusMap[borderRadius],
|
|
101
|
-
fontWeight: 600,
|
|
102
|
-
cursor: "pointer",
|
|
103
|
-
display: "inline-flex",
|
|
104
|
-
alignItems: "center",
|
|
105
|
-
justifyContent: "center",
|
|
106
|
-
textDecoration: "none",
|
|
107
|
-
transition: "opacity 0.2s, transform 0.2s",
|
|
108
|
-
width: fullWidth ? "100%" : "auto",
|
|
109
|
-
border: "none"
|
|
110
|
-
};
|
|
111
|
-
const variantStyles = {
|
|
112
|
-
solid: {
|
|
113
|
-
backgroundColor: bgColor,
|
|
114
|
-
color: fgColor
|
|
115
|
-
},
|
|
116
|
-
outline: {
|
|
117
|
-
backgroundColor: "transparent",
|
|
118
|
-
color: bgColor,
|
|
119
|
-
border: `2px solid ${bgColor}`
|
|
120
|
-
},
|
|
121
|
-
ghost: {
|
|
122
|
-
backgroundColor: "transparent",
|
|
123
|
-
color: bgColor
|
|
124
|
-
},
|
|
125
|
-
link: {
|
|
126
|
-
backgroundColor: "transparent",
|
|
127
|
-
color: bgColor,
|
|
128
|
-
padding: "0",
|
|
129
|
-
textDecoration: "underline"
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
const style = { ...baseStyle, ...variantStyles[variant] };
|
|
133
|
-
const wrapperStyle = {
|
|
134
|
-
display: "flex",
|
|
135
|
-
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
136
|
-
};
|
|
137
|
-
const content = /* @__PURE__ */ jsx("span", { style, children: resolvedText });
|
|
138
|
-
if (href) {
|
|
139
|
-
return /* @__PURE__ */ jsx("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx(
|
|
140
|
-
"a",
|
|
141
|
-
{
|
|
142
|
-
id,
|
|
143
|
-
href,
|
|
144
|
-
target,
|
|
145
|
-
style,
|
|
146
|
-
rel: target === "_blank" ? "noopener noreferrer" : void 0,
|
|
147
|
-
onClick: handleClick,
|
|
148
|
-
children: resolvedText
|
|
149
|
-
}
|
|
150
|
-
) });
|
|
39
|
+
function parseVideoUrl(url) {
|
|
40
|
+
const ytMatch = url.match(
|
|
41
|
+
/(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})/
|
|
42
|
+
);
|
|
43
|
+
if (ytMatch) {
|
|
44
|
+
return {
|
|
45
|
+
type: "youtube",
|
|
46
|
+
embedUrl: `https://www.youtube.com/embed/${ytMatch[1]}`
|
|
47
|
+
};
|
|
151
48
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
sm: "300px",
|
|
161
|
-
md: "500px",
|
|
162
|
-
lg: "700px",
|
|
163
|
-
xl: "900px"
|
|
164
|
-
};
|
|
165
|
-
var aspectRatioMap = {
|
|
166
|
-
auto: void 0,
|
|
167
|
-
"1:1": "1 / 1",
|
|
168
|
-
"4:3": "4 / 3",
|
|
169
|
-
"16:9": "16 / 9",
|
|
170
|
-
"21:9": "21 / 9"
|
|
171
|
-
};
|
|
172
|
-
var radiusMap2 = {
|
|
173
|
-
none: "0",
|
|
174
|
-
sm: "4px",
|
|
175
|
-
md: "8px",
|
|
176
|
-
lg: "16px",
|
|
177
|
-
xl: "24px",
|
|
178
|
-
full: "9999px"
|
|
179
|
-
};
|
|
180
|
-
var shadowMap = {
|
|
181
|
-
none: "none",
|
|
182
|
-
sm: "0 1px 2px rgba(0,0,0,0.05)",
|
|
183
|
-
md: "0 4px 6px rgba(0,0,0,0.1)",
|
|
184
|
-
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
185
|
-
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
186
|
-
};
|
|
187
|
-
function isThemeableValue2(value) {
|
|
188
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
189
|
-
}
|
|
190
|
-
function isEntryBoundValue2(value) {
|
|
191
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
49
|
+
const vimeoMatch = url.match(/(?:vimeo\.com\/)(\d+)/);
|
|
50
|
+
if (vimeoMatch) {
|
|
51
|
+
return {
|
|
52
|
+
type: "vimeo",
|
|
53
|
+
embedUrl: `https://player.vimeo.com/video/${vimeoMatch[1]}`
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return { type: "unknown", embedUrl: url };
|
|
192
57
|
}
|
|
193
|
-
function
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
width = "full",
|
|
197
|
-
aspectRatio = "auto",
|
|
198
|
-
objectFit = "cover",
|
|
58
|
+
function VideoEmbed({
|
|
59
|
+
url,
|
|
60
|
+
aspectRatio = "16:9",
|
|
199
61
|
borderRadius = "none",
|
|
200
|
-
|
|
62
|
+
autoplay = false,
|
|
63
|
+
muted = false,
|
|
64
|
+
loop = false,
|
|
201
65
|
align = "center",
|
|
202
|
-
|
|
203
|
-
captionColor,
|
|
66
|
+
maxWidth = "full",
|
|
204
67
|
id
|
|
205
68
|
}) {
|
|
206
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
207
69
|
const { getEntryValue } = useEntries();
|
|
208
|
-
const
|
|
209
|
-
if (!
|
|
210
|
-
if (typeof
|
|
211
|
-
if (
|
|
212
|
-
if (
|
|
213
|
-
return String(getEntryValue(
|
|
214
|
-
}
|
|
215
|
-
return src.value;
|
|
216
|
-
}
|
|
217
|
-
return "";
|
|
218
|
-
})();
|
|
219
|
-
const resolvedCaption = (() => {
|
|
220
|
-
if (!caption) return "";
|
|
221
|
-
if (typeof caption === "string") return caption;
|
|
222
|
-
if (isEntryBoundValue2(caption)) {
|
|
223
|
-
if (caption.useEntry) {
|
|
224
|
-
return String(getEntryValue(caption.entryName, caption.fieldKey) ?? "");
|
|
70
|
+
const resolvedUrl = (() => {
|
|
71
|
+
if (!url) return "";
|
|
72
|
+
if (typeof url === "string") return url;
|
|
73
|
+
if (isEntryBoundValue(url)) {
|
|
74
|
+
if (url.useEntry) {
|
|
75
|
+
return String(getEntryValue(url.entryName, url.fieldKey) ?? "");
|
|
225
76
|
}
|
|
226
|
-
return
|
|
77
|
+
return url.value;
|
|
227
78
|
}
|
|
228
79
|
return "";
|
|
229
80
|
})();
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (typeof captionColor === "string")
|
|
233
|
-
return { color: captionColor, opacity: 100 };
|
|
234
|
-
if (isThemeableValue2(captionColor)) {
|
|
235
|
-
return captionColor.useTheme ? resolveColor2(captionColor.themeKey) : captionColor.value;
|
|
236
|
-
}
|
|
237
|
-
if ("color" in captionColor) return captionColor;
|
|
238
|
-
return resolveColor2("muted");
|
|
239
|
-
})();
|
|
240
|
-
const wrapperStyle = {
|
|
241
|
-
display: "flex",
|
|
242
|
-
flexDirection: "column",
|
|
243
|
-
alignItems: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center",
|
|
244
|
-
gap: "8px"
|
|
245
|
-
};
|
|
246
|
-
const imageStyle = {
|
|
247
|
-
width: widthMap[width],
|
|
248
|
-
maxWidth: "100%",
|
|
249
|
-
aspectRatio: aspectRatioMap[aspectRatio],
|
|
250
|
-
objectFit,
|
|
251
|
-
borderRadius: radiusMap2[borderRadius],
|
|
252
|
-
boxShadow: shadowMap[shadow],
|
|
253
|
-
display: "block"
|
|
254
|
-
};
|
|
255
|
-
const captionStyle = {
|
|
256
|
-
fontSize: "0.875rem",
|
|
257
|
-
color: hexToRgba(resolvedCaptionColor.color, resolvedCaptionColor.opacity),
|
|
258
|
-
textAlign: align,
|
|
259
|
-
maxWidth: widthMap[width]
|
|
260
|
-
};
|
|
261
|
-
if (!resolvedSrc) {
|
|
262
|
-
return /* @__PURE__ */ jsx2("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx2(
|
|
263
|
-
"div",
|
|
264
|
-
{
|
|
265
|
-
style: {
|
|
266
|
-
...imageStyle,
|
|
267
|
-
backgroundColor: "#e5e7eb",
|
|
268
|
-
display: "flex",
|
|
269
|
-
alignItems: "center",
|
|
270
|
-
justifyContent: "center",
|
|
271
|
-
minHeight: "200px",
|
|
272
|
-
color: "#9ca3af"
|
|
273
|
-
},
|
|
274
|
-
children: "No image"
|
|
275
|
-
}
|
|
276
|
-
) });
|
|
277
|
-
}
|
|
278
|
-
return /* @__PURE__ */ jsxs("figure", { id, style: { ...wrapperStyle, margin: 0 }, children: [
|
|
279
|
-
/* @__PURE__ */ jsx2("img", { src: resolvedSrc, alt, style: imageStyle, loading: "lazy" }),
|
|
280
|
-
resolvedCaption && /* @__PURE__ */ jsx2("figcaption", { style: captionStyle, children: resolvedCaption })
|
|
281
|
-
] });
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// components/page/ImageCarousel.tsx
|
|
285
|
-
import { useState } from "react";
|
|
286
|
-
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
287
|
-
var aspectRatioMap2 = {
|
|
288
|
-
"16:9": "16 / 9",
|
|
289
|
-
"4:3": "4 / 3",
|
|
290
|
-
"1:1": "1 / 1",
|
|
291
|
-
"21:9": "21 / 9"
|
|
292
|
-
};
|
|
293
|
-
var radiusMap3 = {
|
|
294
|
-
none: "0",
|
|
295
|
-
sm: "4px",
|
|
296
|
-
md: "8px",
|
|
297
|
-
lg: "16px"
|
|
298
|
-
};
|
|
299
|
-
function isThemeableValue3(value) {
|
|
300
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
301
|
-
}
|
|
302
|
-
function ImageCarousel({
|
|
303
|
-
images = [],
|
|
304
|
-
aspectRatio = "16:9",
|
|
305
|
-
borderRadius = "none",
|
|
306
|
-
showDots = true,
|
|
307
|
-
showArrows = true,
|
|
308
|
-
arrowColor,
|
|
309
|
-
dotColor,
|
|
310
|
-
id
|
|
311
|
-
}) {
|
|
312
|
-
const [currentIndex, setCurrentIndex] = useState(0);
|
|
313
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
314
|
-
const utm = useUtmParams();
|
|
315
|
-
const sendEvent = useGtmEvent();
|
|
316
|
-
const resolvedArrowColor = (() => {
|
|
317
|
-
if (!arrowColor) return { color: "#FFFFFF", opacity: 100 };
|
|
318
|
-
if (typeof arrowColor === "string")
|
|
319
|
-
return { color: arrowColor, opacity: 100 };
|
|
320
|
-
if (isThemeableValue3(arrowColor)) {
|
|
321
|
-
return arrowColor.useTheme ? resolveColor2(arrowColor.themeKey) : arrowColor.value;
|
|
322
|
-
}
|
|
323
|
-
if ("color" in arrowColor) return arrowColor;
|
|
324
|
-
return { color: "#FFFFFF", opacity: 100 };
|
|
325
|
-
})();
|
|
326
|
-
const resolvedDotColor = (() => {
|
|
327
|
-
if (!dotColor) return resolveColor2("primary");
|
|
328
|
-
if (typeof dotColor === "string") return { color: dotColor, opacity: 100 };
|
|
329
|
-
if (isThemeableValue3(dotColor)) {
|
|
330
|
-
return dotColor.useTheme ? resolveColor2(dotColor.themeKey) : dotColor.value;
|
|
331
|
-
}
|
|
332
|
-
if ("color" in dotColor) return dotColor;
|
|
333
|
-
return resolveColor2("primary");
|
|
334
|
-
})();
|
|
335
|
-
const goToPrevious = () => {
|
|
336
|
-
const newIndex = currentIndex === 0 ? images.length - 1 : currentIndex - 1;
|
|
337
|
-
setCurrentIndex(newIndex);
|
|
338
|
-
sendEvent("carousel_navigate", {
|
|
339
|
-
direction: "previous",
|
|
340
|
-
slideIndex: newIndex,
|
|
341
|
-
totalSlides: images.length,
|
|
342
|
-
...utm
|
|
343
|
-
});
|
|
344
|
-
};
|
|
345
|
-
const goToNext = () => {
|
|
346
|
-
const newIndex = currentIndex === images.length - 1 ? 0 : currentIndex + 1;
|
|
347
|
-
setCurrentIndex(newIndex);
|
|
348
|
-
sendEvent("carousel_navigate", {
|
|
349
|
-
direction: "next",
|
|
350
|
-
slideIndex: newIndex,
|
|
351
|
-
totalSlides: images.length,
|
|
352
|
-
...utm
|
|
353
|
-
});
|
|
354
|
-
};
|
|
355
|
-
const goToSlide = (index) => {
|
|
356
|
-
setCurrentIndex(index);
|
|
357
|
-
sendEvent("carousel_navigate", {
|
|
358
|
-
direction: "direct",
|
|
359
|
-
slideIndex: index,
|
|
360
|
-
totalSlides: images.length,
|
|
361
|
-
...utm
|
|
362
|
-
});
|
|
363
|
-
};
|
|
364
|
-
if (images.length === 0) {
|
|
365
|
-
return /* @__PURE__ */ jsx3(
|
|
81
|
+
if (!resolvedUrl) {
|
|
82
|
+
return /* @__PURE__ */ jsx(
|
|
366
83
|
"div",
|
|
367
84
|
{
|
|
368
85
|
style: {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
86
|
+
backgroundColor: "#1f2937",
|
|
87
|
+
borderRadius: radiusMap[borderRadius],
|
|
88
|
+
aspectRatio: aspectRatio.replace(":", " / "),
|
|
372
89
|
display: "flex",
|
|
373
90
|
alignItems: "center",
|
|
374
91
|
justifyContent: "center",
|
|
375
|
-
color: "#9ca3af"
|
|
92
|
+
color: "#9ca3af",
|
|
93
|
+
maxWidth: maxWidthMap[maxWidth],
|
|
94
|
+
marginLeft: align === "center" ? "auto" : align === "right" ? "auto" : void 0,
|
|
95
|
+
marginRight: align === "center" ? "auto" : align === "left" ? "auto" : void 0
|
|
376
96
|
},
|
|
377
|
-
children: "No
|
|
97
|
+
children: "No video URL"
|
|
378
98
|
}
|
|
379
99
|
);
|
|
380
100
|
}
|
|
101
|
+
const { embedUrl } = parseVideoUrl(resolvedUrl);
|
|
102
|
+
const params = new URLSearchParams();
|
|
103
|
+
if (autoplay) params.set("autoplay", "1");
|
|
104
|
+
if (muted) params.set("mute", "1");
|
|
105
|
+
if (loop) params.set("loop", "1");
|
|
106
|
+
const finalUrl = params.toString() ? `${embedUrl}?${params.toString()}` : embedUrl;
|
|
107
|
+
const wrapperStyle = {
|
|
108
|
+
display: "flex",
|
|
109
|
+
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
110
|
+
};
|
|
381
111
|
const containerStyle = {
|
|
382
112
|
position: "relative",
|
|
383
|
-
|
|
384
|
-
|
|
113
|
+
width: "100%",
|
|
114
|
+
maxWidth: maxWidthMap[maxWidth],
|
|
115
|
+
paddingBottom: aspectRatioMap[aspectRatio],
|
|
116
|
+
borderRadius: radiusMap[borderRadius],
|
|
385
117
|
overflow: "hidden"
|
|
386
118
|
};
|
|
387
|
-
const
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
height: "100%"
|
|
392
|
-
};
|
|
393
|
-
const slideStyle = {
|
|
394
|
-
minWidth: "100%",
|
|
395
|
-
height: "100%"
|
|
396
|
-
};
|
|
397
|
-
const imageStyle = {
|
|
119
|
+
const iframeStyle = {
|
|
120
|
+
position: "absolute",
|
|
121
|
+
top: 0,
|
|
122
|
+
left: 0,
|
|
398
123
|
width: "100%",
|
|
399
124
|
height: "100%",
|
|
400
|
-
|
|
125
|
+
border: "none"
|
|
401
126
|
};
|
|
402
|
-
|
|
403
|
-
position: "absolute",
|
|
404
|
-
top: "50%",
|
|
405
|
-
transform: "translateY(-50%)",
|
|
406
|
-
backgroundColor: "rgba(0,0,0,0.5)",
|
|
407
|
-
color: hexToRgba(resolvedArrowColor.color, resolvedArrowColor.opacity),
|
|
408
|
-
border: "none",
|
|
409
|
-
borderRadius: "50%",
|
|
410
|
-
width: "40px",
|
|
411
|
-
height: "40px",
|
|
412
|
-
cursor: "pointer",
|
|
413
|
-
display: "flex",
|
|
414
|
-
alignItems: "center",
|
|
415
|
-
justifyContent: "center",
|
|
416
|
-
fontSize: "20px",
|
|
417
|
-
zIndex: 1
|
|
418
|
-
};
|
|
419
|
-
const dotsContainerStyle = {
|
|
420
|
-
position: "absolute",
|
|
421
|
-
bottom: "16px",
|
|
422
|
-
left: "50%",
|
|
423
|
-
transform: "translateX(-50%)",
|
|
424
|
-
display: "flex",
|
|
425
|
-
gap: "8px",
|
|
426
|
-
zIndex: 1
|
|
427
|
-
};
|
|
428
|
-
const dotStyle = (isActive) => ({
|
|
429
|
-
width: "10px",
|
|
430
|
-
height: "10px",
|
|
431
|
-
borderRadius: "50%",
|
|
432
|
-
border: "none",
|
|
433
|
-
cursor: "pointer",
|
|
434
|
-
backgroundColor: isActive ? hexToRgba(resolvedDotColor.color, resolvedDotColor.opacity) : "rgba(255,255,255,0.5)"
|
|
435
|
-
});
|
|
436
|
-
return /* @__PURE__ */ jsxs2("div", { id, style: containerStyle, children: [
|
|
437
|
-
/* @__PURE__ */ jsx3("div", { style: slideContainerStyle, children: images.map((image, index) => /* @__PURE__ */ jsx3("div", { style: slideStyle, children: /* @__PURE__ */ jsx3(
|
|
438
|
-
"img",
|
|
439
|
-
{
|
|
440
|
-
src: image.src,
|
|
441
|
-
alt: image.alt || "",
|
|
442
|
-
style: imageStyle,
|
|
443
|
-
loading: "lazy"
|
|
444
|
-
}
|
|
445
|
-
) }, index)) }),
|
|
446
|
-
showArrows && images.length > 1 && /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
447
|
-
/* @__PURE__ */ jsx3(
|
|
448
|
-
"button",
|
|
449
|
-
{
|
|
450
|
-
type: "button",
|
|
451
|
-
onClick: goToPrevious,
|
|
452
|
-
style: { ...arrowStyle, left: "16px" },
|
|
453
|
-
"aria-label": "Previous slide",
|
|
454
|
-
children: "\u2039"
|
|
455
|
-
}
|
|
456
|
-
),
|
|
457
|
-
/* @__PURE__ */ jsx3(
|
|
458
|
-
"button",
|
|
459
|
-
{
|
|
460
|
-
type: "button",
|
|
461
|
-
onClick: goToNext,
|
|
462
|
-
style: { ...arrowStyle, right: "16px" },
|
|
463
|
-
"aria-label": "Next slide",
|
|
464
|
-
children: "\u203A"
|
|
465
|
-
}
|
|
466
|
-
)
|
|
467
|
-
] }),
|
|
468
|
-
showDots && images.length > 1 && /* @__PURE__ */ jsx3("div", { style: dotsContainerStyle, children: images.map((_, index) => /* @__PURE__ */ jsx3(
|
|
469
|
-
"button",
|
|
470
|
-
{
|
|
471
|
-
type: "button",
|
|
472
|
-
onClick: () => goToSlide(index),
|
|
473
|
-
style: dotStyle(index === currentIndex),
|
|
474
|
-
"aria-label": `Go to slide ${index + 1}`
|
|
475
|
-
},
|
|
476
|
-
index
|
|
477
|
-
)) })
|
|
478
|
-
] });
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
// components/page/VideoEmbed.tsx
|
|
482
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
483
|
-
var aspectRatioMap3 = {
|
|
484
|
-
"16:9": "56.25%",
|
|
485
|
-
// 9/16 * 100
|
|
486
|
-
"4:3": "75%",
|
|
487
|
-
"1:1": "100%",
|
|
488
|
-
"21:9": "42.86%"
|
|
489
|
-
};
|
|
490
|
-
var radiusMap4 = {
|
|
491
|
-
none: "0",
|
|
492
|
-
sm: "4px",
|
|
493
|
-
md: "8px",
|
|
494
|
-
lg: "16px"
|
|
495
|
-
};
|
|
496
|
-
var maxWidthMap = {
|
|
497
|
-
sm: "400px",
|
|
498
|
-
md: "600px",
|
|
499
|
-
lg: "800px",
|
|
500
|
-
xl: "1000px",
|
|
501
|
-
full: "100%"
|
|
502
|
-
};
|
|
503
|
-
function isEntryBoundValue3(value) {
|
|
504
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
505
|
-
}
|
|
506
|
-
function parseVideoUrl(url) {
|
|
507
|
-
const ytMatch = url.match(
|
|
508
|
-
/(?:youtube\.com\/(?:watch\?v=|embed\/)|youtu\.be\/)([a-zA-Z0-9_-]{11})/
|
|
509
|
-
);
|
|
510
|
-
if (ytMatch) {
|
|
511
|
-
return {
|
|
512
|
-
type: "youtube",
|
|
513
|
-
embedUrl: `https://www.youtube.com/embed/${ytMatch[1]}`
|
|
514
|
-
};
|
|
515
|
-
}
|
|
516
|
-
const vimeoMatch = url.match(/(?:vimeo\.com\/)(\d+)/);
|
|
517
|
-
if (vimeoMatch) {
|
|
518
|
-
return {
|
|
519
|
-
type: "vimeo",
|
|
520
|
-
embedUrl: `https://player.vimeo.com/video/${vimeoMatch[1]}`
|
|
521
|
-
};
|
|
522
|
-
}
|
|
523
|
-
return { type: "unknown", embedUrl: url };
|
|
524
|
-
}
|
|
525
|
-
function VideoEmbed({
|
|
526
|
-
url,
|
|
527
|
-
aspectRatio = "16:9",
|
|
528
|
-
borderRadius = "none",
|
|
529
|
-
autoplay = false,
|
|
530
|
-
muted = false,
|
|
531
|
-
loop = false,
|
|
532
|
-
align = "center",
|
|
533
|
-
maxWidth = "full",
|
|
534
|
-
id
|
|
535
|
-
}) {
|
|
536
|
-
const { getEntryValue } = useEntries();
|
|
537
|
-
const resolvedUrl = (() => {
|
|
538
|
-
if (!url) return "";
|
|
539
|
-
if (typeof url === "string") return url;
|
|
540
|
-
if (isEntryBoundValue3(url)) {
|
|
541
|
-
if (url.useEntry) {
|
|
542
|
-
return String(getEntryValue(url.entryName, url.fieldKey) ?? "");
|
|
543
|
-
}
|
|
544
|
-
return url.value;
|
|
545
|
-
}
|
|
546
|
-
return "";
|
|
547
|
-
})();
|
|
548
|
-
if (!resolvedUrl) {
|
|
549
|
-
return /* @__PURE__ */ jsx4(
|
|
550
|
-
"div",
|
|
551
|
-
{
|
|
552
|
-
style: {
|
|
553
|
-
backgroundColor: "#1f2937",
|
|
554
|
-
borderRadius: radiusMap4[borderRadius],
|
|
555
|
-
aspectRatio: aspectRatio.replace(":", " / "),
|
|
556
|
-
display: "flex",
|
|
557
|
-
alignItems: "center",
|
|
558
|
-
justifyContent: "center",
|
|
559
|
-
color: "#9ca3af",
|
|
560
|
-
maxWidth: maxWidthMap[maxWidth],
|
|
561
|
-
marginLeft: align === "center" ? "auto" : align === "right" ? "auto" : void 0,
|
|
562
|
-
marginRight: align === "center" ? "auto" : align === "left" ? "auto" : void 0
|
|
563
|
-
},
|
|
564
|
-
children: "No video URL"
|
|
565
|
-
}
|
|
566
|
-
);
|
|
567
|
-
}
|
|
568
|
-
const { embedUrl } = parseVideoUrl(resolvedUrl);
|
|
569
|
-
const params = new URLSearchParams();
|
|
570
|
-
if (autoplay) params.set("autoplay", "1");
|
|
571
|
-
if (muted) params.set("mute", "1");
|
|
572
|
-
if (loop) params.set("loop", "1");
|
|
573
|
-
const finalUrl = params.toString() ? `${embedUrl}?${params.toString()}` : embedUrl;
|
|
574
|
-
const wrapperStyle = {
|
|
575
|
-
display: "flex",
|
|
576
|
-
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
577
|
-
};
|
|
578
|
-
const containerStyle = {
|
|
579
|
-
position: "relative",
|
|
580
|
-
width: "100%",
|
|
581
|
-
maxWidth: maxWidthMap[maxWidth],
|
|
582
|
-
paddingBottom: aspectRatioMap3[aspectRatio],
|
|
583
|
-
borderRadius: radiusMap4[borderRadius],
|
|
584
|
-
overflow: "hidden"
|
|
585
|
-
};
|
|
586
|
-
const iframeStyle = {
|
|
587
|
-
position: "absolute",
|
|
588
|
-
top: 0,
|
|
589
|
-
left: 0,
|
|
590
|
-
width: "100%",
|
|
591
|
-
height: "100%",
|
|
592
|
-
border: "none"
|
|
593
|
-
};
|
|
594
|
-
return /* @__PURE__ */ jsx4("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx4("div", { style: containerStyle, children: /* @__PURE__ */ jsx4(
|
|
127
|
+
return /* @__PURE__ */ jsx("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx("div", { style: containerStyle, children: /* @__PURE__ */ jsx(
|
|
595
128
|
"iframe",
|
|
596
129
|
{
|
|
597
130
|
src: finalUrl,
|
|
@@ -603,8 +136,8 @@ function VideoEmbed({
|
|
|
603
136
|
) }) });
|
|
604
137
|
}
|
|
605
138
|
|
|
606
|
-
// components/page/Icon.tsx
|
|
607
|
-
import { jsx as
|
|
139
|
+
// components/page/primitives/Icon.tsx
|
|
140
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
608
141
|
var sizeMap = {
|
|
609
142
|
sm: { size: "16px", strokeWidth: 2 },
|
|
610
143
|
md: { size: "24px", strokeWidth: 2 },
|
|
@@ -613,7 +146,7 @@ var sizeMap = {
|
|
|
613
146
|
"2xl": { size: "64px", strokeWidth: 1.5 }
|
|
614
147
|
};
|
|
615
148
|
var icons = {
|
|
616
|
-
check: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
149
|
+
check: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
617
150
|
"svg",
|
|
618
151
|
{
|
|
619
152
|
width: size,
|
|
@@ -624,10 +157,10 @@ var icons = {
|
|
|
624
157
|
strokeWidth,
|
|
625
158
|
strokeLinecap: "round",
|
|
626
159
|
strokeLinejoin: "round",
|
|
627
|
-
children: /* @__PURE__ */
|
|
160
|
+
children: /* @__PURE__ */ jsx2("polyline", { points: "20 6 9 17 4 12" })
|
|
628
161
|
}
|
|
629
162
|
),
|
|
630
|
-
x: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
163
|
+
x: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
631
164
|
"svg",
|
|
632
165
|
{
|
|
633
166
|
width: size,
|
|
@@ -639,12 +172,12 @@ var icons = {
|
|
|
639
172
|
strokeLinecap: "round",
|
|
640
173
|
strokeLinejoin: "round",
|
|
641
174
|
children: [
|
|
642
|
-
/* @__PURE__ */
|
|
643
|
-
/* @__PURE__ */
|
|
175
|
+
/* @__PURE__ */ jsx2("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
176
|
+
/* @__PURE__ */ jsx2("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
644
177
|
]
|
|
645
178
|
}
|
|
646
179
|
),
|
|
647
|
-
star: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
180
|
+
star: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
648
181
|
"svg",
|
|
649
182
|
{
|
|
650
183
|
width: size,
|
|
@@ -655,10 +188,10 @@ var icons = {
|
|
|
655
188
|
strokeWidth,
|
|
656
189
|
strokeLinecap: "round",
|
|
657
190
|
strokeLinejoin: "round",
|
|
658
|
-
children: /* @__PURE__ */
|
|
191
|
+
children: /* @__PURE__ */ jsx2("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" })
|
|
659
192
|
}
|
|
660
193
|
),
|
|
661
|
-
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
194
|
+
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
662
195
|
"svg",
|
|
663
196
|
{
|
|
664
197
|
width: size,
|
|
@@ -669,10 +202,10 @@ var icons = {
|
|
|
669
202
|
strokeWidth,
|
|
670
203
|
strokeLinecap: "round",
|
|
671
204
|
strokeLinejoin: "round",
|
|
672
|
-
children: /* @__PURE__ */
|
|
205
|
+
children: /* @__PURE__ */ jsx2("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })
|
|
673
206
|
}
|
|
674
207
|
),
|
|
675
|
-
arrowRight: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
208
|
+
arrowRight: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
676
209
|
"svg",
|
|
677
210
|
{
|
|
678
211
|
width: size,
|
|
@@ -684,12 +217,12 @@ var icons = {
|
|
|
684
217
|
strokeLinecap: "round",
|
|
685
218
|
strokeLinejoin: "round",
|
|
686
219
|
children: [
|
|
687
|
-
/* @__PURE__ */
|
|
688
|
-
/* @__PURE__ */
|
|
220
|
+
/* @__PURE__ */ jsx2("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
221
|
+
/* @__PURE__ */ jsx2("polyline", { points: "12 5 19 12 12 19" })
|
|
689
222
|
]
|
|
690
223
|
}
|
|
691
224
|
),
|
|
692
|
-
arrowLeft: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
225
|
+
arrowLeft: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
693
226
|
"svg",
|
|
694
227
|
{
|
|
695
228
|
width: size,
|
|
@@ -701,12 +234,12 @@ var icons = {
|
|
|
701
234
|
strokeLinecap: "round",
|
|
702
235
|
strokeLinejoin: "round",
|
|
703
236
|
children: [
|
|
704
|
-
/* @__PURE__ */
|
|
705
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ jsx2("line", { x1: "19", y1: "12", x2: "5", y2: "12" }),
|
|
238
|
+
/* @__PURE__ */ jsx2("polyline", { points: "12 19 5 12 12 5" })
|
|
706
239
|
]
|
|
707
240
|
}
|
|
708
241
|
),
|
|
709
|
-
mail: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
242
|
+
mail: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
710
243
|
"svg",
|
|
711
244
|
{
|
|
712
245
|
width: size,
|
|
@@ -718,12 +251,12 @@ var icons = {
|
|
|
718
251
|
strokeLinecap: "round",
|
|
719
252
|
strokeLinejoin: "round",
|
|
720
253
|
children: [
|
|
721
|
-
/* @__PURE__ */
|
|
722
|
-
/* @__PURE__ */
|
|
254
|
+
/* @__PURE__ */ jsx2("path", { d: "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z" }),
|
|
255
|
+
/* @__PURE__ */ jsx2("polyline", { points: "22,6 12,13 2,6" })
|
|
723
256
|
]
|
|
724
257
|
}
|
|
725
258
|
),
|
|
726
|
-
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
259
|
+
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
727
260
|
"svg",
|
|
728
261
|
{
|
|
729
262
|
width: size,
|
|
@@ -734,10 +267,10 @@ var icons = {
|
|
|
734
267
|
strokeWidth,
|
|
735
268
|
strokeLinecap: "round",
|
|
736
269
|
strokeLinejoin: "round",
|
|
737
|
-
children: /* @__PURE__ */
|
|
270
|
+
children: /* @__PURE__ */ jsx2("path", { d: "M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z" })
|
|
738
271
|
}
|
|
739
272
|
),
|
|
740
|
-
mapPin: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
273
|
+
mapPin: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
741
274
|
"svg",
|
|
742
275
|
{
|
|
743
276
|
width: size,
|
|
@@ -749,12 +282,12 @@ var icons = {
|
|
|
749
282
|
strokeLinecap: "round",
|
|
750
283
|
strokeLinejoin: "round",
|
|
751
284
|
children: [
|
|
752
|
-
/* @__PURE__ */
|
|
753
|
-
/* @__PURE__ */
|
|
285
|
+
/* @__PURE__ */ jsx2("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
|
|
286
|
+
/* @__PURE__ */ jsx2("circle", { cx: "12", cy: "10", r: "3" })
|
|
754
287
|
]
|
|
755
288
|
}
|
|
756
289
|
),
|
|
757
|
-
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
290
|
+
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
758
291
|
"svg",
|
|
759
292
|
{
|
|
760
293
|
width: size,
|
|
@@ -765,10 +298,10 @@ var icons = {
|
|
|
765
298
|
strokeWidth,
|
|
766
299
|
strokeLinecap: "round",
|
|
767
300
|
strokeLinejoin: "round",
|
|
768
|
-
children: /* @__PURE__ */
|
|
301
|
+
children: /* @__PURE__ */ jsx2("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
|
|
769
302
|
}
|
|
770
303
|
),
|
|
771
|
-
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
304
|
+
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx2(
|
|
772
305
|
"svg",
|
|
773
306
|
{
|
|
774
307
|
width: size,
|
|
@@ -779,10 +312,10 @@ var icons = {
|
|
|
779
312
|
strokeWidth,
|
|
780
313
|
strokeLinecap: "round",
|
|
781
314
|
strokeLinejoin: "round",
|
|
782
|
-
children: /* @__PURE__ */
|
|
315
|
+
children: /* @__PURE__ */ jsx2("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" })
|
|
783
316
|
}
|
|
784
317
|
),
|
|
785
|
-
users: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
318
|
+
users: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs(
|
|
786
319
|
"svg",
|
|
787
320
|
{
|
|
788
321
|
width: size,
|
|
@@ -794,463 +327,128 @@ var icons = {
|
|
|
794
327
|
strokeLinecap: "round",
|
|
795
328
|
strokeLinejoin: "round",
|
|
796
329
|
children: [
|
|
797
|
-
/* @__PURE__ */
|
|
798
|
-
/* @__PURE__ */
|
|
799
|
-
/* @__PURE__ */
|
|
800
|
-
/* @__PURE__ */
|
|
330
|
+
/* @__PURE__ */ jsx2("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
|
|
331
|
+
/* @__PURE__ */ jsx2("circle", { cx: "9", cy: "7", r: "4" }),
|
|
332
|
+
/* @__PURE__ */ jsx2("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
|
|
333
|
+
/* @__PURE__ */ jsx2("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
801
334
|
]
|
|
802
335
|
}
|
|
803
336
|
)
|
|
804
337
|
};
|
|
805
|
-
function
|
|
338
|
+
function isThemeableValue(value) {
|
|
806
339
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
807
340
|
}
|
|
808
|
-
function
|
|
809
|
-
|
|
810
|
-
size = "md",
|
|
811
|
-
color,
|
|
812
|
-
align = "center",
|
|
813
|
-
id
|
|
814
|
-
}) {
|
|
815
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
816
|
-
const resolvedColor = (() => {
|
|
817
|
-
if (!color) return resolveColor2("primary");
|
|
818
|
-
if (typeof color === "string") return { color, opacity: 100 };
|
|
819
|
-
if (isThemeableValue4(color)) {
|
|
820
|
-
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
821
|
-
}
|
|
822
|
-
if ("color" in color) return color;
|
|
823
|
-
return resolveColor2("primary");
|
|
824
|
-
})();
|
|
825
|
-
const IconComponent = icons[name.toLowerCase()] || icons.check;
|
|
826
|
-
const { size: iconSize, strokeWidth } = sizeMap[size];
|
|
827
|
-
const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
|
|
828
|
-
const wrapperStyle = {
|
|
341
|
+
function getWrapperStyle(align) {
|
|
342
|
+
return {
|
|
829
343
|
display: "flex",
|
|
830
344
|
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
831
345
|
};
|
|
832
|
-
return /* @__PURE__ */ jsx5("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx5(
|
|
833
|
-
IconComponent,
|
|
834
|
-
{
|
|
835
|
-
size: iconSize,
|
|
836
|
-
color: colorValue,
|
|
837
|
-
strokeWidth
|
|
838
|
-
}
|
|
839
|
-
) });
|
|
840
346
|
}
|
|
841
347
|
var availableIcons = Object.keys(icons);
|
|
842
348
|
|
|
843
|
-
// components/page/
|
|
844
|
-
import { jsx as
|
|
845
|
-
|
|
349
|
+
// components/page/TextBlock.tsx
|
|
350
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
351
|
+
var alignmentMap = {
|
|
352
|
+
left: "text-left",
|
|
353
|
+
center: "text-center",
|
|
354
|
+
right: "text-right"
|
|
355
|
+
};
|
|
356
|
+
var sizeMap2 = {
|
|
357
|
+
small: "text-2xl",
|
|
358
|
+
"medium-small": "text-3xl",
|
|
359
|
+
medium: "text-4xl",
|
|
360
|
+
large: "text-5xl",
|
|
361
|
+
xlarge: "text-6xl"
|
|
362
|
+
};
|
|
363
|
+
function isThemeableValue2(value) {
|
|
846
364
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
847
365
|
}
|
|
848
|
-
function
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
366
|
+
function isEntryBoundValue2(value) {
|
|
367
|
+
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
368
|
+
}
|
|
369
|
+
function resolveColor(color, resolveThemeColor) {
|
|
370
|
+
if (!color) return "#000000";
|
|
371
|
+
if (typeof color === "string") return color;
|
|
372
|
+
if (isThemeableValue2(color)) {
|
|
373
|
+
if (color.useTheme) {
|
|
374
|
+
const themeColor = resolveThemeColor(color.themeKey);
|
|
854
375
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
855
376
|
}
|
|
856
|
-
return hexToRgba(
|
|
377
|
+
return hexToRgba(color.value.color, color.value.opacity);
|
|
857
378
|
}
|
|
858
|
-
if ("color" in
|
|
859
|
-
return hexToRgba(
|
|
379
|
+
if ("color" in color && "opacity" in color) {
|
|
380
|
+
return hexToRgba(color.color, color.opacity);
|
|
860
381
|
}
|
|
861
|
-
return
|
|
382
|
+
return "#000000";
|
|
862
383
|
}
|
|
863
|
-
function
|
|
864
|
-
if (!
|
|
865
|
-
if (
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
384
|
+
function resolveColorHex(color, resolveThemeColor) {
|
|
385
|
+
if (!color) return "#000000";
|
|
386
|
+
if (typeof color === "string") return color;
|
|
387
|
+
if (isThemeableValue2(color)) {
|
|
388
|
+
if (color.useTheme) {
|
|
389
|
+
return resolveThemeColor(color.themeKey).color;
|
|
390
|
+
}
|
|
391
|
+
return color.value.color;
|
|
870
392
|
}
|
|
871
|
-
if (
|
|
872
|
-
return
|
|
393
|
+
if ("color" in color) {
|
|
394
|
+
return color.color;
|
|
873
395
|
}
|
|
874
|
-
return "";
|
|
396
|
+
return "#000000";
|
|
875
397
|
}
|
|
876
|
-
function
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
puck
|
|
398
|
+
function TextBlock({
|
|
399
|
+
title,
|
|
400
|
+
subtitle,
|
|
401
|
+
body,
|
|
402
|
+
alignment = "left",
|
|
403
|
+
textSize = "medium",
|
|
404
|
+
textColor,
|
|
405
|
+
subtitleBodyColor,
|
|
406
|
+
useGradientText = false,
|
|
407
|
+
gradientColor1,
|
|
408
|
+
gradientColor2,
|
|
409
|
+
anchorLink
|
|
889
410
|
}) {
|
|
890
|
-
const { resolveColor:
|
|
891
|
-
const
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
}
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
lg: "1024px",
|
|
918
|
-
xl: "1280px",
|
|
919
|
-
"2xl": "1536px",
|
|
920
|
-
full: "100%"
|
|
921
|
-
};
|
|
922
|
-
var paddingMap = {
|
|
923
|
-
none: "0",
|
|
924
|
-
sm: "16px",
|
|
925
|
-
md: "24px",
|
|
926
|
-
lg: "32px",
|
|
927
|
-
xl: "48px"
|
|
928
|
-
};
|
|
929
|
-
function isThemeableValue6(value) {
|
|
930
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
931
|
-
}
|
|
932
|
-
function Container({
|
|
933
|
-
maxWidth = "lg",
|
|
934
|
-
padding,
|
|
935
|
-
paddingX = "md",
|
|
936
|
-
paddingY = "none",
|
|
937
|
-
backgroundColor,
|
|
938
|
-
centered = true,
|
|
939
|
-
id,
|
|
940
|
-
puck
|
|
941
|
-
}) {
|
|
942
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
943
|
-
const DropZone = puck?.renderDropZone;
|
|
944
|
-
const resolvedBgColor = (() => {
|
|
945
|
-
if (!backgroundColor) return null;
|
|
946
|
-
if (typeof backgroundColor === "string")
|
|
947
|
-
return { color: backgroundColor, opacity: 100 };
|
|
948
|
-
if (isThemeableValue6(backgroundColor)) {
|
|
949
|
-
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
950
|
-
}
|
|
951
|
-
if ("color" in backgroundColor) return backgroundColor;
|
|
952
|
-
return null;
|
|
953
|
-
})();
|
|
954
|
-
const effectivePaddingX = padding || paddingX;
|
|
955
|
-
const effectivePaddingY = padding || paddingY;
|
|
956
|
-
const style = {
|
|
957
|
-
maxWidth: maxWidthMap2[maxWidth],
|
|
958
|
-
marginLeft: centered ? "auto" : void 0,
|
|
959
|
-
marginRight: centered ? "auto" : void 0,
|
|
960
|
-
paddingLeft: paddingMap[effectivePaddingX],
|
|
961
|
-
paddingRight: paddingMap[effectivePaddingX],
|
|
962
|
-
paddingTop: paddingMap[effectivePaddingY],
|
|
963
|
-
paddingBottom: paddingMap[effectivePaddingY],
|
|
964
|
-
backgroundColor: resolvedBgColor ? hexToRgba(resolvedBgColor.color, resolvedBgColor.opacity) : void 0,
|
|
965
|
-
width: "100%"
|
|
966
|
-
};
|
|
967
|
-
return /* @__PURE__ */ jsx7("div", { id, style, children: DropZone && /* @__PURE__ */ jsx7(DropZone, { zone: "container-content" }) });
|
|
968
|
-
}
|
|
969
|
-
|
|
970
|
-
// components/page/Columns.tsx
|
|
971
|
-
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
972
|
-
var gapMap = {
|
|
973
|
-
none: "0",
|
|
974
|
-
sm: "16px",
|
|
975
|
-
md: "24px",
|
|
976
|
-
lg: "32px",
|
|
977
|
-
xl: "48px"
|
|
978
|
-
};
|
|
979
|
-
var alignMap = {
|
|
980
|
-
top: "flex-start",
|
|
981
|
-
center: "center",
|
|
982
|
-
bottom: "flex-end",
|
|
983
|
-
stretch: "stretch"
|
|
984
|
-
};
|
|
985
|
-
function Columns({
|
|
986
|
-
columns = 2,
|
|
987
|
-
gap = "md",
|
|
988
|
-
verticalAlign = "top",
|
|
989
|
-
stackOnMobile = true,
|
|
990
|
-
id,
|
|
991
|
-
puck
|
|
992
|
-
}) {
|
|
993
|
-
const DropZone = puck?.renderDropZone;
|
|
994
|
-
const containerStyle = {
|
|
995
|
-
display: "grid",
|
|
996
|
-
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
997
|
-
gap: gapMap[gap],
|
|
998
|
-
alignItems: alignMap[verticalAlign]
|
|
999
|
-
};
|
|
1000
|
-
return /* @__PURE__ */ jsx8("div", { id, style: containerStyle, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx8("div", { style: { minWidth: 0 }, children: DropZone && /* @__PURE__ */ jsx8(DropZone, { zone: `column-${index}` }) }, index)) });
|
|
1001
|
-
}
|
|
1002
|
-
|
|
1003
|
-
// components/page/Card.tsx
|
|
1004
|
-
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
1005
|
-
var borderWidthMap = {
|
|
1006
|
-
none: "0",
|
|
1007
|
-
thin: "1px",
|
|
1008
|
-
medium: "2px",
|
|
1009
|
-
thick: "4px"
|
|
1010
|
-
};
|
|
1011
|
-
var radiusMap5 = {
|
|
1012
|
-
none: "0",
|
|
1013
|
-
sm: "4px",
|
|
1014
|
-
md: "8px",
|
|
1015
|
-
lg: "16px",
|
|
1016
|
-
xl: "24px"
|
|
1017
|
-
};
|
|
1018
|
-
var shadowMap2 = {
|
|
1019
|
-
none: "none",
|
|
1020
|
-
sm: "0 1px 2px rgba(0,0,0,0.05)",
|
|
1021
|
-
md: "0 4px 6px rgba(0,0,0,0.1)",
|
|
1022
|
-
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
1023
|
-
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
1024
|
-
};
|
|
1025
|
-
var paddingMap2 = {
|
|
1026
|
-
none: "0",
|
|
1027
|
-
sm: "16px",
|
|
1028
|
-
md: "24px",
|
|
1029
|
-
lg: "32px",
|
|
1030
|
-
xl: "48px"
|
|
1031
|
-
};
|
|
1032
|
-
function isThemeableValue7(value) {
|
|
1033
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1034
|
-
}
|
|
1035
|
-
function Card({
|
|
1036
|
-
backgroundColor,
|
|
1037
|
-
borderColor,
|
|
1038
|
-
borderWidth = "thin",
|
|
1039
|
-
borderRadius = "md",
|
|
1040
|
-
shadow = "sm",
|
|
1041
|
-
padding = "md",
|
|
1042
|
-
id,
|
|
1043
|
-
puck
|
|
1044
|
-
}) {
|
|
1045
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
1046
|
-
const DropZone = puck?.renderDropZone;
|
|
1047
|
-
const resolvedBgColor = (() => {
|
|
1048
|
-
if (!backgroundColor) return resolveColor2("background");
|
|
1049
|
-
if (typeof backgroundColor === "string")
|
|
1050
|
-
return { color: backgroundColor, opacity: 100 };
|
|
1051
|
-
if (isThemeableValue7(backgroundColor)) {
|
|
1052
|
-
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1053
|
-
}
|
|
1054
|
-
if ("color" in backgroundColor) return backgroundColor;
|
|
1055
|
-
return resolveColor2("background");
|
|
1056
|
-
})();
|
|
1057
|
-
const resolvedBorderColor = (() => {
|
|
1058
|
-
if (!borderColor) return resolveColor2("muted");
|
|
1059
|
-
if (typeof borderColor === "string")
|
|
1060
|
-
return { color: borderColor, opacity: 100 };
|
|
1061
|
-
if (isThemeableValue7(borderColor)) {
|
|
1062
|
-
return borderColor.useTheme ? resolveColor2(borderColor.themeKey) : borderColor.value;
|
|
1063
|
-
}
|
|
1064
|
-
if ("color" in borderColor) return borderColor;
|
|
1065
|
-
return resolveColor2("muted");
|
|
1066
|
-
})();
|
|
1067
|
-
const style = {
|
|
1068
|
-
backgroundColor: hexToRgba(resolvedBgColor.color, resolvedBgColor.opacity),
|
|
1069
|
-
border: borderWidth !== "none" ? `${borderWidthMap[borderWidth]} solid ${hexToRgba(resolvedBorderColor.color, resolvedBorderColor.opacity)}` : "none",
|
|
1070
|
-
borderRadius: radiusMap5[borderRadius],
|
|
1071
|
-
boxShadow: shadowMap2[shadow],
|
|
1072
|
-
padding: paddingMap2[padding]
|
|
1073
|
-
};
|
|
1074
|
-
return /* @__PURE__ */ jsx9("div", { id, style, children: DropZone && /* @__PURE__ */ jsx9(DropZone, { zone: "card-content" }) });
|
|
1075
|
-
}
|
|
1076
|
-
|
|
1077
|
-
// components/page/Divider.tsx
|
|
1078
|
-
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1079
|
-
var thicknessMap = {
|
|
1080
|
-
thin: "1px",
|
|
1081
|
-
medium: "2px",
|
|
1082
|
-
thick: "4px"
|
|
1083
|
-
};
|
|
1084
|
-
var widthMap2 = {
|
|
1085
|
-
full: "100%",
|
|
1086
|
-
"3/4": "75%",
|
|
1087
|
-
"1/2": "50%",
|
|
1088
|
-
"1/4": "25%"
|
|
1089
|
-
};
|
|
1090
|
-
var spacingMap = {
|
|
1091
|
-
sm: "16px",
|
|
1092
|
-
md: "24px",
|
|
1093
|
-
lg: "32px",
|
|
1094
|
-
xl: "48px"
|
|
1095
|
-
};
|
|
1096
|
-
function isThemeableValue8(value) {
|
|
1097
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1098
|
-
}
|
|
1099
|
-
function Divider({
|
|
1100
|
-
style: lineStyle = "solid",
|
|
1101
|
-
thickness = "thin",
|
|
1102
|
-
color,
|
|
1103
|
-
width = "full",
|
|
1104
|
-
align = "center",
|
|
1105
|
-
spacing = "md",
|
|
1106
|
-
id
|
|
1107
|
-
}) {
|
|
1108
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
1109
|
-
const resolvedColor = (() => {
|
|
1110
|
-
if (!color) return resolveColor2("muted");
|
|
1111
|
-
if (typeof color === "string") return { color, opacity: 100 };
|
|
1112
|
-
if (isThemeableValue8(color)) {
|
|
1113
|
-
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
1114
|
-
}
|
|
1115
|
-
if ("color" in color) return color;
|
|
1116
|
-
return resolveColor2("muted");
|
|
1117
|
-
})();
|
|
1118
|
-
const wrapperStyle = {
|
|
1119
|
-
display: "flex",
|
|
1120
|
-
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center",
|
|
1121
|
-
padding: `${spacingMap[spacing]} 0`
|
|
1122
|
-
};
|
|
1123
|
-
const hrStyle = {
|
|
1124
|
-
width: widthMap2[width],
|
|
1125
|
-
border: "none",
|
|
1126
|
-
borderTop: `${thicknessMap[thickness]} ${lineStyle} ${hexToRgba(resolvedColor.color, resolvedColor.opacity)}`,
|
|
1127
|
-
margin: 0
|
|
1128
|
-
};
|
|
1129
|
-
return /* @__PURE__ */ jsx10("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx10("hr", { style: hrStyle }) });
|
|
1130
|
-
}
|
|
1131
|
-
|
|
1132
|
-
// components/page/Spacer.tsx
|
|
1133
|
-
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1134
|
-
var sizeMap2 = {
|
|
1135
|
-
xs: "8px",
|
|
1136
|
-
sm: "16px",
|
|
1137
|
-
md: "24px",
|
|
1138
|
-
lg: "32px",
|
|
1139
|
-
xl: "48px",
|
|
1140
|
-
"2xl": "64px",
|
|
1141
|
-
"3xl": "96px"
|
|
1142
|
-
};
|
|
1143
|
-
function Spacer({ size = "md", id }) {
|
|
1144
|
-
const style = {
|
|
1145
|
-
height: sizeMap2[size],
|
|
1146
|
-
width: "100%"
|
|
1147
|
-
};
|
|
1148
|
-
return /* @__PURE__ */ jsx11("div", { id, style, "aria-hidden": "true" });
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
// components/page/TextBlock.tsx
|
|
1152
|
-
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1153
|
-
var alignmentMap = {
|
|
1154
|
-
left: "text-left",
|
|
1155
|
-
center: "text-center",
|
|
1156
|
-
right: "text-right"
|
|
1157
|
-
};
|
|
1158
|
-
var sizeMap3 = {
|
|
1159
|
-
small: "text-2xl",
|
|
1160
|
-
"medium-small": "text-3xl",
|
|
1161
|
-
medium: "text-4xl",
|
|
1162
|
-
large: "text-5xl",
|
|
1163
|
-
xlarge: "text-6xl"
|
|
1164
|
-
};
|
|
1165
|
-
function isThemeableValue9(value) {
|
|
1166
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1167
|
-
}
|
|
1168
|
-
function isEntryBoundValue4(value) {
|
|
1169
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1170
|
-
}
|
|
1171
|
-
function resolveColor(color, resolveThemeColor) {
|
|
1172
|
-
if (!color) return "#000000";
|
|
1173
|
-
if (typeof color === "string") return color;
|
|
1174
|
-
if (isThemeableValue9(color)) {
|
|
1175
|
-
if (color.useTheme) {
|
|
1176
|
-
const themeColor = resolveThemeColor(color.themeKey);
|
|
1177
|
-
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
1178
|
-
}
|
|
1179
|
-
return hexToRgba(color.value.color, color.value.opacity);
|
|
1180
|
-
}
|
|
1181
|
-
if ("color" in color && "opacity" in color) {
|
|
1182
|
-
return hexToRgba(color.color, color.opacity);
|
|
1183
|
-
}
|
|
1184
|
-
return "#000000";
|
|
1185
|
-
}
|
|
1186
|
-
function resolveColorHex(color, resolveThemeColor) {
|
|
1187
|
-
if (!color) return "#000000";
|
|
1188
|
-
if (typeof color === "string") return color;
|
|
1189
|
-
if (isThemeableValue9(color)) {
|
|
1190
|
-
if (color.useTheme) {
|
|
1191
|
-
return resolveThemeColor(color.themeKey).color;
|
|
1192
|
-
}
|
|
1193
|
-
return color.value.color;
|
|
1194
|
-
}
|
|
1195
|
-
if ("color" in color) {
|
|
1196
|
-
return color.color;
|
|
1197
|
-
}
|
|
1198
|
-
return "#000000";
|
|
1199
|
-
}
|
|
1200
|
-
function TextBlock({
|
|
1201
|
-
title,
|
|
1202
|
-
subtitle,
|
|
1203
|
-
body,
|
|
1204
|
-
alignment = "left",
|
|
1205
|
-
textSize = "medium",
|
|
1206
|
-
textColor,
|
|
1207
|
-
subtitleBodyColor,
|
|
1208
|
-
useGradientText = false,
|
|
1209
|
-
gradientColor1,
|
|
1210
|
-
gradientColor2,
|
|
1211
|
-
anchorLink
|
|
1212
|
-
}) {
|
|
1213
|
-
const { resolveColor: resolveThemeColor } = useTheme();
|
|
1214
|
-
const { getEntryValue } = useEntries();
|
|
1215
|
-
const resolveText = (value) => {
|
|
1216
|
-
if (!value) return void 0;
|
|
1217
|
-
if (typeof value === "string") return value;
|
|
1218
|
-
if (isEntryBoundValue4(value)) {
|
|
1219
|
-
if (value.useEntry) {
|
|
1220
|
-
const entryVal = getEntryValue(value.entryName, value.fieldKey);
|
|
1221
|
-
return entryVal != null ? String(entryVal) : void 0;
|
|
1222
|
-
}
|
|
1223
|
-
return value.value;
|
|
1224
|
-
}
|
|
1225
|
-
return void 0;
|
|
1226
|
-
};
|
|
1227
|
-
const resolvedTitle = resolveText(title);
|
|
1228
|
-
const resolvedSubtitle = resolveText(subtitle);
|
|
1229
|
-
const resolvedBody = resolveText(body);
|
|
1230
|
-
const titleColorValue = resolveColor(textColor, resolveThemeColor);
|
|
1231
|
-
const subtitleColorValue = resolveColor(subtitleBodyColor, resolveThemeColor);
|
|
1232
|
-
const gradientStyle = useGradientText ? {
|
|
1233
|
-
backgroundImage: `linear-gradient(90deg, ${resolveColorHex(gradientColor1, resolveThemeColor)}, ${resolveColorHex(gradientColor2, resolveThemeColor)})`,
|
|
1234
|
-
WebkitBackgroundClip: "text",
|
|
1235
|
-
WebkitTextFillColor: "transparent",
|
|
1236
|
-
backgroundClip: "text"
|
|
1237
|
-
} : { color: titleColorValue };
|
|
1238
|
-
return /* @__PURE__ */ jsxs4(
|
|
1239
|
-
"div",
|
|
411
|
+
const { resolveColor: resolveThemeColor } = useTheme();
|
|
412
|
+
const { getEntryValue } = useEntries();
|
|
413
|
+
const resolveText = (value) => {
|
|
414
|
+
if (!value) return void 0;
|
|
415
|
+
if (typeof value === "string") return value;
|
|
416
|
+
if (isEntryBoundValue2(value)) {
|
|
417
|
+
if (value.useEntry) {
|
|
418
|
+
const entryVal = getEntryValue(value.entryName, value.fieldKey);
|
|
419
|
+
return entryVal != null ? String(entryVal) : void 0;
|
|
420
|
+
}
|
|
421
|
+
return value.value;
|
|
422
|
+
}
|
|
423
|
+
return void 0;
|
|
424
|
+
};
|
|
425
|
+
const resolvedTitle = resolveText(title);
|
|
426
|
+
const resolvedSubtitle = resolveText(subtitle);
|
|
427
|
+
const resolvedBody = resolveText(body);
|
|
428
|
+
const titleColorValue = resolveColor(textColor, resolveThemeColor);
|
|
429
|
+
const subtitleColorValue = resolveColor(subtitleBodyColor, resolveThemeColor);
|
|
430
|
+
const gradientStyle = useGradientText ? {
|
|
431
|
+
backgroundImage: `linear-gradient(90deg, ${resolveColorHex(gradientColor1, resolveThemeColor)}, ${resolveColorHex(gradientColor2, resolveThemeColor)})`,
|
|
432
|
+
WebkitBackgroundClip: "text",
|
|
433
|
+
WebkitTextFillColor: "transparent",
|
|
434
|
+
backgroundClip: "text"
|
|
435
|
+
} : { color: titleColorValue };
|
|
436
|
+
return /* @__PURE__ */ jsxs2(
|
|
437
|
+
"div",
|
|
1240
438
|
{
|
|
1241
439
|
id: anchorLink,
|
|
1242
440
|
className: cn("flex flex-col gap-4", alignmentMap[alignment]),
|
|
1243
441
|
children: [
|
|
1244
|
-
resolvedTitle && /* @__PURE__ */
|
|
442
|
+
resolvedTitle && /* @__PURE__ */ jsx3(
|
|
1245
443
|
"h2",
|
|
1246
444
|
{
|
|
1247
|
-
className: cn("font-bold",
|
|
445
|
+
className: cn("font-bold", sizeMap2[textSize]),
|
|
1248
446
|
style: gradientStyle,
|
|
1249
447
|
children: resolvedTitle
|
|
1250
448
|
}
|
|
1251
449
|
),
|
|
1252
|
-
resolvedSubtitle && /* @__PURE__ */
|
|
1253
|
-
resolvedBody && /* @__PURE__ */
|
|
450
|
+
resolvedSubtitle && /* @__PURE__ */ jsx3("p", { className: "text-xl", style: { color: subtitleColorValue }, children: resolvedSubtitle }),
|
|
451
|
+
resolvedBody && /* @__PURE__ */ jsx3(
|
|
1254
452
|
"div",
|
|
1255
453
|
{
|
|
1256
454
|
className: "prose max-w-none",
|
|
@@ -1264,7 +462,7 @@ function TextBlock({
|
|
|
1264
462
|
}
|
|
1265
463
|
|
|
1266
464
|
// components/page/CustomImage.tsx
|
|
1267
|
-
import { jsx as
|
|
465
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
1268
466
|
var alignmentMap2 = {
|
|
1269
467
|
left: "mr-auto",
|
|
1270
468
|
center: "mx-auto",
|
|
@@ -1278,9 +476,9 @@ function CustomImage({
|
|
|
1278
476
|
fitContent = false
|
|
1279
477
|
}) {
|
|
1280
478
|
if (!image) {
|
|
1281
|
-
return /* @__PURE__ */
|
|
479
|
+
return /* @__PURE__ */ jsx4("div", { className: "flex h-48 w-full items-center justify-center bg-gray-200 text-gray-400", children: "No image" });
|
|
1282
480
|
}
|
|
1283
|
-
return /* @__PURE__ */
|
|
481
|
+
return /* @__PURE__ */ jsx4(
|
|
1284
482
|
"img",
|
|
1285
483
|
{
|
|
1286
484
|
src: image,
|
|
@@ -1297,8 +495,8 @@ function CustomImage({
|
|
|
1297
495
|
|
|
1298
496
|
// components/page/FeaturesList.tsx
|
|
1299
497
|
import { icons as icons2 } from "lucide-react";
|
|
1300
|
-
import { jsx as
|
|
1301
|
-
var
|
|
498
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
499
|
+
var sizeMap3 = {
|
|
1302
500
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1303
501
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1304
502
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1310,12 +508,12 @@ function FeaturesList({
|
|
|
1310
508
|
iconColor = "#000000",
|
|
1311
509
|
anchorLink
|
|
1312
510
|
}) {
|
|
1313
|
-
const sizeConfig =
|
|
511
|
+
const sizeConfig = sizeMap3[size];
|
|
1314
512
|
const getIcon = (iconName) => {
|
|
1315
513
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1316
514
|
return icons2[formatted] || null;
|
|
1317
515
|
};
|
|
1318
|
-
return /* @__PURE__ */
|
|
516
|
+
return /* @__PURE__ */ jsx5(
|
|
1319
517
|
"div",
|
|
1320
518
|
{
|
|
1321
519
|
id: anchorLink,
|
|
@@ -1326,7 +524,7 @@ function FeaturesList({
|
|
|
1326
524
|
),
|
|
1327
525
|
children: features.map((feature, index) => {
|
|
1328
526
|
const IconComponent = feature.icon ? getIcon(feature.icon) : null;
|
|
1329
|
-
return /* @__PURE__ */
|
|
527
|
+
return /* @__PURE__ */ jsxs3(
|
|
1330
528
|
"div",
|
|
1331
529
|
{
|
|
1332
530
|
className: cn(
|
|
@@ -1335,7 +533,7 @@ function FeaturesList({
|
|
|
1335
533
|
align === "right" && "flex-row-reverse"
|
|
1336
534
|
),
|
|
1337
535
|
children: [
|
|
1338
|
-
feature.image ? /* @__PURE__ */
|
|
536
|
+
feature.image ? /* @__PURE__ */ jsx5(
|
|
1339
537
|
"img",
|
|
1340
538
|
{
|
|
1341
539
|
src: feature.image,
|
|
@@ -1343,7 +541,7 @@ function FeaturesList({
|
|
|
1343
541
|
className: "object-contain",
|
|
1344
542
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1345
543
|
}
|
|
1346
|
-
) : IconComponent ? /* @__PURE__ */
|
|
544
|
+
) : IconComponent ? /* @__PURE__ */ jsx5(
|
|
1347
545
|
IconComponent,
|
|
1348
546
|
{
|
|
1349
547
|
size: sizeConfig.icon,
|
|
@@ -1351,9 +549,9 @@ function FeaturesList({
|
|
|
1351
549
|
className: "flex-shrink-0"
|
|
1352
550
|
}
|
|
1353
551
|
) : null,
|
|
1354
|
-
/* @__PURE__ */
|
|
1355
|
-
feature.title && /* @__PURE__ */
|
|
1356
|
-
feature.description && /* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-1", children: [
|
|
553
|
+
feature.title && /* @__PURE__ */ jsx5("h3", { className: cn("font-semibold", sizeConfig.title), children: feature.title }),
|
|
554
|
+
feature.description && /* @__PURE__ */ jsx5("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1357
555
|
] })
|
|
1358
556
|
]
|
|
1359
557
|
},
|
|
@@ -1366,8 +564,8 @@ function FeaturesList({
|
|
|
1366
564
|
|
|
1367
565
|
// components/page/FeatureGrid.tsx
|
|
1368
566
|
import { icons as icons3 } from "lucide-react";
|
|
1369
|
-
import { jsx as
|
|
1370
|
-
var
|
|
567
|
+
import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
568
|
+
var sizeMap4 = {
|
|
1371
569
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1372
570
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1373
571
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1383,7 +581,7 @@ function FeatureGrid({
|
|
|
1383
581
|
textColor = "#000000",
|
|
1384
582
|
anchorLink
|
|
1385
583
|
}) {
|
|
1386
|
-
const sizeConfig =
|
|
584
|
+
const sizeConfig = sizeMap4[size];
|
|
1387
585
|
const getIcon = (iconName) => {
|
|
1388
586
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1389
587
|
return icons3[formatted] || null;
|
|
@@ -1393,8 +591,8 @@ function FeatureGrid({
|
|
|
1393
591
|
3: "grid-cols-1 md:grid-cols-2 lg:grid-cols-3",
|
|
1394
592
|
4: "grid-cols-1 md:grid-cols-2 lg:grid-cols-4"
|
|
1395
593
|
};
|
|
1396
|
-
return /* @__PURE__ */
|
|
1397
|
-
(heading || description) && /* @__PURE__ */
|
|
594
|
+
return /* @__PURE__ */ jsxs4("div", { id: anchorLink, className: "flex flex-col gap-8", children: [
|
|
595
|
+
(heading || description) && /* @__PURE__ */ jsxs4(
|
|
1398
596
|
"div",
|
|
1399
597
|
{
|
|
1400
598
|
className: cn(
|
|
@@ -1403,14 +601,14 @@ function FeatureGrid({
|
|
|
1403
601
|
align === "right" && "text-right"
|
|
1404
602
|
),
|
|
1405
603
|
children: [
|
|
1406
|
-
heading && /* @__PURE__ */
|
|
1407
|
-
description && /* @__PURE__ */
|
|
604
|
+
heading && /* @__PURE__ */ jsx6("h2", { className: "text-3xl font-bold", style: { color: textColor }, children: heading }),
|
|
605
|
+
description && /* @__PURE__ */ jsx6("p", { className: "text-gray-600", children: description })
|
|
1408
606
|
]
|
|
1409
607
|
}
|
|
1410
608
|
),
|
|
1411
|
-
/* @__PURE__ */
|
|
609
|
+
/* @__PURE__ */ jsx6("div", { className: cn("grid gap-6", columnClass[columns]), children: features.map((feature, index) => {
|
|
1412
610
|
const IconComponent = feature.icon ? getIcon(feature.icon) : null;
|
|
1413
|
-
return /* @__PURE__ */
|
|
611
|
+
return /* @__PURE__ */ jsxs4(
|
|
1414
612
|
"div",
|
|
1415
613
|
{
|
|
1416
614
|
className: cn(
|
|
@@ -1418,7 +616,7 @@ function FeatureGrid({
|
|
|
1418
616
|
align === "center" && "items-center text-center"
|
|
1419
617
|
),
|
|
1420
618
|
children: [
|
|
1421
|
-
feature.image ? /* @__PURE__ */
|
|
619
|
+
feature.image ? /* @__PURE__ */ jsx6(
|
|
1422
620
|
"img",
|
|
1423
621
|
{
|
|
1424
622
|
src: feature.image,
|
|
@@ -1426,14 +624,14 @@ function FeatureGrid({
|
|
|
1426
624
|
className: "object-contain",
|
|
1427
625
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1428
626
|
}
|
|
1429
|
-
) : IconComponent ? /* @__PURE__ */
|
|
627
|
+
) : IconComponent ? /* @__PURE__ */ jsx6(
|
|
1430
628
|
IconComponent,
|
|
1431
629
|
{
|
|
1432
630
|
size: sizeConfig.icon,
|
|
1433
631
|
style: { color: iconColor }
|
|
1434
632
|
}
|
|
1435
633
|
) : null,
|
|
1436
|
-
feature.title && /* @__PURE__ */
|
|
634
|
+
feature.title && /* @__PURE__ */ jsx6(
|
|
1437
635
|
"h3",
|
|
1438
636
|
{
|
|
1439
637
|
className: cn("font-semibold", sizeConfig.title),
|
|
@@ -1441,7 +639,7 @@ function FeatureGrid({
|
|
|
1441
639
|
children: feature.title
|
|
1442
640
|
}
|
|
1443
641
|
),
|
|
1444
|
-
feature.description && /* @__PURE__ */
|
|
642
|
+
feature.description && /* @__PURE__ */ jsx6("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1445
643
|
]
|
|
1446
644
|
},
|
|
1447
645
|
index
|
|
@@ -1452,7 +650,7 @@ function FeatureGrid({
|
|
|
1452
650
|
|
|
1453
651
|
// components/page/Footer.tsx
|
|
1454
652
|
import { Facebook, Instagram, Twitter } from "lucide-react";
|
|
1455
|
-
import { jsx as
|
|
653
|
+
import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1456
654
|
function Footer({
|
|
1457
655
|
logo,
|
|
1458
656
|
copyright = "\xA9 2024 Company. All rights reserved.",
|
|
@@ -1487,15 +685,15 @@ function Footer({
|
|
|
1487
685
|
].filter(
|
|
1488
686
|
(link) => !!link.url
|
|
1489
687
|
);
|
|
1490
|
-
return /* @__PURE__ */
|
|
688
|
+
return /* @__PURE__ */ jsx7(
|
|
1491
689
|
"footer",
|
|
1492
690
|
{
|
|
1493
691
|
className: "w-full px-6 py-8",
|
|
1494
692
|
style: { backgroundColor, color: textColor },
|
|
1495
|
-
children: /* @__PURE__ */
|
|
1496
|
-
/* @__PURE__ */
|
|
1497
|
-
DropZone && /* @__PURE__ */
|
|
1498
|
-
/* @__PURE__ */
|
|
693
|
+
children: /* @__PURE__ */ jsxs5("div", { className: "mx-auto flex max-w-7xl flex-col items-center justify-between gap-6 md:flex-row", children: [
|
|
694
|
+
/* @__PURE__ */ jsx7("div", { className: "flex items-center gap-4", children: logo && /* @__PURE__ */ jsx7("img", { src: logo, alt: "Logo", className: "h-8" }) }),
|
|
695
|
+
DropZone && /* @__PURE__ */ jsx7(DropZone, { zone: "footer-content" }),
|
|
696
|
+
/* @__PURE__ */ jsx7("div", { className: "flex items-center gap-4", children: socialLinks.map(({ url, Icon: Icon2 }, index) => /* @__PURE__ */ jsx7(
|
|
1499
697
|
"a",
|
|
1500
698
|
{
|
|
1501
699
|
href: url,
|
|
@@ -1503,20 +701,20 @@ function Footer({
|
|
|
1503
701
|
rel: "noopener noreferrer",
|
|
1504
702
|
className: "transition-opacity hover:opacity-80",
|
|
1505
703
|
onClick: () => handleSocialClick(url),
|
|
1506
|
-
children: /* @__PURE__ */
|
|
704
|
+
children: /* @__PURE__ */ jsx7(Icon2, { size: 24, style: { color: textColor } })
|
|
1507
705
|
},
|
|
1508
706
|
index
|
|
1509
707
|
)) }),
|
|
1510
|
-
copyright && /* @__PURE__ */
|
|
708
|
+
copyright && /* @__PURE__ */ jsx7("p", { className: "text-sm opacity-80", children: copyright })
|
|
1511
709
|
] })
|
|
1512
710
|
}
|
|
1513
711
|
);
|
|
1514
712
|
}
|
|
1515
713
|
|
|
1516
714
|
// components/page/Topbar.tsx
|
|
1517
|
-
import { useState
|
|
715
|
+
import { useState } from "react";
|
|
1518
716
|
import { Menu, X } from "lucide-react";
|
|
1519
|
-
import { jsx as
|
|
717
|
+
import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1520
718
|
function Topbar({
|
|
1521
719
|
logo,
|
|
1522
720
|
logoUrl = "/",
|
|
@@ -1527,7 +725,7 @@ function Topbar({
|
|
|
1527
725
|
puck
|
|
1528
726
|
}) {
|
|
1529
727
|
const DropZone = puck?.renderDropZone;
|
|
1530
|
-
const [mobileMenuOpen, setMobileMenuOpen] =
|
|
728
|
+
const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
|
|
1531
729
|
const utm = useUtmParams();
|
|
1532
730
|
const sendEvent = useGtmEvent();
|
|
1533
731
|
const handleNavClick = (item) => {
|
|
@@ -1549,7 +747,7 @@ function Topbar({
|
|
|
1549
747
|
const renderLink = (item, index) => {
|
|
1550
748
|
const className = "hover:opacity-80 transition-opacity";
|
|
1551
749
|
if (item.linkType === "external") {
|
|
1552
|
-
return /* @__PURE__ */
|
|
750
|
+
return /* @__PURE__ */ jsx8(
|
|
1553
751
|
"a",
|
|
1554
752
|
{
|
|
1555
753
|
href: item.url,
|
|
@@ -1563,7 +761,7 @@ function Topbar({
|
|
|
1563
761
|
);
|
|
1564
762
|
}
|
|
1565
763
|
if (item.linkType === "scrollTo") {
|
|
1566
|
-
return /* @__PURE__ */
|
|
764
|
+
return /* @__PURE__ */ jsx8(
|
|
1567
765
|
"a",
|
|
1568
766
|
{
|
|
1569
767
|
href: item.url,
|
|
@@ -1574,7 +772,7 @@ function Topbar({
|
|
|
1574
772
|
index
|
|
1575
773
|
);
|
|
1576
774
|
}
|
|
1577
|
-
return /* @__PURE__ */
|
|
775
|
+
return /* @__PURE__ */ jsx8(
|
|
1578
776
|
"a",
|
|
1579
777
|
{
|
|
1580
778
|
href: item.url,
|
|
@@ -1585,19 +783,19 @@ function Topbar({
|
|
|
1585
783
|
index
|
|
1586
784
|
);
|
|
1587
785
|
};
|
|
1588
|
-
return /* @__PURE__ */
|
|
786
|
+
return /* @__PURE__ */ jsxs6(
|
|
1589
787
|
"nav",
|
|
1590
788
|
{
|
|
1591
789
|
className: "sticky top-0 z-50 w-full px-6 py-4",
|
|
1592
790
|
style: { backgroundColor, color: textColor },
|
|
1593
791
|
children: [
|
|
1594
|
-
/* @__PURE__ */
|
|
792
|
+
/* @__PURE__ */ jsxs6(
|
|
1595
793
|
"div",
|
|
1596
794
|
{
|
|
1597
795
|
className: "mx-auto flex items-center justify-between",
|
|
1598
796
|
style: { maxWidth },
|
|
1599
797
|
children: [
|
|
1600
|
-
/* @__PURE__ */
|
|
798
|
+
/* @__PURE__ */ jsx8(
|
|
1601
799
|
"a",
|
|
1602
800
|
{
|
|
1603
801
|
href: logoUrl,
|
|
@@ -1608,25 +806,25 @@ function Topbar({
|
|
|
1608
806
|
linkType: "internal",
|
|
1609
807
|
...utm
|
|
1610
808
|
}),
|
|
1611
|
-
children: logo ? /* @__PURE__ */
|
|
809
|
+
children: logo ? /* @__PURE__ */ jsx8("img", { src: logo, alt: "Logo", className: "h-8" }) : /* @__PURE__ */ jsx8("span", { className: "text-xl font-bold", children: "Logo" })
|
|
1612
810
|
}
|
|
1613
811
|
),
|
|
1614
|
-
/* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ jsxs6("div", { className: "hidden items-center gap-8 md:flex", children: [
|
|
1615
813
|
navItems.map(renderLink),
|
|
1616
|
-
DropZone && /* @__PURE__ */
|
|
814
|
+
DropZone && /* @__PURE__ */ jsx8(DropZone, { zone: "cta" })
|
|
1617
815
|
] }),
|
|
1618
|
-
/* @__PURE__ */
|
|
816
|
+
/* @__PURE__ */ jsx8("button", { className: "md:hidden", onClick: handleMobileMenuToggle, children: mobileMenuOpen ? /* @__PURE__ */ jsx8(X, { size: 24 }) : /* @__PURE__ */ jsx8(Menu, { size: 24 }) })
|
|
1619
817
|
]
|
|
1620
818
|
}
|
|
1621
819
|
),
|
|
1622
|
-
mobileMenuOpen && /* @__PURE__ */
|
|
820
|
+
mobileMenuOpen && /* @__PURE__ */ jsxs6(
|
|
1623
821
|
"div",
|
|
1624
822
|
{
|
|
1625
823
|
className: "absolute top-full right-0 left-0 flex flex-col gap-4 px-6 py-4 md:hidden",
|
|
1626
824
|
style: { backgroundColor },
|
|
1627
825
|
children: [
|
|
1628
826
|
navItems.map(renderLink),
|
|
1629
|
-
DropZone && /* @__PURE__ */
|
|
827
|
+
DropZone && /* @__PURE__ */ jsx8(DropZone, { zone: "cta" })
|
|
1630
828
|
]
|
|
1631
829
|
}
|
|
1632
830
|
)
|
|
@@ -1636,21 +834,21 @@ function Topbar({
|
|
|
1636
834
|
}
|
|
1637
835
|
|
|
1638
836
|
// components/page/Popup.tsx
|
|
1639
|
-
import { useState as
|
|
837
|
+
import { useState as useState2 } from "react";
|
|
1640
838
|
import { icons as icons4, X as X2 } from "lucide-react";
|
|
1641
|
-
import { Fragment
|
|
1642
|
-
function
|
|
839
|
+
import { Fragment, jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
840
|
+
function Icon({ name, ...props }) {
|
|
1643
841
|
const formatted = name.charAt(0).toUpperCase() + name.slice(1);
|
|
1644
842
|
const IconComponent = icons4[formatted];
|
|
1645
843
|
if (!IconComponent) return null;
|
|
1646
|
-
return /* @__PURE__ */
|
|
844
|
+
return /* @__PURE__ */ jsx9(IconComponent, { ...props });
|
|
1647
845
|
}
|
|
1648
|
-
var
|
|
846
|
+
var widthMap = {
|
|
1649
847
|
small: "max-w-sm",
|
|
1650
848
|
medium: "max-w-lg",
|
|
1651
849
|
large: "max-w-2xl"
|
|
1652
850
|
};
|
|
1653
|
-
var
|
|
851
|
+
var sizeMap5 = {
|
|
1654
852
|
small: "px-3 py-1.5 text-sm",
|
|
1655
853
|
medium: "px-4 py-2 text-base",
|
|
1656
854
|
large: "px-6 py-3 text-lg"
|
|
@@ -1666,7 +864,7 @@ function Popup({
|
|
|
1666
864
|
textLink = false,
|
|
1667
865
|
puck
|
|
1668
866
|
}) {
|
|
1669
|
-
const [isOpen, setIsOpen] =
|
|
867
|
+
const [isOpen, setIsOpen] = useState2(false);
|
|
1670
868
|
const utm = useUtmParams();
|
|
1671
869
|
const sendEvent = useGtmEvent();
|
|
1672
870
|
const handleOpen = () => {
|
|
@@ -1681,7 +879,7 @@ function Popup({
|
|
|
1681
879
|
setIsOpen(false);
|
|
1682
880
|
sendEvent("popup_close", { ctaText, ...utm });
|
|
1683
881
|
};
|
|
1684
|
-
const trigger = textLink ? /* @__PURE__ */
|
|
882
|
+
const trigger = textLink ? /* @__PURE__ */ jsx9(
|
|
1685
883
|
"button",
|
|
1686
884
|
{
|
|
1687
885
|
onClick: handleOpen,
|
|
@@ -1689,47 +887,47 @@ function Popup({
|
|
|
1689
887
|
style: { color: buttonColor },
|
|
1690
888
|
children: ctaText
|
|
1691
889
|
}
|
|
1692
|
-
) : /* @__PURE__ */
|
|
890
|
+
) : /* @__PURE__ */ jsxs7(
|
|
1693
891
|
"button",
|
|
1694
892
|
{
|
|
1695
893
|
onClick: handleOpen,
|
|
1696
894
|
className: cn(
|
|
1697
895
|
"flex items-center gap-2 rounded-full font-medium",
|
|
1698
|
-
|
|
896
|
+
sizeMap5[size]
|
|
1699
897
|
),
|
|
1700
898
|
style: { backgroundColor: buttonColor, color: textColor },
|
|
1701
899
|
children: [
|
|
1702
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
900
|
+
icon && iconPosition === "left" && /* @__PURE__ */ jsx9(Icon, { name: icon, size: 18 }),
|
|
1703
901
|
ctaText,
|
|
1704
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
902
|
+
icon && iconPosition === "right" && /* @__PURE__ */ jsx9(Icon, { name: icon, size: 18 })
|
|
1705
903
|
]
|
|
1706
904
|
}
|
|
1707
905
|
);
|
|
1708
|
-
return /* @__PURE__ */
|
|
906
|
+
return /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
1709
907
|
trigger,
|
|
1710
|
-
isOpen && /* @__PURE__ */
|
|
908
|
+
isOpen && /* @__PURE__ */ jsx9(
|
|
1711
909
|
"div",
|
|
1712
910
|
{
|
|
1713
911
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
1714
912
|
onClick: handleClose,
|
|
1715
|
-
children: /* @__PURE__ */
|
|
913
|
+
children: /* @__PURE__ */ jsxs7(
|
|
1716
914
|
"div",
|
|
1717
915
|
{
|
|
1718
916
|
className: cn(
|
|
1719
917
|
"relative w-full rounded-lg bg-white p-6",
|
|
1720
|
-
|
|
918
|
+
widthMap[width]
|
|
1721
919
|
),
|
|
1722
920
|
onClick: (e) => e.stopPropagation(),
|
|
1723
921
|
children: [
|
|
1724
|
-
/* @__PURE__ */
|
|
922
|
+
/* @__PURE__ */ jsx9(
|
|
1725
923
|
"button",
|
|
1726
924
|
{
|
|
1727
925
|
onClick: handleClose,
|
|
1728
926
|
className: "absolute top-4 right-4 text-gray-500 hover:text-gray-700",
|
|
1729
|
-
children: /* @__PURE__ */
|
|
927
|
+
children: /* @__PURE__ */ jsx9(X2, { size: 24 })
|
|
1730
928
|
}
|
|
1731
929
|
),
|
|
1732
|
-
puck && /* @__PURE__ */
|
|
930
|
+
puck && /* @__PURE__ */ jsx9(puck.renderDropZone, { zone: "popup-content" })
|
|
1733
931
|
]
|
|
1734
932
|
}
|
|
1735
933
|
)
|
|
@@ -1808,21 +1006,457 @@ function getParagraphStyle(props) {
|
|
|
1808
1006
|
};
|
|
1809
1007
|
}
|
|
1810
1008
|
|
|
1009
|
+
// components/page/primitives/Button.ts
|
|
1010
|
+
var sizeStyles = {
|
|
1011
|
+
sm: { padding: "8px 16px", fontSize: "0.875rem" },
|
|
1012
|
+
md: { padding: "12px 24px", fontSize: "1rem" },
|
|
1013
|
+
lg: { padding: "16px 32px", fontSize: "1.125rem" },
|
|
1014
|
+
xl: { padding: "20px 40px", fontSize: "1.25rem" }
|
|
1015
|
+
};
|
|
1016
|
+
var radiusMap2 = {
|
|
1017
|
+
none: "0",
|
|
1018
|
+
sm: "4px",
|
|
1019
|
+
md: "8px",
|
|
1020
|
+
lg: "16px",
|
|
1021
|
+
full: "9999px"
|
|
1022
|
+
};
|
|
1023
|
+
function isThemeableValue3(value) {
|
|
1024
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1025
|
+
}
|
|
1026
|
+
function isEntryBoundValue3(value) {
|
|
1027
|
+
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1028
|
+
}
|
|
1029
|
+
function getBaseStyle(size, borderRadius, fullWidth) {
|
|
1030
|
+
return {
|
|
1031
|
+
...sizeStyles[size],
|
|
1032
|
+
borderRadius: radiusMap2[borderRadius],
|
|
1033
|
+
fontWeight: 600,
|
|
1034
|
+
cursor: "pointer",
|
|
1035
|
+
display: "inline-flex",
|
|
1036
|
+
alignItems: "center",
|
|
1037
|
+
justifyContent: "center",
|
|
1038
|
+
textDecoration: "none",
|
|
1039
|
+
transition: "opacity 0.2s, transform 0.2s",
|
|
1040
|
+
width: fullWidth ? "100%" : "auto",
|
|
1041
|
+
border: "none"
|
|
1042
|
+
};
|
|
1043
|
+
}
|
|
1044
|
+
function getVariantStyles(variant, bgColor, fgColor) {
|
|
1045
|
+
const variantStyles = {
|
|
1046
|
+
solid: {
|
|
1047
|
+
backgroundColor: bgColor,
|
|
1048
|
+
color: fgColor
|
|
1049
|
+
},
|
|
1050
|
+
outline: {
|
|
1051
|
+
backgroundColor: "transparent",
|
|
1052
|
+
color: bgColor,
|
|
1053
|
+
border: `2px solid ${bgColor}`
|
|
1054
|
+
},
|
|
1055
|
+
ghost: {
|
|
1056
|
+
backgroundColor: "transparent",
|
|
1057
|
+
color: bgColor
|
|
1058
|
+
},
|
|
1059
|
+
link: {
|
|
1060
|
+
backgroundColor: "transparent",
|
|
1061
|
+
color: bgColor,
|
|
1062
|
+
padding: "0",
|
|
1063
|
+
textDecoration: "underline"
|
|
1064
|
+
}
|
|
1065
|
+
};
|
|
1066
|
+
return variantStyles[variant] || variantStyles.solid;
|
|
1067
|
+
}
|
|
1068
|
+
function getWrapperStyle2(align) {
|
|
1069
|
+
return {
|
|
1070
|
+
display: "flex",
|
|
1071
|
+
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
1072
|
+
};
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
// components/page/primitives/Image.ts
|
|
1076
|
+
var widthMap2 = {
|
|
1077
|
+
auto: "auto",
|
|
1078
|
+
full: "100%",
|
|
1079
|
+
sm: "300px",
|
|
1080
|
+
md: "500px",
|
|
1081
|
+
lg: "700px",
|
|
1082
|
+
xl: "900px"
|
|
1083
|
+
};
|
|
1084
|
+
var aspectRatioMap2 = {
|
|
1085
|
+
auto: void 0,
|
|
1086
|
+
"1:1": "1 / 1",
|
|
1087
|
+
"4:3": "4 / 3",
|
|
1088
|
+
"16:9": "16 / 9",
|
|
1089
|
+
"21:9": "21 / 9"
|
|
1090
|
+
};
|
|
1091
|
+
var radiusMap3 = {
|
|
1092
|
+
none: "0",
|
|
1093
|
+
sm: "4px",
|
|
1094
|
+
md: "8px",
|
|
1095
|
+
lg: "16px",
|
|
1096
|
+
xl: "24px",
|
|
1097
|
+
full: "9999px"
|
|
1098
|
+
};
|
|
1099
|
+
var shadowMap = {
|
|
1100
|
+
none: "none",
|
|
1101
|
+
sm: "0 1px 2px rgba(0,0,0,0.05)",
|
|
1102
|
+
md: "0 4px 6px rgba(0,0,0,0.1)",
|
|
1103
|
+
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
1104
|
+
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
1105
|
+
};
|
|
1106
|
+
function isThemeableValue4(value) {
|
|
1107
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1108
|
+
}
|
|
1109
|
+
function isEntryBoundValue4(value) {
|
|
1110
|
+
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1111
|
+
}
|
|
1112
|
+
function getWrapperStyle3(align) {
|
|
1113
|
+
return {
|
|
1114
|
+
display: "flex",
|
|
1115
|
+
flexDirection: "column",
|
|
1116
|
+
alignItems: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center",
|
|
1117
|
+
gap: "8px"
|
|
1118
|
+
};
|
|
1119
|
+
}
|
|
1120
|
+
function getImageStyle(width, aspectRatio, objectFit, borderRadius, shadow) {
|
|
1121
|
+
return {
|
|
1122
|
+
width: widthMap2[width],
|
|
1123
|
+
maxWidth: "100%",
|
|
1124
|
+
aspectRatio: aspectRatioMap2[aspectRatio],
|
|
1125
|
+
objectFit,
|
|
1126
|
+
borderRadius: radiusMap3[borderRadius],
|
|
1127
|
+
boxShadow: shadowMap[shadow],
|
|
1128
|
+
display: "block"
|
|
1129
|
+
};
|
|
1130
|
+
}
|
|
1131
|
+
function getCaptionStyle(align, width, captionColor) {
|
|
1132
|
+
return {
|
|
1133
|
+
fontSize: "0.875rem",
|
|
1134
|
+
color: captionColor,
|
|
1135
|
+
textAlign: align,
|
|
1136
|
+
maxWidth: widthMap2[width]
|
|
1137
|
+
};
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
// components/page/primitives/ImageCarousel.ts
|
|
1141
|
+
var aspectRatioMap3 = {
|
|
1142
|
+
"16:9": "16 / 9",
|
|
1143
|
+
"4:3": "4 / 3",
|
|
1144
|
+
"1:1": "1 / 1",
|
|
1145
|
+
"21:9": "21 / 9"
|
|
1146
|
+
};
|
|
1147
|
+
var radiusMap4 = {
|
|
1148
|
+
none: "0",
|
|
1149
|
+
sm: "4px",
|
|
1150
|
+
md: "8px",
|
|
1151
|
+
lg: "16px"
|
|
1152
|
+
};
|
|
1153
|
+
function isThemeableValue5(value) {
|
|
1154
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1155
|
+
}
|
|
1156
|
+
function getContainerStyle(aspectRatio, borderRadius) {
|
|
1157
|
+
return {
|
|
1158
|
+
position: "relative",
|
|
1159
|
+
aspectRatio: aspectRatioMap3[aspectRatio],
|
|
1160
|
+
borderRadius: radiusMap4[borderRadius],
|
|
1161
|
+
overflow: "hidden"
|
|
1162
|
+
};
|
|
1163
|
+
}
|
|
1164
|
+
function getSlideContainerStyle(currentIndex) {
|
|
1165
|
+
return {
|
|
1166
|
+
display: "flex",
|
|
1167
|
+
transition: "transform 0.3s ease-in-out",
|
|
1168
|
+
transform: `translateX(-${currentIndex * 100}%)`,
|
|
1169
|
+
height: "100%"
|
|
1170
|
+
};
|
|
1171
|
+
}
|
|
1172
|
+
var slideStyle = {
|
|
1173
|
+
minWidth: "100%",
|
|
1174
|
+
height: "100%"
|
|
1175
|
+
};
|
|
1176
|
+
var imageStyle = {
|
|
1177
|
+
width: "100%",
|
|
1178
|
+
height: "100%",
|
|
1179
|
+
objectFit: "cover"
|
|
1180
|
+
};
|
|
1181
|
+
function getArrowStyle(arrowColor) {
|
|
1182
|
+
return {
|
|
1183
|
+
position: "absolute",
|
|
1184
|
+
top: "50%",
|
|
1185
|
+
transform: "translateY(-50%)",
|
|
1186
|
+
backgroundColor: "rgba(0,0,0,0.5)",
|
|
1187
|
+
color: arrowColor,
|
|
1188
|
+
border: "none",
|
|
1189
|
+
borderRadius: "50%",
|
|
1190
|
+
width: "40px",
|
|
1191
|
+
height: "40px",
|
|
1192
|
+
cursor: "pointer",
|
|
1193
|
+
display: "flex",
|
|
1194
|
+
alignItems: "center",
|
|
1195
|
+
justifyContent: "center",
|
|
1196
|
+
fontSize: "20px",
|
|
1197
|
+
zIndex: 1
|
|
1198
|
+
};
|
|
1199
|
+
}
|
|
1200
|
+
var dotsContainerStyle = {
|
|
1201
|
+
position: "absolute",
|
|
1202
|
+
bottom: "16px",
|
|
1203
|
+
left: "50%",
|
|
1204
|
+
transform: "translateX(-50%)",
|
|
1205
|
+
display: "flex",
|
|
1206
|
+
gap: "8px",
|
|
1207
|
+
zIndex: 1
|
|
1208
|
+
};
|
|
1209
|
+
function getDotStyle(isActive, dotColor) {
|
|
1210
|
+
return {
|
|
1211
|
+
width: "10px",
|
|
1212
|
+
height: "10px",
|
|
1213
|
+
borderRadius: "50%",
|
|
1214
|
+
border: "none",
|
|
1215
|
+
cursor: "pointer",
|
|
1216
|
+
backgroundColor: isActive ? dotColor : "rgba(255,255,255,0.5)"
|
|
1217
|
+
};
|
|
1218
|
+
}
|
|
1219
|
+
function getEmptyState(aspectRatio, borderRadius) {
|
|
1220
|
+
return {
|
|
1221
|
+
aspectRatio: aspectRatioMap3[aspectRatio],
|
|
1222
|
+
backgroundColor: "#e5e7eb",
|
|
1223
|
+
borderRadius: radiusMap4[borderRadius],
|
|
1224
|
+
display: "flex",
|
|
1225
|
+
alignItems: "center",
|
|
1226
|
+
justifyContent: "center",
|
|
1227
|
+
color: "#9ca3af"
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
// components/page/primitives/Section.ts
|
|
1232
|
+
function isThemeableValue6(value) {
|
|
1233
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1234
|
+
}
|
|
1235
|
+
function resolveBackgroundColor(bg, resolveColor2) {
|
|
1236
|
+
if (!bg) return void 0;
|
|
1237
|
+
if (typeof bg === "string") return bg;
|
|
1238
|
+
if (isThemeableValue6(bg)) {
|
|
1239
|
+
if (bg.useTheme) {
|
|
1240
|
+
const themeColor = resolveColor2(bg.themeKey);
|
|
1241
|
+
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
1242
|
+
}
|
|
1243
|
+
return hexToRgba(bg.value.color, bg.value.opacity);
|
|
1244
|
+
}
|
|
1245
|
+
if ("color" in bg && "opacity" in bg) {
|
|
1246
|
+
return hexToRgba(bg.color, bg.opacity);
|
|
1247
|
+
}
|
|
1248
|
+
return void 0;
|
|
1249
|
+
}
|
|
1250
|
+
function getVisibilityClasses(visibility) {
|
|
1251
|
+
if (!visibility) return "";
|
|
1252
|
+
if (!visibility.mobile && !visibility.desktop) {
|
|
1253
|
+
return "hidden";
|
|
1254
|
+
}
|
|
1255
|
+
if (!visibility.mobile && visibility.desktop) {
|
|
1256
|
+
return "hidden md:block";
|
|
1257
|
+
}
|
|
1258
|
+
if (visibility.mobile && !visibility.desktop) {
|
|
1259
|
+
return "md:hidden";
|
|
1260
|
+
}
|
|
1261
|
+
return "";
|
|
1262
|
+
}
|
|
1263
|
+
function getSectionStyle(verticalPadding, horizontalPadding, gap, backgroundColor, backgroundImage, shadow, borderRadius) {
|
|
1264
|
+
return {
|
|
1265
|
+
padding: `${verticalPadding}px ${horizontalPadding}px`,
|
|
1266
|
+
gap: `${gap}px`,
|
|
1267
|
+
backgroundColor,
|
|
1268
|
+
backgroundImage: backgroundImage ? `url(${backgroundImage})` : void 0,
|
|
1269
|
+
backgroundSize: "cover",
|
|
1270
|
+
backgroundPosition: "center",
|
|
1271
|
+
borderRadius: `${borderRadius}px`
|
|
1272
|
+
};
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
// components/page/primitives/Container.ts
|
|
1276
|
+
var maxWidthMap2 = {
|
|
1277
|
+
sm: "640px",
|
|
1278
|
+
md: "768px",
|
|
1279
|
+
lg: "1024px",
|
|
1280
|
+
xl: "1280px",
|
|
1281
|
+
"2xl": "1536px",
|
|
1282
|
+
full: "100%"
|
|
1283
|
+
};
|
|
1284
|
+
var paddingMap = {
|
|
1285
|
+
none: "0",
|
|
1286
|
+
sm: "16px",
|
|
1287
|
+
md: "24px",
|
|
1288
|
+
lg: "32px",
|
|
1289
|
+
xl: "48px"
|
|
1290
|
+
};
|
|
1291
|
+
function isThemeableValue7(value) {
|
|
1292
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1293
|
+
}
|
|
1294
|
+
function getContainerStyle2(maxWidth, paddingX, paddingY, centered, backgroundColor) {
|
|
1295
|
+
return {
|
|
1296
|
+
maxWidth: maxWidthMap2[maxWidth],
|
|
1297
|
+
marginLeft: centered ? "auto" : void 0,
|
|
1298
|
+
marginRight: centered ? "auto" : void 0,
|
|
1299
|
+
paddingLeft: paddingMap[paddingX],
|
|
1300
|
+
paddingRight: paddingMap[paddingX],
|
|
1301
|
+
paddingTop: paddingMap[paddingY],
|
|
1302
|
+
paddingBottom: paddingMap[paddingY],
|
|
1303
|
+
backgroundColor,
|
|
1304
|
+
width: "100%"
|
|
1305
|
+
};
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
// components/page/primitives/Columns.ts
|
|
1309
|
+
var gapMap = {
|
|
1310
|
+
none: "0",
|
|
1311
|
+
sm: "16px",
|
|
1312
|
+
md: "24px",
|
|
1313
|
+
lg: "32px",
|
|
1314
|
+
xl: "48px"
|
|
1315
|
+
};
|
|
1316
|
+
var alignMap = {
|
|
1317
|
+
top: "flex-start",
|
|
1318
|
+
center: "center",
|
|
1319
|
+
bottom: "flex-end",
|
|
1320
|
+
stretch: "stretch"
|
|
1321
|
+
};
|
|
1322
|
+
function getContainerStyle3(columns, gap, verticalAlign) {
|
|
1323
|
+
return {
|
|
1324
|
+
display: "grid",
|
|
1325
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
1326
|
+
gap: gapMap[gap],
|
|
1327
|
+
alignItems: alignMap[verticalAlign]
|
|
1328
|
+
};
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
// components/page/primitives/Card.ts
|
|
1332
|
+
var borderWidthMap = {
|
|
1333
|
+
none: "0",
|
|
1334
|
+
thin: "1px",
|
|
1335
|
+
medium: "2px",
|
|
1336
|
+
thick: "4px"
|
|
1337
|
+
};
|
|
1338
|
+
var radiusMap5 = {
|
|
1339
|
+
none: "0",
|
|
1340
|
+
sm: "4px",
|
|
1341
|
+
md: "8px",
|
|
1342
|
+
lg: "16px",
|
|
1343
|
+
xl: "24px"
|
|
1344
|
+
};
|
|
1345
|
+
var shadowMap2 = {
|
|
1346
|
+
none: "none",
|
|
1347
|
+
sm: "0 1px 2px rgba(0,0,0,0.05)",
|
|
1348
|
+
md: "0 4px 6px rgba(0,0,0,0.1)",
|
|
1349
|
+
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
1350
|
+
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
1351
|
+
};
|
|
1352
|
+
var paddingMap2 = {
|
|
1353
|
+
none: "0",
|
|
1354
|
+
sm: "16px",
|
|
1355
|
+
md: "24px",
|
|
1356
|
+
lg: "32px",
|
|
1357
|
+
xl: "48px"
|
|
1358
|
+
};
|
|
1359
|
+
function isThemeableValue8(value) {
|
|
1360
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1361
|
+
}
|
|
1362
|
+
function getCardStyle(backgroundColor, borderColor, borderWidth, borderRadius, shadow, padding) {
|
|
1363
|
+
return {
|
|
1364
|
+
backgroundColor,
|
|
1365
|
+
border: borderWidth !== "none" ? `${borderWidthMap[borderWidth]} solid ${borderColor}` : "none",
|
|
1366
|
+
borderRadius: radiusMap5[borderRadius],
|
|
1367
|
+
boxShadow: shadowMap2[shadow],
|
|
1368
|
+
padding: paddingMap2[padding]
|
|
1369
|
+
};
|
|
1370
|
+
}
|
|
1371
|
+
|
|
1372
|
+
// components/page/primitives/Divider.ts
|
|
1373
|
+
var thicknessMap = {
|
|
1374
|
+
thin: "1px",
|
|
1375
|
+
medium: "2px",
|
|
1376
|
+
thick: "4px"
|
|
1377
|
+
};
|
|
1378
|
+
var widthMap3 = {
|
|
1379
|
+
full: "100%",
|
|
1380
|
+
"3/4": "75%",
|
|
1381
|
+
"1/2": "50%",
|
|
1382
|
+
"1/4": "25%"
|
|
1383
|
+
};
|
|
1384
|
+
var spacingMap = {
|
|
1385
|
+
sm: "16px",
|
|
1386
|
+
md: "24px",
|
|
1387
|
+
lg: "32px",
|
|
1388
|
+
xl: "48px"
|
|
1389
|
+
};
|
|
1390
|
+
function isThemeableValue9(value) {
|
|
1391
|
+
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1392
|
+
}
|
|
1393
|
+
function getWrapperStyle4(align, spacing) {
|
|
1394
|
+
return {
|
|
1395
|
+
display: "flex",
|
|
1396
|
+
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center",
|
|
1397
|
+
padding: `${spacingMap[spacing]} 0`
|
|
1398
|
+
};
|
|
1399
|
+
}
|
|
1400
|
+
function getHrStyle(width, thickness, lineStyle, color) {
|
|
1401
|
+
return {
|
|
1402
|
+
width: widthMap3[width],
|
|
1403
|
+
border: "none",
|
|
1404
|
+
borderTop: `${thicknessMap[thickness]} ${lineStyle} ${color}`,
|
|
1405
|
+
margin: 0
|
|
1406
|
+
};
|
|
1407
|
+
}
|
|
1408
|
+
|
|
1409
|
+
// components/page/primitives/Spacer.ts
|
|
1410
|
+
var sizeMap6 = {
|
|
1411
|
+
xs: "8px",
|
|
1412
|
+
sm: "16px",
|
|
1413
|
+
md: "24px",
|
|
1414
|
+
lg: "32px",
|
|
1415
|
+
xl: "48px",
|
|
1416
|
+
"2xl": "64px",
|
|
1417
|
+
"3xl": "96px"
|
|
1418
|
+
};
|
|
1419
|
+
|
|
1811
1420
|
export {
|
|
1812
1421
|
getHeadingStyle,
|
|
1813
1422
|
getParagraphStyle,
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1423
|
+
isThemeableValue3 as isThemeableValue,
|
|
1424
|
+
isEntryBoundValue3 as isEntryBoundValue,
|
|
1425
|
+
getBaseStyle,
|
|
1426
|
+
getVariantStyles,
|
|
1427
|
+
getWrapperStyle2 as getWrapperStyle,
|
|
1428
|
+
isThemeableValue4 as isThemeableValue2,
|
|
1429
|
+
isEntryBoundValue4 as isEntryBoundValue2,
|
|
1430
|
+
getWrapperStyle3 as getWrapperStyle2,
|
|
1431
|
+
getImageStyle,
|
|
1432
|
+
getCaptionStyle,
|
|
1433
|
+
isThemeableValue5 as isThemeableValue3,
|
|
1434
|
+
getContainerStyle,
|
|
1435
|
+
getSlideContainerStyle,
|
|
1436
|
+
slideStyle,
|
|
1437
|
+
imageStyle,
|
|
1438
|
+
getArrowStyle,
|
|
1439
|
+
dotsContainerStyle,
|
|
1440
|
+
getDotStyle,
|
|
1441
|
+
getEmptyState,
|
|
1817
1442
|
VideoEmbed,
|
|
1818
|
-
|
|
1443
|
+
sizeMap,
|
|
1444
|
+
icons,
|
|
1445
|
+
isThemeableValue as isThemeableValue4,
|
|
1446
|
+
getWrapperStyle as getWrapperStyle3,
|
|
1819
1447
|
availableIcons,
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1448
|
+
resolveBackgroundColor,
|
|
1449
|
+
getVisibilityClasses,
|
|
1450
|
+
getSectionStyle,
|
|
1451
|
+
isThemeableValue7 as isThemeableValue5,
|
|
1452
|
+
getContainerStyle2,
|
|
1453
|
+
getContainerStyle3,
|
|
1454
|
+
isThemeableValue8 as isThemeableValue6,
|
|
1455
|
+
getCardStyle,
|
|
1456
|
+
isThemeableValue9 as isThemeableValue7,
|
|
1457
|
+
getWrapperStyle4,
|
|
1458
|
+
getHrStyle,
|
|
1459
|
+
sizeMap6 as sizeMap2,
|
|
1826
1460
|
TextBlock,
|
|
1827
1461
|
CustomImage,
|
|
1828
1462
|
FeaturesList,
|