@contractspec/bundle.marketing 3.7.6 → 3.7.7

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 (163) hide show
  1. package/.turbo/turbo-build.log +84 -84
  2. package/AGENTS.md +29 -21
  3. package/README.md +36 -49
  4. package/dist/browser/components/marketing/ChangelogPage.js +8 -8
  5. package/dist/browser/components/marketing/CofounderPage.js +167 -523
  6. package/dist/browser/components/marketing/ContactClient.js +200 -207
  7. package/dist/browser/components/marketing/ContributePage.js +211 -463
  8. package/dist/browser/components/marketing/DesignPartnerPage.js +165 -218
  9. package/dist/browser/components/marketing/LandingPage.js +464 -568
  10. package/dist/browser/components/marketing/PricingClient.js +213 -839
  11. package/dist/browser/components/marketing/ProductClientPage.js +265 -463
  12. package/dist/browser/components/marketing/index.js +2007 -3338
  13. package/dist/browser/components/marketing/pricing-thinking-modal.js +12 -12
  14. package/dist/browser/components/marketing/sections/AudienceSection.js +2 -2
  15. package/dist/browser/components/marketing/sections/CorePositioningSection.js +2 -2
  16. package/dist/browser/components/marketing/sections/CtaSection.js +3 -3
  17. package/dist/browser/components/marketing/sections/FearsSection.js +3 -3
  18. package/dist/browser/components/marketing/sections/HeroMarketingSection.js +6 -6
  19. package/dist/browser/components/marketing/sections/IconGridSection.js +2 -2
  20. package/dist/browser/components/marketing/sections/OutputsSection.js +2 -2
  21. package/dist/browser/components/marketing/sections/ProblemSection.js +2 -2
  22. package/dist/browser/components/marketing/sections/SolutionSection.js +2 -2
  23. package/dist/browser/components/marketing/sections/StepsSection.js +4 -4
  24. package/dist/browser/components/marketing/studio-signup-section.js +25 -41
  25. package/dist/browser/components/templates/TemplatesClientPage.js +2324 -3578
  26. package/dist/browser/components/templates/TemplatesPage.js +1 -1
  27. package/dist/browser/components/templates/TemplatesPreviewModal.js +3 -3
  28. package/dist/browser/components/templates/index.js +2361 -3615
  29. package/dist/browser/index.js +2363 -3617
  30. package/dist/browser/libs/email/client.js +1 -1
  31. package/dist/browser/libs/email/contact.js +1 -1
  32. package/dist/browser/libs/email/newsletter.js +1 -1
  33. package/dist/browser/libs/email/waitlist-application.js +1 -1
  34. package/dist/browser/libs/email/waitlist.js +1 -1
  35. package/dist/browser/registry/engine.js +2003 -3334
  36. package/dist/browser/registry/index.js +2003 -3334
  37. package/dist/browser/registry/registry-docs.js +2 -2
  38. package/dist/browser/registry/registry-landing.js +2007 -3338
  39. package/dist/browser/registry/registry.js +2003 -3334
  40. package/dist/browser/registry/utils.js +2003 -3334
  41. package/dist/components/marketing/ChangelogPage.js +8 -8
  42. package/dist/components/marketing/CofounderPage.js +167 -523
  43. package/dist/components/marketing/ContactClient.js +200 -207
  44. package/dist/components/marketing/ContributePage.d.ts +0 -2
  45. package/dist/components/marketing/ContributePage.js +211 -463
  46. package/dist/components/marketing/DesignPartnerPage.js +165 -218
  47. package/dist/components/marketing/LandingPage.js +464 -568
  48. package/dist/components/marketing/PricingClient.js +213 -839
  49. package/dist/components/marketing/ProductClientPage.js +265 -463
  50. package/dist/components/marketing/index.d.ts +5 -5
  51. package/dist/components/marketing/index.js +2007 -3338
  52. package/dist/components/marketing/pricing-thinking-modal.js +12 -12
  53. package/dist/components/marketing/sections/AudienceSection.js +2 -2
  54. package/dist/components/marketing/sections/CorePositioningSection.js +2 -2
  55. package/dist/components/marketing/sections/CtaSection.js +3 -3
  56. package/dist/components/marketing/sections/FearsSection.js +3 -3
  57. package/dist/components/marketing/sections/HeroMarketingSection.js +6 -6
  58. package/dist/components/marketing/sections/IconGridSection.d.ts +3 -3
  59. package/dist/components/marketing/sections/IconGridSection.js +2 -2
  60. package/dist/components/marketing/sections/OutputsSection.js +2 -2
  61. package/dist/components/marketing/sections/ProblemSection.js +2 -2
  62. package/dist/components/marketing/sections/SolutionSection.js +2 -2
  63. package/dist/components/marketing/sections/StepsSection.js +4 -4
  64. package/dist/components/marketing/studio-signup-section.js +25 -41
  65. package/dist/components/templates/TemplatesClientPage.js +2324 -3578
  66. package/dist/components/templates/TemplatesPage.js +1 -1
  67. package/dist/components/templates/TemplatesPreviewModal.js +3 -3
  68. package/dist/components/templates/index.js +2361 -3615
  69. package/dist/index.js +2363 -3617
  70. package/dist/libs/email/client.js +1 -1
  71. package/dist/libs/email/contact.js +1 -1
  72. package/dist/libs/email/newsletter.js +1 -1
  73. package/dist/libs/email/waitlist-application.js +1 -1
  74. package/dist/libs/email/waitlist.js +1 -1
  75. package/dist/node/components/marketing/ChangelogPage.js +8 -8
  76. package/dist/node/components/marketing/CofounderPage.js +167 -523
  77. package/dist/node/components/marketing/ContactClient.js +200 -207
  78. package/dist/node/components/marketing/ContributePage.js +211 -463
  79. package/dist/node/components/marketing/DesignPartnerPage.js +165 -218
  80. package/dist/node/components/marketing/LandingPage.js +464 -568
  81. package/dist/node/components/marketing/PricingClient.js +213 -839
  82. package/dist/node/components/marketing/ProductClientPage.js +265 -463
  83. package/dist/node/components/marketing/index.js +2007 -3338
  84. package/dist/node/components/marketing/pricing-thinking-modal.js +12 -12
  85. package/dist/node/components/marketing/sections/AudienceSection.js +2 -2
  86. package/dist/node/components/marketing/sections/CorePositioningSection.js +2 -2
  87. package/dist/node/components/marketing/sections/CtaSection.js +3 -3
  88. package/dist/node/components/marketing/sections/FearsSection.js +3 -3
  89. package/dist/node/components/marketing/sections/HeroMarketingSection.js +6 -6
  90. package/dist/node/components/marketing/sections/IconGridSection.js +2 -2
  91. package/dist/node/components/marketing/sections/OutputsSection.js +2 -2
  92. package/dist/node/components/marketing/sections/ProblemSection.js +2 -2
  93. package/dist/node/components/marketing/sections/SolutionSection.js +2 -2
  94. package/dist/node/components/marketing/sections/StepsSection.js +4 -4
  95. package/dist/node/components/marketing/studio-signup-section.js +25 -41
  96. package/dist/node/components/templates/TemplatesClientPage.js +2324 -3578
  97. package/dist/node/components/templates/TemplatesPage.js +1 -1
  98. package/dist/node/components/templates/TemplatesPreviewModal.js +3 -3
  99. package/dist/node/components/templates/index.js +2361 -3615
  100. package/dist/node/index.js +2363 -3617
  101. package/dist/node/libs/email/client.js +1 -1
  102. package/dist/node/libs/email/contact.js +1 -1
  103. package/dist/node/libs/email/newsletter.js +1 -1
  104. package/dist/node/libs/email/waitlist-application.js +1 -1
  105. package/dist/node/libs/email/waitlist.js +1 -1
  106. package/dist/node/registry/engine.js +2003 -3334
  107. package/dist/node/registry/index.js +2003 -3334
  108. package/dist/node/registry/registry-docs.js +2 -2
  109. package/dist/node/registry/registry-landing.js +2007 -3338
  110. package/dist/node/registry/registry.js +2003 -3334
  111. package/dist/node/registry/utils.js +2003 -3334
  112. package/dist/registry/engine.js +2003 -3334
  113. package/dist/registry/index.js +2003 -3334
  114. package/dist/registry/registry-docs.js +2 -2
  115. package/dist/registry/registry-landing.js +2007 -3338
  116. package/dist/registry/registry.js +2003 -3334
  117. package/dist/registry/utils.js +2003 -3334
  118. package/package.json +22 -22
  119. package/src/bundles/MarketingBundle.ts +273 -273
  120. package/src/components/marketing/ChangelogPage.tsx +72 -100
  121. package/src/components/marketing/CofounderPage.tsx +120 -384
  122. package/src/components/marketing/ContactClient.tsx +164 -154
  123. package/src/components/marketing/ContributePage.tsx +139 -313
  124. package/src/components/marketing/DesignPartnerPage.tsx +133 -171
  125. package/src/components/marketing/LandingPage.tsx +353 -25
  126. package/src/components/marketing/PricingClient.tsx +192 -437
  127. package/src/components/marketing/ProductClientPage.tsx +255 -377
  128. package/src/components/marketing/index.ts +5 -5
  129. package/src/components/marketing/pricing-thinking-modal.tsx +197 -197
  130. package/src/components/marketing/sections/AudienceSection.tsx +55 -56
  131. package/src/components/marketing/sections/CorePositioningSection.tsx +37 -37
  132. package/src/components/marketing/sections/CtaSection.tsx +49 -50
  133. package/src/components/marketing/sections/DevelopersSection.tsx +26 -27
  134. package/src/components/marketing/sections/FearsSection.tsx +36 -37
  135. package/src/components/marketing/sections/HeroMarketingSection.tsx +59 -59
  136. package/src/components/marketing/sections/IconGridSection.tsx +71 -71
  137. package/src/components/marketing/sections/OutputsSection.tsx +51 -52
  138. package/src/components/marketing/sections/ProblemSection.tsx +39 -40
  139. package/src/components/marketing/sections/SolutionSection.tsx +39 -40
  140. package/src/components/marketing/sections/StepsSection.tsx +47 -48
  141. package/src/components/marketing/studio-signup-section.tsx +39 -41
  142. package/src/components/templates/TemplatesClientPage.tsx +727 -685
  143. package/src/components/templates/TemplatesPage.tsx +110 -110
  144. package/src/components/templates/TemplatesPreviewModal.tsx +197 -198
  145. package/src/index.ts +4 -4
  146. package/src/libs/email/client.test.ts +81 -81
  147. package/src/libs/email/client.ts +111 -111
  148. package/src/libs/email/contact.ts +35 -35
  149. package/src/libs/email/newsletter.ts +46 -46
  150. package/src/libs/email/types.ts +29 -29
  151. package/src/libs/email/utils.ts +5 -5
  152. package/src/libs/email/waitlist-application.ts +72 -72
  153. package/src/libs/email/waitlist.ts +46 -46
  154. package/src/libs/pricing-examples.ts +12 -12
  155. package/src/registry/engine.ts +16 -16
  156. package/src/registry/factory.ts +57 -57
  157. package/src/registry/registry-docs.ts +656 -666
  158. package/src/registry/registry-landing.ts +94 -95
  159. package/src/registry/registry.ts +36 -37
  160. package/src/registry/types.ts +2 -2
  161. package/src/registry/utils.ts +56 -56
  162. package/tsconfig.json +11 -11
  163. 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)