@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.
@@ -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 import_jsx_runtime2 = require("react/jsx-runtime");
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
- // theme/context.tsx
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 import_jsx_runtime3 = require("react/jsx-runtime");
161
- var ThemeContext = (0, import_react2.createContext)(null);
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, import_react2.useContext)(ThemeContext);
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 isThemeableValue2(value) {
337
+ function isThemeableValue(value) {
353
338
  return typeof value === "object" && value !== null && "useTheme" in value;
354
339
  }
355
- function isEntryBoundValue2(value) {
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 (isEntryBoundValue2(text)) {
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 (isThemeableValue2(color)) {
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 (isThemeableValue2(textColor)) {
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 isThemeableValue3(value) {
494
+ function isThemeableValue2(value) {
510
495
  return typeof value === "object" && value !== null && "useTheme" in value;
511
496
  }
512
- function isEntryBoundValue3(value) {
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 (isEntryBoundValue3(src)) {
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 (isEntryBoundValue3(caption)) {
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 (isThemeableValue3(captionColor)) {
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 isThemeableValue4(value) {
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 (isThemeableValue4(arrowColor)) {
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 (isThemeableValue4(dotColor)) {
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 isEntryBoundValue4(value) {
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 (isEntryBoundValue4(url)) {
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 sizeMap2 = {
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 isThemeableValue5(value) {
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 (isThemeableValue5(color)) {
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 } = sizeMap2[size];
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 isThemeableValue6(value) {
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 (isThemeableValue6(bg)) {
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 isThemeableValue7(value) {
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 (isThemeableValue7(backgroundColor)) {
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 isThemeableValue8(value) {
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 (isThemeableValue8(backgroundColor)) {
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 (isThemeableValue8(borderColor)) {
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 isThemeableValue9(value) {
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 (isThemeableValue9(color)) {
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 sizeMap3 = {
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: sizeMap3[size],
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 sizeMap4 = {
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 isThemeableValue10(value) {
1508
+ function isThemeableValue9(value) {
1524
1509
  return typeof value === "object" && value !== null && "useTheme" in value;
1525
1510
  }
1526
- function isEntryBoundValue5(value) {
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 (isThemeableValue10(color)) {
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 (isThemeableValue10(color)) {
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 (isEntryBoundValue5(value)) {
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", sizeMap4[textSize]),
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 sizeMap5 = {
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 = sizeMap5[size];
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 sizeMap6 = {
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 = sizeMap6[size];
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 sizeMap7 = {
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
- sizeMap7[size]
2041
+ sizeMap6[size]
2057
2042
  ),
2058
2043
  style: { backgroundColor: buttonColor, color: textColor },
2059
2044
  children: [