@contractspec/bundle.marketing 1.12.0 → 1.14.0

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.
Files changed (262) hide show
  1. package/.turbo/turbo-build.log +146 -175
  2. package/.turbo/turbo-prebuild.log +1 -0
  3. package/CHANGELOG.md +57 -0
  4. package/dist/browser/components/marketing/ChangelogPage.js +92 -0
  5. package/dist/browser/components/marketing/CofounderPage.js +581 -0
  6. package/dist/browser/components/marketing/ContactClient.js +1379 -0
  7. package/dist/browser/components/marketing/ContributePage.js +487 -0
  8. package/dist/browser/components/marketing/DesignPartnerPage.js +272 -0
  9. package/dist/browser/components/marketing/LandingPage.js +629 -0
  10. package/dist/browser/components/marketing/PricingClient.js +1972 -0
  11. package/dist/browser/components/marketing/ProductClientPage.js +563 -0
  12. package/dist/browser/components/marketing/index.js +4818 -0
  13. package/dist/browser/components/marketing/pricing-thinking-modal.js +258 -0
  14. package/dist/browser/components/marketing/sections/AudienceSection.js +90 -0
  15. package/dist/browser/components/marketing/sections/CorePositioningSection.js +72 -0
  16. package/dist/browser/components/marketing/sections/CtaSection.js +67 -0
  17. package/dist/browser/components/marketing/sections/DevelopersSection.js +50 -0
  18. package/dist/browser/components/marketing/sections/FearsSection.js +105 -0
  19. package/dist/browser/components/marketing/sections/HeroMarketingSection.js +93 -0
  20. package/dist/browser/components/marketing/sections/IconGridSection.js +63 -0
  21. package/dist/browser/components/marketing/sections/OutputsSection.js +116 -0
  22. package/dist/browser/components/marketing/sections/ProblemSection.js +103 -0
  23. package/dist/browser/components/marketing/sections/SolutionSection.js +103 -0
  24. package/dist/browser/components/marketing/sections/StepsSection.js +109 -0
  25. package/dist/browser/components/marketing/waitlist-section.js +1104 -0
  26. package/dist/browser/components/templates/TemplatesClientPage.js +5662 -0
  27. package/dist/browser/components/templates/TemplatesPage.js +177 -0
  28. package/dist/browser/components/templates/TemplatesPreviewModal.js +124 -0
  29. package/dist/browser/components/templates/index.js +5831 -0
  30. package/dist/browser/index.js +6485 -0
  31. package/dist/browser/libs/email/client.js +122 -0
  32. package/dist/browser/libs/email/contact.js +190 -0
  33. package/dist/browser/libs/email/newsletter.js +215 -0
  34. package/dist/browser/libs/email/types.js +2 -0
  35. package/dist/browser/libs/email/utils.js +16 -0
  36. package/dist/browser/libs/email/waitlist-application.js +295 -0
  37. package/dist/browser/libs/email/waitlist.js +225 -0
  38. package/dist/browser/libs/pricing-examples.js +26 -0
  39. package/dist/browser/registry/engine.js +5293 -0
  40. package/dist/browser/registry/factory.js +52 -0
  41. package/dist/browser/registry/index.js +5358 -0
  42. package/dist/browser/registry/registry-docs.js +343 -0
  43. package/dist/browser/registry/registry-landing.js +4937 -0
  44. package/dist/browser/registry/registry.js +5279 -0
  45. package/dist/browser/registry/types.js +0 -0
  46. package/dist/browser/registry/utils.js +5340 -0
  47. package/dist/components/marketing/ChangelogPage.d.ts +11 -17
  48. package/dist/components/marketing/ChangelogPage.d.ts.map +1 -1
  49. package/dist/components/marketing/ChangelogPage.js +84 -62
  50. package/dist/components/marketing/CofounderPage.d.ts +1 -6
  51. package/dist/components/marketing/CofounderPage.d.ts.map +1 -1
  52. package/dist/components/marketing/CofounderPage.js +544 -436
  53. package/dist/components/marketing/ContactClient.d.ts +1 -6
  54. package/dist/components/marketing/ContactClient.d.ts.map +1 -1
  55. package/dist/components/marketing/ContactClient.js +1371 -155
  56. package/dist/components/marketing/ContributePage.d.ts +3 -8
  57. package/dist/components/marketing/ContributePage.d.ts.map +1 -1
  58. package/dist/components/marketing/ContributePage.js +478 -358
  59. package/dist/components/marketing/DesignPartnerPage.d.ts +3 -8
  60. package/dist/components/marketing/DesignPartnerPage.d.ts.map +1 -1
  61. package/dist/components/marketing/DesignPartnerPage.js +263 -211
  62. package/dist/components/marketing/LandingPage.d.ts +1 -6
  63. package/dist/components/marketing/LandingPage.d.ts.map +1 -1
  64. package/dist/components/marketing/LandingPage.js +623 -37
  65. package/dist/components/marketing/PricingClient.d.ts +1 -6
  66. package/dist/components/marketing/PricingClient.d.ts.map +1 -1
  67. package/dist/components/marketing/PricingClient.js +1962 -516
  68. package/dist/components/marketing/ProductClientPage.d.ts +1 -6
  69. package/dist/components/marketing/ProductClientPage.d.ts.map +1 -1
  70. package/dist/components/marketing/ProductClientPage.js +556 -458
  71. package/dist/components/marketing/index.d.ts +11 -11
  72. package/dist/components/marketing/index.d.ts.map +1 -0
  73. package/dist/components/marketing/index.js +4813 -12
  74. package/dist/components/marketing/pricing-thinking-modal.d.ts +5 -13
  75. package/dist/components/marketing/pricing-thinking-modal.d.ts.map +1 -1
  76. package/dist/components/marketing/pricing-thinking-modal.js +248 -197
  77. package/dist/components/marketing/sections/AudienceSection.d.ts +1 -6
  78. package/dist/components/marketing/sections/AudienceSection.d.ts.map +1 -1
  79. package/dist/components/marketing/sections/AudienceSection.js +80 -63
  80. package/dist/components/marketing/sections/CorePositioningSection.d.ts +1 -6
  81. package/dist/components/marketing/sections/CorePositioningSection.d.ts.map +1 -1
  82. package/dist/components/marketing/sections/CorePositioningSection.js +62 -54
  83. package/dist/components/marketing/sections/CtaSection.d.ts +1 -6
  84. package/dist/components/marketing/sections/CtaSection.d.ts.map +1 -1
  85. package/dist/components/marketing/sections/CtaSection.js +58 -50
  86. package/dist/components/marketing/sections/DevelopersSection.d.ts +1 -6
  87. package/dist/components/marketing/sections/DevelopersSection.d.ts.map +1 -1
  88. package/dist/components/marketing/sections/DevelopersSection.js +40 -40
  89. package/dist/components/marketing/sections/FearsSection.d.ts +1 -6
  90. package/dist/components/marketing/sections/FearsSection.d.ts.map +1 -1
  91. package/dist/components/marketing/sections/FearsSection.js +96 -44
  92. package/dist/components/marketing/sections/HeroMarketingSection.d.ts +1 -6
  93. package/dist/components/marketing/sections/HeroMarketingSection.d.ts.map +1 -1
  94. package/dist/components/marketing/sections/HeroMarketingSection.js +82 -71
  95. package/dist/components/marketing/sections/IconGridSection.d.ts +25 -39
  96. package/dist/components/marketing/sections/IconGridSection.d.ts.map +1 -1
  97. package/dist/components/marketing/sections/IconGridSection.js +55 -41
  98. package/dist/components/marketing/sections/OutputsSection.d.ts +1 -6
  99. package/dist/components/marketing/sections/OutputsSection.d.ts.map +1 -1
  100. package/dist/components/marketing/sections/OutputsSection.js +107 -55
  101. package/dist/components/marketing/sections/ProblemSection.d.ts +1 -6
  102. package/dist/components/marketing/sections/ProblemSection.d.ts.map +1 -1
  103. package/dist/components/marketing/sections/ProblemSection.js +94 -42
  104. package/dist/components/marketing/sections/SolutionSection.d.ts +1 -6
  105. package/dist/components/marketing/sections/SolutionSection.d.ts.map +1 -1
  106. package/dist/components/marketing/sections/SolutionSection.js +94 -42
  107. package/dist/components/marketing/sections/StepsSection.d.ts +1 -6
  108. package/dist/components/marketing/sections/StepsSection.d.ts.map +1 -1
  109. package/dist/components/marketing/sections/StepsSection.js +100 -48
  110. package/dist/components/marketing/waitlist-section.d.ts +5 -12
  111. package/dist/components/marketing/waitlist-section.d.ts.map +1 -1
  112. package/dist/components/marketing/waitlist-section.js +1089 -568
  113. package/dist/components/templates/TemplatesClientPage.d.ts +1 -6
  114. package/dist/components/templates/TemplatesClientPage.d.ts.map +1 -1
  115. package/dist/components/templates/TemplatesClientPage.js +5649 -617
  116. package/dist/components/templates/TemplatesPage.d.ts +1 -6
  117. package/dist/components/templates/TemplatesPage.d.ts.map +1 -1
  118. package/dist/components/templates/TemplatesPage.js +163 -116
  119. package/dist/components/templates/TemplatesPreviewModal.d.ts +5 -12
  120. package/dist/components/templates/TemplatesPreviewModal.d.ts.map +1 -1
  121. package/dist/components/templates/TemplatesPreviewModal.js +113 -131
  122. package/dist/components/templates/index.d.ts +4 -4
  123. package/dist/components/templates/index.d.ts.map +1 -0
  124. package/dist/components/templates/index.js +5825 -4
  125. package/dist/index.d.ts +9 -29
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +6480 -28
  128. package/dist/libs/email/client.d.ts +9 -12
  129. package/dist/libs/email/client.d.ts.map +1 -1
  130. package/dist/libs/email/client.js +109 -105
  131. package/dist/libs/email/client.test.d.ts +2 -0
  132. package/dist/libs/email/client.test.d.ts.map +1 -0
  133. package/dist/libs/email/contact.d.ts +2 -6
  134. package/dist/libs/email/contact.d.ts.map +1 -1
  135. package/dist/libs/email/contact.js +155 -41
  136. package/dist/libs/email/newsletter.d.ts +2 -6
  137. package/dist/libs/email/newsletter.d.ts.map +1 -1
  138. package/dist/libs/email/newsletter.js +169 -54
  139. package/dist/libs/email/types.d.ts +48 -52
  140. package/dist/libs/email/types.d.ts.map +1 -1
  141. package/dist/libs/email/types.js +3 -1
  142. package/dist/libs/email/utils.d.ts +2 -5
  143. package/dist/libs/email/utils.d.ts.map +1 -1
  144. package/dist/libs/email/utils.js +10 -6
  145. package/dist/libs/email/waitlist-application.d.ts +2 -6
  146. package/dist/libs/email/waitlist-application.d.ts.map +1 -1
  147. package/dist/libs/email/waitlist-application.js +191 -71
  148. package/dist/libs/email/waitlist.d.ts +2 -6
  149. package/dist/libs/email/waitlist.d.ts.map +1 -1
  150. package/dist/libs/email/waitlist.js +171 -56
  151. package/dist/libs/pricing-examples.d.ts +13 -16
  152. package/dist/libs/pricing-examples.d.ts.map +1 -1
  153. package/dist/libs/pricing-examples.js +20 -20
  154. package/dist/node/components/marketing/ChangelogPage.js +87 -0
  155. package/dist/node/components/marketing/CofounderPage.js +576 -0
  156. package/dist/node/components/marketing/ContactClient.js +1374 -0
  157. package/dist/node/components/marketing/ContributePage.js +482 -0
  158. package/dist/node/components/marketing/DesignPartnerPage.js +267 -0
  159. package/dist/node/components/marketing/LandingPage.js +624 -0
  160. package/dist/node/components/marketing/PricingClient.js +1967 -0
  161. package/dist/node/components/marketing/ProductClientPage.js +558 -0
  162. package/dist/node/components/marketing/index.js +4813 -0
  163. package/dist/node/components/marketing/pricing-thinking-modal.js +253 -0
  164. package/dist/node/components/marketing/sections/AudienceSection.js +85 -0
  165. package/dist/node/components/marketing/sections/CorePositioningSection.js +67 -0
  166. package/dist/node/components/marketing/sections/CtaSection.js +62 -0
  167. package/dist/node/components/marketing/sections/DevelopersSection.js +45 -0
  168. package/dist/node/components/marketing/sections/FearsSection.js +100 -0
  169. package/dist/node/components/marketing/sections/HeroMarketingSection.js +88 -0
  170. package/dist/node/components/marketing/sections/IconGridSection.js +58 -0
  171. package/dist/node/components/marketing/sections/OutputsSection.js +111 -0
  172. package/dist/node/components/marketing/sections/ProblemSection.js +98 -0
  173. package/dist/node/components/marketing/sections/SolutionSection.js +98 -0
  174. package/dist/node/components/marketing/sections/StepsSection.js +104 -0
  175. package/dist/node/components/marketing/waitlist-section.js +1099 -0
  176. package/dist/node/components/templates/TemplatesClientPage.js +5657 -0
  177. package/dist/node/components/templates/TemplatesPage.js +172 -0
  178. package/dist/node/components/templates/TemplatesPreviewModal.js +119 -0
  179. package/dist/node/components/templates/index.js +5826 -0
  180. package/dist/node/index.js +6480 -0
  181. package/dist/node/libs/email/client.js +117 -0
  182. package/dist/node/libs/email/contact.js +185 -0
  183. package/dist/node/libs/email/newsletter.js +210 -0
  184. package/dist/node/libs/email/types.js +2 -0
  185. package/dist/node/libs/email/utils.js +11 -0
  186. package/dist/node/libs/email/waitlist-application.js +290 -0
  187. package/dist/node/libs/email/waitlist.js +220 -0
  188. package/dist/node/libs/pricing-examples.js +21 -0
  189. package/dist/node/registry/engine.js +5288 -0
  190. package/dist/node/registry/factory.js +47 -0
  191. package/dist/node/registry/index.js +5353 -0
  192. package/dist/node/registry/registry-docs.js +338 -0
  193. package/dist/node/registry/registry-landing.js +4932 -0
  194. package/dist/node/registry/registry.js +5274 -0
  195. package/dist/node/registry/types.js +0 -0
  196. package/dist/node/registry/utils.js +5335 -0
  197. package/dist/registry/engine.d.ts +4 -8
  198. package/dist/registry/engine.d.ts.map +1 -1
  199. package/dist/registry/engine.js +5287 -23
  200. package/dist/registry/factory.d.ts +30 -34
  201. package/dist/registry/factory.d.ts.map +1 -1
  202. package/dist/registry/factory.js +42 -56
  203. package/dist/registry/index.d.ts +8 -8
  204. package/dist/registry/index.d.ts.map +1 -0
  205. package/dist/registry/index.js +5353 -8
  206. package/dist/registry/registry-docs.d.ts +4 -8
  207. package/dist/registry/registry-docs.d.ts.map +1 -1
  208. package/dist/registry/registry-docs.js +242 -209
  209. package/dist/registry/registry-landing.d.ts +5 -9
  210. package/dist/registry/registry-landing.d.ts.map +1 -1
  211. package/dist/registry/registry-landing.js +4930 -93
  212. package/dist/registry/registry.d.ts +7 -11
  213. package/dist/registry/registry.d.ts.map +1 -1
  214. package/dist/registry/registry.js +5262 -49
  215. package/dist/registry/types.d.ts +6 -10
  216. package/dist/registry/types.d.ts.map +1 -1
  217. package/dist/registry/types.js +1 -0
  218. package/dist/registry/utils.d.ts +10 -14
  219. package/dist/registry/utils.d.ts.map +1 -1
  220. package/dist/registry/utils.js +5330 -49
  221. package/package.json +355 -73
  222. package/tsdown.config.js +1 -2
  223. package/.turbo/turbo-build$colon$types.log +0 -1
  224. package/.turbo/turbo-lint.log +0 -3
  225. package/dist/components/marketing/ChangelogPage.js.map +0 -1
  226. package/dist/components/marketing/CofounderPage.js.map +0 -1
  227. package/dist/components/marketing/ContactClient.js.map +0 -1
  228. package/dist/components/marketing/ContributePage.js.map +0 -1
  229. package/dist/components/marketing/DesignPartnerPage.js.map +0 -1
  230. package/dist/components/marketing/LandingPage.js.map +0 -1
  231. package/dist/components/marketing/PricingClient.js.map +0 -1
  232. package/dist/components/marketing/ProductClientPage.js.map +0 -1
  233. package/dist/components/marketing/pricing-thinking-modal.js.map +0 -1
  234. package/dist/components/marketing/sections/AudienceSection.js.map +0 -1
  235. package/dist/components/marketing/sections/CorePositioningSection.js.map +0 -1
  236. package/dist/components/marketing/sections/CtaSection.js.map +0 -1
  237. package/dist/components/marketing/sections/DevelopersSection.js.map +0 -1
  238. package/dist/components/marketing/sections/FearsSection.js.map +0 -1
  239. package/dist/components/marketing/sections/HeroMarketingSection.js.map +0 -1
  240. package/dist/components/marketing/sections/IconGridSection.js.map +0 -1
  241. package/dist/components/marketing/sections/OutputsSection.js.map +0 -1
  242. package/dist/components/marketing/sections/ProblemSection.js.map +0 -1
  243. package/dist/components/marketing/sections/SolutionSection.js.map +0 -1
  244. package/dist/components/marketing/sections/StepsSection.js.map +0 -1
  245. package/dist/components/marketing/waitlist-section.js.map +0 -1
  246. package/dist/components/templates/TemplatesClientPage.js.map +0 -1
  247. package/dist/components/templates/TemplatesPage.js.map +0 -1
  248. package/dist/components/templates/TemplatesPreviewModal.js.map +0 -1
  249. package/dist/libs/email/client.js.map +0 -1
  250. package/dist/libs/email/contact.js.map +0 -1
  251. package/dist/libs/email/newsletter.js.map +0 -1
  252. package/dist/libs/email/utils.js.map +0 -1
  253. package/dist/libs/email/waitlist-application.js.map +0 -1
  254. package/dist/libs/email/waitlist.js.map +0 -1
  255. package/dist/libs/pricing-examples.js.map +0 -1
  256. package/dist/registry/engine.js.map +0 -1
  257. package/dist/registry/factory.js.map +0 -1
  258. package/dist/registry/registry-docs.js.map +0 -1
  259. package/dist/registry/registry-landing.js.map +0 -1
  260. package/dist/registry/registry.js.map +0 -1
  261. package/dist/registry/utils.js.map +0 -1
  262. package/tsconfig.tsbuildinfo +0 -1
