@contractspec/bundle.marketing 1.12.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/.turbo/turbo-build.log +146 -175
  2. package/.turbo/turbo-prebuild.log +1 -0
  3. package/CHANGELOG.md +57 -0
  4. package/dist/browser/components/marketing/ChangelogPage.js +92 -0
  5. package/dist/browser/components/marketing/CofounderPage.js +581 -0
  6. package/dist/browser/components/marketing/ContactClient.js +1379 -0
  7. package/dist/browser/components/marketing/ContributePage.js +487 -0
  8. package/dist/browser/components/marketing/DesignPartnerPage.js +272 -0
  9. package/dist/browser/components/marketing/LandingPage.js +629 -0
  10. package/dist/browser/components/marketing/PricingClient.js +1972 -0
  11. package/dist/browser/components/marketing/ProductClientPage.js +563 -0
  12. package/dist/browser/components/marketing/index.js +4818 -0
  13. package/dist/browser/components/marketing/pricing-thinking-modal.js +258 -0
  14. package/dist/browser/components/marketing/sections/AudienceSection.js +90 -0
  15. package/dist/browser/components/marketing/sections/CorePositioningSection.js +72 -0
  16. package/dist/browser/components/marketing/sections/CtaSection.js +67 -0
  17. package/dist/browser/components/marketing/sections/DevelopersSection.js +50 -0
  18. package/dist/browser/components/marketing/sections/FearsSection.js +105 -0
  19. package/dist/browser/components/marketing/sections/HeroMarketingSection.js +93 -0
  20. package/dist/browser/components/marketing/sections/IconGridSection.js +63 -0
  21. package/dist/browser/components/marketing/sections/OutputsSection.js +116 -0
  22. package/dist/browser/components/marketing/sections/ProblemSection.js +103 -0
  23. package/dist/browser/components/marketing/sections/SolutionSection.js +103 -0
  24. package/dist/browser/components/marketing/sections/StepsSection.js +109 -0
  25. package/dist/browser/components/marketing/waitlist-section.js +1104 -0
  26. package/dist/browser/components/templates/TemplatesClientPage.js +5662 -0
  27. package/dist/browser/components/templates/TemplatesPage.js +177 -0
  28. package/dist/browser/components/templates/TemplatesPreviewModal.js +124 -0
  29. package/dist/browser/components/templates/index.js +5831 -0
  30. package/dist/browser/index.js +6485 -0
  31. package/dist/browser/libs/email/client.js +122 -0
  32. package/dist/browser/libs/email/contact.js +190 -0
  33. package/dist/browser/libs/email/newsletter.js +215 -0
  34. package/dist/browser/libs/email/types.js +2 -0
  35. package/dist/browser/libs/email/utils.js +16 -0
  36. package/dist/browser/libs/email/waitlist-application.js +295 -0
  37. package/dist/browser/libs/email/waitlist.js +225 -0
  38. package/dist/browser/libs/pricing-examples.js +26 -0
  39. package/dist/browser/registry/engine.js +5293 -0
  40. package/dist/browser/registry/factory.js +52 -0
  41. package/dist/browser/registry/index.js +5358 -0
  42. package/dist/browser/registry/registry-docs.js +343 -0
  43. package/dist/browser/registry/registry-landing.js +4937 -0
  44. package/dist/browser/registry/registry.js +5279 -0
  45. package/dist/browser/registry/types.js +0 -0
  46. package/dist/browser/registry/utils.js +5340 -0
  47. package/dist/components/marketing/ChangelogPage.d.ts +11 -17
  48. package/dist/components/marketing/ChangelogPage.d.ts.map +1 -1
  49. package/dist/components/marketing/ChangelogPage.js +84 -62
  50. package/dist/components/marketing/CofounderPage.d.ts +1 -6
  51. package/dist/components/marketing/CofounderPage.d.ts.map +1 -1
  52. package/dist/components/marketing/CofounderPage.js +544 -436
  53. package/dist/components/marketing/ContactClient.d.ts +1 -6
  54. package/dist/components/marketing/ContactClient.d.ts.map +1 -1
  55. package/dist/components/marketing/ContactClient.js +1371 -155
  56. package/dist/components/marketing/ContributePage.d.ts +3 -8
  57. package/dist/components/marketing/ContributePage.d.ts.map +1 -1
  58. package/dist/components/marketing/ContributePage.js +478 -358
  59. package/dist/components/marketing/DesignPartnerPage.d.ts +3 -8
  60. package/dist/components/marketing/DesignPartnerPage.d.ts.map +1 -1
  61. package/dist/components/marketing/DesignPartnerPage.js +263 -211
  62. package/dist/components/marketing/LandingPage.d.ts +1 -6
  63. package/dist/components/marketing/LandingPage.d.ts.map +1 -1
  64. package/dist/components/marketing/LandingPage.js +623 -37
  65. package/dist/components/marketing/PricingClient.d.ts +1 -6
  66. package/dist/components/marketing/PricingClient.d.ts.map +1 -1
  67. package/dist/components/marketing/PricingClient.js +1962 -516
  68. package/dist/components/marketing/ProductClientPage.d.ts +1 -6
  69. package/dist/components/marketing/ProductClientPage.d.ts.map +1 -1
  70. package/dist/components/marketing/ProductClientPage.js +556 -458
  71. package/dist/components/marketing/index.d.ts +11 -11
  72. package/dist/components/marketing/index.d.ts.map +1 -0
  73. package/dist/components/marketing/index.js +4813 -12
  74. package/dist/components/marketing/pricing-thinking-modal.d.ts +5 -13
  75. package/dist/components/marketing/pricing-thinking-modal.d.ts.map +1 -1
  76. package/dist/components/marketing/pricing-thinking-modal.js +248 -197
  77. package/dist/components/marketing/sections/AudienceSection.d.ts +1 -6
  78. package/dist/components/marketing/sections/AudienceSection.d.ts.map +1 -1
  79. package/dist/components/marketing/sections/AudienceSection.js +80 -63
  80. package/dist/components/marketing/sections/CorePositioningSection.d.ts +1 -6
  81. package/dist/components/marketing/sections/CorePositioningSection.d.ts.map +1 -1
  82. package/dist/components/marketing/sections/CorePositioningSection.js +62 -54
  83. package/dist/components/marketing/sections/CtaSection.d.ts +1 -6
  84. package/dist/components/marketing/sections/CtaSection.d.ts.map +1 -1
  85. package/dist/components/marketing/sections/CtaSection.js +58 -50
  86. package/dist/components/marketing/sections/DevelopersSection.d.ts +1 -6
  87. package/dist/components/marketing/sections/DevelopersSection.d.ts.map +1 -1
  88. package/dist/components/marketing/sections/DevelopersSection.js +40 -40
  89. package/dist/components/marketing/sections/FearsSection.d.ts +1 -6
  90. package/dist/components/marketing/sections/FearsSection.d.ts.map +1 -1
  91. package/dist/components/marketing/sections/FearsSection.js +96 -44
  92. package/dist/components/marketing/sections/HeroMarketingSection.d.ts +1 -6
  93. package/dist/components/marketing/sections/HeroMarketingSection.d.ts.map +1 -1
  94. package/dist/components/marketing/sections/HeroMarketingSection.js +82 -71
  95. package/dist/components/marketing/sections/IconGridSection.d.ts +25 -39
  96. package/dist/components/marketing/sections/IconGridSection.d.ts.map +1 -1
  97. package/dist/components/marketing/sections/IconGridSection.js +55 -41
  98. package/dist/components/marketing/sections/OutputsSection.d.ts +1 -6
  99. package/dist/components/marketing/sections/OutputsSection.d.ts.map +1 -1
  100. package/dist/components/marketing/sections/OutputsSection.js +107 -55
  101. package/dist/components/marketing/sections/ProblemSection.d.ts +1 -6
  102. package/dist/components/marketing/sections/ProblemSection.d.ts.map +1 -1
  103. package/dist/components/marketing/sections/ProblemSection.js +94 -42
  104. package/dist/components/marketing/sections/SolutionSection.d.ts +1 -6
  105. package/dist/components/marketing/sections/SolutionSection.d.ts.map +1 -1
  106. package/dist/components/marketing/sections/SolutionSection.js +94 -42
  107. package/dist/components/marketing/sections/StepsSection.d.ts +1 -6
  108. package/dist/components/marketing/sections/StepsSection.d.ts.map +1 -1
  109. package/dist/components/marketing/sections/StepsSection.js +100 -48
  110. package/dist/components/marketing/waitlist-section.d.ts +5 -12
  111. package/dist/components/marketing/waitlist-section.d.ts.map +1 -1
  112. package/dist/components/marketing/waitlist-section.js +1089 -568
  113. package/dist/components/templates/TemplatesClientPage.d.ts +1 -6
  114. package/dist/components/templates/TemplatesClientPage.d.ts.map +1 -1
  115. package/dist/components/templates/TemplatesClientPage.js +5649 -617
  116. package/dist/components/templates/TemplatesPage.d.ts +1 -6
  117. package/dist/components/templates/TemplatesPage.d.ts.map +1 -1
  118. package/dist/components/templates/TemplatesPage.js +163 -116
  119. package/dist/components/templates/TemplatesPreviewModal.d.ts +5 -12
  120. package/dist/components/templates/TemplatesPreviewModal.d.ts.map +1 -1
  121. package/dist/components/templates/TemplatesPreviewModal.js +113 -131
  122. package/dist/components/templates/index.d.ts +4 -4
  123. package/dist/components/templates/index.d.ts.map +1 -0
  124. package/dist/components/templates/index.js +5825 -4
  125. package/dist/index.d.ts +9 -29
  126. package/dist/index.d.ts.map +1 -0
  127. package/dist/index.js +6480 -28
  128. package/dist/libs/email/client.d.ts +9 -12
  129. package/dist/libs/email/client.d.ts.map +1 -1
  130. package/dist/libs/email/client.js +109 -105
  131. package/dist/libs/email/client.test.d.ts +2 -0
  132. package/dist/libs/email/client.test.d.ts.map +1 -0
  133. package/dist/libs/email/contact.d.ts +2 -6
  134. package/dist/libs/email/contact.d.ts.map +1 -1
  135. package/dist/libs/email/contact.js +155 -41
  136. package/dist/libs/email/newsletter.d.ts +2 -6
  137. package/dist/libs/email/newsletter.d.ts.map +1 -1
  138. package/dist/libs/email/newsletter.js +169 -54
  139. package/dist/libs/email/types.d.ts +48 -52
  140. package/dist/libs/email/types.d.ts.map +1 -1
  141. package/dist/libs/email/types.js +3 -1
  142. package/dist/libs/email/utils.d.ts +2 -5
  143. package/dist/libs/email/utils.d.ts.map +1 -1
  144. package/dist/libs/email/utils.js +10 -6
  145. package/dist/libs/email/waitlist-application.d.ts +2 -6
  146. package/dist/libs/email/waitlist-application.d.ts.map +1 -1
  147. package/dist/libs/email/waitlist-application.js +191 -71
  148. package/dist/libs/email/waitlist.d.ts +2 -6
  149. package/dist/libs/email/waitlist.d.ts.map +1 -1
  150. package/dist/libs/email/waitlist.js +171 -56
  151. package/dist/libs/pricing-examples.d.ts +13 -16
  152. package/dist/libs/pricing-examples.d.ts.map +1 -1
  153. package/dist/libs/pricing-examples.js +20 -20
  154. package/dist/node/components/marketing/ChangelogPage.js +87 -0
  155. package/dist/node/components/marketing/CofounderPage.js +576 -0
  156. package/dist/node/components/marketing/ContactClient.js +1374 -0
  157. package/dist/node/components/marketing/ContributePage.js +482 -0
  158. package/dist/node/components/marketing/DesignPartnerPage.js +267 -0
  159. package/dist/node/components/marketing/LandingPage.js +624 -0
  160. package/dist/node/components/marketing/PricingClient.js +1967 -0
  161. package/dist/node/components/marketing/ProductClientPage.js +558 -0
  162. package/dist/node/components/marketing/index.js +4813 -0
  163. package/dist/node/components/marketing/pricing-thinking-modal.js +253 -0
  164. package/dist/node/components/marketing/sections/AudienceSection.js +85 -0
  165. package/dist/node/components/marketing/sections/CorePositioningSection.js +67 -0
  166. package/dist/node/components/marketing/sections/CtaSection.js +62 -0
  167. package/dist/node/components/marketing/sections/DevelopersSection.js +45 -0
  168. package/dist/node/components/marketing/sections/FearsSection.js +100 -0
  169. package/dist/node/components/marketing/sections/HeroMarketingSection.js +88 -0
  170. package/dist/node/components/marketing/sections/IconGridSection.js +58 -0
  171. package/dist/node/components/marketing/sections/OutputsSection.js +111 -0
  172. package/dist/node/components/marketing/sections/ProblemSection.js +98 -0
  173. package/dist/node/components/marketing/sections/SolutionSection.js +98 -0
  174. package/dist/node/components/marketing/sections/StepsSection.js +104 -0
  175. package/dist/node/components/marketing/waitlist-section.js +1099 -0
  176. package/dist/node/components/templates/TemplatesClientPage.js +5657 -0
  177. package/dist/node/components/templates/TemplatesPage.js +172 -0
  178. package/dist/node/components/templates/TemplatesPreviewModal.js +119 -0
  179. package/dist/node/components/templates/index.js +5826 -0
  180. package/dist/node/index.js +6480 -0
  181. package/dist/node/libs/email/client.js +117 -0
  182. package/dist/node/libs/email/contact.js +185 -0
  183. package/dist/node/libs/email/newsletter.js +210 -0
  184. package/dist/node/libs/email/types.js +2 -0
  185. package/dist/node/libs/email/utils.js +11 -0
  186. package/dist/node/libs/email/waitlist-application.js +290 -0
  187. package/dist/node/libs/email/waitlist.js +220 -0
  188. package/dist/node/libs/pricing-examples.js +21 -0
  189. package/dist/node/registry/engine.js +5288 -0
  190. package/dist/node/registry/factory.js +47 -0
  191. package/dist/node/registry/index.js +5353 -0
  192. package/dist/node/registry/registry-docs.js +338 -0
  193. package/dist/node/registry/registry-landing.js +4932 -0
  194. package/dist/node/registry/registry.js +5274 -0
  195. package/dist/node/registry/types.js +0 -0
  196. package/dist/node/registry/utils.js +5335 -0
  197. package/dist/registry/engine.d.ts +4 -8
  198. package/dist/registry/engine.d.ts.map +1 -1
  199. package/dist/registry/engine.js +5287 -23
  200. package/dist/registry/factory.d.ts +30 -34
  201. package/dist/registry/factory.d.ts.map +1 -1
  202. package/dist/registry/factory.js +42 -56
  203. package/dist/registry/index.d.ts +8 -8
  204. package/dist/registry/index.d.ts.map +1 -0
  205. package/dist/registry/index.js +5353 -8
  206. package/dist/registry/registry-docs.d.ts +4 -8
  207. package/dist/registry/registry-docs.d.ts.map +1 -1
  208. package/dist/registry/registry-docs.js +242 -209
  209. package/dist/registry/registry-landing.d.ts +5 -9
  210. package/dist/registry/registry-landing.d.ts.map +1 -1
  211. package/dist/registry/registry-landing.js +4930 -93
  212. package/dist/registry/registry.d.ts +7 -11
  213. package/dist/registry/registry.d.ts.map +1 -1
  214. package/dist/registry/registry.js +5262 -49
  215. package/dist/registry/types.d.ts +6 -10
  216. package/dist/registry/types.d.ts.map +1 -1
  217. package/dist/registry/types.js +1 -0
  218. package/dist/registry/utils.d.ts +10 -14
  219. package/dist/registry/utils.d.ts.map +1 -1
  220. package/dist/registry/utils.js +5330 -49
  221. package/package.json +355 -73
  222. package/tsdown.config.js +1 -2
  223. package/.turbo/turbo-build$colon$types.log +0 -1
  224. package/.turbo/turbo-lint.log +0 -3
  225. package/dist/components/marketing/ChangelogPage.js.map +0 -1
  226. package/dist/components/marketing/CofounderPage.js.map +0 -1
  227. package/dist/components/marketing/ContactClient.js.map +0 -1
  228. package/dist/components/marketing/ContributePage.js.map +0 -1
  229. package/dist/components/marketing/DesignPartnerPage.js.map +0 -1
  230. package/dist/components/marketing/LandingPage.js.map +0 -1
  231. package/dist/components/marketing/PricingClient.js.map +0 -1
  232. package/dist/components/marketing/ProductClientPage.js.map +0 -1
  233. package/dist/components/marketing/pricing-thinking-modal.js.map +0 -1
  234. package/dist/components/marketing/sections/AudienceSection.js.map +0 -1
  235. package/dist/components/marketing/sections/CorePositioningSection.js.map +0 -1
  236. package/dist/components/marketing/sections/CtaSection.js.map +0 -1
  237. package/dist/components/marketing/sections/DevelopersSection.js.map +0 -1
  238. package/dist/components/marketing/sections/FearsSection.js.map +0 -1
  239. package/dist/components/marketing/sections/HeroMarketingSection.js.map +0 -1
  240. package/dist/components/marketing/sections/IconGridSection.js.map +0 -1
  241. package/dist/components/marketing/sections/OutputsSection.js.map +0 -1
  242. package/dist/components/marketing/sections/ProblemSection.js.map +0 -1
  243. package/dist/components/marketing/sections/SolutionSection.js.map +0 -1
  244. package/dist/components/marketing/sections/StepsSection.js.map +0 -1
  245. package/dist/components/marketing/waitlist-section.js.map +0 -1
  246. package/dist/components/templates/TemplatesClientPage.js.map +0 -1
  247. package/dist/components/templates/TemplatesPage.js.map +0 -1
  248. package/dist/components/templates/TemplatesPreviewModal.js.map +0 -1
  249. package/dist/libs/email/client.js.map +0 -1
  250. package/dist/libs/email/contact.js.map +0 -1
  251. package/dist/libs/email/newsletter.js.map +0 -1
  252. package/dist/libs/email/utils.js.map +0 -1
  253. package/dist/libs/email/waitlist-application.js.map +0 -1
  254. package/dist/libs/email/waitlist.js.map +0 -1
  255. package/dist/libs/pricing-examples.js.map +0 -1
  256. package/dist/registry/engine.js.map +0 -1
  257. package/dist/registry/factory.js.map +0 -1
  258. package/dist/registry/registry-docs.js.map +0 -1
  259. package/dist/registry/registry-landing.js.map +0 -1
  260. package/dist/registry/registry.js.map +0 -1
  261. package/dist/registry/utils.js.map +0 -1
  262. package/tsconfig.tsbuildinfo +0 -1
