@mission-studio/puck 1.0.19 → 1.0.20
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/chunk-A2J2E524.mjs +78 -0
- package/dist/{chunk-723Z3YKC.mjs → chunk-X6VGLL5Y.mjs} +203 -245
- package/dist/config/server.js +122 -137
- package/dist/config/server.mjs +52 -25
- package/dist/config-entry.js +61 -39
- package/dist/config-entry.mjs +5 -3
- package/dist/index.js +60 -38
- package/dist/index.mjs +5 -3
- package/dist/renderer.d.mts +13 -6
- package/dist/renderer.d.ts +13 -6
- package/dist/renderer.js +60 -38
- package/dist/renderer.mjs +5 -3
- package/package.json +1 -1
|
@@ -3,120 +3,38 @@ import {
|
|
|
3
3
|
useEntries,
|
|
4
4
|
useTheme
|
|
5
5
|
} from "./chunk-PJXZC564.mjs";
|
|
6
|
-
import {
|
|
7
|
-
useGtmEvent,
|
|
8
|
-
useUtmParams
|
|
9
|
-
} from "./chunk-QSWQDR6M.mjs";
|
|
10
6
|
import {
|
|
11
7
|
cn,
|
|
12
8
|
hexToRgba
|
|
13
9
|
} from "./chunk-C6V3YUPF.mjs";
|
|
10
|
+
import {
|
|
11
|
+
useGtmEvent,
|
|
12
|
+
useUtmParams
|
|
13
|
+
} from "./chunk-QSWQDR6M.mjs";
|
|
14
14
|
|
|
15
|
-
// components/page/
|
|
15
|
+
// components/page/Paragraph.tsx
|
|
16
16
|
import { jsx } from "react/jsx-runtime";
|
|
17
17
|
var sizeMap = {
|
|
18
|
-
xs: "0.875rem",
|
|
19
|
-
sm: "1rem",
|
|
20
|
-
md: "1.25rem",
|
|
21
|
-
lg: "1.5rem",
|
|
22
|
-
xl: "2rem",
|
|
23
|
-
"2xl": "2.5rem",
|
|
24
|
-
"3xl": "3rem",
|
|
25
|
-
"4xl": "4rem"
|
|
26
|
-
};
|
|
27
|
-
var weightMap = {
|
|
28
|
-
normal: 400,
|
|
29
|
-
medium: 500,
|
|
30
|
-
semibold: 600,
|
|
31
|
-
bold: 700,
|
|
32
|
-
extrabold: 800
|
|
33
|
-
};
|
|
34
|
-
var letterSpacingMap = {
|
|
35
|
-
tight: "-0.025em",
|
|
36
|
-
normal: "0",
|
|
37
|
-
wide: "0.05em"
|
|
38
|
-
};
|
|
39
|
-
var lineHeightMap = {
|
|
40
|
-
tight: "1.1",
|
|
41
|
-
normal: "1.4",
|
|
42
|
-
relaxed: "1.6"
|
|
43
|
-
};
|
|
44
|
-
function isThemeableValue(value) {
|
|
45
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
46
|
-
}
|
|
47
|
-
function isEntryBoundValue(value) {
|
|
48
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
49
|
-
}
|
|
50
|
-
function Heading({
|
|
51
|
-
text,
|
|
52
|
-
level = "h2",
|
|
53
|
-
size = "2xl",
|
|
54
|
-
weight = "bold",
|
|
55
|
-
color,
|
|
56
|
-
align = "left",
|
|
57
|
-
letterSpacing = "normal",
|
|
58
|
-
lineHeight = "tight",
|
|
59
|
-
id
|
|
60
|
-
}) {
|
|
61
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
62
|
-
const { getEntryValue } = useEntries();
|
|
63
|
-
const resolvedText = (() => {
|
|
64
|
-
if (!text) return "";
|
|
65
|
-
if (typeof text === "string") return text;
|
|
66
|
-
if (isEntryBoundValue(text)) {
|
|
67
|
-
if (text.useEntry) {
|
|
68
|
-
return String(getEntryValue(text.entryName, text.fieldKey) ?? "");
|
|
69
|
-
}
|
|
70
|
-
return text.value;
|
|
71
|
-
}
|
|
72
|
-
return "";
|
|
73
|
-
})();
|
|
74
|
-
const resolvedColor = (() => {
|
|
75
|
-
if (!color) return resolveColor2("foreground");
|
|
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("foreground");
|
|
82
|
-
})();
|
|
83
|
-
const Tag = level;
|
|
84
|
-
const style = {
|
|
85
|
-
fontSize: sizeMap[size],
|
|
86
|
-
fontWeight: weightMap[weight],
|
|
87
|
-
color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
|
|
88
|
-
textAlign: align,
|
|
89
|
-
letterSpacing: letterSpacingMap[letterSpacing],
|
|
90
|
-
lineHeight: lineHeightMap[lineHeight],
|
|
91
|
-
margin: 0
|
|
92
|
-
};
|
|
93
|
-
if (!resolvedText) return null;
|
|
94
|
-
return /* @__PURE__ */ jsx(Tag, { id, style, children: resolvedText });
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// components/page/Paragraph.tsx
|
|
98
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
99
|
-
var sizeMap2 = {
|
|
100
18
|
sm: "0.875rem",
|
|
101
19
|
base: "1rem",
|
|
102
20
|
lg: "1.125rem",
|
|
103
21
|
xl: "1.25rem"
|
|
104
22
|
};
|
|
105
|
-
var
|
|
23
|
+
var weightMap = {
|
|
106
24
|
normal: 400,
|
|
107
25
|
medium: 500,
|
|
108
26
|
semibold: 600
|
|
109
27
|
};
|
|
110
|
-
var
|
|
28
|
+
var lineHeightMap = {
|
|
111
29
|
tight: "1.4",
|
|
112
30
|
normal: "1.6",
|
|
113
31
|
relaxed: "1.75",
|
|
114
32
|
loose: "2"
|
|
115
33
|
};
|
|
116
|
-
function
|
|
34
|
+
function isThemeableValue(value) {
|
|
117
35
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
118
36
|
}
|
|
119
|
-
function
|
|
37
|
+
function isEntryBoundValue(value) {
|
|
120
38
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
121
39
|
}
|
|
122
40
|
function Paragraph({
|
|
@@ -134,7 +52,7 @@ function Paragraph({
|
|
|
134
52
|
const resolvedText = (() => {
|
|
135
53
|
if (!text) return "";
|
|
136
54
|
if (typeof text === "string") return text;
|
|
137
|
-
if (
|
|
55
|
+
if (isEntryBoundValue(text)) {
|
|
138
56
|
if (text.useEntry) {
|
|
139
57
|
return String(getEntryValue(text.entryName, text.fieldKey) ?? "");
|
|
140
58
|
}
|
|
@@ -145,27 +63,27 @@ function Paragraph({
|
|
|
145
63
|
const resolvedColor = (() => {
|
|
146
64
|
if (!color) return resolveColor2("foreground");
|
|
147
65
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
148
|
-
if (
|
|
66
|
+
if (isThemeableValue(color)) {
|
|
149
67
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
150
68
|
}
|
|
151
69
|
if ("color" in color) return color;
|
|
152
70
|
return resolveColor2("foreground");
|
|
153
71
|
})();
|
|
154
72
|
const style = {
|
|
155
|
-
fontSize:
|
|
156
|
-
fontWeight:
|
|
73
|
+
fontSize: sizeMap[size],
|
|
74
|
+
fontWeight: weightMap[weight],
|
|
157
75
|
color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
|
|
158
76
|
textAlign: align,
|
|
159
|
-
lineHeight:
|
|
77
|
+
lineHeight: lineHeightMap[lineHeight],
|
|
160
78
|
maxWidth: maxWidth || void 0,
|
|
161
79
|
margin: 0
|
|
162
80
|
};
|
|
163
81
|
if (!resolvedText) return null;
|
|
164
|
-
return /* @__PURE__ */
|
|
82
|
+
return /* @__PURE__ */ jsx("p", { id, style, children: resolvedText });
|
|
165
83
|
}
|
|
166
84
|
|
|
167
85
|
// components/page/Button.tsx
|
|
168
|
-
import { jsx as
|
|
86
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
169
87
|
var sizeStyles = {
|
|
170
88
|
sm: { padding: "8px 16px", fontSize: "0.875rem" },
|
|
171
89
|
md: { padding: "12px 24px", fontSize: "1rem" },
|
|
@@ -179,10 +97,10 @@ var radiusMap = {
|
|
|
179
97
|
lg: "16px",
|
|
180
98
|
full: "9999px"
|
|
181
99
|
};
|
|
182
|
-
function
|
|
100
|
+
function isThemeableValue2(value) {
|
|
183
101
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
184
102
|
}
|
|
185
|
-
function
|
|
103
|
+
function isEntryBoundValue2(value) {
|
|
186
104
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
187
105
|
}
|
|
188
106
|
function Button({
|
|
@@ -205,7 +123,7 @@ function Button({
|
|
|
205
123
|
const resolvedText = (() => {
|
|
206
124
|
if (!text) return "Button";
|
|
207
125
|
if (typeof text === "string") return text;
|
|
208
|
-
if (
|
|
126
|
+
if (isEntryBoundValue2(text)) {
|
|
209
127
|
if (text.useEntry) {
|
|
210
128
|
return String(getEntryValue(text.entryName, text.fieldKey) ?? "Button");
|
|
211
129
|
}
|
|
@@ -226,7 +144,7 @@ function Button({
|
|
|
226
144
|
const resolvedColor = (() => {
|
|
227
145
|
if (!color) return resolveColor2("primary");
|
|
228
146
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
229
|
-
if (
|
|
147
|
+
if (isThemeableValue2(color)) {
|
|
230
148
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
231
149
|
}
|
|
232
150
|
if ("color" in color) return color;
|
|
@@ -239,7 +157,7 @@ function Button({
|
|
|
239
157
|
}
|
|
240
158
|
if (typeof textColor === "string")
|
|
241
159
|
return { color: textColor, opacity: 100 };
|
|
242
|
-
if (
|
|
160
|
+
if (isThemeableValue2(textColor)) {
|
|
243
161
|
return textColor.useTheme ? resolveColor2(textColor.themeKey) : textColor.value;
|
|
244
162
|
}
|
|
245
163
|
if ("color" in textColor) return textColor;
|
|
@@ -286,9 +204,9 @@ function Button({
|
|
|
286
204
|
display: "flex",
|
|
287
205
|
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
288
206
|
};
|
|
289
|
-
const content = /* @__PURE__ */
|
|
207
|
+
const content = /* @__PURE__ */ jsx2("span", { style, children: resolvedText });
|
|
290
208
|
if (href) {
|
|
291
|
-
return /* @__PURE__ */
|
|
209
|
+
return /* @__PURE__ */ jsx2("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx2(
|
|
292
210
|
"a",
|
|
293
211
|
{
|
|
294
212
|
id,
|
|
@@ -301,11 +219,11 @@ function Button({
|
|
|
301
219
|
}
|
|
302
220
|
) });
|
|
303
221
|
}
|
|
304
|
-
return /* @__PURE__ */
|
|
222
|
+
return /* @__PURE__ */ jsx2("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx2("button", { id, type: "button", style, onClick: handleClick, children: resolvedText }) });
|
|
305
223
|
}
|
|
306
224
|
|
|
307
225
|
// components/page/Image.tsx
|
|
308
|
-
import { jsx as
|
|
226
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
309
227
|
var widthMap = {
|
|
310
228
|
auto: "auto",
|
|
311
229
|
full: "100%",
|
|
@@ -336,10 +254,10 @@ var shadowMap = {
|
|
|
336
254
|
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
337
255
|
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
338
256
|
};
|
|
339
|
-
function
|
|
257
|
+
function isThemeableValue3(value) {
|
|
340
258
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
341
259
|
}
|
|
342
|
-
function
|
|
260
|
+
function isEntryBoundValue3(value) {
|
|
343
261
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
344
262
|
}
|
|
345
263
|
function Image({
|
|
@@ -360,7 +278,7 @@ function Image({
|
|
|
360
278
|
const resolvedSrc = (() => {
|
|
361
279
|
if (!src) return "";
|
|
362
280
|
if (typeof src === "string") return src;
|
|
363
|
-
if (
|
|
281
|
+
if (isEntryBoundValue3(src)) {
|
|
364
282
|
if (src.useEntry) {
|
|
365
283
|
return String(getEntryValue(src.entryName, src.fieldKey) ?? "");
|
|
366
284
|
}
|
|
@@ -371,7 +289,7 @@ function Image({
|
|
|
371
289
|
const resolvedCaption = (() => {
|
|
372
290
|
if (!caption) return "";
|
|
373
291
|
if (typeof caption === "string") return caption;
|
|
374
|
-
if (
|
|
292
|
+
if (isEntryBoundValue3(caption)) {
|
|
375
293
|
if (caption.useEntry) {
|
|
376
294
|
return String(getEntryValue(caption.entryName, caption.fieldKey) ?? "");
|
|
377
295
|
}
|
|
@@ -383,7 +301,7 @@ function Image({
|
|
|
383
301
|
if (!captionColor) return resolveColor2("muted");
|
|
384
302
|
if (typeof captionColor === "string")
|
|
385
303
|
return { color: captionColor, opacity: 100 };
|
|
386
|
-
if (
|
|
304
|
+
if (isThemeableValue3(captionColor)) {
|
|
387
305
|
return captionColor.useTheme ? resolveColor2(captionColor.themeKey) : captionColor.value;
|
|
388
306
|
}
|
|
389
307
|
if ("color" in captionColor) return captionColor;
|
|
@@ -411,7 +329,7 @@ function Image({
|
|
|
411
329
|
maxWidth: widthMap[width]
|
|
412
330
|
};
|
|
413
331
|
if (!resolvedSrc) {
|
|
414
|
-
return /* @__PURE__ */
|
|
332
|
+
return /* @__PURE__ */ jsx3("div", { style: wrapperStyle, children: /* @__PURE__ */ jsx3(
|
|
415
333
|
"div",
|
|
416
334
|
{
|
|
417
335
|
style: {
|
|
@@ -428,14 +346,14 @@ function Image({
|
|
|
428
346
|
) });
|
|
429
347
|
}
|
|
430
348
|
return /* @__PURE__ */ jsxs("figure", { id, style: { ...wrapperStyle, margin: 0 }, children: [
|
|
431
|
-
/* @__PURE__ */
|
|
432
|
-
resolvedCaption && /* @__PURE__ */
|
|
349
|
+
/* @__PURE__ */ jsx3("img", { src: resolvedSrc, alt, style: imageStyle, loading: "lazy" }),
|
|
350
|
+
resolvedCaption && /* @__PURE__ */ jsx3("figcaption", { style: captionStyle, children: resolvedCaption })
|
|
433
351
|
] });
|
|
434
352
|
}
|
|
435
353
|
|
|
436
354
|
// components/page/ImageCarousel.tsx
|
|
437
355
|
import { useState } from "react";
|
|
438
|
-
import { Fragment, jsx as
|
|
356
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
439
357
|
var aspectRatioMap2 = {
|
|
440
358
|
"16:9": "16 / 9",
|
|
441
359
|
"4:3": "4 / 3",
|
|
@@ -448,7 +366,7 @@ var radiusMap3 = {
|
|
|
448
366
|
md: "8px",
|
|
449
367
|
lg: "16px"
|
|
450
368
|
};
|
|
451
|
-
function
|
|
369
|
+
function isThemeableValue4(value) {
|
|
452
370
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
453
371
|
}
|
|
454
372
|
function ImageCarousel({
|
|
@@ -469,7 +387,7 @@ function ImageCarousel({
|
|
|
469
387
|
if (!arrowColor) return { color: "#FFFFFF", opacity: 100 };
|
|
470
388
|
if (typeof arrowColor === "string")
|
|
471
389
|
return { color: arrowColor, opacity: 100 };
|
|
472
|
-
if (
|
|
390
|
+
if (isThemeableValue4(arrowColor)) {
|
|
473
391
|
return arrowColor.useTheme ? resolveColor2(arrowColor.themeKey) : arrowColor.value;
|
|
474
392
|
}
|
|
475
393
|
if ("color" in arrowColor) return arrowColor;
|
|
@@ -478,7 +396,7 @@ function ImageCarousel({
|
|
|
478
396
|
const resolvedDotColor = (() => {
|
|
479
397
|
if (!dotColor) return resolveColor2("primary");
|
|
480
398
|
if (typeof dotColor === "string") return { color: dotColor, opacity: 100 };
|
|
481
|
-
if (
|
|
399
|
+
if (isThemeableValue4(dotColor)) {
|
|
482
400
|
return dotColor.useTheme ? resolveColor2(dotColor.themeKey) : dotColor.value;
|
|
483
401
|
}
|
|
484
402
|
if ("color" in dotColor) return dotColor;
|
|
@@ -514,7 +432,7 @@ function ImageCarousel({
|
|
|
514
432
|
});
|
|
515
433
|
};
|
|
516
434
|
if (images.length === 0) {
|
|
517
|
-
return /* @__PURE__ */
|
|
435
|
+
return /* @__PURE__ */ jsx4(
|
|
518
436
|
"div",
|
|
519
437
|
{
|
|
520
438
|
style: {
|
|
@@ -586,7 +504,7 @@ function ImageCarousel({
|
|
|
586
504
|
backgroundColor: isActive ? hexToRgba(resolvedDotColor.color, resolvedDotColor.opacity) : "rgba(255,255,255,0.5)"
|
|
587
505
|
});
|
|
588
506
|
return /* @__PURE__ */ jsxs2("div", { id, style: containerStyle, children: [
|
|
589
|
-
/* @__PURE__ */
|
|
507
|
+
/* @__PURE__ */ jsx4("div", { style: slideContainerStyle, children: images.map((image, index) => /* @__PURE__ */ jsx4("div", { style: slideStyle, children: /* @__PURE__ */ jsx4(
|
|
590
508
|
"img",
|
|
591
509
|
{
|
|
592
510
|
src: image.src,
|
|
@@ -596,7 +514,7 @@ function ImageCarousel({
|
|
|
596
514
|
}
|
|
597
515
|
) }, index)) }),
|
|
598
516
|
showArrows && images.length > 1 && /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
599
|
-
/* @__PURE__ */
|
|
517
|
+
/* @__PURE__ */ jsx4(
|
|
600
518
|
"button",
|
|
601
519
|
{
|
|
602
520
|
type: "button",
|
|
@@ -606,7 +524,7 @@ function ImageCarousel({
|
|
|
606
524
|
children: "\u2039"
|
|
607
525
|
}
|
|
608
526
|
),
|
|
609
|
-
/* @__PURE__ */
|
|
527
|
+
/* @__PURE__ */ jsx4(
|
|
610
528
|
"button",
|
|
611
529
|
{
|
|
612
530
|
type: "button",
|
|
@@ -617,7 +535,7 @@ function ImageCarousel({
|
|
|
617
535
|
}
|
|
618
536
|
)
|
|
619
537
|
] }),
|
|
620
|
-
showDots && images.length > 1 && /* @__PURE__ */
|
|
538
|
+
showDots && images.length > 1 && /* @__PURE__ */ jsx4("div", { style: dotsContainerStyle, children: images.map((_, index) => /* @__PURE__ */ jsx4(
|
|
621
539
|
"button",
|
|
622
540
|
{
|
|
623
541
|
type: "button",
|
|
@@ -631,7 +549,7 @@ function ImageCarousel({
|
|
|
631
549
|
}
|
|
632
550
|
|
|
633
551
|
// components/page/VideoEmbed.tsx
|
|
634
|
-
import { jsx as
|
|
552
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
635
553
|
var aspectRatioMap3 = {
|
|
636
554
|
"16:9": "56.25%",
|
|
637
555
|
// 9/16 * 100
|
|
@@ -652,7 +570,7 @@ var maxWidthMap = {
|
|
|
652
570
|
xl: "1000px",
|
|
653
571
|
full: "100%"
|
|
654
572
|
};
|
|
655
|
-
function
|
|
573
|
+
function isEntryBoundValue4(value) {
|
|
656
574
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
657
575
|
}
|
|
658
576
|
function parseVideoUrl(url) {
|
|
@@ -689,7 +607,7 @@ function VideoEmbed({
|
|
|
689
607
|
const resolvedUrl = (() => {
|
|
690
608
|
if (!url) return "";
|
|
691
609
|
if (typeof url === "string") return url;
|
|
692
|
-
if (
|
|
610
|
+
if (isEntryBoundValue4(url)) {
|
|
693
611
|
if (url.useEntry) {
|
|
694
612
|
return String(getEntryValue(url.entryName, url.fieldKey) ?? "");
|
|
695
613
|
}
|
|
@@ -698,7 +616,7 @@ function VideoEmbed({
|
|
|
698
616
|
return "";
|
|
699
617
|
})();
|
|
700
618
|
if (!resolvedUrl) {
|
|
701
|
-
return /* @__PURE__ */
|
|
619
|
+
return /* @__PURE__ */ jsx5(
|
|
702
620
|
"div",
|
|
703
621
|
{
|
|
704
622
|
style: {
|
|
@@ -743,7 +661,7 @@ function VideoEmbed({
|
|
|
743
661
|
height: "100%",
|
|
744
662
|
border: "none"
|
|
745
663
|
};
|
|
746
|
-
return /* @__PURE__ */
|
|
664
|
+
return /* @__PURE__ */ jsx5("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx5("div", { style: containerStyle, children: /* @__PURE__ */ jsx5(
|
|
747
665
|
"iframe",
|
|
748
666
|
{
|
|
749
667
|
src: finalUrl,
|
|
@@ -756,8 +674,8 @@ function VideoEmbed({
|
|
|
756
674
|
}
|
|
757
675
|
|
|
758
676
|
// components/page/Icon.tsx
|
|
759
|
-
import { jsx as
|
|
760
|
-
var
|
|
677
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
678
|
+
var sizeMap2 = {
|
|
761
679
|
sm: { size: "16px", strokeWidth: 2 },
|
|
762
680
|
md: { size: "24px", strokeWidth: 2 },
|
|
763
681
|
lg: { size: "32px", strokeWidth: 1.5 },
|
|
@@ -765,7 +683,7 @@ var sizeMap3 = {
|
|
|
765
683
|
"2xl": { size: "64px", strokeWidth: 1.5 }
|
|
766
684
|
};
|
|
767
685
|
var icons = {
|
|
768
|
-
check: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
686
|
+
check: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
769
687
|
"svg",
|
|
770
688
|
{
|
|
771
689
|
width: size,
|
|
@@ -776,7 +694,7 @@ var icons = {
|
|
|
776
694
|
strokeWidth,
|
|
777
695
|
strokeLinecap: "round",
|
|
778
696
|
strokeLinejoin: "round",
|
|
779
|
-
children: /* @__PURE__ */
|
|
697
|
+
children: /* @__PURE__ */ jsx6("polyline", { points: "20 6 9 17 4 12" })
|
|
780
698
|
}
|
|
781
699
|
),
|
|
782
700
|
x: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -791,12 +709,12 @@ var icons = {
|
|
|
791
709
|
strokeLinecap: "round",
|
|
792
710
|
strokeLinejoin: "round",
|
|
793
711
|
children: [
|
|
794
|
-
/* @__PURE__ */
|
|
795
|
-
/* @__PURE__ */
|
|
712
|
+
/* @__PURE__ */ jsx6("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
713
|
+
/* @__PURE__ */ jsx6("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
796
714
|
]
|
|
797
715
|
}
|
|
798
716
|
),
|
|
799
|
-
star: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
717
|
+
star: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
800
718
|
"svg",
|
|
801
719
|
{
|
|
802
720
|
width: size,
|
|
@@ -807,10 +725,10 @@ var icons = {
|
|
|
807
725
|
strokeWidth,
|
|
808
726
|
strokeLinecap: "round",
|
|
809
727
|
strokeLinejoin: "round",
|
|
810
|
-
children: /* @__PURE__ */
|
|
728
|
+
children: /* @__PURE__ */ jsx6("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" })
|
|
811
729
|
}
|
|
812
730
|
),
|
|
813
|
-
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
731
|
+
heart: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
814
732
|
"svg",
|
|
815
733
|
{
|
|
816
734
|
width: size,
|
|
@@ -821,7 +739,7 @@ var icons = {
|
|
|
821
739
|
strokeWidth,
|
|
822
740
|
strokeLinecap: "round",
|
|
823
741
|
strokeLinejoin: "round",
|
|
824
|
-
children: /* @__PURE__ */
|
|
742
|
+
children: /* @__PURE__ */ jsx6("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" })
|
|
825
743
|
}
|
|
826
744
|
),
|
|
827
745
|
arrowRight: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -836,8 +754,8 @@ var icons = {
|
|
|
836
754
|
strokeLinecap: "round",
|
|
837
755
|
strokeLinejoin: "round",
|
|
838
756
|
children: [
|
|
839
|
-
/* @__PURE__ */
|
|
840
|
-
/* @__PURE__ */
|
|
757
|
+
/* @__PURE__ */ jsx6("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
758
|
+
/* @__PURE__ */ jsx6("polyline", { points: "12 5 19 12 12 19" })
|
|
841
759
|
]
|
|
842
760
|
}
|
|
843
761
|
),
|
|
@@ -853,8 +771,8 @@ var icons = {
|
|
|
853
771
|
strokeLinecap: "round",
|
|
854
772
|
strokeLinejoin: "round",
|
|
855
773
|
children: [
|
|
856
|
-
/* @__PURE__ */
|
|
857
|
-
/* @__PURE__ */
|
|
774
|
+
/* @__PURE__ */ jsx6("line", { x1: "19", y1: "12", x2: "5", y2: "12" }),
|
|
775
|
+
/* @__PURE__ */ jsx6("polyline", { points: "12 19 5 12 12 5" })
|
|
858
776
|
]
|
|
859
777
|
}
|
|
860
778
|
),
|
|
@@ -870,12 +788,12 @@ var icons = {
|
|
|
870
788
|
strokeLinecap: "round",
|
|
871
789
|
strokeLinejoin: "round",
|
|
872
790
|
children: [
|
|
873
|
-
/* @__PURE__ */
|
|
874
|
-
/* @__PURE__ */
|
|
791
|
+
/* @__PURE__ */ jsx6("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" }),
|
|
792
|
+
/* @__PURE__ */ jsx6("polyline", { points: "22,6 12,13 2,6" })
|
|
875
793
|
]
|
|
876
794
|
}
|
|
877
795
|
),
|
|
878
|
-
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
796
|
+
phone: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
879
797
|
"svg",
|
|
880
798
|
{
|
|
881
799
|
width: size,
|
|
@@ -886,7 +804,7 @@ var icons = {
|
|
|
886
804
|
strokeWidth,
|
|
887
805
|
strokeLinecap: "round",
|
|
888
806
|
strokeLinejoin: "round",
|
|
889
|
-
children: /* @__PURE__ */
|
|
807
|
+
children: /* @__PURE__ */ jsx6("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" })
|
|
890
808
|
}
|
|
891
809
|
),
|
|
892
810
|
mapPin: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -901,12 +819,12 @@ var icons = {
|
|
|
901
819
|
strokeLinecap: "round",
|
|
902
820
|
strokeLinejoin: "round",
|
|
903
821
|
children: [
|
|
904
|
-
/* @__PURE__ */
|
|
905
|
-
/* @__PURE__ */
|
|
822
|
+
/* @__PURE__ */ jsx6("path", { d: "M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z" }),
|
|
823
|
+
/* @__PURE__ */ jsx6("circle", { cx: "12", cy: "10", r: "3" })
|
|
906
824
|
]
|
|
907
825
|
}
|
|
908
826
|
),
|
|
909
|
-
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
827
|
+
zap: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
910
828
|
"svg",
|
|
911
829
|
{
|
|
912
830
|
width: size,
|
|
@@ -917,10 +835,10 @@ var icons = {
|
|
|
917
835
|
strokeWidth,
|
|
918
836
|
strokeLinecap: "round",
|
|
919
837
|
strokeLinejoin: "round",
|
|
920
|
-
children: /* @__PURE__ */
|
|
838
|
+
children: /* @__PURE__ */ jsx6("polygon", { points: "13 2 3 14 12 14 11 22 21 10 12 10 13 2" })
|
|
921
839
|
}
|
|
922
840
|
),
|
|
923
|
-
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */
|
|
841
|
+
shield: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsx6(
|
|
924
842
|
"svg",
|
|
925
843
|
{
|
|
926
844
|
width: size,
|
|
@@ -931,7 +849,7 @@ var icons = {
|
|
|
931
849
|
strokeWidth,
|
|
932
850
|
strokeLinecap: "round",
|
|
933
851
|
strokeLinejoin: "round",
|
|
934
|
-
children: /* @__PURE__ */
|
|
852
|
+
children: /* @__PURE__ */ jsx6("path", { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" })
|
|
935
853
|
}
|
|
936
854
|
),
|
|
937
855
|
users: ({ size, color, strokeWidth }) => /* @__PURE__ */ jsxs3(
|
|
@@ -946,15 +864,15 @@ var icons = {
|
|
|
946
864
|
strokeLinecap: "round",
|
|
947
865
|
strokeLinejoin: "round",
|
|
948
866
|
children: [
|
|
949
|
-
/* @__PURE__ */
|
|
950
|
-
/* @__PURE__ */
|
|
951
|
-
/* @__PURE__ */
|
|
952
|
-
/* @__PURE__ */
|
|
867
|
+
/* @__PURE__ */ jsx6("path", { d: "M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" }),
|
|
868
|
+
/* @__PURE__ */ jsx6("circle", { cx: "9", cy: "7", r: "4" }),
|
|
869
|
+
/* @__PURE__ */ jsx6("path", { d: "M23 21v-2a4 4 0 0 0-3-3.87" }),
|
|
870
|
+
/* @__PURE__ */ jsx6("path", { d: "M16 3.13a4 4 0 0 1 0 7.75" })
|
|
953
871
|
]
|
|
954
872
|
}
|
|
955
873
|
)
|
|
956
874
|
};
|
|
957
|
-
function
|
|
875
|
+
function isThemeableValue5(value) {
|
|
958
876
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
959
877
|
}
|
|
960
878
|
function Icon({
|
|
@@ -968,20 +886,20 @@ function Icon({
|
|
|
968
886
|
const resolvedColor = (() => {
|
|
969
887
|
if (!color) return resolveColor2("primary");
|
|
970
888
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
971
|
-
if (
|
|
889
|
+
if (isThemeableValue5(color)) {
|
|
972
890
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
973
891
|
}
|
|
974
892
|
if ("color" in color) return color;
|
|
975
893
|
return resolveColor2("primary");
|
|
976
894
|
})();
|
|
977
895
|
const IconComponent = icons[name.toLowerCase()] || icons.check;
|
|
978
|
-
const { size: iconSize, strokeWidth } =
|
|
896
|
+
const { size: iconSize, strokeWidth } = sizeMap2[size];
|
|
979
897
|
const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
|
|
980
898
|
const wrapperStyle = {
|
|
981
899
|
display: "flex",
|
|
982
900
|
justifyContent: align === "left" ? "flex-start" : align === "right" ? "flex-end" : "center"
|
|
983
901
|
};
|
|
984
|
-
return /* @__PURE__ */
|
|
902
|
+
return /* @__PURE__ */ jsx6("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx6(
|
|
985
903
|
IconComponent,
|
|
986
904
|
{
|
|
987
905
|
size: iconSize,
|
|
@@ -993,14 +911,14 @@ function Icon({
|
|
|
993
911
|
var availableIcons = Object.keys(icons);
|
|
994
912
|
|
|
995
913
|
// components/page/Section.tsx
|
|
996
|
-
import { jsx as
|
|
997
|
-
function
|
|
914
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
915
|
+
function isThemeableValue6(value) {
|
|
998
916
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
999
917
|
}
|
|
1000
918
|
function resolveBackgroundColor(bg, resolveColor2) {
|
|
1001
919
|
if (!bg) return void 0;
|
|
1002
920
|
if (typeof bg === "string") return bg;
|
|
1003
|
-
if (
|
|
921
|
+
if (isThemeableValue6(bg)) {
|
|
1004
922
|
if (bg.useTheme) {
|
|
1005
923
|
const themeColor = resolveColor2(bg.themeKey);
|
|
1006
924
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -1041,7 +959,7 @@ function Section({
|
|
|
1041
959
|
}) {
|
|
1042
960
|
const { resolveColor: resolveColor2 } = useTheme();
|
|
1043
961
|
const DropZone = puck?.renderDropZone;
|
|
1044
|
-
return /* @__PURE__ */
|
|
962
|
+
return /* @__PURE__ */ jsx7(
|
|
1045
963
|
"section",
|
|
1046
964
|
{
|
|
1047
965
|
id: anchorLink,
|
|
@@ -1056,13 +974,13 @@ function Section({
|
|
|
1056
974
|
boxShadow: getShadowCSS(shadow),
|
|
1057
975
|
borderRadius: `${borderRadius}px`
|
|
1058
976
|
},
|
|
1059
|
-
children: /* @__PURE__ */
|
|
977
|
+
children: /* @__PURE__ */ jsx7("div", { className: "mx-auto w-full", style: { maxWidth: contentMaxWidth }, children: DropZone && /* @__PURE__ */ jsx7(DropZone, { zone: "content" }) })
|
|
1060
978
|
}
|
|
1061
979
|
);
|
|
1062
980
|
}
|
|
1063
981
|
|
|
1064
982
|
// components/page/Container.tsx
|
|
1065
|
-
import { jsx as
|
|
983
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
1066
984
|
var maxWidthMap2 = {
|
|
1067
985
|
sm: "640px",
|
|
1068
986
|
md: "768px",
|
|
@@ -1078,7 +996,7 @@ var paddingMap = {
|
|
|
1078
996
|
lg: "32px",
|
|
1079
997
|
xl: "48px"
|
|
1080
998
|
};
|
|
1081
|
-
function
|
|
999
|
+
function isThemeableValue7(value) {
|
|
1082
1000
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1083
1001
|
}
|
|
1084
1002
|
function Container({
|
|
@@ -1097,7 +1015,7 @@ function Container({
|
|
|
1097
1015
|
if (!backgroundColor) return null;
|
|
1098
1016
|
if (typeof backgroundColor === "string")
|
|
1099
1017
|
return { color: backgroundColor, opacity: 100 };
|
|
1100
|
-
if (
|
|
1018
|
+
if (isThemeableValue7(backgroundColor)) {
|
|
1101
1019
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1102
1020
|
}
|
|
1103
1021
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1116,11 +1034,11 @@ function Container({
|
|
|
1116
1034
|
backgroundColor: resolvedBgColor ? hexToRgba(resolvedBgColor.color, resolvedBgColor.opacity) : void 0,
|
|
1117
1035
|
width: "100%"
|
|
1118
1036
|
};
|
|
1119
|
-
return /* @__PURE__ */
|
|
1037
|
+
return /* @__PURE__ */ jsx8("div", { id, style, children: DropZone && /* @__PURE__ */ jsx8(DropZone, { zone: "container-content" }) });
|
|
1120
1038
|
}
|
|
1121
1039
|
|
|
1122
1040
|
// components/page/Columns.tsx
|
|
1123
|
-
import { jsx as
|
|
1041
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
1124
1042
|
var gapMap = {
|
|
1125
1043
|
none: "0",
|
|
1126
1044
|
sm: "16px",
|
|
@@ -1149,11 +1067,11 @@ function Columns({
|
|
|
1149
1067
|
gap: gapMap[gap],
|
|
1150
1068
|
alignItems: alignMap[verticalAlign]
|
|
1151
1069
|
};
|
|
1152
|
-
return /* @__PURE__ */
|
|
1070
|
+
return /* @__PURE__ */ jsx9("div", { id, style: containerStyle, children: Array.from({ length: columns }).map((_, index) => /* @__PURE__ */ jsx9("div", { style: { minWidth: 0 }, children: DropZone && /* @__PURE__ */ jsx9(DropZone, { zone: `column-${index}` }) }, index)) });
|
|
1153
1071
|
}
|
|
1154
1072
|
|
|
1155
1073
|
// components/page/Card.tsx
|
|
1156
|
-
import { jsx as
|
|
1074
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
1157
1075
|
var borderWidthMap = {
|
|
1158
1076
|
none: "0",
|
|
1159
1077
|
thin: "1px",
|
|
@@ -1181,7 +1099,7 @@ var paddingMap2 = {
|
|
|
1181
1099
|
lg: "32px",
|
|
1182
1100
|
xl: "48px"
|
|
1183
1101
|
};
|
|
1184
|
-
function
|
|
1102
|
+
function isThemeableValue8(value) {
|
|
1185
1103
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1186
1104
|
}
|
|
1187
1105
|
function Card({
|
|
@@ -1200,7 +1118,7 @@ function Card({
|
|
|
1200
1118
|
if (!backgroundColor) return resolveColor2("background");
|
|
1201
1119
|
if (typeof backgroundColor === "string")
|
|
1202
1120
|
return { color: backgroundColor, opacity: 100 };
|
|
1203
|
-
if (
|
|
1121
|
+
if (isThemeableValue8(backgroundColor)) {
|
|
1204
1122
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1205
1123
|
}
|
|
1206
1124
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1210,7 +1128,7 @@ function Card({
|
|
|
1210
1128
|
if (!borderColor) return resolveColor2("muted");
|
|
1211
1129
|
if (typeof borderColor === "string")
|
|
1212
1130
|
return { color: borderColor, opacity: 100 };
|
|
1213
|
-
if (
|
|
1131
|
+
if (isThemeableValue8(borderColor)) {
|
|
1214
1132
|
return borderColor.useTheme ? resolveColor2(borderColor.themeKey) : borderColor.value;
|
|
1215
1133
|
}
|
|
1216
1134
|
if ("color" in borderColor) return borderColor;
|
|
@@ -1223,11 +1141,11 @@ function Card({
|
|
|
1223
1141
|
boxShadow: shadowMap2[shadow],
|
|
1224
1142
|
padding: paddingMap2[padding]
|
|
1225
1143
|
};
|
|
1226
|
-
return /* @__PURE__ */
|
|
1144
|
+
return /* @__PURE__ */ jsx10("div", { id, style, children: DropZone && /* @__PURE__ */ jsx10(DropZone, { zone: "card-content" }) });
|
|
1227
1145
|
}
|
|
1228
1146
|
|
|
1229
1147
|
// components/page/Divider.tsx
|
|
1230
|
-
import { jsx as
|
|
1148
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1231
1149
|
var thicknessMap = {
|
|
1232
1150
|
thin: "1px",
|
|
1233
1151
|
medium: "2px",
|
|
@@ -1245,7 +1163,7 @@ var spacingMap = {
|
|
|
1245
1163
|
lg: "32px",
|
|
1246
1164
|
xl: "48px"
|
|
1247
1165
|
};
|
|
1248
|
-
function
|
|
1166
|
+
function isThemeableValue9(value) {
|
|
1249
1167
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1250
1168
|
}
|
|
1251
1169
|
function Divider({
|
|
@@ -1261,7 +1179,7 @@ function Divider({
|
|
|
1261
1179
|
const resolvedColor = (() => {
|
|
1262
1180
|
if (!color) return resolveColor2("muted");
|
|
1263
1181
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
1264
|
-
if (
|
|
1182
|
+
if (isThemeableValue9(color)) {
|
|
1265
1183
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
1266
1184
|
}
|
|
1267
1185
|
if ("color" in color) return color;
|
|
@@ -1278,12 +1196,12 @@ function Divider({
|
|
|
1278
1196
|
borderTop: `${thicknessMap[thickness]} ${lineStyle} ${hexToRgba(resolvedColor.color, resolvedColor.opacity)}`,
|
|
1279
1197
|
margin: 0
|
|
1280
1198
|
};
|
|
1281
|
-
return /* @__PURE__ */
|
|
1199
|
+
return /* @__PURE__ */ jsx11("div", { id, style: wrapperStyle, children: /* @__PURE__ */ jsx11("hr", { style: hrStyle }) });
|
|
1282
1200
|
}
|
|
1283
1201
|
|
|
1284
1202
|
// components/page/Spacer.tsx
|
|
1285
|
-
import { jsx as
|
|
1286
|
-
var
|
|
1203
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1204
|
+
var sizeMap3 = {
|
|
1287
1205
|
xs: "8px",
|
|
1288
1206
|
sm: "16px",
|
|
1289
1207
|
md: "24px",
|
|
@@ -1294,36 +1212,36 @@ var sizeMap4 = {
|
|
|
1294
1212
|
};
|
|
1295
1213
|
function Spacer({ size = "md", id }) {
|
|
1296
1214
|
const style = {
|
|
1297
|
-
height:
|
|
1215
|
+
height: sizeMap3[size],
|
|
1298
1216
|
width: "100%"
|
|
1299
1217
|
};
|
|
1300
|
-
return /* @__PURE__ */
|
|
1218
|
+
return /* @__PURE__ */ jsx12("div", { id, style, "aria-hidden": "true" });
|
|
1301
1219
|
}
|
|
1302
1220
|
|
|
1303
1221
|
// components/page/TextBlock.tsx
|
|
1304
|
-
import { jsx as
|
|
1222
|
+
import { jsx as jsx13, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1305
1223
|
var alignmentMap = {
|
|
1306
1224
|
left: "text-left",
|
|
1307
1225
|
center: "text-center",
|
|
1308
1226
|
right: "text-right"
|
|
1309
1227
|
};
|
|
1310
|
-
var
|
|
1228
|
+
var sizeMap4 = {
|
|
1311
1229
|
small: "text-2xl",
|
|
1312
1230
|
"medium-small": "text-3xl",
|
|
1313
1231
|
medium: "text-4xl",
|
|
1314
1232
|
large: "text-5xl",
|
|
1315
1233
|
xlarge: "text-6xl"
|
|
1316
1234
|
};
|
|
1317
|
-
function
|
|
1235
|
+
function isThemeableValue10(value) {
|
|
1318
1236
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1319
1237
|
}
|
|
1320
|
-
function
|
|
1238
|
+
function isEntryBoundValue5(value) {
|
|
1321
1239
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1322
1240
|
}
|
|
1323
1241
|
function resolveColor(color, resolveThemeColor) {
|
|
1324
1242
|
if (!color) return "#000000";
|
|
1325
1243
|
if (typeof color === "string") return color;
|
|
1326
|
-
if (
|
|
1244
|
+
if (isThemeableValue10(color)) {
|
|
1327
1245
|
if (color.useTheme) {
|
|
1328
1246
|
const themeColor = resolveThemeColor(color.themeKey);
|
|
1329
1247
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -1338,7 +1256,7 @@ function resolveColor(color, resolveThemeColor) {
|
|
|
1338
1256
|
function resolveColorHex(color, resolveThemeColor) {
|
|
1339
1257
|
if (!color) return "#000000";
|
|
1340
1258
|
if (typeof color === "string") return color;
|
|
1341
|
-
if (
|
|
1259
|
+
if (isThemeableValue10(color)) {
|
|
1342
1260
|
if (color.useTheme) {
|
|
1343
1261
|
return resolveThemeColor(color.themeKey).color;
|
|
1344
1262
|
}
|
|
@@ -1367,7 +1285,7 @@ function TextBlock({
|
|
|
1367
1285
|
const resolveText = (value) => {
|
|
1368
1286
|
if (!value) return void 0;
|
|
1369
1287
|
if (typeof value === "string") return value;
|
|
1370
|
-
if (
|
|
1288
|
+
if (isEntryBoundValue5(value)) {
|
|
1371
1289
|
if (value.useEntry) {
|
|
1372
1290
|
const entryVal = getEntryValue(value.entryName, value.fieldKey);
|
|
1373
1291
|
return entryVal != null ? String(entryVal) : void 0;
|
|
@@ -1393,16 +1311,16 @@ function TextBlock({
|
|
|
1393
1311
|
id: anchorLink,
|
|
1394
1312
|
className: cn("flex flex-col gap-4", alignmentMap[alignment]),
|
|
1395
1313
|
children: [
|
|
1396
|
-
resolvedTitle && /* @__PURE__ */
|
|
1314
|
+
resolvedTitle && /* @__PURE__ */ jsx13(
|
|
1397
1315
|
"h2",
|
|
1398
1316
|
{
|
|
1399
|
-
className: cn("font-bold",
|
|
1317
|
+
className: cn("font-bold", sizeMap4[textSize]),
|
|
1400
1318
|
style: gradientStyle,
|
|
1401
1319
|
children: resolvedTitle
|
|
1402
1320
|
}
|
|
1403
1321
|
),
|
|
1404
|
-
resolvedSubtitle && /* @__PURE__ */
|
|
1405
|
-
resolvedBody && /* @__PURE__ */
|
|
1322
|
+
resolvedSubtitle && /* @__PURE__ */ jsx13("p", { className: "text-xl", style: { color: subtitleColorValue }, children: resolvedSubtitle }),
|
|
1323
|
+
resolvedBody && /* @__PURE__ */ jsx13(
|
|
1406
1324
|
"div",
|
|
1407
1325
|
{
|
|
1408
1326
|
className: "prose max-w-none",
|
|
@@ -1416,7 +1334,7 @@ function TextBlock({
|
|
|
1416
1334
|
}
|
|
1417
1335
|
|
|
1418
1336
|
// components/page/CustomImage.tsx
|
|
1419
|
-
import { jsx as
|
|
1337
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1420
1338
|
var alignmentMap2 = {
|
|
1421
1339
|
left: "mr-auto",
|
|
1422
1340
|
center: "mx-auto",
|
|
@@ -1430,9 +1348,9 @@ function CustomImage({
|
|
|
1430
1348
|
fitContent = false
|
|
1431
1349
|
}) {
|
|
1432
1350
|
if (!image) {
|
|
1433
|
-
return /* @__PURE__ */
|
|
1351
|
+
return /* @__PURE__ */ jsx14("div", { className: "flex h-48 w-full items-center justify-center bg-gray-200 text-gray-400", children: "No image" });
|
|
1434
1352
|
}
|
|
1435
|
-
return /* @__PURE__ */
|
|
1353
|
+
return /* @__PURE__ */ jsx14(
|
|
1436
1354
|
"img",
|
|
1437
1355
|
{
|
|
1438
1356
|
src: image,
|
|
@@ -1449,8 +1367,8 @@ function CustomImage({
|
|
|
1449
1367
|
|
|
1450
1368
|
// components/page/FeaturesList.tsx
|
|
1451
1369
|
import { icons as icons2 } from "lucide-react";
|
|
1452
|
-
import { jsx as
|
|
1453
|
-
var
|
|
1370
|
+
import { jsx as jsx15, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1371
|
+
var sizeMap5 = {
|
|
1454
1372
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1455
1373
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1456
1374
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1462,12 +1380,12 @@ function FeaturesList({
|
|
|
1462
1380
|
iconColor = "#000000",
|
|
1463
1381
|
anchorLink
|
|
1464
1382
|
}) {
|
|
1465
|
-
const sizeConfig =
|
|
1383
|
+
const sizeConfig = sizeMap5[size];
|
|
1466
1384
|
const getIcon = (iconName) => {
|
|
1467
1385
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1468
1386
|
return icons2[formatted] || null;
|
|
1469
1387
|
};
|
|
1470
|
-
return /* @__PURE__ */
|
|
1388
|
+
return /* @__PURE__ */ jsx15(
|
|
1471
1389
|
"div",
|
|
1472
1390
|
{
|
|
1473
1391
|
id: anchorLink,
|
|
@@ -1487,7 +1405,7 @@ function FeaturesList({
|
|
|
1487
1405
|
align === "right" && "flex-row-reverse"
|
|
1488
1406
|
),
|
|
1489
1407
|
children: [
|
|
1490
|
-
feature.image ? /* @__PURE__ */
|
|
1408
|
+
feature.image ? /* @__PURE__ */ jsx15(
|
|
1491
1409
|
"img",
|
|
1492
1410
|
{
|
|
1493
1411
|
src: feature.image,
|
|
@@ -1495,7 +1413,7 @@ function FeaturesList({
|
|
|
1495
1413
|
className: "object-contain",
|
|
1496
1414
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1497
1415
|
}
|
|
1498
|
-
) : IconComponent ? /* @__PURE__ */
|
|
1416
|
+
) : IconComponent ? /* @__PURE__ */ jsx15(
|
|
1499
1417
|
IconComponent,
|
|
1500
1418
|
{
|
|
1501
1419
|
size: sizeConfig.icon,
|
|
@@ -1504,8 +1422,8 @@ function FeaturesList({
|
|
|
1504
1422
|
}
|
|
1505
1423
|
) : null,
|
|
1506
1424
|
/* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-1", children: [
|
|
1507
|
-
feature.title && /* @__PURE__ */
|
|
1508
|
-
feature.description && /* @__PURE__ */
|
|
1425
|
+
feature.title && /* @__PURE__ */ jsx15("h3", { className: cn("font-semibold", sizeConfig.title), children: feature.title }),
|
|
1426
|
+
feature.description && /* @__PURE__ */ jsx15("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1509
1427
|
] })
|
|
1510
1428
|
]
|
|
1511
1429
|
},
|
|
@@ -1518,8 +1436,8 @@ function FeaturesList({
|
|
|
1518
1436
|
|
|
1519
1437
|
// components/page/FeatureGrid.tsx
|
|
1520
1438
|
import { icons as icons3 } from "lucide-react";
|
|
1521
|
-
import { jsx as
|
|
1522
|
-
var
|
|
1439
|
+
import { jsx as jsx16, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1440
|
+
var sizeMap6 = {
|
|
1523
1441
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1524
1442
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1525
1443
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1535,7 +1453,7 @@ function FeatureGrid({
|
|
|
1535
1453
|
textColor = "#000000",
|
|
1536
1454
|
anchorLink
|
|
1537
1455
|
}) {
|
|
1538
|
-
const sizeConfig =
|
|
1456
|
+
const sizeConfig = sizeMap6[size];
|
|
1539
1457
|
const getIcon = (iconName) => {
|
|
1540
1458
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1541
1459
|
return icons3[formatted] || null;
|
|
@@ -1555,12 +1473,12 @@ function FeatureGrid({
|
|
|
1555
1473
|
align === "right" && "text-right"
|
|
1556
1474
|
),
|
|
1557
1475
|
children: [
|
|
1558
|
-
heading && /* @__PURE__ */
|
|
1559
|
-
description && /* @__PURE__ */
|
|
1476
|
+
heading && /* @__PURE__ */ jsx16("h2", { className: "text-3xl font-bold", style: { color: textColor }, children: heading }),
|
|
1477
|
+
description && /* @__PURE__ */ jsx16("p", { className: "text-gray-600", children: description })
|
|
1560
1478
|
]
|
|
1561
1479
|
}
|
|
1562
1480
|
),
|
|
1563
|
-
/* @__PURE__ */
|
|
1481
|
+
/* @__PURE__ */ jsx16("div", { className: cn("grid gap-6", columnClass[columns]), children: features.map((feature, index) => {
|
|
1564
1482
|
const IconComponent = feature.icon ? getIcon(feature.icon) : null;
|
|
1565
1483
|
return /* @__PURE__ */ jsxs6(
|
|
1566
1484
|
"div",
|
|
@@ -1570,7 +1488,7 @@ function FeatureGrid({
|
|
|
1570
1488
|
align === "center" && "items-center text-center"
|
|
1571
1489
|
),
|
|
1572
1490
|
children: [
|
|
1573
|
-
feature.image ? /* @__PURE__ */
|
|
1491
|
+
feature.image ? /* @__PURE__ */ jsx16(
|
|
1574
1492
|
"img",
|
|
1575
1493
|
{
|
|
1576
1494
|
src: feature.image,
|
|
@@ -1578,14 +1496,14 @@ function FeatureGrid({
|
|
|
1578
1496
|
className: "object-contain",
|
|
1579
1497
|
style: { width: sizeConfig.icon, height: sizeConfig.icon }
|
|
1580
1498
|
}
|
|
1581
|
-
) : IconComponent ? /* @__PURE__ */
|
|
1499
|
+
) : IconComponent ? /* @__PURE__ */ jsx16(
|
|
1582
1500
|
IconComponent,
|
|
1583
1501
|
{
|
|
1584
1502
|
size: sizeConfig.icon,
|
|
1585
1503
|
style: { color: iconColor }
|
|
1586
1504
|
}
|
|
1587
1505
|
) : null,
|
|
1588
|
-
feature.title && /* @__PURE__ */
|
|
1506
|
+
feature.title && /* @__PURE__ */ jsx16(
|
|
1589
1507
|
"h3",
|
|
1590
1508
|
{
|
|
1591
1509
|
className: cn("font-semibold", sizeConfig.title),
|
|
@@ -1593,7 +1511,7 @@ function FeatureGrid({
|
|
|
1593
1511
|
children: feature.title
|
|
1594
1512
|
}
|
|
1595
1513
|
),
|
|
1596
|
-
feature.description && /* @__PURE__ */
|
|
1514
|
+
feature.description && /* @__PURE__ */ jsx16("p", { className: cn("text-gray-600", sizeConfig.desc), children: feature.description })
|
|
1597
1515
|
]
|
|
1598
1516
|
},
|
|
1599
1517
|
index
|
|
@@ -1604,7 +1522,7 @@ function FeatureGrid({
|
|
|
1604
1522
|
|
|
1605
1523
|
// components/page/Footer.tsx
|
|
1606
1524
|
import { Facebook, Instagram, Twitter } from "lucide-react";
|
|
1607
|
-
import { jsx as
|
|
1525
|
+
import { jsx as jsx17, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1608
1526
|
function Footer({
|
|
1609
1527
|
logo,
|
|
1610
1528
|
copyright = "\xA9 2024 Company. All rights reserved.",
|
|
@@ -1639,15 +1557,15 @@ function Footer({
|
|
|
1639
1557
|
].filter(
|
|
1640
1558
|
(link) => !!link.url
|
|
1641
1559
|
);
|
|
1642
|
-
return /* @__PURE__ */
|
|
1560
|
+
return /* @__PURE__ */ jsx17(
|
|
1643
1561
|
"footer",
|
|
1644
1562
|
{
|
|
1645
1563
|
className: "w-full px-6 py-8",
|
|
1646
1564
|
style: { backgroundColor, color: textColor },
|
|
1647
1565
|
children: /* @__PURE__ */ jsxs7("div", { className: "mx-auto flex max-w-7xl flex-col items-center justify-between gap-6 md:flex-row", children: [
|
|
1648
|
-
/* @__PURE__ */
|
|
1649
|
-
DropZone && /* @__PURE__ */
|
|
1650
|
-
/* @__PURE__ */
|
|
1566
|
+
/* @__PURE__ */ jsx17("div", { className: "flex items-center gap-4", children: logo && /* @__PURE__ */ jsx17("img", { src: logo, alt: "Logo", className: "h-8" }) }),
|
|
1567
|
+
DropZone && /* @__PURE__ */ jsx17(DropZone, { zone: "footer-content" }),
|
|
1568
|
+
/* @__PURE__ */ jsx17("div", { className: "flex items-center gap-4", children: socialLinks.map(({ url, Icon: Icon3 }, index) => /* @__PURE__ */ jsx17(
|
|
1651
1569
|
"a",
|
|
1652
1570
|
{
|
|
1653
1571
|
href: url,
|
|
@@ -1655,11 +1573,11 @@ function Footer({
|
|
|
1655
1573
|
rel: "noopener noreferrer",
|
|
1656
1574
|
className: "transition-opacity hover:opacity-80",
|
|
1657
1575
|
onClick: () => handleSocialClick(url),
|
|
1658
|
-
children: /* @__PURE__ */
|
|
1576
|
+
children: /* @__PURE__ */ jsx17(Icon3, { size: 24, style: { color: textColor } })
|
|
1659
1577
|
},
|
|
1660
1578
|
index
|
|
1661
1579
|
)) }),
|
|
1662
|
-
copyright && /* @__PURE__ */
|
|
1580
|
+
copyright && /* @__PURE__ */ jsx17("p", { className: "text-sm opacity-80", children: copyright })
|
|
1663
1581
|
] })
|
|
1664
1582
|
}
|
|
1665
1583
|
);
|
|
@@ -1668,7 +1586,7 @@ function Footer({
|
|
|
1668
1586
|
// components/page/Topbar.tsx
|
|
1669
1587
|
import { useState as useState2 } from "react";
|
|
1670
1588
|
import { Menu, X } from "lucide-react";
|
|
1671
|
-
import { jsx as
|
|
1589
|
+
import { jsx as jsx18, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1672
1590
|
function Topbar({
|
|
1673
1591
|
logo,
|
|
1674
1592
|
logoUrl = "/",
|
|
@@ -1701,7 +1619,7 @@ function Topbar({
|
|
|
1701
1619
|
const renderLink = (item, index) => {
|
|
1702
1620
|
const className = "hover:opacity-80 transition-opacity";
|
|
1703
1621
|
if (item.linkType === "external") {
|
|
1704
|
-
return /* @__PURE__ */
|
|
1622
|
+
return /* @__PURE__ */ jsx18(
|
|
1705
1623
|
"a",
|
|
1706
1624
|
{
|
|
1707
1625
|
href: item.url,
|
|
@@ -1715,7 +1633,7 @@ function Topbar({
|
|
|
1715
1633
|
);
|
|
1716
1634
|
}
|
|
1717
1635
|
if (item.linkType === "scrollTo") {
|
|
1718
|
-
return /* @__PURE__ */
|
|
1636
|
+
return /* @__PURE__ */ jsx18(
|
|
1719
1637
|
"a",
|
|
1720
1638
|
{
|
|
1721
1639
|
href: item.url,
|
|
@@ -1726,7 +1644,7 @@ function Topbar({
|
|
|
1726
1644
|
index
|
|
1727
1645
|
);
|
|
1728
1646
|
}
|
|
1729
|
-
return /* @__PURE__ */
|
|
1647
|
+
return /* @__PURE__ */ jsx18(
|
|
1730
1648
|
"a",
|
|
1731
1649
|
{
|
|
1732
1650
|
href: item.url,
|
|
@@ -1749,7 +1667,7 @@ function Topbar({
|
|
|
1749
1667
|
className: "mx-auto flex items-center justify-between",
|
|
1750
1668
|
style: { maxWidth },
|
|
1751
1669
|
children: [
|
|
1752
|
-
/* @__PURE__ */
|
|
1670
|
+
/* @__PURE__ */ jsx18(
|
|
1753
1671
|
"a",
|
|
1754
1672
|
{
|
|
1755
1673
|
href: logoUrl,
|
|
@@ -1760,14 +1678,14 @@ function Topbar({
|
|
|
1760
1678
|
linkType: "internal",
|
|
1761
1679
|
...utm
|
|
1762
1680
|
}),
|
|
1763
|
-
children: logo ? /* @__PURE__ */
|
|
1681
|
+
children: logo ? /* @__PURE__ */ jsx18("img", { src: logo, alt: "Logo", className: "h-8" }) : /* @__PURE__ */ jsx18("span", { className: "text-xl font-bold", children: "Logo" })
|
|
1764
1682
|
}
|
|
1765
1683
|
),
|
|
1766
1684
|
/* @__PURE__ */ jsxs8("div", { className: "hidden items-center gap-8 md:flex", children: [
|
|
1767
1685
|
navItems.map(renderLink),
|
|
1768
|
-
DropZone && /* @__PURE__ */
|
|
1686
|
+
DropZone && /* @__PURE__ */ jsx18(DropZone, { zone: "cta" })
|
|
1769
1687
|
] }),
|
|
1770
|
-
/* @__PURE__ */
|
|
1688
|
+
/* @__PURE__ */ jsx18("button", { className: "md:hidden", onClick: handleMobileMenuToggle, children: mobileMenuOpen ? /* @__PURE__ */ jsx18(X, { size: 24 }) : /* @__PURE__ */ jsx18(Menu, { size: 24 }) })
|
|
1771
1689
|
]
|
|
1772
1690
|
}
|
|
1773
1691
|
),
|
|
@@ -1778,7 +1696,7 @@ function Topbar({
|
|
|
1778
1696
|
style: { backgroundColor },
|
|
1779
1697
|
children: [
|
|
1780
1698
|
navItems.map(renderLink),
|
|
1781
|
-
DropZone && /* @__PURE__ */
|
|
1699
|
+
DropZone && /* @__PURE__ */ jsx18(DropZone, { zone: "cta" })
|
|
1782
1700
|
]
|
|
1783
1701
|
}
|
|
1784
1702
|
)
|
|
@@ -1790,19 +1708,19 @@ function Topbar({
|
|
|
1790
1708
|
// components/page/Popup.tsx
|
|
1791
1709
|
import { useState as useState3 } from "react";
|
|
1792
1710
|
import { icons as icons4, X as X2 } from "lucide-react";
|
|
1793
|
-
import { Fragment as Fragment2, jsx as
|
|
1711
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1794
1712
|
function Icon2({ name, ...props }) {
|
|
1795
1713
|
const formatted = name.charAt(0).toUpperCase() + name.slice(1);
|
|
1796
1714
|
const IconComponent = icons4[formatted];
|
|
1797
1715
|
if (!IconComponent) return null;
|
|
1798
|
-
return /* @__PURE__ */
|
|
1716
|
+
return /* @__PURE__ */ jsx19(IconComponent, { ...props });
|
|
1799
1717
|
}
|
|
1800
1718
|
var widthMap3 = {
|
|
1801
1719
|
small: "max-w-sm",
|
|
1802
1720
|
medium: "max-w-lg",
|
|
1803
1721
|
large: "max-w-2xl"
|
|
1804
1722
|
};
|
|
1805
|
-
var
|
|
1723
|
+
var sizeMap7 = {
|
|
1806
1724
|
small: "px-3 py-1.5 text-sm",
|
|
1807
1725
|
medium: "px-4 py-2 text-base",
|
|
1808
1726
|
large: "px-6 py-3 text-lg"
|
|
@@ -1833,7 +1751,7 @@ function Popup({
|
|
|
1833
1751
|
setIsOpen(false);
|
|
1834
1752
|
sendEvent("popup_close", { ctaText, ...utm });
|
|
1835
1753
|
};
|
|
1836
|
-
const trigger = textLink ? /* @__PURE__ */
|
|
1754
|
+
const trigger = textLink ? /* @__PURE__ */ jsx19(
|
|
1837
1755
|
"button",
|
|
1838
1756
|
{
|
|
1839
1757
|
onClick: handleOpen,
|
|
@@ -1847,19 +1765,19 @@ function Popup({
|
|
|
1847
1765
|
onClick: handleOpen,
|
|
1848
1766
|
className: cn(
|
|
1849
1767
|
"flex items-center gap-2 rounded-full font-medium",
|
|
1850
|
-
|
|
1768
|
+
sizeMap7[size]
|
|
1851
1769
|
),
|
|
1852
1770
|
style: { backgroundColor: buttonColor, color: textColor },
|
|
1853
1771
|
children: [
|
|
1854
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
1772
|
+
icon && iconPosition === "left" && /* @__PURE__ */ jsx19(Icon2, { name: icon, size: 18 }),
|
|
1855
1773
|
ctaText,
|
|
1856
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
1774
|
+
icon && iconPosition === "right" && /* @__PURE__ */ jsx19(Icon2, { name: icon, size: 18 })
|
|
1857
1775
|
]
|
|
1858
1776
|
}
|
|
1859
1777
|
);
|
|
1860
1778
|
return /* @__PURE__ */ jsxs9(Fragment2, { children: [
|
|
1861
1779
|
trigger,
|
|
1862
|
-
isOpen && /* @__PURE__ */
|
|
1780
|
+
isOpen && /* @__PURE__ */ jsx19(
|
|
1863
1781
|
"div",
|
|
1864
1782
|
{
|
|
1865
1783
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
|
|
@@ -1873,15 +1791,15 @@ function Popup({
|
|
|
1873
1791
|
),
|
|
1874
1792
|
onClick: (e) => e.stopPropagation(),
|
|
1875
1793
|
children: [
|
|
1876
|
-
/* @__PURE__ */
|
|
1794
|
+
/* @__PURE__ */ jsx19(
|
|
1877
1795
|
"button",
|
|
1878
1796
|
{
|
|
1879
1797
|
onClick: handleClose,
|
|
1880
1798
|
className: "absolute top-4 right-4 text-gray-500 hover:text-gray-700",
|
|
1881
|
-
children: /* @__PURE__ */
|
|
1799
|
+
children: /* @__PURE__ */ jsx19(X2, { size: 24 })
|
|
1882
1800
|
}
|
|
1883
1801
|
),
|
|
1884
|
-
puck && /* @__PURE__ */
|
|
1802
|
+
puck && /* @__PURE__ */ jsx19(puck.renderDropZone, { zone: "popup-content" })
|
|
1885
1803
|
]
|
|
1886
1804
|
}
|
|
1887
1805
|
)
|
|
@@ -1890,8 +1808,48 @@ function Popup({
|
|
|
1890
1808
|
] });
|
|
1891
1809
|
}
|
|
1892
1810
|
|
|
1811
|
+
// components/page/primitives/Heading.ts
|
|
1812
|
+
var headingSizeMap = {
|
|
1813
|
+
xs: "0.875rem",
|
|
1814
|
+
sm: "1rem",
|
|
1815
|
+
md: "1.25rem",
|
|
1816
|
+
lg: "1.5rem",
|
|
1817
|
+
xl: "2rem",
|
|
1818
|
+
"2xl": "2.5rem",
|
|
1819
|
+
"3xl": "3rem",
|
|
1820
|
+
"4xl": "4rem"
|
|
1821
|
+
};
|
|
1822
|
+
var headingWeightMap = {
|
|
1823
|
+
normal: 400,
|
|
1824
|
+
medium: 500,
|
|
1825
|
+
semibold: 600,
|
|
1826
|
+
bold: 700,
|
|
1827
|
+
extrabold: 800
|
|
1828
|
+
};
|
|
1829
|
+
var headingLetterSpacingMap = {
|
|
1830
|
+
tight: "-0.025em",
|
|
1831
|
+
normal: "0",
|
|
1832
|
+
wide: "0.05em"
|
|
1833
|
+
};
|
|
1834
|
+
var headingLineHeightMap = {
|
|
1835
|
+
tight: "1.1",
|
|
1836
|
+
normal: "1.4",
|
|
1837
|
+
relaxed: "1.6"
|
|
1838
|
+
};
|
|
1839
|
+
function getHeadingStyle(props) {
|
|
1840
|
+
return {
|
|
1841
|
+
fontSize: headingSizeMap[props.size],
|
|
1842
|
+
fontWeight: headingWeightMap[props.weight],
|
|
1843
|
+
color: props.color,
|
|
1844
|
+
textAlign: props.align,
|
|
1845
|
+
letterSpacing: headingLetterSpacingMap[props.letterSpacing],
|
|
1846
|
+
lineHeight: headingLineHeightMap[props.lineHeight],
|
|
1847
|
+
margin: 0
|
|
1848
|
+
};
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1893
1851
|
export {
|
|
1894
|
-
|
|
1852
|
+
getHeadingStyle,
|
|
1895
1853
|
Paragraph,
|
|
1896
1854
|
Button,
|
|
1897
1855
|
Image,
|