@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
|
@@ -100,7 +100,7 @@ function DocsIndexPage() {
|
|
|
100
100
|
}, undefined, true, undefined, this)
|
|
101
101
|
}, undefined, false, undefined, this),
|
|
102
102
|
/* @__PURE__ */ jsxDEV(Link, {
|
|
103
|
-
href: "/studio",
|
|
103
|
+
href: "/docs/studio",
|
|
104
104
|
className: "card-subtle group space-y-3 p-6 transition-colors hover:border-violet-500/50",
|
|
105
105
|
children: /* @__PURE__ */ jsxDEV("div", {
|
|
106
106
|
className: "flex items-start justify-between",
|
|
@@ -109,11 +109,11 @@ function DocsIndexPage() {
|
|
|
109
109
|
children: [
|
|
110
110
|
/* @__PURE__ */ jsxDEV("h3", {
|
|
111
111
|
className: "text-lg font-bold transition-colors group-hover:text-violet-400",
|
|
112
|
-
children: "Studio
|
|
112
|
+
children: "Studio"
|
|
113
113
|
}, undefined, false, undefined, this),
|
|
114
114
|
/* @__PURE__ */ jsxDEV("p", {
|
|
115
115
|
className: "text-muted-foreground mt-1 text-sm",
|
|
116
|
-
children: "
|
|
116
|
+
children: "AI-powered product decision engine for spec-first teams."
|
|
117
117
|
}, undefined, false, undefined, this)
|
|
118
118
|
]
|
|
119
119
|
}, undefined, true, undefined, this),
|
|
@@ -5306,10 +5306,10 @@ export const PrivateRegistryResolver: RegistryResolverPlugin = {
|
|
|
5306
5306
|
import Link15 from "@contractspec/lib.ui-link";
|
|
5307
5307
|
import { jsxDEV as jsxDEV22 } from "react/jsx-dev-runtime";
|
|
5308
5308
|
function StudioPrompt({
|
|
5309
|
-
title = "
|
|
5310
|
-
body = "ContractSpec Studio
|
|
5311
|
-
ctaLabel = "
|
|
5312
|
-
href = "
|
|
5309
|
+
title = "Want to turn product signals into spec-first deliverables?",
|
|
5310
|
+
body = "ContractSpec Studio ingests evidence from meetings, support, analytics, docs, and code, then compiles decisions into spec diffs and task packs.",
|
|
5311
|
+
ctaLabel = "Try Studio",
|
|
5312
|
+
href = "https://app.contractspec.studio"
|
|
5313
5313
|
}) {
|
|
5314
5314
|
return /* @__PURE__ */ jsxDEV22("div", {
|
|
5315
5315
|
className: "card-subtle space-y-3 p-6",
|
|
@@ -5419,8 +5419,8 @@ bun add @contractspec/integration.markdown-generator`
|
|
|
5419
5419
|
]
|
|
5420
5420
|
}, undefined, true, undefined, this),
|
|
5421
5421
|
/* @__PURE__ */ jsxDEV23(StudioPrompt, {
|
|
5422
|
-
title: "Need
|
|
5423
|
-
body: "Studio
|
|
5422
|
+
title: "Need evidence-backed template iteration?",
|
|
5423
|
+
body: "Studio helps teams prioritize template changes from real product signals and export implementation-ready task packs."
|
|
5424
5424
|
}, undefined, false, undefined, this),
|
|
5425
5425
|
/* @__PURE__ */ jsxDEV23("div", {
|
|
5426
5426
|
className: "flex items-center gap-4 pt-4",
|
|
@@ -6375,14 +6375,14 @@ function DeveloperToolsPage() {
|
|
|
6375
6375
|
},
|
|
6376
6376
|
{
|
|
6377
6377
|
name: "ContractSpec Studio",
|
|
6378
|
-
href: "https://
|
|
6379
|
-
description: "
|
|
6378
|
+
href: "https://app.contractspec.studio",
|
|
6379
|
+
description: "AI-powered product decision engine that turns product signals into spec-first deliverables.",
|
|
6380
6380
|
icon: Layers,
|
|
6381
|
-
status: "
|
|
6381
|
+
status: "available",
|
|
6382
6382
|
highlights: [
|
|
6383
|
-
"
|
|
6384
|
-
"
|
|
6385
|
-
"
|
|
6383
|
+
"Evidence-to-decision loop",
|
|
6384
|
+
"Compiled spec diffs and task packs",
|
|
6385
|
+
"Exports to Linear, Jira, Notion, and GitHub"
|
|
6386
6386
|
]
|
|
6387
6387
|
},
|
|
6388
6388
|
{
|
|
@@ -7954,8 +7954,8 @@ bun run validate`
|
|
|
7954
7954
|
]
|
|
7955
7955
|
}, undefined, true, undefined, this),
|
|
7956
7956
|
/* @__PURE__ */ jsxDEV34(StudioPrompt, {
|
|
7957
|
-
title: "Need
|
|
7958
|
-
body: "Studio
|
|
7957
|
+
title: "Need continuous checks tied to outcomes?",
|
|
7958
|
+
body: "Studio closes the loop with post-change verification and learning dividends that improve future decisions."
|
|
7959
7959
|
}, undefined, false, undefined, this)
|
|
7960
7960
|
]
|
|
7961
7961
|
}, undefined, true, undefined, this),
|
|
@@ -8661,8 +8661,8 @@ capabilityRegistry.register(UserManagementCapability);`
|
|
|
8661
8661
|
]
|
|
8662
8662
|
}, undefined, true, undefined, this),
|
|
8663
8663
|
/* @__PURE__ */ jsxDEV35(StudioPrompt, {
|
|
8664
|
-
title: "
|
|
8665
|
-
body: "Studio
|
|
8664
|
+
title: "Need to decide which contract should change next?",
|
|
8665
|
+
body: "Studio uses evidence and focus constraints to generate decision briefs, patch intents, and execution-ready task packs."
|
|
8666
8666
|
}, undefined, false, undefined, this)
|
|
8667
8667
|
]
|
|
8668
8668
|
}, undefined, true, undefined, this),
|
|
@@ -8855,8 +8855,8 @@ export default async function Page({ params }: { params: { slug?: string[] } })
|
|
|
8855
8855
|
]
|
|
8856
8856
|
}, undefined, true, undefined, this),
|
|
8857
8857
|
/* @__PURE__ */ jsxDEV36(StudioPrompt, {
|
|
8858
|
-
title: "Need
|
|
8859
|
-
body: "Studio
|
|
8858
|
+
title: "Need decision-to-export automation?",
|
|
8859
|
+
body: "Studio exports evidence-backed spec changes and task packs to Linear, Jira, Notion, and GitHub."
|
|
8860
8860
|
}, undefined, false, undefined, this)
|
|
8861
8861
|
]
|
|
8862
8862
|
}, undefined, true, undefined, this),
|
|
@@ -9035,8 +9035,8 @@ contractspec openapi export --registry ./src/contracts/registry.ts --out ./gener
|
|
|
9035
9035
|
]
|
|
9036
9036
|
}, undefined, true, undefined, this),
|
|
9037
9037
|
/* @__PURE__ */ jsxDEV37(StudioPrompt, {
|
|
9038
|
-
title: "Want
|
|
9039
|
-
body: "Studio
|
|
9038
|
+
title: "Want exports tied to product decisions?",
|
|
9039
|
+
body: "Studio compiles approved changes into deliverables and pushes them to your execution stack with full evidence context."
|
|
9040
9040
|
}, undefined, false, undefined, this)
|
|
9041
9041
|
]
|
|
9042
9042
|
}, undefined, true, undefined, this),
|
|
@@ -9882,8 +9882,8 @@ installOp(registry, CreateUserCommand, async (input) => {
|
|
|
9882
9882
|
]
|
|
9883
9883
|
}, undefined, true, undefined, this),
|
|
9884
9884
|
/* @__PURE__ */ jsxDEV38(StudioPrompt, {
|
|
9885
|
-
title: "Want
|
|
9886
|
-
body: "Studio
|
|
9885
|
+
title: "Want evidence-driven migration priorities?",
|
|
9886
|
+
body: "Studio clusters product signals into scored patterns, then proposes spec-first change cards for the highest-impact areas."
|
|
9887
9887
|
}, undefined, false, undefined, this)
|
|
9888
9888
|
]
|
|
9889
9889
|
}, undefined, true, undefined, this),
|
|
@@ -10169,8 +10169,8 @@ contractspec examples validate --repo-root .`
|
|
|
10169
10169
|
]
|
|
10170
10170
|
}, undefined, true, undefined, this),
|
|
10171
10171
|
/* @__PURE__ */ jsxDEV39(StudioPrompt, {
|
|
10172
|
-
title: "
|
|
10173
|
-
body: "Studio
|
|
10172
|
+
title: "Want real product evidence behind endpoint changes?",
|
|
10173
|
+
body: "Studio correlates meetings, support, analytics, and code signals before compiling endpoint decisions into spec diffs."
|
|
10174
10174
|
}, undefined, false, undefined, this)
|
|
10175
10175
|
]
|
|
10176
10176
|
}, undefined, true, undefined, this),
|
|
@@ -10393,8 +10393,8 @@ bun run validate`
|
|
|
10393
10393
|
]
|
|
10394
10394
|
}, undefined, true, undefined, this),
|
|
10395
10395
|
/* @__PURE__ */ jsxDEV40(StudioPrompt, {
|
|
10396
|
-
title: "Need
|
|
10397
|
-
body: "Studio
|
|
10396
|
+
title: "Need validation tied to real outcomes?",
|
|
10397
|
+
body: "Studio links checks to evidence, focus decisions, and post-release verification so specs evolve with product truth."
|
|
10398
10398
|
}, undefined, false, undefined, this)
|
|
10399
10399
|
]
|
|
10400
10400
|
}, undefined, true, undefined, this),
|
|
@@ -27521,9 +27521,9 @@ function ManifestoPage() {
|
|
|
27521
27521
|
children: "Install OSS Core"
|
|
27522
27522
|
}, undefined, false, undefined, this),
|
|
27523
27523
|
/* @__PURE__ */ jsxDEV114("a", {
|
|
27524
|
-
href: "
|
|
27524
|
+
href: "https://app.contractspec.studio",
|
|
27525
27525
|
className: "btn-ghost",
|
|
27526
|
-
children: "
|
|
27526
|
+
children: "Try Studio"
|
|
27527
27527
|
}, undefined, false, undefined, this)
|
|
27528
27528
|
]
|
|
27529
27529
|
}, undefined, true, undefined, this)
|
|
@@ -27536,529 +27536,221 @@ function ManifestoPage() {
|
|
|
27536
27536
|
// src/components/docs/studio/StudioOverviewPage.tsx
|
|
27537
27537
|
import Link96 from "@contractspec/lib.ui-link";
|
|
27538
27538
|
import { jsxDEV as jsxDEV115 } from "react/jsx-dev-runtime";
|
|
27539
|
-
var
|
|
27539
|
+
var coreLoop = [
|
|
27540
|
+
{
|
|
27541
|
+
title: "Evidence",
|
|
27542
|
+
body: "Ingest product signals from meetings, support, analytics, code reviews, docs, and Slack."
|
|
27543
|
+
},
|
|
27540
27544
|
{
|
|
27541
|
-
title: "
|
|
27542
|
-
body: "
|
|
27543
|
-
href: "/docs/studio/getting-started"
|
|
27545
|
+
title: "Correlation",
|
|
27546
|
+
body: "Cluster signals into scored patterns with hybrid heuristics plus AI signature extraction."
|
|
27544
27547
|
},
|
|
27545
27548
|
{
|
|
27546
|
-
title: "
|
|
27547
|
-
body: "
|
|
27548
|
-
href: "/docs/studio/visual-builder"
|
|
27549
|
+
title: "Decision",
|
|
27550
|
+
body: "Create timeboxed focus zones and evidence-backed briefs with citation chains."
|
|
27549
27551
|
},
|
|
27550
27552
|
{
|
|
27551
|
-
title: "
|
|
27552
|
-
body: "
|
|
27553
|
-
href: "/docs/studio/deployments"
|
|
27553
|
+
title: "Change",
|
|
27554
|
+
body: "Compile patch intents into spec diffs, deterministic impact reports, and task packs."
|
|
27554
27555
|
},
|
|
27555
27556
|
{
|
|
27556
|
-
title: "
|
|
27557
|
-
body: "
|
|
27558
|
-
href: "/docs/studio/byok"
|
|
27557
|
+
title: "Export",
|
|
27558
|
+
body: "Push deliverables to Linear, Jira, Notion, and GitHub with full decision context."
|
|
27559
27559
|
},
|
|
27560
27560
|
{
|
|
27561
|
-
title: "
|
|
27562
|
-
body: "
|
|
27563
|
-
href: "/docs/studio/integrations"
|
|
27561
|
+
title: "Check + Autopilot",
|
|
27562
|
+
body: "Verify outcomes, capture learning dividends, and automate safely with policy gates."
|
|
27564
27563
|
}
|
|
27565
27564
|
];
|
|
27566
27565
|
function StudioOverviewPage() {
|
|
27567
27566
|
return /* @__PURE__ */ jsxDEV115("main", {
|
|
27568
|
-
className: "space-y-
|
|
27567
|
+
className: "space-y-12 py-16",
|
|
27569
27568
|
children: [
|
|
27570
27569
|
/* @__PURE__ */ jsxDEV115("section", {
|
|
27571
|
-
className: "section-padding",
|
|
27570
|
+
className: "section-padding space-y-4",
|
|
27572
27571
|
children: [
|
|
27573
27572
|
/* @__PURE__ */ jsxDEV115("p", {
|
|
27574
27573
|
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
27575
|
-
children: "Studio
|
|
27574
|
+
children: "ContractSpec Studio"
|
|
27576
27575
|
}, undefined, false, undefined, this),
|
|
27577
27576
|
/* @__PURE__ */ jsxDEV115("h1", {
|
|
27578
|
-
className: "
|
|
27579
|
-
children: "
|
|
27577
|
+
className: "text-4xl font-bold md:text-5xl",
|
|
27578
|
+
children: "Compiler for product truth"
|
|
27580
27579
|
}, undefined, false, undefined, this),
|
|
27581
27580
|
/* @__PURE__ */ jsxDEV115("p", {
|
|
27582
|
-
className: "text-muted-foreground mt-4 max-w-3xl text-lg",
|
|
27583
|
-
children: "ContractSpec Studio pairs a visual builder with managed infrastructure. These guides keep teams aligned\u2014especially when engineers and operators share the same console."
|
|
27584
|
-
}, undefined, false, undefined, this)
|
|
27585
|
-
]
|
|
27586
|
-
}, undefined, true, undefined, this),
|
|
27587
|
-
/* @__PURE__ */ jsxDEV115("section", {
|
|
27588
|
-
className: "section-padding grid gap-4",
|
|
27589
|
-
children: sections.map((section) => /* @__PURE__ */ jsxDEV115(Link96, {
|
|
27590
|
-
href: section.href,
|
|
27591
|
-
className: "card-subtle group space-y-2 p-6 transition hover:border-violet-500/40",
|
|
27592
|
-
children: [
|
|
27593
|
-
/* @__PURE__ */ jsxDEV115("h2", {
|
|
27594
|
-
className: "text-xl font-semibold group-hover:text-violet-400",
|
|
27595
|
-
children: section.title
|
|
27596
|
-
}, undefined, false, undefined, this),
|
|
27597
|
-
/* @__PURE__ */ jsxDEV115("p", {
|
|
27598
|
-
className: "text-muted-foreground text-sm",
|
|
27599
|
-
children: section.body
|
|
27600
|
-
}, undefined, false, undefined, this)
|
|
27601
|
-
]
|
|
27602
|
-
}, section.href, true, undefined, this))
|
|
27603
|
-
}, undefined, false, undefined, this)
|
|
27604
|
-
]
|
|
27605
|
-
}, undefined, true, undefined, this);
|
|
27606
|
-
}
|
|
27607
|
-
|
|
27608
|
-
// src/components/docs/studio/StudioGettingStartedPage.tsx
|
|
27609
|
-
import { jsxDEV as jsxDEV116 } from "react/jsx-dev-runtime";
|
|
27610
|
-
var steps = [
|
|
27611
|
-
{
|
|
27612
|
-
title: "1. Create a Studio workspace",
|
|
27613
|
-
body: "Sign in, pick \u201CStudio managed\u201D as product, and invite teammates. We provision the workspace plus default shared environments."
|
|
27614
|
-
},
|
|
27615
|
-
{
|
|
27616
|
-
title: "2. Add your first project",
|
|
27617
|
-
body: "Click \u201CNew project\u201D, choose Starter tier, and keep BYOK disabled for the trial. You can upgrade later."
|
|
27618
|
-
},
|
|
27619
|
-
{
|
|
27620
|
-
title: "3. Author a spec",
|
|
27621
|
-
body: "Use the Visual Builder or Spec Editor. Pick \u201CCapability\u201D as type and describe the operation (e.g., capture donation)."
|
|
27622
|
-
},
|
|
27623
|
-
{
|
|
27624
|
-
title: "4. Deploy to shared infra",
|
|
27625
|
-
body: "Open the deployment panel, select Development, and hit Deploy. Studio provisions the runtime slice automatically."
|
|
27626
|
-
},
|
|
27627
|
-
{
|
|
27628
|
-
title: "5. Wire integrations",
|
|
27629
|
-
body: "From Integration Hub, connect one provider (e.g., PostHog). Starter plan supports two providers."
|
|
27630
|
-
}
|
|
27631
|
-
];
|
|
27632
|
-
function StudioGettingStartedPage() {
|
|
27633
|
-
return /* @__PURE__ */ jsxDEV116("main", {
|
|
27634
|
-
className: "space-y-12 py-12",
|
|
27635
|
-
children: [
|
|
27636
|
-
/* @__PURE__ */ jsxDEV116("header", {
|
|
27637
|
-
className: "space-y-3",
|
|
27638
|
-
children: [
|
|
27639
|
-
/* @__PURE__ */ jsxDEV116("p", {
|
|
27640
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
27641
|
-
children: "Getting started"
|
|
27642
|
-
}, undefined, false, undefined, this),
|
|
27643
|
-
/* @__PURE__ */ jsxDEV116("h1", {
|
|
27644
|
-
className: "text-4xl font-bold",
|
|
27645
|
-
children: "Launch your first Studio project"
|
|
27646
|
-
}, undefined, false, undefined, this),
|
|
27647
|
-
/* @__PURE__ */ jsxDEV116("p", {
|
|
27648
27581
|
className: "text-muted-foreground max-w-3xl text-lg",
|
|
27649
|
-
children: "
|
|
27582
|
+
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:"
|
|
27583
|
+
}, undefined, false, undefined, this),
|
|
27584
|
+
/* @__PURE__ */ jsxDEV115("p", {
|
|
27585
|
+
className: "text-muted-foreground font-mono text-sm",
|
|
27586
|
+
children: "Evidence -> Correlation -> Decision -> Change -> Export -> Check -> Notify -> Autopilot"
|
|
27650
27587
|
}, undefined, false, undefined, this)
|
|
27651
27588
|
]
|
|
27652
27589
|
}, undefined, true, undefined, this),
|
|
27653
|
-
/* @__PURE__ */
|
|
27654
|
-
className: "grid gap-4",
|
|
27655
|
-
children:
|
|
27590
|
+
/* @__PURE__ */ jsxDEV115("section", {
|
|
27591
|
+
className: "section-padding grid gap-4 md:grid-cols-2",
|
|
27592
|
+
children: coreLoop.map((step) => /* @__PURE__ */ jsxDEV115("article", {
|
|
27656
27593
|
className: "card-subtle space-y-2 p-6",
|
|
27657
27594
|
children: [
|
|
27658
|
-
/* @__PURE__ */
|
|
27595
|
+
/* @__PURE__ */ jsxDEV115("h2", {
|
|
27659
27596
|
className: "text-xl font-semibold",
|
|
27660
27597
|
children: step.title
|
|
27661
27598
|
}, undefined, false, undefined, this),
|
|
27662
|
-
/* @__PURE__ */
|
|
27599
|
+
/* @__PURE__ */ jsxDEV115("p", {
|
|
27663
27600
|
className: "text-muted-foreground text-sm",
|
|
27664
27601
|
children: step.body
|
|
27665
27602
|
}, undefined, false, undefined, this)
|
|
27666
27603
|
]
|
|
27667
27604
|
}, step.title, true, undefined, this))
|
|
27668
27605
|
}, undefined, false, undefined, this),
|
|
27669
|
-
/* @__PURE__ */
|
|
27670
|
-
className: "space-y-4",
|
|
27606
|
+
/* @__PURE__ */ jsxDEV115("section", {
|
|
27607
|
+
className: "section-padding card-subtle space-y-4 p-6",
|
|
27671
27608
|
children: [
|
|
27672
|
-
/* @__PURE__ */
|
|
27609
|
+
/* @__PURE__ */ jsxDEV115("h2", {
|
|
27673
27610
|
className: "text-2xl font-semibold",
|
|
27674
|
-
children: "
|
|
27611
|
+
children: "Use Studio now"
|
|
27675
27612
|
}, undefined, false, undefined, this),
|
|
27676
|
-
/* @__PURE__ */
|
|
27613
|
+
/* @__PURE__ */ jsxDEV115("p", {
|
|
27677
27614
|
className: "text-muted-foreground text-sm",
|
|
27678
|
-
children: "
|
|
27615
|
+
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."
|
|
27679
27616
|
}, undefined, false, undefined, this),
|
|
27680
|
-
/* @__PURE__ */
|
|
27681
|
-
className: "
|
|
27682
|
-
children:
|
|
27683
|
-
|
|
27684
|
-
|
|
27685
|
-
|
|
27686
|
-
|
|
27687
|
-
|
|
27688
|
-
|
|
27689
|
-
|
|
27690
|
-
|
|
27691
|
-
|
|
27692
|
-
|
|
27693
|
-
|
|
27617
|
+
/* @__PURE__ */ jsxDEV115("div", {
|
|
27618
|
+
className: "flex flex-wrap gap-3",
|
|
27619
|
+
children: [
|
|
27620
|
+
/* @__PURE__ */ jsxDEV115(Link96, {
|
|
27621
|
+
href: "https://app.contractspec.studio",
|
|
27622
|
+
className: "btn-primary",
|
|
27623
|
+
children: "Try Studio"
|
|
27624
|
+
}, undefined, false, undefined, this),
|
|
27625
|
+
/* @__PURE__ */ jsxDEV115(Link96, {
|
|
27626
|
+
href: "https://app.contractspec.studio/docs",
|
|
27627
|
+
className: "btn-ghost",
|
|
27628
|
+
children: "Read Studio docs"
|
|
27629
|
+
}, undefined, false, undefined, this)
|
|
27630
|
+
]
|
|
27631
|
+
}, undefined, true, undefined, this)
|
|
27694
27632
|
]
|
|
27695
27633
|
}, undefined, true, undefined, this)
|
|
27696
27634
|
]
|
|
27697
27635
|
}, undefined, true, undefined, this);
|
|
27698
27636
|
}
|
|
27699
27637
|
|
|
27638
|
+
// src/components/docs/studio/StudioGettingStartedPage.tsx
|
|
27639
|
+
import Link97 from "@contractspec/lib.ui-link";
|
|
27640
|
+
import { jsxDEV as jsxDEV116 } from "react/jsx-dev-runtime";
|
|
27641
|
+
function StudioGettingStartedPage() {
|
|
27642
|
+
return /* @__PURE__ */ jsxDEV116("main", {
|
|
27643
|
+
className: "space-y-6 py-12",
|
|
27644
|
+
children: [
|
|
27645
|
+
/* @__PURE__ */ jsxDEV116("h1", {
|
|
27646
|
+
className: "text-3xl font-bold",
|
|
27647
|
+
children: "Studio docs moved"
|
|
27648
|
+
}, undefined, false, undefined, this),
|
|
27649
|
+
/* @__PURE__ */ jsxDEV116("p", {
|
|
27650
|
+
className: "text-muted-foreground text-sm",
|
|
27651
|
+
children: "The latest getting-started guide now lives in the Studio app docs."
|
|
27652
|
+
}, undefined, false, undefined, this),
|
|
27653
|
+
/* @__PURE__ */ jsxDEV116(Link97, {
|
|
27654
|
+
href: "https://app.contractspec.studio/docs",
|
|
27655
|
+
className: "btn-primary",
|
|
27656
|
+
children: "Open Studio docs"
|
|
27657
|
+
}, undefined, false, undefined, this)
|
|
27658
|
+
]
|
|
27659
|
+
}, undefined, true, undefined, this);
|
|
27660
|
+
}
|
|
27661
|
+
|
|
27700
27662
|
// src/components/docs/studio/StudioVisualBuilderPage.tsx
|
|
27701
|
-
import
|
|
27663
|
+
import Link98 from "@contractspec/lib.ui-link";
|
|
27702
27664
|
import { jsxDEV as jsxDEV117 } from "react/jsx-dev-runtime";
|
|
27703
|
-
var tips = [
|
|
27704
|
-
"Use two-finger drag on touch devices to pan the canvas.",
|
|
27705
|
-
"Tap a component to open the spec sidebar and edit props.",
|
|
27706
|
-
"The timeline records every change; tap a dot to roll back.",
|
|
27707
|
-
"Validation runs automatically before deploy. Errors show inline."
|
|
27708
|
-
];
|
|
27709
27665
|
function StudioVisualBuilderPage() {
|
|
27710
27666
|
return /* @__PURE__ */ jsxDEV117("main", {
|
|
27711
|
-
className: "space-y-
|
|
27667
|
+
className: "space-y-6 py-12",
|
|
27712
27668
|
children: [
|
|
27713
|
-
/* @__PURE__ */ jsxDEV117("
|
|
27714
|
-
className: "
|
|
27715
|
-
children:
|
|
27716
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27717
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
27718
|
-
children: "Visual builder"
|
|
27719
|
-
}, undefined, false, undefined, this),
|
|
27720
|
-
/* @__PURE__ */ jsxDEV117("h1", {
|
|
27721
|
-
className: "text-4xl font-bold",
|
|
27722
|
-
children: "Canvas, palette, and spec editor"
|
|
27723
|
-
}, undefined, false, undefined, this),
|
|
27724
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27725
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
27726
|
-
children: "Studio\u2019s builder keeps designers, operators, and engineers in sync. Every action updates the underlying spec and can be undone."
|
|
27727
|
-
}, undefined, false, undefined, this)
|
|
27728
|
-
]
|
|
27729
|
-
}, undefined, true, undefined, this),
|
|
27730
|
-
/* @__PURE__ */ jsxDEV117("section", {
|
|
27731
|
-
className: "border-border bg-card rounded-2xl border p-6",
|
|
27732
|
-
children: /* @__PURE__ */ jsxDEV117(Image, {
|
|
27733
|
-
src: "/assets/images/studio/visual-builder.png",
|
|
27734
|
-
alt: "Studio visual builder overview",
|
|
27735
|
-
width: 1024,
|
|
27736
|
-
height: 576,
|
|
27737
|
-
className: "border-border rounded-xl border"
|
|
27738
|
-
}, undefined, false, undefined, this)
|
|
27669
|
+
/* @__PURE__ */ jsxDEV117("h1", {
|
|
27670
|
+
className: "text-3xl font-bold",
|
|
27671
|
+
children: "Studio docs moved"
|
|
27739
27672
|
}, undefined, false, undefined, this),
|
|
27740
|
-
/* @__PURE__ */ jsxDEV117("
|
|
27741
|
-
className: "
|
|
27742
|
-
children:
|
|
27743
|
-
|
|
27744
|
-
|
|
27745
|
-
|
|
27746
|
-
|
|
27747
|
-
|
|
27748
|
-
|
|
27749
|
-
}, undefined, false, undefined, this),
|
|
27750
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27751
|
-
className: "text-muted-foreground text-sm",
|
|
27752
|
-
children: "Drag to pan, scroll/ pinch to zoom. The right panel shows a tree view."
|
|
27753
|
-
}, undefined, false, undefined, this)
|
|
27754
|
-
]
|
|
27755
|
-
}, undefined, true, undefined, this),
|
|
27756
|
-
/* @__PURE__ */ jsxDEV117("article", {
|
|
27757
|
-
className: "card-subtle space-y-2 p-6",
|
|
27758
|
-
children: [
|
|
27759
|
-
/* @__PURE__ */ jsxDEV117("h2", {
|
|
27760
|
-
className: "text-2xl font-semibold",
|
|
27761
|
-
children: "Component palette"
|
|
27762
|
-
}, undefined, false, undefined, this),
|
|
27763
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27764
|
-
className: "text-muted-foreground text-sm",
|
|
27765
|
-
children: "Search by intent (\u201Ccapture payment\u201D) or category. Drag components or tap to add."
|
|
27766
|
-
}, undefined, false, undefined, this)
|
|
27767
|
-
]
|
|
27768
|
-
}, undefined, true, undefined, this),
|
|
27769
|
-
/* @__PURE__ */ jsxDEV117("article", {
|
|
27770
|
-
className: "card-subtle space-y-2 p-6",
|
|
27771
|
-
children: [
|
|
27772
|
-
/* @__PURE__ */ jsxDEV117("h2", {
|
|
27773
|
-
className: "text-2xl font-semibold",
|
|
27774
|
-
children: "Spec editor"
|
|
27775
|
-
}, undefined, false, undefined, this),
|
|
27776
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27777
|
-
className: "text-muted-foreground text-sm",
|
|
27778
|
-
children: "Toggle between visual and code views. Changes stay in sync and include diff previews."
|
|
27779
|
-
}, undefined, false, undefined, this)
|
|
27780
|
-
]
|
|
27781
|
-
}, undefined, true, undefined, this),
|
|
27782
|
-
/* @__PURE__ */ jsxDEV117("article", {
|
|
27783
|
-
className: "card-subtle space-y-2 p-6",
|
|
27784
|
-
children: [
|
|
27785
|
-
/* @__PURE__ */ jsxDEV117("h2", {
|
|
27786
|
-
className: "text-2xl font-semibold",
|
|
27787
|
-
children: "Deploy panel"
|
|
27788
|
-
}, undefined, false, undefined, this),
|
|
27789
|
-
/* @__PURE__ */ jsxDEV117("p", {
|
|
27790
|
-
className: "text-muted-foreground text-sm",
|
|
27791
|
-
children: "Choose environment, review validations, and deploy with one button. Rollback is one tap away."
|
|
27792
|
-
}, undefined, false, undefined, this)
|
|
27793
|
-
]
|
|
27794
|
-
}, undefined, true, undefined, this)
|
|
27795
|
-
]
|
|
27796
|
-
}, undefined, true, undefined, this),
|
|
27797
|
-
/* @__PURE__ */ jsxDEV117("section", {
|
|
27798
|
-
className: "space-y-3",
|
|
27799
|
-
children: [
|
|
27800
|
-
/* @__PURE__ */ jsxDEV117("h2", {
|
|
27801
|
-
className: "text-2xl font-semibold",
|
|
27802
|
-
children: "Tips"
|
|
27803
|
-
}, undefined, false, undefined, this),
|
|
27804
|
-
/* @__PURE__ */ jsxDEV117("ul", {
|
|
27805
|
-
className: "space-y-2 text-sm",
|
|
27806
|
-
children: tips.map((tip) => /* @__PURE__ */ jsxDEV117("li", {
|
|
27807
|
-
children: [
|
|
27808
|
-
"\u2022 ",
|
|
27809
|
-
tip
|
|
27810
|
-
]
|
|
27811
|
-
}, tip, true, undefined, this))
|
|
27812
|
-
}, undefined, false, undefined, this)
|
|
27813
|
-
]
|
|
27814
|
-
}, undefined, true, undefined, this)
|
|
27673
|
+
/* @__PURE__ */ jsxDEV117("p", {
|
|
27674
|
+
className: "text-muted-foreground text-sm",
|
|
27675
|
+
children: "Visual builder documentation now lives in the Studio app docs."
|
|
27676
|
+
}, undefined, false, undefined, this),
|
|
27677
|
+
/* @__PURE__ */ jsxDEV117(Link98, {
|
|
27678
|
+
href: "https://app.contractspec.studio/docs",
|
|
27679
|
+
className: "btn-primary",
|
|
27680
|
+
children: "Open Studio docs"
|
|
27681
|
+
}, undefined, false, undefined, this)
|
|
27815
27682
|
]
|
|
27816
27683
|
}, undefined, true, undefined, this);
|
|
27817
27684
|
}
|
|
27818
27685
|
|
|
27819
27686
|
// src/components/docs/studio/StudioIntegrationsPage.tsx
|
|
27687
|
+
import Link99 from "@contractspec/lib.ui-link";
|
|
27820
27688
|
import { jsxDEV as jsxDEV118 } from "react/jsx-dev-runtime";
|
|
27821
|
-
var flow = [
|
|
27822
|
-
{
|
|
27823
|
-
title: "Connect a provider",
|
|
27824
|
-
body: "Choose a provider from the marketplace, enter credentials, and run the test connection. Studio encrypts secrets immediately."
|
|
27825
|
-
},
|
|
27826
|
-
{
|
|
27827
|
-
title: "Schedule syncs",
|
|
27828
|
-
body: "Define sync cadence (manual, hourly, daily). Studio tracks usage count and last sync timestamp."
|
|
27829
|
-
},
|
|
27830
|
-
{
|
|
27831
|
-
title: "Index knowledge",
|
|
27832
|
-
body: "Add documentation or API specs as knowledge sources. Reindex whenever files change."
|
|
27833
|
-
}
|
|
27834
|
-
];
|
|
27835
27689
|
function StudioIntegrationsPage() {
|
|
27836
27690
|
return /* @__PURE__ */ jsxDEV118("main", {
|
|
27837
|
-
className: "space-y-
|
|
27691
|
+
className: "space-y-6 py-12",
|
|
27838
27692
|
children: [
|
|
27839
|
-
/* @__PURE__ */ jsxDEV118("
|
|
27840
|
-
className: "
|
|
27841
|
-
children:
|
|
27842
|
-
/* @__PURE__ */ jsxDEV118("p", {
|
|
27843
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
27844
|
-
children: "Integration hub"
|
|
27845
|
-
}, undefined, false, undefined, this),
|
|
27846
|
-
/* @__PURE__ */ jsxDEV118("h1", {
|
|
27847
|
-
className: "text-4xl font-bold",
|
|
27848
|
-
children: "Unified connections with BYOK"
|
|
27849
|
-
}, undefined, false, undefined, this),
|
|
27850
|
-
/* @__PURE__ */ jsxDEV118("p", {
|
|
27851
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
27852
|
-
children: "Manage SaaS providers and knowledge sources without scattering secrets across tools. Studio gives you a simple card layout plus CLI automation."
|
|
27853
|
-
}, undefined, false, undefined, this)
|
|
27854
|
-
]
|
|
27855
|
-
}, undefined, true, undefined, this),
|
|
27856
|
-
/* @__PURE__ */ jsxDEV118("section", {
|
|
27857
|
-
className: "grid gap-4 md:grid-cols-3",
|
|
27858
|
-
children: flow.map((step) => /* @__PURE__ */ jsxDEV118("article", {
|
|
27859
|
-
className: "card-subtle space-y-2 p-6",
|
|
27860
|
-
children: [
|
|
27861
|
-
/* @__PURE__ */ jsxDEV118("h2", {
|
|
27862
|
-
className: "text-xl font-semibold",
|
|
27863
|
-
children: step.title
|
|
27864
|
-
}, undefined, false, undefined, this),
|
|
27865
|
-
/* @__PURE__ */ jsxDEV118("p", {
|
|
27866
|
-
className: "text-muted-foreground text-sm",
|
|
27867
|
-
children: step.body
|
|
27868
|
-
}, undefined, false, undefined, this)
|
|
27869
|
-
]
|
|
27870
|
-
}, step.title, true, undefined, this))
|
|
27693
|
+
/* @__PURE__ */ jsxDEV118("h1", {
|
|
27694
|
+
className: "text-3xl font-bold",
|
|
27695
|
+
children: "Studio docs moved"
|
|
27871
27696
|
}, undefined, false, undefined, this),
|
|
27872
|
-
/* @__PURE__ */ jsxDEV118("
|
|
27873
|
-
className: "
|
|
27874
|
-
children:
|
|
27875
|
-
|
|
27876
|
-
|
|
27877
|
-
|
|
27878
|
-
|
|
27879
|
-
|
|
27880
|
-
|
|
27881
|
-
children: "Every integration exposes sync logs and failure alerts. Use the webhook to forward sync events to Slack or PagerDuty."
|
|
27882
|
-
}, undefined, false, undefined, this)
|
|
27883
|
-
]
|
|
27884
|
-
}, undefined, true, undefined, this)
|
|
27697
|
+
/* @__PURE__ */ jsxDEV118("p", {
|
|
27698
|
+
className: "text-muted-foreground text-sm",
|
|
27699
|
+
children: "Integration guides now live in the Studio app docs."
|
|
27700
|
+
}, undefined, false, undefined, this),
|
|
27701
|
+
/* @__PURE__ */ jsxDEV118(Link99, {
|
|
27702
|
+
href: "https://app.contractspec.studio/docs",
|
|
27703
|
+
className: "btn-primary",
|
|
27704
|
+
children: "Open Studio docs"
|
|
27705
|
+
}, undefined, false, undefined, this)
|
|
27885
27706
|
]
|
|
27886
27707
|
}, undefined, true, undefined, this);
|
|
27887
27708
|
}
|
|
27888
27709
|
|
|
27889
27710
|
// src/components/docs/studio/StudioDeploymentsPage.tsx
|
|
27711
|
+
import Link100 from "@contractspec/lib.ui-link";
|
|
27890
27712
|
import { jsxDEV as jsxDEV119 } from "react/jsx-dev-runtime";
|
|
27891
|
-
var comparisons = [
|
|
27892
|
-
{
|
|
27893
|
-
label: "Shared",
|
|
27894
|
-
points: [
|
|
27895
|
-
"Ready in seconds",
|
|
27896
|
-
"DEV + STAGE by default",
|
|
27897
|
-
"Best for prototypes",
|
|
27898
|
-
"Managed SSL"
|
|
27899
|
-
]
|
|
27900
|
-
},
|
|
27901
|
-
{
|
|
27902
|
-
label: "Dedicated",
|
|
27903
|
-
points: [
|
|
27904
|
-
"Isolated clusters",
|
|
27905
|
-
"Choose region + VPC",
|
|
27906
|
-
"Rolling deploys",
|
|
27907
|
-
"Custom observability sinks"
|
|
27908
|
-
]
|
|
27909
|
-
}
|
|
27910
|
-
];
|
|
27911
|
-
var checklist = [
|
|
27912
|
-
"Validate specs before deploying (Studio does this automatically).",
|
|
27913
|
-
"Tag deployments with a description so rituals have context.",
|
|
27914
|
-
"Monitor status cards\u2014failed deploys trigger alerts and auto rollback.",
|
|
27915
|
-
"Use the CLI to export deployment manifests if you want infra-as-code."
|
|
27916
|
-
];
|
|
27917
27713
|
function StudioDeploymentsPage() {
|
|
27918
27714
|
return /* @__PURE__ */ jsxDEV119("main", {
|
|
27919
|
-
className: "space-y-
|
|
27715
|
+
className: "space-y-6 py-12",
|
|
27920
27716
|
children: [
|
|
27921
|
-
/* @__PURE__ */ jsxDEV119("
|
|
27922
|
-
className: "
|
|
27923
|
-
children:
|
|
27924
|
-
/* @__PURE__ */ jsxDEV119("p", {
|
|
27925
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
27926
|
-
children: "Deployments"
|
|
27927
|
-
}, undefined, false, undefined, this),
|
|
27928
|
-
/* @__PURE__ */ jsxDEV119("h1", {
|
|
27929
|
-
className: "text-4xl font-bold",
|
|
27930
|
-
children: "Shared vs dedicated workflows"
|
|
27931
|
-
}, undefined, false, undefined, this),
|
|
27932
|
-
/* @__PURE__ */ jsxDEV119("p", {
|
|
27933
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
27934
|
-
children: "Studio abstracts infra, but you still stay in control. This guide explains how environments are provisioned, monitored, and rolled back."
|
|
27935
|
-
}, undefined, false, undefined, this)
|
|
27936
|
-
]
|
|
27937
|
-
}, undefined, true, undefined, this),
|
|
27938
|
-
/* @__PURE__ */ jsxDEV119("section", {
|
|
27939
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
27940
|
-
children: comparisons.map((option) => /* @__PURE__ */ jsxDEV119("article", {
|
|
27941
|
-
className: "card-subtle space-y-2 p-6",
|
|
27942
|
-
children: [
|
|
27943
|
-
/* @__PURE__ */ jsxDEV119("h2", {
|
|
27944
|
-
className: "text-2xl font-semibold",
|
|
27945
|
-
children: [
|
|
27946
|
-
option.label,
|
|
27947
|
-
" deployments"
|
|
27948
|
-
]
|
|
27949
|
-
}, undefined, true, undefined, this),
|
|
27950
|
-
/* @__PURE__ */ jsxDEV119("ul", {
|
|
27951
|
-
className: "space-y-1 text-sm",
|
|
27952
|
-
children: option.points.map((point) => /* @__PURE__ */ jsxDEV119("li", {
|
|
27953
|
-
children: [
|
|
27954
|
-
"\u2022 ",
|
|
27955
|
-
point
|
|
27956
|
-
]
|
|
27957
|
-
}, point, true, undefined, this))
|
|
27958
|
-
}, undefined, false, undefined, this)
|
|
27959
|
-
]
|
|
27960
|
-
}, option.label, true, undefined, this))
|
|
27717
|
+
/* @__PURE__ */ jsxDEV119("h1", {
|
|
27718
|
+
className: "text-3xl font-bold",
|
|
27719
|
+
children: "Studio docs moved"
|
|
27961
27720
|
}, undefined, false, undefined, this),
|
|
27962
|
-
/* @__PURE__ */ jsxDEV119("
|
|
27963
|
-
className: "
|
|
27964
|
-
children:
|
|
27965
|
-
|
|
27966
|
-
|
|
27967
|
-
|
|
27968
|
-
|
|
27969
|
-
|
|
27970
|
-
|
|
27971
|
-
children: "Every deployment emits health events. If a check fails, Studio pauses traffic and offers rollback controls with diff context."
|
|
27972
|
-
}, undefined, false, undefined, this),
|
|
27973
|
-
/* @__PURE__ */ jsxDEV119("ul", {
|
|
27974
|
-
className: "space-y-2 text-sm",
|
|
27975
|
-
children: checklist.map((item) => /* @__PURE__ */ jsxDEV119("li", {
|
|
27976
|
-
children: [
|
|
27977
|
-
"\u2022 ",
|
|
27978
|
-
item
|
|
27979
|
-
]
|
|
27980
|
-
}, item, true, undefined, this))
|
|
27981
|
-
}, undefined, false, undefined, this)
|
|
27982
|
-
]
|
|
27983
|
-
}, undefined, true, undefined, this)
|
|
27721
|
+
/* @__PURE__ */ jsxDEV119("p", {
|
|
27722
|
+
className: "text-muted-foreground text-sm",
|
|
27723
|
+
children: "Deployment guidance now lives in the Studio app docs."
|
|
27724
|
+
}, undefined, false, undefined, this),
|
|
27725
|
+
/* @__PURE__ */ jsxDEV119(Link100, {
|
|
27726
|
+
href: "https://app.contractspec.studio/docs",
|
|
27727
|
+
className: "btn-primary",
|
|
27728
|
+
children: "Open Studio docs"
|
|
27729
|
+
}, undefined, false, undefined, this)
|
|
27984
27730
|
]
|
|
27985
27731
|
}, undefined, true, undefined, this);
|
|
27986
27732
|
}
|
|
27987
27733
|
|
|
27988
27734
|
// src/components/docs/studio/StudioBYOKPage.tsx
|
|
27735
|
+
import Link101 from "@contractspec/lib.ui-link";
|
|
27989
27736
|
import { jsxDEV as jsxDEV120 } from "react/jsx-dev-runtime";
|
|
27990
|
-
var steps2 = [
|
|
27991
|
-
{
|
|
27992
|
-
title: "1. Provide vault endpoint",
|
|
27993
|
-
body: "Enter your Vault/HSM URL and the key identifier. Studio only stores the reference."
|
|
27994
|
-
},
|
|
27995
|
-
{
|
|
27996
|
-
title: "2. Verify encryption",
|
|
27997
|
-
body: "Studio runs a test by encrypting a dummy payload and asking you to decrypt it."
|
|
27998
|
-
},
|
|
27999
|
-
{
|
|
28000
|
-
title: "3. Store credentials",
|
|
28001
|
-
body: "When integrations are connected, secrets get encrypted client side before landing in the database."
|
|
28002
|
-
},
|
|
28003
|
-
{
|
|
28004
|
-
title: "4. Rotate keys",
|
|
28005
|
-
body: "Trigger rotation from the BYOK manager. Studio fetches existing secrets, decrypts with the old key, and re-encrypts with the new one."
|
|
28006
|
-
}
|
|
28007
|
-
];
|
|
28008
27737
|
function StudioBYOKPage() {
|
|
28009
27738
|
return /* @__PURE__ */ jsxDEV120("main", {
|
|
28010
|
-
className: "space-y-
|
|
27739
|
+
className: "space-y-6 py-12",
|
|
28011
27740
|
children: [
|
|
28012
|
-
/* @__PURE__ */ jsxDEV120("
|
|
28013
|
-
className: "
|
|
28014
|
-
children:
|
|
28015
|
-
/* @__PURE__ */ jsxDEV120("p", {
|
|
28016
|
-
className: "text-xs font-semibold tracking-[0.3em] text-violet-400 uppercase",
|
|
28017
|
-
children: "BYOK"
|
|
28018
|
-
}, undefined, false, undefined, this),
|
|
28019
|
-
/* @__PURE__ */ jsxDEV120("h1", {
|
|
28020
|
-
className: "text-4xl font-bold",
|
|
28021
|
-
children: "Bring your own key to Studio"
|
|
28022
|
-
}, undefined, false, undefined, this),
|
|
28023
|
-
/* @__PURE__ */ jsxDEV120("p", {
|
|
28024
|
-
className: "text-muted-foreground max-w-3xl text-lg",
|
|
28025
|
-
children: "Keep secrets under your control. Studio never touches plaintext credentials; everything is encrypted with tenant-specific material."
|
|
28026
|
-
}, undefined, false, undefined, this)
|
|
28027
|
-
]
|
|
28028
|
-
}, undefined, true, undefined, this),
|
|
28029
|
-
/* @__PURE__ */ jsxDEV120("section", {
|
|
28030
|
-
className: "grid gap-4 md:grid-cols-2",
|
|
28031
|
-
children: steps2.map((step) => /* @__PURE__ */ jsxDEV120("article", {
|
|
28032
|
-
className: "card-subtle space-y-2 p-6",
|
|
28033
|
-
children: [
|
|
28034
|
-
/* @__PURE__ */ jsxDEV120("h2", {
|
|
28035
|
-
className: "text-xl font-semibold",
|
|
28036
|
-
children: step.title
|
|
28037
|
-
}, undefined, false, undefined, this),
|
|
28038
|
-
/* @__PURE__ */ jsxDEV120("p", {
|
|
28039
|
-
className: "text-muted-foreground text-sm",
|
|
28040
|
-
children: step.body
|
|
28041
|
-
}, undefined, false, undefined, this)
|
|
28042
|
-
]
|
|
28043
|
-
}, step.title, true, undefined, this))
|
|
27741
|
+
/* @__PURE__ */ jsxDEV120("h1", {
|
|
27742
|
+
className: "text-3xl font-bold",
|
|
27743
|
+
children: "Studio docs moved"
|
|
28044
27744
|
}, undefined, false, undefined, this),
|
|
28045
|
-
/* @__PURE__ */ jsxDEV120("
|
|
28046
|
-
className: "
|
|
28047
|
-
children:
|
|
28048
|
-
|
|
28049
|
-
|
|
28050
|
-
|
|
28051
|
-
|
|
28052
|
-
|
|
28053
|
-
|
|
28054
|
-
children: "Every decrypt operation logs who requested it, what integration was involved, and the purpose (sync, deploy, manual action)."
|
|
28055
|
-
}, undefined, false, undefined, this),
|
|
28056
|
-
/* @__PURE__ */ jsxDEV120("p", {
|
|
28057
|
-
className: "text-muted-foreground text-sm",
|
|
28058
|
-
children: "You can stream audit logs to your SIEM via webhooks or export CSVs for compliance reviews."
|
|
28059
|
-
}, undefined, false, undefined, this)
|
|
28060
|
-
]
|
|
28061
|
-
}, undefined, true, undefined, this)
|
|
27745
|
+
/* @__PURE__ */ jsxDEV120("p", {
|
|
27746
|
+
className: "text-muted-foreground text-sm",
|
|
27747
|
+
children: "Security and BYOK guidance now lives in the Studio app docs."
|
|
27748
|
+
}, undefined, false, undefined, this),
|
|
27749
|
+
/* @__PURE__ */ jsxDEV120(Link101, {
|
|
27750
|
+
href: "https://app.contractspec.studio/docs",
|
|
27751
|
+
className: "btn-primary",
|
|
27752
|
+
children: "Open Studio docs"
|
|
27753
|
+
}, undefined, false, undefined, this)
|
|
28062
27754
|
]
|
|
28063
27755
|
}, undefined, true, undefined, this);
|
|
28064
27756
|
}
|