@@ -1,13 +1,33 @@
1
- 'use client';
1
+ // @bun
2
+ var __require = import.meta.require;
2
3
 
3
- import { Box, HStack, VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
4
+ // src/components/marketing/CofounderPage.tsx
4
5
  import { ButtonLink, MarketingSection } from "@contractspec/lib.design-system";
5
- import { H1, H2, H3, Lead, Muted, Small } from "@contractspec/lib.ui-kit-web/ui/typography";
6
- import { Check, Clock, MapPin, MessageSquare, Percent, Rocket, Target, Users, X } from "lucide-react";
7
- import { jsx, jsxs } from "react/jsx-runtime";
8
-
9
- //#region src/components/marketing/CofounderPage.tsx
10
- const mailtoLink = `mailto:tboutron@contractspec.io?subject=${encodeURIComponent("Co-founder application: ContractSpec")}&body=${encodeURIComponent(`Hi Theo,
6
+ import { Box, HStack, VStack } from "@contractspec/lib.ui-kit-web/ui/stack";
7
+ import {
8
+ H1,
9
+ H2,
10
+ H3,
11
+ Lead,
12
+ Muted,
13
+ Small
14
+ } from "@contractspec/lib.ui-kit-web/ui/typography";
15
+ import {
16
+ Check,
17
+ Clock,
18
+ MapPin,
19
+ MessageSquare,
20
+ Percent,
21
+ Rocket,
22
+ Target,
23
+ Users,
24
+ X
25
+ } from "lucide-react";
26
+ import { jsxDEV } from "react/jsx-dev-runtime";
27
+ "use client";
28
+ var COFOUNDER_EMAIL = "tboutron@contractspec.io";
29
+ var APPLY_SUBJECT = "Co-founder application: ContractSpec";
30
+ var APPLY_BODY = `Hi Theo,
11
31
 
12
32
  I am reaching out about co-founding ContractSpec.
13
33
 
@@ -20,449 +40,537 @@ Why ContractSpec:
20
40
 
21
41
  What I would own in the first 90 days:
22
42
  [your answer]
23
- `)}`;
43
+ `;
44
+ var mailtoLink = `mailto:${COFOUNDER_EMAIL}?subject=${encodeURIComponent(APPLY_SUBJECT)}&body=${encodeURIComponent(APPLY_BODY)}`;
24
45
  function HeroSection() {
25
- return /* @__PURE__ */ jsx(MarketingSection, {
26
- tone: "gradient",
27
- padding: "spacious",
28
- align: "center",
29
- children: /* @__PURE__ */ jsxs(VStack, {
30
- gap: "lg",
31
- align: "center",
32
- className: "text-center",
33
- children: [
34
- /* @__PURE__ */ jsx(H1, {
35
- className: "text-4xl leading-tight font-bold text-balance md:text-5xl",
36
- children: "Co-founder wanted"
37
- }),
38
- /* @__PURE__ */ jsx(Lead, {
39
- className: "text-muted-foreground max-w-2xl text-lg text-balance md:text-xl",
40
- children: "ContractSpec is a contract-first compiler for AI-generated code. Define specs, enforce policies, regenerate safely. Pre-PMF. Building in public."
41
- }),
42
- /* @__PURE__ */ jsxs(HStack, {
43
- gap: "md",
44
- justify: "center",
45
- wrap: "wrap",
46
- className: "pt-2",
47
- children: [/* @__PURE__ */ jsx(ButtonLink, {
48
- href: mailtoLink,
49
- children: "Talk about co-founding"
50
- }), /* @__PURE__ */ jsx(ButtonLink, {
51
- variant: "ghost",
52
- href: "/contact",
53
- children: "Become a design partner"
54
- })]
55
- })
56
- ]
57
- })
58
- });
46
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
47
+ tone: "gradient",
48
+ padding: "spacious",
49
+ align: "center",
50
+ children: /* @__PURE__ */ jsxDEV(VStack, {
51
+ gap: "lg",
52
+ align: "center",
53
+ className: "text-center",
54
+ children: [
55
+ /* @__PURE__ */ jsxDEV(H1, {
56
+ className: "text-4xl leading-tight font-bold text-balance md:text-5xl",
57
+ children: "Co-founder wanted"
58
+ }, undefined, false, undefined, this),
59
+ /* @__PURE__ */ jsxDEV(Lead, {
60
+ className: "text-muted-foreground max-w-2xl text-lg text-balance md:text-xl",
61
+ children: "ContractSpec is a contract-first compiler for AI-generated code. Define specs, enforce policies, regenerate safely. Pre-PMF. Building in public."
62
+ }, undefined, false, undefined, this),
63
+ /* @__PURE__ */ jsxDEV(HStack, {
64
+ gap: "md",
65
+ justify: "center",
66
+ wrap: "wrap",
67
+ className: "pt-2",
68
+ children: [
69
+ /* @__PURE__ */ jsxDEV(ButtonLink, {
70
+ href: mailtoLink,
71
+ children: "Talk about co-founding"
72
+ }, undefined, false, undefined, this),
73
+ /* @__PURE__ */ jsxDEV(ButtonLink, {
74
+ variant: "ghost",
75
+ href: "/contact",
76
+ children: "Become a design partner"
77
+ }, undefined, false, undefined, this)
78
+ ]
79
+ }, undefined, true, undefined, this)
80
+ ]
81
+ }, undefined, true, undefined, this)
82
+ }, undefined, false, undefined, this);
59
83
  }
