@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.
Files changed (69) hide show
  1. package/.turbo/turbo-build.log +47 -47
  2. package/CHANGELOG.md +16 -0
  3. package/dist/components/docs/DocsIndexPage.js +3 -3
  4. package/dist/components/docs/ecosystem/TemplatesPage.js +6 -6
  5. package/dist/components/docs/ecosystem/index.js +6 -6
  6. package/dist/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  7. package/dist/components/docs/getting-started/index.js +6 -6
  8. package/dist/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  9. package/dist/components/docs/guides/GuideContractTypesPage.js +6 -6
  10. package/dist/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  11. package/dist/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  12. package/dist/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  13. package/dist/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  14. package/dist/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  15. package/dist/components/docs/guides/index.js +18 -18
  16. package/dist/components/docs/index.js +162 -470
  17. package/dist/components/docs/manifesto/ManifestoPage.js +2 -2
  18. package/dist/components/docs/shared/StudioPrompt.js +4 -4
  19. package/dist/components/docs/studio/StudioBYOKPage.js +14 -68
  20. package/dist/components/docs/studio/StudioDeploymentsPage.js +14 -89
  21. package/dist/components/docs/studio/StudioGettingStartedPage.js +14 -82
  22. package/dist/components/docs/studio/StudioIntegrationsPage.js +14 -60
  23. package/dist/components/docs/studio/StudioOverviewPage.js +62 -32
  24. package/dist/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  25. package/dist/components/docs/studio/index.js +131 -439
  26. package/dist/index.js +162 -470
  27. package/dist/node/components/docs/DocsIndexPage.js +3 -3
  28. package/dist/node/components/docs/ecosystem/TemplatesPage.js +6 -6
  29. package/dist/node/components/docs/ecosystem/index.js +6 -6
  30. package/dist/node/components/docs/getting-started/DeveloperToolsPage.js +6 -6
  31. package/dist/node/components/docs/getting-started/index.js +6 -6
  32. package/dist/node/components/docs/guides/GuideCIDiffGatingPage.js +6 -6
  33. package/dist/node/components/docs/guides/GuideContractTypesPage.js +6 -6
  34. package/dist/node/components/docs/guides/GuideDocsPipelinePage.js +6 -6
  35. package/dist/node/components/docs/guides/GuideGenerateDocsClientsSchemasPage.js +6 -6
  36. package/dist/node/components/docs/guides/GuideImportExistingCodebasesPage.js +6 -6
  37. package/dist/node/components/docs/guides/GuideNextjsOneEndpointPage.js +6 -6
  38. package/dist/node/components/docs/guides/GuideSpecValidationTypingPage.js +6 -6
  39. package/dist/node/components/docs/guides/index.js +18 -18
  40. package/dist/node/components/docs/index.js +162 -470
  41. package/dist/node/components/docs/manifesto/ManifestoPage.js +2 -2
  42. package/dist/node/components/docs/shared/StudioPrompt.js +4 -4
  43. package/dist/node/components/docs/studio/StudioBYOKPage.js +14 -68
  44. package/dist/node/components/docs/studio/StudioDeploymentsPage.js +14 -89
  45. package/dist/node/components/docs/studio/StudioGettingStartedPage.js +14 -82
  46. package/dist/node/components/docs/studio/StudioIntegrationsPage.js +14 -60
  47. package/dist/node/components/docs/studio/StudioOverviewPage.js +62 -32
  48. package/dist/node/components/docs/studio/StudioVisualBuilderPage.js +14 -109
  49. package/dist/node/components/docs/studio/index.js +131 -439
  50. package/dist/node/index.js +162 -470
  51. package/package.json +10 -10
  52. package/src/components/docs/DocsIndexPage.tsx +3 -3
  53. package/src/components/docs/ecosystem/TemplatesPage.tsx +2 -2
  54. package/src/components/docs/getting-started/DeveloperToolsPage.tsx +6 -6
  55. package/src/components/docs/guides/GuideCIDiffGatingPage.tsx +2 -2
  56. package/src/components/docs/guides/GuideContractTypesPage.tsx +2 -2
  57. package/src/components/docs/guides/GuideDocsPipelinePage.tsx +2 -2
  58. package/src/components/docs/guides/GuideGenerateDocsClientsSchemasPage.tsx +2 -2
  59. package/src/components/docs/guides/GuideImportExistingCodebasesPage.tsx +2 -2
  60. package/src/components/docs/guides/GuideNextjsOneEndpointPage.tsx +2 -2
  61. package/src/components/docs/guides/GuideSpecValidationTypingPage.tsx +2 -2
  62. package/src/components/docs/manifesto/ManifestoPage.tsx +2 -2
  63. package/src/components/docs/shared/StudioPrompt.tsx +4 -4
  64. package/src/components/docs/studio/StudioBYOKPage.tsx +9 -54
  65. package/src/components/docs/studio/StudioDeploymentsPage.tsx +9 -70
  66. package/src/components/docs/studio/StudioGettingStartedPage.tsx +9 -66
  67. package/src/components/docs/studio/StudioIntegrationsPage.tsx +9 -47
  68. package/src/components/docs/studio/StudioOverviewPage.tsx +53 -41
  69. 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 sections = [
4
+ var coreLoop = [
5
5
  {
6
- title: "1. Getting started",
7
- body: "Provision your Studio workspace, create a project, and run the first deployment.",
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: "2. Visual builder",
12
- body: "Learn the canvas controls, component palette, and spec validation workflow.",
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: "3. Deployments",
17
- body: "Switch between shared and dedicated environments, monitor health, and roll back safely.",
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: "4. BYOK security",
22
- body: "Configure your vault, rotate keys, and audit credential access.",
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: "5. Integration hub",
27
- body: "Connect third-party providers, sync data, and index knowledge sources.",
28
- href: "/docs/studio/integrations"
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-16 py-16",
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 docs"
39
+ children: "ContractSpec Studio"
41
40
  }, undefined, false, undefined, this),
42
41
  /* @__PURE__ */ jsxDEV("h1", {
43
- className: "mt-4 text-4xl font-bold",
44
- children: "Everything you need to run Studio."
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: "This short guide takes you from workspace creation to the first deployment. Every step is mobile-friendly and safe to undo."
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__ */ jsxDEV2("section", {
119
- className: "grid gap-4",
120
- children: steps.map((step) => /* @__PURE__ */ jsxDEV2("article", {
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__ */ jsxDEV2("h2", {
60
+ /* @__PURE__ */ jsxDEV("h2", {
124
61
  className: "text-xl font-semibold",
125
62
  children: step.title
126
63
  }, undefined, false, undefined, this),
127
- /* @__PURE__ */ jsxDEV2("p", {
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__ */ jsxDEV2("section", {
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__ */ jsxDEV2("h2", {
74
+ /* @__PURE__ */ jsxDEV("h2", {
138
75
  className: "text-2xl font-semibold",
139
- children: "CLI helper (optional)"
76
+ children: "Use Studio now"
140
77
  }, undefined, false, undefined, this),
141
- /* @__PURE__ */ jsxDEV2("p", {
78
+ /* @__PURE__ */ jsxDEV("p", {
142
79
  className: "text-muted-foreground text-sm",
143
- children: "Prefer automation? Use the CLI to pull specs and push overlays."
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__ */ jsxDEV2("pre", {
146
- className: "bg-muted/40 border-border overflow-auto rounded-xl border p-4 text-left font-mono text-sm",
147
- children: `# Authenticate
148
- cs login
149
-
150
- # List projects
151
- cs studio projects list
152
-
153
- # Pull specs locally
154
- cs studio specs pull <project-id>
155
-
156
- # Push after editing
157
- cs studio specs push <project-id>`
158
- }, undefined, false, undefined, this)
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 Image from "next/image";
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-12 py-12",
132
+ className: "space-y-6 py-12",
177
133
  children: [
178
- /* @__PURE__ */ jsxDEV3("header", {
179
- className: "space-y-3",
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("section", {
206
- className: "grid gap-4 md:grid-cols-2",
207
- children: [
208
- /* @__PURE__ */ jsxDEV3("article", {
209
- className: "card-subtle space-y-2 p-6",
210
- children: [
211
- /* @__PURE__ */ jsxDEV3("h2", {
212
- className: "text-2xl font-semibold",
213
- children: "Canvas controls"
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-12 py-12",
156
+ className: "space-y-6 py-12",
303
157
  children: [
304
- /* @__PURE__ */ jsxDEV4("header", {
305
- className: "space-y-3",
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("section", {
338
- className: "space-y-2",
339
- children: [
340
- /* @__PURE__ */ jsxDEV4("h2", {
341
- className: "text-2xl font-semibold",
342
- children: "Monitoring"
343
- }, undefined, false, undefined, this),
344
- /* @__PURE__ */ jsxDEV4("p", {
345
- className: "text-muted-foreground text-sm",
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-12 py-12",
180
+ className: "space-y-6 py-12",
385
181
  children: [
386
- /* @__PURE__ */ jsxDEV5("header", {
387
- className: "space-y-3",
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("section", {
428
- className: "space-y-3",
429
- children: [
430
- /* @__PURE__ */ jsxDEV5("h2", {
431
- className: "text-2xl font-semibold",
432
- children: "Health & rollback"
433
- }, undefined, false, undefined, this),
434
- /* @__PURE__ */ jsxDEV5("p", {
435
- className: "text-muted-foreground text-sm",
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-12 py-12",
204
+ className: "space-y-6 py-12",
476
205
  children: [
477
- /* @__PURE__ */ jsxDEV6("header", {
478
- className: "space-y-3",
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("section", {
511
- className: "space-y-2",
512
- children: [
513
- /* @__PURE__ */ jsxDEV6("h2", {
514
- className: "text-2xl font-semibold",
515
- children: "Audit trail"
516
- }, undefined, false, undefined, this),
517
- /* @__PURE__ */ jsxDEV6("p", {
518
- className: "text-muted-foreground text-sm",
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
  }