@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
@@ -23,7 +23,7 @@ var PRICING_EXAMPLES = {
23
23
  };
24
24
 
25
25
  // src/components/marketing/pricing-thinking-modal.tsx
26
- import { CheckCircle } from "lucide-react";
26
+ import { Button } from "@contractspec/lib.design-system";
27
27
  import {
28
28
  Dialog,
29
29
  DialogContent,
@@ -31,7 +31,7 @@ import {
31
31
  DialogHeader,
32
32
  DialogTitle
33
33
  } from "@contractspec/lib.ui-kit-web/ui/dialog";
34
- import { Button } from "@contractspec/lib.design-system";
34
+ import { CheckCircle } from "lucide-react";
35
35
  import { jsxDEV } from "react/jsx-dev-runtime";
36
36
  "use client";
37
37
  var pricingTiers = [
@@ -123,7 +123,7 @@ function PricingThinkingModal({
123
123
  className: "flex items-center gap-2",
124
124
  children: [
125
125
  /* @__PURE__ */ jsxDEV("span", {
126
- className: "text-muted-foreground text-xs font-medium",
126
+ className: "font-medium text-muted-foreground text-xs",
127
127
  children: "Draft"
128
128
  }, undefined, false, undefined, this),
129
129
  /* @__PURE__ */ jsxDEV("span", {
@@ -142,14 +142,14 @@ function PricingThinkingModal({
142
142
  className: "card-subtle relative space-y-4 p-6",
143
143
  children: [
144
144
  /* @__PURE__ */ jsxDEV("div", {
145
- 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",
145
+ 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",
146
146
  children: tier.tag
147
147
  }, undefined, false, undefined, this),
148
148
  /* @__PURE__ */ jsxDEV("div", {
149
149
  className: "space-y-2 pt-2",
150
150
  children: [
151
151
  /* @__PURE__ */ jsxDEV("h3", {
152
- className: "text-xl font-bold",
152
+ className: "font-bold text-xl",
153
153
  children: tier.title
154
154
  }, undefined, false, undefined, this),
155
155
  /* @__PURE__ */ jsxDEV("p", {
@@ -161,7 +161,7 @@ function PricingThinkingModal({
161
161
  /* @__PURE__ */ jsxDEV("ul", {
162
162
  className: "space-y-2",
163
163
  children: tier.bullets.map((bullet, i) => /* @__PURE__ */ jsxDEV("li", {
164
- className: "text-muted-foreground flex gap-2 text-sm",
164
+ className: "flex gap-2 text-muted-foreground text-sm",
165
165
  children: [
166
166
  /* @__PURE__ */ jsxDEV(CheckCircle, {
167
167
  size: 14,
@@ -181,20 +181,20 @@ function PricingThinkingModal({
181
181
  ]
182
182
  }, undefined, true, undefined, this),
183
183
  /* @__PURE__ */ jsxDEV("div", {
184
- className: "border-border space-y-4 border-t pt-6",
184
+ className: "space-y-4 border-border border-t pt-6",
185
185
  children: [
186
186
  /* @__PURE__ */ jsxDEV("div", {
187
187
  children: [
188
188
  /* @__PURE__ */ jsxDEV("h3", {
189
- className: "text-lg font-bold",
189
+ className: "font-bold text-lg",
190
190
  children: "Usage-based, with a generous free tier"
191
191
  }, undefined, false, undefined, this),
192
192
  /* @__PURE__ */ jsxDEV("p", {
193
- className: "text-muted-foreground mt-2 text-sm",
193
+ className: "mt-2 text-muted-foreground text-sm",
194
194
  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."
195
195
  }, undefined, false, undefined, this),
196
196
  /* @__PURE__ */ jsxDEV("p", {
197
- className: "text-muted-foreground mt-3 text-xs italic",
197
+ className: "mt-3 text-muted-foreground text-xs italic",
198
198
  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."
199
199
  }, undefined, false, undefined, this)
200
200
  ]
@@ -205,7 +205,7 @@ function PricingThinkingModal({
205
205
  className: "card-subtle space-y-2 p-4",
206
206
  children: [
207
207
  /* @__PURE__ */ jsxDEV("h4", {
208
- className: "text-sm font-semibold",
208
+ className: "font-semibold text-sm",
209
209
  children: metric.name
210
210
  }, undefined, false, undefined, this),
211
211
  /* @__PURE__ */ jsxDEV("p", {
@@ -222,7 +222,7 @@ function PricingThinkingModal({
222
222
  ]
223
223
  }, undefined, true, undefined, this),
224
224
  /* @__PURE__ */ jsxDEV("div", {
225
- className: "border-border space-y-4 border-t pt-6",
225
+ className: "space-y-4 border-border border-t pt-6",
226
226
  children: [
227
227
  /* @__PURE__ */ jsxDEV("p", {
228
228
  className: "text-muted-foreground text-xs",
@@ -11,8 +11,8 @@ import {
11
11
  MarketingCard,
12
12
  MarketingCardContent,
13
13
  MarketingCardHeader,
14
- MarketingCardTitle,
15
- MarketingCardsSection
14
+ MarketingCardsSection,
15
+ MarketingCardTitle
16
16
  } from "@contractspec/lib.design-system";
17
17
  import { VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
18
18
  import { Muted, Small } from "@contractspec/lib.ui-kit-web/ui/typography";
@@ -23,7 +23,7 @@ function CorePositioningSection() {
23
23
  align: "center",
24
24
  children: [
25
25
  /* @__PURE__ */ jsxDEV(H2, {
26
- className: "text-center text-3xl font-bold md:text-4xl",
26
+ className: "text-center font-bold text-3xl md:text-4xl",
27
27
  children: [
28
28
  "You keep your app.",
29
29
  /* @__PURE__ */ jsxDEV("br", {}, undefined, false, undefined, this),
@@ -37,7 +37,7 @@ function CorePositioningSection() {
37
37
  /* @__PURE__ */ jsxDEV("br", {}, undefined, false, undefined, this),
38
38
  /* @__PURE__ */ jsxDEV(Small, {
39
39
  className: "font-semibold text-violet-400",
40
- children: "We're the compiler, not the prison."
40
+ children: "Start with the open foundation. Adopt the operating layer when it helps."
41
41
  }, undefined, false, undefined, this)
42
42
  ]
43
43
  }, undefined, true, undefined, this),
@@ -7,11 +7,11 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/CtaSection.tsx
10
- import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
11
10
  import {
12
11
  analyticsEventNames,
13
12
  captureAnalyticsEvent
14
13
  } from "@contractspec/bundle.library/libs/posthog/client";
14
+ import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
15
15
  import { VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
16
16
  import { H2, Lead } from "@contractspec/lib.ui-kit-web/ui/typography";
17
17
  import { jsxDEV } from "react/jsx-dev-runtime";
@@ -27,11 +27,11 @@ function CtaSection() {
27
27
  className: "text-center",
28
28
  children: [
29
29
  /* @__PURE__ */ jsxDEV(H2, {
30
- className: "text-4xl font-bold md:text-5xl",
30
+ className: "font-bold text-4xl md:text-5xl",
31
31
  children: "Ready to stabilize your codebase?"
32
32
  }, undefined, false, undefined, this),
33
33
  /* @__PURE__ */ jsxDEV(Lead, {
34
- className: "text-muted-foreground text-lg",
34
+ className: "text-lg text-muted-foreground",
35
35
  children: "Start with one module. See the difference. Expand at your own pace."
36
36
  }, undefined, false, undefined, this),
37
37
  /* @__PURE__ */ jsxDEV(VStack, {
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -70,7 +70,7 @@ var fears = [
70
70
  },
71
71
  {
72
72
  title: '"Vendor lock-in / losing ownership"',
73
- 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.",
73
+ 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.",
74
74
  icon: Unlock
75
75
  },
76
76
  {
@@ -7,11 +7,11 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/HeroMarketingSection.tsx
10
- import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
11
10
  import {
12
11
  analyticsEventNames,
13
12
  captureAnalyticsEvent
14
13
  } from "@contractspec/bundle.library/libs/posthog/client";
14
+ import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
15
15
  import { Box, HStack, VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
16
16
  import { H1, Lead, Small } from "@contractspec/lib.ui-kit-web/ui/typography";
17
17
  import { ChevronRight } from "lucide-react";
@@ -31,16 +31,16 @@ function HeroMarketingSection() {
31
31
  /* @__PURE__ */ jsxDEV(Box, {
32
32
  as: "div",
33
33
  role: "presentation",
34
- className: "bg-muted text-muted-foreground inline-flex items-center rounded-full px-3 py-1 text-xs font-medium tracking-wider uppercase",
34
+ className: "inline-flex items-center rounded-full bg-muted px-3 py-1 font-medium text-muted-foreground text-xs uppercase tracking-wider",
35
35
  children: "Open Source Core"
36
36
  }, undefined, false, undefined, this),
37
37
  /* @__PURE__ */ jsxDEV(H1, {
38
- className: "text-4xl leading-tight font-bold text-balance md:text-5xl",
38
+ className: "text-balance font-bold text-4xl leading-tight md:text-5xl",
39
39
  children: "Stabilize your AI-generated code"
40
40
  }, undefined, false, undefined, this),
41
41
  /* @__PURE__ */ jsxDEV(Lead, {
42
- className: "text-muted-foreground text-lg text-balance md:text-xl",
43
- 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."
42
+ className: "text-balance text-lg text-muted-foreground md:text-xl",
43
+ 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."
44
44
  }, undefined, false, undefined, this),
45
45
  /* @__PURE__ */ jsxDEV(HStack, {
46
46
  gap: "md",
@@ -77,7 +77,7 @@ function HeroMarketingSection() {
77
77
  children: heroChips.map((chip) => /* @__PURE__ */ jsxDEV(Box, {
78
78
  as: "div",
79
79
  role: "presentation",
80
- className: "border-border text-foreground inline-flex items-center rounded-full border px-3 py-1 text-sm",
80
+ className: "inline-flex items-center rounded-full border border-border px-3 py-1 text-foreground text-sm",
81
81
  children: /* @__PURE__ */ jsxDEV(Small, {
82
82
  className: "font-medium",
83
83
  children: chip
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -7,12 +7,12 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/sections/IconGridSection.tsx
10
- import { cva } from "class-variance-authority";
11
10
  import {
12
11
  MarketingCardsSection,
13
12
  MarketingIconCard
14
13
  } from "@contractspec/lib.design-system";
15
14
  import { Muted } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import { cva } from "class-variance-authority";
16
16
  import { jsxDEV } from "react/jsx-dev-runtime";
17
17
  var itemVariants = cva("", {
18
18
  variants: {
@@ -38,7 +38,7 @@ function IconGridSection({
38
38
  tone,
39
39
  padding,
40
40
  eyebrow: eyebrow ? /* @__PURE__ */ jsxDEV(Muted, {
41
- className: "text-xs font-semibold tracking-[0.2em] uppercase",
41
+ className: "font-semibold text-xs uppercase tracking-[0.2em]",
42
42
  children: eyebrow
43
43
  }, undefined, false, undefined, this) : null,
44
44
  title,
@@ -92,9 +92,9 @@ function StepsSection() {
92
92
  iconRole: "listing",
93
93
  items: steps.map((item) => ({
94
94
  icon: ({ className }) => /* @__PURE__ */ jsxDEV2("div", {
95
- className: `bg-primary/15 flex h-10 w-10 items-center justify-center rounded-lg ${className ?? ""}`,
95
+ className: `flex h-10 w-10 items-center justify-center rounded-lg bg-primary/15 ${className ?? ""}`,
96
96
  children: /* @__PURE__ */ jsxDEV2("span", {
97
- className: "text-primary text-sm font-semibold",
97
+ className: "font-semibold text-primary text-sm",
98
98
  children: item.step
99
99
  }, undefined, false, undefined, this)
100
100
  }, undefined, false, undefined, this),
@@ -7,9 +7,8 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // src/components/marketing/studio-signup-section.tsx
10
+ import { ArrowRight, Sparkles } from "lucide-react";
10
11
  import Link from "next/link";
11
- import { ArrowRight, Rocket } from "lucide-react";
12
- import { Button } from "@contractspec/lib.design-system";
13
12
  import { jsxDEV } from "react/jsx-dev-runtime";
14
13
  "use client";
15
14
  var studioUrl = "https://www.contractspec.studio";
@@ -20,62 +19,47 @@ function StudioSignupSection({
20
19
  const isCompact = variant === "compact";
21
20
  return /* @__PURE__ */ jsxDEV("div", {
22
21
  id: "studio-signup",
23
- className: isCompact ? "space-y-4" : "card-subtle space-y-6 p-8",
22
+ className: `${isCompact ? "space-y-5 rounded-[28px] border border-border bg-card p-6" : "editorial-panel space-y-6"}`,
24
23
  children: [
25
24
  /* @__PURE__ */ jsxDEV("div", {
26
25
  className: "space-y-4",
27
26
  children: [
28
27
  /* @__PURE__ */ jsxDEV("div", {
29
- className: "inline-flex items-center gap-2 rounded-full border border-violet-500/20 bg-violet-500/10 px-3 py-1",
28
+ className: "badge",
30
29
  children: [
31
- /* @__PURE__ */ jsxDEV(Rocket, {
32
- size: 14,
33
- className: "text-violet-300"
30
+ /* @__PURE__ */ jsxDEV(Sparkles, {
31
+ size: 14
34
32
  }, undefined, false, undefined, this),
35
- /* @__PURE__ */ jsxDEV("span", {
36
- className: "text-sm font-medium text-violet-300",
37
- children: "ContractSpec Studio"
38
- }, undefined, false, undefined, this)
33
+ "Studio on top"
39
34
  ]
40
35
  }, undefined, true, undefined, this),
41
36
  /* @__PURE__ */ jsxDEV("h2", {
42
- className: isCompact ? "text-xl font-bold" : "text-2xl font-bold",
43
- children: "Try ContractSpec Studio"
44
- }, undefined, false, undefined, this),
45
- /* @__PURE__ */ jsxDEV("p", {
46
- className: "text-muted-foreground text-sm",
47
- children: "The AI-powered product decision engine that turns product signals into spec-first deliverables."
37
+ className: isCompact ? "font-serif text-3xl tracking-[-0.04em]" : "font-serif text-4xl tracking-[-0.04em]",
38
+ children: "See the operating layer built on top of the open system."
48
39
  }, undefined, false, undefined, this),
49
40
  /* @__PURE__ */ jsxDEV("p", {
50
- className: "text-muted-foreground text-xs",
51
- children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
41
+ className: "text-muted-foreground text-sm leading-7",
42
+ 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."
52
43
  }, undefined, false, undefined, this)
53
44
  ]
54
45
  }, undefined, true, undefined, this),
55
46
  /* @__PURE__ */ jsxDEV("div", {
56
- className: "flex flex-col gap-3 sm:flex-row",
47
+ className: "grid gap-3 sm:grid-cols-2",
57
48
  children: [
58
- /* @__PURE__ */ jsxDEV(Button, {
59
- asChild: true,
60
- className: "w-full sm:w-auto",
61
- children: /* @__PURE__ */ jsxDEV(Link, {
62
- href: studioUrl,
63
- children: [
64
- "Get Started Free ",
65
- /* @__PURE__ */ jsxDEV(ArrowRight, {
66
- className: "ml-2 h-4 w-4"
67
- }, undefined, false, undefined, this)
68
- ]
69
- }, undefined, true, undefined, this)
70
- }, undefined, false, undefined, this),
71
- /* @__PURE__ */ jsxDEV(Button, {
72
- asChild: true,
73
- variant: "outline",
74
- className: "w-full sm:w-auto",
75
- children: /* @__PURE__ */ jsxDEV(Link, {
76
- href: studioDocsUrl,
77
- children: "Read Studio Docs"
78
- }, undefined, false, undefined, this)
49
+ /* @__PURE__ */ jsxDEV(Link, {
50
+ href: studioUrl,
51
+ className: "btn-primary",
52
+ children: [
53
+ "Explore Studio ",
54
+ /* @__PURE__ */ jsxDEV(ArrowRight, {
55
+ className: "ml-2 h-4 w-4"
56
+ }, undefined, false, undefined, this)
57
+ ]
58
+ }, undefined, true, undefined, this),
59
+ /* @__PURE__ */ jsxDEV(Link, {
60
+ href: studioDocsUrl,
61
+ className: "btn-ghost",
62
+ children: "Read Studio docs"
79
63
  }, undefined, false, undefined, this)
80
64
  ]
81
65
  }, undefined, true, undefined, this)