@techrox/page-studio-blocks 1.0.0 → 1.1.1

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/index.cjs CHANGED
@@ -38,6 +38,18 @@ __export(index_exports, {
38
38
  Divider: () => Divider,
39
39
  EventsList: () => EventsList,
40
40
  FAQ: () => FAQ,
41
+ FormAddress: () => FormAddress,
42
+ FormApplication: () => FormApplication,
43
+ FormBooking: () => FormBooking,
44
+ FormContact: () => FormContact,
45
+ FormFeedback: () => FormFeedback,
46
+ FormLeadCapture: () => FormLeadCapture,
47
+ FormNewsletter: () => FormNewsletter,
48
+ FormQuoteRequest: () => FormQuoteRequest,
49
+ FormRegistration: () => FormRegistration,
50
+ FormSupport: () => FormSupport,
51
+ FormSurvey: () => FormSurvey,
52
+ FormWaitlist: () => FormWaitlist,
41
53
  Hero: () => Hero,
42
54
  IconCards: () => IconCards,
43
55
  ImageCaption: () => ImageCaption,
@@ -66,6 +78,7 @@ __export(index_exports, {
66
78
  StatsStrip: () => StatsStrip,
67
79
  StepsVertical: () => StepsVertical,
68
80
  StudioLink: () => StudioLink,
81
+ THEME_OPTIONS: () => THEME_OPTIONS,
69
82
  TabsBlock: () => TabsBlock,
70
83
  TeamGrid: () => TeamGrid,
71
84
  TestimonialGrid: () => TestimonialGrid,
@@ -81,8 +94,10 @@ __export(index_exports, {
81
94
  defaultOverrides: () => defaultOverrides,
82
95
  emptyPuckData: () => emptyPuckData,
83
96
  normalizePuckData: () => normalizePuckData,
97
+ themeField: () => themeField,
84
98
  useStudio: () => useStudio,
85
- withReveal: () => withReveal
99
+ withReveal: () => withReveal,
100
+ withTheme: () => withTheme
86
101
  });
87
102
  module.exports = __toCommonJS(index_exports);
88
103
 
@@ -160,6 +175,14 @@ var Hero = {
160
175
  { label: "Landing (gradient halo)", value: "landing" },
161
176
  { label: "Simple (plain section)", value: "simple" }
162
177
  ]
178
+ },
179
+ background: {
180
+ type: "radio",
181
+ label: "Background",
182
+ options: [
183
+ { label: "Light", value: "light" },
184
+ { label: "Dark", value: "dark" }
185
+ ]
163
186
  }
164
187
  },
165
188
  defaultProps: {
@@ -171,7 +194,8 @@ var Hero = {
171
194
  secondary_cta_label: "Learn more",
172
195
  secondary_cta_href: "/about",
173
196
  align: "left",
174
- variant: "landing"
197
+ variant: "landing",
198
+ background: "light"
175
199
  },
176
200
  render: ({
177
201
  eyebrow,
@@ -182,10 +206,11 @@ var Hero = {
182
206
  secondary_cta_label,
183
207
  secondary_cta_href,
184
208
  align,
185
- variant
209
+ variant,
210
+ background
186
211
  }) => {
187
212
  const isLanding = variant === "landing";
188
- const sectionClass = isLanding ? "tps-hero" : "tps-section";
213
+ const sectionClass = `${isLanding ? "tps-hero" : "tps-section"}${background === "dark" ? " tps-section-dark" : ""}`;
189
214
  const innerClass = isLanding ? "tps-hero-inner" : "tps-container";
190
215
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
191
216
  "section",
@@ -261,7 +286,8 @@ var StatsStrip = {
261
286
  label: "Background",
262
287
  options: [
263
288
  { label: "Soft", value: "soft" },
264
- { label: "White", value: "white" }
289
+ { label: "White", value: "white" },
290
+ { label: "Dark", value: "dark" }
265
291
  ]
266
292
  }
267
293
  },
@@ -277,7 +303,7 @@ var StatsStrip = {
277
303
  render: ({ items, background }) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
278
304
  "section",
279
305
  {
280
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
306
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
281
307
  style: { paddingTop: 32, paddingBottom: 32 },
282
308
  children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
283
309
  "div",
@@ -343,7 +369,8 @@ var SectionHeader = {
343
369
  label: "Background",
344
370
  options: [
345
371
  { label: "White", value: "white" },
346
- { label: "Soft", value: "soft" }
372
+ { label: "Soft", value: "soft" },
373
+ { label: "Dark", value: "dark" }
347
374
  ]
348
375
  },
349
376
  spacing: {
@@ -369,7 +396,7 @@ var SectionHeader = {
369
396
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
370
397
  "section",
371
398
  {
372
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
399
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
373
400
  style: { paddingTop: pad, paddingBottom: pad },
374
401
  children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
375
402
  "div",
@@ -492,7 +519,8 @@ var PillarsRow = {
492
519
  label: "Background",
493
520
  options: [
494
521
  { label: "White", value: "white" },
495
- { label: "Soft", value: "soft" }
522
+ { label: "Soft", value: "soft" },
523
+ { label: "Dark", value: "dark" }
496
524
  ]
497
525
  }
498
526
  },
@@ -520,7 +548,7 @@ var PillarsRow = {
520
548
  render: ({ items, columns, background }) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
521
549
  "section",
522
550
  {
523
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
551
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
524
552
  style: { paddingTop: 56, paddingBottom: 56 },
525
553
  children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
526
554
  "div",
@@ -536,7 +564,7 @@ var PillarsRow = {
536
564
  "div",
537
565
  {
538
566
  style: {
539
- background: "#fff",
567
+ background: "var(--tps-bg)",
540
568
  border: "1px solid var(--tps-line)",
541
569
  borderRadius: "var(--tps-radius)",
542
570
  padding: 32
@@ -581,7 +609,8 @@ var ApproachSteps = {
581
609
  label: "Background",
582
610
  options: [
583
611
  { label: "White", value: "white" },
584
- { label: "Soft", value: "soft" }
612
+ { label: "Soft", value: "soft" },
613
+ { label: "Dark", value: "dark" }
585
614
  ]
586
615
  }
587
616
  },
@@ -597,7 +626,7 @@ var ApproachSteps = {
597
626
  render: ({ items, background }) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
598
627
  "section",
599
628
  {
600
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
629
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
601
630
  style: { paddingTop: 56, paddingBottom: 56 },
602
631
  children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
603
632
  "div",
@@ -651,7 +680,8 @@ var ServicesGrid = {
651
680
  label: "Background",
652
681
  options: [
653
682
  { label: "White", value: "white" },
654
- { label: "Soft", value: "soft" }
683
+ { label: "Soft", value: "soft" },
684
+ { label: "Dark", value: "dark" }
655
685
  ]
656
686
  }
657
687
  },
@@ -667,7 +697,7 @@ var ServicesGrid = {
667
697
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
668
698
  "section",
669
699
  {
670
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
700
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
671
701
  style: { paddingTop: 56, paddingBottom: 56 },
672
702
  children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "tps-container", children: [
673
703
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { style: { marginBottom: 32 }, children: [
@@ -689,7 +719,7 @@ var ServicesGrid = {
689
719
  style: {
690
720
  display: "block",
691
721
  padding: 24,
692
- background: "#fff",
722
+ background: "var(--tps-bg)",
693
723
  border: "1px solid var(--tps-line)",
694
724
  borderRadius: "var(--tps-radius)",
695
725
  textDecoration: "none",
@@ -747,13 +777,8 @@ var CTABanner = {
747
777
  return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
748
778
  "section",
749
779
  {
750
- className: `tps-section ${!dark ? "tps-section-soft" : ""}`,
751
- style: {
752
- paddingTop: 80,
753
- paddingBottom: 80,
754
- background: dark ? "#0F172A" : void 0,
755
- color: dark ? "#fff" : void 0
756
- },
780
+ className: `tps-section ${!dark ? "tps-section-soft" : "tps-section-dark"}`,
781
+ style: { paddingTop: 80, paddingBottom: 80 },
757
782
  children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "tps-container", style: { textAlign: "center", maxWidth: 720 }, children: [
758
783
  tagline && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
759
784
  "div",
@@ -762,7 +787,7 @@ var CTABanner = {
762
787
  fontSize: 12,
763
788
  fontWeight: 700,
764
789
  letterSpacing: 2,
765
- color: dark ? "#F59E0B" : "var(--tps-accent-dark)",
790
+ color: dark ? "var(--tps-accent)" : "var(--tps-accent-dark)",
766
791
  marginBottom: 12
767
792
  },
768
793
  children: tagline
@@ -772,18 +797,10 @@ var CTABanner = {
772
797
  "h2",
773
798
  {
774
799
  className: "tps-h2",
775
- style: { color: dark ? "#fff" : void 0 },
776
800
  dangerouslySetInnerHTML: { __html: heading_html }
777
801
  }
778
802
  ),
779
- body && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
780
- "p",
781
- {
782
- className: "tps-lede",
783
- style: { margin: "16px auto 32px", color: dark ? "rgba(255,255,255,0.85)" : void 0 },
784
- children: body
785
- }
786
- ),
803
+ body && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "tps-lede", style: { margin: "16px auto 32px" }, children: body }),
787
804
  button_label && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(StudioLink, { href: button_href || "/contact", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(import_antd2.Button, { type: "primary", size: "large", children: [
788
805
  button_label,
789
806
  " ",
@@ -916,7 +933,8 @@ var TwoColumn = {
916
933
  label: "Background",
917
934
  options: [
918
935
  { label: "White", value: "white" },
919
- { label: "Soft", value: "soft" }
936
+ { label: "Soft", value: "soft" },
937
+ { label: "Dark", value: "dark" }
920
938
  ]
921
939
  }
922
940
  },
@@ -930,7 +948,7 @@ var TwoColumn = {
930
948
  render: ({ left_heading, left_body, right_heading, right_body, background }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
931
949
  "section",
932
950
  {
933
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
951
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
934
952
  style: { paddingTop: 56, paddingBottom: 56 },
935
953
  children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
936
954
  "div",
@@ -1231,7 +1249,10 @@ function ContactSectionRender({
1231
1249
  {
1232
1250
  size: "large",
1233
1251
  placeholder: "Select the stage that best describes you",
1234
- options: stagesList.map((s) => ({ value: s, label: s }))
1252
+ options: stagesList.map((s) => {
1253
+ const v = typeof s === "string" ? s : s?.text || String(s);
1254
+ return { value: v, label: v };
1255
+ })
1235
1256
  }
1236
1257
  ) }),
1237
1258
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_antd3.Form.Item, { label: "Which capabilities interest you?", name: "interest", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
@@ -1365,7 +1386,8 @@ var ImageText = {
1365
1386
  label: "Background",
1366
1387
  options: [
1367
1388
  { label: "White", value: "white" },
1368
- { label: "Soft", value: "soft" }
1389
+ { label: "Soft", value: "soft" },
1390
+ { label: "Dark", value: "dark" }
1369
1391
  ]
1370
1392
  }
1371
1393
  },
@@ -1409,7 +1431,7 @@ var ImageText = {
1409
1431
  style: {
1410
1432
  width: "100%",
1411
1433
  aspectRatio: "4 / 3",
1412
- background: "#E2E8F0",
1434
+ background: "var(--tps-line)",
1413
1435
  borderRadius: "var(--tps-radius)",
1414
1436
  display: "flex",
1415
1437
  alignItems: "center",
@@ -1433,7 +1455,7 @@ var ImageText = {
1433
1455
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1434
1456
  "section",
1435
1457
  {
1436
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
1458
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
1437
1459
  style: { paddingTop: 56, paddingBottom: 56 },
1438
1460
  children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1439
1461
  "div",
@@ -1492,7 +1514,8 @@ var VideoEmbed = {
1492
1514
  label: "Background",
1493
1515
  options: [
1494
1516
  { label: "White", value: "white" },
1495
- { label: "Soft", value: "soft" }
1517
+ { label: "Soft", value: "soft" },
1518
+ { label: "Dark", value: "dark" }
1496
1519
  ]
1497
1520
  }
1498
1521
  },
@@ -1508,7 +1531,7 @@ var VideoEmbed = {
1508
1531
  return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1509
1532
  "section",
1510
1533
  {
1511
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
1534
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
1512
1535
  style: { paddingTop: 48, paddingBottom: 48 },
1513
1536
  children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "tps-container", style: { maxWidth: max_width }, children: [
1514
1537
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
@@ -1598,7 +1621,8 @@ var LogoStrip = {
1598
1621
  label: "Background",
1599
1622
  options: [
1600
1623
  { label: "White", value: "white" },
1601
- { label: "Soft", value: "soft" }
1624
+ { label: "Soft", value: "soft" },
1625
+ { label: "Dark", value: "dark" }
1602
1626
  ]
1603
1627
  }
1604
1628
  },
@@ -1616,7 +1640,7 @@ var LogoStrip = {
1616
1640
  render: ({ heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1617
1641
  "section",
1618
1642
  {
1619
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
1643
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
1620
1644
  style: { paddingTop: 40, paddingBottom: 40 },
1621
1645
  children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "tps-container", style: { textAlign: "center" }, children: [
1622
1646
  heading && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
@@ -1861,7 +1885,8 @@ var TestimonialGrid = {
1861
1885
  label: "Background",
1862
1886
  options: [
1863
1887
  { label: "White", value: "white" },
1864
- { label: "Soft", value: "soft" }
1888
+ { label: "Soft", value: "soft" },
1889
+ { label: "Dark", value: "dark" }
1865
1890
  ]
1866
1891
  }
1867
1892
  },
@@ -1894,7 +1919,7 @@ var TestimonialGrid = {
1894
1919
  render: ({ eyebrow, heading, items, columns, background }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1895
1920
  "section",
1896
1921
  {
1897
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
1922
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
1898
1923
  style: { paddingTop: 64, paddingBottom: 64 },
1899
1924
  children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "tps-container", children: [
1900
1925
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { style: { textAlign: "center", marginBottom: 40 }, children: [
@@ -1913,7 +1938,7 @@ var TestimonialGrid = {
1913
1938
  "div",
1914
1939
  {
1915
1940
  style: {
1916
- background: "#fff",
1941
+ background: "var(--tps-bg)",
1917
1942
  border: "1px solid var(--tps-line)",
1918
1943
  borderRadius: "var(--tps-radius)",
1919
1944
  padding: 28,
@@ -2004,7 +2029,8 @@ var FAQ = {
2004
2029
  label: "Background",
2005
2030
  options: [
2006
2031
  { label: "White", value: "white" },
2007
- { label: "Soft", value: "soft" }
2032
+ { label: "Soft", value: "soft" },
2033
+ { label: "Dark", value: "dark" }
2008
2034
  ]
2009
2035
  }
2010
2036
  },
@@ -2030,7 +2056,7 @@ var FAQ = {
2030
2056
  render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2031
2057
  "section",
2032
2058
  {
2033
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
2059
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
2034
2060
  style: { paddingTop: 56, paddingBottom: 56 },
2035
2061
  children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
2036
2062
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { style: { marginBottom: 32 }, children: [
@@ -2055,7 +2081,7 @@ var FAQ = {
2055
2081
  }
2056
2082
  ),
2057
2083
  style: {
2058
- background: "#fff",
2084
+ background: "var(--tps-bg)",
2059
2085
  border: "1px solid var(--tps-line)",
2060
2086
  borderRadius: "var(--tps-radius)",
2061
2087
  marginBottom: 12,
@@ -2096,7 +2122,8 @@ var Timeline = {
2096
2122
  label: "Background",
2097
2123
  options: [
2098
2124
  { label: "White", value: "white" },
2099
- { label: "Soft", value: "soft" }
2125
+ { label: "Soft", value: "soft" },
2126
+ { label: "Dark", value: "dark" }
2100
2127
  ]
2101
2128
  }
2102
2129
  },
@@ -2114,7 +2141,7 @@ var Timeline = {
2114
2141
  render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2115
2142
  "section",
2116
2143
  {
2117
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
2144
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
2118
2145
  style: { paddingTop: 56, paddingBottom: 56 },
2119
2146
  children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "tps-container", style: { maxWidth: 720 }, children: [
2120
2147
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { marginBottom: 32 }, children: [
@@ -2166,7 +2193,7 @@ var Timeline = {
2166
2193
  height: 12,
2167
2194
  borderRadius: "50%",
2168
2195
  background: "var(--tps-primary)",
2169
- boxShadow: "0 0 0 4px #fff"
2196
+ boxShadow: "0 0 0 4px var(--tps-bg)"
2170
2197
  }
2171
2198
  }
2172
2199
  ),
@@ -2387,7 +2414,8 @@ var TeamGrid = {
2387
2414
  label: "Background",
2388
2415
  options: [
2389
2416
  { label: "White", value: "white" },
2390
- { label: "Soft", value: "soft" }
2417
+ { label: "Soft", value: "soft" },
2418
+ { label: "Dark", value: "dark" }
2391
2419
  ]
2392
2420
  }
2393
2421
  },
@@ -2423,7 +2451,7 @@ var TeamGrid = {
2423
2451
  render: ({ eyebrow, heading, columns, members, background }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2424
2452
  "section",
2425
2453
  {
2426
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
2454
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
2427
2455
  style: { paddingTop: 64, paddingBottom: 64 },
2428
2456
  children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "tps-container", children: [
2429
2457
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { style: { marginBottom: 40 }, children: [
@@ -2442,7 +2470,7 @@ var TeamGrid = {
2442
2470
  "div",
2443
2471
  {
2444
2472
  style: {
2445
- background: "#fff",
2473
+ background: "var(--tps-bg)",
2446
2474
  border: "1px solid var(--tps-line)",
2447
2475
  borderRadius: "var(--tps-radius)",
2448
2476
  overflow: "hidden"
@@ -2454,7 +2482,7 @@ var TeamGrid = {
2454
2482
  style: {
2455
2483
  width: "100%",
2456
2484
  aspectRatio: "4 / 3",
2457
- background: m.image_url ? `url(${m.image_url}) center/cover` : "#E2E8F0",
2485
+ background: m.image_url ? `url(${m.image_url}) center/cover` : "var(--tps-line)",
2458
2486
  display: "flex",
2459
2487
  alignItems: "center",
2460
2488
  justifyContent: "center",
@@ -2654,6 +2682,15 @@ var ArticleFeatured = {
2654
2682
  { label: "Right", value: "right" },
2655
2683
  { label: "Left", value: "left" }
2656
2684
  ]
2685
+ },
2686
+ background: {
2687
+ type: "radio",
2688
+ label: "Background",
2689
+ options: [
2690
+ { label: "White", value: "white" },
2691
+ { label: "Soft", value: "soft" },
2692
+ { label: "Dark", value: "dark" }
2693
+ ]
2657
2694
  }
2658
2695
  },
2659
2696
  defaultProps: {
@@ -2668,7 +2705,8 @@ var ArticleFeatured = {
2668
2705
  read_minutes: "6 min",
2669
2706
  link_label: "Read more",
2670
2707
  link_href: "#",
2671
- image_position: "right"
2708
+ image_position: "right",
2709
+ background: "white"
2672
2710
  },
2673
2711
  render: ({
2674
2712
  eyebrow,
@@ -2682,7 +2720,8 @@ var ArticleFeatured = {
2682
2720
  read_minutes,
2683
2721
  link_label,
2684
2722
  link_href,
2685
- image_position
2723
+ image_position,
2724
+ background
2686
2725
  }) => {
2687
2726
  const image = /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2688
2727
  "div",
@@ -2773,27 +2812,34 @@ var ArticleFeatured = {
2773
2812
  /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_icons10.ArrowRightOutlined, {})
2774
2813
  ] }) })
2775
2814
  ] });
2776
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("section", { className: "tps-section", style: { paddingTop: 64, paddingBottom: 64 }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tps-container", children: [
2777
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { style: { marginBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "tps-eyebrow", children: eyebrow }) }),
2778
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2779
- "div",
2780
- {
2781
- style: {
2782
- display: "grid",
2783
- gridTemplateColumns: "repeat(auto-fit, minmax(min(320px, 100%), 1fr))",
2784
- gap: 48,
2785
- alignItems: "center"
2786
- },
2787
- children: image_position === "left" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2788
- image,
2789
- text
2790
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2791
- text,
2792
- image
2793
- ] })
2794
- }
2795
- )
2796
- ] }) });
2815
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2816
+ "section",
2817
+ {
2818
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
2819
+ style: { paddingTop: 64, paddingBottom: 64 },
2820
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "tps-container", children: [
2821
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { style: { marginBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "tps-eyebrow", children: eyebrow }) }),
2822
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
2823
+ "div",
2824
+ {
2825
+ style: {
2826
+ display: "grid",
2827
+ gridTemplateColumns: "repeat(auto-fit, minmax(min(320px, 100%), 1fr))",
2828
+ gap: 48,
2829
+ alignItems: "center"
2830
+ },
2831
+ children: image_position === "left" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2832
+ image,
2833
+ text
2834
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
2835
+ text,
2836
+ image
2837
+ ] })
2838
+ }
2839
+ )
2840
+ ] })
2841
+ }
2842
+ );
2797
2843
  }
2798
2844
  };
2799
2845
 
@@ -2840,7 +2886,8 @@ var ArticleGrid = {
2840
2886
  label: "Background",
2841
2887
  options: [
2842
2888
  { label: "White", value: "white" },
2843
- { label: "Soft", value: "soft" }
2889
+ { label: "Soft", value: "soft" },
2890
+ { label: "Dark", value: "dark" }
2844
2891
  ]
2845
2892
  }
2846
2893
  },
@@ -2882,7 +2929,7 @@ var ArticleGrid = {
2882
2929
  render: ({ eyebrow, heading, columns, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
2883
2930
  "section",
2884
2931
  {
2885
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
2932
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
2886
2933
  style: { paddingTop: 64, paddingBottom: 64 },
2887
2934
  children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "tps-container", children: [
2888
2935
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { style: { marginBottom: 40 }, children: [
@@ -2904,7 +2951,7 @@ var ArticleGrid = {
2904
2951
  style: {
2905
2952
  display: "flex",
2906
2953
  flexDirection: "column",
2907
- background: "#fff",
2954
+ background: "var(--tps-bg)",
2908
2955
  border: "1px solid var(--tps-line)",
2909
2956
  borderRadius: "var(--tps-radius)",
2910
2957
  overflow: "hidden",
@@ -2920,7 +2967,7 @@ var ArticleGrid = {
2920
2967
  style: {
2921
2968
  width: "100%",
2922
2969
  aspectRatio: "16 / 10",
2923
- background: a.image_url ? `url(${a.image_url}) center/cover no-repeat` : "#E2E8F0"
2970
+ background: a.image_url ? `url(${a.image_url}) center/cover no-repeat` : "var(--tps-line)"
2924
2971
  }
2925
2972
  }
2926
2973
  ),
@@ -3002,7 +3049,8 @@ var ArticleList = {
3002
3049
  label: "Background",
3003
3050
  options: [
3004
3051
  { label: "White", value: "white" },
3005
- { label: "Soft", value: "soft" }
3052
+ { label: "Soft", value: "soft" },
3053
+ { label: "Dark", value: "dark" }
3006
3054
  ]
3007
3055
  }
3008
3056
  },
@@ -3020,7 +3068,7 @@ var ArticleList = {
3020
3068
  render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3021
3069
  "section",
3022
3070
  {
3023
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
3071
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
3024
3072
  style: { paddingTop: 56, paddingBottom: 56 },
3025
3073
  children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
3026
3074
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { style: { marginBottom: 32 }, children: [
@@ -3163,7 +3211,8 @@ var IconCards = {
3163
3211
  label: "Background",
3164
3212
  options: [
3165
3213
  { label: "White", value: "white" },
3166
- { label: "Soft", value: "soft" }
3214
+ { label: "Soft", value: "soft" },
3215
+ { label: "Dark", value: "dark" }
3167
3216
  ]
3168
3217
  }
3169
3218
  },
@@ -3182,7 +3231,7 @@ var IconCards = {
3182
3231
  render: ({ eyebrow, heading, columns, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3183
3232
  "section",
3184
3233
  {
3185
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
3234
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
3186
3235
  style: { paddingTop: 56, paddingBottom: 56 },
3187
3236
  children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "tps-container", children: [
3188
3237
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { style: { marginBottom: 40 }, children: [
@@ -3204,7 +3253,7 @@ var IconCards = {
3204
3253
  {
3205
3254
  style: {
3206
3255
  padding: 24,
3207
- background: "#fff",
3256
+ background: "var(--tps-bg)",
3208
3257
  border: "1px solid var(--tps-line)",
3209
3258
  borderRadius: "var(--tps-radius)"
3210
3259
  },
@@ -3291,35 +3340,15 @@ var MetricCards = {
3291
3340
  background: "white"
3292
3341
  },
3293
3342
  render: ({ eyebrow, heading, items, background }) => {
3294
- const dark = background === "dark";
3295
3343
  return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3296
3344
  "section",
3297
3345
  {
3298
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
3299
- style: {
3300
- paddingTop: 64,
3301
- paddingBottom: 64,
3302
- background: dark ? "#0F172A" : void 0,
3303
- color: dark ? "#fff" : void 0
3304
- },
3346
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
3347
+ style: { paddingTop: 64, paddingBottom: 64 },
3305
3348
  children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "tps-container", children: [
3306
3349
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { style: { marginBottom: 40 }, children: [
3307
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3308
- "span",
3309
- {
3310
- className: "tps-eyebrow",
3311
- style: { color: dark ? "#F59E0B" : void 0 },
3312
- children: eyebrow
3313
- }
3314
- ),
3315
- heading && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3316
- "h2",
3317
- {
3318
- className: "tps-h2",
3319
- style: { marginTop: 8, color: dark ? "#fff" : void 0 },
3320
- children: heading
3321
- }
3322
- )
3350
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
3351
+ heading && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
3323
3352
  ] }),
3324
3353
  /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
3325
3354
  "div",
@@ -3334,8 +3363,8 @@ var MetricCards = {
3334
3363
  {
3335
3364
  style: {
3336
3365
  padding: 28,
3337
- background: dark ? "rgba(255,255,255,0.04)" : "#fff",
3338
- border: dark ? "1px solid rgba(255,255,255,0.08)" : "1px solid var(--tps-line)",
3366
+ background: "var(--tps-bg)",
3367
+ border: "1px solid var(--tps-line)",
3339
3368
  borderRadius: "var(--tps-radius)"
3340
3369
  },
3341
3370
  children: [
@@ -3345,7 +3374,7 @@ var MetricCards = {
3345
3374
  style: {
3346
3375
  fontSize: "clamp(28px, 6vw, 44px)",
3347
3376
  fontWeight: 800,
3348
- color: dark ? "#fff" : "var(--tps-primary)",
3377
+ color: "var(--tps-primary)",
3349
3378
  letterSpacing: "-0.02em",
3350
3379
  lineHeight: 1.05,
3351
3380
  marginBottom: 12
@@ -3358,7 +3387,7 @@ var MetricCards = {
3358
3387
  {
3359
3388
  style: {
3360
3389
  fontSize: 14,
3361
- color: dark ? "rgba(255,255,255,0.85)" : "var(--tps-ink-2)",
3390
+ color: "var(--tps-ink-2)",
3362
3391
  lineHeight: 1.55,
3363
3392
  marginBottom: m.delta ? 12 : 0
3364
3393
  },
@@ -3437,7 +3466,8 @@ var ImageOverlayCards = {
3437
3466
  label: "Background",
3438
3467
  options: [
3439
3468
  { label: "White", value: "white" },
3440
- { label: "Soft", value: "soft" }
3469
+ { label: "Soft", value: "soft" },
3470
+ { label: "Dark", value: "dark" }
3441
3471
  ]
3442
3472
  }
3443
3473
  },
@@ -3455,7 +3485,7 @@ var ImageOverlayCards = {
3455
3485
  render: ({ eyebrow, heading, columns, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
3456
3486
  "section",
3457
3487
  {
3458
- className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`,
3488
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
3459
3489
  style: { paddingTop: 64, paddingBottom: 64 },
3460
3490
  children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "tps-container", children: [
3461
3491
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { style: { marginBottom: 40 }, children: [
@@ -3608,7 +3638,7 @@ var PricingTable = {
3608
3638
  background: {
3609
3639
  type: "radio",
3610
3640
  label: "Background",
3611
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
3641
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
3612
3642
  }
3613
3643
  },
3614
3644
  defaultProps: {
@@ -3621,7 +3651,7 @@ var PricingTable = {
3621
3651
  ],
3622
3652
  background: "soft"
3623
3653
  },
3624
- render: ({ eyebrow, heading, tiers, background }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 64, paddingBottom: 64 }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "tps-container", children: [
3654
+ render: ({ eyebrow, heading, tiers, background }) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 64, paddingBottom: 64 }, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "tps-container", children: [
3625
3655
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { style: { textAlign: "center", marginBottom: 40 }, children: [
3626
3656
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
3627
3657
  heading && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -3631,7 +3661,7 @@ var PricingTable = {
3631
3661
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { style: {
3632
3662
  position: "relative",
3633
3663
  padding: 28,
3634
- background: t.highlighted ? "var(--tps-primary)" : "#fff",
3664
+ background: t.highlighted ? "var(--tps-primary)" : "var(--tps-bg)",
3635
3665
  color: t.highlighted ? "#fff" : "var(--tps-ink)",
3636
3666
  border: t.highlighted ? "none" : "1px solid var(--tps-line)",
3637
3667
  borderRadius: "var(--tps-radius)",
@@ -3689,7 +3719,7 @@ var PricingComparison = {
3689
3719
  background: {
3690
3720
  type: "radio",
3691
3721
  label: "Background",
3692
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
3722
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
3693
3723
  }
3694
3724
  },
3695
3725
  defaultProps: {
@@ -3708,12 +3738,12 @@ var PricingComparison = {
3708
3738
  },
3709
3739
  render: ({ eyebrow, heading, tiers, rows, background }) => {
3710
3740
  const tierList = tiers || [];
3711
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "tps-container", style: { maxWidth: 940 }, children: [
3741
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "tps-container", style: { maxWidth: 940 }, children: [
3712
3742
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { style: { marginBottom: 32, textAlign: "center" }, children: [
3713
3743
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
3714
3744
  heading && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
3715
3745
  ] }),
3716
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { style: { overflowX: "auto", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", background: "#fff" }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("table", { style: { width: "100%", borderCollapse: "collapse" }, children: [
3746
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { style: { overflowX: "auto", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", background: "var(--tps-bg)" }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("table", { style: { width: "100%", borderCollapse: "collapse" }, children: [
3717
3747
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("tr", { children: [
3718
3748
  /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("th", { style: { textAlign: "left", padding: "14px 16px", fontSize: 13, fontWeight: 700, color: "var(--tps-muted)", borderBottom: "1px solid var(--tps-line)" }, children: "Feature" }),
3719
3749
  tierList.map((t, i) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("th", { style: { textAlign: "center", padding: "14px 16px", fontSize: 13, fontWeight: 700, color: "var(--tps-ink)", borderBottom: "1px solid var(--tps-line)" }, children: t.name }, i))
@@ -3756,7 +3786,7 @@ var AwardsBar = {
3756
3786
  background: {
3757
3787
  type: "radio",
3758
3788
  label: "Background",
3759
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
3789
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
3760
3790
  }
3761
3791
  },
3762
3792
  defaultProps: {
@@ -3768,7 +3798,7 @@ var AwardsBar = {
3768
3798
  ],
3769
3799
  background: "white"
3770
3800
  },
3771
- render: ({ heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "tps-container", style: { textAlign: "center" }, children: [
3801
+ render: ({ heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "tps-container", style: { textAlign: "center" }, children: [
3772
3802
  heading && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("h3", { style: { fontSize: 13, fontWeight: 700, letterSpacing: 1.5, color: "var(--tps-muted)", textTransform: "uppercase", marginBottom: 32 }, children: heading }),
3773
3803
  /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(220px, 100%), 1fr))", gap: 24 }, children: (items || []).map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: 8, padding: 16 }, children: [
3774
3804
  /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_icons17.TrophyOutlined, { style: { fontSize: 28, color: "var(--tps-accent)" } }),
@@ -3886,7 +3916,7 @@ var ImageGallery = {
3886
3916
  background: {
3887
3917
  type: "radio",
3888
3918
  label: "Background",
3889
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
3919
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
3890
3920
  }
3891
3921
  },
3892
3922
  defaultProps: {
@@ -3900,7 +3930,7 @@ var ImageGallery = {
3900
3930
  ],
3901
3931
  background: "white"
3902
3932
  },
3903
- render: ({ eyebrow, heading, columns, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tps-container", children: [
3933
+ render: ({ eyebrow, heading, columns, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "tps-container", children: [
3904
3934
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { style: { marginBottom: 32 }, children: [
3905
3935
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
3906
3936
  heading && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -3913,7 +3943,7 @@ var ImageGallery = {
3913
3943
  alt: img.alt || "",
3914
3944
  style: { borderRadius: "var(--tps-radius)", objectFit: "cover", aspectRatio: "4 / 3", width: "100%" }
3915
3945
  }
3916
- ) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { aspectRatio: "4 / 3", background: "#E2E8F0", borderRadius: "var(--tps-radius)", display: "flex", alignItems: "center", justifyContent: "center", color: "#94A3B8", fontSize: 12 }, children: "Image" }),
3946
+ ) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { style: { aspectRatio: "4 / 3", background: "var(--tps-line)", borderRadius: "var(--tps-radius)", display: "flex", alignItems: "center", justifyContent: "center", color: "#94A3B8", fontSize: 12 }, children: "Image" }),
3917
3947
  img.caption && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("figcaption", { style: { marginTop: 6, fontSize: 12, color: "var(--tps-muted)" }, children: img.caption })
3918
3948
  ] }, i)) }) })
3919
3949
  ] }) })
@@ -3966,7 +3996,7 @@ var InlineCTA = {
3966
3996
  background: {
3967
3997
  type: "radio",
3968
3998
  label: "Background",
3969
- options: [{ label: "Soft", value: "soft" }, { label: "Primary", value: "primary" }]
3999
+ options: [{ label: "Soft", value: "soft" }, { label: "Primary", value: "primary" }, { label: "Dark", value: "dark" }]
3970
4000
  }
3971
4001
  },
3972
4002
  defaultProps: {
@@ -3978,7 +4008,7 @@ var InlineCTA = {
3978
4008
  },
3979
4009
  render: ({ headline, body, button_label, button_href, background }) => {
3980
4010
  const primary = background === "primary";
3981
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("section", { className: "tps-section", style: { paddingTop: 24, paddingBottom: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { style: {
4011
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("section", { className: `tps-section${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 24, paddingBottom: 24 }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "tps-container", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { style: {
3982
4012
  display: "flex",
3983
4013
  flexWrap: "wrap",
3984
4014
  alignItems: "center",
@@ -4122,7 +4152,7 @@ var KeyValueList = {
4122
4152
  background: {
4123
4153
  type: "radio",
4124
4154
  label: "Background",
4125
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4155
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4126
4156
  }
4127
4157
  },
4128
4158
  defaultProps: {
@@ -4136,7 +4166,7 @@ var KeyValueList = {
4136
4166
  ],
4137
4167
  background: "white"
4138
4168
  },
4139
- render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4169
+ render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4140
4170
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { style: { marginBottom: 24 }, children: [
4141
4171
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4142
4172
  heading && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -4168,7 +4198,7 @@ var StepsVertical = {
4168
4198
  background: {
4169
4199
  type: "radio",
4170
4200
  label: "Background",
4171
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4201
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4172
4202
  }
4173
4203
  },
4174
4204
  defaultProps: {
@@ -4182,7 +4212,7 @@ var StepsVertical = {
4182
4212
  ],
4183
4213
  background: "white"
4184
4214
  },
4185
- render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4215
+ render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4186
4216
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { style: { marginBottom: 32 }, children: [
4187
4217
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4188
4218
  heading && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -4218,7 +4248,7 @@ var TabsBlock = {
4218
4248
  background: {
4219
4249
  type: "radio",
4220
4250
  label: "Background",
4221
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4251
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4222
4252
  }
4223
4253
  },
4224
4254
  defaultProps: {
@@ -4231,7 +4261,7 @@ var TabsBlock = {
4231
4261
  ],
4232
4262
  background: "white"
4233
4263
  },
4234
- render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "tps-container", style: { maxWidth: 920 }, children: [
4264
+ render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "tps-container", style: { maxWidth: 920 }, children: [
4235
4265
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { style: { marginBottom: 32 }, children: [
4236
4266
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4237
4267
  heading && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -4275,7 +4305,7 @@ var AccordionBlock = {
4275
4305
  background: {
4276
4306
  type: "radio",
4277
4307
  label: "Background",
4278
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4308
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4279
4309
  }
4280
4310
  },
4281
4311
  defaultProps: {
@@ -4288,7 +4318,7 @@ var AccordionBlock = {
4288
4318
  multiple_open: false,
4289
4319
  background: "white"
4290
4320
  },
4291
- render: ({ eyebrow, heading, items, multiple_open, background }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4321
+ render: ({ eyebrow, heading, items, multiple_open, background }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "tps-container", style: { maxWidth: 820 }, children: [
4292
4322
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { style: { marginBottom: 24 }, children: [
4293
4323
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4294
4324
  heading && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
@@ -4304,7 +4334,7 @@ var AccordionBlock = {
4304
4334
  key: String(i),
4305
4335
  label: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { style: { fontSize: 15, fontWeight: 600, color: "var(--tps-ink)" }, children: it.title }),
4306
4336
  children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { style: { color: "var(--tps-ink-2)", lineHeight: 1.7 }, dangerouslySetInnerHTML: { __html: it.content_html || "" } }),
4307
- style: { background: "#fff", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", marginBottom: 10, overflow: "hidden" }
4337
+ style: { background: "var(--tps-bg)", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", marginBottom: 10, overflow: "hidden" }
4308
4338
  }))
4309
4339
  }
4310
4340
  )
@@ -4350,7 +4380,7 @@ var SocialLinks = {
4350
4380
  background: {
4351
4381
  type: "radio",
4352
4382
  label: "Background",
4353
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4383
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4354
4384
  }
4355
4385
  },
4356
4386
  defaultProps: {
@@ -4363,7 +4393,7 @@ var SocialLinks = {
4363
4393
  ],
4364
4394
  background: "white"
4365
4395
  },
4366
- render: ({ label, align, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 32, paddingBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "tps-container", style: { textAlign: align }, children: [
4396
+ render: ({ label, align, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 32, paddingBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "tps-container", style: { textAlign: align }, children: [
4367
4397
  label && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { style: { fontSize: 12, fontWeight: 700, letterSpacing: 1.5, color: "var(--tps-muted)", textTransform: "uppercase", marginBottom: 12 }, children: label }),
4368
4398
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { style: { display: "inline-flex", gap: 14 }, children: (items || []).filter((l) => l.href).map((l, i) => {
4369
4399
  const Icon = (NETWORKS[l.network] || NETWORKS.linkedin).icon;
@@ -4398,7 +4428,7 @@ var ContactInfo = {
4398
4428
  background: {
4399
4429
  type: "radio",
4400
4430
  label: "Background",
4401
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
4431
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4402
4432
  }
4403
4433
  },
4404
4434
  defaultProps: {
@@ -4410,12 +4440,12 @@ var ContactInfo = {
4410
4440
  hours: "Mon\u2013Fri \xB7 09:00\u201318:00",
4411
4441
  background: "soft"
4412
4442
  },
4413
- render: ({ eyebrow, heading, email, phone, address, hours, background }) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "tps-container", style: { maxWidth: 720 }, children: [
4443
+ render: ({ eyebrow, heading, email, phone, address, hours, background }) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { className: "tps-container", style: { maxWidth: 720 }, children: [
4414
4444
  (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { style: { marginBottom: 24 }, children: [
4415
4445
  eyebrow && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4416
4446
  heading && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
4417
4447
  ] }),
4418
- /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { style: { background: "#fff", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", padding: 28 }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(200px, 100%), 1fr))", gap: 20 }, children: [
4448
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { style: { background: "var(--tps-bg)", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)", padding: 28 }, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(200px, 100%), 1fr))", gap: 20 }, children: [
4419
4449
  email && /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { children: [
4420
4450
  /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 8, color: "var(--tps-muted)", fontSize: 12, fontWeight: 700, letterSpacing: 1, textTransform: "uppercase", marginBottom: 6 }, children: [
4421
4451
  /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_icons20.MailOutlined, {}),
@@ -4476,9 +4506,924 @@ var MapEmbed = {
4476
4506
  ] }) })
4477
4507
  };
4478
4508
 
4479
- // src/blocks/EventsList.jsx
4509
+ // src/blocks/_FormBlockBase.jsx
4510
+ var import_react6 = require("react");
4511
+ var import_antd14 = require("antd");
4512
+ var import_icons22 = require("@ant-design/icons");
4513
+
4514
+ // src/blocks/_DynamicFormField.jsx
4515
+ var import_antd13 = require("antd");
4480
4516
  var import_icons21 = require("@ant-design/icons");
4481
4517
  var import_jsx_runtime48 = require("react/jsx-runtime");
4518
+ var COUNTRY_OPTIONS = [
4519
+ { value: "AU", label: "Australia" },
4520
+ { value: "AT", label: "Austria" },
4521
+ { value: "BE", label: "Belgium" },
4522
+ { value: "BR", label: "Brazil" },
4523
+ { value: "CA", label: "Canada" },
4524
+ { value: "CN", label: "China" },
4525
+ { value: "DK", label: "Denmark" },
4526
+ { value: "EG", label: "Egypt" },
4527
+ { value: "FI", label: "Finland" },
4528
+ { value: "FR", label: "France" },
4529
+ { value: "DE", label: "Germany" },
4530
+ { value: "GH", label: "Ghana" },
4531
+ { value: "GR", label: "Greece" },
4532
+ { value: "HK", label: "Hong Kong" },
4533
+ { value: "IN", label: "India" },
4534
+ { value: "ID", label: "Indonesia" },
4535
+ { value: "IE", label: "Ireland" },
4536
+ { value: "IL", label: "Israel" },
4537
+ { value: "IT", label: "Italy" },
4538
+ { value: "JP", label: "Japan" },
4539
+ { value: "KE", label: "Kenya" },
4540
+ { value: "MY", label: "Malaysia" },
4541
+ { value: "MX", label: "Mexico" },
4542
+ { value: "NL", label: "Netherlands" },
4543
+ { value: "NZ", label: "New Zealand" },
4544
+ { value: "NG", label: "Nigeria" },
4545
+ { value: "NO", label: "Norway" },
4546
+ { value: "PK", label: "Pakistan" },
4547
+ { value: "PH", label: "Philippines" },
4548
+ { value: "PL", label: "Poland" },
4549
+ { value: "PT", label: "Portugal" },
4550
+ { value: "QA", label: "Qatar" },
4551
+ { value: "SA", label: "Saudi Arabia" },
4552
+ { value: "SG", label: "Singapore" },
4553
+ { value: "ZA", label: "South Africa" },
4554
+ { value: "KR", label: "South Korea" },
4555
+ { value: "ES", label: "Spain" },
4556
+ { value: "SE", label: "Sweden" },
4557
+ { value: "CH", label: "Switzerland" },
4558
+ { value: "TW", label: "Taiwan" },
4559
+ { value: "TH", label: "Thailand" },
4560
+ { value: "TR", label: "Turkey" },
4561
+ { value: "AE", label: "UAE" },
4562
+ { value: "GB", label: "United Kingdom" },
4563
+ { value: "US", label: "United States" },
4564
+ { value: "VN", label: "Vietnam" }
4565
+ ];
4566
+ var GENDER_OPTIONS = [
4567
+ { value: "male", label: "Male" },
4568
+ { value: "female", label: "Female" },
4569
+ { value: "nonbinary", label: "Non-binary" },
4570
+ { value: "prefer_not", label: "Prefer not to say" }
4571
+ ];
4572
+ function parseOptions(str) {
4573
+ if (!str) return [];
4574
+ return str.split("\n").map((s) => s.trim()).filter(Boolean).map((s) => ({ value: s, label: s }));
4575
+ }
4576
+ function buildRules(field) {
4577
+ const isRequired = field.required === "yes" || field.required === true;
4578
+ const rules = [];
4579
+ if (isRequired) {
4580
+ rules.push({ required: true, message: `${field.label || "This field"} is required` });
4581
+ }
4582
+ switch (field.validation) {
4583
+ case "email":
4584
+ rules.push({ type: "email", message: "Enter a valid email address" });
4585
+ break;
4586
+ case "url":
4587
+ rules.push({ type: "url", message: "Enter a valid URL" });
4588
+ break;
4589
+ case "phone":
4590
+ rules.push({ pattern: /^\+?[\d\s\-().]{7,20}$/, message: "Enter a valid phone number" });
4591
+ break;
4592
+ case "number_positive":
4593
+ rules.push({ type: "number", min: 0, message: "Must be a positive number" });
4594
+ break;
4595
+ case "min6":
4596
+ rules.push({ min: 6, message: "Must be at least 6 characters" });
4597
+ break;
4598
+ case "min8":
4599
+ rules.push({ min: 8, message: "Must be at least 8 characters" });
4600
+ break;
4601
+ default:
4602
+ break;
4603
+ }
4604
+ return rules;
4605
+ }
4606
+ function DynamicFormField({ field }) {
4607
+ const {
4608
+ field_type = "text",
4609
+ field_key,
4610
+ label,
4611
+ placeholder,
4612
+ help_text,
4613
+ options,
4614
+ default_value
4615
+ } = field;
4616
+ if (!field_key) return null;
4617
+ const rules = buildRules(field);
4618
+ const opts = parseOptions(options);
4619
+ const lg = { size: "large" };
4620
+ if (field_type === "upload") {
4621
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4622
+ import_antd13.Form.Item,
4623
+ {
4624
+ name: field_key,
4625
+ label,
4626
+ valuePropName: "fileList",
4627
+ getValueFromEvent: (e) => Array.isArray(e) ? e : e?.fileList,
4628
+ rules,
4629
+ help: help_text || void 0,
4630
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Upload, { beforeUpload: () => false, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Button, { icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_icons21.UploadOutlined, {}), children: placeholder || "Choose file" }) })
4631
+ }
4632
+ );
4633
+ }
4634
+ if (field_type === "checkbox") {
4635
+ const isRequired = field.required === "yes" || field.required === true;
4636
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4637
+ import_antd13.Form.Item,
4638
+ {
4639
+ name: field_key,
4640
+ valuePropName: "checked",
4641
+ rules: isRequired ? [
4642
+ {
4643
+ validator: (_, value) => value ? Promise.resolve() : Promise.reject(
4644
+ new Error(help_text || `${label || "This field"} is required`)
4645
+ )
4646
+ }
4647
+ ] : [],
4648
+ style: { marginBottom: 16 },
4649
+ children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Checkbox, { children: label })
4650
+ }
4651
+ );
4652
+ }
4653
+ const initialValue = field_type === "date" || field_type === "rating" ? void 0 : default_value || void 0;
4654
+ let control;
4655
+ switch (field_type) {
4656
+ case "email":
4657
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Input, { ...lg, placeholder, type: "email" });
4658
+ break;
4659
+ case "tel":
4660
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Input, { ...lg, placeholder, type: "tel" });
4661
+ break;
4662
+ case "textarea":
4663
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Input.TextArea, { rows: 4, placeholder });
4664
+ break;
4665
+ case "number":
4666
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.InputNumber, { size: "large", style: { width: "100%" }, placeholder });
4667
+ break;
4668
+ case "currency":
4669
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4670
+ import_antd13.InputNumber,
4671
+ {
4672
+ size: "large",
4673
+ style: { width: "100%" },
4674
+ placeholder,
4675
+ prefix: "$",
4676
+ precision: 2,
4677
+ formatter: (v) => `${v}`.replace(/\B(?=(\d{3})+(?!\d))/g, ","),
4678
+ parser: (v) => v?.replace(/[^\d.]/g, "")
4679
+ }
4680
+ );
4681
+ break;
4682
+ case "select":
4683
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Select, { ...lg, placeholder, options: opts });
4684
+ break;
4685
+ case "multiselect":
4686
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Select, { ...lg, mode: "multiple", placeholder, options: opts });
4687
+ break;
4688
+ case "radio":
4689
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Radio.Group, { options: opts });
4690
+ break;
4691
+ case "checkbox_group":
4692
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Checkbox.Group, { options: opts });
4693
+ break;
4694
+ case "date":
4695
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.DatePicker, { size: "large", style: { width: "100%" }, placeholder });
4696
+ break;
4697
+ case "rating":
4698
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Rate, {});
4699
+ break;
4700
+ case "country":
4701
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4702
+ import_antd13.Select,
4703
+ {
4704
+ ...lg,
4705
+ showSearch: true,
4706
+ placeholder: placeholder || "Select country",
4707
+ options: COUNTRY_OPTIONS,
4708
+ filterOption: (input, opt) => opt.label.toLowerCase().includes(input.toLowerCase())
4709
+ }
4710
+ );
4711
+ break;
4712
+ case "gender":
4713
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Select, { ...lg, placeholder: placeholder || "Select gender", options: GENDER_OPTIONS });
4714
+ break;
4715
+ case "otp":
4716
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Input.OTP, { length: 6 });
4717
+ break;
4718
+ default:
4719
+ control = /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_antd13.Input, { ...lg, placeholder });
4720
+ }
4721
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
4722
+ import_antd13.Form.Item,
4723
+ {
4724
+ label,
4725
+ name: field_key,
4726
+ rules,
4727
+ help: help_text || void 0,
4728
+ initialValue,
4729
+ children: control
4730
+ }
4731
+ );
4732
+ }
4733
+
4734
+ // src/blocks/_FormBlockBase.jsx
4735
+ var import_jsx_runtime49 = require("react/jsx-runtime");
4736
+ var FORM_FIELD_ARRAY_DEF = {
4737
+ type: "array",
4738
+ label: "Form fields",
4739
+ arrayFields: {
4740
+ field_type: {
4741
+ type: "select",
4742
+ label: "Field type",
4743
+ options: [
4744
+ { value: "text", label: "Text" },
4745
+ { value: "email", label: "Email" },
4746
+ { value: "tel", label: "Phone" },
4747
+ { value: "textarea", label: "Long text" },
4748
+ { value: "number", label: "Number" },
4749
+ { value: "currency", label: "Currency" },
4750
+ { value: "select", label: "Dropdown (single)" },
4751
+ { value: "multiselect", label: "Dropdown (multiple)" },
4752
+ { value: "radio", label: "Radio buttons" },
4753
+ { value: "checkbox", label: "Checkbox / agree" },
4754
+ { value: "checkbox_group", label: "Checkbox group" },
4755
+ { value: "date", label: "Date picker" },
4756
+ { value: "rating", label: "Star rating" },
4757
+ { value: "upload", label: "File upload" },
4758
+ { value: "country", label: "Country select" },
4759
+ { value: "gender", label: "Gender select" },
4760
+ { value: "otp", label: "OTP code" }
4761
+ ]
4762
+ },
4763
+ field_key: { type: "text", label: "Field key (unique identifier)" },
4764
+ label: { type: "text", label: "Label" },
4765
+ placeholder: { type: "text", label: "Placeholder text" },
4766
+ required: {
4767
+ type: "radio",
4768
+ label: "Required",
4769
+ options: [
4770
+ { value: "no", label: "No" },
4771
+ { value: "yes", label: "Yes" }
4772
+ ]
4773
+ },
4774
+ width: {
4775
+ type: "radio",
4776
+ label: "Width",
4777
+ options: [
4778
+ { value: "full", label: "Full width" },
4779
+ { value: "half", label: "Half width" }
4780
+ ]
4781
+ },
4782
+ options: {
4783
+ type: "textarea",
4784
+ label: "Options \u2014 one per line (dropdown, radio, checkboxes)"
4785
+ },
4786
+ default_value: { type: "text", label: "Default value" },
4787
+ help_text: { type: "text", label: "Help / hint text" },
4788
+ validation: {
4789
+ type: "select",
4790
+ label: "Validation preset",
4791
+ options: [
4792
+ { value: "none", label: "None" },
4793
+ { value: "email", label: "Email format" },
4794
+ { value: "phone", label: "Phone format" },
4795
+ { value: "url", label: "URL / website" },
4796
+ { value: "number_positive", label: "Positive number" },
4797
+ { value: "min6", label: "Min. 6 characters" },
4798
+ { value: "min8", label: "Min. 8 characters" }
4799
+ ]
4800
+ }
4801
+ },
4802
+ getItemSummary: (item, i) => `${item?.label || item?.field_key || `Field ${i + 1}`} (${item?.field_type || "text"})`,
4803
+ defaultItemProps: {
4804
+ field_type: "text",
4805
+ field_key: "",
4806
+ label: "New field",
4807
+ placeholder: "",
4808
+ required: "no",
4809
+ width: "full",
4810
+ options: "",
4811
+ default_value: "",
4812
+ help_text: "",
4813
+ validation: "none"
4814
+ }
4815
+ };
4816
+ var COMMON_FORM_FIELDS = {
4817
+ form_heading: { type: "text", label: "Heading" },
4818
+ form_lede: { type: "textarea", label: "Lede" },
4819
+ form_submit_label: { type: "text", label: "Submit button label" },
4820
+ form_privacy_html: { type: "textarea", label: "Privacy footer (HTML allowed)" },
4821
+ success_heading: { type: "text", label: "Success heading" },
4822
+ success_body: { type: "textarea", label: "Success body" },
4823
+ background: {
4824
+ type: "radio",
4825
+ label: "Background",
4826
+ options: [
4827
+ { label: "White", value: "white" },
4828
+ { label: "Soft", value: "soft" },
4829
+ { label: "Dark", value: "dark" }
4830
+ ]
4831
+ },
4832
+ fields: FORM_FIELD_ARRAY_DEF
4833
+ };
4834
+ var COMMON_FORM_DEFAULTS = {
4835
+ form_heading: "",
4836
+ form_lede: "",
4837
+ form_submit_label: "Submit",
4838
+ form_privacy_html: "We respect your privacy. Your information is kept secure and never sold.",
4839
+ success_heading: "Thank you.",
4840
+ success_body: "We've received your submission and will be in touch shortly.",
4841
+ background: "white"
4842
+ };
4843
+ function groupIntoRows(fields) {
4844
+ const rows = [];
4845
+ let buffer = [];
4846
+ for (const f of fields) {
4847
+ if (!f?.field_key) continue;
4848
+ if (f.width === "half") {
4849
+ buffer.push(f);
4850
+ if (buffer.length === 2) {
4851
+ rows.push(buffer);
4852
+ buffer = [];
4853
+ }
4854
+ } else {
4855
+ if (buffer.length > 0) {
4856
+ rows.push(buffer);
4857
+ buffer = [];
4858
+ }
4859
+ rows.push([f]);
4860
+ }
4861
+ }
4862
+ if (buffer.length > 0) rows.push(buffer);
4863
+ return rows;
4864
+ }
4865
+ function SuccessState({ heading, body, onReset }) {
4866
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { style: { textAlign: "center", padding: "48px 24px" }, children: [
4867
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4868
+ import_icons22.CheckCircleOutlined,
4869
+ {
4870
+ style: { fontSize: 48, color: "var(--tps-primary, #0b60d8)", marginBottom: 20 }
4871
+ }
4872
+ ),
4873
+ heading && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h3", { className: "tps-h3", style: { marginBottom: 12 }, children: heading }),
4874
+ body && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "tps-lede", style: { margin: "0 auto 24px", maxWidth: 480 }, children: body }),
4875
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_antd14.Button, { type: "link", onClick: onReset, style: { padding: 0 }, children: "Submit another response" })
4876
+ ] });
4877
+ }
4878
+ function FormBlockBase({
4879
+ form_heading,
4880
+ form_lede,
4881
+ form_submit_label,
4882
+ form_privacy_html,
4883
+ success_heading,
4884
+ success_body,
4885
+ background = "white",
4886
+ fields = []
4887
+ }) {
4888
+ const [form] = import_antd14.Form.useForm();
4889
+ const { message } = import_antd14.App.useApp();
4890
+ const { submitLead, track } = useStudio();
4891
+ const [submitting, setSubmitting] = (0, import_react6.useState)(false);
4892
+ const [submitted, setSubmitted] = (0, import_react6.useState)(false);
4893
+ const [started, setStarted] = (0, import_react6.useState)(false);
4894
+ const validFields = Array.isArray(fields) ? fields.filter((f) => f?.field_key && f?.field_type) : [];
4895
+ const rows = groupIntoRows(validFields);
4896
+ const onFinish = async (values) => {
4897
+ setSubmitting(true);
4898
+ try {
4899
+ await submitLead({ ...values, source: "form_block" });
4900
+ track("form_submit");
4901
+ form.resetFields();
4902
+ setSubmitted(true);
4903
+ } catch (err) {
4904
+ message.error(err?.message || "Something went wrong. Please try again.");
4905
+ } finally {
4906
+ setSubmitting(false);
4907
+ }
4908
+ };
4909
+ const onValuesChange = () => {
4910
+ if (!started) {
4911
+ setStarted(true);
4912
+ track("form_start");
4913
+ }
4914
+ };
4915
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4916
+ "section",
4917
+ {
4918
+ className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`,
4919
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "tps-container", children: [
4920
+ (form_heading || form_lede) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { style: { marginBottom: 40, maxWidth: 640 }, children: [
4921
+ form_heading && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("h2", { className: "tps-h2", children: form_heading }),
4922
+ form_lede && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "tps-lede", style: { marginBottom: 0 }, children: form_lede })
4923
+ ] }),
4924
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "tps-form-card", style: { maxWidth: 720 }, children: submitted ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4925
+ SuccessState,
4926
+ {
4927
+ heading: success_heading,
4928
+ body: success_body,
4929
+ onReset: () => setSubmitted(false)
4930
+ }
4931
+ ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
4932
+ import_antd14.Form,
4933
+ {
4934
+ form,
4935
+ layout: "vertical",
4936
+ onFinish,
4937
+ onValuesChange,
4938
+ requiredMark: false,
4939
+ children: [
4940
+ rows.map((row, ri) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_antd14.Row, { gutter: 16, children: row.map((field) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_antd14.Col, { xs: 24, sm: row.length > 1 ? 12 : 24, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(DynamicFormField, { field }) }, field.field_key)) }, ri)),
4941
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_antd14.Form.Item, { style: { marginTop: 8, marginBottom: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4942
+ import_antd14.Button,
4943
+ {
4944
+ type: "primary",
4945
+ size: "large",
4946
+ htmlType: "submit",
4947
+ loading: submitting,
4948
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_icons22.SendOutlined, {}),
4949
+ style: { minWidth: 180, height: 48, fontWeight: 600 },
4950
+ children: form_submit_label || "Submit"
4951
+ }
4952
+ ) }),
4953
+ form_privacy_html && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
4954
+ "p",
4955
+ {
4956
+ style: {
4957
+ fontSize: 13,
4958
+ color: "var(--tps-muted)",
4959
+ marginTop: 16,
4960
+ marginBottom: 0
4961
+ },
4962
+ dangerouslySetInnerHTML: { __html: form_privacy_html }
4963
+ }
4964
+ )
4965
+ ]
4966
+ }
4967
+ ) })
4968
+ ] })
4969
+ }
4970
+ );
4971
+ }
4972
+
4973
+ // src/blocks/FormContact.jsx
4974
+ var import_jsx_runtime50 = require("react/jsx-runtime");
4975
+ var FormContact = {
4976
+ label: "Contact form",
4977
+ fields: COMMON_FORM_FIELDS,
4978
+ defaultProps: {
4979
+ ...COMMON_FORM_DEFAULTS,
4980
+ form_heading: "Get in touch",
4981
+ form_lede: "Have a question or want to work together? Fill in the form and we'll get back to you within one business day.",
4982
+ form_submit_label: "Send message",
4983
+ fields: [
4984
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
4985
+ { field_type: "email", field_key: "email", label: "Work email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
4986
+ { field_type: "tel", field_key: "phone", label: "Phone", placeholder: "+1 555 000 0000", required: "no", width: "half", validation: "phone", options: "", default_value: "", help_text: "Optional" },
4987
+ { field_type: "text", field_key: "organization", label: "Organization", placeholder: "Your company", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
4988
+ { field_type: "textarea", field_key: "message", label: "Message", placeholder: "What's on your mind?", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" }
4989
+ ]
4990
+ },
4991
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(FormBlockBase, { ...props })
4992
+ };
4993
+
4994
+ // src/blocks/FormLeadCapture.jsx
4995
+ var import_jsx_runtime51 = require("react/jsx-runtime");
4996
+ var FormLeadCapture = {
4997
+ label: "Lead capture form",
4998
+ fields: COMMON_FORM_FIELDS,
4999
+ defaultProps: {
5000
+ ...COMMON_FORM_DEFAULTS,
5001
+ form_heading: "Tell us about your project",
5002
+ form_lede: "Share a few details and we'll come prepared with ideas specific to your situation.",
5003
+ form_submit_label: "Start the conversation",
5004
+ fields: [
5005
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5006
+ { field_type: "email", field_key: "email", label: "Work email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5007
+ { field_type: "text", field_key: "company", label: "Company", placeholder: "Your organisation", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5008
+ { field_type: "tel", field_key: "phone", label: "Phone", placeholder: "+1 555 000 0000", required: "no", width: "half", validation: "phone", options: "", default_value: "", help_text: "Optional" },
5009
+ {
5010
+ field_type: "select",
5011
+ field_key: "stage",
5012
+ label: "Where are you in your journey?",
5013
+ placeholder: "Select the stage that fits best",
5014
+ required: "no",
5015
+ width: "full",
5016
+ validation: "none",
5017
+ options: "Just exploring\nStarting a new project\nImproving an existing process\nNeed help with strategy\nOther",
5018
+ default_value: "",
5019
+ help_text: ""
5020
+ },
5021
+ {
5022
+ field_type: "multiselect",
5023
+ field_key: "interests",
5024
+ label: "Which capabilities interest you?",
5025
+ placeholder: "Pick one or more (optional)",
5026
+ required: "no",
5027
+ width: "full",
5028
+ validation: "none",
5029
+ options: "Product design\nEngineering\nData & analytics\nMarketing\nStrategy\nOther",
5030
+ default_value: "",
5031
+ help_text: ""
5032
+ },
5033
+ { field_type: "textarea", field_key: "message", label: "Anything else to share?", placeholder: "Current systems, target markets, challenges\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "" }
5034
+ ]
5035
+ },
5036
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(FormBlockBase, { ...props })
5037
+ };
5038
+
5039
+ // src/blocks/FormNewsletter.jsx
5040
+ var import_jsx_runtime52 = require("react/jsx-runtime");
5041
+ var FormNewsletter = {
5042
+ label: "Newsletter form",
5043
+ fields: COMMON_FORM_FIELDS,
5044
+ defaultProps: {
5045
+ ...COMMON_FORM_DEFAULTS,
5046
+ form_heading: "Stay in the loop",
5047
+ form_lede: "Join our newsletter for updates, articles, and early access to new features.",
5048
+ form_submit_label: "Subscribe",
5049
+ success_heading: "You're subscribed.",
5050
+ success_body: "Thank you for subscribing. Check your inbox for a confirmation email.",
5051
+ fields: [
5052
+ { field_type: "text", field_key: "full_name", label: "Name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5053
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@example.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5054
+ { field_type: "checkbox", field_key: "consent", label: "I agree to receive marketing emails. Unsubscribe any time.", placeholder: "", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" }
5055
+ ]
5056
+ },
5057
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(FormBlockBase, { ...props })
5058
+ };
5059
+
5060
+ // src/blocks/FormFeedback.jsx
5061
+ var import_jsx_runtime53 = require("react/jsx-runtime");
5062
+ var FormFeedback = {
5063
+ label: "Feedback form",
5064
+ fields: COMMON_FORM_FIELDS,
5065
+ defaultProps: {
5066
+ ...COMMON_FORM_DEFAULTS,
5067
+ form_heading: "Share your feedback",
5068
+ form_lede: "Your honest opinion helps us improve. Takes less than two minutes.",
5069
+ form_submit_label: "Submit feedback",
5070
+ success_heading: "Feedback received.",
5071
+ success_body: "Thank you \u2014 every response shapes what we build next.",
5072
+ fields: [
5073
+ { field_type: "rating", field_key: "rating", label: "Overall rating", placeholder: "", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "1 = poor, 5 = excellent" },
5074
+ {
5075
+ field_type: "select",
5076
+ field_key: "category",
5077
+ label: "Feedback category",
5078
+ placeholder: "What's this about?",
5079
+ required: "no",
5080
+ width: "full",
5081
+ validation: "none",
5082
+ options: "Product quality\nCustomer support\nWebsite experience\nPricing\nOther",
5083
+ default_value: "",
5084
+ help_text: ""
5085
+ },
5086
+ { field_type: "textarea", field_key: "comments", label: "Your comments", placeholder: "Tell us what you loved or what we could do better\u2026", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5087
+ { field_type: "text", field_key: "full_name", label: "Name", placeholder: "Your name", required: "no", width: "half", validation: "none", options: "", default_value: "", help_text: "Optional" },
5088
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@example.com", required: "no", width: "half", validation: "email", options: "", default_value: "", help_text: "Optional \u2014 if you'd like a reply" }
5089
+ ]
5090
+ },
5091
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(FormBlockBase, { ...props })
5092
+ };
5093
+
5094
+ // src/blocks/FormSurvey.jsx
5095
+ var import_jsx_runtime54 = require("react/jsx-runtime");
5096
+ var FormSurvey = {
5097
+ label: "Survey form",
5098
+ fields: COMMON_FORM_FIELDS,
5099
+ defaultProps: {
5100
+ ...COMMON_FORM_DEFAULTS,
5101
+ form_heading: "Quick survey",
5102
+ form_lede: "Three questions, under two minutes. Your answers help us get better.",
5103
+ form_submit_label: "Submit survey",
5104
+ success_heading: "Survey submitted.",
5105
+ success_body: "Thank you for taking the time. Your input is genuinely valued.",
5106
+ fields: [
5107
+ { field_type: "rating", field_key: "satisfaction", label: "How satisfied are you overall?", placeholder: "", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "1 = very dissatisfied \xB7 5 = very satisfied" },
5108
+ {
5109
+ field_type: "radio",
5110
+ field_key: "recommend",
5111
+ label: "Would you recommend us to a colleague?",
5112
+ placeholder: "",
5113
+ required: "yes",
5114
+ width: "full",
5115
+ validation: "none",
5116
+ options: "Definitely yes\nProbably yes\nNot sure\nProbably not\nDefinitely not",
5117
+ default_value: "",
5118
+ help_text: ""
5119
+ },
5120
+ { field_type: "textarea", field_key: "improvements", label: "What could we do better?", placeholder: "Any suggestions are welcome\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional" },
5121
+ { field_type: "text", field_key: "full_name", label: "Name", placeholder: "Your name", required: "no", width: "half", validation: "none", options: "", default_value: "", help_text: "Optional" },
5122
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@example.com", required: "no", width: "half", validation: "email", options: "", default_value: "", help_text: "Optional" }
5123
+ ]
5124
+ },
5125
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(FormBlockBase, { ...props })
5126
+ };
5127
+
5128
+ // src/blocks/FormBooking.jsx
5129
+ var import_jsx_runtime55 = require("react/jsx-runtime");
5130
+ var FormBooking = {
5131
+ label: "Booking / demo form",
5132
+ fields: COMMON_FORM_FIELDS,
5133
+ defaultProps: {
5134
+ ...COMMON_FORM_DEFAULTS,
5135
+ form_heading: "Book a demo",
5136
+ form_lede: "Pick a date and time that works for you. We'll send a calendar invite within a few hours.",
5137
+ form_submit_label: "Request booking",
5138
+ success_heading: "Request received.",
5139
+ success_body: "We'll confirm your booking by email within a few hours.",
5140
+ fields: [
5141
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5142
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5143
+ { field_type: "text", field_key: "company", label: "Company", placeholder: "Your organisation", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5144
+ { field_type: "date", field_key: "preferred_date", label: "Preferred date", placeholder: "Pick a date", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5145
+ {
5146
+ field_type: "select",
5147
+ field_key: "preferred_time",
5148
+ label: "Preferred time",
5149
+ placeholder: "Select a slot",
5150
+ required: "yes",
5151
+ width: "half",
5152
+ validation: "none",
5153
+ options: "Morning (9 am \u2013 12 pm)\nAfternoon (12 pm \u2013 5 pm)\nEvening (5 pm \u2013 7 pm)",
5154
+ default_value: "",
5155
+ help_text: ""
5156
+ },
5157
+ { field_type: "textarea", field_key: "notes", label: "Anything to prepare?", placeholder: "Topics, questions, or context that would help us tailor the session\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional" }
5158
+ ]
5159
+ },
5160
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(FormBlockBase, { ...props })
5161
+ };
5162
+
5163
+ // src/blocks/FormRegistration.jsx
5164
+ var import_jsx_runtime56 = require("react/jsx-runtime");
5165
+ var FormRegistration = {
5166
+ label: "Registration form",
5167
+ fields: COMMON_FORM_FIELDS,
5168
+ defaultProps: {
5169
+ ...COMMON_FORM_DEFAULTS,
5170
+ form_heading: "Register for the event",
5171
+ form_lede: "Secure your spot. We'll email your confirmation and joining instructions.",
5172
+ form_submit_label: "Register now",
5173
+ success_heading: "You're registered.",
5174
+ success_body: "Check your inbox for a confirmation email with all the details.",
5175
+ fields: [
5176
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5177
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5178
+ { field_type: "tel", field_key: "phone", label: "Phone", placeholder: "+1 555 000 0000", required: "no", width: "half", validation: "phone", options: "", default_value: "", help_text: "Optional" },
5179
+ { field_type: "text", field_key: "company", label: "Organisation", placeholder: "Your company", required: "no", width: "half", validation: "none", options: "", default_value: "", help_text: "Optional" },
5180
+ {
5181
+ field_type: "select",
5182
+ field_key: "role",
5183
+ label: "Your role",
5184
+ placeholder: "Select your role",
5185
+ required: "no",
5186
+ width: "half",
5187
+ validation: "none",
5188
+ options: "Developer\nDesigner\nProduct manager\nMarketer\nFounder / exec\nStudent\nOther",
5189
+ default_value: "",
5190
+ help_text: ""
5191
+ },
5192
+ {
5193
+ field_type: "select",
5194
+ field_key: "tshirt_size",
5195
+ label: "T-shirt size",
5196
+ placeholder: "Select size",
5197
+ required: "no",
5198
+ width: "half",
5199
+ validation: "none",
5200
+ options: "XS\nS\nM\nL\nXL\nXXL",
5201
+ default_value: "",
5202
+ help_text: "Optional \u2014 if swag is included"
5203
+ },
5204
+ {
5205
+ field_type: "select",
5206
+ field_key: "dietary",
5207
+ label: "Dietary requirements",
5208
+ placeholder: "Select one",
5209
+ required: "no",
5210
+ width: "full",
5211
+ validation: "none",
5212
+ options: "No restrictions\nVegetarian\nVegan\nGluten-free\nHalal\nKosher\nOther",
5213
+ default_value: "No restrictions",
5214
+ help_text: ""
5215
+ },
5216
+ { field_type: "textarea", field_key: "notes", label: "Additional notes", placeholder: "Accessibility needs, questions, or anything else\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional" }
5217
+ ]
5218
+ },
5219
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(FormBlockBase, { ...props })
5220
+ };
5221
+
5222
+ // src/blocks/FormQuoteRequest.jsx
5223
+ var import_jsx_runtime57 = require("react/jsx-runtime");
5224
+ var FormQuoteRequest = {
5225
+ label: "Quote request form",
5226
+ fields: COMMON_FORM_FIELDS,
5227
+ defaultProps: {
5228
+ ...COMMON_FORM_DEFAULTS,
5229
+ form_heading: "Request a quote",
5230
+ form_lede: "Tell us about your project and we'll put together a tailored proposal within two business days.",
5231
+ form_submit_label: "Request quote",
5232
+ success_heading: "Request received.",
5233
+ success_body: "We'll review your requirements and send a tailored proposal within two business days.",
5234
+ fields: [
5235
+ { field_type: "text", field_key: "company", label: "Company", placeholder: "Your organisation", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5236
+ { field_type: "text", field_key: "full_name", label: "Your name", placeholder: "Full name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5237
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5238
+ { field_type: "tel", field_key: "phone", label: "Phone", placeholder: "+1 555 000 0000", required: "no", width: "half", validation: "phone", options: "", default_value: "", help_text: "Optional" },
5239
+ {
5240
+ field_type: "select",
5241
+ field_key: "project_type",
5242
+ label: "Project type",
5243
+ placeholder: "What are you building?",
5244
+ required: "yes",
5245
+ width: "half",
5246
+ validation: "none",
5247
+ options: "Website\nMobile app\nWeb application\nBranding\nMarketing campaign\nData / analytics\nOther",
5248
+ default_value: "",
5249
+ help_text: ""
5250
+ },
5251
+ {
5252
+ field_type: "select",
5253
+ field_key: "budget",
5254
+ label: "Budget range",
5255
+ placeholder: "Approximate budget",
5256
+ required: "no",
5257
+ width: "half",
5258
+ validation: "none",
5259
+ options: "Under $5k\n$5k \u2013 $20k\n$20k \u2013 $50k\n$50k \u2013 $100k\n$100k+\nNot sure yet",
5260
+ default_value: "",
5261
+ help_text: ""
5262
+ },
5263
+ {
5264
+ field_type: "select",
5265
+ field_key: "timeline",
5266
+ label: "Desired timeline",
5267
+ placeholder: "When do you need this?",
5268
+ required: "no",
5269
+ width: "full",
5270
+ validation: "none",
5271
+ options: "As soon as possible\n1 \u2013 3 months\n3 \u2013 6 months\n6+ months\nFlexible",
5272
+ default_value: "",
5273
+ help_text: ""
5274
+ },
5275
+ { field_type: "textarea", field_key: "requirements", label: "Project requirements", placeholder: "Describe what you need \u2014 features, integrations, constraints, goals\u2026", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" }
5276
+ ]
5277
+ },
5278
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(FormBlockBase, { ...props })
5279
+ };
5280
+
5281
+ // src/blocks/FormApplication.jsx
5282
+ var import_jsx_runtime58 = require("react/jsx-runtime");
5283
+ var FormApplication = {
5284
+ label: "Application form",
5285
+ fields: COMMON_FORM_FIELDS,
5286
+ defaultProps: {
5287
+ ...COMMON_FORM_DEFAULTS,
5288
+ form_heading: "Apply now",
5289
+ form_lede: "Tell us about yourself. We read every application carefully.",
5290
+ form_submit_label: "Submit application",
5291
+ success_heading: "Application submitted.",
5292
+ success_body: "Thanks for applying. We'll review your application and be in touch within 5\u20137 business days.",
5293
+ fields: [
5294
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5295
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@example.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5296
+ { field_type: "tel", field_key: "phone", label: "Phone", placeholder: "+1 555 000 0000", required: "no", width: "half", validation: "phone", options: "", default_value: "", help_text: "Optional" },
5297
+ { field_type: "text", field_key: "linkedin", label: "LinkedIn", placeholder: "linkedin.com/in/you", required: "no", width: "half", validation: "url", options: "", default_value: "", help_text: "Optional" },
5298
+ { field_type: "text", field_key: "portfolio", label: "Portfolio / website", placeholder: "https://yoursite.com", required: "no", width: "half", validation: "url", options: "", default_value: "", help_text: "Optional" },
5299
+ {
5300
+ field_type: "select",
5301
+ field_key: "role",
5302
+ label: "Role applying for",
5303
+ placeholder: "Select a role",
5304
+ required: "yes",
5305
+ width: "half",
5306
+ validation: "none",
5307
+ options: "Engineering\nDesign\nProduct\nMarketing\nOperations\nOther",
5308
+ default_value: "",
5309
+ help_text: ""
5310
+ },
5311
+ { field_type: "textarea", field_key: "cover_note", label: "Cover note", placeholder: "Why are you interested? What would you bring to the role?", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5312
+ { field_type: "upload", field_key: "cv", label: "CV / r\xE9sum\xE9", placeholder: "Upload CV (PDF preferred)", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "PDF, DOC, or DOCX \u2014 max 5 MB" }
5313
+ ]
5314
+ },
5315
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(FormBlockBase, { ...props })
5316
+ };
5317
+
5318
+ // src/blocks/FormSupport.jsx
5319
+ var import_jsx_runtime59 = require("react/jsx-runtime");
5320
+ var FormSupport = {
5321
+ label: "Support ticket form",
5322
+ fields: COMMON_FORM_FIELDS,
5323
+ defaultProps: {
5324
+ ...COMMON_FORM_DEFAULTS,
5325
+ form_heading: "Open a support ticket",
5326
+ form_lede: "Describe the issue and we'll get back to you as quickly as we can.",
5327
+ form_submit_label: "Submit ticket",
5328
+ success_heading: "Ticket submitted.",
5329
+ success_body: "We've logged your request. Expect a reply to your email within one business day.",
5330
+ fields: [
5331
+ { field_type: "text", field_key: "full_name", label: "Name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5332
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@company.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5333
+ {
5334
+ field_type: "select",
5335
+ field_key: "category",
5336
+ label: "Category",
5337
+ placeholder: "What's this about?",
5338
+ required: "yes",
5339
+ width: "half",
5340
+ validation: "none",
5341
+ options: "Technical issue\nBilling\nAccount access\nFeature request\nGeneral enquiry\nOther",
5342
+ default_value: "",
5343
+ help_text: ""
5344
+ },
5345
+ {
5346
+ field_type: "select",
5347
+ field_key: "priority",
5348
+ label: "Priority",
5349
+ placeholder: "How urgent is this?",
5350
+ required: "yes",
5351
+ width: "half",
5352
+ validation: "none",
5353
+ options: "Low\nMedium\nHigh\nUrgent",
5354
+ default_value: "Medium",
5355
+ help_text: ""
5356
+ },
5357
+ { field_type: "text", field_key: "subject", label: "Subject", placeholder: "One-line summary of the issue", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5358
+ { field_type: "textarea", field_key: "description", label: "Description", placeholder: "Steps to reproduce, error messages, expected vs actual behaviour\u2026", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5359
+ { field_type: "upload", field_key: "attachment", label: "Attachment", placeholder: "Upload a screenshot or file", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional \u2014 screenshots, logs, or related files" }
5360
+ ]
5361
+ },
5362
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(FormBlockBase, { ...props })
5363
+ };
5364
+
5365
+ // src/blocks/FormWaitlist.jsx
5366
+ var import_jsx_runtime60 = require("react/jsx-runtime");
5367
+ var FormWaitlist = {
5368
+ label: "Waitlist form",
5369
+ fields: COMMON_FORM_FIELDS,
5370
+ defaultProps: {
5371
+ ...COMMON_FORM_DEFAULTS,
5372
+ form_heading: "Join the waitlist",
5373
+ form_lede: "We're rolling out access in batches. Sign up and we'll let you know when your spot is ready.",
5374
+ form_submit_label: "Join waitlist",
5375
+ success_heading: "You're on the list.",
5376
+ success_body: "We'll email you as soon as your spot is available. No spam, ever.",
5377
+ fields: [
5378
+ { field_type: "text", field_key: "full_name", label: "Name", placeholder: "Your name", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5379
+ { field_type: "email", field_key: "email", label: "Email", placeholder: "you@example.com", required: "yes", width: "half", validation: "email", options: "", default_value: "", help_text: "" },
5380
+ { field_type: "text", field_key: "company", label: "Company", placeholder: "Your organisation", required: "no", width: "half", validation: "none", options: "", default_value: "", help_text: "Optional" },
5381
+ {
5382
+ field_type: "select",
5383
+ field_key: "role",
5384
+ label: "Your role",
5385
+ placeholder: "Select your role",
5386
+ required: "no",
5387
+ width: "half",
5388
+ validation: "none",
5389
+ options: "Founder\nProduct manager\nDeveloper\nDesigner\nMarketer\nOther",
5390
+ default_value: "",
5391
+ help_text: ""
5392
+ },
5393
+ { field_type: "textarea", field_key: "use_case", label: "How would you use it?", placeholder: "A sentence or two about your intended use case\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional \u2014 helps us prioritise access" }
5394
+ ]
5395
+ },
5396
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(FormBlockBase, { ...props })
5397
+ };
5398
+
5399
+ // src/blocks/FormAddress.jsx
5400
+ var import_jsx_runtime61 = require("react/jsx-runtime");
5401
+ var FormAddress = {
5402
+ label: "Address form",
5403
+ fields: COMMON_FORM_FIELDS,
5404
+ defaultProps: {
5405
+ ...COMMON_FORM_DEFAULTS,
5406
+ form_heading: "Your address",
5407
+ form_lede: "Please provide your delivery or billing address.",
5408
+ form_submit_label: "Save address",
5409
+ success_heading: "Address saved.",
5410
+ success_body: "Your address details have been recorded.",
5411
+ fields: [
5412
+ { field_type: "text", field_key: "full_name", label: "Full name", placeholder: "Recipient name", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5413
+ { field_type: "text", field_key: "line1", label: "Address line 1", placeholder: "Street address", required: "yes", width: "full", validation: "none", options: "", default_value: "", help_text: "" },
5414
+ { field_type: "text", field_key: "line2", label: "Address line 2", placeholder: "Apartment, suite, unit\u2026", required: "no", width: "full", validation: "none", options: "", default_value: "", help_text: "Optional" },
5415
+ { field_type: "text", field_key: "city", label: "City", placeholder: "City", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5416
+ { field_type: "text", field_key: "state", label: "State / region", placeholder: "State or region", required: "no", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5417
+ { field_type: "country", field_key: "country", label: "Country", placeholder: "Select country", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" },
5418
+ { field_type: "text", field_key: "pincode", label: "Postal / ZIP code", placeholder: "Postal code", required: "yes", width: "half", validation: "none", options: "", default_value: "", help_text: "" }
5419
+ ]
5420
+ },
5421
+ render: (props) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(FormBlockBase, { ...props })
5422
+ };
5423
+
5424
+ // src/blocks/EventsList.jsx
5425
+ var import_icons23 = require("@ant-design/icons");
5426
+ var import_jsx_runtime62 = require("react/jsx-runtime");
4482
5427
  var EventsList = {
4483
5428
  label: "Events list",
4484
5429
  fields: {
@@ -4502,7 +5447,7 @@ var EventsList = {
4502
5447
  background: {
4503
5448
  type: "radio",
4504
5449
  label: "Background",
4505
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
5450
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4506
5451
  }
4507
5452
  },
4508
5453
  defaultProps: {
@@ -4515,29 +5460,29 @@ var EventsList = {
4515
5460
  ],
4516
5461
  background: "white"
4517
5462
  },
4518
- render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { className: "tps-container", style: { maxWidth: 920 }, children: [
4519
- (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { style: { marginBottom: 32 }, children: [
4520
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4521
- heading && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
5463
+ render: ({ eyebrow, heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "tps-container", style: { maxWidth: 920 }, children: [
5464
+ (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { style: { marginBottom: 32 }, children: [
5465
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
5466
+ heading && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
4522
5467
  ] }),
4523
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("ul", { style: { listStyle: "none", padding: 0, margin: 0, display: "flex", flexDirection: "column", gap: 12 }, children: (items || []).map((e, i) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("li", { className: "tps-row-stack", style: { display: "grid", gridTemplateColumns: "88px 1fr auto", gap: 24, alignItems: "center", padding: 20, background: "#fff", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)" }, children: [
4524
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { style: { background: "rgba(15,118,110,0.08)", color: "var(--tps-primary)", padding: "12px 8px", borderRadius: "var(--tps-radius)", textAlign: "center", fontWeight: 700, fontSize: 13, lineHeight: 1.2, letterSpacing: 0.5 }, children: [
4525
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_icons21.CalendarOutlined, { style: { display: "block", marginBottom: 4 } }),
5468
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("ul", { style: { listStyle: "none", padding: 0, margin: 0, display: "flex", flexDirection: "column", gap: 12 }, children: (items || []).map((e, i) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("li", { className: "tps-row-stack", style: { display: "grid", gridTemplateColumns: "88px 1fr auto", gap: 24, alignItems: "center", padding: 20, background: "var(--tps-bg)", border: "1px solid var(--tps-line)", borderRadius: "var(--tps-radius)" }, children: [
5469
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { style: { background: "rgba(15,118,110,0.08)", color: "var(--tps-primary)", padding: "12px 8px", borderRadius: "var(--tps-radius)", textAlign: "center", fontWeight: 700, fontSize: 13, lineHeight: 1.2, letterSpacing: 0.5 }, children: [
5470
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_icons23.CalendarOutlined, { style: { display: "block", marginBottom: 4 } }),
4526
5471
  e.date_short
4527
5472
  ] }),
4528
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { children: [
4529
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("h3", { style: { fontSize: 17, fontWeight: 700, margin: "0 0 4px" }, children: e.title }),
4530
- e.body && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { style: { color: "var(--tps-muted)", margin: "0 0 6px", fontSize: 14, lineHeight: 1.5 }, children: e.body }),
4531
- /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("div", { style: { display: "flex", gap: 14, fontSize: 12, color: "var(--tps-muted)" }, children: [
4532
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("span", { children: e.date_long }),
4533
- e.venue && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)("span", { children: [
4534
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_icons21.EnvironmentOutlined, {}),
5473
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { children: [
5474
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("h3", { style: { fontSize: 17, fontWeight: 700, margin: "0 0 4px" }, children: e.title }),
5475
+ e.body && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { style: { color: "var(--tps-muted)", margin: "0 0 6px", fontSize: 14, lineHeight: 1.5 }, children: e.body }),
5476
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { style: { display: "flex", gap: 14, fontSize: 12, color: "var(--tps-muted)" }, children: [
5477
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("span", { children: e.date_long }),
5478
+ e.venue && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { children: [
5479
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_icons23.EnvironmentOutlined, {}),
4535
5480
  " ",
4536
5481
  e.venue
4537
5482
  ] })
4538
5483
  ] })
4539
5484
  ] }),
4540
- e.cta_label && /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(StudioLink, { href: e.cta_href || "#", style: { color: "var(--tps-primary)", fontWeight: 700, fontSize: 14, textDecoration: "none", whiteSpace: "nowrap" }, children: [
5485
+ e.cta_label && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(StudioLink, { href: e.cta_href || "#", style: { color: "var(--tps-primary)", fontWeight: 700, fontSize: 14, textDecoration: "none", whiteSpace: "nowrap" }, children: [
4541
5486
  e.cta_label,
4542
5487
  " \u2192"
4543
5488
  ] })
@@ -4546,7 +5491,7 @@ var EventsList = {
4546
5491
  };
4547
5492
 
4548
5493
  // src/blocks/Divider.jsx
4549
- var import_jsx_runtime49 = require("react/jsx-runtime");
5494
+ var import_jsx_runtime63 = require("react/jsx-runtime");
4550
5495
  var Divider = {
4551
5496
  label: "Divider",
4552
5497
  fields: {
@@ -4572,15 +5517,15 @@ var Divider = {
4572
5517
  }
4573
5518
  },
4574
5519
  defaultProps: { label: "", style: "hairline", spacing: 48 },
4575
- render: ({ label, style, spacing }) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("section", { style: { padding: `${spacing}px 24px` }, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "tps-container", style: { maxWidth: 820 }, children: style === "dot" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { style: { display: "flex", justifyContent: "center", gap: 8 }, children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { style: { width: 4, height: 4, borderRadius: "50%", background: "#CBD5E1" } }, i)) }) : label ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
4576
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { style: { flex: 1, height: style === "thick" ? 2 : 1, borderTop: style === "dashed" ? `1px dashed #CBD5E1` : "none", background: style !== "dashed" ? "#E2E8F0" : "none" } }),
4577
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { style: { fontSize: 11, fontWeight: 700, letterSpacing: 1.5, color: "#94A3B8", textTransform: "uppercase" }, children: label }),
4578
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { style: { flex: 1, height: style === "thick" ? 2 : 1, borderTop: style === "dashed" ? `1px dashed #CBD5E1` : "none", background: style !== "dashed" ? "#E2E8F0" : "none" } })
4579
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("hr", { style: { margin: 0, border: 0, borderTop: style === "dashed" ? "1px dashed #CBD5E1" : `${style === "thick" ? 2 : 1}px solid #E2E8F0` } }) }) })
5520
+ render: ({ label, style, spacing }) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("section", { style: { padding: `${spacing}px 24px` }, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "tps-container", style: { maxWidth: 820 }, children: style === "dot" ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { style: { display: "flex", justifyContent: "center", gap: 8 }, children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { style: { width: 4, height: 4, borderRadius: "50%", background: "#CBD5E1" } }, i)) }) : label ? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: 12 }, children: [
5521
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { style: { flex: 1, height: style === "thick" ? 2 : 1, borderTop: style === "dashed" ? `1px dashed #CBD5E1` : "none", background: style !== "dashed" ? "#E2E8F0" : "none" } }),
5522
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { style: { fontSize: 11, fontWeight: 700, letterSpacing: 1.5, color: "#94A3B8", textTransform: "uppercase" }, children: label }),
5523
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { style: { flex: 1, height: style === "thick" ? 2 : 1, borderTop: style === "dashed" ? `1px dashed #CBD5E1` : "none", background: style !== "dashed" ? "#E2E8F0" : "none" } })
5524
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("hr", { style: { margin: 0, border: 0, borderTop: style === "dashed" ? "1px dashed #CBD5E1" : `${style === "thick" ? 2 : 1}px solid #E2E8F0` } }) }) })
4580
5525
  };
4581
5526
 
4582
5527
  // src/blocks/ThreeColumn.jsx
4583
- var import_jsx_runtime50 = require("react/jsx-runtime");
5528
+ var import_jsx_runtime64 = require("react/jsx-runtime");
4584
5529
  var ThreeColumn = {
4585
5530
  label: "Three columns",
4586
5531
  fields: {
@@ -4599,7 +5544,7 @@ var ThreeColumn = {
4599
5544
  background: {
4600
5545
  type: "radio",
4601
5546
  label: "Background",
4602
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
5547
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4603
5548
  }
4604
5549
  },
4605
5550
  defaultProps: {
@@ -4612,20 +5557,20 @@ var ThreeColumn = {
4612
5557
  ],
4613
5558
  background: "white"
4614
5559
  },
4615
- render: ({ eyebrow, heading, columns, background }) => /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "tps-container", children: [
4616
- (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { style: { marginBottom: 32 }, children: [
4617
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
4618
- heading && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
5560
+ render: ({ eyebrow, heading, columns, background }) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 56, paddingBottom: 56 }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "tps-container", children: [
5561
+ (eyebrow || heading) && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { style: { marginBottom: 32 }, children: [
5562
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "tps-eyebrow", children: eyebrow }),
5563
+ heading && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { className: "tps-h2", style: { marginTop: 8 }, children: heading })
4619
5564
  ] }),
4620
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(260px, 100%), 1fr))", gap: 32 }, children: (columns || []).map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { children: [
4621
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("h3", { style: { fontSize: 18, fontWeight: 700, margin: "0 0 8px" }, children: c.title }),
4622
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { style: { color: "var(--tps-muted)", lineHeight: 1.7, fontSize: 15, margin: 0 }, children: c.body })
5565
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { style: { display: "grid", gridTemplateColumns: "repeat(auto-fit, minmax(min(260px, 100%), 1fr))", gap: 32 }, children: (columns || []).map((c, i) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { children: [
5566
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h3", { style: { fontSize: 18, fontWeight: 700, margin: "0 0 8px" }, children: c.title }),
5567
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { style: { color: "var(--tps-muted)", lineHeight: 1.7, fontSize: 15, margin: 0 }, children: c.body })
4623
5568
  ] }, i)) })
4624
5569
  ] }) })
4625
5570
  };
4626
5571
 
4627
5572
  // src/blocks/PressMentions.jsx
4628
- var import_jsx_runtime51 = require("react/jsx-runtime");
5573
+ var import_jsx_runtime65 = require("react/jsx-runtime");
4629
5574
  var PressMentions = {
4630
5575
  label: "Press mentions",
4631
5576
  fields: {
@@ -4645,7 +5590,7 @@ var PressMentions = {
4645
5590
  background: {
4646
5591
  type: "radio",
4647
5592
  label: "Background",
4648
- options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }]
5593
+ options: [{ label: "White", value: "white" }, { label: "Soft", value: "soft" }, { label: "Dark", value: "dark" }]
4649
5594
  }
4650
5595
  },
4651
5596
  defaultProps: {
@@ -4657,17 +5602,17 @@ var PressMentions = {
4657
5602
  ],
4658
5603
  background: "soft"
4659
5604
  },
4660
- render: ({ heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)("div", { className: "tps-container", style: { textAlign: "center" }, children: [
4661
- heading && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { style: { fontSize: 11, fontWeight: 700, letterSpacing: 2, color: "var(--tps-muted)", marginBottom: 28, textTransform: "uppercase" }, children: heading }),
4662
- /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { style: { display: "flex", flexWrap: "wrap", justifyContent: "center", alignItems: "center", gap: 40 }, children: (items || []).map((p, i) => {
4663
- const inner = p.image_url ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("img", { src: p.image_url, alt: p.name, style: { height: 28, opacity: 0.7, filter: "grayscale(100%)" } }) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { style: { fontFamily: "Georgia, serif", fontSize: 18, fontWeight: 600, color: "var(--tps-ink)", fontStyle: "italic" }, children: p.name });
4664
- return p.link ? /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("a", { href: p.link, target: "_blank", rel: "noreferrer", children: inner }, i) : /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { children: inner }, i);
5605
+ render: ({ heading, items, background }) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("section", { className: `tps-section ${background === "soft" ? "tps-section-soft" : ""}${background === "dark" ? " tps-section-dark" : ""}`, style: { paddingTop: 48, paddingBottom: 48 }, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "tps-container", style: { textAlign: "center" }, children: [
5606
+ heading && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { style: { fontSize: 11, fontWeight: 700, letterSpacing: 2, color: "var(--tps-muted)", marginBottom: 28, textTransform: "uppercase" }, children: heading }),
5607
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { style: { display: "flex", flexWrap: "wrap", justifyContent: "center", alignItems: "center", gap: 40 }, children: (items || []).map((p, i) => {
5608
+ const inner = p.image_url ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("img", { src: p.image_url, alt: p.name, style: { height: 28, opacity: 0.7, filter: "grayscale(100%)" } }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { style: { fontFamily: "Georgia, serif", fontSize: 18, fontWeight: 600, color: "var(--tps-ink)", fontStyle: "italic" }, children: p.name });
5609
+ return p.link ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("a", { href: p.link, target: "_blank", rel: "noreferrer", children: inner }, i) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: inner }, i);
4665
5610
  }) })
4666
5611
  ] }) })
4667
5612
  };
4668
5613
 
4669
5614
  // src/blocks/Container.jsx
4670
- var import_jsx_runtime52 = require("react/jsx-runtime");
5615
+ var import_jsx_runtime66 = require("react/jsx-runtime");
4671
5616
  var Container = {
4672
5617
  label: "Container box",
4673
5618
  fields: {
@@ -4704,23 +5649,23 @@ var Container = {
4704
5649
  dark: { bg: "#0F172A", fg: "#fff", border: "none" },
4705
5650
  white: { bg: "#fff", fg: "var(--tps-ink)", border: "1px solid var(--tps-line)" }
4706
5651
  }[background] || { bg: "var(--tps-bg-soft)", fg: "var(--tps-ink)", border: "1px solid var(--tps-line)" };
4707
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("section", { className: "tps-section", style: { paddingTop: 32, paddingBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "tps-container", style: { maxWidth: 820 }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { style: { background: bg.bg, color: bg.fg, border: bg.border, borderRadius: "var(--tps-radius)", padding: 32, textAlign: align }, children: [
4708
- eyebrow && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "tps-eyebrow", style: { color: background === "dark" ? "#F59E0B" : void 0 }, children: eyebrow }),
4709
- heading && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("h3", { style: { fontSize: 22, fontWeight: 700, margin: "8px 0 14px" }, children: heading }),
4710
- body_html && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { style: { lineHeight: 1.7, fontSize: 15, opacity: background === "dark" ? 0.92 : 1 }, dangerouslySetInnerHTML: { __html: body_html } })
5652
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("section", { className: "tps-section", style: { paddingTop: 32, paddingBottom: 32 }, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "tps-container", style: { maxWidth: 820 }, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { style: { background: bg.bg, color: bg.fg, border: bg.border, borderRadius: "var(--tps-radius)", padding: 32, textAlign: align }, children: [
5653
+ eyebrow && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "tps-eyebrow", style: { color: background === "dark" ? "#F59E0B" : void 0 }, children: eyebrow }),
5654
+ heading && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("h3", { style: { fontSize: 22, fontWeight: 700, margin: "8px 0 14px" }, children: heading }),
5655
+ body_html && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { style: { lineHeight: 1.7, fontSize: 15, opacity: background === "dark" ? 0.92 : 1 }, dangerouslySetInnerHTML: { __html: body_html } })
4711
5656
  ] }) }) });
4712
5657
  }
4713
5658
  };
4714
5659
 
4715
5660
  // src/withReveal.jsx
4716
- var import_react6 = require("react");
5661
+ var import_react7 = require("react");
4717
5662
  function withReveal(component, animation = "fade-up") {
4718
5663
  const RenderWrapped = (props) => {
4719
5664
  const node = component.render(props);
4720
5665
  if (props?.puck?.isEditing) return node;
4721
- if (!(0, import_react6.isValidElement)(node)) return node;
5666
+ if (!(0, import_react7.isValidElement)(node)) return node;
4722
5667
  const cls = ["tps-reveal", `tps-reveal--${animation}`, node.props.className].filter(Boolean).join(" ");
4723
- return (0, import_react6.cloneElement)(node, {
5668
+ return (0, import_react7.cloneElement)(node, {
4724
5669
  className: cls,
4725
5670
  "data-tps-reveal": animation
4726
5671
  });
@@ -4728,39 +5673,71 @@ function withReveal(component, animation = "fade-up") {
4728
5673
  return { ...component, render: RenderWrapped };
4729
5674
  }
4730
5675
 
5676
+ // src/withTheme.jsx
5677
+ var import_react8 = require("react");
5678
+ var THEME_OPTIONS = [
5679
+ { label: "Inherit", value: "" },
5680
+ { label: "Light", value: "light" },
5681
+ { label: "Dark", value: "dark" }
5682
+ ];
5683
+ var themeField = {
5684
+ type: "select",
5685
+ label: "Theme",
5686
+ options: THEME_OPTIONS
5687
+ };
5688
+ function withTheme(component) {
5689
+ const fields = { ...component.fields || {}, theme: themeField };
5690
+ const defaultProps = { theme: "", ...component.defaultProps || {} };
5691
+ const RenderThemed = (props) => {
5692
+ const node = component.render(props);
5693
+ const theme = props?.theme;
5694
+ if (!theme || !(0, import_react8.isValidElement)(node)) return node;
5695
+ return (0, import_react8.cloneElement)(node, { "data-tps-theme": theme });
5696
+ };
5697
+ return { ...component, fields, defaultProps, render: RenderThemed };
5698
+ }
5699
+
4731
5700
  // src/BlockThumbnail.jsx
4732
- var import_react7 = require("react");
4733
- var import_jsx_runtime53 = require("react/jsx-runtime");
4734
- var BG = "#F8FAFC";
4735
- var BORDER = "#E2E8F0";
4736
- var TEXT = "#0F172A";
4737
- var MUTED = "#94A3B8";
4738
- var DEFAULT_BRAND_COLORS = {
5701
+ var import_react9 = require("react");
5702
+ var import_jsx_runtime67 = require("react/jsx-runtime");
5703
+ var DEFAULT_COLORS = {
4739
5704
  PRIMARY: "#0b60d8",
4740
5705
  PRIMARY_SOFT: "#dbeafe",
4741
- ACCENT: "#F59E0B"
5706
+ ACCENT: "#F59E0B",
5707
+ BG: "#F8FAFC",
5708
+ BG_SOFT: "#F1F5F9",
5709
+ CARD: "#ffffff",
5710
+ BORDER: "#E2E8F0",
5711
+ TEXT: "#0F172A",
5712
+ MUTED: "#94A3B8"
4742
5713
  };
4743
- function readBrandColors() {
4744
- if (typeof window === "undefined") return DEFAULT_BRAND_COLORS;
5714
+ function readColors() {
5715
+ if (typeof window === "undefined") return DEFAULT_COLORS;
4745
5716
  const root = document.querySelector("[data-brand]") || document.documentElement;
4746
5717
  const style = getComputedStyle(root);
4747
5718
  const get = (name, fallback) => style.getPropertyValue(name).trim() || fallback;
4748
5719
  return {
4749
- PRIMARY: get("--tps-primary", DEFAULT_BRAND_COLORS.PRIMARY),
4750
- PRIMARY_SOFT: get("--tps-primary-soft", DEFAULT_BRAND_COLORS.PRIMARY_SOFT),
4751
- ACCENT: get("--tps-accent", DEFAULT_BRAND_COLORS.ACCENT)
5720
+ PRIMARY: get("--tps-primary", DEFAULT_COLORS.PRIMARY),
5721
+ PRIMARY_SOFT: get("--tps-primary-soft", DEFAULT_COLORS.PRIMARY_SOFT),
5722
+ ACCENT: get("--tps-accent", DEFAULT_COLORS.ACCENT),
5723
+ BG: get("--tps-bg-section", DEFAULT_COLORS.BG),
5724
+ BG_SOFT: get("--tps-bg-soft", DEFAULT_COLORS.BG_SOFT),
5725
+ CARD: get("--tps-bg", DEFAULT_COLORS.CARD),
5726
+ BORDER: get("--tps-line", DEFAULT_COLORS.BORDER),
5727
+ TEXT: get("--tps-ink", DEFAULT_COLORS.TEXT),
5728
+ MUTED: get("--tps-muted", DEFAULT_COLORS.MUTED)
4752
5729
  };
4753
5730
  }
4754
- function useBrandColors() {
4755
- const [colors, setColors] = (0, import_react7.useState)(readBrandColors);
4756
- (0, import_react7.useEffect)(() => {
4757
- setColors(readBrandColors());
5731
+ function useThemeColors() {
5732
+ const [colors, setColors] = (0, import_react9.useState)(readColors);
5733
+ (0, import_react9.useEffect)(() => {
5734
+ setColors(readColors());
4758
5735
  if (typeof window === "undefined") return;
4759
5736
  const target = document.querySelector("[data-brand]") || document.documentElement;
4760
- const observer = new MutationObserver(() => setColors(readBrandColors()));
5737
+ const observer = new MutationObserver(() => setColors(readColors()));
4761
5738
  observer.observe(target, {
4762
5739
  attributes: true,
4763
- attributeFilter: ["data-brand", "style", "class"]
5740
+ attributeFilter: ["data-brand", "data-tps-theme", "style", "class"]
4764
5741
  });
4765
5742
  return () => observer.disconnect();
4766
5743
  }, []);
@@ -4768,8 +5745,9 @@ function useBrandColors() {
4768
5745
  }
4769
5746
  var FRAME_W = 120;
4770
5747
  var FRAME_H = 70;
4771
- function Frame({ children, soft = false }) {
4772
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
5748
+ function getPreviews(c) {
5749
+ const { PRIMARY, PRIMARY_SOFT, ACCENT, BG, BG_SOFT, CARD, BORDER, TEXT, MUTED } = c;
5750
+ const Frame = ({ children, soft = false }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
4773
5751
  "svg",
4774
5752
  {
4775
5753
  viewBox: `0 0 ${FRAME_W} ${FRAME_H}`,
@@ -4778,7 +5756,7 @@ function Frame({ children, soft = false }) {
4778
5756
  preserveAspectRatio: "xMidYMid meet",
4779
5757
  style: { display: "block", borderRadius: 4 },
4780
5758
  children: [
4781
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5759
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4782
5760
  "rect",
4783
5761
  {
4784
5762
  x: "0.5",
@@ -4786,7 +5764,7 @@ function Frame({ children, soft = false }) {
4786
5764
  width: FRAME_W - 1,
4787
5765
  height: FRAME_H - 1,
4788
5766
  rx: "3",
4789
- fill: soft ? "#F1F5F9" : BG,
5767
+ fill: soft ? BG_SOFT : BG,
4790
5768
  stroke: BORDER,
4791
5769
  strokeWidth: "1"
4792
5770
  }
@@ -4795,28 +5773,25 @@ function Frame({ children, soft = false }) {
4795
5773
  ]
4796
5774
  }
4797
5775
  );
4798
- }
4799
- function getPreviews(c) {
4800
- const { PRIMARY, PRIMARY_SOFT, ACCENT } = c;
4801
5776
  return {
4802
- Hero: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4803
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "20", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
4804
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "22", width: "92", height: "6", rx: "1.5", fill: TEXT }),
4805
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "32", width: "80", height: "3", rx: "1", fill: MUTED }),
4806
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "38", width: "60", height: "3", rx: "1", fill: MUTED }),
4807
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "50", width: "32", height: "9", rx: "2", fill: PRIMARY }),
4808
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "50", y: "50", width: "32", height: "9", rx: "2", fill: "none", stroke: TEXT, strokeWidth: "0.8" })
5777
+ Hero: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5778
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "20", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5779
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "22", width: "92", height: "6", rx: "1.5", fill: TEXT }),
5780
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "32", width: "80", height: "3", rx: "1", fill: MUTED }),
5781
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "38", width: "60", height: "3", rx: "1", fill: MUTED }),
5782
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "50", width: "32", height: "9", rx: "2", fill: PRIMARY }),
5783
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "50", y: "50", width: "32", height: "9", rx: "2", fill: "none", stroke: TEXT, strokeWidth: "0.8" })
4809
5784
  ] }),
4810
- SectionHeader: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4811
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "22", width: "18", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
4812
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "30", width: "78", height: "6", rx: "1.5", fill: TEXT }),
4813
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "42", width: "64", height: "3", rx: "1", fill: MUTED })
5785
+ SectionHeader: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5786
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "22", width: "18", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5787
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "30", width: "78", height: "6", rx: "1.5", fill: TEXT }),
5788
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "42", width: "64", height: "3", rx: "1", fill: MUTED })
4814
5789
  ] }),
4815
- StatsStrip: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { soft: true, children: [14, 38, 62, 86].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
4816
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "22", width: "20", height: "6", rx: "1.5", fill: PRIMARY, opacity: "0.85" }),
4817
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 2, y: "32", width: "16", height: "3", rx: "1", fill: MUTED })
5790
+ StatsStrip: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { soft: true, children: [14, 38, 62, 86].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
5791
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "22", width: "20", height: "6", rx: "1.5", fill: PRIMARY, opacity: "0.85" }),
5792
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 2, y: "32", width: "16", height: "3", rx: "1", fill: MUTED })
4818
5793
  ] }, i)) }),