@@ -1,59 +1,111 @@
1
- import { IconGridSection } from "./IconGridSection.js";
2
- import { jsx } from "react/jsx-runtime";
3
- import "react";
1
+ // @bun
2
+ var __require = import.meta.require;
4
3
 
5
- //#region src/components/marketing/sections/OutputsSection.tsx
6
- const outputs = [
7
- {
8
- title: "REST API",
9
- description: "Type-safe endpoints with validation. Standard Express/Hono/Elysia handlers.",
10
- icon: "🔌"
11
- },
12
- {
13
- title: "GraphQL Schema",
14
- description: "Automatically generated resolvers. Standard Pothos/Apollo output.",
15
- icon: "📊"
16
- },
17
- {
18
- title: "Database Schema",
19
- description: "Prisma migrations and types. Standard SQL underneath.",
20
- icon: "🗄️"
21
- },
22
- {
23
- title: "MCP Tools",
24
- description: "AI agent tool definitions. Works with Claude, GPT, and any MCP client.",
25
- icon: "🤖"
26
- },
27
- {
28
- title: "Client SDKs",
29
- description: "Type-safe API clients. Standard fetch/axios underneath.",
30
- icon: "📦"
31
- },
32
- {
33
- title: "UI Components",
34
- description: "React forms and views from specs. Standard JSX output.",
35
- icon: "🎨"
36
- }
4
+ // src/components/marketing/sections/IconGridSection.tsx
5
+ import { cva } from "class-variance-authority";
6
+ import {
7
+ MarketingCardsSection,
8
+ MarketingIconCard
9
+ } from "@contractspec/lib.design-system";
10
+ import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
11
+ import { jsxDEV } from "react/jsx-dev-runtime";
12
+ var itemVariants = cva("", {
13
+ variants: {
14
+ iconRole: {
15
+ iconFirst: "",
16
+ listing: "items-start",
17
+ support: "items-start"
18
+ }
19
+ },
20
+ defaultVariants: { iconRole: "iconFirst" }
21
+ });
22
+ function IconGridSection({
23
+ eyebrow,
24
+ title,
25
+ subtitle,
26
+ items,
27
+ tone = "default",
28
+ padding,
29
+ columns = 3,
30
+ iconRole = "iconFirst"
31
+ }) {
32
+ return /* @__PURE__ */ jsxDEV(MarketingCardsSection, {
33
+ tone,
34
+ padding,
35
+ eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
+ className: "text-xs font-semibold tracking-[0.2em] uppercase",
37
+ children: eyebrow
38
+ }, undefined, false, undefined, this) : null,
39
+ title,
40
+ subtitle: subtitle ? /* @__PURE__ */ jsxDEV(Muted, {
41
+ className: "text-lg",
42
+ children: subtitle
43
+ }, undefined, false, undefined, this) : null,
44
+ columns,
45
+ children: items.map((card) => /* @__PURE__ */ jsxDEV(MarketingIconCard, {
46
+ icon: card.icon,
47
+ title: card.title,
48
+ description: card.description,
49
+ tone: card.tone,
50
+ iconClassName: card.iconClassName,
51
+ variant: iconRole === "listing" ? "listing" : iconRole === "support" ? "support" : "iconFirst",
52
+ className: itemVariants({ iconRole })
53
+ }, card.title, false, undefined, this))
54
+ }, undefined, false, undefined, this);
55
+ }
56
+
57
+ // src/components/marketing/sections/OutputsSection.tsx
58
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
59
+ var outputs = [
60
+ {
61
+ title: "REST API",
62
+ description: "Type-safe endpoints with validation. Standard Express/Hono/Elysia handlers.",
63
+ icon: "\uD83D\uDD0C"
64
+ },
65
+ {
66
+ title: "GraphQL Schema",
67
+ description: "Automatically generated resolvers. Standard Pothos/Apollo output.",
68
+ icon: "\uD83D\uDCCA"
69
+ },
70
+ {
71
+ title: "Database Schema",
72
+ description: "Prisma migrations and types. Standard SQL underneath.",
73
+ icon: "\uD83D\uDDC4\uFE0F"
74
+ },
75
+ {
76
+ title: "MCP Tools",
77
+ description: "AI agent tool definitions. Works with Claude, GPT, and any MCP client.",
78
+ icon: "\uD83E\uDD16"
79
+ },
80
+ {
81
+ title: "Client SDKs",
82
+ description: "Type-safe API clients. Standard fetch/axios underneath.",
83
+ icon: "\uD83D\uDCE6"
84
+ },
85
+ {
86
+ title: "UI Components",
87
+ description: "React forms and views from specs. Standard JSX output.",
88
+ icon: "\uD83C\uDFA8"
89
+ }
37
90
  ];