60
84
  function WhatExistsSection() {
61
- return /* @__PURE__ */ jsx(MarketingSection, {
62
- padding: "comfortable",
63
- align: "center",
64
- maxWidth: "lg",
65
- children: /* @__PURE__ */ jsxs(VStack, {
66
- gap: "lg",
67
- children: [/* @__PURE__ */ jsx(H2, {
68
- className: "text-3xl font-bold",
69
- children: "What exists today"
70
- }), /* @__PURE__ */ jsxs("div", {
71
- className: "grid w-full gap-8 md:grid-cols-2",
72
- children: [/* @__PURE__ */ jsxs(VStack, {
73
- gap: "sm",
74
- align: "start",
75
- children: [/* @__PURE__ */ jsx(H3, {
76
- className: "text-lg font-semibold text-emerald-400",
77
- children: "Real now"
78
- }), /* @__PURE__ */ jsx("ul", {
79
- className: "space-y-2",
80
- children: [
81
- "ContractSpec Core: open-source spec compiler",
82
- "Working CLI and TypeScript runtime",
83
- "Design partner pipeline open",
84
- "Solo founder, bootstrapped"
85
- ].map((item) => /* @__PURE__ */ jsxs("li", {
86
- className: "flex items-start gap-2",
87
- children: [/* @__PURE__ */ jsx(Check, {
88
- size: 16,
89
- className: "mt-1 shrink-0 text-emerald-400"
90
- }), /* @__PURE__ */ jsx(Small, { children: item })]
91
- }, item))
92
- })]
93
- }), /* @__PURE__ */ jsxs(VStack, {
94
- gap: "sm",
95
- align: "start",
96
- children: [/* @__PURE__ */ jsx(H3, {
97
- className: "text-lg font-semibold text-blue-400",
98
- children: "Planned"
99
- }), /* @__PURE__ */ jsx("ul", {
100
- className: "space-y-2",
101
- children: [
102
- "Visual studio for specs",
103
- "Auto-evolution engine",
104
- "Multi-tenant SaaS",
105
- "Integration marketplace"
106
- ].map((item) => /* @__PURE__ */ jsxs("li", {
107
- className: "flex items-start gap-2",
108
- children: [/* @__PURE__ */ jsx(Target, {
109
- size: 16,
110
- className: "mt-1 shrink-0 text-blue-400"
111
- }), /* @__PURE__ */ jsx(Small, { children: item })]
112
- }, item))
113
- })]
114
- })]
115
- })]
116
- })
117
- });
85
+ const realNow = [
86
+ "ContractSpec Core: open-source spec compiler",
87
+ "Working CLI and TypeScript runtime",
88
+ "Design partner pipeline open",
89
+ "Solo founder, bootstrapped"
90
+ ];
91
+ const planned = [
92
+ "Visual studio for specs",
93
+ "Auto-evolution engine",
94
+ "Multi-tenant SaaS",
95
+ "Integration marketplace"
96
+ ];
97
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
98
+ padding: "comfortable",
99
+ align: "center",
100
+ maxWidth: "lg",
101
+ children: /* @__PURE__ */ jsxDEV(VStack, {
102
+ gap: "lg",
103
+ children: [
104
+ /* @__PURE__ */ jsxDEV(H2, {
105
+ className: "text-3xl font-bold",
106
+ children: "What exists today"
107
+ }, undefined, false, undefined, this),
108
+ /* @__PURE__ */ jsxDEV("div", {
109
+ className: "grid w-full gap-8 md:grid-cols-2",
110
+ children: [
111
+ /* @__PURE__ */ jsxDEV(VStack, {
112
+ gap: "sm",
113
+ align: "start",
114
+ children: [
115
+ /* @__PURE__ */ jsxDEV(H3, {
116
+ className: "text-lg font-semibold text-emerald-400",
117
+ children: "Real now"
118
+ }, undefined, false, undefined, this),
119
+ /* @__PURE__ */ jsxDEV("ul", {
120
+ className: "space-y-2",
121
+ children: realNow.map((item) => /* @__PURE__ */ jsxDEV("li", {
122
+ className: "flex items-start gap-2",
123
+ children: [
124
+ /* @__PURE__ */ jsxDEV(Check, {
125
+ size: 16,
126
+ className: "mt-1 shrink-0 text-emerald-400"
127
+ }, undefined, false, undefined, this),
128
+ /* @__PURE__ */ jsxDEV(Small, {
129
+ children: item
130
+ }, undefined, false, undefined, this)
131
+ ]
132
+ }, item, true, undefined, this))
133
+ }, undefined, false, undefined, this)
134
+ ]
135
+ }, undefined, true, undefined, this),
136
+ /* @__PURE__ */ jsxDEV(VStack, {
137
+ gap: "sm",
138
+ align: "start",
139
+ children: [
140
+ /* @__PURE__ */ jsxDEV(H3, {
141
+ className: "text-lg font-semibold text-blue-400",
142
+ children: "Planned"
143
+ }, undefined, false, undefined, this),
144
+ /* @__PURE__ */ jsxDEV("ul", {
145
+ className: "space-y-2",
146
+ children: planned.map((item) => /* @__PURE__ */ jsxDEV("li", {
147
+ className: "flex items-start gap-2",
148
+ children: [
149
+ /* @__PURE__ */ jsxDEV(Target, {
150
+ size: 16,
151
+ className: "mt-1 shrink-0 text-blue-400"
152
+ }, undefined, false, undefined, this),
153
+ /* @__PURE__ */ jsxDEV(Small, {
154
+ children: item
155
+ }, undefined, false, undefined, this)
156
+ ]
157
+ }, item, true, undefined, this))
158
+ }, undefined, false, undefined, this)
159
+ ]
160
+ }, undefined, true, undefined, this)
161
+ ]
162
+ }, undefined, true, undefined, this)
163
+ ]
164
+ }, undefined, true, undefined, this)
165
+ }, undefined, false, undefined, this);
118
166
  }