4819
- RichText: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [14, 21, 28, 35, 42, 49, 56].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5794
+ RichText: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [14, 21, 28, 35, 42, 49, 56].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4820
5795
  "rect",
4821
5796
  {
4822
5797
  x: "14",
@@ -4829,8 +5804,8 @@ function getPreviews(c) {
4829
5804
  },
4830
5805
  i
4831
5806
  )) }),
4832
- PillarsRow: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { soft: true, children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
4833
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5807
+ PillarsRow: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { soft: true, children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
5808
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4834
5809
  "rect",
4835
5810
  {
4836
5811
  x,
@@ -4838,19 +5813,19 @@ function getPreviews(c) {
4838
5813
  width: "32",
4839
5814
  height: "42",
4840
5815
  rx: "2",
4841
- fill: "#fff",
5816
+ fill: CARD,
4842
5817
  stroke: BORDER,
4843
5818
  strokeWidth: "0.8"
4844
5819
  }
4845
5820
  ),
4846
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 8, cy: "22", r: "3", fill: PRIMARY, opacity: "0.85" }),
4847
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "30", width: "20", height: "3", rx: "1", fill: TEXT }),
4848
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "36", width: "24", height: "2", rx: "1", fill: MUTED }),
4849
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "40", width: "22", height: "2", rx: "1", fill: MUTED }),
4850
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "44", width: "18", height: "2", rx: "1", fill: MUTED })
5821
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 8, cy: "22", r: "3", fill: PRIMARY, opacity: "0.85" }),
5822
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "30", width: "20", height: "3", rx: "1", fill: TEXT }),
5823
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "36", width: "24", height: "2", rx: "1", fill: MUTED }),
5824
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "40", width: "22", height: "2", rx: "1", fill: MUTED }),
5825
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "44", width: "18", height: "2", rx: "1", fill: MUTED })
4851
5826
  ] }, i)) }),