38
91
  function OutputsSection() {
39
- return /* @__PURE__ */ jsx(IconGridSection, {
40
- tone: "muted",
41
- columns: 3,
42
- title: "What ContractSpec generates",
43
- subtitle: "One contract, multiple outputs. All in sync. All standard tech.",
44
- iconRole: "iconFirst",
45
- items: outputs.map((item) => ({
46
- icon: () => /* @__PURE__ */ jsx("span", {
47
- "aria-hidden": true,
48
- className: "text-3xl",
49
- children: item.icon
50
- }),
51
- title: item.title,
52
- description: item.description
53
- }))
54
- });
92
+ return /* @__PURE__ */ jsxDEV2(IconGridSection, {
93
+ tone: "muted",
94
+ columns: 3,
95
+ title: "What ContractSpec generates",
96
+ subtitle: "One contract, multiple outputs. All in sync. All standard tech.",
97
+ iconRole: "iconFirst",
98
+ items: outputs.map((item) => ({
99
+ icon: () => /* @__PURE__ */ jsxDEV2("span", {
100
+ "aria-hidden": true,
101
+ className: "text-3xl",
102
+ children: item.icon
103
+ }, undefined, false, undefined, this),
104
+ title: item.title,
105
+ description: item.description
106
+ }))
107
+ }, undefined, false, undefined, this);
55
108
  }
