@contractspec/bundle.marketing 3.7.6 → 3.8.2

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 (164) hide show
  1. package/.turbo/turbo-build.log +87 -87
  2. package/AGENTS.md +29 -21
  3. package/CHANGELOG.md +59 -0
  4. package/README.md +36 -49
  5. package/dist/browser/components/marketing/ChangelogPage.js +8 -8
  6. package/dist/browser/components/marketing/CofounderPage.js +167 -523
  7. package/dist/browser/components/marketing/ContactClient.js +200 -207
  8. package/dist/browser/components/marketing/ContributePage.js +211 -463
  9. package/dist/browser/components/marketing/DesignPartnerPage.js +165 -218
  10. package/dist/browser/components/marketing/LandingPage.js +464 -568
  11. package/dist/browser/components/marketing/PricingClient.js +213 -839
  12. package/dist/browser/components/marketing/ProductClientPage.js +265 -463
  13. package/dist/browser/components/marketing/index.js +2007 -3338
  14. package/dist/browser/components/marketing/pricing-thinking-modal.js +12 -12
  15. package/dist/browser/components/marketing/sections/AudienceSection.js +2 -2
  16. package/dist/browser/components/marketing/sections/CorePositioningSection.js +2 -2
  17. package/dist/browser/components/marketing/sections/CtaSection.js +3 -3
  18. package/dist/browser/components/marketing/sections/FearsSection.js +3 -3
  19. package/dist/browser/components/marketing/sections/HeroMarketingSection.js +6 -6
  20. package/dist/browser/components/marketing/sections/IconGridSection.js +2 -2
  21. package/dist/browser/components/marketing/sections/OutputsSection.js +2 -2
  22. package/dist/browser/components/marketing/sections/ProblemSection.js +2 -2
  23. package/dist/browser/components/marketing/sections/SolutionSection.js +2 -2
  24. package/dist/browser/components/marketing/sections/StepsSection.js +4 -4
  25. package/dist/browser/components/marketing/studio-signup-section.js +25 -41
  26. package/dist/browser/components/templates/TemplatesClientPage.js +2374 -3571
  27. package/dist/browser/components/templates/TemplatesPage.js +1 -1
  28. package/dist/browser/components/templates/TemplatesPreviewModal.js +27 -3
  29. package/dist/browser/components/templates/index.js +2412 -3609
  30. package/dist/browser/index.js +2415 -3612
  31. package/dist/browser/libs/email/client.js +1 -1
  32. package/dist/browser/libs/email/contact.js +1 -1
  33. package/dist/browser/libs/email/newsletter.js +1 -1
  34. package/dist/browser/libs/email/waitlist-application.js +1 -1
  35. package/dist/browser/libs/email/waitlist.js +1 -1
  36. package/dist/browser/registry/engine.js +2003 -3334
  37. package/dist/browser/registry/index.js +2003 -3334
  38. package/dist/browser/registry/registry-docs.js +2 -2
  39. package/dist/browser/registry/registry-landing.js +2007 -3338
  40. package/dist/browser/registry/registry.js +2003 -3334
  41. package/dist/browser/registry/utils.js +2003 -3334
  42. package/dist/components/marketing/ChangelogPage.js +8 -8
  43. package/dist/components/marketing/CofounderPage.js +167 -523
  44. package/dist/components/marketing/ContactClient.js +200 -207
  45. package/dist/components/marketing/ContributePage.d.ts +0 -2
  46. package/dist/components/marketing/ContributePage.js +211 -463
  47. package/dist/components/marketing/DesignPartnerPage.js +165 -218
  48. package/dist/components/marketing/LandingPage.js +464 -568
  49. package/dist/components/marketing/PricingClient.js +213 -839
  50. package/dist/components/marketing/ProductClientPage.js +265 -463
  51. package/dist/components/marketing/index.d.ts +5 -5
  52. package/dist/components/marketing/index.js +2007 -3338
  53. package/dist/components/marketing/pricing-thinking-modal.js +12 -12
  54. package/dist/components/marketing/sections/AudienceSection.js +2 -2
  55. package/dist/components/marketing/sections/CorePositioningSection.js +2 -2
  56. package/dist/components/marketing/sections/CtaSection.js +3 -3
  57. package/dist/components/marketing/sections/FearsSection.js +3 -3
  58. package/dist/components/marketing/sections/HeroMarketingSection.js +6 -6
  59. package/dist/components/marketing/sections/IconGridSection.d.ts +3 -3
  60. package/dist/components/marketing/sections/IconGridSection.js +2 -2
  61. package/dist/components/marketing/sections/OutputsSection.js +2 -2
  62. package/dist/components/marketing/sections/ProblemSection.js +2 -2
  63. package/dist/components/marketing/sections/SolutionSection.js +2 -2
  64. package/dist/components/marketing/sections/StepsSection.js +4 -4
  65. package/dist/components/marketing/studio-signup-section.js +25 -41
  66. package/dist/components/templates/TemplatesClientPage.js +2374 -3571
  67. package/dist/components/templates/TemplatesPage.js +1 -1
  68. package/dist/components/templates/TemplatesPreviewModal.js +27 -3
  69. package/dist/components/templates/index.js +2412 -3609
  70. package/dist/index.js +2415 -3612
  71. package/dist/libs/email/client.js +1 -1
  72. package/dist/libs/email/contact.js +1 -1
  73. package/dist/libs/email/newsletter.js +1 -1
  74. package/dist/libs/email/waitlist-application.js +1 -1
  75. package/dist/libs/email/waitlist.js +1 -1
  76. package/dist/node/components/marketing/ChangelogPage.js +8 -8
  77. package/dist/node/components/marketing/CofounderPage.js +167 -523
  78. package/dist/node/components/marketing/ContactClient.js +200 -207
  79. package/dist/node/components/marketing/ContributePage.js +211 -463
  80. package/dist/node/components/marketing/DesignPartnerPage.js +165 -218
  81. package/dist/node/components/marketing/LandingPage.js +464 -568
  82. package/dist/node/components/marketing/PricingClient.js +213 -839
  83. package/dist/node/components/marketing/ProductClientPage.js +265 -463
  84. package/dist/node/components/marketing/index.js +2007 -3338
  85. package/dist/node/components/marketing/pricing-thinking-modal.js +12 -12
  86. package/dist/node/components/marketing/sections/AudienceSection.js +2 -2
  87. package/dist/node/components/marketing/sections/CorePositioningSection.js +2 -2
  88. package/dist/node/components/marketing/sections/CtaSection.js +3 -3
  89. package/dist/node/components/marketing/sections/FearsSection.js +3 -3
  90. package/dist/node/components/marketing/sections/HeroMarketingSection.js +6 -6
  91. package/dist/node/components/marketing/sections/IconGridSection.js +2 -2
  92. package/dist/node/components/marketing/sections/OutputsSection.js +2 -2
  93. package/dist/node/components/marketing/sections/ProblemSection.js +2 -2
  94. package/dist/node/components/marketing/sections/SolutionSection.js +2 -2
  95. package/dist/node/components/marketing/sections/StepsSection.js +4 -4
  96. package/dist/node/components/marketing/studio-signup-section.js +25 -41
  97. package/dist/node/components/templates/TemplatesClientPage.js +2374 -3571
  98. package/dist/node/components/templates/TemplatesPage.js +1 -1
  99. package/dist/node/components/templates/TemplatesPreviewModal.js +27 -3
  100. package/dist/node/components/templates/index.js +2412 -3609
  101. package/dist/node/index.js +2415 -3612
  102. package/dist/node/libs/email/client.js +1 -1
  103. package/dist/node/libs/email/contact.js +1 -1
  104. package/dist/node/libs/email/newsletter.js +1 -1
  105. package/dist/node/libs/email/waitlist-application.js +1 -1
  106. package/dist/node/libs/email/waitlist.js +1 -1
  107. package/dist/node/registry/engine.js +2003 -3334
  108. package/dist/node/registry/index.js +2003 -3334
  109. package/dist/node/registry/registry-docs.js +2 -2
  110. package/dist/node/registry/registry-landing.js +2007 -3338
  111. package/dist/node/registry/registry.js +2003 -3334
  112. package/dist/node/registry/utils.js +2003 -3334
  113. package/dist/registry/engine.js +2003 -3334
  114. package/dist/registry/index.js +2003 -3334
  115. package/dist/registry/registry-docs.js +2 -2
  116. package/dist/registry/registry-landing.js +2007 -3338
  117. package/dist/registry/registry.js +2003 -3334
  118. package/dist/registry/utils.js +2003 -3334
  119. package/package.json +31 -29
  120. package/src/bundles/MarketingBundle.ts +273 -273
  121. package/src/components/marketing/ChangelogPage.tsx +72 -100
  122. package/src/components/marketing/CofounderPage.tsx +120 -384
  123. package/src/components/marketing/ContactClient.tsx +164 -154
  124. package/src/components/marketing/ContributePage.tsx +139 -313
  125. package/src/components/marketing/DesignPartnerPage.tsx +133 -171
  126. package/src/components/marketing/LandingPage.tsx +353 -25
  127. package/src/components/marketing/PricingClient.tsx +192 -437
  128. package/src/components/marketing/ProductClientPage.tsx +255 -377
  129. package/src/components/marketing/index.ts +5 -5
  130. package/src/components/marketing/pricing-thinking-modal.tsx +197 -197
  131. package/src/components/marketing/sections/AudienceSection.tsx +55 -56
  132. package/src/components/marketing/sections/CorePositioningSection.tsx +37 -37
  133. package/src/components/marketing/sections/CtaSection.tsx +49 -50
  134. package/src/components/marketing/sections/DevelopersSection.tsx +26 -27
  135. package/src/components/marketing/sections/FearsSection.tsx +36 -37
  136. package/src/components/marketing/sections/HeroMarketingSection.tsx +59 -59
  137. package/src/components/marketing/sections/IconGridSection.tsx +71 -71
  138. package/src/components/marketing/sections/OutputsSection.tsx +51 -52
  139. package/src/components/marketing/sections/ProblemSection.tsx +39 -40
  140. package/src/components/marketing/sections/SolutionSection.tsx +39 -40
  141. package/src/components/marketing/sections/StepsSection.tsx +47 -48
  142. package/src/components/marketing/studio-signup-section.tsx +39 -41
  143. package/src/components/templates/TemplatesClientPage.tsx +763 -685
  144. package/src/components/templates/TemplatesPage.tsx +110 -110
  145. package/src/components/templates/TemplatesPreviewModal.tsx +251 -198
  146. package/src/index.ts +4 -4
  147. package/src/libs/email/client.test.ts +81 -81
  148. package/src/libs/email/client.ts +111 -111
  149. package/src/libs/email/contact.ts +35 -35
  150. package/src/libs/email/newsletter.ts +46 -46
  151. package/src/libs/email/types.ts +29 -29
  152. package/src/libs/email/utils.ts +5 -5
  153. package/src/libs/email/waitlist-application.ts +72 -72
  154. package/src/libs/email/waitlist.ts +46 -46
  155. package/src/libs/pricing-examples.ts +12 -12
  156. package/src/registry/engine.ts +16 -16
  157. package/src/registry/factory.ts +57 -57
  158. package/src/registry/registry-docs.ts +656 -666
  159. package/src/registry/registry-landing.ts +94 -95
  160. package/src/registry/registry.ts +36 -37
  161. package/src/registry/types.ts +2 -2
  162. package/src/registry/utils.ts +56 -56
  163. package/tsconfig.json +11 -11
  164. package/tsdown.config.js +5 -5