4852
- ApproachSteps: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 38, 66, 94].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
4853
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5827
+ ApproachSteps: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 38, 66, 94].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
5828
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4854
5829
  "text",
4855
5830
  {
4856
5831
  x,
@@ -4862,19 +5837,19 @@ function getPreviews(c) {
4862
5837
  children: `0${i + 1}`
4863
5838
  }
4864
5839
  ),
4865
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "28", width: "20", height: "3.5", rx: "1", fill: TEXT }),
4866
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "36", width: "22", height: "2", rx: "1", fill: MUTED }),
4867
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "40", width: "18", height: "2", rx: "1", fill: MUTED })
5840
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "28", width: "20", height: "3.5", rx: "1", fill: TEXT }),
5841
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "36", width: "22", height: "2", rx: "1", fill: MUTED }),
5842
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "40", width: "18", height: "2", rx: "1", fill: MUTED })
4868
5843
  ] }, i)) }),
4869
- ServicesGrid: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [
5844
+ ServicesGrid: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [
4870
5845
  [10, 12],
4871
5846
  [44, 12],
4872
5847
  [78, 12],
4873
5848
  [10, 38],
4874
5849
  [44, 38],
4875
5850
  [78, 38]
4876
- ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
4877
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5851
+ ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
5852
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4878
5853
  "rect",
4879
5854
  {
4880
5855
  x,
@@ -4882,27 +5857,27 @@ function getPreviews(c) {
4882
5857
  width: "32",
4883
5858
  height: "20",
4884
5859
  rx: "2",
4885
- fill: "#fff",
5860
+ fill: CARD,
4886
5861
  stroke: BORDER,
4887
5862
  strokeWidth: "0.8"
4888
5863
  }
4889
5864
  ),
4890
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 5, cy: y + 6, r: "2", fill: PRIMARY, opacity: "0.85" }),
4891
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: y + 11, width: "22", height: "2", rx: "1", fill: TEXT }),
4892
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: y + 15, width: "18", height: "2", rx: "1", fill: MUTED })
5865
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 5, cy: y + 6, r: "2", fill: PRIMARY, opacity: "0.85" }),
5866
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: y + 11, width: "22", height: "2", rx: "1", fill: TEXT }),
5867
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: y + 15, width: "18", height: "2", rx: "1", fill: MUTED })
4893
5868
  ] }, i)) }),