56
-
57
- //#endregion
58
- export { OutputsSection };
59
- //# sourceMappingURL=OutputsSection.js.map
109
+ export {
110
+ OutputsSection
111
+ };
@@ -1,7 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components/marketing/sections/ProblemSection.d.ts
4
- declare function ProblemSection(): react_jsx_runtime0.JSX.Element;
5
- //#endregion
6
- export { ProblemSection };
1
+ export declare function ProblemSection(): import("react/jsx-runtime").JSX.Element;
7
2
  //# sourceMappingURL=ProblemSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProblemSection.d.ts","names":[],"sources":["../../../../src/components/marketing/sections/ProblemSection.tsx"],"mappings":";;;iBAmCgB,cAAA,CAAA,GAAc,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"ProblemSection.d.ts","sourceRoot":"","sources":["../../../../src/components/marketing/sections/ProblemSection.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,cAAc,4CAW7B"}
@@ -1,46 +1,98 @@
1
- import { IconGridSection } from "./IconGridSection.js";
2
- import { AlertTriangle, Layers, RefreshCw, XCircle } from "lucide-react";
3
- import { jsx } from "react/jsx-runtime";
4
- import "react";
1
+ // @bun
2
+ var __require = import.meta.require;
3
+
4
+ // src/components/marketing/sections/IconGridSection.tsx
5
+ import { cva } from "class-variance-authority";
6
+ import {
7
+ MarketingCardsSection,
8
+ MarketingIconCard
9
+ } from "@contractspec/lib.design-system";
10
+ import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
11
+ import { jsxDEV } from "react/jsx-dev-runtime";
12
+ var itemVariants = cva("", {
13
+ variants: {
14
+ iconRole: {
15
+ iconFirst: "",
16
+ listing: "items-start",
17
+ support: "items-start"
18
+ }
19
+ },
20
+ defaultVariants: { iconRole: "iconFirst" }
21
+ });
22
+ function IconGridSection({
23
+ eyebrow,
24
+ title,
25
+ subtitle,
26
+ items,
27
+ tone = "default",
28
+ padding,
29
+ columns = 3,
30
+ iconRole = "iconFirst"
31
+ }) {
32
+ return /* @__PURE__ */ jsxDEV(MarketingCardsSection, {
33
+ tone,
34
+ padding,
35
+ eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
+ className: "text-xs font-semibold tracking-[0.2em] uppercase",
37
+ children: eyebrow
38
+ }, undefined, false, undefined, this) : null,
39
+ title,
40
+ subtitle: subtitle ? /* @__PURE__ */ jsxDEV(Muted, {
41
+ className: "text-lg",
42
+ children: subtitle
43
+ }, undefined, false, undefined, this) : null,
44
+ columns,
45
+ children: items.map((card) => /* @__PURE__ */ jsxDEV(MarketingIconCard, {
46
+ icon: card.icon,
47
+ title: card.title,
48
+ description: card.description,
49
+ tone: card.tone,
50
+ iconClassName: card.iconClassName,
51
+ variant: iconRole === "listing" ? "listing" : iconRole === "support" ? "support" : "iconFirst",
52
+ className: itemVariants({ iconRole })
53
+ }, card.title, false, undefined, this))
54
+ }, undefined, false, undefined, this);
55
+ }
5
56
 
