@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.
- package/.turbo/turbo-build.log +87 -87
- package/AGENTS.md +29 -21
- package/CHANGELOG.md +59 -0
- package/README.md +36 -49
- package/dist/browser/components/marketing/ChangelogPage.js +8 -8
- package/dist/browser/components/marketing/CofounderPage.js +167 -523
- package/dist/browser/components/marketing/ContactClient.js +200 -207
- package/dist/browser/components/marketing/ContributePage.js +211 -463
- package/dist/browser/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/browser/components/marketing/LandingPage.js +464 -568
- package/dist/browser/components/marketing/PricingClient.js +213 -839
- package/dist/browser/components/marketing/ProductClientPage.js +265 -463
- package/dist/browser/components/marketing/index.js +2007 -3338
- package/dist/browser/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/browser/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/browser/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/browser/components/marketing/sections/CtaSection.js +3 -3
- package/dist/browser/components/marketing/sections/FearsSection.js +3 -3
- package/dist/browser/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/browser/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/browser/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/browser/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/browser/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/browser/components/marketing/sections/StepsSection.js +4 -4
- package/dist/browser/components/marketing/studio-signup-section.js +25 -41
- package/dist/browser/components/templates/TemplatesClientPage.js +2374 -3571
- package/dist/browser/components/templates/TemplatesPage.js +1 -1
- package/dist/browser/components/templates/TemplatesPreviewModal.js +27 -3
- package/dist/browser/components/templates/index.js +2412 -3609
- package/dist/browser/index.js +2415 -3612
- package/dist/browser/libs/email/client.js +1 -1
- package/dist/browser/libs/email/contact.js +1 -1
- package/dist/browser/libs/email/newsletter.js +1 -1
- package/dist/browser/libs/email/waitlist-application.js +1 -1
- package/dist/browser/libs/email/waitlist.js +1 -1
- package/dist/browser/registry/engine.js +2003 -3334
- package/dist/browser/registry/index.js +2003 -3334
- package/dist/browser/registry/registry-docs.js +2 -2
- package/dist/browser/registry/registry-landing.js +2007 -3338
- package/dist/browser/registry/registry.js +2003 -3334
- package/dist/browser/registry/utils.js +2003 -3334
- package/dist/components/marketing/ChangelogPage.js +8 -8
- package/dist/components/marketing/CofounderPage.js +167 -523
- package/dist/components/marketing/ContactClient.js +200 -207
- package/dist/components/marketing/ContributePage.d.ts +0 -2
- package/dist/components/marketing/ContributePage.js +211 -463
- package/dist/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/components/marketing/LandingPage.js +464 -568
- package/dist/components/marketing/PricingClient.js +213 -839
- package/dist/components/marketing/ProductClientPage.js +265 -463
- package/dist/components/marketing/index.d.ts +5 -5
- package/dist/components/marketing/index.js +2007 -3338
- package/dist/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/components/marketing/sections/CtaSection.js +3 -3
- package/dist/components/marketing/sections/FearsSection.js +3 -3
- package/dist/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/components/marketing/sections/IconGridSection.d.ts +3 -3
- package/dist/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/components/marketing/sections/StepsSection.js +4 -4
- package/dist/components/marketing/studio-signup-section.js +25 -41
- package/dist/components/templates/TemplatesClientPage.js +2374 -3571
- package/dist/components/templates/TemplatesPage.js +1 -1
- package/dist/components/templates/TemplatesPreviewModal.js +27 -3
- package/dist/components/templates/index.js +2412 -3609
- package/dist/index.js +2415 -3612
- package/dist/libs/email/client.js +1 -1
- package/dist/libs/email/contact.js +1 -1
- package/dist/libs/email/newsletter.js +1 -1
- package/dist/libs/email/waitlist-application.js +1 -1
- package/dist/libs/email/waitlist.js +1 -1
- package/dist/node/components/marketing/ChangelogPage.js +8 -8
- package/dist/node/components/marketing/CofounderPage.js +167 -523
- package/dist/node/components/marketing/ContactClient.js +200 -207
- package/dist/node/components/marketing/ContributePage.js +211 -463
- package/dist/node/components/marketing/DesignPartnerPage.js +165 -218
- package/dist/node/components/marketing/LandingPage.js +464 -568
- package/dist/node/components/marketing/PricingClient.js +213 -839
- package/dist/node/components/marketing/ProductClientPage.js +265 -463
- package/dist/node/components/marketing/index.js +2007 -3338
- package/dist/node/components/marketing/pricing-thinking-modal.js +12 -12
- package/dist/node/components/marketing/sections/AudienceSection.js +2 -2
- package/dist/node/components/marketing/sections/CorePositioningSection.js +2 -2
- package/dist/node/components/marketing/sections/CtaSection.js +3 -3
- package/dist/node/components/marketing/sections/FearsSection.js +3 -3
- package/dist/node/components/marketing/sections/HeroMarketingSection.js +6 -6
- package/dist/node/components/marketing/sections/IconGridSection.js +2 -2
- package/dist/node/components/marketing/sections/OutputsSection.js +2 -2
- package/dist/node/components/marketing/sections/ProblemSection.js +2 -2
- package/dist/node/components/marketing/sections/SolutionSection.js +2 -2
- package/dist/node/components/marketing/sections/StepsSection.js +4 -4
- package/dist/node/components/marketing/studio-signup-section.js +25 -41
- package/dist/node/components/templates/TemplatesClientPage.js +2374 -3571
- package/dist/node/components/templates/TemplatesPage.js +1 -1
- package/dist/node/components/templates/TemplatesPreviewModal.js +27 -3
- package/dist/node/components/templates/index.js +2412 -3609
- package/dist/node/index.js +2415 -3612
- package/dist/node/libs/email/client.js +1 -1
- package/dist/node/libs/email/contact.js +1 -1
- package/dist/node/libs/email/newsletter.js +1 -1
- package/dist/node/libs/email/waitlist-application.js +1 -1
- package/dist/node/libs/email/waitlist.js +1 -1
- package/dist/node/registry/engine.js +2003 -3334
- package/dist/node/registry/index.js +2003 -3334
- package/dist/node/registry/registry-docs.js +2 -2
- package/dist/node/registry/registry-landing.js +2007 -3338
- package/dist/node/registry/registry.js +2003 -3334
- package/dist/node/registry/utils.js +2003 -3334
- package/dist/registry/engine.js +2003 -3334
- package/dist/registry/index.js +2003 -3334
- package/dist/registry/registry-docs.js +2 -2
- package/dist/registry/registry-landing.js +2007 -3338
- package/dist/registry/registry.js +2003 -3334
- package/dist/registry/utils.js +2003 -3334
- package/package.json +31 -29
- package/src/bundles/MarketingBundle.ts +273 -273
- package/src/components/marketing/ChangelogPage.tsx +72 -100
- package/src/components/marketing/CofounderPage.tsx +120 -384
- package/src/components/marketing/ContactClient.tsx +164 -154
- package/src/components/marketing/ContributePage.tsx +139 -313
- package/src/components/marketing/DesignPartnerPage.tsx +133 -171
- package/src/components/marketing/LandingPage.tsx +353 -25
- package/src/components/marketing/PricingClient.tsx +192 -437
- package/src/components/marketing/ProductClientPage.tsx +255 -377
- package/src/components/marketing/index.ts +5 -5
- package/src/components/marketing/pricing-thinking-modal.tsx +197 -197
- package/src/components/marketing/sections/AudienceSection.tsx +55 -56
- package/src/components/marketing/sections/CorePositioningSection.tsx +37 -37
- package/src/components/marketing/sections/CtaSection.tsx +49 -50
- package/src/components/marketing/sections/DevelopersSection.tsx +26 -27
- package/src/components/marketing/sections/FearsSection.tsx +36 -37
- package/src/components/marketing/sections/HeroMarketingSection.tsx +59 -59
- package/src/components/marketing/sections/IconGridSection.tsx +71 -71
- package/src/components/marketing/sections/OutputsSection.tsx +51 -52
- package/src/components/marketing/sections/ProblemSection.tsx +39 -40
- package/src/components/marketing/sections/SolutionSection.tsx +39 -40
- package/src/components/marketing/sections/StepsSection.tsx +47 -48
- package/src/components/marketing/studio-signup-section.tsx +39 -41
- package/src/components/templates/TemplatesClientPage.tsx +763 -685
- package/src/components/templates/TemplatesPage.tsx +110 -110
- package/src/components/templates/TemplatesPreviewModal.tsx +251 -198
- package/src/index.ts +4 -4
- package/src/libs/email/client.test.ts +81 -81
- package/src/libs/email/client.ts +111 -111
- package/src/libs/email/contact.ts +35 -35
- package/src/libs/email/newsletter.ts +46 -46
- package/src/libs/email/types.ts +29 -29
- package/src/libs/email/utils.ts +5 -5
- package/src/libs/email/waitlist-application.ts +72 -72
- package/src/libs/email/waitlist.ts +46 -46
- package/src/libs/pricing-examples.ts +12 -12
- package/src/registry/engine.ts +16 -16
- package/src/registry/factory.ts +57 -57
- package/src/registry/registry-docs.ts +656 -666
- package/src/registry/registry-landing.ts +94 -95
- package/src/registry/registry.ts +36 -37
- package/src/registry/types.ts +2 -2
- package/src/registry/utils.ts +56 -56
- package/tsconfig.json +11 -11
- package/tsdown.config.js +5 -5
|
@@ -2,481 +2,229 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
3
3
|
|
|
4
4
|
// src/components/marketing/ContributePage.tsx
|
|
5
|
+
import Link from "next/link";
|
|
5
6
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
6
|
-
var
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
title: "Contribute to ContractSpec",
|
|
11
|
-
description: "Get started contributing in under 3 minutes. Docs, examples, integrations, and more.",
|
|
12
|
-
url: "https://contractspec.io/contribute"
|
|
7
|
+
var contributionTracks = [
|
|
8
|
+
{
|
|
9
|
+
title: "Contracts and runtime behavior",
|
|
10
|
+
copy: "Improve the core system surfaces that keep APIs, UI, data, and tools aligned."
|
|
13
11
|
},
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
{
|
|
13
|
+
title: "Examples and templates",
|
|
14
|
+
copy: "Show how the open system behaves in realistic verticals and team workflows."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
title: "Docs and agent-facing guidance",
|
|
18
|
+
copy: "Tighten the human and machine-readable guides that explain how the stack actually works."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: "Integrations and ecosystem",
|
|
22
|
+
copy: "Expand the bridges that make the system usable in more real-world environments."
|
|
16
23
|
}
|
|
17
|
-
|
|
24
|
+
];
|
|
18
25
|
function ContributePage() {
|
|
19
26
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
"
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}, undefined, true, undefined, this),
|
|
111
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
112
|
-
children: [
|
|
113
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
114
|
-
children: "Faster ecosystem:"
|
|
115
|
-
}, undefined, false, undefined, this),
|
|
116
|
-
" Community contributions accelerate adoption and surface real-world edge cases"
|
|
117
|
-
]
|
|
118
|
-
}, undefined, true, undefined, this),
|
|
119
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
120
|
-
children: [
|
|
121
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
122
|
-
children: "Community review:"
|
|
123
|
-
}, undefined, false, undefined, this),
|
|
124
|
-
" More eyes catch more bugs, and better patterns emerge"
|
|
125
|
-
]
|
|
126
|
-
}, undefined, true, undefined, this),
|
|
127
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
128
|
-
children: [
|
|
129
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
130
|
-
children: "No lock-in:"
|
|
131
|
-
}, undefined, false, undefined, this),
|
|
132
|
-
" You own your code. The spec is portable."
|
|
133
|
-
]
|
|
134
|
-
}, undefined, true, undefined, this)
|
|
135
|
-
]
|
|
136
|
-
}, undefined, true, undefined, this)
|
|
137
|
-
]
|
|
138
|
-
}, undefined, true, undefined, this),
|
|
139
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
140
|
-
className: "mb-10 space-y-4",
|
|
141
|
-
children: [
|
|
142
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
143
|
-
className: "text-foreground text-2xl font-bold",
|
|
144
|
-
children: "Where to Contribute"
|
|
145
|
-
}, undefined, false, undefined, this),
|
|
146
|
-
/* @__PURE__ */ jsxDEV("ul", {
|
|
147
|
-
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
148
|
-
children: [
|
|
149
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
150
|
-
children: [
|
|
151
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
152
|
-
href: "https://github.com/contractspec",
|
|
153
|
-
className: "text-primary hover:underline",
|
|
154
|
-
target: "_blank",
|
|
155
|
-
rel: "noopener noreferrer",
|
|
156
|
-
children: "GitHub Organization"
|
|
157
|
-
}, undefined, false, undefined, this),
|
|
158
|
-
" ",
|
|
159
|
-
"— All repos live here"
|
|
160
|
-
]
|
|
161
|
-
}, undefined, true, undefined, this),
|
|
162
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
163
|
-
children: [
|
|
164
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
165
|
-
href: "https://github.com/contractspec/contractspec",
|
|
166
|
-
className: "text-primary hover:underline",
|
|
167
|
-
target: "_blank",
|
|
168
|
-
rel: "noopener noreferrer",
|
|
169
|
-
children: "Main Repository"
|
|
170
|
-
}, undefined, false, undefined, this),
|
|
171
|
-
" ",
|
|
172
|
-
"— Core compiler and specs"
|
|
173
|
-
]
|
|
174
|
-
}, undefined, true, undefined, this),
|
|
175
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
176
|
-
children: [
|
|
177
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
178
|
-
href: "https://github.com/contractspec/contractspec/discussions",
|
|
179
|
-
className: "text-primary hover:underline",
|
|
180
|
-
target: "_blank",
|
|
181
|
-
rel: "noopener noreferrer",
|
|
182
|
-
children: "Discussions"
|
|
183
|
-
}, undefined, false, undefined, this),
|
|
184
|
-
" ",
|
|
185
|
-
"— Questions, ideas, and RFCs"
|
|
186
|
-
]
|
|
187
|
-
}, undefined, true, undefined, this)
|
|
188
|
-
]
|
|
189
|
-
}, undefined, true, undefined, this)
|
|
190
|
-
]
|
|
191
|
-
}, undefined, true, undefined, this),
|
|
192
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
193
|
-
className: "mb-10 space-y-4",
|
|
194
|
-
children: [
|
|
195
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
196
|
-
className: "text-foreground text-2xl font-bold",
|
|
197
|
-
children: "Ways to Contribute"
|
|
198
|
-
}, undefined, false, undefined, this),
|
|
199
|
-
/* @__PURE__ */ jsxDEV("div", {
|
|
200
|
-
className: "text-muted-foreground space-y-3",
|
|
201
|
-
children: [
|
|
202
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
203
|
-
children: [
|
|
204
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
205
|
-
className: "text-foreground",
|
|
206
|
-
children: "\uD83D\uDCC4 Documentation:"
|
|
207
|
-
}, undefined, false, undefined, this),
|
|
208
|
-
" ",
|
|
209
|
-
"Fix typos, improve explanations, add missing guides"
|
|
210
|
-
]
|
|
211
|
-
}, undefined, true, undefined, this),
|
|
212
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
213
|
-
children: [
|
|
214
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
215
|
-
className: "text-foreground",
|
|
216
|
-
children: "\uD83D\uDCE6 Examples & Templates:"
|
|
217
|
-
}, undefined, false, undefined, this),
|
|
218
|
-
" ",
|
|
219
|
-
"Build real-world specs for common use cases"
|
|
220
|
-
]
|
|
221
|
-
}, undefined, true, undefined, this),
|
|
222
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
223
|
-
children: [
|
|
224
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
225
|
-
className: "text-foreground",
|
|
226
|
-
children: "\uD83D\uDD0C Integrations & Adapters:"
|
|
227
|
-
}, undefined, false, undefined, this),
|
|
228
|
-
" ",
|
|
229
|
-
"Connect ContractSpec to frameworks, databases, and tools"
|
|
230
|
-
]
|
|
231
|
-
}, undefined, true, undefined, this),
|
|
232
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
233
|
-
children: [
|
|
234
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
235
|
-
className: "text-foreground",
|
|
236
|
-
children: "\uD83D\uDC1B Bug Reports:"
|
|
237
|
-
}, undefined, false, undefined, this),
|
|
238
|
-
" ",
|
|
239
|
-
"File issues with clear reproduction steps — minimal cases help the most"
|
|
240
|
-
]
|
|
241
|
-
}, undefined, true, undefined, this),
|
|
242
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
243
|
-
children: [
|
|
244
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
245
|
-
className: "text-foreground",
|
|
246
|
-
children: "\uD83D\uDD12 Security Reports:"
|
|
247
|
-
}, undefined, false, undefined, this),
|
|
248
|
-
" ",
|
|
249
|
-
"Found a vulnerability? See",
|
|
250
|
-
" ",
|
|
251
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
252
|
-
href: "#security",
|
|
253
|
-
className: "text-primary hover:underline",
|
|
254
|
-
children: "Security"
|
|
255
|
-
}, undefined, false, undefined, this),
|
|
256
|
-
" ",
|
|
257
|
-
"below"
|
|
258
|
-
]
|
|
259
|
-
}, undefined, true, undefined, this)
|
|
260
|
-
]
|
|
261
|
-
}, undefined, true, undefined, this)
|
|
262
|
-
]
|
|
263
|
-
}, undefined, true, undefined, this),
|
|
264
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
265
|
-
className: "mb-10 space-y-4",
|
|
266
|
-
children: [
|
|
267
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
268
|
-
className: "text-foreground text-2xl font-bold",
|
|
269
|
-
children: "Quality Bar"
|
|
270
|
-
}, undefined, false, undefined, this),
|
|
271
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
272
|
-
className: "text-muted-foreground",
|
|
273
|
-
children: "We keep the bar high so the codebase stays maintainable. Every PR should:"
|
|
274
|
-
}, undefined, false, undefined, this),
|
|
275
|
-
/* @__PURE__ */ jsxDEV("ul", {
|
|
276
|
-
className: "text-muted-foreground list-inside list-disc space-y-2",
|
|
277
|
-
children: [
|
|
278
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
279
|
-
children: [
|
|
280
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
281
|
-
children: "Include tests"
|
|
282
|
-
}, undefined, false, undefined, this),
|
|
283
|
-
" — Unit tests for logic, integration tests for adapters"
|
|
284
|
-
]
|
|
285
|
-
}, undefined, true, undefined, this),
|
|
286
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
287
|
-
children: [
|
|
288
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
289
|
-
children: "Be fully typed"
|
|
290
|
-
}, undefined, false, undefined, this),
|
|
291
|
-
" — No ",
|
|
292
|
-
/* @__PURE__ */ jsxDEV("code", {
|
|
293
|
-
children: "any"
|
|
294
|
-
}, undefined, false, undefined, this),
|
|
295
|
-
". Strict TypeScript only."
|
|
296
|
-
]
|
|
297
|
-
}, undefined, true, undefined, this),
|
|
298
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
299
|
-
children: [
|
|
300
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
301
|
-
children: "Stay small"
|
|
302
|
-
}, undefined, false, undefined, this),
|
|
303
|
-
" — One concern per PR. Easier to review, faster to merge."
|
|
304
|
-
]
|
|
305
|
-
}, undefined, true, undefined, this),
|
|
306
|
-
/* @__PURE__ */ jsxDEV("li", {
|
|
307
|
-
children: [
|
|
308
|
-
/* @__PURE__ */ jsxDEV("strong", {
|
|
309
|
-
children: "Use clear commit messages"
|
|
310
|
-
}, undefined, false, undefined, this),
|
|
311
|
-
" — Describe _what_ and _why_, not just _how_"
|
|
312
|
-
]
|
|
313
|
-
}, undefined, true, undefined, this)
|
|
314
|
-
]
|
|
315
|
-
}, undefined, true, undefined, this),
|
|
316
|
-
/* @__PURE__ */ jsxDEV("div", {
|
|
317
|
-
className: "bg-muted/20 mt-4 rounded-md p-4",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
29
|
+
className: "section-padding hero-gradient border-border/70 border-b",
|
|
30
|
+
children: /* @__PURE__ */ jsxDEV("div", {
|
|
31
|
+
className: "editorial-shell grid gap-8 lg:grid-cols-[1.05fr_0.95fr]",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
34
|
+
className: "space-y-5",
|
|
35
|
+
children: [
|
|
36
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
37
|
+
className: "editorial-kicker",
|
|
38
|
+
children: "Open source"
|
|
39
|
+
}, undefined, false, undefined, this),
|
|
40
|
+
/* @__PURE__ */ jsxDEV("h1", {
|
|
41
|
+
className: "editorial-title max-w-4xl",
|
|
42
|
+
children: "Contribute to the open system, not a black box."
|
|
43
|
+
}, undefined, false, undefined, this),
|
|
44
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
45
|
+
className: "editorial-subtitle",
|
|
46
|
+
children: "ContractSpec should stay legible, standards-first, and useful in real workflows. Contributions matter most when they sharpen that clarity instead of adding abstraction for its own sake."
|
|
47
|
+
}, undefined, false, undefined, this)
|
|
48
|
+
]
|
|
49
|
+
}, undefined, true, undefined, this),
|
|
50
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
51
|
+
className: "editorial-panel space-y-5",
|
|
52
|
+
children: [
|
|
53
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
54
|
+
className: "editorial-kicker",
|
|
55
|
+
children: "Fastest path"
|
|
56
|
+
}, undefined, false, undefined, this),
|
|
57
|
+
/* @__PURE__ */ jsxDEV("ol", {
|
|
58
|
+
className: "space-y-4 text-muted-foreground text-sm leading-7",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
61
|
+
children: "Read the contribution guide and pick a tractable scope."
|
|
62
|
+
}, undefined, false, undefined, this),
|
|
63
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
64
|
+
children: "Open a draft PR early so maintainers can steer the work."
|
|
65
|
+
}, undefined, false, undefined, this),
|
|
66
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
67
|
+
children: "Ship one clear improvement with tests or validation evidence."
|
|
68
|
+
}, undefined, false, undefined, this)
|
|
69
|
+
]
|
|
70
|
+
}, undefined, true, undefined, this),
|
|
71
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
72
|
+
className: "flex flex-col gap-3 sm:flex-row",
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
75
|
+
href: "https://github.com/lssm-tech/contractspec/blob/main/CONTRIBUTING.md",
|
|
76
|
+
className: "btn-primary",
|
|
77
|
+
target: "_blank",
|
|
78
|
+
rel: "noopener noreferrer",
|
|
79
|
+
children: "Read CONTRIBUTING"
|
|
80
|
+
}, undefined, false, undefined, this),
|
|
81
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
82
|
+
href: "https://github.com/lssm-tech/contractspec/issues",
|
|
83
|
+
className: "btn-ghost",
|
|
84
|
+
target: "_blank",
|
|
85
|
+
rel: "noopener noreferrer",
|
|
86
|
+
children: "Open issues"
|
|
87
|
+
}, undefined, false, undefined, this)
|
|
88
|
+
]
|
|
89
|
+
}, undefined, true, undefined, this)
|
|
90
|
+
]
|
|
91
|
+
}, undefined, true, undefined, this)
|
|
92
|
+
]
|
|
93
|
+
}, undefined, true, undefined, this)
|
|
94
|
+
}, undefined, false, undefined, this),
|
|
95
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
96
|
+
className: "editorial-section",
|
|
97
|
+
children: /* @__PURE__ */ jsxDEV("div", {
|
|
98
|
+
className: "editorial-shell space-y-8",
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
101
|
+
className: "max-w-3xl space-y-4",
|
|
102
|
+
children: [
|
|
103
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
104
|
+
className: "editorial-kicker",
|
|
105
|
+
children: "Where contributions matter most"
|
|
106
|
+
}, undefined, false, undefined, this),
|
|
107
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
108
|
+
className: "font-serif text-4xl tracking-[-0.04em] md:text-5xl",
|
|
109
|
+
children: "Work on the parts that make the system clearer and safer."
|
|
110
|
+
}, undefined, false, undefined, this)
|
|
111
|
+
]
|
|
112
|
+
}, undefined, true, undefined, this),
|
|
113
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
114
|
+
className: "editorial-grid",
|
|
115
|
+
children: contributionTracks.map((track) => /* @__PURE__ */ jsxDEV("div", {
|
|
116
|
+
className: "editorial-panel",
|
|
318
117
|
children: [
|
|
319
118
|
/* @__PURE__ */ jsxDEV("h3", {
|
|
320
|
-
className: "
|
|
321
|
-
children:
|
|
119
|
+
className: "font-serif text-2xl tracking-[-0.03em]",
|
|
120
|
+
children: track.title
|
|
322
121
|
}, undefined, false, undefined, this),
|
|
323
122
|
/* @__PURE__ */ jsxDEV("p", {
|
|
324
|
-
className: "text-muted-foreground text-sm",
|
|
325
|
-
children:
|
|
123
|
+
className: "mt-3 text-muted-foreground text-sm leading-7",
|
|
124
|
+
children: track.copy
|
|
326
125
|
}, undefined, false, undefined, this)
|
|
327
126
|
]
|
|
328
|
-
},
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
children: "Code of Conduct"
|
|
429
|
-
}, undefined, false, undefined, this),
|
|
430
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
431
|
-
className: "text-muted-foreground",
|
|
432
|
-
children: [
|
|
433
|
-
"We expect all contributors to follow our",
|
|
434
|
-
" ",
|
|
435
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
436
|
-
href: "https://github.com/contractspec/contractspec/blob/main/CODE_OF_CONDUCT.md",
|
|
437
|
-
className: "text-primary hover:underline",
|
|
438
|
-
target: "_blank",
|
|
439
|
-
rel: "noopener noreferrer",
|
|
440
|
-
children: "Code of Conduct"
|
|
441
|
-
}, undefined, false, undefined, this),
|
|
442
|
-
". Be respectful, constructive, and assume good intent."
|
|
443
|
-
]
|
|
444
|
-
}, undefined, true, undefined, this)
|
|
445
|
-
]
|
|
446
|
-
}, undefined, true, undefined, this),
|
|
447
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
448
|
-
className: "border-border mt-12 space-y-4 border-t pt-8",
|
|
449
|
-
children: [
|
|
450
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
451
|
-
className: "text-foreground text-2xl font-bold",
|
|
452
|
-
children: "Want to Go Deeper?"
|
|
453
|
-
}, undefined, false, undefined, this),
|
|
454
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
455
|
-
className: "text-muted-foreground",
|
|
456
|
-
children: "If you're considering a long-term commitment to ContractSpec — reviewing PRs regularly, shaping roadmap, mentoring new contributors — we'd love to talk."
|
|
457
|
-
}, undefined, false, undefined, this),
|
|
458
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
459
|
-
className: "text-muted-foreground",
|
|
460
|
-
children: [
|
|
461
|
-
"This isn't a job offer. It's an invitation to help build something meaningful together. Reach out at",
|
|
462
|
-
" ",
|
|
463
|
-
/* @__PURE__ */ jsxDEV("a", {
|
|
464
|
-
href: "mailto:maintainers@contractspec.io",
|
|
465
|
-
className: "text-primary hover:underline",
|
|
466
|
-
children: "maintainers@contractspec.io"
|
|
467
|
-
}, undefined, false, undefined, this),
|
|
468
|
-
" ",
|
|
469
|
-
"and tell us what you'd bring to the table."
|
|
470
|
-
]
|
|
471
|
-
}, undefined, true, undefined, this)
|
|
472
|
-
]
|
|
473
|
-
}, undefined, true, undefined, this)
|
|
474
|
-
]
|
|
475
|
-
}, undefined, true, undefined, this)
|
|
476
|
-
}, undefined, false, undefined, this)
|
|
477
|
-
}, undefined, false, undefined, this);
|
|
127
|
+
}, track.title, true, undefined, this))
|
|
128
|
+
}, undefined, false, undefined, this)
|
|
129
|
+
]
|
|
130
|
+
}, undefined, true, undefined, this)
|
|
131
|
+
}, undefined, false, undefined, this),
|
|
132
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
133
|
+
className: "editorial-section bg-striped",
|
|
134
|
+
children: /* @__PURE__ */ jsxDEV("div", {
|
|
135
|
+
className: "editorial-shell grid gap-8 lg:grid-cols-2",
|
|
136
|
+
children: [
|
|
137
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
138
|
+
className: "editorial-panel",
|
|
139
|
+
children: [
|
|
140
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
141
|
+
className: "editorial-kicker",
|
|
142
|
+
children: "Quality bar"
|
|
143
|
+
}, undefined, false, undefined, this),
|
|
144
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
145
|
+
className: "font-serif text-4xl tracking-[-0.04em]",
|
|
146
|
+
children: "The contribution should make the repo easier to trust."
|
|
147
|
+
}, undefined, false, undefined, this),
|
|
148
|
+
/* @__PURE__ */ jsxDEV("ul", {
|
|
149
|
+
className: "editorial-list mt-6",
|
|
150
|
+
children: [
|
|
151
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
152
|
+
children: [
|
|
153
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
154
|
+
className: "editorial-list-marker"
|
|
155
|
+
}, undefined, false, undefined, this),
|
|
156
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
157
|
+
children: "Use strict TypeScript and keep changes explicit."
|
|
158
|
+
}, undefined, false, undefined, this)
|
|
159
|
+
]
|
|
160
|
+
}, undefined, true, undefined, this),
|
|
161
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
162
|
+
children: [
|
|
163
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
164
|
+
className: "editorial-list-marker"
|
|
165
|
+
}, undefined, false, undefined, this),
|
|
166
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
167
|
+
children: "Include tests or other concrete validation where behavior changes."
|
|
168
|
+
}, undefined, false, undefined, this)
|
|
169
|
+
]
|
|
170
|
+
}, undefined, true, undefined, this),
|
|
171
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
172
|
+
children: [
|
|
173
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
174
|
+
className: "editorial-list-marker"
|
|
175
|
+
}, undefined, false, undefined, this),
|
|
176
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
177
|
+
children: "Prefer one coherent concern per PR."
|
|
178
|
+
}, undefined, false, undefined, this)
|
|
179
|
+
]
|
|
180
|
+
}, undefined, true, undefined, this),
|
|
181
|
+
/* @__PURE__ */ jsxDEV("li", {
|
|
182
|
+
children: [
|
|
183
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
184
|
+
className: "editorial-list-marker"
|
|
185
|
+
}, undefined, false, undefined, this),
|
|
186
|
+
/* @__PURE__ */ jsxDEV("span", {
|
|
187
|
+
children: "Document the public or agent-facing impact when it exists."
|
|
188
|
+
}, undefined, false, undefined, this)
|
|
189
|
+
]
|
|
190
|
+
}, undefined, true, undefined, this)
|
|
191
|
+
]
|
|
192
|
+
}, undefined, true, undefined, this)
|
|
193
|
+
]
|
|
194
|
+
}, undefined, true, undefined, this),
|
|
195
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
196
|
+
className: "editorial-panel",
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
199
|
+
className: "editorial-kicker",
|
|
200
|
+
children: "Governance and security"
|
|
201
|
+
}, undefined, false, undefined, this),
|
|
202
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
203
|
+
className: "font-serif text-4xl tracking-[-0.04em]",
|
|
204
|
+
children: "Clarity first, private disclosure when the issue is sensitive."
|
|
205
|
+
}, undefined, false, undefined, this),
|
|
206
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
207
|
+
className: "mt-5 text-muted-foreground text-sm leading-7",
|
|
208
|
+
children: [
|
|
209
|
+
"Architecture and roadmap decisions stay founder-led for now, but the reasoning should stay inspectable in issues, PRs, and docs. If you find a security issue, do not open a public ticket. Use",
|
|
210
|
+
" ",
|
|
211
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
212
|
+
href: "mailto:security@contractspec.io",
|
|
213
|
+
className: "underline",
|
|
214
|
+
children: "security@contractspec.io"
|
|
215
|
+
}, undefined, false, undefined, this),
|
|
216
|
+
" ",
|
|
217
|
+
"instead."
|
|
218
|
+
]
|
|
219
|
+
}, undefined, true, undefined, this)
|
|
220
|
+
]
|
|
221
|
+
}, undefined, true, undefined, this)
|
|
222
|
+
]
|
|
223
|
+
}, undefined, true, undefined, this)
|
|
224
|
+
}, undefined, false, undefined, this)
|
|
225
|
+
]
|
|
226
|
+
}, undefined, true, undefined, this);
|
|
478
227
|
}
|
|
479
228
|
export {
|
|
480
|
-
metadata,
|
|
481
229
|
ContributePage
|
|
482
230
|
};
|