4894
- CTABanner: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
4895
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "16", width: "14", height: "2.5", rx: "1", fill: ACCENT }),
4896
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "22", width: "74", height: "6", rx: "1.5", fill: TEXT }),
4897
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "32", width: "92", height: "3", rx: "1", fill: MUTED }),
4898
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "44", width: "40", height: "11", rx: "2", fill: PRIMARY })
5869
+ CTABanner: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
5870
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "16", width: "14", height: "2.5", rx: "1", fill: ACCENT }),
5871
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "22", width: "74", height: "6", rx: "1.5", fill: TEXT }),
5872
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "32", width: "92", height: "3", rx: "1", fill: MUTED }),
5873
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "44", width: "40", height: "11", rx: "2", fill: PRIMARY })
4899
5874
  ] }),
4900
- PrinciplesList: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4901
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "14", width: "14", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.7" }),
4902
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "20", width: "40", height: "5", rx: "1.5", fill: TEXT }),
4903
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "30", width: "36", height: "2", rx: "1", fill: MUTED }),
4904
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "34", width: "34", height: "2", rx: "1", fill: MUTED }),
4905
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5875
+ PrinciplesList: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5876
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "14", width: "14", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5877
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "20", width: "40", height: "5", rx: "1.5", fill: TEXT }),
5878
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "30", width: "36", height: "2", rx: "1", fill: MUTED }),
5879
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "34", width: "34", height: "2", rx: "1", fill: MUTED }),
5880
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4906
5881
  "rect",