6
- //#region src/components/marketing/sections/ProblemSection.tsx
7
- const problemItems = [
8
- {
9
- icon: AlertTriangle,
10
- title: "Can't enforce invariants",
11
- description: "AI-generated code drifts from business rules over time. No source of truth means no safety.",
12
- iconClassName: "text-red-400"
13
- },
14
- {
15
- icon: Layers,
16
- title: "Multi-surface chaos",
17
- description: "API, DB, UI, and events get out of sync. One change breaks three surfaces.",
18
- iconClassName: "text-orange-400"
19
- },
20
- {
21
- icon: RefreshCw,
22
- title: "Hallucinated refactors",
23
- description: "AI \"improvements\" introduce subtle bugs and break contracts you didn’t know existed.",
24
- iconClassName: "text-amber-400"
25
- },
26
- {
27
- icon: XCircle,
28
- title: "Unmaintainable spaghetti",
29
- description: "Teams ship fast initially, then spend months untangling AI-generated chaos.",
30
- iconClassName: "text-red-400"
31
- }
57
+ // src/components/marketing/sections/ProblemSection.tsx
58
+ import { AlertTriangle, Layers, RefreshCw, XCircle } from "lucide-react";
59
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
60
+ var problemItems = [
61
+ {
62
+ icon: AlertTriangle,
63
+ title: "Can't enforce invariants",
64
+ description: "AI-generated code drifts from business rules over time. No source of truth means no safety.",
65
+ iconClassName: "text-red-400"
66
+ },
67
+ {
68
+ icon: Layers,
69
+ title: "Multi-surface chaos",
70
+ description: "API, DB, UI, and events get out of sync. One change breaks three surfaces.",
71
+ iconClassName: "text-orange-400"
72
+ },
73
+ {
74
+ icon: RefreshCw,
75
+ title: "Hallucinated refactors",
76
+ description: 'AI "improvements" introduce subtle bugs and break contracts you didn\u2019t know existed.',
77
+ iconClassName: "text-amber-400"
78
+ },
79
+ {
80
+ icon: XCircle,
81
+ title: "Unmaintainable spaghetti",
82
+ description: "Teams ship fast initially, then spend months untangling AI-generated chaos.",
83
+ iconClassName: "text-red-400"
84
+ }
32
85
  ];
33
86
  function ProblemSection() {
34
- return /* @__PURE__ */ jsx(IconGridSection, {
35
- tone: "muted",
36
- columns: 4,
37
- eyebrow: "The Problem",
38
- title: "AI agents write code fast. Then the chaos begins.",
39
- subtitle: "In 2025, \"vibe coding\" and AI agents generate enormous amounts of code. But they have critical limitations that destroy long-term maintainability.",
40
- items: problemItems
41
- });
87
+ return /* @__PURE__ */ jsxDEV2(IconGridSection, {
88
+ tone: "muted",
89
+ columns: 4,
90
+ eyebrow: "The Problem",
91
+ title: "AI agents write code fast. Then the chaos begins.",
92
+ subtitle: 'In 2025, "vibe coding" and AI agents generate enormous amounts of code. But they have critical limitations that destroy long-term maintainability.',
93
+ items: problemItems
94
+ }, undefined, false, undefined, this);
42
95
  }
43
-
44
- //#endregion
45
- export { ProblemSection };
46
- //# sourceMappingURL=ProblemSection.js.map
96
+ export {
97
+ ProblemSection
98
+ };
@@ -1,7 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components/marketing/sections/SolutionSection.d.ts
4
- declare function SolutionSection(): react_jsx_runtime0.JSX.Element;
5
- //#endregion
6
- export { SolutionSection };
1
+ export declare function SolutionSection(): import("react/jsx-runtime").JSX.Element;
7
2
  //# sourceMappingURL=SolutionSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SolutionSection.d.ts","names":[],"sources":["../../../../src/components/marketing/sections/SolutionSection.tsx"],"mappings":";;;iBAmCgB,eAAA,CAAA,GAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"SolutionSection.d.ts","sourceRoot":"","sources":["../../../../src/components/marketing/sections/SolutionSection.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,eAAe,4CAW9B"}
@@ -1,46 +1,98 @@
1
- import { IconGridSection } from "./IconGridSection.js";
2
- import { FileCode, Layers, RefreshCw, Shield } from "lucide-react";
3
- import { jsx } from "react/jsx-runtime";
4
- import "react";
1
+ // @bun
2
+ var __require = import.meta.require;
3
+
4
+ // src/components/marketing/sections/IconGridSection.tsx
5
+ import { cva } from "class-variance-authority";
6
+ import {
7
+ MarketingCardsSection,
8
+ MarketingIconCard
9
+ } from "@contractspec/lib.design-system";
10
+ import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
11
+ import { jsxDEV } from "react/jsx-dev-runtime";
12
+ var itemVariants = cva("", {
13
+ variants: {
14
+ iconRole: {
15
+ iconFirst: "",
16
+ listing: "items-start",
17
+ support: "items-start"
18
+ }
19
+ },
20
+ defaultVariants: { iconRole: "iconFirst" }
21
+ });
22
+ function IconGridSection({
23
+ eyebrow,
24
+ title,
25
+ subtitle,
26
+ items,
27
+ tone = "default",
28
+ padding,
29
+ columns = 3,
30
+ iconRole = "iconFirst"
31
+ }) {
32
+ return /* @__PURE__ */ jsxDEV(MarketingCardsSection, {
33
+ tone,
34
+ padding,
35
+ eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
+ className: "text-xs font-semibold tracking-[0.2em] uppercase",
37
+ children: eyebrow
38
+ }, undefined, false, undefined, this) : null,
39
+ title,
40
+ subtitle: subtitle ? /* @__PURE__ */ jsxDEV(Muted, {
41
+ className: "text-lg",
42
+ children: subtitle
43
+ }, undefined, false, undefined, this) : null,
44
+ columns,
45
+ children: items.map((card) => /* @__PURE__ */ jsxDEV(MarketingIconCard, {
46
+ icon: card.icon,
47
+ title: card.title,
48
+ description: card.description,
49
+ tone: card.tone,
50
+ iconClassName: card.iconClassName,
51
+ variant: iconRole === "listing" ? "listing" : iconRole === "support" ? "support" : "iconFirst",
52
+ className: itemVariants({ iconRole })
53
+ }, card.title, false, undefined, this))
54
+ }, undefined, false, undefined, this);
55
+ }
5
56
 
