@mission-studio/puck 1.0.20 → 1.0.23
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-BlNJZyB6.d.ts +270 -0
- package/dist/Popup-llKrR-vO.d.mts +270 -0
- package/dist/ResponsiveToggleField-65CqZEK-.d.mts +10 -0
- package/dist/ResponsiveToggleField-QCve94L_.d.ts +10 -0
- package/dist/chunk-KER4VXRB.mjs +61 -0
- package/dist/{chunk-X6VGLL5Y.mjs → chunk-MWW5LYLN.mjs} +182 -222
- package/dist/{chunk-A2J2E524.mjs → chunk-WFLVAZV2.mjs} +67 -3
- package/dist/components/page/astro/index.d.mts +34 -0
- package/dist/components/page/astro/index.d.ts +34 -0
- package/dist/components/page/astro/index.js +2126 -0
- package/dist/components/page/astro/index.mjs +51 -0
- package/dist/config/server.js +166 -181
- package/dist/config/server.mjs +28 -53
- package/dist/config-entry.js +53 -31
- package/dist/config-entry.mjs +5 -5
- 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 +53 -31
- package/dist/index.mjs +5 -5
- package/dist/renderer.d.mts +13 -269
- package/dist/renderer.d.ts +13 -269
- package/dist/renderer.js +53 -31
- package/dist/renderer.mjs +5 -5
- 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
|
@@ -3,87 +3,17 @@ import {
|
|
|
3
3
|
useEntries,
|
|
4
4
|
useTheme
|
|
5
5
|
} from "./chunk-PJXZC564.mjs";
|
|
6
|
-
import {
|
|
7
|
-
cn,
|
|
8
|
-
hexToRgba
|
|
9
|
-
} from "./chunk-C6V3YUPF.mjs";
|
|
10
6
|
import {
|
|
11
7
|
useGtmEvent,
|
|
12
8
|
useUtmParams
|
|
13
9
|
} from "./chunk-QSWQDR6M.mjs";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
sm: "0.875rem",
|
|
19
|
-
base: "1rem",
|
|
20
|
-
lg: "1.125rem",
|
|
21
|
-
xl: "1.25rem"
|
|
22
|
-
};
|
|
23
|
-
var weightMap = {
|
|
24
|
-
normal: 400,
|
|
25
|
-
medium: 500,
|
|
26
|
-
semibold: 600
|
|
27
|
-
};
|
|
28
|
-
var lineHeightMap = {
|
|
29
|
-
tight: "1.4",
|
|
30
|
-
normal: "1.6",
|
|
31
|
-
relaxed: "1.75",
|
|
32
|
-
loose: "2"
|
|
33
|
-
};
|
|
34
|
-
function isThemeableValue(value) {
|
|
35
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
36
|
-
}
|
|
37
|
-
function isEntryBoundValue(value) {
|
|
38
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
39
|
-
}
|
|
40
|
-
function Paragraph({
|
|
41
|
-
text,
|
|
42
|
-
size = "base",
|
|
43
|
-
weight = "normal",
|
|
44
|
-
color,
|
|
45
|
-
align = "left",
|
|
46
|
-
lineHeight = "normal",
|
|
47
|
-
maxWidth,
|
|
48
|
-
id
|
|
49
|
-
}) {
|
|
50
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
51
|
-
const { getEntryValue } = useEntries();
|
|
52
|
-
const resolvedText = (() => {
|
|
53
|
-
if (!text) return "";
|
|
54
|
-
if (typeof text === "string") return text;
|
|
55
|
-
if (isEntryBoundValue(text)) {
|
|
56
|
-
if (text.useEntry) {
|
|
57
|
-
return String(getEntryValue(text.entryName, text.fieldKey) ?? "");
|
|
58
|
-
}
|
|
59
|
-
return text.value;
|
|
60
|
-
}
|
|
61
|
-
return "";
|
|
62
|
-
})();
|
|
63
|
-
const resolvedColor = (() => {
|
|
64
|
-
if (!color) return resolveColor2("foreground");
|
|
65
|
-
if (typeof color === "string") return { color, opacity: 100 };
|
|
66
|
-
if (isThemeableValue(color)) {
|
|
67
|
-
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
68
|
-
}
|
|
69
|
-
if ("color" in color) return color;
|
|
70
|
-
return resolveColor2("foreground");
|
|
71
|
-
})();
|
|
72
|
-
const style = {
|
|
73
|
-
fontSize: sizeMap[size],
|
|
74
|
-
fontWeight: weightMap[weight],
|
|
75
|
-
color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
|
|
76
|
-
textAlign: align,
|
|
77
|
-
lineHeight: lineHeightMap[lineHeight],
|
|
78
|
-
maxWidth: maxWidth || void 0,
|
|
79
|
-
margin: 0
|
|
80
|
-
};
|
|
81
|
-
if (!resolvedText) return null;
|
|
82
|
-
return /* @__PURE__ */ jsx("p", { id, style, children: resolvedText });
|
|
83
|
-
}
|
|
10
|
+
import {
|
|
11
|
+
cn,
|
|
12
|
+
hexToRgba
|
|
13
|
+
} from "./chunk-C6V3YUPF.mjs";
|
|
84
14
|
|
|
85
15
|
// components/page/Button.tsx
|
|
86
|
-
import { jsx
|
|
16
|
+
import { jsx } from "react/jsx-runtime";
|
|
87
17
|
var sizeStyles = {
|
|
88
18
|
sm: { padding: "8px 16px", fontSize: "0.875rem" },
|
|
89
19
|
md: { padding: "12px 24px", fontSize: "1rem" },
|
|
@@ -97,10 +27,10 @@ var radiusMap = {
|
|
|
97
27
|
lg: "16px",
|
|
98
28
|
full: "9999px"
|
|
99
29
|
};
|
|
100
|
-
function
|
|
30
|
+
function isThemeableValue(value) {
|
|
101
31
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
102
32
|
}
|
|
103
|
-
function
|
|
33
|
+
function isEntryBoundValue(value) {
|
|
104
34
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
105
35
|
}
|
|
106
36
|
function Button({
|
|
@@ -123,7 +53,7 @@ function Button({
|
|
|
123
53
|
const resolvedText = (() => {
|
|
124
54
|
if (!text) return "Button";
|
|
125
55
|
if (typeof text === "string") return text;
|
|
126
|
-
if (
|
|
56
|
+
if (isEntryBoundValue(text)) {
|
|
127
57
|
if (text.useEntry) {
|
|
128
58
|
return String(getEntryValue(text.entryName, text.fieldKey) ?? "Button");
|
|
129
59
|
}
|
|
@@ -144,7 +74,7 @@ function Button({
|
|
|
144
74
|
const resolvedColor = (() => {
|
|
145
75
|
if (!color) return resolveColor2("primary");
|
|
146
76
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
147
|
-
if (
|
|
77
|
+
if (isThemeableValue(color)) {
|
|
148
78
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
149
79
|
}
|
|
150
80
|
if ("color" in color) return color;
|
|
@@ -157,7 +87,7 @@ function Button({
|
|
|
157
87
|
}
|
|
158
88
|
if (typeof textColor === "string")
|
|
159
89
|
return { color: textColor, opacity: 100 };
|
|
160
|
-
if (
|
|
90
|
+
if (isThemeableValue(textColor)) {
|
|
161
91
|
return textColor.useTheme ? resolveColor2(textColor.themeKey) : textColor.value;
|
|
162
92
|
}
|
|
163
93
|
if ("color" in textColor) return textColor;
|
|
@@ -204,9 +134,9 @@ function Button({
|
|
|
204
134
|
display: "flex",
|
|
205
135
|
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
206
136
|
};
|
|
207
|
-
const content = /* @__PURE__ */
|
|
137
|
+
const content = /* @__PURE__ */ jsx("span", { style, children: resolvedText });
|
|
208
138
|
if (href) {
|
|
209
|
-
return /* @__PURE__ */
|
|
139
|
+
return /* @__PURE__ */ jsx("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx(
|
|
210
140
|
"a",
|
|
211
141
|
{
|
|
212
142
|
id,
|
|
@@ -219,11 +149,11 @@ function Button({
|
|
|
219
149
|
}
|
|
220
150
|
) });
|
|
221
151
|
}
|
|
222
|
-
return /* @__PURE__ */
|
|
152
|
+
return /* @__PURE__ */ jsx("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx("button", { id, type: "button", style, onClick: handleClick, children: resolvedText }) });
|
|
223
153
|
}
|
|
224
154
|
|
|
225
155
|
// components/page/Image.tsx
|
|
226
|
-
import { jsx as
|
|
156
|
+
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
227
157
|
var widthMap = {
|
|
228
158
|
auto: "auto",
|
|
229
159
|
full: "100%",
|
|
@@ -254,10 +184,10 @@ var shadowMap = {
|
|
|
254
184
|
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
255
185
|
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
256
186
|
};
|
|
257
|
-
function
|
|
187
|
+
function isThemeableValue2(value) {
|
|
258
188
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
259
189
|
}
|
|
260
|
-
function
|
|
190
|
+
function isEntryBoundValue2(value) {
|
|
261
191
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
262
192
|
}
|
|
263
193
|
function Image({
|
|
@@ -278,7 +208,7 @@ function Image({
|
|
|
278
208
|
const resolvedSrc = (() => {
|
|
279
209
|
if (!src) return "";
|
|
280
210
|
if (typeof src === "string") return src;
|
|
281
|
-
if (
|
|
211
|
+
if (isEntryBoundValue2(src)) {
|
|
282
212
|
if (src.useEntry) {
|
|
283
213
|
return String(getEntryValue(src.entryName, src.fieldKey) ?? "");
|
|
284
214
|
}
|
|
@@ -289,7 +219,7 @@ function Image({
|
|
|
289
219
|
const resolvedCaption = (() => {
|
|
290
220
|
if (!caption) return "";
|
|
291
221
|
if (typeof caption === "string") return caption;
|
|
292
|
-
if (
|
|
222
|
+
if (isEntryBoundValue2(caption)) {
|
|
293
223
|
if (caption.useEntry) {
|
|
294
224
|
return String(getEntryValue(caption.entryName, caption.fieldKey) ?? "");
|
|
295
225
|
}
|
|
@@ -301,7 +231,7 @@ function Image({
|
|
|
301
231
|
if (!captionColor) return resolveColor2("muted");
|
|
302
232
|
if (typeof captionColor === "string")
|
|
303
233
|
return { color: captionColor, opacity: 100 };
|
|
304
|
-
if (
|
|
234
|
+
if (isThemeableValue2(captionColor)) {
|
|
305
235
|
return captionColor.useTheme ? resolveColor2(captionColor.themeKey) : captionColor.value;
|
|
306
236
|
}
|
|
307
237
|
if ("color" in captionColor) return captionColor;
|
|
@@ -329,7 +259,7 @@ function Image({
|
|
|
329
259
|
maxWidth: widthMap[width]
|
|
330
260
|
};
|
|
331
261
|
if (!resolvedSrc) {
|
|
332
|
-
return /* @__PURE__ */
|
|
262
|
+
return /* @__PURE__ */ jsx2("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx2(
|
|
333
263
|
"div",
|
|
334
264
|
{
|
|
335
265
|
style: {
|
|
@@ -346,14 +276,14 @@ function Image({
|
|
|
346
276
|
) });
|
|
347
277
|
}
|
|
348
278
|
return /* @__PURE__ */ jsxs("figure", { id, style: { ...wrapperStyle, margin: 0 }, children: [
|
|
349
|
-
/* @__PURE__ */
|
|
350
|
-
resolvedCaption && /* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ jsx2("img", { src: resolvedSrc, alt, style: imageStyle, loading: "lazy" }),
|
|
280
|
+
resolvedCaption && /* @__PURE__ */ jsx2("figcaption", { style: captionStyle, children: resolvedCaption })
|
|
351
281
|
] });
|
|
352
282
|
}
|
|
353
283
|
|
|
354
284
|
// components/page/ImageCarousel.tsx
|
|
355
285
|
import { useState } from "react";
|
|
356
|
-
import { Fragment, jsx as
|
|
286
|
+
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
357
287
|
var aspectRatioMap2 = {
|
|
358
288
|
"16:9": "16 / 9",
|
|
359
289
|
"4:3": "4 / 3",
|
|
@@ -366,7 +296,7 @@ var radiusMap3 = {
|
|
|
366
296
|
md: "8px",
|
|
367
297
|
lg: "16px"
|
|
368
298
|
};
|
|
369
|
-
function
|
|
299
|
+
function isThemeableValue3(value) {
|
|
370
300
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
371
301
|
}
|
|
372
302
|
function ImageCarousel({
|
|
@@ -387,7 +317,7 @@ function ImageCarousel({
|
|
|
387
317
|
if (!arrowColor) return { color: "#FFFFFF", opacity: 100 };
|
|
388
318
|
if (typeof arrowColor === "string")
|
|
389
319
|
return { color: arrowColor, opacity: 100 };
|
|
390
|
-
if (
|
|
320
|
+
if (isThemeableValue3(arrowColor)) {
|
|
391
321
|
return arrowColor.useTheme ? resolveColor2(arrowColor.themeKey) : arrowColor.value;
|
|
392
322
|
}
|
|
393
323
|
if ("color" in arrowColor) return arrowColor;
|
|
@@ -396,7 +326,7 @@ function ImageCarousel({
|
|
|
396
326
|
const resolvedDotColor = (() => {
|
|
397
327
|
if (!dotColor) return resolveColor2("primary");
|
|
398
328
|
if (typeof dotColor === "string") return { color: dotColor, opacity: 100 };
|
|
399
|
-
if (
|
|
329
|
+
if (isThemeableValue3(dotColor)) {
|
|
400
330
|
return dotColor.useTheme ? resolveColor2(dotColor.themeKey) : dotColor.value;
|
|
401
331
|
}
|
|
402
332
|
if ("color" in dotColor) return dotColor;
|
|
@@ -432,7 +362,7 @@ function ImageCarousel({
|
|
|
432
362
|
});
|
|
433
363
|
};
|
|
434
364
|
if (images.length === 0) {
|
|
435
|
-
return /* @__PURE__ */
|
|
365
|
+
return /* @__PURE__ */ jsx3(
|
|
436
366
|
"div",
|
|
437
367
|
{
|
|
438
368
|
style: {
|
|
@@ -504,7 +434,7 @@ function ImageCarousel({
|
|
|
504
434
|
backgroundColor: isActive ? hexToRgba(resolvedDotColor.color, resolvedDotColor.opacity) : "rgba(255,255,255,0.5)"
|
|
505
435
|
});
|
|
506
436
|
return /* @__PURE__ */ jsxs2("div", { id, style: containerStyle, children: [
|
|
507
|
-
/* @__PURE__ */
|
|
437
|
+
/* @__PURE__ */ jsx3("div", { style: slideContainerStyle, children: images.map((image, index) => /* @__PURE__ */ jsx3("div", { style: slideStyle, children: /* @__PURE__ */ jsx3(
|
|
508
438
|
"img",
|
|
509
439
|
{
|
|
510
440
|
src: image.src,
|
|
@@ -514,7 +444,7 @@ function ImageCarousel({
|
|
|
514
444
|
}
|
|
515
445
|
) }, index)) }),
|
|
516
446
|
showArrows && images.length > 1 && /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
517
|
-
/* @__PURE__ */
|
|
447
|
+
/* @__PURE__ */ jsx3(
|
|
518
448
|
"button",
|
|
519
449
|
{
|
|
520
450
|
type: "button",
|
|
@@ -524,7 +454,7 @@ function ImageCarousel({
|
|
|
524
454
|
children: "\u2039"
|
|
525
455
|
}
|
|
526
456
|
),
|
|
527
|
-
/* @__PURE__ */
|
|
457
|
+
/* @__PURE__ */ jsx3(
|
|
528
458
|
"button",
|
|
529
459
|
{
|
|
530
460
|
type: "button",
|
|
@@ -535,7 +465,7 @@ function ImageCarousel({
|
|
|
535
465
|
}
|
|
536
466
|
)
|
|
537
467
|
] }),
|
|
538
|
-
showDots && images.length > 1 && /* @__PURE__ */
|
|
468
|
+
showDots && images.length > 1 && /* @__PURE__ */ jsx3("div", { style: dotsContainerStyle, children: images.map((_, index) => /* @__PURE__ */ jsx3(
|
|
539
469
|
"button",
|
|
540
470
|
{
|
|
541
471
|
type: "button",
|
|
@@ -549,7 +479,7 @@ function ImageCarousel({
|
|
|
549
479
|
}
|
|
550
480
|
|
|
551
481
|
// components/page/VideoEmbed.tsx
|
|
552
|
-
import { jsx as
|
|
482
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
553
483
|
var aspectRatioMap3 = {
|
|
554
484
|
"16:9": "56.25%",
|
|
555
485
|
// 9/16 * 100
|
|
@@ -570,7 +500,7 @@ var maxWidthMap = {
|
|
|
570
500
|
xl: "1000px",
|
|
571
501
|
full: "100%"
|
|
572
502
|
};
|
|
573
|
-
function
|
|
503
|
+
function isEntryBoundValue3(value) {
|
|
574
504
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
575
505
|
}
|
|
576
506
|
function parseVideoUrl(url) {
|
|
@@ -607,7 +537,7 @@ function VideoEmbed({
|
|
|
607
537
|
const resolvedUrl = (() => {
|
|
608
538
|
if (!url) return "";
|
|
609
539
|
if (typeof url === "string") return url;
|
|
610
|
-
if (
|
|
540
|
+
if (isEntryBoundValue3(url)) {
|
|
611
541
|
if (url.useEntry) {
|
|
612
542
|
return String(getEntryValue(url.entryName, url.fieldKey) ?? "");
|
|
613
543
|
}
|
|
@@ -616,7 +546,7 @@ function VideoEmbed({
|
|
|
616
546
|
return "";
|
|
617
547
|
})();
|
|
618
548
|
if (!resolvedUrl) {
|
|
619
|
-
return /* @__PURE__ */
|
|
549
|
+
return /* @__PURE__ */ jsx4(
|
|
620
550
|
"div",
|
|
621
551
|
{
|
|
622
552
|
style: {
|
|
@@ -661,7 +591,7 @@ function VideoEmbed({
|
|
|
661
591
|
height: "100%",
|
|
662
592
|
border: "none"
|
|
663
593
|
};
|
|
664
|
-
return /* @__PURE__ */
|
|
594
|
+
return /* @__PURE__ */ jsx4("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx4("div", { style: containerStyle, children: /* @__PURE__ */ jsx4(
|
|
665
595
|
"iframe",
|
|
666
596
|
{
|
|
667
597
|
src: finalUrl,
|
|
@@ -674,8 +604,8 @@ function VideoEmbed({
|
|
|
674
604
|
}
|
|
675
605
|
|
|
676
606
|
// components/page/Icon.tsx
|
|
677
|
-
import { jsx as
|
|
678
|
-
var
|
|
607
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
608
|
+
var sizeMap = {
|
|
679
609
|
sm: { size: "16px", strokeWidth: 2 },
|
|
680
610
|
md: { size: "24px", strokeWidth: 2 },
|
|
681
611
|
lg: { size: "32px", strokeWidth: 1.5 },
|
|
@@ -683,7 +613,7 @@ var sizeMap2 = {
|
|
|
683
613
|
"2xl": { size: "64px", strokeWidth: 1.5 }
|
|
684
614
|
};
|
|
685
615
|
var icons = {
|
|
686
|
-
check: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
616
|
+
check: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
687
617
|
"svg",
|
|
688
618
|
{
|
|
689
619
|
width: size,
|
|
@@ -694,7 +624,7 @@ var icons = {
|
|
|
694
624
|
strokeWidth,
|
|
695
625
|
strokeLinecap: "round",
|
|
696
626
|
strokeLinejoin: "round",
|
|
697
|
-
children: /* @__PURE__ */
|
|
627
|
+
children: /* @__PURE__ */ jsx5("polyline", { points: "20 6 9 17 4 12" })
|
|
698
628
|
}
|
|
699
629
|
),
|
|
700
630
|
x: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -709,12 +639,12 @@ var icons = {
|
|
|
709
639
|
strokeLinecap: "round",
|
|
710
640
|
strokeLinejoin: "round",
|
|
711
641
|
children: [
|
|
712
|
-
/* @__PURE__ */
|
|
713
|
-
/* @__PURE__ */
|
|
642
|
+
/* @__PURE__ */ jsx5("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
643
|
+
/* @__PURE__ */ jsx5("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
714
644
|
]
|
|
715
645
|
}
|
|
716
646
|
),
|
|
717
|
-
star: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
647
|
+
star: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
718
648
|
"svg",
|
|
719
649
|
{
|
|
720
650
|
width: size,
|
|
@@ -725,10 +655,10 @@ var icons = {
|
|
|
725
655
|
strokeWidth,
|
|
726
656
|
strokeLinecap: "round",
|
|
727
657
|
strokeLinejoin: "round",
|
|
728
|
-
children: /* @__PURE__ */
|
|
658
|
+
children: /* @__PURE__ */ jsx5("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" })
|
|
729
659
|
}
|
|
730
660
|
),
|
|
731
|
-
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
661
|
+
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
732
662
|
"svg",
|
|
733
663
|
{
|
|
734
664
|
width: size,
|
|
@@ -739,7 +669,7 @@ var icons = {
|
|
|
739
669
|
strokeWidth,
|
|
740
670
|
strokeLinecap: "round",
|
|
741
671
|
strokeLinejoin: "round",
|
|
742
|
-
children: /* @__PURE__ */
|
|
672
|
+
children: /* @__PURE__ */ jsx5("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" })
|
|
743
673
|
}
|
|
744
674
|
),
|
|
745
675
|
arrowRight: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -754,8 +684,8 @@ var icons = {
|
|
|
754
684
|
strokeLinecap: "round",
|
|
755
685
|
strokeLinejoin: "round",
|
|
756
686
|
children: [
|
|
757
|
-
/* @__PURE__ */
|
|
758
|
-
/* @__PURE__ */
|
|
687
|
+
/* @__PURE__ */ jsx5("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
688
|
+
/* @__PURE__ */ jsx5("polyline", { points: "12 5 19 12 12 19" })
|
|
759
689
|
]
|
|
760
690
|
}
|
|
761
691
|
),
|
|
@@ -771,8 +701,8 @@ var icons = {
|
|
|
771
701
|
strokeLinecap: "round",
|
|
772
702
|
strokeLinejoin: "round",
|
|
773
703
|
children: [
|
|
774
|
-
/* @__PURE__ */
|
|
775
|
-
/* @__PURE__ */
|
|
704
|
+
/* @__PURE__ */ jsx5("line", { x1: "19", y1: "12", x2: "5", y2: "12" }),
|
|
705
|
+
/* @__PURE__ */ jsx5("polyline", { points: "12 19 5 12 12 5" })
|
|
776
706
|
]
|
|
777
707
|
}
|
|
778
708
|
),
|
|
@@ -788,12 +718,12 @@ var icons = {
|
|
|
788
718
|
strokeLinecap: "round",
|
|
789
719
|
strokeLinejoin: "round",
|
|
790
720
|
children: [
|
|
791
|
-
/* @__PURE__ */
|
|
792
|
-
/* @__PURE__ */
|
|
721
|
+
/* @__PURE__ */ jsx5("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" }),
|
|
722
|
+
/* @__PURE__ */ jsx5("polyline", { points: "22,6 12,13 2,6" })
|
|
793
723
|
]
|
|
794
724
|
}
|
|
795
725
|
),
|
|
796
|
-
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
726
|
+
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
797
727
|
"svg",
|
|
798
728
|
{
|
|
799
729
|
width: size,
|
|
@@ -804,7 +734,7 @@ var icons = {
|
|
|
804
734
|
strokeWidth,
|
|
805
735
|
strokeLinecap: "round",
|
|
806
736
|
strokeLinejoin: "round",
|
|
807
|
-
children: /* @__PURE__ */
|
|
737
|
+
children: /* @__PURE__ */ jsx5("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" })
|
|
808
738
|
}
|
|
809
739
|
),
|
|
810
740
|
mapPin: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -819,12 +749,12 @@ var icons = {
|
|
|
819
749
|
strokeLinecap: "round",
|
|
820
750
|
strokeLinejoin: "round",
|
|
821
751
|
children: [
|
|
822
|
-
/* @__PURE__ */
|
|
823
|
-
/* @__PURE__ */
|
|
752
|
+
/* @__PURE__ */ jsx5("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
|
|
753
|
+
/* @__PURE__ */ jsx5("circle", { cx: "12", cy: "10", r: "3" })
|
|
824
754
|
]
|
|
825
755
|
}
|
|
826
756
|
),
|
|
827
|
-
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
757
|
+
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
828
758
|
"svg",
|
|
829
759
|
{
|
|
830
760
|
width: size,
|
|
@@ -835,10 +765,10 @@ var icons = {
|
|
|
835
765
|
strokeWidth,
|
|
836
766
|
strokeLinecap: "round",
|
|
837
767
|
strokeLinejoin: "round",
|
|
838
|
-
children: /* @__PURE__ */
|
|
768
|
+
children: /* @__PURE__ */ jsx5("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
|
|
839
769
|
}
|
|
840
770
|
),
|
|
841
|
-
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
771
|
+
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx5(
|
|
842
772
|
"svg",
|
|
843
773
|
{
|
|
844
774
|
width: size,
|
|
@@ -849,7 +779,7 @@ var icons = {
|
|
|
849
779
|
strokeWidth,
|
|
850
780
|
strokeLinecap: "round",
|
|
851
781
|
strokeLinejoin: "round",
|
|
852
|
-
children: /* @__PURE__ */
|
|
782
|
+
children: /* @__PURE__ */ jsx5("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" })
|
|
853
783
|
}
|
|
854
784
|
),
|
|
855
785
|
users: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -864,15 +794,15 @@ var icons = {
|
|
|
864
794
|
strokeLinecap: "round",
|
|
865
795
|
strokeLinejoin: "round",
|
|
866
796
|
children: [
|
|
867
|
-
/* @__PURE__ */
|
|
868
|
-
/* @__PURE__ */
|
|
869
|
-
/* @__PURE__ */
|
|
870
|
-
/* @__PURE__ */
|
|
797
|
+
/* @__PURE__ */ jsx5("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
|
|
798
|
+
/* @__PURE__ */ jsx5("circle", { cx: "9", cy: "7", r: "4" }),
|
|
799
|
+
/* @__PURE__ */ jsx5("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
|
|
800
|
+
/* @__PURE__ */ jsx5("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
871
801
|
]
|
|
872
802
|
}
|
|
873
803
|
)
|
|
874
804
|
};
|
|
875
|
-
function
|
|
805
|
+
function isThemeableValue4(value) {
|
|
876
806
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
877
807
|
}
|
|
878
808
|
function Icon({
|
|
@@ -886,20 +816,20 @@ function Icon({
|
|
|
886
816
|
const resolvedColor = (() => {
|
|
887
817
|
if (!color) return resolveColor2("primary");
|
|
888
818
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
889
|
-
if (
|
|
819
|
+
if (isThemeableValue4(color)) {
|
|
890
820
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
891
821
|
}
|
|
892
822
|
if ("color" in color) return color;
|
|
893
823
|
return resolveColor2("primary");
|
|
894
824
|
})();
|
|
895
825
|
const IconComponent = icons[name.toLowerCase()] || icons.check;
|
|
896
|
-
const { size: iconSize, strokeWidth } =
|
|
826
|
+
const { size: iconSize, strokeWidth } = sizeMap[size];
|
|
897
827
|
const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
|
|
898
828
|
const wrapperStyle = {
|
|
899
829
|
display: "flex",
|
|
900
830
|
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
901
831
|
};
|
|
902
|
-
return /* @__PURE__ */
|
|
832
|
+
return /* @__PURE__ */ jsx5("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx5(
|
|
903
833
|
IconComponent,
|
|
904
834
|
{
|
|
905
835
|
size: iconSize,
|
|
@@ -911,14 +841,14 @@ function Icon({
|
|
|
911
841
|
var availableIcons = Object.keys(icons);
|
|
912
842
|
|
|
913
843
|
// components/page/Section.tsx
|
|
914
|
-
import { jsx as
|
|
915
|
-
function
|
|
844
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
845
|
+
function isThemeableValue5(value) {
|
|
916
846
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
917
847
|
}
|
|
918
848
|
function resolveBackgroundColor(bg, resolveColor2) {
|
|
919
849
|
if (!bg) return void 0;
|
|
920
850
|
if (typeof bg === "string") return bg;
|
|
921
|
-
if (
|
|
851
|
+
if (isThemeableValue5(bg)) {
|
|
922
852
|
if (bg.useTheme) {
|
|
923
853
|
const themeColor = resolveColor2(bg.themeKey);
|
|
924
854
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -959,7 +889,7 @@ function Section({
|
|
|
959
889
|
}) {
|
|
960
890
|
const { resolveColor: resolveColor2 } = useTheme();
|
|
961
891
|
const DropZone = puck?.renderDropZone;
|
|
962
|
-
return /* @__PURE__ */
|
|
892
|
+
return /* @__PURE__ */ jsx6(
|
|
963
893
|
"section",
|
|
964
894
|
{
|
|
965
895
|
id: anchorLink,
|
|
@@ -974,13 +904,13 @@ function Section({
|
|
|
974
904
|
boxShadow: getShadowCSS(shadow),
|
|
975
905
|
borderRadius: `${borderRadius}px`
|
|
976
906
|
},
|
|
977
|
-
children: /* @__PURE__ */
|
|
907
|
+
children: /* @__PURE__ */ jsx6("div", { className: "mx-auto w-full", style: { maxWidth: contentMaxWidth }, children: DropZone && /* @__PURE__ */ jsx6(DropZone, { zone: "content" }) })
|
|
978
908
|
}
|
|
979
909
|
);
|
|
980
910
|
}
|
|
981
911
|
|
|
982
912
|
// components/page/Container.tsx
|
|
983
|
-
import { jsx as
|
|
913
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
984
914
|
var maxWidthMap2 = {
|
|
985
915
|
sm: "640px",
|
|
986
916
|
md: "768px",
|
|
@@ -996,7 +926,7 @@ var paddingMap = {
|
|
|
996
926
|
lg: "32px",
|
|
997
927
|
xl: "48px"
|
|
998
928
|
};
|
|
999
|
-
function
|
|
929
|
+
function isThemeableValue6(value) {
|
|
1000
930
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1001
931
|
}
|
|
1002
932
|
function Container({
|
|
@@ -1015,7 +945,7 @@ function Container({
|
|
|
1015
945
|
if (!backgroundColor) return null;
|
|
1016
946
|
if (typeof backgroundColor === "string")
|
|
1017
947
|
return { color: backgroundColor, opacity: 100 };
|
|
1018
|
-
if (
|
|
948
|
+
if (isThemeableValue6(backgroundColor)) {
|
|
1019
949
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1020
950
|
}
|
|
1021
951
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1034,11 +964,11 @@ function Container({
|
|
|
1034
964
|
backgroundColor: resolvedBgColor ? hexToRgba(resolvedBgColor.color, resolvedBgColor.opacity) : void 0,
|
|
1035
965
|
width: "100%"
|
|
1036
966
|
};
|
|
1037
|
-
return /* @__PURE__ */
|
|
967
|
+
return /* @__PURE__ */ jsx7("div", { id, style, children: DropZone && /* @__PURE__ */ jsx7(DropZone, { zone: "container-content" }) });
|
|
1038
968
|
}
|
|
1039
969
|
|
|
1040
970
|
// components/page/Columns.tsx
|
|
1041
|
-
import { jsx as
|
|
971
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
1042
972
|
var gapMap = {
|
|
1043
973
|
none: "0",
|
|
1044
974
|
sm: "16px",
|
|
@@ -1067,11 +997,11 @@ function Columns({
|
|
|
1067
997
|
gap: gapMap[gap],
|
|
1068
998
|
alignItems: alignMap[verticalAlign]
|
|
1069
999
|
};
|
|
1070
|
-
return /* @__PURE__ */
|
|
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)) });
|
|
1071
1001
|
}
|
|
1072
1002
|
|
|
1073
1003
|
// components/page/Card.tsx
|
|
1074
|
-
import { jsx as
|
|
1004
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
1075
1005
|
var borderWidthMap = {
|
|
1076
1006
|
none: "0",
|
|
1077
1007
|
thin: "1px",
|
|
@@ -1099,7 +1029,7 @@ var paddingMap2 = {
|
|
|
1099
1029
|
lg: "32px",
|
|
1100
1030
|
xl: "48px"
|
|
1101
1031
|
};
|
|
1102
|
-
function
|
|
1032
|
+
function isThemeableValue7(value) {
|
|
1103
1033
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1104
1034
|
}
|
|
1105
1035
|
function Card({
|
|
@@ -1118,7 +1048,7 @@ function Card({
|
|
|
1118
1048
|
if (!backgroundColor) return resolveColor2("background");
|
|
1119
1049
|
if (typeof backgroundColor === "string")
|
|
1120
1050
|
return { color: backgroundColor, opacity: 100 };
|
|
1121
|
-
if (
|
|
1051
|
+
if (isThemeableValue7(backgroundColor)) {
|
|
1122
1052
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1123
1053
|
}
|
|
1124
1054
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1128,7 +1058,7 @@ function Card({
|
|
|
1128
1058
|
if (!borderColor) return resolveColor2("muted");
|
|
1129
1059
|
if (typeof borderColor === "string")
|
|
1130
1060
|
return { color: borderColor, opacity: 100 };
|
|
1131
|
-
if (
|
|
1061
|
+
if (isThemeableValue7(borderColor)) {
|
|
1132
1062
|
return borderColor.useTheme ? resolveColor2(borderColor.themeKey) : borderColor.value;
|
|
1133
1063
|
}
|
|
1134
1064
|
if ("color" in borderColor) return borderColor;
|
|
@@ -1141,11 +1071,11 @@ function Card({
|
|
|
1141
1071
|
boxShadow: shadowMap2[shadow],
|
|
1142
1072
|
padding: paddingMap2[padding]
|
|
1143
1073
|
};
|
|
1144
|
-
return /* @__PURE__ */
|
|
1074
|
+
return /* @__PURE__ */ jsx9("div", { id, style, children: DropZone && /* @__PURE__ */ jsx9(DropZone, { zone: "card-content" }) });
|
|
1145
1075
|
}
|
|
1146
1076
|
|
|
1147
1077
|
// components/page/Divider.tsx
|
|
1148
|
-
import { jsx as
|
|
1078
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1149
1079
|
var thicknessMap = {
|
|
1150
1080
|
thin: "1px",
|
|
1151
1081
|
medium: "2px",
|
|
@@ -1163,7 +1093,7 @@ var spacingMap = {
|
|
|
1163
1093
|
lg: "32px",
|
|
1164
1094
|
xl: "48px"
|
|
1165
1095
|
};
|
|
1166
|
-
function
|
|
1096
|
+
function isThemeableValue8(value) {
|
|
1167
1097
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1168
1098
|
}
|
|
1169
1099
|
function Divider({
|
|
@@ -1179,7 +1109,7 @@ function Divider({
|
|
|
1179
1109
|
const resolvedColor = (() => {
|
|
1180
1110
|
if (!color) return resolveColor2("muted");
|
|
1181
1111
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
1182
|
-
if (
|
|
1112
|
+
if (isThemeableValue8(color)) {
|
|
1183
1113
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
1184
1114
|
}
|
|
1185
1115
|
if ("color" in color) return color;
|
|
@@ -1196,12 +1126,12 @@ function Divider({
|
|
|
1196
1126
|
borderTop: `${thicknessMap[thickness]} ${lineStyle} ${hexToRgba(resolvedColor.color, resolvedColor.opacity)}`,
|
|
1197
1127
|
margin: 0
|
|
1198
1128
|
};
|
|
1199
|
-
return /* @__PURE__ */
|
|
1129
|
+
return /* @__PURE__ */ jsx10("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx10("hr", { style: hrStyle }) });
|
|
1200
1130
|
}
|
|
1201
1131
|
|
|
1202
1132
|
// components/page/Spacer.tsx
|
|
1203
|
-
import { jsx as
|
|
1204
|
-
var
|
|
1133
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1134
|
+
var sizeMap2 = {
|
|
1205
1135
|
xs: "8px",
|
|
1206
1136
|
sm: "16px",
|
|
1207
1137
|
md: "24px",
|
|
@@ -1212,36 +1142,36 @@ var sizeMap3 = {
|
|
|
1212
1142
|
};
|
|
1213
1143
|
function Spacer({ size = "md", id }) {
|
|
1214
1144
|
const style = {
|
|
1215
|
-
height:
|
|
1145
|
+
height: sizeMap2[size],
|
|
1216
1146
|
width: "100%"
|
|
1217
1147
|
};
|
|
1218
|
-
return /* @__PURE__ */
|
|
1148
|
+
return /* @__PURE__ */ jsx11("div", { id, style, "aria-hidden": "true" });
|
|
1219
1149
|
}
|
|
1220
1150
|
|
|
1221
1151
|
// components/page/TextBlock.tsx
|
|
1222
|
-
import { jsx as
|
|
1152
|
+
import { jsx as jsx12, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1223
1153
|
var alignmentMap = {
|
|
1224
1154
|
left: "text-left",
|
|
1225
1155
|
center: "text-center",
|
|
1226
1156
|
right: "text-right"
|
|
1227
1157
|
};
|
|
1228
|
-
var
|
|
1158
|
+
var sizeMap3 = {
|
|
1229
1159
|
small: "text-2xl",
|
|
1230
1160
|
"medium-small": "text-3xl",
|
|
1231
1161
|
medium: "text-4xl",
|
|
1232
1162
|
large: "text-5xl",
|
|
1233
1163
|
xlarge: "text-6xl"
|
|
1234
1164
|
};
|
|
1235
|
-
function
|
|
1165
|
+
function isThemeableValue9(value) {
|
|
1236
1166
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1237
1167
|
}
|
|
1238
|
-
function
|
|
1168
|
+
function isEntryBoundValue4(value) {
|
|
1239
1169
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1240
1170
|
}
|
|
1241
1171
|
function resolveColor(color, resolveThemeColor) {
|
|
1242
1172
|
if (!color) return "#000000";
|
|
1243
1173
|
if (typeof color === "string") return color;
|
|
1244
|
-
if (
|
|
1174
|
+
if (isThemeableValue9(color)) {
|
|
1245
1175
|
if (color.useTheme) {
|
|
1246
1176
|
const themeColor = resolveThemeColor(color.themeKey);
|
|
1247
1177
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -1256,7 +1186,7 @@ function resolveColor(color, resolveThemeColor) {
|
|
|
1256
1186
|
function resolveColorHex(color, resolveThemeColor) {
|
|
1257
1187
|
if (!color) return "#000000";
|
|
1258
1188
|
if (typeof color === "string") return color;
|
|
1259
|
-
if (
|
|
1189
|
+
if (isThemeableValue9(color)) {
|
|
1260
1190
|
if (color.useTheme) {
|
|
1261
1191
|
return resolveThemeColor(color.themeKey).color;
|
|
1262
1192
|
}
|
|
@@ -1285,7 +1215,7 @@ function TextBlock({
|
|
|
1285
1215
|
const resolveText = (value) => {
|
|
1286
1216
|
if (!value) return void 0;
|
|
1287
1217
|
if (typeof value === "string") return value;
|
|
1288
|
-
if (
|
|
1218
|
+
if (isEntryBoundValue4(value)) {
|
|
1289
1219
|
if (value.useEntry) {
|
|
1290
1220
|
const entryVal = getEntryValue(value.entryName, value.fieldKey);
|
|
1291
1221
|
return entryVal != null ? String(entryVal) : void 0;
|
|
@@ -1311,16 +1241,16 @@ function TextBlock({
|
|
|
1311
1241
|
id: anchorLink,
|
|
1312
1242
|
className: cn("flex flex-col gap-4", alignmentMap[alignment]),
|
|
1313
1243
|
children: [
|
|
1314
|
-
resolvedTitle && /* @__PURE__ */
|
|
1244
|
+
resolvedTitle && /* @__PURE__ */ jsx12(
|
|
1315
1245
|
"h2",
|
|
1316
1246
|
{
|
|
1317
|
-
className: cn("font-bold",
|
|
1247
|
+
className: cn("font-bold", sizeMap3[textSize]),
|
|
1318
1248
|
style: gradientStyle,
|
|
1319
1249
|
children: resolvedTitle
|
|
1320
1250
|
}
|
|
1321
1251
|
),
|
|
1322
|
-
resolvedSubtitle && /* @__PURE__ */
|
|
1323
|
-
resolvedBody && /* @__PURE__ */
|
|
1252
|
+
resolvedSubtitle && /* @__PURE__ */ jsx12("p", { className: "text-xl", style: { color: subtitleColorValue }, children: resolvedSubtitle }),
|
|
1253
|
+
resolvedBody && /* @__PURE__ */ jsx12(
|
|
1324
1254
|
"div",
|
|
1325
1255
|
{
|
|
1326
1256
|
className: "prose max-w-none",
|
|
@@ -1334,7 +1264,7 @@ function TextBlock({
|
|
|
1334
1264
|
}
|
|
1335
1265
|
|
|
1336
1266
|
// components/page/CustomImage.tsx
|
|
1337
|
-
import { jsx as
|
|
1267
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1338
1268
|
var alignmentMap2 = {
|
|
1339
1269
|
left: "mr-auto",
|
|
1340
1270
|
center: "mx-auto",
|
|
@@ -1348,9 +1278,9 @@ function CustomImage({
|
|
|
1348
1278
|
fitContent = false
|
|
1349
1279
|
}) {
|
|
1350
1280
|
if (!image) {
|
|
1351
|
-
return /* @__PURE__ */
|
|
1281
|
+
return /* @__PURE__ */ jsx13("div", { className: "flex h-48 w-full items-center justify-center bg-gray-200 text-gray-400", children: "No image" });
|
|
1352
1282
|
}
|
|
1353
|
-
return /* @__PURE__ */
|
|
1283
|
+
return /* @__PURE__ */ jsx13(
|
|
1354
1284
|
"img",
|
|
1355
1285
|
{
|
|
1356
1286
|
src: image,
|
|
@@ -1367,8 +1297,8 @@ function CustomImage({
|
|
|
1367
1297
|
|
|
1368
1298
|
// components/page/FeaturesList.tsx
|
|
1369
1299
|
import { icons as icons2 } from "lucide-react";
|
|
1370
|
-
import { jsx as
|
|
1371
|
-
var
|
|
1300
|
+
import { jsx as jsx14, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1301
|
+
var sizeMap4 = {
|
|
1372
1302
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1373
1303
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1374
1304
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1380,12 +1310,12 @@ function FeaturesList({
|
|
|
1380
1310
|
iconColor = "#000000",
|
|
1381
1311
|
anchorLink
|
|
1382
1312
|
}) {
|
|
1383
|
-
const sizeConfig =
|
|
1313
|
+
const sizeConfig = sizeMap4[size];
|
|
1384
1314
|
const getIcon = (iconName) => {
|
|
1385
1315
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1386
1316
|
return icons2[formatted] || null;
|
|
1387
1317
|
};
|
|
1388
|
-
return /* @__PURE__ */
|
|
1318
|
+
return /* @__PURE__ */ jsx14(
|
|
1389
1319
|
"div",
|
|
1390
1320
|
{
|
|
1391
1321
|
id: anchorLink,
|
|
@@ -1405,7 +1335,7 @@ function FeaturesList({
|
|
|
1405
1335
|
align === "right" && "flex-row-reverse"
|
|
1406
1336
|
),
|
|
1407
1337
|
children: [
|
|
1408
|
-
feature.image ? /* @__PURE__ */
|
|
1338
|
+
feature.image ? /* @__PURE__ */ jsx14(
|
|
1409
1339
|
"img",
|
|
1410
1340
|
{
|
|
1411
1341
|
src: feature.image,
|
|
@@ -1413,7 +1343,7 @@ function FeaturesList({
|
|
|
1413
1343
|
className: "object-contain",
|
|
1414
1344
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1415
1345
|
}
|
|
1416
|
-
) : IconComponent ? /* @__PURE__ */
|
|
1346
|
+
) : IconComponent ? /* @__PURE__ */ jsx14(
|
|
1417
1347
|
IconComponent,
|
|
1418
1348
|
{
|
|
1419
1349
|
size: sizeConfig.icon,
|
|
@@ -1422,8 +1352,8 @@ function FeaturesList({
|
|
|
1422
1352
|
}
|
|
1423
1353
|
) : null,
|
|
1424
1354
|
/* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-1", children: [
|
|
1425
|
-
feature.title && /* @__PURE__ */
|
|
1426
|
-
feature.description && /* @__PURE__ */
|
|
1355
|
+
feature.title && /* @__PURE__ */ jsx14("h3", { className: cn("font-semibold", sizeConfig.title), children: feature.title }),
|
|
1356
|
+
feature.description && /* @__PURE__ */ jsx14("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1427
1357
|
] })
|
|
1428
1358
|
]
|
|
1429
1359
|
},
|
|
@@ -1436,8 +1366,8 @@ function FeaturesList({
|
|
|
1436
1366
|
|
|
1437
1367
|
// components/page/FeatureGrid.tsx
|
|
1438
1368
|
import { icons as icons3 } from "lucide-react";
|
|
1439
|
-
import { jsx as
|
|
1440
|
-
var
|
|
1369
|
+
import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1370
|
+
var sizeMap5 = {
|
|
1441
1371
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1442
1372
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1443
1373
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1453,7 +1383,7 @@ function FeatureGrid({
|
|
|
1453
1383
|
textColor = "#000000",
|
|
1454
1384
|
anchorLink
|
|
1455
1385
|
}) {
|
|
1456
|
-
const sizeConfig =
|
|
1386
|
+
const sizeConfig = sizeMap5[size];
|
|
1457
1387
|
const getIcon = (iconName) => {
|
|
1458
1388
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1459
1389
|
return icons3[formatted] || null;
|
|
@@ -1473,12 +1403,12 @@ function FeatureGrid({
|
|
|
1473
1403
|
align === "right" && "text-right"
|
|
1474
1404
|
),
|
|
1475
1405
|
children: [
|
|
1476
|
-
heading && /* @__PURE__ */
|
|
1477
|
-
description && /* @__PURE__ */
|
|
1406
|
+
heading && /* @__PURE__ */ jsx15("h2", { className: "text-3xl font-bold", style: { color: textColor }, children: heading }),
|
|
1407
|
+
description && /* @__PURE__ */ jsx15("p", { className: "text-gray-600", children: description })
|
|
1478
1408
|
]
|
|
1479
1409
|
}
|
|
1480
1410
|
),
|
|
1481
|
-
/* @__PURE__ */
|
|
1411
|
+
/* @__PURE__ */ jsx15("div", { className: cn("grid gap-6", columnClass[columns]), children: features.map((feature, index) => {
|
|
1482
1412
|
const IconComponent = feature.icon ? getIcon(feature.icon) : null;
|
|
1483
1413
|
return /* @__PURE__ */ jsxs6(
|
|
1484
1414
|
"div",
|
|
@@ -1488,7 +1418,7 @@ function FeatureGrid({
|
|
|
1488
1418
|
align === "center" && "items-center text-center"
|
|
1489
1419
|
),
|
|
1490
1420
|
children: [
|
|
1491
|
-
feature.image ? /* @__PURE__ */
|
|
1421
|
+
feature.image ? /* @__PURE__ */ jsx15(
|
|
1492
1422
|
"img",
|
|
1493
1423
|
{
|
|
1494
1424
|
src: feature.image,
|
|
@@ -1496,14 +1426,14 @@ function FeatureGrid({
|
|
|
1496
1426
|
className: "object-contain",
|
|
1497
1427
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1498
1428
|
}
|
|
1499
|
-
) : IconComponent ? /* @__PURE__ */
|
|
1429
|
+
) : IconComponent ? /* @__PURE__ */ jsx15(
|
|
1500
1430
|
IconComponent,
|
|
1501
1431
|
{
|
|
1502
1432
|
size: sizeConfig.icon,
|
|
1503
1433
|
style: { color: iconColor }
|
|
1504
1434
|
}
|
|
1505
1435
|
) : null,
|
|
1506
|
-
feature.title && /* @__PURE__ */
|
|
1436
|
+
feature.title && /* @__PURE__ */ jsx15(
|
|
1507
1437
|
"h3",
|
|
1508
1438
|
{
|
|
1509
1439
|
className: cn("font-semibold", sizeConfig.title),
|
|
@@ -1511,7 +1441,7 @@ function FeatureGrid({
|
|
|
1511
1441
|
children: feature.title
|
|
1512
1442
|
}
|
|
1513
1443
|
),
|
|
1514
|
-
feature.description && /* @__PURE__ */
|
|
1444
|
+
feature.description && /* @__PURE__ */ jsx15("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1515
1445
|
]
|
|
1516
1446
|
},
|
|
1517
1447
|
index
|
|
@@ -1522,7 +1452,7 @@ function FeatureGrid({
|
|
|
1522
1452
|
|
|
1523
1453
|
// components/page/Footer.tsx
|
|
1524
1454
|
import { Facebook, Instagram, Twitter } from "lucide-react";
|
|
1525
|
-
import { jsx as
|
|
1455
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1526
1456
|
function Footer({
|
|
1527
1457
|
logo,
|
|
1528
1458
|
copyright = "\xA9 2024 Company. All rights reserved.",
|
|
@@ -1557,15 +1487,15 @@ function Footer({
|
|
|
1557
1487
|
].filter(
|
|
1558
1488
|
(link) => !!link.url
|
|
1559
1489
|
);
|
|
1560
|
-
return /* @__PURE__ */
|
|
1490
|
+
return /* @__PURE__ */ jsx16(
|
|
1561
1491
|
"footer",
|
|
1562
1492
|
{
|
|
1563
1493
|
className: "w-full px-6 py-8",
|
|
1564
1494
|
style: { backgroundColor, color: textColor },
|
|
1565
1495
|
children: /* @__PURE__ */ jsxs7("div", { className: "mx-auto flex max-w-7xl flex-col items-center justify-between gap-6 md:flex-row", children: [
|
|
1566
|
-
/* @__PURE__ */
|
|
1567
|
-
DropZone && /* @__PURE__ */
|
|
1568
|
-
/* @__PURE__ */
|
|
1496
|
+
/* @__PURE__ */ jsx16("div", { className: "flex items-center gap-4", children: logo && /* @__PURE__ */ jsx16("img", { src: logo, alt: "Logo", className: "h-8" }) }),
|
|
1497
|
+
DropZone && /* @__PURE__ */ jsx16(DropZone, { zone: "footer-content" }),
|
|
1498
|
+
/* @__PURE__ */ jsx16("div", { className: "flex items-center gap-4", children: socialLinks.map(({ url, Icon: Icon3 }, index) => /* @__PURE__ */ jsx16(
|
|
1569
1499
|
"a",
|
|
1570
1500
|
{
|
|
1571
1501
|
href: url,
|
|
@@ -1573,11 +1503,11 @@ function Footer({
|
|
|
1573
1503
|
rel: "noopener noreferrer",
|
|
1574
1504
|
className: "transition-opacity hover:opacity-80",
|
|
1575
1505
|
onClick: () => handleSocialClick(url),
|
|
1576
|
-
children: /* @__PURE__ */
|
|
1506
|
+
children: /* @__PURE__ */ jsx16(Icon3, { size: 24, style: { color: textColor } })
|
|
1577
1507
|
},
|
|
1578
1508
|
index
|
|
1579
1509
|
)) }),
|
|
1580
|
-
copyright && /* @__PURE__ */
|
|
1510
|
+
copyright && /* @__PURE__ */ jsx16("p", { className: "text-sm opacity-80", children: copyright })
|
|
1581
1511
|
] })
|
|
1582
1512
|
}
|
|
1583
1513
|
);
|
|
@@ -1586,7 +1516,7 @@ function Footer({
|
|
|
1586
1516
|
// components/page/Topbar.tsx
|
|
1587
1517
|
import { useState as useState2 } from "react";
|
|
1588
1518
|
import { Menu, X } from "lucide-react";
|
|
1589
|
-
import { jsx as
|
|
1519
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1590
1520
|
function Topbar({
|
|
1591
1521
|
logo,
|
|
1592
1522
|
logoUrl = "/",
|
|
@@ -1619,7 +1549,7 @@ function Topbar({
|
|
|
1619
1549
|
const renderLink = (item, index) => {
|
|
1620
1550
|
const className = "hover:opacity-80 transition-opacity";
|
|
1621
1551
|
if (item.linkType === "external") {
|
|
1622
|
-
return /* @__PURE__ */
|
|
1552
|
+
return /* @__PURE__ */ jsx17(
|
|
1623
1553
|
"a",
|
|
1624
1554
|
{
|
|
1625
1555
|
href: item.url,
|
|
@@ -1633,7 +1563,7 @@ function Topbar({
|
|
|
1633
1563
|
);
|
|
1634
1564
|
}
|
|
1635
1565
|
if (item.linkType === "scrollTo") {
|
|
1636
|
-
return /* @__PURE__ */
|
|
1566
|
+
return /* @__PURE__ */ jsx17(
|
|
1637
1567
|
"a",
|
|
1638
1568
|
{
|
|
1639
1569
|
href: item.url,
|
|
@@ -1644,7 +1574,7 @@ function Topbar({
|
|
|
1644
1574
|
index
|
|
1645
1575
|
);
|
|
1646
1576
|
}
|
|
1647
|
-
return /* @__PURE__ */
|
|
1577
|
+
return /* @__PURE__ */ jsx17(
|
|
1648
1578
|
"a",
|
|
1649
1579
|
{
|
|
1650
1580
|
href: item.url,
|
|
@@ -1667,7 +1597,7 @@ function Topbar({
|
|
|
1667
1597
|
className: "mx-auto flex items-center justify-between",
|
|
1668
1598
|
style: { maxWidth },
|
|
1669
1599
|
children: [
|
|
1670
|
-
/* @__PURE__ */
|
|
1600
|
+
/* @__PURE__ */ jsx17(
|
|
1671
1601
|
"a",
|
|
1672
1602
|
{
|
|
1673
1603
|
href: logoUrl,
|
|
@@ -1678,14 +1608,14 @@ function Topbar({
|
|
|
1678
1608
|
linkType: "internal",
|
|
1679
1609
|
...utm
|
|
1680
1610
|
}),
|
|
1681
|
-
children: logo ? /* @__PURE__ */
|
|
1611
|
+
children: logo ? /* @__PURE__ */ jsx17("img", { src: logo, alt: "Logo", className: "h-8" }) : /* @__PURE__ */ jsx17("span", { className: "text-xl font-bold", children: "Logo" })
|
|
1682
1612
|
}
|
|
1683
1613
|
),
|
|
1684
1614
|
/* @__PURE__ */ jsxs8("div", { className: "hidden items-center gap-8 md:flex", children: [
|
|
1685
1615
|
navItems.map(renderLink),
|
|
1686
|
-
DropZone && /* @__PURE__ */
|
|
1616
|
+
DropZone && /* @__PURE__ */ jsx17(DropZone, { zone: "cta" })
|
|
1687
1617
|
] }),
|
|
1688
|
-
/* @__PURE__ */
|
|
1618
|
+
/* @__PURE__ */ jsx17("button", { className: "md:hidden", onClick: handleMobileMenuToggle, children: mobileMenuOpen ? /* @__PURE__ */ jsx17(X, { size: 24 }) : /* @__PURE__ */ jsx17(Menu, { size: 24 }) })
|
|
1689
1619
|
]
|
|
1690
1620
|
}
|
|
1691
1621
|
),
|
|
@@ -1696,7 +1626,7 @@ function Topbar({
|
|
|
1696
1626
|
style: { backgroundColor },
|
|
1697
1627
|
children: [
|
|
1698
1628
|
navItems.map(renderLink),
|
|
1699
|
-
DropZone && /* @__PURE__ */
|
|
1629
|
+
DropZone && /* @__PURE__ */ jsx17(DropZone, { zone: "cta" })
|
|
1700
1630
|
]
|
|
1701
1631
|
}
|
|
1702
1632
|
)
|
|
@@ -1708,19 +1638,19 @@ function Topbar({
|
|
|
1708
1638
|
// components/page/Popup.tsx
|
|
1709
1639
|
import { useState as useState3 } from "react";
|
|
1710
1640
|
import { icons as icons4, X as X2 } from "lucide-react";
|
|
1711
|
-
import { Fragment as Fragment2, jsx as
|
|
1641
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1712
1642
|
function Icon2({ name, ...props }) {
|
|
1713
1643
|
const formatted = name.charAt(0).toUpperCase() + name.slice(1);
|
|
1714
1644
|
const IconComponent = icons4[formatted];
|
|
1715
1645
|
if (!IconComponent) return null;
|
|
1716
|
-
return /* @__PURE__ */
|
|
1646
|
+
return /* @__PURE__ */ jsx18(IconComponent, { ...props });
|
|
1717
1647
|
}
|
|
1718
1648
|
var widthMap3 = {
|
|
1719
1649
|
small: "max-w-sm",
|
|
1720
1650
|
medium: "max-w-lg",
|
|
1721
1651
|
large: "max-w-2xl"
|
|
1722
1652
|
};
|
|
1723
|
-
var
|
|
1653
|
+
var sizeMap6 = {
|
|
1724
1654
|
small: "px-3 py-1.5 text-sm",
|
|
1725
1655
|
medium: "px-4 py-2 text-base",
|
|
1726
1656
|
large: "px-6 py-3 text-lg"
|
|
@@ -1751,7 +1681,7 @@ function Popup({
|
|
|
1751
1681
|
setIsOpen(false);
|
|
1752
1682
|
sendEvent("popup_close", { ctaText, ...utm });
|
|
1753
1683
|
};
|
|
1754
|
-
const trigger = textLink ? /* @__PURE__ */
|
|
1684
|
+
const trigger = textLink ? /* @__PURE__ */ jsx18(
|
|
1755
1685
|
"button",
|
|
1756
1686
|
{
|
|
1757
1687
|
onClick: handleOpen,
|
|
@@ -1765,19 +1695,19 @@ function Popup({
|
|
|
1765
1695
|
onClick: handleOpen,
|
|
1766
1696
|
className: cn(
|
|
1767
1697
|
"flex items-center gap-2 rounded-full font-medium",
|
|
1768
|
-
|
|
1698
|
+
sizeMap6[size]
|
|
1769
1699
|
),
|
|
1770
1700
|
style: { backgroundColor: buttonColor, color: textColor },
|
|
1771
1701
|
children: [
|
|
1772
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
1702
|
+
icon && iconPosition === "left" && /* @__PURE__ */ jsx18(Icon2, { name: icon, size: 18 }),
|
|
1773
1703
|
ctaText,
|
|
1774
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
1704
|
+
icon && iconPosition === "right" && /* @__PURE__ */ jsx18(Icon2, { name: icon, size: 18 })
|
|
1775
1705
|
]
|
|
1776
1706
|
}
|
|
1777
1707
|
);
|
|
1778
1708
|
return /* @__PURE__ */ jsxs9(Fragment2, { children: [
|
|
1779
1709
|
trigger,
|
|
1780
|
-
isOpen && /* @__PURE__ */
|
|
1710
|
+
isOpen && /* @__PURE__ */ jsx18(
|
|
1781
1711
|
"div",
|
|
1782
1712
|
{
|
|
1783
1713
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
@@ -1791,15 +1721,15 @@ function Popup({
|
|
|
1791
1721
|
),
|
|
1792
1722
|
onClick: (e) => e.stopPropagation(),
|
|
1793
1723
|
children: [
|
|
1794
|
-
/* @__PURE__ */
|
|
1724
|
+
/* @__PURE__ */ jsx18(
|
|
1795
1725
|
"button",
|
|
1796
1726
|
{
|
|
1797
1727
|
onClick: handleClose,
|
|
1798
1728
|
className: "absolute top-4 right-4 text-gray-500 hover:text-gray-700",
|
|
1799
|
-
children: /* @__PURE__ */
|
|
1729
|
+
children: /* @__PURE__ */ jsx18(X2, { size: 24 })
|
|
1800
1730
|
}
|
|
1801
1731
|
),
|
|
1802
|
-
puck && /* @__PURE__ */
|
|
1732
|
+
puck && /* @__PURE__ */ jsx18(puck.renderDropZone, { zone: "popup-content" })
|
|
1803
1733
|
]
|
|
1804
1734
|
}
|
|
1805
1735
|
)
|
|
@@ -1848,9 +1778,39 @@ function getHeadingStyle(props) {
|
|
|
1848
1778
|
};
|
|
1849
1779
|
}
|
|
1850
1780
|
|
|
1781
|
+
// components/page/primitives/Paragraph.ts
|
|
1782
|
+
var paragraphSizeMap = {
|
|
1783
|
+
sm: "0.875rem",
|
|
1784
|
+
base: "1rem",
|
|
1785
|
+
lg: "1.125rem",
|
|
1786
|
+
xl: "1.25rem"
|
|
1787
|
+
};
|
|
1788
|
+
var paragraphWeightMap = {
|
|
1789
|
+
normal: 400,
|
|
1790
|
+
medium: 500,
|
|
1791
|
+
semibold: 600
|
|
1792
|
+
};
|
|
1793
|
+
var paragraphLineHeightMap = {
|
|
1794
|
+
tight: "1.4",
|
|
1795
|
+
normal: "1.6",
|
|
1796
|
+
relaxed: "1.75",
|
|
1797
|
+
loose: "2"
|
|
1798
|
+
};
|
|
1799
|
+
function getParagraphStyle(props) {
|
|
1800
|
+
return {
|
|
1801
|
+
fontSize: paragraphSizeMap[props.size],
|
|
1802
|
+
fontWeight: paragraphWeightMap[props.weight],
|
|
1803
|
+
color: props.color,
|
|
1804
|
+
textAlign: props.align,
|
|
1805
|
+
lineHeight: paragraphLineHeightMap[props.lineHeight],
|
|
1806
|
+
maxWidth: props.maxWidth || void 0,
|
|
1807
|
+
margin: 0
|
|
1808
|
+
};
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1851
1811
|
export {
|
|
1852
1812
|
getHeadingStyle,
|
|
1853
|
-
|
|
1813
|
+
getParagraphStyle,
|
|
1854
1814
|
Button,
|
|
1855
1815
|
Image,
|
|
1856
1816
|
ImageCarousel,
|