4907
5882
  {
4908
5883
  x: "60",
@@ -4914,26 +5889,26 @@ function getPreviews(c) {
4914
5889
  opacity: "0.5"
4915
5890
  }
4916
5891
  ),
4917
- [20, 30, 40, 50].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
4918
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: "66", cy: y + 2, r: "2", fill: PRIMARY }),
4919
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "71", y: y + 1, width: "32", height: "2", rx: "1", fill: TEXT, opacity: "0.8" })
5892
+ [20, 30, 40, 50].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
5893
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "66", cy: y + 2, r: "2", fill: PRIMARY }),
5894
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "71", y: y + 1, width: "32", height: "2", rx: "1", fill: TEXT, opacity: "0.8" })
4920
5895
  ] }, i))
4921
5896
  ] }),
4922
- TwoColumn: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4923
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "14", width: "48", height: "3.5", rx: "1", fill: TEXT }),
4924
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "22", width: "42", height: "2", rx: "1", fill: MUTED }),
4925
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "26", width: "46", height: "2", rx: "1", fill: MUTED }),
4926
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "30", width: "40", height: "2", rx: "1", fill: MUTED }),
4927
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "14", width: "48", height: "3.5", rx: "1", fill: TEXT }),
4928
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "22", width: "42", height: "2", rx: "1", fill: MUTED }),
4929
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "26", width: "46", height: "2", rx: "1", fill: MUTED }),
4930
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "30", width: "40", height: "2", rx: "1", fill: MUTED })
5897
+ TwoColumn: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5898
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "14", width: "48", height: "3.5", rx: "1", fill: TEXT }),
5899
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "22", width: "42", height: "2", rx: "1", fill: MUTED }),
5900
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "26", width: "46", height: "2", rx: "1", fill: MUTED }),
5901
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "30", width: "40", height: "2", rx: "1", fill: MUTED }),
5902
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "14", width: "48", height: "3.5", rx: "1", fill: TEXT }),
5903
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "22", width: "42", height: "2", rx: "1", fill: MUTED }),
5904
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "26", width: "46", height: "2", rx: "1", fill: MUTED }),
5905
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "30", width: "40", height: "2", rx: "1", fill: MUTED })
4931
5906
  ] }),