119
167
  function RoleSection() {
120
- return /* @__PURE__ */ jsx(MarketingSection, {
121
- padding: "comfortable",
122
- align: "center",
123
- maxWidth: "lg",
124
- children: /* @__PURE__ */ jsxs(VStack, {
125
- gap: "lg",
126
- children: [
127
- /* @__PURE__ */ jsx(H2, {
128
- className: "text-3xl font-bold",
129
- children: "The role"
130
- }),
131
- /* @__PURE__ */ jsxs(VStack, {
132
- gap: "md",
133
- align: "start",
134
- className: "w-full",
135
- children: [
136
- /* @__PURE__ */ jsx(H3, {
137
- className: "text-xl font-semibold",
138
- children: "Option A: GTM / Sales / Partnerships"
139
- }),
140
- /* @__PURE__ */ jsx(Muted, { children: "Weekly deliverables, not vague traits:" }),
141
- /* @__PURE__ */ jsx("ul", {
142
- className: "space-y-2",
143
- children: [
144
- "Run 5+ sales conversations per week",
145
- "Own the design partner pipeline end-to-end",
146
- "Write positioning copy that ships",
147
- "Build and maintain partnership channels",
148
- "Turn user feedback into roadmap signal"
149
- ].map((item) => /* @__PURE__ */ jsxs("li", {
150
- className: "flex items-start gap-2",
151
- children: [/* @__PURE__ */ jsx(Rocket, {
152
- size: 16,
153
- className: "mt-1 shrink-0 text-amber-400"
154
- }), /* @__PURE__ */ jsx(Small, { children: item })]
155
- }, item))
156
- })
157
- ]
158
- }),
159
- /* @__PURE__ */ jsxs(VStack, {
160
- gap: "md",
161
- align: "start",
162
- className: "w-full pt-4",
163
- children: [
164
- /* @__PURE__ */ jsx(H3, {
165
- className: "text-xl font-semibold",
166
- children: "Option B: Product / Design"
167
- }),
168
- /* @__PURE__ */ jsx(Muted, { children: "If this is your strength:" }),
169
- /* @__PURE__ */ jsx("ul", {
170
- className: "space-y-2",
171
- children: [
172
- "Ship UI/UX improvements weekly",
173
- "Define specs based on user research",
174
- "Own the studio experience",
175
- "Collaborate on architecture decisions"
176
- ].map((item) => /* @__PURE__ */ jsxs("li", {
177
- className: "flex items-start gap-2",
178
- children: [/* @__PURE__ */ jsx(Rocket, {
179
- size: 16,
180
- className: "mt-1 shrink-0 text-purple-400"
181
- }), /* @__PURE__ */ jsx(Small, { children: item })]
182
- }, item))
183
- })
184
- ]
185
- })
186
- ]
187
- })
188
- });
168
+ const gtmDeliverables = [
169
+ "Run 5+ sales conversations per week",
170
+ "Own the design partner pipeline end-to-end",
171
+ "Write positioning copy that ships",
172
+ "Build and maintain partnership channels",
173
+ "Turn user feedback into roadmap signal"
174
+ ];
175
+ const productDeliverables = [
176
+ "Ship UI/UX improvements weekly",
177
+ "Define specs based on user research",
178
+ "Own the studio experience",
179
+ "Collaborate on architecture decisions"
180
+ ];
181
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
182
+ padding: "comfortable",
183
+ align: "center",
184
+ maxWidth: "lg",
185
+ children: /* @__PURE__ */ jsxDEV(VStack, {
186
+ gap: "lg",
187
+ children: [
188
+ /* @__PURE__ */ jsxDEV(H2, {
189
+ className: "text-3xl font-bold",
190
+ children: "The role"
191
+ }, undefined, false, undefined, this),
192
+ /* @__PURE__ */ jsxDEV(VStack, {
193
+ gap: "md",
194
+ align: "start",
195
+ className: "w-full",
196
+ children: [
197
+ /* @__PURE__ */ jsxDEV(H3, {
198
+ className: "text-xl font-semibold",
199
+ children: "Option A: GTM / Sales / Partnerships"
200
+ }, undefined, false, undefined, this),
201
+ /* @__PURE__ */ jsxDEV(Muted, {
202
+ children: "Weekly deliverables, not vague traits:"
203
+ }, undefined, false, undefined, this),
204
+ /* @__PURE__ */ jsxDEV("ul", {
205
+ className: "space-y-2",
206
+ children: gtmDeliverables.map((item) => /* @__PURE__ */ jsxDEV("li", {
207
+ className: "flex items-start gap-2",
208
+ children: [
209
+ /* @__PURE__ */ jsxDEV(Rocket, {
210
+ size: 16,
211
+ className: "mt-1 shrink-0 text-amber-400"
212
+ }, undefined, false, undefined, this),
213
+ /* @__PURE__ */ jsxDEV(Small, {
214
+ children: item
215
+ }, undefined, false, undefined, this)
216
+ ]
217
+ }, item, true, undefined, this))
218
+ }, undefined, false, undefined, this)
219
+ ]
220
+ }, undefined, true, undefined, this),
221
+ /* @__PURE__ */ jsxDEV(VStack, {
222
+ gap: "md",
223
+ align: "start",
224
+ className: "w-full pt-4",
225
+ children: [
226
+ /* @__PURE__ */ jsxDEV(H3, {
227
+ className: "text-xl font-semibold",
228
+ children: "Option B: Product / Design"
229
+ }, undefined, false, undefined, this),
230
+ /* @__PURE__ */ jsxDEV(Muted, {
231
+ children: "If this is your strength:"
232
+ }, undefined, false, undefined, this),
233
+ /* @__PURE__ */ jsxDEV("ul", {
234
+ className: "space-y-2",
235
+ children: productDeliverables.map((item) => /* @__PURE__ */ jsxDEV("li", {
236
+ className: "flex items-start gap-2",
237
+ children: [
238
+ /* @__PURE__ */ jsxDEV(Rocket, {
239
+ size: 16,
240
+ className: "mt-1 shrink-0 text-purple-400"
241
+ }, undefined, false, undefined, this),
242
+ /* @__PURE__ */ jsxDEV(Small, {
243
+ children: item
244
+ }, undefined, false, undefined, this)
245
+ ]
246
+ }, item, true, undefined, this))
247
+ }, undefined, false, undefined, this)
248
+ ]
249
+ }, undefined, true, undefined, this)
250
+ ]
251
+ }, undefined, true, undefined, this)
252
+ }, undefined, false, undefined, this);
189
253
  }
