@mission-studio/puck 1.0.20 → 1.0.21
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-X6VGLL5Y.mjs → chunk-MWW5LYLN.mjs} +182 -222
- package/dist/{chunk-A2J2E524.mjs → chunk-WFLVAZV2.mjs} +67 -3
- package/dist/config/server.js +166 -181
- package/dist/config/server.mjs +50 -25
- package/dist/config-entry.js +53 -31
- package/dist/config-entry.mjs +5 -5
- package/dist/index.js +53 -31
- package/dist/index.mjs +5 -5
- package/dist/renderer.d.mts +9 -4
- package/dist/renderer.d.ts +9 -4
- package/dist/renderer.js +53 -31
- package/dist/renderer.mjs +5 -5
- package/package.json +1 -1
package/dist/config/server.js
CHANGED
|
@@ -91,9 +91,64 @@ function Heading({
|
|
|
91
91
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Tag, { id, style, children: resolvedText });
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
+
// components/page/primitives/Paragraph.ts
|
|
95
|
+
var paragraphSizeMap = {
|
|
96
|
+
sm: "0.875rem",
|
|
97
|
+
base: "1rem",
|
|
98
|
+
lg: "1.125rem",
|
|
99
|
+
xl: "1.25rem"
|
|
100
|
+
};
|
|
101
|
+
var paragraphWeightMap = {
|
|
102
|
+
normal: 400,
|
|
103
|
+
medium: 500,
|
|
104
|
+
semibold: 600
|
|
105
|
+
};
|
|
106
|
+
var paragraphLineHeightMap = {
|
|
107
|
+
tight: "1.4",
|
|
108
|
+
normal: "1.6",
|
|
109
|
+
relaxed: "1.75",
|
|
110
|
+
loose: "2"
|
|
111
|
+
};
|
|
112
|
+
function getParagraphStyle(props) {
|
|
113
|
+
return {
|
|
114
|
+
fontSize: paragraphSizeMap[props.size],
|
|
115
|
+
fontWeight: paragraphWeightMap[props.weight],
|
|
116
|
+
color: props.color,
|
|
117
|
+
textAlign: props.align,
|
|
118
|
+
lineHeight: paragraphLineHeightMap[props.lineHeight],
|
|
119
|
+
maxWidth: props.maxWidth || void 0,
|
|
120
|
+
margin: 0
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// components/page/astro/Paragraph.tsx
|
|
125
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
126
|
+
function Paragraph({
|
|
127
|
+
text,
|
|
128
|
+
size = "base",
|
|
129
|
+
weight = "normal",
|
|
130
|
+
color = "rgba(0, 0, 0, 1)",
|
|
131
|
+
align = "left",
|
|
132
|
+
lineHeight = "normal",
|
|
133
|
+
maxWidth,
|
|
134
|
+
id
|
|
135
|
+
}) {
|
|
136
|
+
const resolvedText = text || "";
|
|
137
|
+
const style = getParagraphStyle({
|
|
138
|
+
size,
|
|
139
|
+
weight,
|
|
140
|
+
color,
|
|
141
|
+
align,
|
|
142
|
+
lineHeight,
|
|
143
|
+
maxWidth
|
|
144
|
+
});
|
|
145
|
+
if (!resolvedText) return null;
|
|
146
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { id, style, children: resolvedText });
|
|
147
|
+
}
|
|
148
|
+
|
|
94
149
|
// entries/context.tsx
|
|
95
150
|
var import_react = require("react");
|
|
96
|
-
var
|
|
151
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
97
152
|
var EntriesContext = (0, import_react.createContext)(null);
|
|
98
153
|
function useEntries() {
|
|
99
154
|
const context = (0, import_react.useContext)(EntriesContext);
|
|
@@ -108,8 +163,71 @@ function useEntries() {
|
|
|
108
163
|
return context;
|
|
109
164
|
}
|
|
110
165
|
|
|
111
|
-
//
|
|
166
|
+
// hooks/useGtmEvent.ts
|
|
167
|
+
function useGtmEvent() {
|
|
168
|
+
return (eventName, data) => {
|
|
169
|
+
if (typeof window === "undefined") return;
|
|
170
|
+
if (typeof window.gtag === "function") {
|
|
171
|
+
window.gtag("event", eventName, data || {});
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// hooks/useUtmParams.ts
|
|
112
177
|
var import_react2 = require("react");
|
|
178
|
+
function useUtmParams() {
|
|
179
|
+
const [utmParams, setUtmParams] = (0, import_react2.useState)({});
|
|
180
|
+
(0, import_react2.useEffect)(() => {
|
|
181
|
+
if (typeof window === "undefined") return;
|
|
182
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
183
|
+
const source = urlParams.get("utm_source");
|
|
184
|
+
const medium = urlParams.get("utm_medium");
|
|
185
|
+
const campaign = urlParams.get("utm_campaign");
|
|
186
|
+
const content = urlParams.get("utm_content");
|
|
187
|
+
const term = urlParams.get("utm_term");
|
|
188
|
+
const params = {};
|
|
189
|
+
if (source) {
|
|
190
|
+
params.source = source;
|
|
191
|
+
sessionStorage.setItem("utm_source", source);
|
|
192
|
+
} else {
|
|
193
|
+
const stored = sessionStorage.getItem("utm_source");
|
|
194
|
+
if (stored) params.source = stored;
|
|
195
|
+
}
|
|
196
|
+
if (medium) {
|
|
197
|
+
params.medium = medium;
|
|
198
|
+
sessionStorage.setItem("utm_medium", medium);
|
|
199
|
+
} else {
|
|
200
|
+
const stored = sessionStorage.getItem("utm_medium");
|
|
201
|
+
if (stored) params.medium = stored;
|
|
202
|
+
}
|
|
203
|
+
if (campaign) {
|
|
204
|
+
params.campaign = campaign;
|
|
205
|
+
sessionStorage.setItem("utm_campaign", campaign);
|
|
206
|
+
} else {
|
|
207
|
+
const stored = sessionStorage.getItem("utm_campaign");
|
|
208
|
+
if (stored) params.campaign = stored;
|
|
209
|
+
}
|
|
210
|
+
if (content) {
|
|
211
|
+
params.content = content;
|
|
212
|
+
sessionStorage.setItem("utm_content", content);
|
|
213
|
+
} else {
|
|
214
|
+
const stored = sessionStorage.getItem("utm_content");
|
|
215
|
+
if (stored) params.content = stored;
|
|
216
|
+
}
|
|
217
|
+
if (term) {
|
|
218
|
+
params.term = term;
|
|
219
|
+
sessionStorage.setItem("utm_term", term);
|
|
220
|
+
} else {
|
|
221
|
+
const stored = sessionStorage.getItem("utm_term");
|
|
222
|
+
if (stored) params.term = stored;
|
|
223
|
+
}
|
|
224
|
+
setUtmParams(params);
|
|
225
|
+
}, []);
|
|
226
|
+
return utmParams;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
// theme/context.tsx
|
|
230
|
+
var import_react3 = require("react");
|
|
113
231
|
|
|
114
232
|
// theme/defaults.ts
|
|
115
233
|
var DEFAULT_THEME = {
|
|
@@ -157,10 +275,10 @@ var DEFAULT_THEME = {
|
|
|
157
275
|
};
|
|
158
276
|
|
|
159
277
|
// theme/context.tsx
|
|
160
|
-
var
|
|
161
|
-
var ThemeContext = (0,
|
|
278
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
279
|
+
var ThemeContext = (0, import_react3.createContext)(null);
|
|
162
280
|
function useTheme() {
|
|
163
|
-
const context = (0,
|
|
281
|
+
const context = (0, import_react3.useContext)(ThemeContext);
|
|
164
282
|
if (!context) {
|
|
165
283
|
return {
|
|
166
284
|
theme: DEFAULT_THEME,
|
|
@@ -201,139 +319,6 @@ function cn(...inputs) {
|
|
|
201
319
|
return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
|
|
202
320
|
}
|
|
203
321
|
|
|
204
|
-
// components/page/Paragraph.tsx
|
|
205
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
206
|
-
var sizeMap = {
|
|
207
|
-
sm: "0.875rem",
|
|
208
|
-
base: "1rem",
|
|
209
|
-
lg: "1.125rem",
|
|
210
|
-
xl: "1.25rem"
|
|
211
|
-
};
|
|
212
|
-
var weightMap = {
|
|
213
|
-
normal: 400,
|
|
214
|
-
medium: 500,
|
|
215
|
-
semibold: 600
|
|
216
|
-
};
|
|
217
|
-
var lineHeightMap = {
|
|
218
|
-
tight: "1.4",
|
|
219
|
-
normal: "1.6",
|
|
220
|
-
relaxed: "1.75",
|
|
221
|
-
loose: "2"
|
|
222
|
-
};
|
|
223
|
-
function isThemeableValue(value) {
|
|
224
|
-
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
225
|
-
}
|
|
226
|
-
function isEntryBoundValue(value) {
|
|
227
|
-
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
228
|
-
}
|
|
229
|
-
function Paragraph({
|
|
230
|
-
text,
|
|
231
|
-
size = "base",
|
|
232
|
-
weight = "normal",
|
|
233
|
-
color,
|
|
234
|
-
align = "left",
|
|
235
|
-
lineHeight = "normal",
|
|
236
|
-
maxWidth,
|
|
237
|
-
id
|
|
238
|
-
}) {
|
|
239
|
-
const { resolveColor: resolveColor2 } = useTheme();
|
|
240
|
-
const { getEntryValue } = useEntries();
|
|
241
|
-
const resolvedText = (() => {
|
|
242
|
-
if (!text) return "";
|
|
243
|
-
if (typeof text === "string") return text;
|
|
244
|
-
if (isEntryBoundValue(text)) {
|
|
245
|
-
if (text.useEntry) {
|
|
246
|
-
return String(getEntryValue(text.entryName, text.fieldKey) ?? "");
|
|
247
|
-
}
|
|
248
|
-
return text.value;
|
|
249
|
-
}
|
|
250
|
-
return "";
|
|
251
|
-
})();
|
|
252
|
-
const resolvedColor = (() => {
|
|
253
|
-
if (!color) return resolveColor2("foreground");
|
|
254
|
-
if (typeof color === "string") return { color, opacity: 100 };
|
|
255
|
-
if (isThemeableValue(color)) {
|
|
256
|
-
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
257
|
-
}
|
|
258
|
-
if ("color" in color) return color;
|
|
259
|
-
return resolveColor2("foreground");
|
|
260
|
-
})();
|
|
261
|
-
const style = {
|
|
262
|
-
fontSize: sizeMap[size],
|
|
263
|
-
fontWeight: weightMap[weight],
|
|
264
|
-
color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
|
|
265
|
-
textAlign: align,
|
|
266
|
-
lineHeight: lineHeightMap[lineHeight],
|
|
267
|
-
maxWidth: maxWidth || void 0,
|
|
268
|
-
margin: 0
|
|
269
|
-
};
|
|
270
|
-
if (!resolvedText) return null;
|
|
271
|
-
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { id, style, children: resolvedText });
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// hooks/useGtmEvent.ts
|
|
275
|
-
function useGtmEvent() {
|
|
276
|
-
return (eventName, data) => {
|
|
277
|
-
if (typeof window === "undefined") return;
|
|
278
|
-
if (typeof window.gtag === "function") {
|
|
279
|
-
window.gtag("event", eventName, data || {});
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
// hooks/useUtmParams.ts
|
|
285
|
-
var import_react3 = require("react");
|
|
286
|
-
function useUtmParams() {
|
|
287
|
-
const [utmParams, setUtmParams] = (0, import_react3.useState)({});
|
|
288
|
-
(0, import_react3.useEffect)(() => {
|
|
289
|
-
if (typeof window === "undefined") return;
|
|
290
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
291
|
-
const source = urlParams.get("utm_source");
|
|
292
|
-
const medium = urlParams.get("utm_medium");
|
|
293
|
-
const campaign = urlParams.get("utm_campaign");
|
|
294
|
-
const content = urlParams.get("utm_content");
|
|
295
|
-
const term = urlParams.get("utm_term");
|
|
296
|
-
const params = {};
|
|
297
|
-
if (source) {
|
|
298
|
-
params.source = source;
|
|
299
|
-
sessionStorage.setItem("utm_source", source);
|
|
300
|
-
} else {
|
|
301
|
-
const stored = sessionStorage.getItem("utm_source");
|
|
302
|
-
if (stored) params.source = stored;
|
|
303
|
-
}
|
|
304
|
-
if (medium) {
|
|
305
|
-
params.medium = medium;
|
|
306
|
-
sessionStorage.setItem("utm_medium", medium);
|
|
307
|
-
} else {
|
|
308
|
-
const stored = sessionStorage.getItem("utm_medium");
|
|
309
|
-
if (stored) params.medium = stored;
|
|
310
|
-
}
|
|
311
|
-
if (campaign) {
|
|
312
|
-
params.campaign = campaign;
|
|
313
|
-
sessionStorage.setItem("utm_campaign", campaign);
|
|
314
|
-
} else {
|
|
315
|
-
const stored = sessionStorage.getItem("utm_campaign");
|
|
316
|
-
if (stored) params.campaign = stored;
|
|
317
|
-
}
|
|
318
|
-
if (content) {
|
|
319
|
-
params.content = content;
|
|
320
|
-
sessionStorage.setItem("utm_content", content);
|
|
321
|
-
} else {
|
|
322
|
-
const stored = sessionStorage.getItem("utm_content");
|
|
323
|
-
if (stored) params.content = stored;
|
|
324
|
-
}
|
|
325
|
-
if (term) {
|
|
326
|
-
params.term = term;
|
|
327
|
-
sessionStorage.setItem("utm_term", term);
|
|
328
|
-
} else {
|
|
329
|
-
const stored = sessionStorage.getItem("utm_term");
|
|
330
|
-
if (stored) params.term = stored;
|
|
331
|
-
}
|
|
332
|
-
setUtmParams(params);
|
|
333
|
-
}, []);
|
|
334
|
-
return utmParams;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
322
|
// components/page/Button.tsx
|
|
338
323
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
339
324
|
var sizeStyles = {
|
|
@@ -349,10 +334,10 @@ var radiusMap = {
|
|
|
349
334
|
lg: "16px",
|
|
350
335
|
full: "9999px"
|
|
351
336
|
};
|
|
352
|
-
function
|
|
337
|
+
function isThemeableValue(value) {
|
|
353
338
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
354
339
|
}
|
|
355
|
-
function
|
|
340
|
+
function isEntryBoundValue(value) {
|
|
356
341
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
357
342
|
}
|
|
358
343
|
function Button({
|
|
@@ -375,7 +360,7 @@ function Button({
|
|
|
375
360
|
const resolvedText = (() => {
|
|
376
361
|
if (!text) return "Button";
|
|
377
362
|
if (typeof text === "string") return text;
|
|
378
|
-
if (
|
|
363
|
+
if (isEntryBoundValue(text)) {
|
|
379
364
|
if (text.useEntry) {
|
|
380
365
|
return String(getEntryValue(text.entryName, text.fieldKey) ?? "Button");
|
|
381
366
|
}
|
|
@@ -396,7 +381,7 @@ function Button({
|
|
|
396
381
|
const resolvedColor = (() => {
|
|
397
382
|
if (!color) return resolveColor2("primary");
|
|
398
383
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
399
|
-
if (
|
|
384
|
+
if (isThemeableValue(color)) {
|
|
400
385
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
401
386
|
}
|
|
402
387
|
if ("color" in color) return color;
|
|
@@ -409,7 +394,7 @@ function Button({
|
|
|
409
394
|
}
|
|
410
395
|
if (typeof textColor === "string")
|
|
411
396
|
return { color: textColor, opacity: 100 };
|
|
412
|
-
if (
|
|
397
|
+
if (isThemeableValue(textColor)) {
|
|
413
398
|
return textColor.useTheme ? resolveColor2(textColor.themeKey) : textColor.value;
|
|
414
399
|
}
|
|
415
400
|
if ("color" in textColor) return textColor;
|
|
@@ -506,10 +491,10 @@ var shadowMap = {
|
|
|
506
491
|
lg: "0 10px 15px rgba(0,0,0,0.1)",
|
|
507
492
|
xl: "0 20px 25px rgba(0,0,0,0.15)"
|
|
508
493
|
};
|
|
509
|
-
function
|
|
494
|
+
function isThemeableValue2(value) {
|
|
510
495
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
511
496
|
}
|
|
512
|
-
function
|
|
497
|
+
function isEntryBoundValue2(value) {
|
|
513
498
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
514
499
|
}
|
|
515
500
|
function Image({
|
|
@@ -530,7 +515,7 @@ function Image({
|
|
|
530
515
|
const resolvedSrc = (() => {
|
|
531
516
|
if (!src) return "";
|
|
532
517
|
if (typeof src === "string") return src;
|
|
533
|
-
if (
|
|
518
|
+
if (isEntryBoundValue2(src)) {
|
|
534
519
|
if (src.useEntry) {
|
|
535
520
|
return String(getEntryValue(src.entryName, src.fieldKey) ?? "");
|
|
536
521
|
}
|
|
@@ -541,7 +526,7 @@ function Image({
|
|
|
541
526
|
const resolvedCaption = (() => {
|
|
542
527
|
if (!caption) return "";
|
|
543
528
|
if (typeof caption === "string") return caption;
|
|
544
|
-
if (
|
|
529
|
+
if (isEntryBoundValue2(caption)) {
|
|
545
530
|
if (caption.useEntry) {
|
|
546
531
|
return String(getEntryValue(caption.entryName, caption.fieldKey) ?? "");
|
|
547
532
|
}
|
|
@@ -553,7 +538,7 @@ function Image({
|
|
|
553
538
|
if (!captionColor) return resolveColor2("muted");
|
|
554
539
|
if (typeof captionColor === "string")
|
|
555
540
|
return { color: captionColor, opacity: 100 };
|
|
556
|
-
if (
|
|
541
|
+
if (isThemeableValue2(captionColor)) {
|
|
557
542
|
return captionColor.useTheme ? resolveColor2(captionColor.themeKey) : captionColor.value;
|
|
558
543
|
}
|
|
559
544
|
if ("color" in captionColor) return captionColor;
|
|
@@ -618,7 +603,7 @@ var radiusMap3 = {
|
|
|
618
603
|
md: "8px",
|
|
619
604
|
lg: "16px"
|
|
620
605
|
};
|
|
621
|
-
function
|
|
606
|
+
function isThemeableValue3(value) {
|
|
622
607
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
623
608
|
}
|
|
624
609
|
function ImageCarousel({
|
|
@@ -639,7 +624,7 @@ function ImageCarousel({
|
|
|
639
624
|
if (!arrowColor) return { color: "#FFFFFF", opacity: 100 };
|
|
640
625
|
if (typeof arrowColor === "string")
|
|
641
626
|
return { color: arrowColor, opacity: 100 };
|
|
642
|
-
if (
|
|
627
|
+
if (isThemeableValue3(arrowColor)) {
|
|
643
628
|
return arrowColor.useTheme ? resolveColor2(arrowColor.themeKey) : arrowColor.value;
|
|
644
629
|
}
|
|
645
630
|
if ("color" in arrowColor) return arrowColor;
|
|
@@ -648,7 +633,7 @@ function ImageCarousel({
|
|
|
648
633
|
const resolvedDotColor = (() => {
|
|
649
634
|
if (!dotColor) return resolveColor2("primary");
|
|
650
635
|
if (typeof dotColor === "string") return { color: dotColor, opacity: 100 };
|
|
651
|
-
if (
|
|
636
|
+
if (isThemeableValue3(dotColor)) {
|
|
652
637
|
return dotColor.useTheme ? resolveColor2(dotColor.themeKey) : dotColor.value;
|
|
653
638
|
}
|
|
654
639
|
if ("color" in dotColor) return dotColor;
|
|
@@ -822,7 +807,7 @@ var maxWidthMap = {
|
|
|
822
807
|
xl: "1000px",
|
|
823
808
|
full: "100%"
|
|
824
809
|
};
|
|
825
|
-
function
|
|
810
|
+
function isEntryBoundValue3(value) {
|
|
826
811
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
827
812
|
}
|
|
828
813
|
function parseVideoUrl(url) {
|
|
@@ -859,7 +844,7 @@ function VideoEmbed({
|
|
|
859
844
|
const resolvedUrl = (() => {
|
|
860
845
|
if (!url) return "";
|
|
861
846
|
if (typeof url === "string") return url;
|
|
862
|
-
if (
|
|
847
|
+
if (isEntryBoundValue3(url)) {
|
|
863
848
|
if (url.useEntry) {
|
|
864
849
|
return String(getEntryValue(url.entryName, url.fieldKey) ?? "");
|
|
865
850
|
}
|
|
@@ -927,7 +912,7 @@ function VideoEmbed({
|
|
|
927
912
|
|
|
928
913
|
// components/page/Icon.tsx
|
|
929
914
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
930
|
-
var
|
|
915
|
+
var sizeMap = {
|
|
931
916
|
sm: { size: "16px", strokeWidth: 2 },
|
|
932
917
|
md: { size: "24px", strokeWidth: 2 },
|
|
933
918
|
lg: { size: "32px", strokeWidth: 1.5 },
|
|
@@ -1124,7 +1109,7 @@ var icons = {
|
|
|
1124
1109
|
}
|
|
1125
1110
|
)
|
|
1126
1111
|
};
|
|
1127
|
-
function
|
|
1112
|
+
function isThemeableValue4(value) {
|
|
1128
1113
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1129
1114
|
}
|
|
1130
1115
|
function Icon({
|
|
@@ -1138,14 +1123,14 @@ function Icon({
|
|
|
1138
1123
|
const resolvedColor = (() => {
|
|
1139
1124
|
if (!color) return resolveColor2("primary");
|
|
1140
1125
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
1141
|
-
if (
|
|
1126
|
+
if (isThemeableValue4(color)) {
|
|
1142
1127
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
1143
1128
|
}
|
|
1144
1129
|
if ("color" in color) return color;
|
|
1145
1130
|
return resolveColor2("primary");
|
|
1146
1131
|
})();
|
|
1147
1132
|
const IconComponent = icons[name.toLowerCase()] || icons.check;
|
|
1148
|
-
const { size: iconSize, strokeWidth } =
|
|
1133
|
+
const { size: iconSize, strokeWidth } = sizeMap[size];
|
|
1149
1134
|
const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
|
|
1150
1135
|
const wrapperStyle = {
|
|
1151
1136
|
display: "flex",
|
|
@@ -1200,13 +1185,13 @@ var getShadowCSS = (value) => {
|
|
|
1200
1185
|
|
|
1201
1186
|
// components/page/Section.tsx
|
|
1202
1187
|
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1203
|
-
function
|
|
1188
|
+
function isThemeableValue5(value) {
|
|
1204
1189
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1205
1190
|
}
|
|
1206
1191
|
function resolveBackgroundColor(bg, resolveColor2) {
|
|
1207
1192
|
if (!bg) return void 0;
|
|
1208
1193
|
if (typeof bg === "string") return bg;
|
|
1209
|
-
if (
|
|
1194
|
+
if (isThemeableValue5(bg)) {
|
|
1210
1195
|
if (bg.useTheme) {
|
|
1211
1196
|
const themeColor = resolveColor2(bg.themeKey);
|
|
1212
1197
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -1284,7 +1269,7 @@ var paddingMap = {
|
|
|
1284
1269
|
lg: "32px",
|
|
1285
1270
|
xl: "48px"
|
|
1286
1271
|
};
|
|
1287
|
-
function
|
|
1272
|
+
function isThemeableValue6(value) {
|
|
1288
1273
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1289
1274
|
}
|
|
1290
1275
|
function Container({
|
|
@@ -1303,7 +1288,7 @@ function Container({
|
|
|
1303
1288
|
if (!backgroundColor) return null;
|
|
1304
1289
|
if (typeof backgroundColor === "string")
|
|
1305
1290
|
return { color: backgroundColor, opacity: 100 };
|
|
1306
|
-
if (
|
|
1291
|
+
if (isThemeableValue6(backgroundColor)) {
|
|
1307
1292
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1308
1293
|
}
|
|
1309
1294
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1387,7 +1372,7 @@ var paddingMap2 = {
|
|
|
1387
1372
|
lg: "32px",
|
|
1388
1373
|
xl: "48px"
|
|
1389
1374
|
};
|
|
1390
|
-
function
|
|
1375
|
+
function isThemeableValue7(value) {
|
|
1391
1376
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1392
1377
|
}
|
|
1393
1378
|
function Card({
|
|
@@ -1406,7 +1391,7 @@ function Card({
|
|
|
1406
1391
|
if (!backgroundColor) return resolveColor2("background");
|
|
1407
1392
|
if (typeof backgroundColor === "string")
|
|
1408
1393
|
return { color: backgroundColor, opacity: 100 };
|
|
1409
|
-
if (
|
|
1394
|
+
if (isThemeableValue7(backgroundColor)) {
|
|
1410
1395
|
return backgroundColor.useTheme ? resolveColor2(backgroundColor.themeKey) : backgroundColor.value;
|
|
1411
1396
|
}
|
|
1412
1397
|
if ("color" in backgroundColor) return backgroundColor;
|
|
@@ -1416,7 +1401,7 @@ function Card({
|
|
|
1416
1401
|
if (!borderColor) return resolveColor2("muted");
|
|
1417
1402
|
if (typeof borderColor === "string")
|
|
1418
1403
|
return { color: borderColor, opacity: 100 };
|
|
1419
|
-
if (
|
|
1404
|
+
if (isThemeableValue7(borderColor)) {
|
|
1420
1405
|
return borderColor.useTheme ? resolveColor2(borderColor.themeKey) : borderColor.value;
|
|
1421
1406
|
}
|
|
1422
1407
|
if ("color" in borderColor) return borderColor;
|
|
@@ -1451,7 +1436,7 @@ var spacingMap = {
|
|
|
1451
1436
|
lg: "32px",
|
|
1452
1437
|
xl: "48px"
|
|
1453
1438
|
};
|
|
1454
|
-
function
|
|
1439
|
+
function isThemeableValue8(value) {
|
|
1455
1440
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1456
1441
|
}
|
|
1457
1442
|
function Divider({
|
|
@@ -1467,7 +1452,7 @@ function Divider({
|
|
|
1467
1452
|
const resolvedColor = (() => {
|
|
1468
1453
|
if (!color) return resolveColor2("muted");
|
|
1469
1454
|
if (typeof color === "string") return { color, opacity: 100 };
|
|
1470
|
-
if (
|
|
1455
|
+
if (isThemeableValue8(color)) {
|
|
1471
1456
|
return color.useTheme ? resolveColor2(color.themeKey) : color.value;
|
|
1472
1457
|
}
|
|
1473
1458
|
if ("color" in color) return color;
|
|
@@ -1489,7 +1474,7 @@ function Divider({
|
|
|
1489
1474
|
|
|
1490
1475
|
// components/page/Spacer.tsx
|
|
1491
1476
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1492
|
-
var
|
|
1477
|
+
var sizeMap2 = {
|
|
1493
1478
|
xs: "8px",
|
|
1494
1479
|
sm: "16px",
|
|
1495
1480
|
md: "24px",
|
|
@@ -1500,7 +1485,7 @@ var sizeMap3 = {
|
|
|
1500
1485
|
};
|
|
1501
1486
|
function Spacer({ size = "md", id }) {
|
|
1502
1487
|
const style = {
|
|
1503
|
-
height:
|
|
1488
|
+
height: sizeMap2[size],
|
|
1504
1489
|
width: "100%"
|
|
1505
1490
|
};
|
|
1506
1491
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { id, style, "aria-hidden": "true" });
|
|
@@ -1513,23 +1498,23 @@ var alignmentMap = {
|
|
|
1513
1498
|
center: "text-center",
|
|
1514
1499
|
right: "text-right"
|
|
1515
1500
|
};
|
|
1516
|
-
var
|
|
1501
|
+
var sizeMap3 = {
|
|
1517
1502
|
small: "text-2xl",
|
|
1518
1503
|
"medium-small": "text-3xl",
|
|
1519
1504
|
medium: "text-4xl",
|
|
1520
1505
|
large: "text-5xl",
|
|
1521
1506
|
xlarge: "text-6xl"
|
|
1522
1507
|
};
|
|
1523
|
-
function
|
|
1508
|
+
function isThemeableValue9(value) {
|
|
1524
1509
|
return typeof value === "object" && value !== null && "useTheme" in value;
|
|
1525
1510
|
}
|
|
1526
|
-
function
|
|
1511
|
+
function isEntryBoundValue4(value) {
|
|
1527
1512
|
return typeof value === "object" && value !== null && "useEntry" in value;
|
|
1528
1513
|
}
|
|
1529
1514
|
function resolveColor(color, resolveThemeColor) {
|
|
1530
1515
|
if (!color) return "#000000";
|
|
1531
1516
|
if (typeof color === "string") return color;
|
|
1532
|
-
if (
|
|
1517
|
+
if (isThemeableValue9(color)) {
|
|
1533
1518
|
if (color.useTheme) {
|
|
1534
1519
|
const themeColor = resolveThemeColor(color.themeKey);
|
|
1535
1520
|
return hexToRgba(themeColor.color, themeColor.opacity);
|
|
@@ -1544,7 +1529,7 @@ function resolveColor(color, resolveThemeColor) {
|
|
|
1544
1529
|
function resolveColorHex(color, resolveThemeColor) {
|
|
1545
1530
|
if (!color) return "#000000";
|
|
1546
1531
|
if (typeof color === "string") return color;
|
|
1547
|
-
if (
|
|
1532
|
+
if (isThemeableValue9(color)) {
|
|
1548
1533
|
if (color.useTheme) {
|
|
1549
1534
|
return resolveThemeColor(color.themeKey).color;
|
|
1550
1535
|
}
|
|
@@ -1573,7 +1558,7 @@ function TextBlock({
|
|
|
1573
1558
|
const resolveText = (value) => {
|
|
1574
1559
|
if (!value) return void 0;
|
|
1575
1560
|
if (typeof value === "string") return value;
|
|
1576
|
-
if (
|
|
1561
|
+
if (isEntryBoundValue4(value)) {
|
|
1577
1562
|
if (value.useEntry) {
|
|
1578
1563
|
const entryVal = getEntryValue(value.entryName, value.fieldKey);
|
|
1579
1564
|
return entryVal != null ? String(entryVal) : void 0;
|
|
@@ -1602,7 +1587,7 @@ function TextBlock({
|
|
|
1602
1587
|
resolvedTitle && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1603
1588
|
"h2",
|
|
1604
1589
|
{
|
|
1605
|
-
className: cn("font-bold",
|
|
1590
|
+
className: cn("font-bold", sizeMap3[textSize]),
|
|
1606
1591
|
style: gradientStyle,
|
|
1607
1592
|
children: resolvedTitle
|
|
1608
1593
|
}
|
|
@@ -1656,7 +1641,7 @@ function CustomImage({
|
|
|
1656
1641
|
// components/page/FeaturesList.tsx
|
|
1657
1642
|
var import_lucide_react = require("lucide-react");
|
|
1658
1643
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1659
|
-
var
|
|
1644
|
+
var sizeMap4 = {
|
|
1660
1645
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1661
1646
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1662
1647
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1668,7 +1653,7 @@ function FeaturesList({
|
|
|
1668
1653
|
iconColor = "#000000",
|
|
1669
1654
|
anchorLink
|
|
1670
1655
|
}) {
|
|
1671
|
-
const sizeConfig =
|
|
1656
|
+
const sizeConfig = sizeMap4[size];
|
|
1672
1657
|
const getIcon = (iconName) => {
|
|
1673
1658
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1674
1659
|
return import_lucide_react.icons[formatted] || null;
|
|
@@ -1725,7 +1710,7 @@ function FeaturesList({
|
|
|
1725
1710
|
// components/page/FeatureGrid.tsx
|
|
1726
1711
|
var import_lucide_react2 = require("lucide-react");
|
|
1727
1712
|
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1728
|
-
var
|
|
1713
|
+
var sizeMap5 = {
|
|
1729
1714
|
small: { icon: 24, title: "text-base", desc: "text-sm" },
|
|
1730
1715
|
medium: { icon: 32, title: "text-lg", desc: "text-base" },
|
|
1731
1716
|
large: { icon: 48, title: "text-xl", desc: "text-lg" }
|
|
@@ -1741,7 +1726,7 @@ function FeatureGrid({
|
|
|
1741
1726
|
textColor = "#000000",
|
|
1742
1727
|
anchorLink
|
|
1743
1728
|
}) {
|
|
1744
|
-
const sizeConfig =
|
|
1729
|
+
const sizeConfig = sizeMap5[size];
|
|
1745
1730
|
const getIcon = (iconName) => {
|
|
1746
1731
|
const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
|
|
1747
1732
|
return import_lucide_react2.icons[formatted] || null;
|
|
@@ -2008,7 +1993,7 @@ var widthMap3 = {
|
|
|
2008
1993
|
medium: "max-w-lg",
|
|
2009
1994
|
large: "max-w-2xl"
|
|
2010
1995
|
};
|
|
2011
|
-
var
|
|
1996
|
+
var sizeMap6 = {
|
|
2012
1997
|
small: "px-3 py-1.5 text-sm",
|
|
2013
1998
|
medium: "px-4 py-2 text-base",
|
|
2014
1999
|
large: "px-6 py-3 text-lg"
|
|
@@ -2053,7 +2038,7 @@ function Popup({
|
|
|
2053
2038
|
onClick: handleOpen,
|
|
2054
2039
|
className: cn(
|
|
2055
2040
|
"flex items-center gap-2 rounded-full font-medium",
|
|
2056
|
-
|
|
2041
|
+
sizeMap6[size]
|
|
2057
2042
|
),
|
|
2058
2043
|
style: { backgroundColor: buttonColor, color: textColor },
|
|
2059
2044
|
children: [
|