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