190
254
  function IdealCofounderSection() {
191
- return /* @__PURE__ */ jsx(MarketingSection, {
192
- padding: "comfortable",
193
- align: "center",
194
- maxWidth: "lg",
195
- children: /* @__PURE__ */ jsxs(VStack, {
196
- gap: "lg",
197
- children: [
198
- /* @__PURE__ */ jsx(H2, {
199
- className: "text-3xl font-bold",
200
- children: "The ideal co-founder"
201
- }),
202
- /* @__PURE__ */ jsx("ul", {
203
- className: "space-y-3",
204
- children: [
205
- "You have shipped products people paid for — links or it didn't happen",
206
- "You have sold something (product, consulting, yourself)",
207
- "You write clearly and fast — emails, docs, copy",
208
- "You have taste: you know good UX when you see it",
209
- "You can work 6+ months without a salary",
210
- "You are allergic to meetings that could be docs",
211
- "You have built in public or contributed to open source",
212
- "You are based in Europe or overlap significantly with CET"
213
- ].map((item) => /* @__PURE__ */ jsxs("li", {
214
- className: "flex items-start gap-2",
215
- children: [/* @__PURE__ */ jsx(Check, {
216
- size: 16,
217
- className: "mt-1 shrink-0 text-emerald-400"
218
- }), /* @__PURE__ */ jsx(Small, { children: item })]
219
- }, item))
220
- }),
221
- /* @__PURE__ */ jsx(Box, {
222
- className: "border-border mt-4 rounded-lg border p-4",
223
- children: /* @__PURE__ */ jsxs(VStack, {
224
- gap: "sm",
225
- align: "start",
226
- children: [/* @__PURE__ */ jsx(H3, {
227
- className: "text-lg font-semibold",
228
- children: "Proof of work examples"
229
- }), /* @__PURE__ */ jsx(Muted, {
230
- className: "text-sm",
231
- children: "GitHub profile, shipped product, writing (blog/Twitter/essays), revenue screenshot, open-source contributions, or anything that shows you execute."
232
- })]
233
- })
234
- })
235
- ]
236
- })
237
- });
255
+ const qualities = [
256
+ "You have shipped products people paid for \u2014 links or it didn't happen",
257
+ "You have sold something (product, consulting, yourself)",
258
+ "You write clearly and fast \u2014 emails, docs, copy",
259
+ "You have taste: you know good UX when you see it",
260
+ "You can work 6+ months without a salary",
261
+ "You are allergic to meetings that could be docs",
262
+ "You have built in public or contributed to open source",
263
+ "You are based in Europe or overlap significantly with CET"
264
+ ];
265
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
266
+ padding: "comfortable",
267
+ align: "center",
268
+ maxWidth: "lg",
269
+ children: /* @__PURE__ */ jsxDEV(VStack, {
270
+ gap: "lg",
271
+ children: [
272
+ /* @__PURE__ */ jsxDEV(H2, {
273
+ className: "text-3xl font-bold",
274
+ children: "The ideal co-founder"
275
+ }, undefined, false, undefined, this),
276
+ /* @__PURE__ */ jsxDEV("ul", {
277
+ className: "space-y-3",
278
+ children: qualities.map((item) => /* @__PURE__ */ jsxDEV("li", {
279
+ className: "flex items-start gap-2",
280
+ children: [
281
+ /* @__PURE__ */ jsxDEV(Check, {
282
+ size: 16,
283
+ className: "mt-1 shrink-0 text-emerald-400"
284
+ }, undefined, false, undefined, this),
285
+ /* @__PURE__ */ jsxDEV(Small, {
286
+ children: item
287
+ }, undefined, false, undefined, this)
288
+ ]
289
+ }, item, true, undefined, this))
290
+ }, undefined, false, undefined, this),
291
+ /* @__PURE__ */ jsxDEV(Box, {
292
+ className: "border-border mt-4 rounded-lg border p-4",
293
+ children: /* @__PURE__ */ jsxDEV(VStack, {
294
+ gap: "sm",
295
+ align: "start",
296
+ children: [
297
+ /* @__PURE__ */ jsxDEV(H3, {
298
+ className: "text-lg font-semibold",
299
+ children: "Proof of work examples"
300
+ }, undefined, false, undefined, this),
301
+ /* @__PURE__ */ jsxDEV(Muted, {
302
+ className: "text-sm",
303
+ children: "GitHub profile, shipped product, writing (blog/Twitter/essays), revenue screenshot, open-source contributions, or anything that shows you execute."
304
+ }, undefined, false, undefined, this)
305
+ ]
306
+ }, undefined, true, undefined, this)
307
+ }, undefined, false, undefined, this)
308
+ ]
309
+ }, undefined, true, undefined, this)
310
+ }, undefined, false, undefined, this);
238
311
  }
