@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.
@@ -11,18 +11,18 @@ import {
11
11
  Icon,
12
12
  Image,
13
13
  ImageCarousel,
14
- Paragraph,
15
14
  Popup,
16
15
  Section,
17
16
  Spacer,
18
17
  TextBlock,
19
18
  Topbar,
20
19
  VideoEmbed,
21
- getHeadingStyle
22
- } from "../chunk-X6VGLL5Y.mjs";
20
+ getHeadingStyle,
21
+ getParagraphStyle
22
+ } from "../chunk-MWW5LYLN.mjs";
23
23
  import "../chunk-PJXZC564.mjs";
24
- import "../chunk-C6V3YUPF.mjs";
25
24
  import "../chunk-QSWQDR6M.mjs";
25
+ import "../chunk-C6V3YUPF.mjs";
26
26
 
27
27
  // components/page/astro/Heading.tsx
28
28
  import { jsx } from "react/jsx-runtime";
@@ -51,8 +51,33 @@ function Heading({
51
51
  return /* @__PURE__ */ jsx(Tag, { id, style, children: resolvedText });
52
52
  }
53
53
 
54
- // config/server.tsx
54
+ // components/page/astro/Paragraph.tsx
55
55
  import { jsx as jsx2 } from "react/jsx-runtime";
56
+ function Paragraph({
57
+ text,
58
+ size = "base",
59
+ weight = "normal",
60
+ color = "rgba(0, 0, 0, 1)",
61
+ align = "left",
62
+ lineHeight = "normal",
63
+ maxWidth,
64
+ id
65
+ }) {
66
+ const resolvedText = text || "";
67
+ const style = getParagraphStyle({
68
+ size,
69
+ weight,
70
+ color,
71
+ align,
72
+ lineHeight,
73
+ maxWidth
74
+ });
75
+ if (!resolvedText) return null;
76
+ return /* @__PURE__ */ jsx2("p", { id, style, children: resolvedText });
77
+ }
78
+
79
+ // config/server.tsx
80
+ import { jsx as jsx3 } from "react/jsx-runtime";
56
81
  var config = {
57
82
  categories: {
58
83
  typography: {
@@ -94,64 +119,64 @@ var config = {
94
119
  },
95
120
  components: {
96
121
  Heading: {
97
- render: (props) => /* @__PURE__ */ jsx2(Heading, { ...props })
122
+ render: (props) => /* @__PURE__ */ jsx3(Heading, { ...props })
98
123
  },
99
124
  Paragraph: {
100
- render: (props) => /* @__PURE__ */ jsx2(Paragraph, { ...props })
125
+ render: (props) => /* @__PURE__ */ jsx3(Paragraph, { ...props })
101
126
  },
102
127
  Button: {
103
- render: (props) => /* @__PURE__ */ jsx2(Button, { ...props })
128
+ render: (props) => /* @__PURE__ */ jsx3(Button, { ...props })
104
129
  },
105
130
  Image: {
106
- render: (props) => /* @__PURE__ */ jsx2(Image, { ...props })
131
+ render: (props) => /* @__PURE__ */ jsx3(Image, { ...props })
107
132
  },
108
133
  ImageCarousel: {
109
- render: (props) => /* @__PURE__ */ jsx2(ImageCarousel, { ...props })
134
+ render: (props) => /* @__PURE__ */ jsx3(ImageCarousel, { ...props })
110
135
  },
111
136
  VideoEmbed: {
112
- render: (props) => /* @__PURE__ */ jsx2(VideoEmbed, { ...props })
137
+ render: (props) => /* @__PURE__ */ jsx3(VideoEmbed, { ...props })
113
138
  },
114
139
  Icon: {
115
- render: (props) => /* @__PURE__ */ jsx2(Icon, { ...props })
140
+ render: (props) => /* @__PURE__ */ jsx3(Icon, { ...props })
116
141
  },
117
142
  Section: {
118
- render: (props) => /* @__PURE__ */ jsx2(Section, { ...props })
143
+ render: (props) => /* @__PURE__ */ jsx3(Section, { ...props })
119
144
  },
120
145
  Container: {
121
- render: (props) => /* @__PURE__ */ jsx2(Container, { ...props })
146
+ render: (props) => /* @__PURE__ */ jsx3(Container, { ...props })
122
147
  },
123
148
  Columns: {
124
- render: (props) => /* @__PURE__ */ jsx2(Columns, { ...props })
149
+ render: (props) => /* @__PURE__ */ jsx3(Columns, { ...props })
125
150
  },
126
151
  Card: {
127
- render: (props) => /* @__PURE__ */ jsx2(Card, { ...props })
152
+ render: (props) => /* @__PURE__ */ jsx3(Card, { ...props })
128
153
  },
129
154
  Divider: {
130
- render: (props) => /* @__PURE__ */ jsx2(Divider, { ...props })
155
+ render: (props) => /* @__PURE__ */ jsx3(Divider, { ...props })
131
156
  },
132
157
  Spacer: {
133
- render: (props) => /* @__PURE__ */ jsx2(Spacer, { ...props })
158
+ render: (props) => /* @__PURE__ */ jsx3(Spacer, { ...props })
134
159
  },
135
160
  TextBlock: {
136
- render: (props) => /* @__PURE__ */ jsx2(TextBlock, { ...props })
161
+ render: (props) => /* @__PURE__ */ jsx3(TextBlock, { ...props })
137
162
  },
138
163
  CustomImage: {
139
- render: (props) => /* @__PURE__ */ jsx2(CustomImage, { ...props })
164
+ render: (props) => /* @__PURE__ */ jsx3(CustomImage, { ...props })
140
165
  },
141
166
  FeaturesList: {
142
- render: (props) => /* @__PURE__ */ jsx2(FeaturesList, { ...props })
167
+ render: (props) => /* @__PURE__ */ jsx3(FeaturesList, { ...props })
143
168
  },
144
169
  FeatureGrid: {
145
- render: (props) => /* @__PURE__ */ jsx2(FeatureGrid, { ...props })
170
+ render: (props) => /* @__PURE__ */ jsx3(FeatureGrid, { ...props })
146
171
  },
147
172
  Footer: {
148
- render: (props) => /* @__PURE__ */ jsx2(Footer, { ...props })
173
+ render: (props) => /* @__PURE__ */ jsx3(Footer, { ...props })
149
174
  },
150
175
  Topbar: {
151
- render: (props) => /* @__PURE__ */ jsx2(Topbar, { ...props })
176
+ render: (props) => /* @__PURE__ */ jsx3(Topbar, { ...props })
152
177
  },
153
178
  Popup: {
154
- render: (props) => /* @__PURE__ */ jsx2(Popup, { ...props })
179
+ render: (props) => /* @__PURE__ */ jsx3(Popup, { ...props })
155
180
  }
156
181
  }
157
182
  };
@@ -258,25 +258,38 @@ function Heading({
258
258
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Tag, { id, style, children: resolvedText });
259
259
  }
260
260
 
261
- // components/page/Paragraph.tsx
262
- var import_jsx_runtime4 = require("react/jsx-runtime");
263
- var sizeMap = {
261
+ // components/page/primitives/Paragraph.ts
262
+ var paragraphSizeMap = {
264
263
  sm: "0.875rem",
265
264
  base: "1rem",
266
265
  lg: "1.125rem",
267
266
  xl: "1.25rem"
268
267
  };
269
- var weightMap = {
268
+ var paragraphWeightMap = {
270
269
  normal: 400,
271
270
  medium: 500,
272
271
  semibold: 600
273
272
  };
274
- var lineHeightMap = {
273
+ var paragraphLineHeightMap = {
275
274
  tight: "1.4",
276
275
  normal: "1.6",
277
276
  relaxed: "1.75",
278
277
  loose: "2"
279
278
  };
279
+ function getParagraphStyle(props) {
280
+ return {
281
+ fontSize: paragraphSizeMap[props.size],
282
+ fontWeight: paragraphWeightMap[props.weight],
283
+ color: props.color,
284
+ textAlign: props.align,
285
+ lineHeight: paragraphLineHeightMap[props.lineHeight],
286
+ maxWidth: props.maxWidth || void 0,
287
+ margin: 0
288
+ };
289
+ }
290
+
291
+ // components/page/next/Paragraph.tsx
292
+ var import_jsx_runtime4 = require("react/jsx-runtime");
280
293
  function isThemeableValue2(value) {
281
294
  return typeof value === "object" && value !== null && "useTheme" in value;
282
295
  }
@@ -307,23 +320,32 @@ function Paragraph({
307
320
  return "";
308
321
  })();
309
322
  const resolvedColor = (() => {
310
- if (!color) return resolveColor2("foreground");
311
- if (typeof color === "string") return { color, opacity: 100 };
323
+ if (!color)
324
+ return hexToRgba(
325
+ resolveColor2("foreground").color,
326
+ resolveColor2("foreground").opacity
327
+ );
328
+ if (typeof color === "string") return color;
312
329
  if (isThemeableValue2(color)) {
313
- return color.useTheme ? resolveColor2(color.themeKey) : color.value;
330
+ return color.useTheme ? hexToRgba(
331
+ resolveColor2(color.themeKey).color,
332
+ resolveColor2(color.themeKey).opacity
333
+ ) : hexToRgba(color.value.color, color.value.opacity);
314
334
  }
315
- if ("color" in color) return color;
316
- return resolveColor2("foreground");
335
+ if ("color" in color) return hexToRgba(color.color, color.opacity);
336
+ return hexToRgba(
337
+ resolveColor2("foreground").color,
338
+ resolveColor2("foreground").opacity
339
+ );
317
340
  })();
318
- const style = {
319
- fontSize: sizeMap[size4],
320
- fontWeight: weightMap[weight],
321
- color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
322
- textAlign: align,
323
- lineHeight: lineHeightMap[lineHeight],
324
- maxWidth: maxWidth || void 0,
325
- margin: 0
326
- };
341
+ const style = getParagraphStyle({
342
+ size: size4,
343
+ weight,
344
+ color: resolvedColor,
345
+ align,
346
+ lineHeight,
347
+ maxWidth
348
+ });
327
349
  if (!resolvedText) return null;
328
350
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { id, style, children: resolvedText });
329
351
  }
@@ -984,7 +1006,7 @@ function VideoEmbed({
984
1006
 
985
1007
  // components/page/Icon.tsx
986
1008
  var import_jsx_runtime9 = require("react/jsx-runtime");
987
- var sizeMap2 = {
1009
+ var sizeMap = {
988
1010
  sm: { size: "16px", strokeWidth: 2 },
989
1011
  md: { size: "24px", strokeWidth: 2 },
990
1012
  lg: { size: "32px", strokeWidth: 1.5 },
@@ -1202,7 +1224,7 @@ function Icon({
1202
1224
  return resolveColor2("primary");
1203
1225
  })();
1204
1226
  const IconComponent = icons[name.toLowerCase()] || icons.check;
1205
- const { size: iconSize, strokeWidth } = sizeMap2[size4];
1227
+ const { size: iconSize, strokeWidth } = sizeMap[size4];
1206
1228
  const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
1207
1229
  const wrapperStyle = {
1208
1230
  display: "flex",
@@ -1546,7 +1568,7 @@ function Divider({
1546
1568
 
1547
1569
  // components/page/Spacer.tsx
1548
1570
  var import_jsx_runtime15 = require("react/jsx-runtime");
1549
- var sizeMap3 = {
1571
+ var sizeMap2 = {
1550
1572
  xs: "8px",
1551
1573
  sm: "16px",
1552
1574
  md: "24px",
@@ -1557,7 +1579,7 @@ var sizeMap3 = {
1557
1579
  };
1558
1580
  function Spacer({ size: size4 = "md", id }) {
1559
1581
  const style = {
1560
- height: sizeMap3[size4],
1582
+ height: sizeMap2[size4],
1561
1583
  width: "100%"
1562
1584
  };
1563
1585
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { id, style, "aria-hidden": "true" });
@@ -1570,7 +1592,7 @@ var alignmentMap = {
1570
1592
  center: "text-center",
1571
1593
  right: "text-right"
1572
1594
  };
1573
- var sizeMap4 = {
1595
+ var sizeMap3 = {
1574
1596
  small: "text-2xl",
1575
1597
  "medium-small": "text-3xl",
1576
1598
  medium: "text-4xl",
@@ -1659,7 +1681,7 @@ function TextBlock({
1659
1681
  resolvedTitle && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1660
1682
  "h2",
1661
1683
  {
1662
- className: cn("font-bold", sizeMap4[textSize]),
1684
+ className: cn("font-bold", sizeMap3[textSize]),
1663
1685
  style: gradientStyle,
1664
1686
  children: resolvedTitle
1665
1687
  }
@@ -1713,7 +1735,7 @@ function CustomImage({
1713
1735
  // components/page/FeaturesList.tsx
1714
1736
  var import_lucide_react = require("lucide-react");
1715
1737
  var import_jsx_runtime18 = require("react/jsx-runtime");
1716
- var sizeMap5 = {
1738
+ var sizeMap4 = {
1717
1739
  small: { icon: 24, title: "text-base", desc: "text-sm" },
1718
1740
  medium: { icon: 32, title: "text-lg", desc: "text-base" },
1719
1741
  large: { icon: 48, title: "text-xl", desc: "text-lg" }
@@ -1725,7 +1747,7 @@ function FeaturesList({
1725
1747
  iconColor = "#000000",
1726
1748
  anchorLink
1727
1749
  }) {
1728
- const sizeConfig = sizeMap5[size4];
1750
+ const sizeConfig = sizeMap4[size4];
1729
1751
  const getIcon = (iconName) => {
1730
1752
  const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
1731
1753
  return import_lucide_react.icons[formatted] || null;
@@ -1782,7 +1804,7 @@ function FeaturesList({
1782
1804
  // components/page/FeatureGrid.tsx
1783
1805
  var import_lucide_react2 = require("lucide-react");
1784
1806
  var import_jsx_runtime19 = require("react/jsx-runtime");
1785
- var sizeMap6 = {
1807
+ var sizeMap5 = {
1786
1808
  small: { icon: 24, title: "text-base", desc: "text-sm" },
1787
1809
  medium: { icon: 32, title: "text-lg", desc: "text-base" },
1788
1810
  large: { icon: 48, title: "text-xl", desc: "text-lg" }
@@ -1798,7 +1820,7 @@ function FeatureGrid({
1798
1820
  textColor = "#000000",
1799
1821
  anchorLink
1800
1822
  }) {
1801
- const sizeConfig = sizeMap6[size4];
1823
+ const sizeConfig = sizeMap5[size4];
1802
1824
  const getIcon = (iconName) => {
1803
1825
  const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
1804
1826
  return import_lucide_react2.icons[formatted] || null;
@@ -2065,7 +2087,7 @@ var widthMap3 = {
2065
2087
  medium: "max-w-lg",
2066
2088
  large: "max-w-2xl"
2067
2089
  };
2068
- var sizeMap7 = {
2090
+ var sizeMap6 = {
2069
2091
  small: "px-3 py-1.5 text-sm",
2070
2092
  medium: "px-4 py-2 text-base",
2071
2093
  large: "px-6 py-3 text-lg"
@@ -2110,7 +2132,7 @@ function Popup({
2110
2132
  onClick: handleOpen,
2111
2133
  className: cn(
2112
2134
  "flex items-center gap-2 rounded-full font-medium",
2113
- sizeMap7[size4]
2135
+ sizeMap6[size4]
2114
2136
  ),
2115
2137
  style: { backgroundColor: buttonColor, color: textColor },
2116
2138
  children: [
@@ -9,8 +9,9 @@ import {
9
9
  } from "./chunk-VF4NOAJG.mjs";
10
10
  import "./chunk-A3QDUUOF.mjs";
11
11
  import {
12
- Heading
13
- } from "./chunk-A2J2E524.mjs";
12
+ Heading,
13
+ Paragraph
14
+ } from "./chunk-WFLVAZV2.mjs";
14
15
  import {
15
16
  Button,
16
17
  Card,
@@ -24,7 +25,6 @@ import {
24
25
  Icon,
25
26
  Image,
26
27
  ImageCarousel,
27
- Paragraph,
28
28
  Popup,
29
29
  Section,
30
30
  Spacer,
@@ -32,10 +32,10 @@ import {
32
32
  Topbar,
33
33
  VideoEmbed,
34
34
  availableIcons
35
- } from "./chunk-X6VGLL5Y.mjs";
35
+ } from "./chunk-MWW5LYLN.mjs";
36
36
  import "./chunk-PJXZC564.mjs";
37
- import "./chunk-C6V3YUPF.mjs";
38
37
  import "./chunk-QSWQDR6M.mjs";
38
+ import "./chunk-C6V3YUPF.mjs";
39
39
 
40
40
  // config.tsx
41
41
  import { jsx } from "react/jsx-runtime";
package/dist/index.js CHANGED
@@ -288,25 +288,38 @@ function Heading({
288
288
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Tag, { id, style, children: resolvedText });
289
289
  }
290
290
 
291
- // components/page/Paragraph.tsx
292
- var import_jsx_runtime4 = require("react/jsx-runtime");
293
- var sizeMap = {
291
+ // components/page/primitives/Paragraph.ts
292
+ var paragraphSizeMap = {
294
293
  sm: "0.875rem",
295
294
  base: "1rem",
296
295
  lg: "1.125rem",
297
296
  xl: "1.25rem"
298
297
  };
299
- var weightMap = {
298
+ var paragraphWeightMap = {
300
299
  normal: 400,
301
300
  medium: 500,
302
301
  semibold: 600
303
302
  };
304
- var lineHeightMap = {
303
+ var paragraphLineHeightMap = {
305
304
  tight: "1.4",
306
305
  normal: "1.6",
307
306
  relaxed: "1.75",
308
307
  loose: "2"
309
308
  };
309
+ function getParagraphStyle(props) {
310
+ return {
311
+ fontSize: paragraphSizeMap[props.size],
312
+ fontWeight: paragraphWeightMap[props.weight],
313
+ color: props.color,
314
+ textAlign: props.align,
315
+ lineHeight: paragraphLineHeightMap[props.lineHeight],
316
+ maxWidth: props.maxWidth || void 0,
317
+ margin: 0
318
+ };
319
+ }
320
+
321
+ // components/page/next/Paragraph.tsx
322
+ var import_jsx_runtime4 = require("react/jsx-runtime");
310
323
  function isThemeableValue2(value) {
311
324
  return typeof value === "object" && value !== null && "useTheme" in value;
312
325
  }
@@ -337,23 +350,32 @@ function Paragraph({
337
350
  return "";
338
351
  })();
339
352
  const resolvedColor = (() => {
340
- if (!color) return resolveColor2("foreground");
341
- if (typeof color === "string") return { color, opacity: 100 };
353
+ if (!color)
354
+ return hexToRgba(
355
+ resolveColor2("foreground").color,
356
+ resolveColor2("foreground").opacity
357
+ );
358
+ if (typeof color === "string") return color;
342
359
  if (isThemeableValue2(color)) {
343
- return color.useTheme ? resolveColor2(color.themeKey) : color.value;
360
+ return color.useTheme ? hexToRgba(
361
+ resolveColor2(color.themeKey).color,
362
+ resolveColor2(color.themeKey).opacity
363
+ ) : hexToRgba(color.value.color, color.value.opacity);
344
364
  }
345
- if ("color" in color) return color;
346
- return resolveColor2("foreground");
365
+ if ("color" in color) return hexToRgba(color.color, color.opacity);
366
+ return hexToRgba(
367
+ resolveColor2("foreground").color,
368
+ resolveColor2("foreground").opacity
369
+ );
347
370
  })();
348
- const style = {
349
- fontSize: sizeMap[size],
350
- fontWeight: weightMap[weight],
351
- color: hexToRgba(resolvedColor.color, resolvedColor.opacity),
352
- textAlign: align,
353
- lineHeight: lineHeightMap[lineHeight],
354
- maxWidth: maxWidth || void 0,
355
- margin: 0
356
- };
371
+ const style = getParagraphStyle({
372
+ size,
373
+ weight,
374
+ color: resolvedColor,
375
+ align,
376
+ lineHeight,
377
+ maxWidth
378
+ });
357
379
  if (!resolvedText) return null;
358
380
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { id, style, children: resolvedText });
359
381
  }
@@ -1014,7 +1036,7 @@ function VideoEmbed({
1014
1036
 
1015
1037
  // components/page/Icon.tsx
1016
1038
  var import_jsx_runtime9 = require("react/jsx-runtime");
1017
- var sizeMap2 = {
1039
+ var sizeMap = {
1018
1040
  sm: { size: "16px", strokeWidth: 2 },
1019
1041
  md: { size: "24px", strokeWidth: 2 },
1020
1042
  lg: { size: "32px", strokeWidth: 1.5 },
@@ -1232,7 +1254,7 @@ function Icon({
1232
1254
  return resolveColor2("primary");
1233
1255
  })();
1234
1256
  const IconComponent = icons[name.toLowerCase()] || icons.check;
1235
- const { size: iconSize, strokeWidth } = sizeMap2[size];
1257
+ const { size: iconSize, strokeWidth } = sizeMap[size];
1236
1258
  const colorValue = hexToRgba(resolvedColor.color, resolvedColor.opacity);
1237
1259
  const wrapperStyle = {
1238
1260
  display: "flex",
@@ -1576,7 +1598,7 @@ function Divider({
1576
1598
 
1577
1599
  // components/page/Spacer.tsx
1578
1600
  var import_jsx_runtime15 = require("react/jsx-runtime");
1579
- var sizeMap3 = {
1601
+ var sizeMap2 = {
1580
1602
  xs: "8px",
1581
1603
  sm: "16px",
1582
1604
  md: "24px",
@@ -1587,7 +1609,7 @@ var sizeMap3 = {
1587
1609
  };
1588
1610
  function Spacer({ size = "md", id }) {
1589
1611
  const style = {
1590
- height: sizeMap3[size],
1612
+ height: sizeMap2[size],
1591
1613
  width: "100%"
1592
1614
  };
1593
1615
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { id, style, "aria-hidden": "true" });
@@ -1600,7 +1622,7 @@ var alignmentMap = {
1600
1622
  center: "text-center",
1601
1623
  right: "text-right"
1602
1624
  };
1603
- var sizeMap4 = {
1625
+ var sizeMap3 = {
1604
1626
  small: "text-2xl",
1605
1627
  "medium-small": "text-3xl",
1606
1628
  medium: "text-4xl",
@@ -1689,7 +1711,7 @@ function TextBlock({
1689
1711
  resolvedTitle && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1690
1712
  "h2",
1691
1713
  {
1692
- className: cn("font-bold", sizeMap4[textSize]),
1714
+ className: cn("font-bold", sizeMap3[textSize]),
1693
1715
  style: gradientStyle,
1694
1716
  children: resolvedTitle
1695
1717
  }
@@ -1743,7 +1765,7 @@ function CustomImage({
1743
1765
  // components/page/FeaturesList.tsx
1744
1766
  var import_lucide_react = require("lucide-react");
1745
1767
  var import_jsx_runtime18 = require("react/jsx-runtime");
1746
- var sizeMap5 = {
1768
+ var sizeMap4 = {
1747
1769
  small: { icon: 24, title: "text-base", desc: "text-sm" },
1748
1770
  medium: { icon: 32, title: "text-lg", desc: "text-base" },
1749
1771
  large: { icon: 48, title: "text-xl", desc: "text-lg" }
@@ -1755,7 +1777,7 @@ function FeaturesList({
1755
1777
  iconColor = "#000000",
1756
1778
  anchorLink
1757
1779
  }) {
1758
- const sizeConfig = sizeMap5[size];
1780
+ const sizeConfig = sizeMap4[size];
1759
1781
  const getIcon = (iconName) => {
1760
1782
  const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
1761
1783
  return import_lucide_react.icons[formatted] || null;
@@ -1812,7 +1834,7 @@ function FeaturesList({
1812
1834
  // components/page/FeatureGrid.tsx
1813
1835
  var import_lucide_react2 = require("lucide-react");
1814
1836
  var import_jsx_runtime19 = require("react/jsx-runtime");
1815
- var sizeMap6 = {
1837
+ var sizeMap5 = {
1816
1838
  small: { icon: 24, title: "text-base", desc: "text-sm" },
1817
1839
  medium: { icon: 32, title: "text-lg", desc: "text-base" },
1818
1840
  large: { icon: 48, title: "text-xl", desc: "text-lg" }
@@ -1828,7 +1850,7 @@ function FeatureGrid({
1828
1850
  textColor = "#000000",
1829
1851
  anchorLink
1830
1852
  }) {
1831
- const sizeConfig = sizeMap6[size];
1853
+ const sizeConfig = sizeMap5[size];
1832
1854
  const getIcon = (iconName) => {
1833
1855
  const formatted = iconName.charAt(0).toUpperCase() + iconName.slice(1);
1834
1856
  return import_lucide_react2.icons[formatted] || null;
@@ -2095,7 +2117,7 @@ var widthMap3 = {
2095
2117
  medium: "max-w-lg",
2096
2118
  large: "max-w-2xl"
2097
2119
  };
2098
- var sizeMap7 = {
2120
+ var sizeMap6 = {
2099
2121
  small: "px-3 py-1.5 text-sm",
2100
2122
  medium: "px-4 py-2 text-base",
2101
2123
  large: "px-6 py-3 text-lg"
@@ -2140,7 +2162,7 @@ function Popup({
2140
2162
  onClick: handleOpen,
2141
2163
  className: cn(
2142
2164
  "flex items-center gap-2 rounded-full font-medium",
2143
- sizeMap7[size]
2165
+ sizeMap6[size]
2144
2166
  ),
2145
2167
  style: { backgroundColor: buttonColor, color: textColor },
2146
2168
  children: [
package/dist/index.mjs CHANGED
@@ -14,8 +14,9 @@ import {
14
14
  spacingScale
15
15
  } from "./chunk-A3QDUUOF.mjs";
16
16
  import {
17
- Heading
18
- } from "./chunk-A2J2E524.mjs";
17
+ Heading,
18
+ Paragraph
19
+ } from "./chunk-WFLVAZV2.mjs";
19
20
  import {
20
21
  Button,
21
22
  Card,
@@ -29,7 +30,6 @@ import {
29
30
  Icon,
30
31
  Image,
31
32
  ImageCarousel,
32
- Paragraph,
33
33
  Popup,
34
34
  Section,
35
35
  Spacer,
@@ -37,17 +37,17 @@ import {
37
37
  Topbar,
38
38
  VideoEmbed,
39
39
  availableIcons
40
- } from "./chunk-X6VGLL5Y.mjs";
40
+ } from "./chunk-MWW5LYLN.mjs";
41
41
  import {
42
42
  ThemeProvider,
43
43
  getShadowCSS,
44
44
  shadowPresets,
45
45
  useTheme
46
46
  } from "./chunk-PJXZC564.mjs";
47
+ import "./chunk-QSWQDR6M.mjs";
47
48
  import {
48
49
  DEFAULT_THEME
49
50
  } from "./chunk-C6V3YUPF.mjs";
50
- import "./chunk-QSWQDR6M.mjs";
51
51
  export {
52
52
  Button,
53
53
  Card,
@@ -28,13 +28,18 @@ type HeadingProps = {
28
28
  };
29
29
  declare function Heading({ text, level, size, weight, color, align, letterSpacing, lineHeight, id, }: HeadingProps): react_jsx_runtime.JSX.Element | null;
30
30
 
31
+ type ParagraphSize = "sm" | "base" | "lg" | "xl";
32
+ type ParagraphWeight = "normal" | "medium" | "semibold";
33
+ type ParagraphAlign = "left" | "center" | "right" | "justify";
34
+ type ParagraphLineHeight = "tight" | "normal" | "relaxed" | "loose";
35
+
31
36
  type ParagraphProps = {
32
37
  text?: EntryBoundValue<string> | string;
33
- size?: "sm" | "base" | "lg" | "xl";
34
- weight?: "normal" | "medium" | "semibold";
38
+ size?: ParagraphSize;
39
+ weight?: ParagraphWeight;
35
40
  color?: ThemeableColorValue | ColorValue | string;
36
- align?: "left" | "center" | "right" | "justify";
37
- lineHeight?: "tight" | "normal" | "relaxed" | "loose";
41
+ align?: ParagraphAlign;
42
+ lineHeight?: ParagraphLineHeight;
38
43
  maxWidth?: string;
39
44
  id?: string;
40
45
  puck?: unknown;
@@ -28,13 +28,18 @@ type HeadingProps = {
28
28
  };
29
29
  declare function Heading({ text, level, size, weight, color, align, letterSpacing, lineHeight, id, }: HeadingProps): react_jsx_runtime.JSX.Element | null;
30
30
 
31
+ type ParagraphSize = "sm" | "base" | "lg" | "xl";
32
+ type ParagraphWeight = "normal" | "medium" | "semibold";
33
+ type ParagraphAlign = "left" | "center" | "right" | "justify";
34
+ type ParagraphLineHeight = "tight" | "normal" | "relaxed" | "loose";
35
+
31
36
  type ParagraphProps = {
32
37
  text?: EntryBoundValue<string> | string;
33
- size?: "sm" | "base" | "lg" | "xl";
34
- weight?: "normal" | "medium" | "semibold";
38
+ size?: ParagraphSize;
39
+ weight?: ParagraphWeight;
35
40
  color?: ThemeableColorValue | ColorValue | string;
36
- align?: "left" | "center" | "right" | "justify";
37
- lineHeight?: "tight" | "normal" | "relaxed" | "loose";
41
+ align?: ParagraphAlign;
42
+ lineHeight?: ParagraphLineHeight;
38
43
  maxWidth?: string;
39
44
  id?: string;
40
45
  puck?: unknown;