4932
- ContactSection: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4933
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "10", width: "20", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
4934
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "16", width: "80", height: "5", rx: "1.5", fill: TEXT }),
4935
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "28", width: "34", height: "32", rx: "2", fill: PRIMARY_SOFT, opacity: "0.5" }),
4936
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5907
+ ContactSection: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5908
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "10", width: "20", height: "3", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5909
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "16", width: "80", height: "5", rx: "1.5", fill: TEXT }),
5910
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "28", width: "34", height: "32", rx: "2", fill: PRIMARY_SOFT, opacity: "0.5" }),
5911
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4937
5912
  "rect",
4938
5913
  {
4939
5914
  x: "50",
@@ -4941,18 +5916,18 @@ function getPreviews(c) {
4941
5916
  width: "60",
4942
5917
  height: "32",
4943
5918
  rx: "2",
4944
- fill: "#fff",
5919
+ fill: CARD,
4945
5920
  stroke: BORDER,
4946
5921
  strokeWidth: "0.8"
4947
5922
  }
4948
5923
  ),
4949
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "54", y: "32", width: "24", height: "3", rx: "1", fill: MUTED }),
4950
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "54", y: "38", width: "52", height: "3", rx: "1", fill: "#fff", stroke: BORDER, strokeWidth: "0.5" }),
4951
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "54", y: "44", width: "52", height: "3", rx: "1", fill: "#fff", stroke: BORDER, strokeWidth: "0.5" }),
4952
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "54", y: "50", width: "20", height: "6", rx: "1.5", fill: PRIMARY })
5924
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "54", y: "32", width: "24", height: "3", rx: "1", fill: MUTED }),
5925
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "54", y: "38", width: "52", height: "3", rx: "1", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
5926
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "54", y: "44", width: "52", height: "3", rx: "1", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
5927
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "54", y: "50", width: "20", height: "6", rx: "1.5", fill: PRIMARY })
4953
5928
  ] }),
4954
- Spacer: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4955
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5929
+ Spacer: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5930
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4956
5931
  "line",
4957
5932
  {
4958
5933
  x1: "14",
@@ -4964,7 +5939,7 @@ function getPreviews(c) {
4964
5939
  strokeDasharray: "3 2"
4965
5940
  }
4966
5941
  ),
4967
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5942
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4968
5943
  "text",
4969
5944
  {
4970
5945
  x: "60",
@@ -4977,8 +5952,8 @@ function getPreviews(c) {
4977
5952
  }
4978
5953
  )
4979
5954
  ] }),
4980
- RawHtml: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
4981
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5955
+ RawHtml: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5956
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4982
5957
  "text",
4983
5958
  {
4984
5959
  x: "14",
@@ -4990,31 +5965,31 @@ function getPreviews(c) {
4990
5965
  children: "</>"
4991
5966
  }
4992
5967
  ),
4993
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "56", y: "22", width: "50", height: "2", rx: "1", fill: MUTED }),
4994
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "56", y: "28", width: "42", height: "2", rx: "1", fill: MUTED }),
4995
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "56", y: "34", width: "48", height: "2", rx: "1", fill: MUTED }),
4996
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "56", y: "40", width: "40", height: "2", rx: "1", fill: MUTED }),
4997
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "56", y: "46", width: "44", height: "2", rx: "1", fill: MUTED })
5968
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "56", y: "22", width: "50", height: "2", rx: "1", fill: MUTED }),
5969
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "56", y: "28", width: "42", height: "2", rx: "1", fill: MUTED }),
5970
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "56", y: "34", width: "48", height: "2", rx: "1", fill: MUTED }),
5971
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "56", y: "40", width: "40", height: "2", rx: "1", fill: MUTED }),
5972
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "56", y: "46", width: "44", height: "2", rx: "1", fill: MUTED })
4998
5973
  ] }),
4999
- ImageText: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5000
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "14", width: "44", height: "42", rx: "2", fill: PRIMARY_SOFT }),
5001
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "20", y1: "22", x2: "44", y2: "48", stroke: PRIMARY, strokeWidth: "0.6", opacity: "0.6" }),
5002
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "44", y1: "22", x2: "20", y2: "48", stroke: PRIMARY, strokeWidth: "0.6", opacity: "0.6" }),
5003
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "18", width: "14", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5004
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "24", width: "44", height: "5", rx: "1.5", fill: TEXT }),
5005
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "34", width: "46", height: "2", rx: "1", fill: MUTED }),
5006
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "38", width: "40", height: "2", rx: "1", fill: MUTED }),
5007
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "42", width: "42", height: "2", rx: "1", fill: MUTED }),
5008
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "50", width: "28", height: "6", rx: "1.5", fill: PRIMARY })
5974
+ ImageText: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5975
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "14", width: "44", height: "42", rx: "2", fill: PRIMARY_SOFT }),
5976
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "20", y1: "22", x2: "44", y2: "48", stroke: PRIMARY, strokeWidth: "0.6", opacity: "0.6" }),
5977
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "44", y1: "22", x2: "20", y2: "48", stroke: PRIMARY, strokeWidth: "0.6", opacity: "0.6" }),
5978
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "18", width: "14", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5979
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "24", width: "44", height: "5", rx: "1.5", fill: TEXT }),
5980
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "34", width: "46", height: "2", rx: "1", fill: MUTED }),
5981
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "38", width: "40", height: "2", rx: "1", fill: MUTED }),
5982
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "42", width: "42", height: "2", rx: "1", fill: MUTED }),
5983
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "50", width: "28", height: "6", rx: "1.5", fill: PRIMARY })
5009
5984
  ] }),
5010
- VideoEmbed: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5011
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: "16", width: "80", height: "38", rx: "2", fill: "#0F172A" }),
5012
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("polygon", { points: "55,26 55,44 70,35", fill: "#fff", opacity: "0.95" }),
5013
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "40", y: "60", width: "40", height: "2", rx: "1", fill: MUTED })
5985
+ VideoEmbed: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
5986
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: "16", width: "80", height: "38", rx: "2", fill: "#0F172A" }),
5987
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("polygon", { points: "55,26 55,44 70,35", fill: "#ffffff", opacity: "0.95" }),
5988
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "40", y: "60", width: "40", height: "2", rx: "1", fill: MUTED })
5014
5989
  ] }),
5015
- LogoStrip: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
5016
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "48", y: "14", width: "24", height: "2", rx: "1", fill: MUTED }),
5017
- [14, 36, 58, 80, 102].map((cx, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5990
+ LogoStrip: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
5991
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "48", y: "14", width: "24", height: "2", rx: "1", fill: MUTED }),
5992
+ [14, 36, 58, 80, 102].map((cx, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5018
5993
  "rect",
5019
5994
  {
5020
5995
  x: cx - 8,
@@ -5022,15 +5997,15 @@ function getPreviews(c) {
5022
5997
  width: "16",
5023
5998
  height: "10",
5024
5999
  rx: "2",
5025
- fill: "#fff",
6000
+ fill: CARD,
5026
6001
  stroke: BORDER,
5027
6002
  strokeWidth: "0.5"
5028
6003
  },
5029
6004
  i
5030
6005
  ))
5031
6006
  ] }),
5032
- TestimonialQuote: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
5033
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6007
+ TestimonialQuote: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6008
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5034
6009
  "text",
5035
6010
  {
5036
6011
  x: "20",
@@ -5042,15 +6017,15 @@ function getPreviews(c) {
5042
6017
  children: '"'
5043
6018
  }
5044
6019
  ),
5045
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "28", width: "92", height: "3", rx: "1", fill: TEXT }),
5046
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "34", width: "86", height: "3", rx: "1", fill: TEXT }),
5047
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "40", width: "60", height: "3", rx: "1", fill: TEXT }),
5048
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: "42", cy: "56", r: "4", fill: PRIMARY }),
5049
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "50", y: "52", width: "22", height: "2.5", rx: "1", fill: TEXT }),
5050
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "50", y: "56", width: "34", height: "2", rx: "1", fill: MUTED })
6020
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "28", width: "92", height: "3", rx: "1", fill: TEXT }),
6021
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "34", width: "86", height: "3", rx: "1", fill: TEXT }),
6022
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "40", width: "60", height: "3", rx: "1", fill: TEXT }),
6023
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "42", cy: "56", r: "4", fill: PRIMARY }),
6024
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "50", y: "52", width: "22", height: "2.5", rx: "1", fill: TEXT }),
6025
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "50", y: "56", width: "34", height: "2", rx: "1", fill: MUTED })
5051
6026
  ] }),
5052
- TestimonialGrid: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5053
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6027
+ TestimonialGrid: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6028
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5054
6029
  "rect",
5055
6030
  {
5056
6031
  x,
@@ -5058,21 +6033,21 @@ function getPreviews(c) {
5058
6033
  width: "32",
5059
6034
  height: "42",
5060
6035
  rx: "2",
5061
- fill: "#fff",
6036
+ fill: CARD,
5062
6037
  stroke: BORDER,
5063
6038
  strokeWidth: "0.8"
5064
6039
  }
5065
6040
  ),
5066
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: x + 4, y: "22", fontSize: "6", fontFamily: "Georgia", fill: PRIMARY, opacity: "0.6", children: '"' }),
5067
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "24", width: "22", height: "2", rx: "1", fill: TEXT }),
5068
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "28", width: "24", height: "2", rx: "1", fill: TEXT }),
5069
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "32", width: "20", height: "2", rx: "1", fill: TEXT }),
5070
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 7, cy: "46", r: "3", fill: PRIMARY }),
5071
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 12, y: "44", width: "14", height: "2", rx: "1", fill: TEXT }),
5072
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 12, y: "48", width: "18", height: "1.5", rx: "0.5", fill: MUTED })
6041
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: x + 4, y: "22", fontSize: "6", fontFamily: "Georgia", fill: PRIMARY, opacity: "0.6", children: '"' }),
6042
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "24", width: "22", height: "2", rx: "1", fill: TEXT }),
6043
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "28", width: "24", height: "2", rx: "1", fill: TEXT }),
6044
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "32", width: "20", height: "2", rx: "1", fill: TEXT }),
6045
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 7, cy: "46", r: "3", fill: PRIMARY }),
6046
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 12, y: "44", width: "14", height: "2", rx: "1", fill: TEXT }),
6047
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 12, y: "48", width: "18", height: "1.5", rx: "0.5", fill: MUTED })
5073
6048
  ] }, i)) }),
5074
- FAQ: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5075
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6049
+ FAQ: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6050
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5076
6051
  "rect",
5077
6052
  {
5078
6053
  x: "14",
@@ -5080,14 +6055,14 @@ function getPreviews(c) {
5080
6055
  width: "92",
5081
6056
  height: "10",
5082
6057
  rx: "2",
5083
- fill: i === 0 ? PRIMARY_SOFT : "#fff",
6058
+ fill: i === 0 ? PRIMARY_SOFT : CARD,
5084
6059
  stroke: BORDER,
5085
6060
  strokeWidth: "0.6",
5086
6061
  opacity: i === 0 ? 0.7 : 1
5087
6062
  }
5088
6063
  ),
5089
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: y + 4, width: "50", height: "2", rx: "1", fill: TEXT }),
5090
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6064
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: y + 4, width: "50", height: "2", rx: "1", fill: TEXT }),
6065
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5091
6066
  "text",
5092
6067
  {
5093
6068
  x: "98",
@@ -5100,21 +6075,21 @@ function getPreviews(c) {
5100
6075
  }
5101
6076
  )
5102
6077
  ] }, i)) }),
5103
- Timeline: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5104
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "22", y1: "14", x2: "22", y2: "58", stroke: BORDER, strokeWidth: "1" }),
5105
- [16, 32, 48].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5106
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: "22", cy: y, r: "3", fill: PRIMARY }),
5107
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "32", y: y - 5, width: "14", height: "2", rx: "1", fill: ACCENT }),
5108
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "32", y: y - 1, width: "40", height: "3", rx: "1", fill: TEXT }),
5109
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "32", y: y + 4, width: "60", height: "2", rx: "1", fill: MUTED })
6078
+ Timeline: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6079
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "22", y1: "14", x2: "22", y2: "58", stroke: BORDER, strokeWidth: "1" }),
6080
+ [16, 32, 48].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6081
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "22", cy: y, r: "3", fill: PRIMARY }),
6082
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "32", y: y - 5, width: "14", height: "2", rx: "1", fill: ACCENT }),
6083
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "32", y: y - 1, width: "40", height: "3", rx: "1", fill: TEXT }),
6084
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "32", y: y + 4, width: "60", height: "2", rx: "1", fill: MUTED })
5110
6085
  ] }, i))
5111
6086
  ] }),
5112
- NewsletterSignup: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
5113
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "22", height: "2.5", rx: "1", fill: ACCENT }),
5114
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "20", width: "76", height: "5", rx: "1.5", fill: TEXT }),
5115
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "30", width: "92", height: "2", rx: "1", fill: MUTED }),
5116
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "34", width: "80", height: "2", rx: "1", fill: MUTED }),
5117
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6087
+ NewsletterSignup: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6088
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "22", height: "2.5", rx: "1", fill: ACCENT }),
6089
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "20", width: "76", height: "5", rx: "1.5", fill: TEXT }),
6090
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "30", width: "92", height: "2", rx: "1", fill: MUTED }),
6091
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "34", width: "80", height: "2", rx: "1", fill: MUTED }),
6092
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5118
6093
  "rect",
5119
6094
  {
5120
6095
  x: "14",
@@ -5122,15 +6097,15 @@ function getPreviews(c) {
5122
6097
  width: "64",
5123
6098
  height: "9",
5124
6099
  rx: "2",
5125
- fill: "#fff",
6100
+ fill: CARD,
5126
6101
  stroke: BORDER,
5127
6102
  strokeWidth: "0.6"
5128
6103
  }
5129
6104
  ),
5130
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "82", y: "44", width: "24", height: "9", rx: "2", fill: PRIMARY })
6105
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "82", y: "44", width: "24", height: "9", rx: "2", fill: PRIMARY })
5131
6106
  ] }),
5132
- TeamGrid: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5133
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6107
+ TeamGrid: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6108
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5134
6109
  "rect",
5135
6110
  {
5136
6111
  x,
@@ -5138,25 +6113,25 @@ function getPreviews(c) {
5138
6113
  width: "32",
5139
6114
  height: "48",
5140
6115
  rx: "2",
5141
- fill: "#fff",
6116
+ fill: CARD,
5142
6117
  stroke: BORDER,
5143
6118
  strokeWidth: "0.6"
5144
6119
  }
5145
6120
  ),
5146
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "12", width: "32", height: "22", rx: "2", fill: PRIMARY_SOFT }),
5147
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 16, cy: "22", r: "6", fill: PRIMARY, opacity: "0.7" }),
5148
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "38", width: "20", height: "2.5", rx: "1", fill: TEXT }),
5149
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "44", width: "14", height: "2", rx: "1", fill: ACCENT }),
5150
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "50", width: "22", height: "1.5", rx: "0.5", fill: MUTED }),
5151
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "54", width: "18", height: "1.5", rx: "0.5", fill: MUTED })
6121
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "12", width: "32", height: "22", rx: "2", fill: PRIMARY_SOFT }),
6122
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 16, cy: "22", r: "6", fill: PRIMARY, opacity: "0.7" }),
6123
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "38", width: "20", height: "2.5", rx: "1", fill: TEXT }),
6124
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "44", width: "14", height: "2", rx: "1", fill: ACCENT }),
6125
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "50", width: "22", height: "1.5", rx: "0.5", fill: MUTED }),
6126
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "54", width: "18", height: "1.5", rx: "0.5", fill: MUTED })
5152
6127
  ] }, i)) }),
5153
- Banner: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5154
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "0", y: "26", width: FRAME_W, height: "18", fill: PRIMARY_SOFT }),
5155
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "32", width: "14", height: "6", rx: "1.5", fill: PRIMARY }),
5156
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "32", y: "33", width: "32", height: "3", rx: "1", fill: TEXT }),
5157
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "32", y: "38", width: "22", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5158
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "80", y: "33", width: "22", height: "3", rx: "1", fill: PRIMARY }),
5159
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6128
+ Banner: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6129
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "0", y: "26", width: FRAME_W, height: "18", fill: PRIMARY_SOFT }),
6130
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "32", width: "14", height: "6", rx: "1.5", fill: PRIMARY }),
6131
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "32", y: "33", width: "32", height: "3", rx: "1", fill: TEXT }),
6132
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "32", y: "38", width: "22", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
6133
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "80", y: "33", width: "22", height: "3", rx: "1", fill: PRIMARY }),
6134
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5160
6135
  "text",
5161
6136
  {
5162
6137
  x: "100",
@@ -5169,19 +6144,19 @@ function getPreviews(c) {
5169
6144
  }
5170
6145
  )
5171
6146
  ] }),
5172
- ArticleFeatured: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5173
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "14", width: "44", height: "42", rx: "2", fill: PRIMARY_SOFT }),
5174
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "68", y1: "22", x2: "100", y2: "48", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
5175
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "100", y1: "22", x2: "68", y2: "48", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
5176
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "20", height: "4", rx: "1", fill: PRIMARY }),
5177
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "22", width: "40", height: "5", rx: "1.5", fill: TEXT }),
5178
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "30", width: "44", height: "2", rx: "1", fill: MUTED }),
5179
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "34", width: "38", height: "2", rx: "1", fill: MUTED }),
5180
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "42", width: "32", height: "2", rx: "1", fill: MUTED, opacity: "0.7" }),
5181
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "50", width: "22", height: "6", rx: "1.5", fill: PRIMARY })
6147
+ ArticleFeatured: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6148
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "14", width: "44", height: "42", rx: "2", fill: PRIMARY_SOFT }),
6149
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "68", y1: "22", x2: "100", y2: "48", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
6150
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "100", y1: "22", x2: "68", y2: "48", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
6151
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "20", height: "4", rx: "1", fill: PRIMARY }),
6152
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "22", width: "40", height: "5", rx: "1.5", fill: TEXT }),
6153
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "30", width: "44", height: "2", rx: "1", fill: MUTED }),
6154
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "34", width: "38", height: "2", rx: "1", fill: MUTED }),
6155
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "42", width: "32", height: "2", rx: "1", fill: MUTED, opacity: "0.7" }),
6156
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "50", width: "22", height: "6", rx: "1.5", fill: PRIMARY })
5182
6157
  ] }),
5183
- ArticleGrid: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5184
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6158
+ ArticleGrid: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6159
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5185
6160
  "rect",
5186
6161
  {
5187
6162
  x,
@@ -5189,20 +6164,20 @@ function getPreviews(c) {
5189
6164
  width: "32",
5190
6165
  height: "48",
5191
6166
  rx: "2",
5192
- fill: "#fff",
6167
+ fill: CARD,
5193
6168
  stroke: BORDER,
5194
6169
  strokeWidth: "0.6"
5195
6170
  }
5196
6171
  ),
5197
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "12", width: "32", height: "20", rx: "2", fill: PRIMARY_SOFT }),
5198
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "36", width: "10", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5199
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "40", width: "22", height: "3", rx: "1", fill: TEXT }),
5200
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "46", width: "20", height: "1.5", rx: "0.5", fill: MUTED }),
5201
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "49", width: "18", height: "1.5", rx: "0.5", fill: MUTED }),
5202
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "55", width: "14", height: "1.5", rx: "0.5", fill: MUTED, opacity: "0.7" })
6172
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "12", width: "32", height: "20", rx: "2", fill: PRIMARY_SOFT }),
6173
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "36", width: "10", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
6174
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "40", width: "22", height: "3", rx: "1", fill: TEXT }),
6175
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "46", width: "20", height: "1.5", rx: "0.5", fill: MUTED }),
6176
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "49", width: "18", height: "1.5", rx: "0.5", fill: MUTED }),
6177
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "55", width: "14", height: "1.5", rx: "0.5", fill: MUTED, opacity: "0.7" })
5203
6178
  ] }, i)) }),
5204
- ArticleList: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [14, 28, 42, 56].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5205
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6179
+ ArticleList: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [14, 28, 42, 56].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6180
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5206
6181
  "line",
5207
6182
  {
5208
6183
  x1: "14",
@@ -5213,18 +6188,18 @@ function getPreviews(c) {
5213
6188
  strokeWidth: "0.5"
5214
6189
  }
5215
6190
  ),
5216
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y, width: "14", height: "2", rx: "1", fill: MUTED }),
5217
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "34", y: y - 1, width: "10", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
5218
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "48", y: y - 1, width: "50", height: "2.5", rx: "1", fill: TEXT }),
5219
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "106", y: y + 1, fontSize: "6", fill: MUTED, textAnchor: "end", fontFamily: "system-ui", children: "\u2192" })
6191
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y, width: "14", height: "2", rx: "1", fill: MUTED }),
6192
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "34", y: y - 1, width: "10", height: "2", rx: "1", fill: PRIMARY, opacity: "0.7" }),
6193
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "48", y: y - 1, width: "50", height: "2.5", rx: "1", fill: TEXT }),
6194
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "106", y: y + 1, fontSize: "6", fill: MUTED, textAnchor: "end", fontFamily: "system-ui", children: "\u2192" })
5220
6195
  ] }, i)) }),