239
312
  function WhatYouGetSection() {
240
- return /* @__PURE__ */ jsx(MarketingSection, {
241
- padding: "comfortable",
242
- align: "center",
243
- maxWidth: "lg",
244
- children: /* @__PURE__ */ jsxs(VStack, {
245
- gap: "lg",
246
- children: [
247
- /* @__PURE__ */ jsx(H2, {
248
- className: "text-3xl font-bold",
249
- children: "What you get"
250
- }),
251
- /* @__PURE__ */ jsx("div", {
252
- className: "grid w-full gap-6 md:grid-cols-3",
253
- children: [
254
- {
255
- icon: /* @__PURE__ */ jsx(Percent, {
256
- size: 20,
257
- className: "text-emerald-400"
258
- }),
259
- title: "Equity-first",
260
- desc: "Meaningful co-founder equity. Salary is minimal/zero until revenue covers it."
261
- },
262
- {
263
- icon: /* @__PURE__ */ jsx(Users, {
264
- size: 20,
265
- className: "text-blue-400"
266
- }),
267
- title: "Real ownership",
268
- desc: "You own your domain. No permission-seeking. Ship and iterate."
269
- },
270
- {
271
- icon: /* @__PURE__ */ jsx(MessageSquare, {
272
- size: 20,
273
- className: "text-amber-400"
274
- }),
275
- title: "Written-first decisions",
276
- desc: "We default to async, docs, and fast decisions. Meetings are last resort."
277
- }
278
- ].map((b) => /* @__PURE__ */ jsxs(VStack, {
279
- gap: "sm",
280
- align: "start",
281
- className: "border-border rounded-lg border p-4",
282
- children: [
283
- b.icon,
284
- /* @__PURE__ */ jsx(H3, {
285
- className: "text-lg font-semibold",
286
- children: b.title
287
- }),
288
- /* @__PURE__ */ jsx(Muted, {
289
- className: "text-sm",
290
- children: b.desc
291
- })
292
- ]
293
- }, b.title))
294
- }),
295
- /* @__PURE__ */ jsxs(VStack, {
296
- gap: "sm",
297
- align: "start",
298
- className: "w-full pt-4",
299
- children: [/* @__PURE__ */ jsx(H3, {
300
- className: "text-lg font-semibold",
301
- children: "Our values"
302
- }), /* @__PURE__ */ jsx(HStack, {
303
- gap: "sm",
304
- wrap: "wrap",
305
- children: [
306
- "Contracts over conventions",
307
- "Clarity over cleverness",
308
- "Safety over speed (in code)",
309
- "Leverage over labor"
310
- ].map((v) => /* @__PURE__ */ jsx(Box, {
311
- className: "border-border rounded-full border px-3 py-1 text-sm",
312
- children: v
313
- }, v))
314
- })]
315
- })
316
- ]
317
- })
318
- });
313
+ const benefits = [
314
+ {
315
+ icon: /* @__PURE__ */ jsxDEV(Percent, {
316
+ size: 20,
317
+ className: "text-emerald-400"
318
+ }, undefined, false, undefined, this),
319
+ title: "Equity-first",
320
+ desc: "Meaningful co-founder equity. Salary is minimal/zero until revenue covers it."
321
+ },
322
+ {
323
+ icon: /* @__PURE__ */ jsxDEV(Users, {
324
+ size: 20,
325
+ className: "text-blue-400"
326
+ }, undefined, false, undefined, this),
327
+ title: "Real ownership",
328
+ desc: "You own your domain. No permission-seeking. Ship and iterate."
329
+ },
330
+ {
331
+ icon: /* @__PURE__ */ jsxDEV(MessageSquare, {
332
+ size: 20,
333
+ className: "text-amber-400"
334
+ }, undefined, false, undefined, this),
335
+ title: "Written-first decisions",
336
+ desc: "We default to async, docs, and fast decisions. Meetings are last resort."
337
+ }
338
+ ];
339
+ const values = [
340
+ "Contracts over conventions",
341
+ "Clarity over cleverness",
342
+ "Safety over speed (in code)",
343
+ "Leverage over labor"
344
+ ];
345
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
346
+ padding: "comfortable",
347
+ align: "center",
348
+ maxWidth: "lg",
349
+ children: /* @__PURE__ */ jsxDEV(VStack, {
350
+ gap: "lg",
351
+ children: [
352
+ /* @__PURE__ */ jsxDEV(H2, {
353
+ className: "text-3xl font-bold",
354
+ children: "What you get"
355
+ }, undefined, false, undefined, this),
356
+ /* @__PURE__ */ jsxDEV("div", {
357
+ className: "grid w-full gap-6 md:grid-cols-3",
358
+ children: benefits.map((b) => /* @__PURE__ */ jsxDEV(VStack, {
359
+ gap: "sm",
360
+ align: "start",
361
+ className: "border-border rounded-lg border p-4",
362
+ children: [
363
+ b.icon,
364
+ /* @__PURE__ */ jsxDEV(H3, {
365
+ className: "text-lg font-semibold",
366
+ children: b.title
367
+ }, undefined, false, undefined, this),
368
+ /* @__PURE__ */ jsxDEV(Muted, {
369
+ className: "text-sm",
370
+ children: b.desc
371
+ }, undefined, false, undefined, this)
372
+ ]
373
+ }, b.title, true, undefined, this))
374
+ }, undefined, false, undefined, this),
375
+ /* @__PURE__ */ jsxDEV(VStack, {
376
+ gap: "sm",
377
+ align: "start",
378
+ className: "w-full pt-4",
379
+ children: [
380
+ /* @__PURE__ */ jsxDEV(H3, {
381
+ className: "text-lg font-semibold",
382
+ children: "Our values"
383
+ }, undefined, false, undefined, this),
384
+ /* @__PURE__ */ jsxDEV(HStack, {
385
+ gap: "sm",
386
+ wrap: "wrap",
387
+ children: values.map((v) => /* @__PURE__ */ jsxDEV(Box, {
388
+ className: "border-border rounded-full border px-3 py-1 text-sm",
389
+ children: v
390
+ }, v, false, undefined, this))
391
+ }, undefined, false, undefined, this)
392
+ ]
393
+ }, undefined, true, undefined, this)
394
+ ]
395
+ }, undefined, true, undefined, this)
396
+ }, undefined, false, undefined, this);
319
397
  }