@@ -18,7 +18,7 @@ var PRICING_EXAMPLES = {
18
18
  };
19
19
 
20
20
  // src/components/marketing/pricing-thinking-modal.tsx
21
- import { CheckCircle } from "lucide-react";
21
+ import { Button } from "@contractspec/lib.design-system";
22
22
  import {
23
23
  Dialog,
24
24
  DialogContent,
@@ -26,7 +26,7 @@ import {
26
26
  DialogHeader,
27
27
  DialogTitle
28
28
  } from "@contractspec/lib.ui-kit-web/ui/dialog";
29
- import { Button } from "@contractspec/lib.design-system";
29
+ import { CheckCircle } from "lucide-react";
30
30
  import { jsxDEV } from "react/jsx-dev-runtime";
31
31
  "use client";
32
32
  var pricingTiers = [
@@ -118,7 +118,7 @@ function PricingThinkingModal({
118
118
  className: "flex items-center gap-2",
119
119
  children: [
120
120
  /* @__PURE__ */ jsxDEV("span", {
121
- className: "text-muted-foreground text-xs font-medium",
121
+ className: "font-medium text-muted-foreground text-xs",
122
122
  children: "Draft"
123
123
  }, undefined, false, undefined, this),
124
124
  /* @__PURE__ */ jsxDEV("span", {
@@ -137,14 +137,14 @@ function PricingThinkingModal({
137
137
  className: "card-subtle relative space-y-4 p-6",
138
138
  children: [
139
139
  /* @__PURE__ */ jsxDEV("div", {
140
- className: "bg-muted border-border absolute -top-2 left-1/2 -translate-x-1/2 rounded-full border px-2 py-0.5 text-xs font-medium",
140
+ className: "absolute -top-2 left-1/2 -translate-x-1/2 rounded-full border border-border bg-muted px-2 py-0.5 font-medium text-xs",
141
141
  children: tier.tag
142
142
  }, undefined, false, undefined, this),
143
143
  /* @__PURE__ */ jsxDEV("div", {
144
144
  className: "space-y-2 pt-2",
145
145
  children: [
146
146
  /* @__PURE__ */ jsxDEV("h3", {
147
- className: "text-xl font-bold",
147
+ className: "font-bold text-xl",
148
148
  children: tier.title
149
149
  }, undefined, false, undefined, this),
150
150
  /* @__PURE__ */ jsxDEV("p", {
@@ -156,7 +156,7 @@ function PricingThinkingModal({
156
156
  /* @__PURE__ */ jsxDEV("ul", {
157
157
  className: "space-y-2",
158
158
  children: tier.bullets.map((bullet, i) => /* @__PURE__ */ jsxDEV("li", {
159
- className: "text-muted-foreground flex gap-2 text-sm",
159
+ className: "flex gap-2 text-muted-foreground text-sm",
160
160
  children: [
161
161
  /* @__PURE__ */ jsxDEV(CheckCircle, {
162
162
  size: 14,
@@ -176,20 +176,20 @@ function PricingThinkingModal({
176
176
  ]
177
177
  }, undefined, true, undefined, this),
178
178
  /* @__PURE__ */ jsxDEV("div", {
179
- className: "border-border space-y-4 border-t pt-6",
179
+ className: "space-y-4 border-border border-t pt-6",
180
180
  children: [
181
181
  /* @__PURE__ */ jsxDEV("div", {
182
182
  children: [
183
183
  /* @__PURE__ */ jsxDEV("h3", {
184
- className: "text-lg font-bold",
184
+ className: "font-bold text-lg",
185
185
  children: "Usage-based, with a generous free tier"
186
186
  }, undefined, false, undefined, this),
187
187
  /* @__PURE__ */ jsxDEV("p", {
188
- className: "text-muted-foreground mt-2 text-sm",
188
+ className: "mt-2 text-muted-foreground text-sm",
189
189
  children: "Inspired by products like PostHog, we plan to keep a generous free tier on all plans, then charge based on actual usage: regenerations, AI agent actions, and the number of projects you run on ContractSpec."
190
190
  }, undefined, false, undefined, this),
191
191
  /* @__PURE__ */ jsxDEV("p", {
192
- className: "text-muted-foreground mt-3 text-xs italic",
192
+ className: "mt-3 text-muted-foreground text-xs italic",
193
193
  children: "Free tier limits are intentionally small but useful: enough to try the agent and regenerate a real project, not enough to run a full team's workload for free."
194
194
  }, undefined, false, undefined, this)
195
195
  ]
@@ -200,7 +200,7 @@ function PricingThinkingModal({
200
200
  className: "card-subtle space-y-2 p-4",
201
201
  children: [
202
202
  /* @__PURE__ */ jsxDEV("h4", {
203
- className: "text-sm font-semibold",
203
+ className: "font-semibold text-sm",
204
204
  children: metric.name
205
205
  }, undefined, false, undefined, this),
206
206
  /* @__PURE__ */ jsxDEV("p", {
@@ -217,7 +217,7 @@ function PricingThinkingModal({
217
217
  ]
218
218
  }, undefined, true, undefined, this),
219
219
  /* @__PURE__ */ jsxDEV("div", {
220
- className: "border-border space-y-4 border-t pt-6",
220
+ className: "space-y-4 border-border border-t pt-6",
221
221
  children: [
222
222
  /* @__PURE__ */ jsxDEV("p", {
223
223
  className: "text-muted-foreground text-xs",
@@ -6,8 +6,8 @@ import {
6
6
  MarketingCard,
7
7
  MarketingCardContent,
8
8
  MarketingCardHeader,
9
- MarketingCardTitle,
10
- MarketingCardsSection
9
+ MarketingCardsSection,
10
+ MarketingCardTitle
11
11
  } from "@contractspec/lib.design-system";
12
12
  import { VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
13
13
  import { Muted, Small } from "@contractspec/lib.ui-kit-web/ui/typography";
@@ -18,7 +18,7 @@ function CorePositioningSection() {
18
18
  align: "center",
19
19
  children: [
20
20
  /* @__PURE__ */ jsxDEV(H2, {
21
- className: "text-center text-3xl font-bold md:text-4xl",
21
+ className: "text-center font-bold text-3xl md:text-4xl",
22
22
  children: [
23
23
  "You keep your app.",
24
24
  /* @__PURE__ */ jsxDEV("br", {}, undefined, false, undefined, this),
@@ -32,7 +32,7 @@ function CorePositioningSection() {
32
32
  /* @__PURE__ */ jsxDEV("br", {}, undefined, false, undefined, this),
33
33
  /* @__PURE__ */ jsxDEV(Small, {
34
34
  className: "font-semibold text-violet-400",
35
- children: "We're the compiler, not the prison."
35
+ children: "Start with the open foundation. Adopt the operating layer when it helps."
36
36
  }, undefined, false, undefined, this)
37
37
  ]
38
38
  }, undefined, true, undefined, this),
@@ -2,11 +2,11 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/CtaSection.tsx
5
- import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
6
5
  import {
7
6
  analyticsEventNames,
8
7
  captureAnalyticsEvent
9
8
  } from "@contractspec/bundle.library/libs/posthog/client";
9
+ import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
10
10
  import { VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
11
11
  import { H2, Lead } from "@contractspec/lib.ui-kit-web/ui/typography";
12
12
  import { jsxDEV } from "react/jsx-dev-runtime";
@@ -22,11 +22,11 @@ function CtaSection() {
22
22
  className: "text-center",
23
23
  children: [
24
24
  /* @__PURE__ */ jsxDEV(H2, {
25
- className: "text-4xl font-bold md:text-5xl",
25
+ className: "font-bold text-4xl md:text-5xl",
26
26
  children: "Ready to stabilize your codebase?"
27
27
  }, undefined, false, undefined, this),
28
28
  /* @__PURE__ */ jsxDEV(Lead, {
29
- className: "text-muted-foreground text-lg",
29
+ className: "text-lg text-muted-foreground",
30
30
  children: "Start with one module. See the difference. Expand at your own pace."
31
31
  }, undefined, false, undefined, this),
32
32
  /* @__PURE__ */ jsxDEV(VStack, {
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -65,7 +65,7 @@ var fears = [
65
65
  },
66
66
  {
67
67
  title: '"Vendor lock-in / losing ownership"',
68
- body: "You own the generated code. It's standard TypeScript, standard SQL, standard GraphQL. ContractSpec is a compiler like TypeScript itself. You can eject anytime.",
68
+ body: "You own the generated code. It's standard TypeScript, standard SQL, standard GraphQL. ContractSpec stays open and ejectable, so you can leave with the parts you adopted anytime.",
69
69
  icon: Unlock
70
70
  },
71
71
  {
@@ -2,11 +2,11 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/HeroMarketingSection.tsx
5
- import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
6
5
  import {
7
6
  analyticsEventNames,
8
7
  captureAnalyticsEvent
9
8
  } from "@contractspec/bundle.library/libs/posthog/client";
9
+ import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
10
10
  import { Box, HStack, VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
11
11
  import { H1, Lead, Small } from "@contractspec/lib.ui-kit-web/ui/typography";
12
12
  import { ChevronRight } from "lucide-react";
@@ -26,16 +26,16 @@ function HeroMarketingSection() {
26
26
  /* @__PURE__ */ jsxDEV(Box, {
27
27
  as: "div",
28
28
  role: "presentation",
29
- className: "bg-muted text-muted-foreground inline-flex items-center rounded-full px-3 py-1 text-xs font-medium tracking-wider uppercase",
29
+ className: "inline-flex items-center rounded-full bg-muted px-3 py-1 font-medium text-muted-foreground text-xs uppercase tracking-wider",
30
30
  children: "Open Source Core"
31
31
  }, undefined, false, undefined, this),
32
32
  /* @__PURE__ */ jsxDEV(H1, {
33
- className: "text-4xl leading-tight font-bold text-balance md:text-5xl",
33
+ className: "text-balance font-bold text-4xl leading-tight md:text-5xl",
34
34
  children: "Stabilize your AI-generated code"
35
35
  }, undefined, false, undefined, this),
36
36
  /* @__PURE__ */ jsxDEV(Lead, {
37
- className: "text-muted-foreground text-lg text-balance md:text-xl",
38
- children: "ContractSpec is the compiler that keeps AI-written software coherent, safe, and regenerable. You keep your app. You own the code. One module at a time."
37
+ className: "text-balance text-lg text-muted-foreground md:text-xl",
38
+ children: "ContractSpec is the open spec system that keeps AI-written software coherent, safe, and regenerable. You keep your app. You own the code. One module at a time."
39
39
  }, undefined, false, undefined, this),
40
40
  /* @__PURE__ */ jsxDEV(HStack, {
41
41
  gap: "md",
@@ -72,7 +72,7 @@ function HeroMarketingSection() {
72
72
  children: heroChips.map((chip) => /* @__PURE__ */ jsxDEV(Box, {
73
73
  as: "div",
74
74
  role: "presentation",
75
- className: "border-border text-foreground inline-flex items-center rounded-full border px-3 py-1 text-sm",
75
+ className: "inline-flex items-center rounded-full border border-border px-3 py-1 text-foreground text-sm",
76
76
  children: /* @__PURE__ */ jsxDEV(Small, {
77
77
  className: "font-medium",
78
78
  children: chip
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -2,12 +2,12 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/sections/IconGridSection.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import {
7
6
  MarketingCardsSection,
8
7
  MarketingIconCard
9
8
  } from "@contractspec/lib.design-system";
10
9
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
10
+ import { cva } from "class-variance-authority";
11
11
  import { jsxDEV } from "react/jsx-dev-runtime";
12
12
  var itemVariants = cva("", {
13
13
  variants: {
@@ -33,7 +33,7 @@ function IconGridSection({
33
33
  tone,
34
34
  padding,
35
35
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
36
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
36
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
37
37
  children: eyebrow
38
38
  }, undefined, false, undefined, this) : null,
39
39
  title,
@@ -87,9 +87,9 @@ function StepsSection() {
87
87
  iconRole: "listing",
88
88
  items: steps.map((item) => ({
89
89
  icon: ({ className }) => /* @__PURE__ */ jsxDEV2("div", {
90
- className: `bg-primary/15 flex h-10 w-10 items-center justify-center rounded-lg ${className ?? ""}`,
90
+ className: `flex h-10 w-10 items-center justify-center rounded-lg bg-primary/15 ${className ?? ""}`,
91
91
  children: /* @__PURE__ */ jsxDEV2("span", {
92
- className: "text-primary text-sm font-semibold",
92
+ className: "font-semibold text-primary text-sm",
93
93
  children: item.step
94
94
  }, undefined, false, undefined, this)
95
95
  }, undefined, false, undefined, this),
@@ -2,9 +2,8 @@ import { createRequire } from "node:module";
2
2
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
3
3
 
4
4
  // src/components/marketing/studio-signup-section.tsx
5
+ import { ArrowRight, Sparkles } from "lucide-react";
5
6
  import Link from "next/link";
6
- import { ArrowRight, Rocket } from "lucide-react";
7
- import { Button } from "@contractspec/lib.design-system";
8
7
  import { jsxDEV } from "react/jsx-dev-runtime";
9
8
  "use client";
10
9
  var studioUrl = "https://www.contractspec.studio";
@@ -15,62 +14,47 @@ function StudioSignupSection({
15
14
  const isCompact = variant === "compact";
16
15
  return /* @__PURE__ */ jsxDEV("div", {
17
16
  id: "studio-signup",
18
- className: isCompact ? "space-y-4" : "card-subtle space-y-6 p-8",
17
+ className: `${isCompact ? "space-y-5 rounded-[28px] border border-border bg-card p-6" : "editorial-panel space-y-6"}`,
19
18
  children: [
20
19
  /* @__PURE__ */ jsxDEV("div", {
21
20
  className: "space-y-4",
22
21
  children: [
23
22
  /* @__PURE__ */ jsxDEV("div", {
24
- className: "inline-flex items-center gap-2 rounded-full border border-violet-500/20 bg-violet-500/10 px-3 py-1",
23
+ className: "badge",
25
24
  children: [
26
- /* @__PURE__ */ jsxDEV(Rocket, {
27
- size: 14,
28
- className: "text-violet-300"
25
+ /* @__PURE__ */ jsxDEV(Sparkles, {
26
+ size: 14
29
27
  }, undefined, false, undefined, this),
30
- /* @__PURE__ */ jsxDEV("span", {
31
- className: "text-sm font-medium text-violet-300",
32
- children: "ContractSpec Studio"
33
- }, undefined, false, undefined, this)
28
+ "Studio on top"
34
29
  ]
35
30
  }, undefined, true, undefined, this),
36
31
  /* @__PURE__ */ jsxDEV("h2", {
37
- className: isCompact ? "text-xl font-bold" : "text-2xl font-bold",
38
- children: "Try ContractSpec Studio"
39
- }, undefined, false, undefined, this),
40
- /* @__PURE__ */ jsxDEV("p", {
41
- className: "text-muted-foreground text-sm",
42
- children: "The AI-powered product decision engine that turns product signals into spec-first deliverables."
32
+ className: isCompact ? "font-serif text-3xl tracking-[-0.04em]" : "font-serif text-4xl tracking-[-0.04em]",
33
+ children: "See the operating layer built on top of the open system."
43
34
  }, undefined, false, undefined, this),
44
35
  /* @__PURE__ */ jsxDEV("p", {
45
- className: "text-muted-foreground text-xs",
46
- children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
36
+ className: "text-muted-foreground text-sm leading-7",
37
+ children: "Studio packages the workflow for evidence, drafting, review, export, and follow-up. It should feel like the best product built on top of ContractSpec, not a different story."
47
38
  }, undefined, false, undefined, this)
48
39
  ]
49
40
  }, undefined, true, undefined, this),
50
41
  /* @__PURE__ */ jsxDEV("div", {
51
- className: "flex flex-col gap-3 sm:flex-row",
42
+ className: "grid gap-3 sm:grid-cols-2",
52
43
  children: [
53
- /* @__PURE__ */ jsxDEV(Button, {
54
- asChild: true,
55
- className: "w-full sm:w-auto",
56
- children: /* @__PURE__ */ jsxDEV(Link, {
57
- href: studioUrl,
58
- children: [
59
- "Get Started Free ",
60
- /* @__PURE__ */ jsxDEV(ArrowRight, {
61
- className: "ml-2 h-4 w-4"
62
- }, undefined, false, undefined, this)
63
- ]
64
- }, undefined, true, undefined, this)
65
- }, undefined, false, undefined, this),
66
- /* @__PURE__ */ jsxDEV(Button, {
67
- asChild: true,
68
- variant: "outline",
69
- className: "w-full sm:w-auto",
70
- children: /* @__PURE__ */ jsxDEV(Link, {
71
- href: studioDocsUrl,
72
- children: "Read Studio Docs"
73
- }, undefined, false, undefined, this)
44
+ /* @__PURE__ */ jsxDEV(Link, {
45
+ href: studioUrl,
46
+ className: "btn-primary",
47
+ children: [
48
+ "Explore Studio ",
49
+ /* @__PURE__ */ jsxDEV(ArrowRight, {
50
+ className: "ml-2 h-4 w-4"
51
+ }, undefined, false, undefined, this)
52
+ ]
53
+ }, undefined, true, undefined, this),
54
+ /* @__PURE__ */ jsxDEV(Link, {
55
+ href: studioDocsUrl,
56
+ className: "btn-ghost",
57
+ children: "Read Studio docs"
74
58
  }, undefined, false, undefined, this)
75
59
  ]
76
60
  }, undefined, true, undefined, this)