5221
- IconCards: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [
6196
+ IconCards: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [
5222
6197
  [10, 12],
5223
6198
  [38, 12],
5224
6199
  [66, 12],
5225
6200
  [94, 12]
5226
- ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5227
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6201
+ ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6202
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5228
6203
  "rect",
5229
6204
  {
5230
6205
  x: x - 4,
@@ -5232,24 +6207,24 @@ function getPreviews(c) {
5232
6207
  width: "24",
5233
6208
  height: "46",
5234
6209
  rx: "2",
5235
- fill: "#fff",
6210
+ fill: CARD,
5236
6211
  stroke: BORDER,
5237
6212
  strokeWidth: "0.6"
5238
6213
  }
5239
6214
  ),
5240
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 4, width: "10", height: "10", rx: "2", fill: PRIMARY_SOFT }),
5241
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 4, cy: y + 9, r: "2.5", fill: PRIMARY }),
5242
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 18, width: "14", height: "2", rx: "1", fill: TEXT }),
5243
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 24, width: "16", height: "1.5", rx: "0.5", fill: MUTED }),
5244
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 28, width: "14", height: "1.5", rx: "0.5", fill: MUTED })
6215
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 4, width: "10", height: "10", rx: "2", fill: PRIMARY_SOFT }),
6216
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 4, cy: y + 9, r: "2.5", fill: PRIMARY }),
6217
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 18, width: "14", height: "2", rx: "1", fill: TEXT }),
6218
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 24, width: "16", height: "1.5", rx: "0.5", fill: MUTED }),
6219
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 28, width: "14", height: "1.5", rx: "0.5", fill: MUTED })
5245
6220
  ] }, i)) }),
5246
- MetricCards: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [
6221
+ MetricCards: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [
5247
6222
  [10, 12],
5248
6223
  [38, 12],
5249
6224
  [66, 12],
5250
6225
  [94, 12]
5251
- ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5252
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6226
+ ].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6227
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5253
6228
  "rect",
5254
6229
  {
5255
6230
  x: x - 4,
@@ -5257,12 +6232,12 @@ function getPreviews(c) {
5257
6232
  width: "24",
5258
6233
  height: "46",
5259
6234
  rx: "2",
5260
- fill: "#fff",
6235
+ fill: CARD,
5261
6236
  stroke: BORDER,
5262
6237
  strokeWidth: "0.6"
5263
6238
  }
5264
6239
  ),
5265
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6240
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5266
6241
  "text",
5267
6242
  {
5268
6243
  x: x + 8,
@@ -5275,9 +6250,9 @@ function getPreviews(c) {
5275
6250
  children: ["80%", "8wk", "4.8", "0"][i]
5276
6251
  }
5277
6252
  ),
5278
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 25, width: "20", height: "1.5", rx: "0.5", fill: MUTED }),
5279
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 1, y: y + 29, width: "16", height: "1.5", rx: "0.5", fill: MUTED }),
5280
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6253
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 25, width: "20", height: "1.5", rx: "0.5", fill: MUTED }),
6254
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 1, y: y + 29, width: "16", height: "1.5", rx: "0.5", fill: MUTED }),
6255
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
5281
6256
  "rect",
5282
6257
  {
5283
6258
  x,
@@ -5290,175 +6265,308 @@ function getPreviews(c) {
5290
6265
  }
5291
6266
  )
5292
6267
  ] }, i)) }),
5293
- ImageOverlayCards: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5294
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("linearGradient", { id: `oc-grad-${i}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
5295
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("stop", { offset: "0%", stopColor: PRIMARY, stopOpacity: "0.3" }),
5296
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("stop", { offset: "100%", stopColor: "#0F172A" })
6268
+ ImageOverlayCards: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6269
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("linearGradient", { id: `oc-grad-${i}`, x1: "0", y1: "0", x2: "0", y2: "1", children: [
6270
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("stop", { offset: "0%", stopColor: PRIMARY, stopOpacity: "0.3" }),
6271
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("stop", { offset: "100%", stopColor: "#0F172A" })
5297
6272
  ] }) }),
5298
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "12", width: "32", height: "48", rx: "2", fill: `url(#oc-grad-${i})` }),
5299
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "38", width: "10", height: "2", rx: "1", fill: ACCENT }),
5300
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "44", width: "22", height: "3", rx: "1", fill: "#fff" }),
5301
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "50", width: "20", height: "1.5", rx: "0.5", fill: "#fff", opacity: "0.85" }),
5302
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "53", width: "14", height: "1.5", rx: "0.5", fill: "#fff", opacity: "0.85" })
6273
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "12", width: "32", height: "48", rx: "2", fill: `url(#oc-grad-${i})` }),
6274
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "38", width: "10", height: "2", rx: "1", fill: ACCENT }),
6275
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "44", width: "22", height: "3", rx: "1", fill: "#ffffff" }),
6276
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "50", width: "20", height: "1.5", rx: "0.5", fill: "#ffffff", opacity: "0.85" }),
6277
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "53", width: "14", height: "1.5", rx: "0.5", fill: "#ffffff", opacity: "0.85" })
5303
6278
  ] }, i)) }),
5304
- PricingTable: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5305
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "10", width: "32", height: "50", rx: "2", fill: i === 1 ? PRIMARY : "#fff", stroke: BORDER, strokeWidth: "0.6" }),
5306
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "14", width: "14", height: "2", rx: "1", fill: i === 1 ? "#fff" : MUTED }),
5307
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "20", width: "18", height: "6", rx: "1.5", fill: i === 1 ? "#fff" : TEXT }),
5308
- [32, 38, 44].map((y, j) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y, width: "22", height: "1.5", rx: "0.5", fill: i === 1 ? "#fff" : MUTED, opacity: i === 1 ? 0.9 : 0.7 }, j)),
5309
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 4, y: "52", width: "22", height: "5", rx: "1.5", fill: i === 1 ? "#fff" : PRIMARY })
6279
+ PricingTable: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6280
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "10", width: "32", height: "50", rx: "2", fill: i === 1 ? PRIMARY : CARD, stroke: BORDER, strokeWidth: "0.6" }),
6281
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "14", width: "14", height: "2", rx: "1", fill: i === 1 ? "#fff" : MUTED }),
6282
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "20", width: "18", height: "6", rx: "1.5", fill: i === 1 ? "#fff" : TEXT }),
6283
+ [32, 38, 44].map((y, j) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y, width: "22", height: "1.5", rx: "0.5", fill: i === 1 ? "#fff" : MUTED, opacity: i === 1 ? 0.9 : 0.7 }, j)),
6284
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 4, y: "52", width: "22", height: "5", rx: "1.5", fill: i === 1 ? "#fff" : PRIMARY })
5310
6285
  ] }, i)) }),
5311
- PricingComparison: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5312
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "14", width: "100", height: "6", fill: PRIMARY_SOFT }),
5313
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "16", width: "22", height: "2", rx: "1", fill: TEXT }),
5314
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "42", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
5315
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "62", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
5316
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "82", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
5317
- [26, 34, 42, 50].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5318
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y, width: "22", height: "1.5", rx: "0.5", fill: MUTED }),
5319
- [42, 62, 82].map((cx, j) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: cx + 7, y: y + 2, fontSize: "5", fill: (i + j) % 2 ? PRIMARY : MUTED, textAnchor: "middle", fontFamily: "system-ui", children: (i + j) % 2 ? "\u2713" : "\xB7" }, j))
6286
+ PricingComparison: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6287
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "14", width: "100", height: "6", fill: PRIMARY_SOFT }),
6288
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "16", width: "22", height: "2", rx: "1", fill: TEXT }),
6289
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "42", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
6290
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
6291
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "82", y: "16", width: "14", height: "2", rx: "1", fill: TEXT }),
6292
+ [26, 34, 42, 50].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6293
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y, width: "22", height: "1.5", rx: "0.5", fill: MUTED }),
6294
+ [42, 62, 82].map((cx, j) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: cx + 7, y: y + 2, fontSize: "5", fill: (i + j) % 2 ? PRIMARY : MUTED, textAnchor: "middle", fontFamily: "system-ui", children: (i + j) % 2 ? "\u2713" : "\xB7" }, j))
5320
6295
  ] }, i))
5321
6296
  ] }),
5322
- AwardsBar: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [24, 60, 96].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5323
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x, cy: "22", r: "6", fill: ACCENT, opacity: "0.85" }),
5324
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 12, y: "32", width: "24", height: "2.5", rx: "1", fill: TEXT }),
5325
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 8, y: "38", width: "16", height: "2", rx: "1", fill: MUTED }),
5326
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 5, y: "44", width: "10", height: "1.5", rx: "0.5", fill: MUTED, opacity: "0.6" })
6297
+ AwardsBar: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [24, 60, 96].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6298
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x, cy: "22", r: "6", fill: ACCENT, opacity: "0.85" }),
6299
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 12, y: "32", width: "24", height: "2.5", rx: "1", fill: TEXT }),
6300
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 8, y: "38", width: "16", height: "2", rx: "1", fill: MUTED }),
6301
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 5, y: "44", width: "10", height: "1.5", rx: "0.5", fill: MUTED, opacity: "0.6" })
5327
6302
  ] }, i)) }),
5328
- CountUpStats: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { soft: true, children: [24, 60, 96].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5329
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("text", { x, y: "28", fontSize: "14", fontWeight: "800", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: [
6303
+ CountUpStats: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { soft: true, children: [24, 60, 96].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6304
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("text", { x, y: "28", fontSize: "14", fontWeight: "800", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: [
5330
6305
  ["80", "50", "14"][i],
5331
6306
  ["%", "+", ""][i]
5332
6307
  ] }),
5333
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 16, y: "36", width: "32", height: "2", rx: "1", fill: MUTED }),
5334
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x - 12, y: "42", width: "24", height: "2", rx: "1", fill: MUTED, opacity: "0.7" })
6308
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 16, y: "36", width: "32", height: "2", rx: "1", fill: MUTED }),
6309
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x - 12, y: "42", width: "24", height: "2", rx: "1", fill: MUTED, opacity: "0.7" })
5335
6310
  ] }, i)) }),
5336
- ImageGallery: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [
6311
+ ImageGallery: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [
5337
6312
  [10, 12, 32, 22],
5338
6313
  [44, 12, 32, 22],
5339
6314
  [78, 12, 32, 22],
5340
6315
  [10, 36, 32, 22],
5341
6316
  [44, 36, 32, 22],
5342
6317
  [78, 36, 32, 22]
5343
- ].map(([x, y, w, h], i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y, width: w, height: h, rx: "2", fill: PRIMARY_SOFT, stroke: BORDER, strokeWidth: "0.5" }, i)) }),
5344
- ImageCaption: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5345
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: "12", width: "80", height: "34", rx: "2", fill: PRIMARY_SOFT, stroke: BORDER, strokeWidth: "0.6" }),
5346
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "30", y1: "20", x2: "90", y2: "38", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
5347
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "90", y1: "20", x2: "30", y2: "38", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
5348
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "34", y: "52", width: "52", height: "2", rx: "1", fill: MUTED }),
5349
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "42", y: "56", width: "36", height: "2", rx: "1", fill: MUTED, opacity: "0.7" })
6318
+ ].map(([x, y, w, h], i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y, width: w, height: h, rx: "2", fill: PRIMARY_SOFT, stroke: BORDER, strokeWidth: "0.5" }, i)) }),
6319
+ ImageCaption: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6320
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: "12", width: "80", height: "34", rx: "2", fill: PRIMARY_SOFT, stroke: BORDER, strokeWidth: "0.6" }),
6321
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "30", y1: "20", x2: "90", y2: "38", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
6322
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "90", y1: "20", x2: "30", y2: "38", stroke: PRIMARY, strokeWidth: "0.4", opacity: "0.4" }),
6323
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "34", y: "52", width: "52", height: "2", rx: "1", fill: MUTED }),
6324
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "42", y: "56", width: "36", height: "2", rx: "1", fill: MUTED, opacity: "0.7" })
5350
6325
  ] }),
5351
- InlineCTA: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
5352
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "22", width: "100", height: "26", rx: "3", fill: "#fff", stroke: BORDER, strokeWidth: "0.6" }),
5353
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "16", y: "28", width: "50", height: "3.5", rx: "1", fill: TEXT }),
5354
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "16", y: "36", width: "58", height: "2", rx: "1", fill: MUTED }),
5355
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "80", y: "30", width: "24", height: "10", rx: "2", fill: PRIMARY })
6326
+ InlineCTA: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6327
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "22", width: "100", height: "26", rx: "3", fill: CARD, stroke: BORDER, strokeWidth: "0.6" }),
6328
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "16", y: "28", width: "50", height: "3.5", rx: "1", fill: TEXT }),
6329
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "16", y: "36", width: "58", height: "2", rx: "1", fill: MUTED }),
6330
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "80", y: "30", width: "24", height: "10", rx: "2", fill: PRIMARY })
5356
6331
  ] }),
5357
- AnnouncementBar: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5358
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "0", y: "20", width: FRAME_W, height: "14", fill: "#0F172A" }),
5359
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "30", y: "25", width: "38", height: "2", rx: "1", fill: "#fff" }),
5360
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "72", y: "25", width: "22", height: "2", rx: "1", fill: ACCENT })
6332
+ AnnouncementBar: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6333
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "0", y: "20", width: FRAME_W, height: "14", fill: "#0F172A" }),
6334
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "30", y: "25", width: "38", height: "2", rx: "1", fill: "#ffffff" }),
6335
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "72", y: "25", width: "22", height: "2", rx: "1", fill: ACCENT })
5361
6336
  ] }),
5362
- Quote: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5363
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "14", y: "24", fontSize: "14", fontFamily: "Georgia", fill: PRIMARY, opacity: "0.6", children: '"' }),
5364
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "24", width: "80", height: "3.5", rx: "1", fill: TEXT }),
5365
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "32", width: "74", height: "3.5", rx: "1", fill: TEXT }),
5366
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "40", width: "58", height: "3.5", rx: "1", fill: TEXT }),
5367
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "50", width: "22", height: "2", rx: "1", fill: MUTED })
6337
+ Quote: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6338
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "14", y: "24", fontSize: "14", fontFamily: "Georgia", fill: PRIMARY, opacity: "0.6", children: '"' }),
6339
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "24", width: "80", height: "3.5", rx: "1", fill: TEXT }),
6340
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "32", width: "74", height: "3.5", rx: "1", fill: TEXT }),
6341
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "40", width: "58", height: "3.5", rx: "1", fill: TEXT }),
6342
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "50", width: "22", height: "2", rx: "1", fill: MUTED })
5368
6343
  ] }),
5369
- CodeBlock: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5370
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "12", width: "100", height: "48", rx: "2", fill: "#0F172A" }),
5371
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "12", width: "100", height: "8", fill: "#1E293B" }),
5372
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "20", height: "3", rx: "0.5", fill: MUTED }),
5373
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "14", y: "29", fontSize: "6", fill: "#7DD3FC", fontFamily: "ui-monospace, monospace", children: "$ make" }),
5374
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "14", y: "38", fontSize: "6", fill: "#86EFAC", fontFamily: "ui-monospace, monospace", children: " build" }),
5375
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "14", y: "47", fontSize: "6", fill: "#FCA5A5", fontFamily: "ui-monospace, monospace", children: " deploy" }),
5376
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "14", y: "56", fontSize: "6", fill: "#E2E8F0", fontFamily: "ui-monospace, monospace", children: `{ ok: true }` })
6344
+ CodeBlock: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6345
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "12", width: "100", height: "48", rx: "2", fill: "#0F172A" }),
6346
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "12", width: "100", height: "8", fill: "#1E293B" }),
6347
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "20", height: "3", rx: "0.5", fill: MUTED }),
6348
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "14", y: "29", fontSize: "6", fill: "#7DD3FC", fontFamily: "ui-monospace, monospace", children: "$ make" }),
6349
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "14", y: "38", fontSize: "6", fill: "#86EFAC", fontFamily: "ui-monospace, monospace", children: " build" }),
6350
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "14", y: "47", fontSize: "6", fill: "#FCA5A5", fontFamily: "ui-monospace, monospace", children: " deploy" }),
6351
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "14", y: "56", fontSize: "6", fill: "#E2E8F0", fontFamily: "ui-monospace, monospace", children: `{ ok: true }` })
5377
6352
  ] }),
5378
- KeyValueList: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [18, 30, 42, 54].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5379
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "14", y1: y - 6, x2: "106", y2: y - 6, stroke: BORDER, strokeWidth: "0.5" }),
5380
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: y - 2, width: "28", height: "2", rx: "1", fill: MUTED }),
5381
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "50", y: y - 2, width: "50", height: "2", rx: "1", fill: TEXT })
6353
+ KeyValueList: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [18, 30, 42, 54].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6354
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "14", y1: y - 6, x2: "106", y2: y - 6, stroke: BORDER, strokeWidth: "0.5" }),
6355
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: y - 2, width: "28", height: "2", rx: "1", fill: MUTED }),
6356
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "50", y: y - 2, width: "50", height: "2", rx: "1", fill: TEXT })
5382
6357
  ] }, i)) }),
5383
- StepsVertical: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5384
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "22", y1: "14", x2: "22", y2: "58", stroke: BORDER, strokeWidth: "0.6" }),
5385
- [16, 32, 48].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5386
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: "22", cy: y, r: "5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.7" }),
5387
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "22", y: y + 1.5, fontSize: "5", fontWeight: "700", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: i + 1 }),
5388
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "34", y: y - 2, width: "28", height: "3", rx: "1", fill: TEXT }),
5389
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "34", y: y + 4, width: "48", height: "2", rx: "1", fill: MUTED })
6358
+ StepsVertical: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6359
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "22", y1: "14", x2: "22", y2: "58", stroke: BORDER, strokeWidth: "0.6" }),
6360
+ [16, 32, 48].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6361
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "22", cy: y, r: "5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.7" }),
6362
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "22", y: y + 1.5, fontSize: "5", fontWeight: "700", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: i + 1 }),
6363
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "34", y: y - 2, width: "28", height: "3", rx: "1", fill: TEXT }),
6364
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "34", y: y + 4, width: "48", height: "2", rx: "1", fill: MUTED })
5390
6365
  ] }, i))
5391
6366
  ] }),
5392
- TabsBlock: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5393
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "20", height: "6", rx: "1", fill: PRIMARY }),
5394
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "36", y: "14", width: "20", height: "6", rx: "1", fill: "#fff", stroke: BORDER, strokeWidth: "0.5" }),
5395
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "58", y: "14", width: "20", height: "6", rx: "1", fill: "#fff", stroke: BORDER, strokeWidth: "0.5" }),
5396
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "14", y1: "22", x2: "106", y2: "22", stroke: BORDER, strokeWidth: "0.5" }),
5397
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "28", width: "78", height: "2", rx: "1", fill: TEXT }),
5398
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "34", width: "86", height: "2", rx: "1", fill: MUTED }),
5399
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "40", width: "80", height: "2", rx: "1", fill: MUTED }),
5400
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "46", width: "60", height: "2", rx: "1", fill: MUTED })
6367
+ TabsBlock: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6368
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "20", height: "6", rx: "1", fill: PRIMARY }),
6369
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "36", y: "14", width: "20", height: "6", rx: "1", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6370
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "58", y: "14", width: "20", height: "6", rx: "1", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6371
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "14", y1: "22", x2: "106", y2: "22", stroke: BORDER, strokeWidth: "0.5" }),
6372
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "28", width: "78", height: "2", rx: "1", fill: TEXT }),
6373
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "34", width: "86", height: "2", rx: "1", fill: MUTED }),
6374
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "40", width: "80", height: "2", rx: "1", fill: MUTED }),
6375
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "46", width: "60", height: "2", rx: "1", fill: MUTED })
5401
6376
  ] }),
5402
- AccordionBlock: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5403
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y, width: "92", height: "10", rx: "2", fill: i === 0 ? PRIMARY_SOFT : "#fff", stroke: BORDER, strokeWidth: "0.5" }),
5404
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: y + 4, width: "44", height: "2.5", rx: "1", fill: TEXT }),
5405
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "100", y: y + 7, fontSize: "6", fill: MUTED, textAnchor: "middle", fontFamily: "system-ui", children: i === 0 ? "\u2212" : "+" }),
5406
- i === 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
5407
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: y + 12, width: "68", height: "1.5", rx: "0.5", fill: MUTED }),
5408
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "20", y: y + 16, width: "60", height: "1.5", rx: "0.5", fill: MUTED })
6377
+ AccordionBlock: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6378
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y, width: "92", height: "10", rx: "2", fill: i === 0 ? PRIMARY_SOFT : CARD, stroke: BORDER, strokeWidth: "0.5" }),
6379
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: y + 4, width: "44", height: "2.5", rx: "1", fill: TEXT }),
6380
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: y + 7, fontSize: "6", fill: MUTED, textAnchor: "middle", fontFamily: "system-ui", children: i === 0 ? "\u2212" : "+" }),
6381
+ i === 0 && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
6382
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: y + 12, width: "68", height: "1.5", rx: "0.5", fill: MUTED }),
6383
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "20", y: y + 16, width: "60", height: "1.5", rx: "0.5", fill: MUTED })
5409
6384
  ] })
5410
6385
  ] }, i)) }),
5411
- SocialLinks: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5412
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "40", y: "22", width: "40", height: "2", rx: "1", fill: MUTED }),
5413
- [42, 54, 66, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x, cy: "42", r: "5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5" }, i))
6386
+ SocialLinks: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6387
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "40", y: "22", width: "40", height: "2", rx: "1", fill: MUTED }),
6388
+ [42, 54, 66, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x, cy: "42", r: "5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5" }, i))
5414
6389
  ] }),
5415
- ContactInfo: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5416
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "14", width: "100", height: "46", rx: "2", fill: "#fff", stroke: BORDER, strokeWidth: "0.6" }),
5417
- [[18, 22], [62, 22], [18, 42], [62, 42]].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5418
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: x + 4, cy: y + 4, r: "2.5", fill: PRIMARY, opacity: "0.7" }),
5419
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 10, y, width: "14", height: "2", rx: "1", fill: MUTED }),
5420
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: x + 10, y: y + 4, width: "22", height: "2.5", rx: "1", fill: TEXT })
6390
+ ContactInfo: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6391
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "14", width: "100", height: "46", rx: "2", fill: CARD, stroke: BORDER, strokeWidth: "0.6" }),
6392
+ [[18, 22], [62, 22], [18, 42], [62, 42]].map(([x, y], i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6393
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: x + 4, cy: y + 4, r: "2.5", fill: PRIMARY, opacity: "0.7" }),
6394
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 10, y, width: "14", height: "2", rx: "1", fill: MUTED }),
6395
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: x + 10, y: y + 4, width: "22", height: "2.5", rx: "1", fill: TEXT })
5421
6396
  ] }, i))
5422
6397
  ] }),