6
- //#region src/components/marketing/sections/SolutionSection.tsx
7
- const solutionItems = [
8
- {
9
- icon: FileCode,
10
- title: "Canonical Source of Truth",
11
- description: "Contracts define what the system should do, not just what it does. AI agents read specs, not implementations.",
12
- iconClassName: "text-emerald-400"
13
- },
14
- {
15
- icon: Layers,
16
- title: "Multi-Surface Consistency",
17
- description: "One spec generates API, DB, UI, events, and MCP tools. All surfaces stay in sync because they share the same source.",
18
- iconClassName: "text-blue-400"
19
- },
20
- {
21
- icon: RefreshCw,
22
- title: "Safe Regeneration",
23
- description: "Regenerate code anytime without fear. Specs enforce invariants. Breaking changes caught at compile time.",
24
- iconClassName: "text-violet-400"
25
- },
26
- {
27
- icon: Shield,
28
- title: "AI Governance",
29
- description: "Constrain what AI agents can change. Enforce contracts they must respect. Flag violations automatically.",
30
- iconClassName: "text-pink-400"
31
- }
57
+ // src/components/marketing/sections/SolutionSection.tsx
58
+ import { FileCode, Layers, RefreshCw, Shield } from "lucide-react";
59
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
60
+ var solutionItems = [
61
+ {
62
+ icon: FileCode,
63
+ title: "Canonical Source of Truth",
64
+ description: "Contracts define what the system should do, not just what it does. AI agents read specs, not implementations.",
65
+ iconClassName: "text-emerald-400"
66
+ },
67
+ {
68
+ icon: Layers,
69
+ title: "Multi-Surface Consistency",
70
+ description: "One spec generates API, DB, UI, events, and MCP tools. All surfaces stay in sync because they share the same source.",
71
+ iconClassName: "text-blue-400"
72
+ },
73
+ {
74
+ icon: RefreshCw,
75
+ title: "Safe Regeneration",
76
+ description: "Regenerate code anytime without fear. Specs enforce invariants. Breaking changes caught at compile time.",
77
+ iconClassName: "text-violet-400"
78
+ },
79
+ {
80
+ icon: Shield,
81
+ title: "AI Governance",
82
+ description: "Constrain what AI agents can change. Enforce contracts they must respect. Flag violations automatically.",
83
+ iconClassName: "text-pink-400"
84
+ }
32
85
  ];
33
86
  function SolutionSection() {
34
- return /* @__PURE__ */ jsx(IconGridSection, {
35
- tone: "default",
36
- columns: 4,
37
- eyebrow: "The Solution",
38
- title: "ContractSpec: The safety layer for AI-coded systems",
39
- subtitle: "Define contracts once. Generate consistent code across all surfaces. Regenerate safely anytime. No lock-in.",
40
- items: solutionItems
41
- });
87
+ return /* @__PURE__ */ jsxDEV2(IconGridSection, {
88
+ tone: "default",
89
+ columns: 4,
90
+ eyebrow: "The Solution",
91
+ title: "ContractSpec: The safety layer for AI-coded systems",
92
+ subtitle: "Define contracts once. Generate consistent code across all surfaces. Regenerate safely anytime. No lock-in.",
93
+ items: solutionItems
94
+ }, undefined, false, undefined, this);
42
95
  }
43
-
44
- //#endregion
45
- export { SolutionSection };
46
- //# sourceMappingURL=SolutionSection.js.map
96
+ export {
97
+ SolutionSection
98
+ };
@@ -1,7 +1,2 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
-
3
- //#region src/components/marketing/sections/StepsSection.d.ts
4
- declare function StepsSection(): react_jsx_runtime0.JSX.Element;
5
- //#endregion
6
- export { StepsSection };
1
+ export declare function StepsSection(): import("react/jsx-runtime").JSX.Element;
7
2
  //# sourceMappingURL=StepsSection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepsSection.d.ts","names":[],"sources":["../../../../src/components/marketing/sections/StepsSection.tsx"],"mappings":";;;iBA8BgB,YAAA,CAAA,GAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"StepsSection.d.ts","sourceRoot":"","sources":["../../../../src/components/marketing/sections/StepsSection.tsx"],"names":[],"mappings":"AA8BA,wBAAgB,YAAY,4CAwB3B"}
@@ -1,52 +1,104 @@
1
- import { IconGridSection } from "./IconGridSection.js";
2
- import { jsx } from "react/jsx-runtime";
3
- import "react";
1
+ // @bun
2
+ var __require = import.meta.require;
4
3
 
5
- //#region src/components/marketing/sections/StepsSection.tsx
6
- const steps = [
7
- {
8
- step: 1,
9
- title: "Pick one module",
10
- description: "Start with one API endpoint, one entity, one surface. No big-bang migration."
11
- },
12
- {
13
- step: 2,
14
- title: "Define the contract",
15
- description: "Write a spec in TypeScript. Just types and Zod schemas you already know."
16
- },
17
- {
18
- step: 3,
19
- title: "Generate & compare",
20
- description: "See what ContractSpec generates. Compare to your existing code. Keep what works."
21
- },
22
- {
23
- step: 4,
24
- title: "Expand gradually",
25
- description: "Add more contracts as you see value. No pressure. No lock-in. Your pace."
26
- }
4
+ // src/components/marketing/sections/IconGridSection.tsx
5
+ import { cva } from "class-variance-authority";
6
+ import {
7
+ MarketingCardsSection,
8
+ MarketingIconCard
9
+ } from "@contractspec/lib.design-system";
10
+ import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
11
+ import { jsxDEV } from "react/jsx-dev-runtime";
12
+ var itemVariants = cva("", {
13
+ variants: {
14
+ iconRole: {
15
+ iconFirst: "",
16
+ listing: "items-start",
17
+ support: "items-start"
18
+ }
19
+ },
20
+ defaultVariants: { iconRole: "iconFirst" }
21
+ });
22
+ function IconGridSection({
23
+ eyebrow,
24
+ title,
25
+ subtitle,
26
+ items,
27
+ tone = "default",
28
+ padding,
29
+ columns = 3,
30
+ iconRole = "iconFirst"
31
+ }) {
32
+ return /* @__PURE__ */ jsxDEV(MarketingCardsSection, {
33
+ tone,
34
+ padding,
35
+ eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
+ className: "text-xs font-semibold tracking-[0.2em] uppercase",
37
+ children: eyebrow
38
+ }, undefined, false, undefined, this) : null,
39
+ title,
40
+ subtitle: subtitle ? /* @__PURE__ */ jsxDEV(Muted, {
41
+ className: "text-lg",
42
+ children: subtitle
43
+ }, undefined, false, undefined, this) : null,
44
+ columns,
45
+ children: items.map((card) => /* @__PURE__ */ jsxDEV(MarketingIconCard, {
46
+ icon: card.icon,
47
+ title: card.title,
48
+ description: card.description,
49
+ tone: card.tone,
50
+ iconClassName: card.iconClassName,
51
+ variant: iconRole === "listing" ? "listing" : iconRole === "support" ? "support" : "iconFirst",
52
+ className: itemVariants({ iconRole })
53
+ }, card.title, false, undefined, this))
54
+ }, undefined, false, undefined, this);
55
+ }
56
+
57
+ // src/components/marketing/sections/StepsSection.tsx
58
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
59
+ var steps = [
60
+ {
61
+ step: 1,
62
+ title: "Pick one module",
63
+ description: "Start with one API endpoint, one entity, one surface. No big-bang migration."
64
+ },
65
+ {
66
+ step: 2,
67
+ title: "Define the contract",
68
+ description: "Write a spec in TypeScript. Just types and Zod schemas you already know."
69
+ },
70
+ {
71
+ step: 3,
72
+ title: "Generate & compare",
73
+ description: "See what ContractSpec generates. Compare to your existing code. Keep what works."
74
+ },
75
+ {
76
+ step: 4,
77
+ title: "Expand gradually",
78
+ description: "Add more contracts as you see value. No pressure. No lock-in. Your pace."
79
+ }
27
80
  ];