320
398
  function RedFlagsSection() {
321
- return /* @__PURE__ */ jsx(MarketingSection, {
322
- padding: "comfortable",
323
- align: "center",
324
- maxWidth: "lg",
325
- children: /* @__PURE__ */ jsxs(VStack, {
326
- gap: "lg",
327
- children: [
328
- /* @__PURE__ */ jsx(H2, {
329
- className: "text-3xl font-bold",
330
- children: "Non-negotiables / red flags"
331
- }),
332
- /* @__PURE__ */ jsx(Muted, { children: "If any of these apply, this is not the right fit:" }),
333
- /* @__PURE__ */ jsx("ul", {
334
- className: "space-y-2",
335
- children: [
336
- "Needs a big salary now",
337
- "Hates selling or talking to users",
338
- "Vague about past execution",
339
- "Wants to \"advise\" instead of build",
340
- "Needs a big team to feel productive",
341
- "Cannot write clearly"
342
- ].map((item) => /* @__PURE__ */ jsxs("li", {
343
- className: "flex items-start gap-2",
344
- children: [/* @__PURE__ */ jsx(X, {
345
- size: 16,
346
- className: "mt-1 shrink-0 text-red-400"
347
- }), /* @__PURE__ */ jsx(Small, { children: item })]
348
- }, item))
349
- })
350
- ]
351
- })
352
- });
399
+ const redFlags = [
400
+ "Needs a big salary now",
401
+ "Hates selling or talking to users",
402
+ "Vague about past execution",
403
+ 'Wants to "advise" instead of build',
404
+ "Needs a big team to feel productive",
405
+ "Cannot write clearly"
406
+ ];
407
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
408
+ padding: "comfortable",
409
+ align: "center",
410
+ maxWidth: "lg",
411
+ children: /* @__PURE__ */ jsxDEV(VStack, {
412
+ gap: "lg",
413
+ children: [
414
+ /* @__PURE__ */ jsxDEV(H2, {
415
+ className: "text-3xl font-bold",
416
+ children: "Non-negotiables / red flags"
417
+ }, undefined, false, undefined, this),
418
+ /* @__PURE__ */ jsxDEV(Muted, {
419
+ children: "If any of these apply, this is not the right fit:"
420
+ }, undefined, false, undefined, this),
421
+ /* @__PURE__ */ jsxDEV("ul", {
422
+ className: "space-y-2",
423
+ children: redFlags.map((item) => /* @__PURE__ */ jsxDEV("li", {
424
+ className: "flex items-start gap-2",
425
+ children: [
426
+ /* @__PURE__ */ jsxDEV(X, {
427
+ size: 16,
428
+ className: "mt-1 shrink-0 text-red-400"
429
+ }, undefined, false, undefined, this),
430
+ /* @__PURE__ */ jsxDEV(Small, {
431
+ children: item
432
+ }, undefined, false, undefined, this)
433
+ ]
434
+ }, item, true, undefined, this))
435
+ }, undefined, false, undefined, this)
436
+ ]
437
+ }, undefined, true, undefined, this)
438
+ }, undefined, false, undefined, this);
353
439
  }
354
440
  function FAQSection() {
355
- return /* @__PURE__ */ jsx(MarketingSection, {
356
- padding: "comfortable",
357
- align: "center",
358
- maxWidth: "lg",
359
- children: /* @__PURE__ */ jsxs(VStack, {
360
- gap: "lg",
361
- children: [/* @__PURE__ */ jsx(H2, {
362
- className: "text-3xl font-bold",
363
- children: "FAQ"
364
- }), /* @__PURE__ */ jsx(VStack, {
365
- gap: "md",
366
- className: "w-full",
367
- children: [
368
- {
369
- icon: /* @__PURE__ */ jsx(Users, { size: 18 }),
370
- q: "Why co-founder instead of hiring?",
371
- a: "I need a partner who thinks like an owner, not an employee. Someone who will stay when things get hard and share in the upside when they don't."
372
- },
373
- {
374
- icon: /* @__PURE__ */ jsx(Clock, { size: 18 }),
375
- q: "What is the timeline to revenue?",
376
- a: "Design partners are converting now. Goal: paying customers in 2025. But this is startup life — timelines are best guesses."
377
- },
378
- {
379
- icon: /* @__PURE__ */ jsx(MapPin, { size: 18 }),
380
- q: "Is this remote?",
381
- a: "Yes. Async-first. Occasional in-person (Paris-based) for planning. Europe timezone overlap strongly preferred."
382
- },
383
- {
384
- icon: /* @__PURE__ */ jsx(Percent, { size: 18 }),
385
- q: "How much equity?",
386
- a: "Depends on what you bring, when you join, and how much you can commit. Expect meaningful co-founder equity with 4-year vesting. We will discuss specifics in person."
387
- }
388
- ].map((faq) => /* @__PURE__ */ jsxs(VStack, {
389
- gap: "xs",
390
- align: "start",
391
- className: "border-border w-full rounded-lg border p-4",
392
- children: [/* @__PURE__ */ jsxs(HStack, {
393
- gap: "sm",
394
- align: "center",
395
- children: [/* @__PURE__ */ jsx("span", {
396
- className: "text-muted-foreground",
397
- children: faq.icon
398
- }), /* @__PURE__ */ jsx(H3, {
399
- className: "text-lg font-semibold",
400
- children: faq.q
401
- })]
402
- }), /* @__PURE__ */ jsx(Muted, { children: faq.a })]
403
- }, faq.q))
404
- })]
405
- })
406
- });
441
+ const faqs = [
442
+ {
443
+ icon: /* @__PURE__ */ jsxDEV(Users, {
444
+ size: 18
445
+ }, undefined, false, undefined, this),
446
+ q: "Why co-founder instead of hiring?",
447
+ a: "I need a partner who thinks like an owner, not an employee. Someone who will stay when things get hard and share in the upside when they don't."
448
+ },
449
+ {
450
+ icon: /* @__PURE__ */ jsxDEV(Clock, {
451
+ size: 18
452
+ }, undefined, false, undefined, this),
453
+ q: "What is the timeline to revenue?",
454
+ a: "Design partners are converting now. Goal: paying customers in 2025. But this is startup life \u2014 timelines are best guesses."
455
+ },
456
+ {
457
+ icon: /* @__PURE__ */ jsxDEV(MapPin, {
458
+ size: 18
459
+ }, undefined, false, undefined, this),
460
+ q: "Is this remote?",
461
+ a: "Yes. Async-first. Occasional in-person (Paris-based) for planning. Europe timezone overlap strongly preferred."
462
+ },
463
+ {
464
+ icon: /* @__PURE__ */ jsxDEV(Percent, {
465
+ size: 18
466
+ }, undefined, false, undefined, this),
467
+ q: "How much equity?",
468
+ a: "Depends on what you bring, when you join, and how much you can commit. Expect meaningful co-founder equity with 4-year vesting. We will discuss specifics in person."
469
+ }
470
+ ];
471
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
472
+ padding: "comfortable",
473
+ align: "center",
474
+ maxWidth: "lg",
475
+ children: /* @__PURE__ */ jsxDEV(VStack, {
476
+ gap: "lg",
477
+ children: [
478
+ /* @__PURE__ */ jsxDEV(H2, {
479
+ className: "text-3xl font-bold",
480
+ children: "FAQ"
481
+ }, undefined, false, undefined, this),
482
+ /* @__PURE__ */ jsxDEV(VStack, {
483
+ gap: "md",
484
+ className: "w-full",
485
+ children: faqs.map((faq) => /* @__PURE__ */ jsxDEV(VStack, {
486
+ gap: "xs",
487
+ align: "start",
488
+ className: "border-border w-full rounded-lg border p-4",
489
+ children: [
490
+ /* @__PURE__ */ jsxDEV(HStack, {
491
+ gap: "sm",
492
+ align: "center",
493
+ children: [
494
+ /* @__PURE__ */ jsxDEV("span", {
495
+ className: "text-muted-foreground",
496
+ children: faq.icon
497
+ }, undefined, false, undefined, this),
498
+ /* @__PURE__ */ jsxDEV(H3, {
499
+ className: "text-lg font-semibold",
500
+ children: faq.q
501
+ }, undefined, false, undefined, this)
502
+ ]
503
+ }, undefined, true, undefined, this),
504
+ /* @__PURE__ */ jsxDEV(Muted, {
505
+ children: faq.a
506
+ }, undefined, false, undefined, this)
507
+ ]
508
+ }, faq.q, true, undefined, this))
509
+ }, undefined, false, undefined, this)
510
+ ]
511
+ }, undefined, true, undefined, this)
512
+ }, undefined, false, undefined, this);
407
513
  }