5423
- MapEmbed: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5424
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "10", y: "12", width: "100", height: "44", rx: "2", fill: "#DCFCE7", stroke: BORDER, strokeWidth: "0.5" }),
5425
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M 14 28 Q 30 14 50 28 T 90 28 L 106 22", stroke: MUTED, strokeWidth: "0.5", fill: "none" }),
5426
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M 14 42 Q 40 32 70 44 L 106 38", stroke: MUTED, strokeWidth: "0.5", fill: "none" }),
5427
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("circle", { cx: "60", cy: "32", r: "3", fill: "#DC2626" }),
5428
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("path", { d: "M 60 35 L 58 40 L 62 40 Z", fill: "#DC2626" })
6398
+ MapEmbed: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6399
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "10", y: "12", width: "100", height: "44", rx: "2", fill: "#DCFCE7", stroke: BORDER, strokeWidth: "0.5" }),
6400
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("path", { d: "M 14 28 Q 30 14 50 28 T 90 28 L 106 22", stroke: MUTED, strokeWidth: "0.5", fill: "none" }),
6401
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("path", { d: "M 14 42 Q 40 32 70 44 L 106 38", stroke: MUTED, strokeWidth: "0.5", fill: "none" }),
6402
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "60", cy: "32", r: "3", fill: "#DC2626" }),
6403
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("path", { d: "M 60 35 L 58 40 L 62 40 Z", fill: "#DC2626" })
5429
6404
  ] }),
5430
- EventsList: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5431
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y, width: "92", height: "11", rx: "2", fill: "#fff", stroke: BORDER, strokeWidth: "0.5" }),
5432
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "18", y: y + 2, width: "14", height: "7", rx: "1", fill: PRIMARY_SOFT }),
5433
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "25", y: y + 7, fontSize: "4", fontWeight: "700", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: ["MAR", "APR", "MAY"][i] }),
5434
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "36", y: y + 3, width: "40", height: "2", rx: "1", fill: TEXT }),
5435
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "36", y: y + 7, width: "50", height: "1.5", rx: "0.5", fill: MUTED }),
5436
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "100", y: y + 7, fontSize: "5", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: "\u2192" })
6405
+ EventsList: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [14, 30, 46].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6406
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y, width: "92", height: "11", rx: "2", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6407
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "18", y: y + 2, width: "14", height: "7", rx: "1", fill: PRIMARY_SOFT }),
6408
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "25", y: y + 7, fontSize: "4", fontWeight: "700", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: ["MAR", "APR", "MAY"][i] }),
6409
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "36", y: y + 3, width: "40", height: "2", rx: "1", fill: TEXT }),
6410
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "36", y: y + 7, width: "50", height: "1.5", rx: "0.5", fill: MUTED }),
6411
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: y + 7, fontSize: "5", fill: PRIMARY, textAnchor: "middle", fontFamily: "system-ui", children: "\u2192" })
5437
6412
  ] }, i)) }),
5438
- Divider: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5439
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "14", y1: "35", x2: "50", y2: "35", stroke: BORDER, strokeWidth: "0.8" }),
5440
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: "60", y: "38", fontSize: "6", fill: MUTED, textAnchor: "middle", fontWeight: "700", fontFamily: "system-ui", children: "\u2014 OR \u2014" }),
5441
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("line", { x1: "70", y1: "35", x2: "106", y2: "35", stroke: BORDER, strokeWidth: "0.8" })
6413
+ Divider: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6414
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "14", y1: "35", x2: "50", y2: "35", stroke: BORDER, strokeWidth: "0.8" }),
6415
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "60", y: "38", fontSize: "6", fill: MUTED, textAnchor: "middle", fontWeight: "700", fontFamily: "system-ui", children: "\u2014 OR \u2014" }),
6416
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("line", { x1: "70", y1: "35", x2: "106", y2: "35", stroke: BORDER, strokeWidth: "0.8" })
5442
6417
  ] }),
5443
- ThreeColumn: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("g", { children: [
5444
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "14", width: "32", height: "3.5", rx: "1", fill: TEXT }),
5445
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "22", width: "28", height: "2", rx: "1", fill: MUTED }),
5446
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "26", width: "32", height: "2", rx: "1", fill: MUTED }),
5447
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "30", width: "26", height: "2", rx: "1", fill: MUTED }),
5448
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "34", width: "30", height: "2", rx: "1", fill: MUTED }),
5449
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x, y: "38", width: "22", height: "2", rx: "1", fill: MUTED })
6418
+ ThreeColumn: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Frame, { children: [10, 44, 78].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6419
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "14", width: "32", height: "3.5", rx: "1", fill: TEXT }),
6420
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "22", width: "28", height: "2", rx: "1", fill: MUTED }),
6421
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "26", width: "32", height: "2", rx: "1", fill: MUTED }),
6422
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "30", width: "26", height: "2", rx: "1", fill: MUTED }),
6423
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "34", width: "30", height: "2", rx: "1", fill: MUTED }),
6424
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x, y: "38", width: "22", height: "2", rx: "1", fill: MUTED })
5450
6425
  ] }, i)) }),
5451
- PressMentions: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { soft: true, children: [
5452
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "40", y: "14", width: "40", height: "2", rx: "1", fill: MUTED }),
5453
- [20, 50, 80].map((cx, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("text", { x: cx, y: "42", fontSize: "9", fontFamily: "Georgia", fontStyle: "italic", fontWeight: "600", fill: MUTED, textAnchor: "middle", children: ["Forbes", "WSJ", "TechCrunch"][i] }, i))
6426
+ PressMentions: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6427
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "40", y: "14", width: "40", height: "2", rx: "1", fill: MUTED }),
6428
+ [20, 50, 80].map((cx, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: cx, y: "42", fontSize: "9", fontFamily: "Georgia", fontStyle: "italic", fontWeight: "600", fill: MUTED, textAnchor: "middle", children: ["Forbes", "WSJ", "TechCrunch"][i] }, i))
6429
+ ] }),
6430
+ Container: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6431
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "14", width: "92", height: "46", rx: "3", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5", strokeDasharray: "2 2" }),
6432
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "22", width: "20", height: "2.5", rx: "1", fill: PRIMARY }),
6433
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "30", width: "60", height: "4", rx: "1.5", fill: TEXT }),
6434
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "40", width: "76", height: "2", rx: "1", fill: MUTED }),
6435
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "44", width: "68", height: "2", rx: "1", fill: MUTED }),
6436
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "48", width: "50", height: "2", rx: "1", fill: MUTED })
6437
+ ] }),
6438
+ // ── Form blocks ──────────────────────────────────────────────────────────
6439
+ FormContact: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6440
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "46", height: "3", rx: "1", fill: TEXT }),
6441
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6442
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6443
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6444
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "27", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6445
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "92", height: "18", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6446
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "59", width: "28", height: "8", rx: "2", fill: PRIMARY })
6447
+ ] }),
6448
+ FormLeadCapture: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6449
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "52", height: "3", rx: "1", fill: TEXT }),
6450
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6451
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6452
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6453
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "31.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6454
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "92", height: "6", rx: "1.5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5", opacity: "0.7" }),
6455
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "17", y: "39.5", width: "14", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.8" }),
6456
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "33", y: "39.5", width: "18", height: "2.5", rx: "1", fill: PRIMARY, opacity: "0.8" }),
6457
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "47", width: "92", height: "11", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6458
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "62", width: "32", height: "6", rx: "2", fill: PRIMARY })
6459
+ ] }),
6460
+ FormNewsletter: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6461
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "28", y: "9", width: "64", height: "4", rx: "1.5", fill: TEXT }),
6462
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "28", y: "17", width: "60", height: "2.5", rx: "1", fill: MUTED }),
6463
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "28", width: "60", height: "8", rx: "2", fill: CARD, stroke: BORDER, strokeWidth: "0.6" }),
6464
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "78", y: "28", width: "28", height: "8", rx: "2", fill: PRIMARY }),
6465
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "42", width: "5", height: "5", rx: "1", fill: CARD, stroke: BORDER, strokeWidth: "0.6" }),
6466
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "43", width: "50", height: "2", rx: "1", fill: MUTED }),
6467
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "22", y: "48", width: "38", height: "2", rx: "1", fill: MUTED })
6468
+ ] }),
6469
+ FormFeedback: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6470
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "44", height: "3", rx: "1", fill: TEXT }),
6471
+ [14, 22, 30, 38, 46].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x, y: "22", fontSize: "8", fill: i < 4 ? ACCENT : BORDER, fontFamily: "system-ui", children: "\u2605" }, i)),
6472
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "28", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6473
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "32.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6474
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "38", width: "92", height: "18", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6475
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "60", width: "30", height: "7", rx: "2", fill: PRIMARY })
6476
+ ] }),
6477
+ FormSurvey: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6478
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "40", height: "3", rx: "1", fill: TEXT }),
6479
+ [14, 22, 30, 38, 46].map((x, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x, y: "21", fontSize: "8", fill: i < 3 ? ACCENT : BORDER, fontFamily: "system-ui", children: "\u2605" }, i)),
6480
+ [27, 35, 43, 51].map((y, i) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("g", { children: [
6481
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "19", cy: y, r: "2.5", fill: i === 0 ? PRIMARY_SOFT : CARD, stroke: i === 0 ? PRIMARY : BORDER, strokeWidth: "0.7" }),
6482
+ i === 0 && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("circle", { cx: "19", cy: y, r: "1.2", fill: PRIMARY }),
6483
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "25", y: y - 1.5, width: "30", height: "2.5", rx: "1", fill: MUTED })
6484
+ ] }, i)),
6485
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "57", width: "92", height: "10", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" })
6486
+ ] }),
6487
+ FormBooking: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6488
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "36", height: "3", rx: "1", fill: TEXT }),
6489
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6490
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6491
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6492
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "42", height: "6", rx: "1.5", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5", opacity: "0.8" }),
6493
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "16", y: "39", width: "8", height: "4", rx: "0.5", fill: PRIMARY, opacity: "0.7" }),
6494
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "37", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6495
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "41.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6496
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "47", width: "92", height: "12", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6497
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "63", width: "30", height: "6", rx: "2", fill: PRIMARY })
6498
+ ] }),
6499
+ FormRegistration: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6500
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "8", width: "50", height: "3", rx: "1", fill: TEXT }),
6501
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "16", width: "42", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6502
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "16", width: "44", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6503
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "25", width: "42", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6504
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "25", width: "44", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6505
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "34", width: "42", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6506
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "49", y: "38.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6507
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "34", width: "44", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6508
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "38.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6509
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "43", width: "92", height: "5.5", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6510
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "47.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6511
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "53", width: "92", height: "8", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6512
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "63", width: "28", height: "6", rx: "2", fill: PRIMARY })
6513
+ ] }),
6514
+ FormQuoteRequest: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6515
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "44", height: "3", rx: "1", fill: TEXT }),
6516
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6517
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6518
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6519
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "49", y: "31.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6520
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "27", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6521
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "31.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6522
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6523
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "41.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6524
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "47", width: "92", height: "14", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6525
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "63", width: "30", height: "5", rx: "1.5", fill: PRIMARY })
6526
+ ] }),
6527
+ FormApplication: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6528
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "36", height: "3", rx: "1", fill: TEXT }),
6529
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6530
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6531
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6532
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "27", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6533
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "92", height: "12", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6534
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "53", width: "92", height: "11", rx: "2", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5", strokeDasharray: "2 2" }),
6535
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "38", y: "61", fontSize: "6", fill: PRIMARY, fontFamily: "system-ui", opacity: "0.85", children: "\u2191 Upload CV" })
6536
+ ] }),
6537
+ FormSupport: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6538
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "52", height: "3", rx: "1", fill: TEXT }),
6539
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6540
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "17", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6541
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6542
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "49", y: "31.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6543
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "27", width: "44", height: "6", rx: "1.5", fill: ACCENT, opacity: "0.15", stroke: ACCENT, strokeWidth: "0.5" }),
6544
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "65", y: "29.5", width: "18", height: "2", rx: "1", fill: MUTED }),
6545
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6546
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "47", width: "92", height: "16", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6547
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "65", width: "28", height: "5", rx: "1.5", fill: PRIMARY })
6548
+ ] }),
6549
+ FormWaitlist: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { soft: true, children: [
6550
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "44", height: "3", rx: "1", fill: TEXT }),
6551
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "15", width: "70", height: "2.5", rx: "1", fill: MUTED }),
6552
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "23", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6553
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "23", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6554
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "33", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6555
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "33", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6556
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "100", y: "37.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6557
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "43", width: "92", height: "14", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6558
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "61", width: "28", height: "7", rx: "2", fill: PRIMARY })
5454
6559
  ] }),
5455
- Container: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(Frame, { children: [
5456
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "14", y: "14", width: "92", height: "46", rx: "3", fill: PRIMARY_SOFT, stroke: PRIMARY, strokeWidth: "0.5", strokeDasharray: "2 2" }),
5457
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "22", width: "20", height: "2.5", rx: "1", fill: PRIMARY }),
5458
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "30", width: "60", height: "4", rx: "1.5", fill: TEXT }),
5459
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "40", width: "76", height: "2", rx: "1", fill: MUTED }),
5460
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "44", width: "68", height: "2", rx: "1", fill: MUTED }),
5461
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("rect", { x: "22", y: "48", width: "50", height: "2", rx: "1", fill: MUTED })
6560
+ FormAddress: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Frame, { children: [
6561
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "9", width: "38", height: "3", rx: "1", fill: TEXT }),
6562
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "17", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6563
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "27", width: "92", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6564
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "37", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6565
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "37", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6566
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "47", width: "42", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6567
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("text", { x: "49", y: "51.5", fontSize: "5", fill: MUTED, fontFamily: "system-ui", children: "\u25BC" }),
6568
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "62", y: "47", width: "44", height: "6", rx: "1.5", fill: CARD, stroke: BORDER, strokeWidth: "0.5" }),
6569
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("rect", { x: "14", y: "57", width: "28", height: "8", rx: "2", fill: PRIMARY })
5462
6570
  ] })
5463
6571
  };
5464
6572
  }
@@ -5513,27 +6621,65 @@ var BLOCK_DESCRIPTIONS = {
5513
6621
  Divider: "Horizontal divider with optional centered label. Hairline / dashed / thick / dot styles.",
5514
6622
  ThreeColumn: "Generic 3-col text layout. Lighter than PillarsRow.",
5515
6623
  PressMentions: '"As featured in" press logos. Italic serif text fallback when no logos.',
5516
- Container: "Decorative box (soft / primary / dark / white) wrapping a single titled callout."
6624
+ Container: "Decorative box (soft / primary / dark / white) wrapping a single titled callout.",
6625
+ FormContact: "Lightweight contact form \u2014 name, email, phone, company, message. No hero or sidebar.",
6626
+ FormLeadCapture: "Lead-gen form with journey-stage select, capability multi-select, and notes.",
6627
+ FormNewsletter: "Newsletter signup with name, email, and consent checkbox.",
6628
+ FormFeedback: "Customer feedback \u2014 star rating, category select, free-text comment, optional contact.",
6629
+ FormSurvey: "Configurable survey \u2014 defaults to NPS-style with rating, recommend radio, and open text.",
6630
+ FormBooking: "Demo / appointment request \u2014 name, email, company, date picker, time slot, notes.",
6631
+ FormRegistration: "Event registration \u2014 name, contact, role, t-shirt size, dietary select.",
6632
+ FormQuoteRequest: "Quote request \u2014 company, project type, budget range, timeline, requirements.",
6633
+ FormApplication: "Job / programme application \u2014 contact, LinkedIn, portfolio, role, cover note, CV upload.",
6634
+ FormSupport: "Support ticket \u2014 name, email, category, priority, subject, description, attachment.",
6635
+ FormWaitlist: "Product waitlist \u2014 name, email, company, role, intended use case.",
6636
+ FormAddress: "Address / location form \u2014 name, street, city, state, country select, postal code."
5517
6637
  };
5518
6638
  function BlockThumbnail({ name }) {
5519
- const colors = useBrandColors();
6639
+ const colors = useThemeColors();
5520
6640
  const previews = getPreviews(colors);
5521
- return previews[name] || /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Frame, { children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
5522
- "text",
6641
+ if (previews[name]) return previews[name];
6642
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6643
+ "svg",
5523
6644
  {
5524
- x: "60",
5525
- y: "40",
5526
- fontSize: "8",
5527
- fill: MUTED,
5528
- textAnchor: "middle",
5529
- fontFamily: "system-ui",
5530
- children: name
6645
+ viewBox: `0 0 ${FRAME_W} ${FRAME_H}`,
6646
+ width: "100%",
6647
+ height: "auto",
6648
+ preserveAspectRatio: "xMidYMid meet",
6649
+ style: { display: "block", borderRadius: 4 },
6650
+ children: [
6651
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6652
+ "rect",
6653
+ {
6654
+ x: "0.5",
6655
+ y: "0.5",
6656
+ width: FRAME_W - 1,
6657
+ height: FRAME_H - 1,
6658
+ rx: "3",
6659
+ fill: colors.BG,
6660
+ stroke: colors.BORDER,
6661
+ strokeWidth: "1"
6662
+ }
6663
+ ),
6664
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6665
+ "text",
6666
+ {
6667
+ x: "60",
6668
+ y: "40",
6669
+ fontSize: "8",
6670
+ fill: colors.MUTED,
6671
+ textAnchor: "middle",
6672
+ fontFamily: "system-ui",
6673
+ children: name
6674
+ }
6675
+ )
6676
+ ]
5531
6677
  }
5532
- ) });
6678
+ );
5533
6679
  }
5534
6680
 
5535
6681
  // src/config.jsx
5536
- var import_jsx_runtime54 = require("react/jsx-runtime");
6682
+ var import_jsx_runtime68 = require("react/jsx-runtime");
5537
6683
  var DEFAULT_REVEAL = {
5538
6684
  Hero: "fade-up",
5539
6685
  SectionHeader: "fade-up",
@@ -5556,6 +6702,18 @@ var DEFAULT_REVEAL = {
5556
6702
  VideoEmbed: "scale-in",
5557
6703
  ContactSection: "fade-up",
5558
6704
  NewsletterSignup: "fade-up",
6705
+ FormContact: "fade-up",
6706
+ FormLeadCapture: "fade-up",
6707
+ FormNewsletter: "fade-up",
6708
+ FormFeedback: "fade-up",
6709
+ FormSurvey: "fade-up",
6710
+ FormBooking: "fade-up",
6711
+ FormRegistration: "fade-up",
6712
+ FormQuoteRequest: "fade-up",
6713
+ FormApplication: "fade-up",
6714
+ FormSupport: "fade-up",
6715
+ FormWaitlist: "fade-up",
6716
+ FormAddress: "fade-up",
5559
6717
  ArticleFeatured: "fade-up",
5560
6718
  ArticleGrid: "fade-up",
5561
6719
  ArticleList: "fade-up",
@@ -5609,6 +6767,18 @@ var defaultBlocks = {
5609
6767
  VideoEmbed,
5610
6768
  ContactSection,
5611
6769
  NewsletterSignup,
6770
+ FormContact,
6771
+ FormLeadCapture,
6772
+ FormNewsletter,
6773
+ FormFeedback,
6774
+ FormSurvey,
6775
+ FormBooking,
6776
+ FormRegistration,
6777
+ FormQuoteRequest,
6778
+ FormApplication,
6779
+ FormSupport,
6780
+ FormWaitlist,
6781
+ FormAddress,
5612
6782
  ArticleFeatured,
5613
6783
  ArticleGrid,
5614
6784
  ArticleList,
@@ -5669,7 +6839,24 @@ var defaultCategories = {
5669
6839
  components: ["VideoEmbed", "ImageGallery", "ImageCaption", "MapEmbed"]
5670
6840
  },
5671
6841
  Forms: {
5672
- components: ["ContactSection", "NewsletterSignup", "ContactInfo", "SocialLinks"]
6842
+ components: [
6843
+ "ContactSection",
6844
+ "NewsletterSignup",
6845
+ "ContactInfo",
6846
+ "SocialLinks",
6847
+ "FormContact",
6848
+ "FormLeadCapture",
6849
+ "FormNewsletter",
6850
+ "FormFeedback",
6851
+ "FormSurvey",
6852
+ "FormBooking",
6853
+ "FormRegistration",
6854
+ "FormQuoteRequest",
6855
+ "FormApplication",
6856
+ "FormSupport",
6857
+ "FormWaitlist",
6858
+ "FormAddress"
6859
+ ]
5673
6860
  },
5674
6861
  Layout: {
5675
6862
  components: ["Spacer", "Divider", "RawHtml"]
@@ -5682,11 +6869,11 @@ var defaultOverrides = {
5682
6869
  drawerItem: ({ name }) => {
5683
6870
  const label = prettyName(name);
5684
6871
  const desc = BLOCK_DESCRIPTIONS[name] || "";
5685
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "tps-block-card", title: desc, children: [
5686
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "tps-block-card__preview", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(BlockThumbnail, { name }) }),
5687
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "tps-block-card__text", children: [
5688
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "tps-block-card__name", children: label }),
5689
- desc && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "tps-block-card__desc", children: desc })
6872
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "tps-block-card", title: desc, children: [
6873
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "tps-block-card__preview", children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(BlockThumbnail, { name }) }),
6874
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "tps-block-card__text", children: [
6875
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "tps-block-card__name", children: label }),
6876
+ desc && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: "tps-block-card__desc", children: desc })
5690
6877
  ] })
5691
6878
  ] });
5692
6879
  }
@@ -5745,7 +6932,8 @@ function createPuckConfig({
5745
6932
  const animation = reveal && reveal[name];
5746
6933
  const override = defaults && defaults[name];
5747
6934
  const withDefaults = override ? { ...block, defaultProps: { ...block.defaultProps || {}, ...override } } : block;
5748
- components[name] = animation ? withReveal(withDefaults, animation) : withDefaults;
6935
+ const themed = withTheme(withDefaults);
6936
+ components[name] = animation ? withReveal(themed, animation) : themed;
5749
6937
  }
5750
6938
  return { components, categories, root };
5751
6939
  }
@@ -5770,6 +6958,18 @@ function createPuckConfig({
5770
6958
  Divider,
5771
6959
  EventsList,
5772
6960
  FAQ,
6961
+ FormAddress,
6962
+ FormApplication,
6963
+ FormBooking,
6964
+ FormContact,
6965
+ FormFeedback,
6966
+ FormLeadCapture,
6967
+ FormNewsletter,
6968
+ FormQuoteRequest,
6969
+ FormRegistration,
6970
+ FormSupport,
6971
+ FormSurvey,
6972
+ FormWaitlist,
5773
6973
  Hero,
5774
6974
  IconCards,
5775
6975
  ImageCaption,
@@ -5798,6 +6998,7 @@ function createPuckConfig({
5798
6998
  StatsStrip,
5799
6999
  StepsVertical,
5800
7000
  StudioLink,
7001
+ THEME_OPTIONS,
5801
7002
  TabsBlock,
5802
7003
  TeamGrid,
5803
7004
  TestimonialGrid,
@@ -5813,7 +7014,9 @@ function createPuckConfig({
5813
7014
  defaultOverrides,
5814
7015
  emptyPuckData,
5815
7016
  normalizePuckData,
7017
+ themeField,
5816
7018
  useStudio,
5817
- withReveal
7019
+ withReveal,
7020
+ withTheme
5818
7021
  });
5819
7022
  //# sourceMappingURL=index.cjs.map