@contractspec/bundle.library 2.1.0 → 2.1.1
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 +47 -47
- package/CHANGELOG.md +16 -0
- package/dist/components/docs/DocsIndexPage.js +3 -3
- package/dist/components/docs/ecosystem/TemplatesPage.js +6 -6
- package/dist/components/docs/ecosystem/index.js +6 -6
- package/dist/components/docs/getting-started/DeveloperToolsPage.js +6 -6
- package/dist/components/docs/getting-started/index.js +6 -6
- package/dist/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
- package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/components/docs/guides/GuideDocsPipelinePage.js +6 -6
- package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
- package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
- package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
- package/dist/components/docs/guides/index.js +18 -18
- package/dist/components/docs/index.js +162 -470
- package/dist/components/docs/manifesto/ManifestoPage.js +2 -2
- package/dist/components/docs/shared/StudioPrompt.js +4 -4
- package/dist/components/docs/studio/StudioBYOKPage.js +14 -68
- package/dist/components/docs/studio/StudioDeploymentsPage.js +14 -89
- package/dist/components/docs/studio/StudioGettingStartedPage.js +14 -82
- package/dist/components/docs/studio/StudioIntegrationsPage.js +14 -60
- package/dist/components/docs/studio/StudioOverviewPage.js +62 -32
- package/dist/components/docs/studio/StudioVisualBuilderPage.js +14 -109
- package/dist/components/docs/studio/index.js +131 -439
- package/dist/index.js +162 -470
- package/dist/node/components/docs/DocsIndexPage.js +3 -3
- package/dist/node/components/docs/ecosystem/TemplatesPage.js +6 -6
- package/dist/node/components/docs/ecosystem/index.js +6 -6
- package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +6 -6
- package/dist/node/components/docs/getting-started/index.js +6 -6
- package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
- package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
- package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +6 -6
- package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
- package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
- package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
- package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
- package/dist/node/components/docs/guides/index.js +18 -18
- package/dist/node/components/docs/index.js +162 -470
- package/dist/node/components/docs/manifesto/ManifestoPage.js +2 -2
- package/dist/node/components/docs/shared/StudioPrompt.js +4 -4
- package/dist/node/components/docs/studio/StudioBYOKPage.js +14 -68
- package/dist/node/components/docs/studio/StudioDeploymentsPage.js +14 -89
- package/dist/node/components/docs/studio/StudioGettingStartedPage.js +14 -82
- package/dist/node/components/docs/studio/StudioIntegrationsPage.js +14 -60
- package/dist/node/components/docs/studio/StudioOverviewPage.js +62 -32
- package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +14 -109
- package/dist/node/components/docs/studio/index.js +131 -439
- package/dist/node/index.js +162 -470
- package/package.json +10 -10
- package/src/components/docs/DocsIndexPage.tsx +3 -3
- package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
- package/src/components/docs/getting-started/DeveloperToolsPage.tsx +6 -6
- package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +2 -2
- package/src/components/docs/guides/GuideContractTypesPage.tsx +2 -2
- package/src/components/docs/guides/GuideDocsPipelinePage.tsx +2 -2
- package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +2 -2
- package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +2 -2
- package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +2 -2
- package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +2 -2
- package/src/components/docs/manifesto/ManifestoPage.tsx +2 -2
- package/src/components/docs/shared/StudioPrompt.tsx +4 -4
- package/src/components/docs/studio/StudioBYOKPage.tsx +9 -54
- package/src/components/docs/studio/StudioDeploymentsPage.tsx +9 -70
- package/src/components/docs/studio/StudioGettingStartedPage.tsx +9 -66
- package/src/components/docs/studio/StudioIntegrationsPage.tsx +9 -47
- package/src/components/docs/studio/StudioOverviewPage.tsx +53 -41
- package/src/components/docs/studio/StudioVisualBuilderPage.tsx +9 -72
|
@@ -1,529 +1,221 @@
|
|
|
1
1
|
// src/components/docs/studio/StudioOverviewPage.tsx
|
|
2
2
|
import Link from "@contractspec/lib.ui-link";
|
|
3
3
|
import { jsxDEV } from "react/jsx-dev-runtime";
|
|
4
|
-
var
|
|
4
|
+
var coreLoop = [
|
|
5
5
|
{
|
|
6
|
-
title: "
|
|
7
|
-
body: "
|
|
8
|
-
href: "/docs/studio/getting-started"
|
|
6
|
+
title: "Evidence",
|
|
7
|
+
body: "Ingest product signals from meetings, support, analytics, code reviews, docs, and Slack."
|
|
9
8
|
},
|
|
10
9
|
{
|
|
11
|
-
title: "
|
|
12
|
-
body: "
|
|
13
|
-
href: "/docs/studio/visual-builder"
|
|
10
|
+
title: "Correlation",
|
|
11
|
+
body: "Cluster signals into scored patterns with hybrid heuristics plus AI signature extraction."
|
|
14
12
|
},
|
|
15
13
|
{
|
|
16
|
-
title: "
|
|
17
|
-
body: "
|
|
18
|
-
href: "/docs/studio/deployments"
|
|
14
|
+
title: "Decision",
|
|
15
|
+
body: "Create timeboxed focus zones and evidence-backed briefs with citation chains."
|
|
19
16
|
},
|
|
20
17
|
{
|
|
21
|
-
title: "
|
|
22
|
-
body: "
|
|
23
|
-
href: "/docs/studio/byok"
|
|
18
|
+
title: "Change",
|
|
19
|
+
body: "Compile patch intents into spec diffs, deterministic impact reports, and task packs."
|
|
24
20
|
},
|
|
25
21
|
{
|
|
26
|
-
title: "
|
|
27
|
-
body: "
|
|
28
|
-
|
|
22
|
+
title: "Export",
|
|
23
|
+
body: "Push deliverables to Linear, Jira, Notion, and GitHub with full decision context."
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "Check + Autopilot",
|
|
27
|
+
body: "Verify outcomes, capture learning dividends, and automate safely with policy gates."
|
|
29
28
|
}
|
|
30
29
|
];
|
|
31
30
|
function StudioOverviewPage() {
|
|
32
31
|
return /* @__PURE__ */ jsxDEV("main", {
|
|
33
|
-
className: "space-y-
|
|
32
|
+
className: "space-y-12 py-16",
|
|
34
33
|
children: [
|
|
35
34
|
/* @__PURE__ */ jsxDEV("section", {
|
|
36
|
-
className: "section-padding",
|
|
35
|
+
className: "section-padding space-y-4",
|
|
37
36
|
children: [
|
|
38
37
|
/* @__PURE__ */ jsxDEV("p", {
|
|
39
38
|
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
40
|
-
children: "Studio
|
|
39
|
+
children: "ContractSpec Studio"
|
|
41
40
|
}, undefined, false, undefined, this),
|
|
42
41
|
/* @__PURE__ */ jsxDEV("h1", {
|
|
43
|
-
className: "
|
|
44
|
-
children: "
|
|
42
|
+
className: "text-4xl font-bold md:text-5xl",
|
|
43
|
+
children: "Compiler for product truth"
|
|
45
44
|
}, undefined, false, undefined, this),
|
|
46
45
|
/* @__PURE__ */ jsxDEV("p", {
|
|
47
|
-
className: "text-muted-foreground mt-4 max-w-3xl text-lg",
|
|
48
|
-
children: "ContractSpec Studio pairs a visual builder with managed infrastructure. These guides keep teams aligned—especially when engineers and operators share the same console."
|
|
49
|
-
}, undefined, false, undefined, this)
|
|
50
|
-
]
|
|
51
|
-
}, undefined, true, undefined, this),
|
|
52
|
-
/* @__PURE__ */ jsxDEV("section", {
|
|
53
|
-
className: "section-padding grid gap-4",
|
|
54
|
-
children: sections.map((section) => /* @__PURE__ */ jsxDEV(Link, {
|
|
55
|
-
href: section.href,
|
|
56
|
-
className: "card-subtle group space-y-2 p-6 transition hover:border-violet-500/40",
|
|
57
|
-
children: [
|
|
58
|
-
/* @__PURE__ */ jsxDEV("h2", {
|
|
59
|
-
className: "text-xl font-semibold group-hover:text-violet-400",
|
|
60
|
-
children: section.title
|
|
61
|
-
}, undefined, false, undefined, this),
|
|
62
|
-
/* @__PURE__ */ jsxDEV("p", {
|
|
63
|
-
className: "text-muted-foreground text-sm",
|
|
64
|
-
children: section.body
|
|
65
|
-
}, undefined, false, undefined, this)
|
|
66
|
-
]
|
|
67
|
-
}, section.href, true, undefined, this))
|
|
68
|
-
}, undefined, false, undefined, this)
|
|
69
|
-
]
|
|
70
|
-
}, undefined, true, undefined, this);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// src/components/docs/studio/StudioGettingStartedPage.tsx
|
|
74
|
-
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
75
|
-
var steps = [
|
|
76
|
-
{
|
|
77
|
-
title: "1. Create a Studio workspace",
|
|
78
|
-
body: "Sign in, pick “Studio managed” as product, and invite teammates. We provision the workspace plus default shared environments."
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
title: "2. Add your first project",
|
|
82
|
-
body: "Click “New project”, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later."
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
title: "3. Author a spec",
|
|
86
|
-
body: "Use the Visual Builder or Spec Editor. Pick “Capability” as type and describe the operation (e.g., capture donation)."
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
title: "4. Deploy to shared infra",
|
|
90
|
-
body: "Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically."
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
title: "5. Wire integrations",
|
|
94
|
-
body: "From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers."
|
|
95
|
-
}
|
|
96
|
-
];
|
|
97
|
-
function StudioGettingStartedPage() {
|
|
98
|
-
return /* @__PURE__ */ jsxDEV2("main", {
|
|
99
|
-
className: "space-y-12 py-12",
|
|
100
|
-
children: [
|
|
101
|
-
/* @__PURE__ */ jsxDEV2("header", {
|
|
102
|
-
className: "space-y-3",
|
|
103
|
-
children: [
|
|
104
|
-
/* @__PURE__ */ jsxDEV2("p", {
|
|
105
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
106
|
-
children: "Getting started"
|
|
107
|
-
}, undefined, false, undefined, this),
|
|
108
|
-
/* @__PURE__ */ jsxDEV2("h1", {
|
|
109
|
-
className: "text-4xl font-bold",
|
|
110
|
-
children: "Launch your first Studio project"
|
|
111
|
-
}, undefined, false, undefined, this),
|
|
112
|
-
/* @__PURE__ */ jsxDEV2("p", {
|
|
113
46
|
className: "text-muted-foreground max-w-3xl text-lg",
|
|
114
|
-
children: "
|
|
47
|
+
children: "ContractSpec Studio is the AI-powered product decision engine built on top of ContractSpec. It turns product signals into spec-first deliverables through a deterministic loop:"
|
|
48
|
+
}, undefined, false, undefined, this),
|
|
49
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
50
|
+
className: "text-muted-foreground font-mono text-sm",
|
|
51
|
+
children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
|
|
115
52
|
}, undefined, false, undefined, this)
|
|
116
53
|
]
|
|
117
54
|
}, undefined, true, undefined, this),
|
|
118
|
-
/* @__PURE__ */
|
|
119
|
-
className: "grid gap-4",
|
|
120
|
-
children:
|
|
55
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
56
|
+
className: "section-padding grid gap-4 md:grid-cols-2",
|
|
57
|
+
children: coreLoop.map((step) => /* @__PURE__ */ jsxDEV("article", {
|
|
121
58
|
className: "card-subtle space-y-2 p-6",
|
|
122
59
|
children: [
|
|
123
|
-
/* @__PURE__ */
|
|
60
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
124
61
|
className: "text-xl font-semibold",
|
|
125
62
|
children: step.title
|
|
126
63
|
}, undefined, false, undefined, this),
|
|
127
|
-
/* @__PURE__ */
|
|
64
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
128
65
|
className: "text-muted-foreground text-sm",
|
|
129
66
|
children: step.body
|
|
130
67
|
}, undefined, false, undefined, this)
|
|
131
68
|
]
|
|
132
69
|
}, step.title, true, undefined, this))
|
|
133
70
|
}, undefined, false, undefined, this),
|
|
134
|
-
/* @__PURE__ */
|
|
135
|
-
className: "space-y-4",
|
|
71
|
+
/* @__PURE__ */ jsxDEV("section", {
|
|
72
|
+
className: "section-padding card-subtle space-y-4 p-6",
|
|
136
73
|
children: [
|
|
137
|
-
/* @__PURE__ */
|
|
74
|
+
/* @__PURE__ */ jsxDEV("h2", {
|
|
138
75
|
className: "text-2xl font-semibold",
|
|
139
|
-
children: "
|
|
76
|
+
children: "Use Studio now"
|
|
140
77
|
}, undefined, false, undefined, this),
|
|
141
|
-
/* @__PURE__ */
|
|
78
|
+
/* @__PURE__ */ jsxDEV("p", {
|
|
142
79
|
className: "text-muted-foreground text-sm",
|
|
143
|
-
children: "
|
|
80
|
+
children: "Studio is live and runs the same spec-first grammar as the OSS compiler. Keep your contracts, keep your code, and add a full decision-to-change workflow on top."
|
|
144
81
|
}, undefined, false, undefined, this),
|
|
145
|
-
/* @__PURE__ */
|
|
146
|
-
className: "
|
|
147
|
-
children:
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
82
|
+
/* @__PURE__ */ jsxDEV("div", {
|
|
83
|
+
className: "flex flex-wrap gap-3",
|
|
84
|
+
children: [
|
|
85
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
86
|
+
href: "https://app.contractspec.studio",
|
|
87
|
+
className: "btn-primary",
|
|
88
|
+
children: "Try Studio"
|
|
89
|
+
}, undefined, false, undefined, this),
|
|
90
|
+
/* @__PURE__ */ jsxDEV(Link, {
|
|
91
|
+
href: "https://app.contractspec.studio/docs",
|
|
92
|
+
className: "btn-ghost",
|
|
93
|
+
children: "Read Studio docs"
|
|
94
|
+
}, undefined, false, undefined, this)
|
|
95
|
+
]
|
|
96
|
+
}, undefined, true, undefined, this)
|
|
159
97
|
]
|
|
160
98
|
}, undefined, true, undefined, this)
|
|
161
99
|
]
|
|
162
100
|
}, undefined, true, undefined, this);
|
|
163
101
|
}
|
|
164
102
|
|
|
103
|
+
// src/components/docs/studio/StudioGettingStartedPage.tsx
|
|
104
|
+
import Link2 from "@contractspec/lib.ui-link";
|
|
105
|
+
import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
|
|
106
|
+
function StudioGettingStartedPage() {
|
|
107
|
+
return /* @__PURE__ */ jsxDEV2("main", {
|
|
108
|
+
className: "space-y-6 py-12",
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ jsxDEV2("h1", {
|
|
111
|
+
className: "text-3xl font-bold",
|
|
112
|
+
children: "Studio docs moved"
|
|
113
|
+
}, undefined, false, undefined, this),
|
|
114
|
+
/* @__PURE__ */ jsxDEV2("p", {
|
|
115
|
+
className: "text-muted-foreground text-sm",
|
|
116
|
+
children: "The latest getting-started guide now lives in the Studio app docs."
|
|
117
|
+
}, undefined, false, undefined, this),
|
|
118
|
+
/* @__PURE__ */ jsxDEV2(Link2, {
|
|
119
|
+
href: "https://app.contractspec.studio/docs",
|
|
120
|
+
className: "btn-primary",
|
|
121
|
+
children: "Open Studio docs"
|
|
122
|
+
}, undefined, false, undefined, this)
|
|
123
|
+
]
|
|
124
|
+
}, undefined, true, undefined, this);
|
|
125
|
+
}
|
|
126
|
+
|
|
165
127
|
// src/components/docs/studio/StudioVisualBuilderPage.tsx
|
|
166
|
-
import
|
|
128
|
+
import Link3 from "@contractspec/lib.ui-link";
|
|
167
129
|
import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
|
|
168
|
-
var tips = [
|
|
169
|
-
"Use two-finger drag on touch devices to pan the canvas.",
|
|
170
|
-
"Tap a component to open the spec sidebar and edit props.",
|
|
171
|
-
"The timeline records every change; tap a dot to roll back.",
|
|
172
|
-
"Validation runs automatically before deploy. Errors show inline."
|
|
173
|
-
];
|
|
174
130
|
function StudioVisualBuilderPage() {
|
|
175
131
|
return /* @__PURE__ */ jsxDEV3("main", {
|
|
176
|
-
className: "space-y-
|
|
132
|
+
className: "space-y-6 py-12",
|
|
177
133
|
children: [
|
|
178
|
-
/* @__PURE__ */ jsxDEV3("
|
|
179
|
-
className: "
|
|
180
|
-
children:
|
|
181
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
182
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
183
|
-
children: "Visual builder"
|
|
184
|
-
}, undefined, false, undefined, this),
|
|
185
|
-
/* @__PURE__ */ jsxDEV3("h1", {
|
|
186
|
-
className: "text-4xl font-bold",
|
|
187
|
-
children: "Canvas, palette, and spec editor"
|
|
188
|
-
}, undefined, false, undefined, this),
|
|
189
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
190
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
191
|
-
children: "Studio’s builder keeps designers, operators, and engineers in sync. Every action updates the underlying spec and can be undone."
|
|
192
|
-
}, undefined, false, undefined, this)
|
|
193
|
-
]
|
|
194
|
-
}, undefined, true, undefined, this),
|
|
195
|
-
/* @__PURE__ */ jsxDEV3("section", {
|
|
196
|
-
className: "border-border bg-card rounded-2xl border p-6",
|
|
197
|
-
children: /* @__PURE__ */ jsxDEV3(Image, {
|
|
198
|
-
src: "/assets/images/studio/visual-builder.png",
|
|
199
|
-
alt: "Studio visual builder overview",
|
|
200
|
-
width: 1024,
|
|
201
|
-
height: 576,
|
|
202
|
-
className: "border-border rounded-xl border"
|
|
203
|
-
}, undefined, false, undefined, this)
|
|
134
|
+
/* @__PURE__ */ jsxDEV3("h1", {
|
|
135
|
+
className: "text-3xl font-bold",
|
|
136
|
+
children: "Studio docs moved"
|
|
204
137
|
}, undefined, false, undefined, this),
|
|
205
|
-
/* @__PURE__ */ jsxDEV3("
|
|
206
|
-
className: "
|
|
207
|
-
children:
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
}, undefined, false, undefined, this),
|
|
215
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
216
|
-
className: "text-muted-foreground text-sm",
|
|
217
|
-
children: "Drag to pan, scroll/ pinch to zoom. The right panel shows a tree view."
|
|
218
|
-
}, undefined, false, undefined, this)
|
|
219
|
-
]
|
|
220
|
-
}, undefined, true, undefined, this),
|
|
221
|
-
/* @__PURE__ */ jsxDEV3("article", {
|
|
222
|
-
className: "card-subtle space-y-2 p-6",
|
|
223
|
-
children: [
|
|
224
|
-
/* @__PURE__ */ jsxDEV3("h2", {
|
|
225
|
-
className: "text-2xl font-semibold",
|
|
226
|
-
children: "Component palette"
|
|
227
|
-
}, undefined, false, undefined, this),
|
|
228
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
229
|
-
className: "text-muted-foreground text-sm",
|
|
230
|
-
children: "Search by intent (“capture payment”) or category. Drag components or tap to add."
|
|
231
|
-
}, undefined, false, undefined, this)
|
|
232
|
-
]
|
|
233
|
-
}, undefined, true, undefined, this),
|
|
234
|
-
/* @__PURE__ */ jsxDEV3("article", {
|
|
235
|
-
className: "card-subtle space-y-2 p-6",
|
|
236
|
-
children: [
|
|
237
|
-
/* @__PURE__ */ jsxDEV3("h2", {
|
|
238
|
-
className: "text-2xl font-semibold",
|
|
239
|
-
children: "Spec editor"
|
|
240
|
-
}, undefined, false, undefined, this),
|
|
241
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
242
|
-
className: "text-muted-foreground text-sm",
|
|
243
|
-
children: "Toggle between visual and code views. Changes stay in sync and include diff previews."
|
|
244
|
-
}, undefined, false, undefined, this)
|
|
245
|
-
]
|
|
246
|
-
}, undefined, true, undefined, this),
|
|
247
|
-
/* @__PURE__ */ jsxDEV3("article", {
|
|
248
|
-
className: "card-subtle space-y-2 p-6",
|
|
249
|
-
children: [
|
|
250
|
-
/* @__PURE__ */ jsxDEV3("h2", {
|
|
251
|
-
className: "text-2xl font-semibold",
|
|
252
|
-
children: "Deploy panel"
|
|
253
|
-
}, undefined, false, undefined, this),
|
|
254
|
-
/* @__PURE__ */ jsxDEV3("p", {
|
|
255
|
-
className: "text-muted-foreground text-sm",
|
|
256
|
-
children: "Choose environment, review validations, and deploy with one button. Rollback is one tap away."
|
|
257
|
-
}, undefined, false, undefined, this)
|
|
258
|
-
]
|
|
259
|
-
}, undefined, true, undefined, this)
|
|
260
|
-
]
|
|
261
|
-
}, undefined, true, undefined, this),
|
|
262
|
-
/* @__PURE__ */ jsxDEV3("section", {
|
|
263
|
-
className: "space-y-3",
|
|
264
|
-
children: [
|
|
265
|
-
/* @__PURE__ */ jsxDEV3("h2", {
|
|
266
|
-
className: "text-2xl font-semibold",
|
|
267
|
-
children: "Tips"
|
|
268
|
-
}, undefined, false, undefined, this),
|
|
269
|
-
/* @__PURE__ */ jsxDEV3("ul", {
|
|
270
|
-
className: "space-y-2 text-sm",
|
|
271
|
-
children: tips.map((tip) => /* @__PURE__ */ jsxDEV3("li", {
|
|
272
|
-
children: [
|
|
273
|
-
"• ",
|
|
274
|
-
tip
|
|
275
|
-
]
|
|
276
|
-
}, tip, true, undefined, this))
|
|
277
|
-
}, undefined, false, undefined, this)
|
|
278
|
-
]
|
|
279
|
-
}, undefined, true, undefined, this)
|
|
138
|
+
/* @__PURE__ */ jsxDEV3("p", {
|
|
139
|
+
className: "text-muted-foreground text-sm",
|
|
140
|
+
children: "Visual builder documentation now lives in the Studio app docs."
|
|
141
|
+
}, undefined, false, undefined, this),
|
|
142
|
+
/* @__PURE__ */ jsxDEV3(Link3, {
|
|
143
|
+
href: "https://app.contractspec.studio/docs",
|
|
144
|
+
className: "btn-primary",
|
|
145
|
+
children: "Open Studio docs"
|
|
146
|
+
}, undefined, false, undefined, this)
|
|
280
147
|
]
|
|
281
148
|
}, undefined, true, undefined, this);
|
|
282
149
|
}
|
|
283
150
|
|
|
284
151
|
// src/components/docs/studio/StudioIntegrationsPage.tsx
|
|
152
|
+
import Link4 from "@contractspec/lib.ui-link";
|
|
285
153
|
import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
|
|
286
|
-
var flow = [
|
|
287
|
-
{
|
|
288
|
-
title: "Connect a provider",
|
|
289
|
-
body: "Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately."
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
title: "Schedule syncs",
|
|
293
|
-
body: "Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp."
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
title: "Index knowledge",
|
|
297
|
-
body: "Add documentation or API specs as knowledge sources. Reindex whenever files change."
|
|
298
|
-
}
|
|
299
|
-
];
|
|
300
154
|
function StudioIntegrationsPage() {
|
|
301
155
|
return /* @__PURE__ */ jsxDEV4("main", {
|
|
302
|
-
className: "space-y-
|
|
156
|
+
className: "space-y-6 py-12",
|
|
303
157
|
children: [
|
|
304
|
-
/* @__PURE__ */ jsxDEV4("
|
|
305
|
-
className: "
|
|
306
|
-
children:
|
|
307
|
-
/* @__PURE__ */ jsxDEV4("p", {
|
|
308
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
309
|
-
children: "Integration hub"
|
|
310
|
-
}, undefined, false, undefined, this),
|
|
311
|
-
/* @__PURE__ */ jsxDEV4("h1", {
|
|
312
|
-
className: "text-4xl font-bold",
|
|
313
|
-
children: "Unified connections with BYOK"
|
|
314
|
-
}, undefined, false, undefined, this),
|
|
315
|
-
/* @__PURE__ */ jsxDEV4("p", {
|
|
316
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
317
|
-
children: "Manage SaaS providers and knowledge sources without scattering secrets across tools. Studio gives you a simple card layout plus CLI automation."
|
|
318
|
-
}, undefined, false, undefined, this)
|
|
319
|
-
]
|
|
320
|
-
}, undefined, true, undefined, this),
|
|
321
|
-
/* @__PURE__ */ jsxDEV4("section", {
|
|
322
|
-
className: "grid gap-4 md:grid-cols-3",
|
|
323
|
-
children: flow.map((step) => /* @__PURE__ */ jsxDEV4("article", {
|
|
324
|
-
className: "card-subtle space-y-2 p-6",
|
|
325
|
-
children: [
|
|
326
|
-
/* @__PURE__ */ jsxDEV4("h2", {
|
|
327
|
-
className: "text-xl font-semibold",
|
|
328
|
-
children: step.title
|
|
329
|
-
}, undefined, false, undefined, this),
|
|
330
|
-
/* @__PURE__ */ jsxDEV4("p", {
|
|
331
|
-
className: "text-muted-foreground text-sm",
|
|
332
|
-
children: step.body
|
|
333
|
-
}, undefined, false, undefined, this)
|
|
334
|
-
]
|
|
335
|
-
}, step.title, true, undefined, this))
|
|
158
|
+
/* @__PURE__ */ jsxDEV4("h1", {
|
|
159
|
+
className: "text-3xl font-bold",
|
|
160
|
+
children: "Studio docs moved"
|
|
336
161
|
}, undefined, false, undefined, this),
|
|
337
|
-
/* @__PURE__ */ jsxDEV4("
|
|
338
|
-
className: "
|
|
339
|
-
children:
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
children: "Every integration exposes sync logs and failure alerts. Use the webhook to forward sync events to Slack or PagerDuty."
|
|
347
|
-
}, undefined, false, undefined, this)
|
|
348
|
-
]
|
|
349
|
-
}, undefined, true, undefined, this)
|
|
162
|
+
/* @__PURE__ */ jsxDEV4("p", {
|
|
163
|
+
className: "text-muted-foreground text-sm",
|
|
164
|
+
children: "Integration guides now live in the Studio app docs."
|
|
165
|
+
}, undefined, false, undefined, this),
|
|
166
|
+
/* @__PURE__ */ jsxDEV4(Link4, {
|
|
167
|
+
href: "https://app.contractspec.studio/docs",
|
|
168
|
+
className: "btn-primary",
|
|
169
|
+
children: "Open Studio docs"
|
|
170
|
+
}, undefined, false, undefined, this)
|
|
350
171
|
]
|
|
351
172
|
}, undefined, true, undefined, this);
|
|
352
173
|
}
|
|
353
174
|
|
|
354
175
|
// src/components/docs/studio/StudioDeploymentsPage.tsx
|
|
176
|
+
import Link5 from "@contractspec/lib.ui-link";
|
|
355
177
|
import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
|
|
356
|
-
var comparisons = [
|
|
357
|
-
{
|
|
358
|
-
label: "Shared",
|
|
359
|
-
points: [
|
|
360
|
-
"Ready in seconds",
|
|
361
|
-
"DEV + STAGE by default",
|
|
362
|
-
"Best for prototypes",
|
|
363
|
-
"Managed SSL"
|
|
364
|
-
]
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
label: "Dedicated",
|
|
368
|
-
points: [
|
|
369
|
-
"Isolated clusters",
|
|
370
|
-
"Choose region + VPC",
|
|
371
|
-
"Rolling deploys",
|
|
372
|
-
"Custom observability sinks"
|
|
373
|
-
]
|
|
374
|
-
}
|
|
375
|
-
];
|
|
376
|
-
var checklist = [
|
|
377
|
-
"Validate specs before deploying (Studio does this automatically).",
|
|
378
|
-
"Tag deployments with a description so rituals have context.",
|
|
379
|
-
"Monitor status cards—failed deploys trigger alerts and auto rollback.",
|
|
380
|
-
"Use the CLI to export deployment manifests if you want infra-as-code."
|
|
381
|
-
];
|
|
382
178
|
function StudioDeploymentsPage() {
|
|
383
179
|
return /* @__PURE__ */ jsxDEV5("main", {
|
|
384
|
-
className: "space-y-
|
|
180
|
+
className: "space-y-6 py-12",
|
|
385
181
|
children: [
|
|
386
|
-
/* @__PURE__ */ jsxDEV5("
|
|
387
|
-
className: "
|
|
388
|
-
children:
|
|
389
|
-
/* @__PURE__ */ jsxDEV5("p", {
|
|
390
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
391
|
-
children: "Deployments"
|
|
392
|
-
}, undefined, false, undefined, this),
|
|
393
|
-
/* @__PURE__ */ jsxDEV5("h1", {
|
|
394
|
-
className: "text-4xl font-bold",
|
|
395
|
-
children: "Shared vs dedicated workflows"
|
|
396
|
-
}, undefined, false, undefined, this),
|
|
397
|
-
/* @__PURE__ */ jsxDEV5("p", {
|
|
398
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
399
|
-
children: "Studio abstracts infra, but you still stay in control. This guide explains how environments are provisioned, monitored, and rolled back."
|
|
400
|
-
}, undefined, false, undefined, this)
|
|
401
|
-
]
|
|
402
|
-
}, undefined, true, undefined, this),
|
|
403
|
-
/* @__PURE__ */ jsxDEV5("section", {
|
|
404
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
405
|
-
children: comparisons.map((option) => /* @__PURE__ */ jsxDEV5("article", {
|
|
406
|
-
className: "card-subtle space-y-2 p-6",
|
|
407
|
-
children: [
|
|
408
|
-
/* @__PURE__ */ jsxDEV5("h2", {
|
|
409
|
-
className: "text-2xl font-semibold",
|
|
410
|
-
children: [
|
|
411
|
-
option.label,
|
|
412
|
-
" deployments"
|
|
413
|
-
]
|
|
414
|
-
}, undefined, true, undefined, this),
|
|
415
|
-
/* @__PURE__ */ jsxDEV5("ul", {
|
|
416
|
-
className: "space-y-1 text-sm",
|
|
417
|
-
children: option.points.map((point) => /* @__PURE__ */ jsxDEV5("li", {
|
|
418
|
-
children: [
|
|
419
|
-
"• ",
|
|
420
|
-
point
|
|
421
|
-
]
|
|
422
|
-
}, point, true, undefined, this))
|
|
423
|
-
}, undefined, false, undefined, this)
|
|
424
|
-
]
|
|
425
|
-
}, option.label, true, undefined, this))
|
|
182
|
+
/* @__PURE__ */ jsxDEV5("h1", {
|
|
183
|
+
className: "text-3xl font-bold",
|
|
184
|
+
children: "Studio docs moved"
|
|
426
185
|
}, undefined, false, undefined, this),
|
|
427
|
-
/* @__PURE__ */ jsxDEV5("
|
|
428
|
-
className: "
|
|
429
|
-
children:
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
children: "Every deployment emits health events. If a check fails, Studio pauses traffic and offers rollback controls with diff context."
|
|
437
|
-
}, undefined, false, undefined, this),
|
|
438
|
-
/* @__PURE__ */ jsxDEV5("ul", {
|
|
439
|
-
className: "space-y-2 text-sm",
|
|
440
|
-
children: checklist.map((item) => /* @__PURE__ */ jsxDEV5("li", {
|
|
441
|
-
children: [
|
|
442
|
-
"• ",
|
|
443
|
-
item
|
|
444
|
-
]
|
|
445
|
-
}, item, true, undefined, this))
|
|
446
|
-
}, undefined, false, undefined, this)
|
|
447
|
-
]
|
|
448
|
-
}, undefined, true, undefined, this)
|
|
186
|
+
/* @__PURE__ */ jsxDEV5("p", {
|
|
187
|
+
className: "text-muted-foreground text-sm",
|
|
188
|
+
children: "Deployment guidance now lives in the Studio app docs."
|
|
189
|
+
}, undefined, false, undefined, this),
|
|
190
|
+
/* @__PURE__ */ jsxDEV5(Link5, {
|
|
191
|
+
href: "https://app.contractspec.studio/docs",
|
|
192
|
+
className: "btn-primary",
|
|
193
|
+
children: "Open Studio docs"
|
|
194
|
+
}, undefined, false, undefined, this)
|
|
449
195
|
]
|
|
450
196
|
}, undefined, true, undefined, this);
|
|
451
197
|
}
|
|
452
198
|
|
|
453
199
|
// src/components/docs/studio/StudioBYOKPage.tsx
|
|
200
|
+
import Link6 from "@contractspec/lib.ui-link";
|
|
454
201
|
import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
|
|
455
|
-
var steps2 = [
|
|
456
|
-
{
|
|
457
|
-
title: "1. Provide vault endpoint",
|
|
458
|
-
body: "Enter your Vault/HSM URL and the key identifier. Studio only stores the reference."
|
|
459
|
-
},
|
|
460
|
-
{
|
|
461
|
-
title: "2. Verify encryption",
|
|
462
|
-
body: "Studio runs a test by encrypting a dummy payload and asking you to decrypt it."
|
|
463
|
-
},
|
|
464
|
-
{
|
|
465
|
-
title: "3. Store credentials",
|
|
466
|
-
body: "When integrations are connected, secrets get encrypted client side before landing in the database."
|
|
467
|
-
},
|
|
468
|
-
{
|
|
469
|
-
title: "4. Rotate keys",
|
|
470
|
-
body: "Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one."
|
|
471
|
-
}
|
|
472
|
-
];
|
|
473
202
|
function StudioBYOKPage() {
|
|
474
203
|
return /* @__PURE__ */ jsxDEV6("main", {
|
|
475
|
-
className: "space-y-
|
|
204
|
+
className: "space-y-6 py-12",
|
|
476
205
|
children: [
|
|
477
|
-
/* @__PURE__ */ jsxDEV6("
|
|
478
|
-
className: "
|
|
479
|
-
children:
|
|
480
|
-
/* @__PURE__ */ jsxDEV6("p", {
|
|
481
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
482
|
-
children: "BYOK"
|
|
483
|
-
}, undefined, false, undefined, this),
|
|
484
|
-
/* @__PURE__ */ jsxDEV6("h1", {
|
|
485
|
-
className: "text-4xl font-bold",
|
|
486
|
-
children: "Bring your own key to Studio"
|
|
487
|
-
}, undefined, false, undefined, this),
|
|
488
|
-
/* @__PURE__ */ jsxDEV6("p", {
|
|
489
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
490
|
-
children: "Keep secrets under your control. Studio never touches plaintext credentials; everything is encrypted with tenant-specific material."
|
|
491
|
-
}, undefined, false, undefined, this)
|
|
492
|
-
]
|
|
493
|
-
}, undefined, true, undefined, this),
|
|
494
|
-
/* @__PURE__ */ jsxDEV6("section", {
|
|
495
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
496
|
-
children: steps2.map((step) => /* @__PURE__ */ jsxDEV6("article", {
|
|
497
|
-
className: "card-subtle space-y-2 p-6",
|
|
498
|
-
children: [
|
|
499
|
-
/* @__PURE__ */ jsxDEV6("h2", {
|
|
500
|
-
className: "text-xl font-semibold",
|
|
501
|
-
children: step.title
|
|
502
|
-
}, undefined, false, undefined, this),
|
|
503
|
-
/* @__PURE__ */ jsxDEV6("p", {
|
|
504
|
-
className: "text-muted-foreground text-sm",
|
|
505
|
-
children: step.body
|
|
506
|
-
}, undefined, false, undefined, this)
|
|
507
|
-
]
|
|
508
|
-
}, step.title, true, undefined, this))
|
|
206
|
+
/* @__PURE__ */ jsxDEV6("h1", {
|
|
207
|
+
className: "text-3xl font-bold",
|
|
208
|
+
children: "Studio docs moved"
|
|
509
209
|
}, undefined, false, undefined, this),
|
|
510
|
-
/* @__PURE__ */ jsxDEV6("
|
|
511
|
-
className: "
|
|
512
|
-
children:
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
children: "Every decrypt operation logs who requested it, what integration was involved, and the purpose (sync, deploy, manual action)."
|
|
520
|
-
}, undefined, false, undefined, this),
|
|
521
|
-
/* @__PURE__ */ jsxDEV6("p", {
|
|
522
|
-
className: "text-muted-foreground text-sm",
|
|
523
|
-
children: "You can stream audit logs to your SIEM via webhooks or export CSVs for compliance reviews."
|
|
524
|
-
}, undefined, false, undefined, this)
|
|
525
|
-
]
|
|
526
|
-
}, undefined, true, undefined, this)
|
|
210
|
+
/* @__PURE__ */ jsxDEV6("p", {
|
|
211
|
+
className: "text-muted-foreground text-sm",
|
|
212
|
+
children: "Security and BYOK guidance now lives in the Studio app docs."
|
|
213
|
+
}, undefined, false, undefined, this),
|
|
214
|
+
/* @__PURE__ */ jsxDEV6(Link6, {
|
|
215
|
+
href: "https://app.contractspec.studio/docs",
|
|
216
|
+
className: "btn-primary",
|
|
217
|
+
children: "Open Studio docs"
|
|
218
|
+
}, undefined, false, undefined, this)
|
|
527
219
|
]
|
|
528
220
|
}, undefined, true, undefined, this);
|
|
529
221
|
}
|