408
514
  function FinalCtaSection() {
409
- return /* @__PURE__ */ jsx(MarketingSection, {
410
- tone: "gradient",
411
- padding: "comfortable",
412
- align: "center",
413
- maxWidth: "lg",
414
- children: /* @__PURE__ */ jsxs(VStack, {
415
- gap: "md",
416
- align: "center",
417
- className: "text-center",
418
- children: [
419
- /* @__PURE__ */ jsx(H2, {
420
- className: "text-3xl font-bold md:text-4xl",
421
- children: "Ready to talk?"
422
- }),
423
- /* @__PURE__ */ jsx(Lead, {
424
- className: "text-muted-foreground max-w-xl",
425
- children: "Send an email with: your LinkedIn, 2 proof-of-work links, why ContractSpec, and what you would own in the first 90 days."
426
- }),
427
- /* @__PURE__ */ jsxs(HStack, {
428
- gap: "md",
429
- justify: "center",
430
- wrap: "wrap",
431
- className: "pt-2",
432
- children: [/* @__PURE__ */ jsx(ButtonLink, {
433
- href: mailtoLink,
434
- children: "Talk about co-founding"
435
- }), /* @__PURE__ */ jsx(ButtonLink, {
436
- variant: "ghost",
437
- href: "/contact",
438
- children: "Become a design partner"
439
- })]
440
- }),
441
- /* @__PURE__ */ jsx(Muted, {
442
- className: "pt-4 text-sm",
443
- children: "CHAMAN VENTURES, SASU · RCS Paris · SIREN 989 498 902 · 229 rue Saint-Honoré, 75001 Paris"
444
- })
445
- ]
446
- })
447
- });
515
+ return /* @__PURE__ */ jsxDEV(MarketingSection, {
516
+ tone: "gradient",
517
+ padding: "comfortable",
518
+ align: "center",
519
+ maxWidth: "lg",
520
+ children: /* @__PURE__ */ jsxDEV(VStack, {
521
+ gap: "md",
522
+ align: "center",
523
+ className: "text-center",
524
+ children: [
525
+ /* @__PURE__ */ jsxDEV(H2, {
526
+ className: "text-3xl font-bold md:text-4xl",
527
+ children: "Ready to talk?"
528
+ }, undefined, false, undefined, this),
529
+ /* @__PURE__ */ jsxDEV(Lead, {
530
+ className: "text-muted-foreground max-w-xl",
531
+ children: "Send an email with: your LinkedIn, 2 proof-of-work links, why ContractSpec, and what you would own in the first 90 days."
532
+ }, undefined, false, undefined, this),
533
+ /* @__PURE__ */ jsxDEV(HStack, {
534
+ gap: "md",
535
+ justify: "center",
536
+ wrap: "wrap",
537
+ className: "pt-2",
538
+ children: [
539
+ /* @__PURE__ */ jsxDEV(ButtonLink, {
540
+ href: mailtoLink,
541
+ children: "Talk about co-founding"
542
+ }, undefined, false, undefined, this),
543
+ /* @__PURE__ */ jsxDEV(ButtonLink, {
544
+ variant: "ghost",
545
+ href: "/contact",
546
+ children: "Become a design partner"
547
+ }, undefined, false, undefined, this)
548
+ ]
549
+ }, undefined, true, undefined, this),
550
+ /* @__PURE__ */ jsxDEV(Muted, {
551
+ className: "pt-4 text-sm",
552
+ children: "CHAMAN VENTURES, SASU \xB7 RCS Paris \xB7 SIREN 989 498 902 \xB7 229 rue Saint-Honor\xE9, 75001 Paris"
553
+ }, undefined, false, undefined, this)
554
+ ]
555
+ }, undefined, true, undefined, this)
556
+ }, undefined, false, undefined, this);
448
557
  }
449
558
  function CofounderPage() {
450
- return /* @__PURE__ */ jsxs(VStack, {
451
- as: "main",
452
- gap: "none",
453
- children: [
454
- /* @__PURE__ */ jsx(HeroSection, {}),
455
- /* @__PURE__ */ jsx(WhatExistsSection, {}),
456
- /* @__PURE__ */ jsx(RoleSection, {}),
457
- /* @__PURE__ */ jsx(IdealCofounderSection, {}),
458
- /* @__PURE__ */ jsx(WhatYouGetSection, {}),
459
- /* @__PURE__ */ jsx(RedFlagsSection, {}),
460
- /* @__PURE__ */ jsx(FAQSection, {}),
461
- /* @__PURE__ */ jsx(FinalCtaSection, {})
462
- ]
463
- });
559
+ return /* @__PURE__ */ jsxDEV(VStack, {
560
+ as: "main",
561
+ gap: "none",
562
+ children: [
563
+ /* @__PURE__ */ jsxDEV(HeroSection, {}, undefined, false, undefined, this),
564
+ /* @__PURE__ */ jsxDEV(WhatExistsSection, {}, undefined, false, undefined, this),
565
+ /* @__PURE__ */ jsxDEV(RoleSection, {}, undefined, false, undefined, this),
566
+ /* @__PURE__ */ jsxDEV(IdealCofounderSection, {}, undefined, false, undefined, this),
567
+ /* @__PURE__ */ jsxDEV(WhatYouGetSection, {}, undefined, false, undefined, this),
568
+ /* @__PURE__ */ jsxDEV(RedFlagsSection, {}, undefined, false, undefined, this),
569
+ /* @__PURE__ */ jsxDEV(FAQSection, {}, undefined, false, undefined, this),
570
+ /* @__PURE__ */ jsxDEV(FinalCtaSection, {}, undefined, false, undefined, this)
571
+ ]
572
+ }, undefined, true, undefined, this);
464
573
  }
465
-
466
- //#endregion
467
- export { CofounderPage };
468
- //# sourceMappingURL=CofounderPage.js.map
574
+ export {
575
+ CofounderPage
576
+ };