28
81
  function StepsSection() {
29
- return /* @__PURE__ */ jsx(IconGridSection, {
30
- tone: "default",
31
- columns: 4,
32
- title: "How incremental adoption works",
33
- padding: "comfortable",
34
- iconRole: "listing",
35
- items: steps.map((item) => ({
36
- icon: ({ className }) => /* @__PURE__ */ jsx("div", {
37
- className: `bg-primary/15 flex h-10 w-10 items-center justify-center rounded-lg ${className ?? ""}`,
38
- children: /* @__PURE__ */ jsx("span", {
39
- className: "text-primary text-sm font-semibold",
40
- children: item.step
41
- })
42
- }),
43
- title: item.title,
44
- description: item.description,
45
- tone: "muted"
46
- }))
47
- });
82
+ return /* @__PURE__ */ jsxDEV2(IconGridSection, {
83
+ tone: "default",
84
+ columns: 4,
85
+ title: "How incremental adoption works",
86
+ padding: "comfortable",
87
+ iconRole: "listing",
88
+ items: steps.map((item) => ({
89
+ icon: ({ className }) => /* @__PURE__ */ jsxDEV2("div", {
90
+ className: `bg-primary/15 flex h-10 w-10 items-center justify-center rounded-lg ${className ?? ""}`,
91
+ children: /* @__PURE__ */ jsxDEV2("span", {
92
+ className: "text-primary text-sm font-semibold",
93
+ children: item.step
94
+ }, undefined, false, undefined, this)
95
+ }, undefined, false, undefined, this),
96
+ title: item.title,
97
+ description: item.description,
98
+ tone: "muted"
99
+ }))
100
+ }, undefined, false, undefined, this);
48
101
  }
49
-
50
- //#endregion
51
- export { StepsSection };
52
- //# sourceMappingURL=StepsSection.js.map
102
+ export {
103
+ StepsSection
104
+ };