@contractspec/example.lifecycle-dashboard 3.7.6 → 3.7.10
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 +2 -2
- package/AGENTS.md +39 -16
- package/CHANGELOG.md +20 -0
- package/README.md +49 -23
- package/dist/browser/index.js +16 -16
- package/dist/index.d.ts +1 -1
- package/dist/index.js +16 -16
- package/dist/node/index.js +16 -16
- package/package.json +6 -6
- package/src/docs/lifecycle-dashboard.docblock.ts +11 -11
- package/src/example.ts +25 -25
- package/src/index.ts +1 -1
- package/src/lifecycle-dashboard.feature.ts +12 -12
- package/tsconfig.json +7 -9
- package/tsdown.config.js +1 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -3,7 +3,7 @@ $ bun run prebuild && bun run build:bundle && bun run build:types
|
|
|
3
3
|
$ contractspec-bun-build prebuild
|
|
4
4
|
$ contractspec-bun-build transpile
|
|
5
5
|
[contractspec-bun-build] transpile target=bun root=src entries=6 noBundle=false
|
|
6
|
-
Bundled 6 modules in
|
|
6
|
+
Bundled 6 modules in 13ms
|
|
7
7
|
|
|
8
8
|
docs/index.js 0.95 KB (entry point)
|
|
9
9
|
./index.js 4.0 KB (entry point)
|
|
@@ -23,7 +23,7 @@ Bundled 6 modules in 12ms
|
|
|
23
23
|
snippets/page.js 1.58 KB (entry point)
|
|
24
24
|
|
|
25
25
|
[contractspec-bun-build] transpile target=browser root=src entries=6 noBundle=false
|
|
26
|
-
Bundled 6 modules in
|
|
26
|
+
Bundled 6 modules in 31ms
|
|
27
27
|
|
|
28
28
|
docs/index.js 0.94 KB (entry point)
|
|
29
29
|
./index.js 4.0 KB (entry point)
|
package/AGENTS.md
CHANGED
|
@@ -1,29 +1,52 @@
|
|
|
1
|
-
# AI Agent Guide
|
|
1
|
+
# AI Agent Guide — `@contractspec/example.lifecycle-dashboard`
|
|
2
2
|
|
|
3
3
|
Scope: `packages/examples/lifecycle-dashboard/*`
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Lifecycle dashboard example (snippet): how to call lifecycle-managed APIs and render a status card.
|
|
6
6
|
|
|
7
7
|
## Quick Context
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
9
|
+
- Layer: `example`.
|
|
10
|
+
- Package visibility: published package.
|
|
11
|
+
- Primary consumers are example explorers, template authors, and documentation readers.
|
|
12
|
+
- Related packages: `@contractspec/lib.contracts-spec`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
|
|
11
13
|
|
|
12
|
-
##
|
|
14
|
+
## Architecture
|
|
13
15
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
16
|
+
- `src/docs/` contains docblocks and documentation-facing exports.
|
|
17
|
+
- `src/example.ts` is the runnable example entrypoint.
|
|
18
|
+
- `src/index.ts` is the root public barrel and package entrypoint.
|
|
19
|
+
- `src/lifecycle-dashboard.feature.ts` defines a feature entrypoint.
|
|
20
|
+
- `src/snippets` is part of the package's public or composition surface.
|
|
17
21
|
|
|
18
|
-
## Public
|
|
22
|
+
## Public Surface
|
|
19
23
|
|
|
20
|
-
- `.`
|
|
21
|
-
- `./
|
|
22
|
-
- `./docs
|
|
24
|
+
- Export `.` resolves through `./src/index.ts`.
|
|
25
|
+
- Export `./docs` resolves through `./src/docs/index.ts`.
|
|
26
|
+
- Export `./docs/lifecycle-dashboard.docblock` resolves through `./src/docs/lifecycle-dashboard.docblock.ts`.
|
|
27
|
+
- Export `./example` resolves through `./src/example.ts`.
|
|
28
|
+
- Export `./lifecycle-dashboard.feature` resolves through `./src/lifecycle-dashboard.feature.ts`.
|
|
29
|
+
- Export `./snippets/page` resolves through `./src/snippets/page.ts`.
|
|
30
|
+
|
|
31
|
+
## Guardrails
|
|
32
|
+
|
|
33
|
+
- Keep the example package demonstrative, buildable, and aligned with the exported feature surface.
|
|
34
|
+
- Do not add hidden production assumptions that are not actually implemented in the example.
|
|
35
|
+
- Changes here can affect downstream packages such as `@contractspec/lib.contracts-spec`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
|
|
36
|
+
- Changes here can affect downstream packages such as `@contractspec/lib.contracts-spec`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
|
|
23
37
|
|
|
24
38
|
## Local Commands
|
|
25
39
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
40
|
+
- `bun run dev` — contractspec-bun-build dev
|
|
41
|
+
- `bun run build` — bun run prebuild && bun run build:bundle && bun run build:types
|
|
42
|
+
- `bun run test` — bun test --pass-with-no-tests
|
|
43
|
+
- `bun run lint` — bun lint:fix
|
|
44
|
+
- `bun run lint:check` — biome check .
|
|
45
|
+
- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
|
|
46
|
+
- `bun run typecheck` — tsc --noEmit
|
|
47
|
+
- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
|
|
48
|
+
- `bun run publish:pkg:canary` — bun publish:pkg --tag canary
|
|
49
|
+
- `bun run clean` — rimraf dist .turbo
|
|
50
|
+
- `bun run build:bundle` — contractspec-bun-build transpile
|
|
51
|
+
- `bun run build:types` — contractspec-bun-build types
|
|
52
|
+
- `bun run prebuild` — contractspec-bun-build prebuild
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @contractspec/example.lifecycle-dashboard
|
|
2
2
|
|
|
3
|
+
## 3.7.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 1a44cb6: feat: improve examples to increase coverage of Contracts type
|
|
8
|
+
- Updated dependencies [1a44cb6]
|
|
9
|
+
- @contractspec/lib.contracts-spec@4.1.2
|
|
10
|
+
|
|
11
|
+
## 3.7.9
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- fix: release
|
|
16
|
+
- Updated dependencies
|
|
17
|
+
- @contractspec/lib.contracts-spec@4.1.1
|
|
18
|
+
|
|
3
19
|
## 3.7.6
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -349,6 +365,7 @@
|
|
|
349
365
|
- 7f3203a: fix: make workspace test runs resilient when packages have no tests
|
|
350
366
|
|
|
351
367
|
Updates package test scripts to pass cleanly when no matching test files exist:
|
|
368
|
+
|
|
352
369
|
- Uses `bun test --pass-with-no-tests` in Bun-based packages that currently ship without test files.
|
|
353
370
|
- Uses `jest --passWithNoTests` for the UI kit web package.
|
|
354
371
|
- Adds `.vscode-test.mjs` for `vscode-contractspec` so VS Code extension test runs have an explicit config and stop failing on missing default configuration.
|
|
@@ -655,14 +672,17 @@
|
|
|
655
672
|
feat: Contract layers support (features, examples, app-configs)
|
|
656
673
|
|
|
657
674
|
### New CLI Commands
|
|
675
|
+
|
|
658
676
|
- `contractspec list layers` - List all contract layers with filtering
|
|
659
677
|
|
|
660
678
|
### Enhanced Commands
|
|
679
|
+
|
|
661
680
|
- `contractspec ci` - New `layers` check category validates features/examples/config
|
|
662
681
|
- `contractspec doctor` - New `layers` health checks
|
|
663
682
|
- `contractspec integrity` - Now shows layer statistics
|
|
664
683
|
|
|
665
684
|
### New APIs
|
|
685
|
+
|
|
666
686
|
- `discoverLayers()` - Scan workspace for all layer files
|
|
667
687
|
- `scanExampleSource()` - Parse ExampleSpec from source code
|
|
668
688
|
- `isExampleFile()` - Check if file is an example spec
|
package/README.md
CHANGED
|
@@ -1,41 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
# @contractspec/example.lifecycle-dashboard
|
|
2
2
|
|
|
3
|
-
Website: https://contractspec.io
|
|
3
|
+
Website: https://contractspec.io
|
|
4
4
|
|
|
5
|
+
**Lifecycle dashboard example (snippet): how to call lifecycle-managed APIs and render a status card.**
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
### Structure
|
|
9
|
-
|
|
10
|
-
- `app/page.tsx` – client component with tabs for Stage, Actions, Libraries.
|
|
11
|
-
- Expected API routes:
|
|
12
|
-
- `POST /api/lifecycle/assessments` → proxies to `LifecycleAssessmentService.runAssessment`
|
|
13
|
-
- `GET /api/lifecycle/playbooks/:stage` → proxies to `service.getStagePlaybook`
|
|
14
|
-
|
|
15
|
-
### Run
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
cd packages/examples/lifecycle-dashboard
|
|
19
|
-
bunx next dev
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Make sure you register the API routes in your actual Next.js app; the page assumes they exist.
|
|
23
|
-
|
|
24
|
-
This example is now packaged as `@contractspec/example.lifecycle-dashboard` and ships the page as a deterministic snippet:
|
|
25
|
-
- `@contractspec/example.lifecycle-dashboard/snippets/page`
|
|
26
|
-
|
|
7
|
+
## What This Demonstrates
|
|
27
8
|
|
|
9
|
+
- Lifecycle API consumption pattern.
|
|
10
|
+
- Status card rendering snippet.
|
|
11
|
+
- Minimal dependency footprint for quick integration.
|
|
12
|
+
- `src/docs/` contains docblocks and documentation-facing exports.
|
|
13
|
+
- `src/docs/` contains docblocks and documentation-facing exports.
|
|
28
14
|
|
|
15
|
+
## Running Locally
|
|
29
16
|
|
|
17
|
+
From `packages/examples/lifecycle-dashboard`:
|
|
18
|
+
- `bun run dev`
|
|
19
|
+
- `bun run build`
|
|
20
|
+
- `bun run test`
|
|
21
|
+
- `bun run typecheck`
|
|
30
22
|
|
|
23
|
+
## Usage
|
|
31
24
|
|
|
25
|
+
Use `@contractspec/example.lifecycle-dashboard` as a reference implementation, or import its exported surfaces into a workspace that composes ContractSpec examples and bundles.
|
|
32
26
|
|
|
27
|
+
## Architecture
|
|
33
28
|
|
|
29
|
+
- `src/docs/` contains docblocks and documentation-facing exports.
|
|
30
|
+
- `src/example.ts` is the runnable example entrypoint.
|
|
31
|
+
- `src/index.ts` is the root public barrel and package entrypoint.
|
|
32
|
+
- `src/lifecycle-dashboard.feature.ts` defines a feature entrypoint.
|
|
33
|
+
- `src/snippets` is part of the package's public or composition surface.
|
|
34
34
|
|
|
35
|
+
## Public Entry Points
|
|
35
36
|
|
|
37
|
+
- Export `.` resolves through `./src/index.ts`.
|
|
38
|
+
- Export `./docs` resolves through `./src/docs/index.ts`.
|
|
39
|
+
- Export `./docs/lifecycle-dashboard.docblock` resolves through `./src/docs/lifecycle-dashboard.docblock.ts`.
|
|
40
|
+
- Export `./example` resolves through `./src/example.ts`.
|
|
41
|
+
- Export `./lifecycle-dashboard.feature` resolves through `./src/lifecycle-dashboard.feature.ts`.
|
|
42
|
+
- Export `./snippets/page` resolves through `./src/snippets/page.ts`.
|
|
36
43
|
|
|
44
|
+
## Local Commands
|
|
37
45
|
|
|
46
|
+
- `bun run dev` — contractspec-bun-build dev
|
|
47
|
+
- `bun run build` — bun run prebuild && bun run build:bundle && bun run build:types
|
|
48
|
+
- `bun run test` — bun test --pass-with-no-tests
|
|
49
|
+
- `bun run lint` — bun lint:fix
|
|
50
|
+
- `bun run lint:check` — biome check .
|
|
51
|
+
- `bun run lint:fix` — biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .
|
|
52
|
+
- `bun run typecheck` — tsc --noEmit
|
|
53
|
+
- `bun run publish:pkg` — bun publish --tolerate-republish --ignore-scripts --verbose
|
|
54
|
+
- `bun run publish:pkg:canary` — bun publish:pkg --tag canary
|
|
55
|
+
- `bun run clean` — rimraf dist .turbo
|
|
56
|
+
- `bun run build:bundle` — contractspec-bun-build transpile
|
|
57
|
+
- `bun run build:types` — contractspec-bun-build types
|
|
58
|
+
- `bun run prebuild` — contractspec-bun-build prebuild
|
|
38
59
|
|
|
60
|
+
## Recent Updates
|
|
39
61
|
|
|
62
|
+
- Replace eslint+prettier by biomejs to optimize speed.
|
|
63
|
+
- Missing contract layers.
|
|
40
64
|
|
|
65
|
+
## Notes
|
|
41
66
|
|
|
67
|
+
- Works alongside `@contractspec/lib.contracts-spec`, `@contractspec/tool.bun`, `@contractspec/tool.typescript`.
|
package/dist/browser/index.js
CHANGED
|
@@ -50,6 +50,22 @@ var example = defineExample({
|
|
|
50
50
|
});
|
|
51
51
|
var example_default = example;
|
|
52
52
|
|
|
53
|
+
// src/lifecycle-dashboard.feature.ts
|
|
54
|
+
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
55
|
+
var LifecycleDashboardFeature = defineFeature({
|
|
56
|
+
meta: {
|
|
57
|
+
key: "lifecycle-dashboard",
|
|
58
|
+
version: "1.0.0",
|
|
59
|
+
title: "Lifecycle Dashboard",
|
|
60
|
+
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
61
|
+
domain: "lifecycle",
|
|
62
|
+
owners: ["@examples"],
|
|
63
|
+
tags: ["lifecycle", "dashboard", "status"],
|
|
64
|
+
stability: "experimental"
|
|
65
|
+
},
|
|
66
|
+
docs: ["docs.examples.lifecycle-dashboard"]
|
|
67
|
+
});
|
|
68
|
+
|
|
53
69
|
// src/snippets/page.ts
|
|
54
70
|
var lifecycleDashboardNextPageSnippet = `'use client';
|
|
55
71
|
|
|
@@ -103,22 +119,6 @@ export default function LifecycleDashboardPage() {
|
|
|
103
119
|
return null;
|
|
104
120
|
}
|
|
105
121
|
`;
|
|
106
|
-
|
|
107
|
-
// src/lifecycle-dashboard.feature.ts
|
|
108
|
-
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
109
|
-
var LifecycleDashboardFeature = defineFeature({
|
|
110
|
-
meta: {
|
|
111
|
-
key: "lifecycle-dashboard",
|
|
112
|
-
version: "1.0.0",
|
|
113
|
-
title: "Lifecycle Dashboard",
|
|
114
|
-
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
115
|
-
domain: "lifecycle",
|
|
116
|
-
owners: ["@examples"],
|
|
117
|
-
tags: ["lifecycle", "dashboard", "status"],
|
|
118
|
-
stability: "experimental"
|
|
119
|
-
},
|
|
120
|
-
docs: ["docs.examples.lifecycle-dashboard"]
|
|
121
|
-
});
|
|
122
122
|
export {
|
|
123
123
|
lifecycleDashboardNextPageSnippet,
|
|
124
124
|
example_default as example,
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -51,6 +51,22 @@ var example = defineExample({
|
|
|
51
51
|
});
|
|
52
52
|
var example_default = example;
|
|
53
53
|
|
|
54
|
+
// src/lifecycle-dashboard.feature.ts
|
|
55
|
+
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
56
|
+
var LifecycleDashboardFeature = defineFeature({
|
|
57
|
+
meta: {
|
|
58
|
+
key: "lifecycle-dashboard",
|
|
59
|
+
version: "1.0.0",
|
|
60
|
+
title: "Lifecycle Dashboard",
|
|
61
|
+
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
62
|
+
domain: "lifecycle",
|
|
63
|
+
owners: ["@examples"],
|
|
64
|
+
tags: ["lifecycle", "dashboard", "status"],
|
|
65
|
+
stability: "experimental"
|
|
66
|
+
},
|
|
67
|
+
docs: ["docs.examples.lifecycle-dashboard"]
|
|
68
|
+
});
|
|
69
|
+
|
|
54
70
|
// src/snippets/page.ts
|
|
55
71
|
var lifecycleDashboardNextPageSnippet = `'use client';
|
|
56
72
|
|
|
@@ -104,22 +120,6 @@ export default function LifecycleDashboardPage() {
|
|
|
104
120
|
return null;
|
|
105
121
|
}
|
|
106
122
|
`;
|
|
107
|
-
|
|
108
|
-
// src/lifecycle-dashboard.feature.ts
|
|
109
|
-
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
110
|
-
var LifecycleDashboardFeature = defineFeature({
|
|
111
|
-
meta: {
|
|
112
|
-
key: "lifecycle-dashboard",
|
|
113
|
-
version: "1.0.0",
|
|
114
|
-
title: "Lifecycle Dashboard",
|
|
115
|
-
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
116
|
-
domain: "lifecycle",
|
|
117
|
-
owners: ["@examples"],
|
|
118
|
-
tags: ["lifecycle", "dashboard", "status"],
|
|
119
|
-
stability: "experimental"
|
|
120
|
-
},
|
|
121
|
-
docs: ["docs.examples.lifecycle-dashboard"]
|
|
122
|
-
});
|
|
123
123
|
export {
|
|
124
124
|
lifecycleDashboardNextPageSnippet,
|
|
125
125
|
example_default as example,
|
package/dist/node/index.js
CHANGED
|
@@ -50,6 +50,22 @@ var example = defineExample({
|
|
|
50
50
|
});
|
|
51
51
|
var example_default = example;
|
|
52
52
|
|
|
53
|
+
// src/lifecycle-dashboard.feature.ts
|
|
54
|
+
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
55
|
+
var LifecycleDashboardFeature = defineFeature({
|
|
56
|
+
meta: {
|
|
57
|
+
key: "lifecycle-dashboard",
|
|
58
|
+
version: "1.0.0",
|
|
59
|
+
title: "Lifecycle Dashboard",
|
|
60
|
+
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
61
|
+
domain: "lifecycle",
|
|
62
|
+
owners: ["@examples"],
|
|
63
|
+
tags: ["lifecycle", "dashboard", "status"],
|
|
64
|
+
stability: "experimental"
|
|
65
|
+
},
|
|
66
|
+
docs: ["docs.examples.lifecycle-dashboard"]
|
|
67
|
+
});
|
|
68
|
+
|
|
53
69
|
// src/snippets/page.ts
|
|
54
70
|
var lifecycleDashboardNextPageSnippet = `'use client';
|
|
55
71
|
|
|
@@ -103,22 +119,6 @@ export default function LifecycleDashboardPage() {
|
|
|
103
119
|
return null;
|
|
104
120
|
}
|
|
105
121
|
`;
|
|
106
|
-
|
|
107
|
-
// src/lifecycle-dashboard.feature.ts
|
|
108
|
-
import { defineFeature } from "@contractspec/lib.contracts-spec";
|
|
109
|
-
var LifecycleDashboardFeature = defineFeature({
|
|
110
|
-
meta: {
|
|
111
|
-
key: "lifecycle-dashboard",
|
|
112
|
-
version: "1.0.0",
|
|
113
|
-
title: "Lifecycle Dashboard",
|
|
114
|
-
description: "Lifecycle API usage snippet with status cards and lifecycle-managed endpoints",
|
|
115
|
-
domain: "lifecycle",
|
|
116
|
-
owners: ["@examples"],
|
|
117
|
-
tags: ["lifecycle", "dashboard", "status"],
|
|
118
|
-
stability: "experimental"
|
|
119
|
-
},
|
|
120
|
-
docs: ["docs.examples.lifecycle-dashboard"]
|
|
121
|
-
});
|
|
122
122
|
export {
|
|
123
123
|
lifecycleDashboardNextPageSnippet,
|
|
124
124
|
example_default as example,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contractspec/example.lifecycle-dashboard",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.10",
|
|
4
4
|
"description": "Lifecycle dashboard example (snippet): how to call lifecycle-managed APIs and render a status card.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -57,19 +57,19 @@
|
|
|
57
57
|
"dev": "contractspec-bun-build dev",
|
|
58
58
|
"clean": "rimraf dist .turbo",
|
|
59
59
|
"lint": "bun lint:fix",
|
|
60
|
-
"lint:fix": "
|
|
61
|
-
"lint:check": "
|
|
60
|
+
"lint:fix": "biome check --write --unsafe --only=nursery/useSortedClasses . && biome check --write .",
|
|
61
|
+
"lint:check": "biome check .",
|
|
62
62
|
"test": "bun test --pass-with-no-tests",
|
|
63
63
|
"prebuild": "contractspec-bun-build prebuild",
|
|
64
64
|
"typecheck": "tsc --noEmit"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@contractspec/lib.contracts-spec": "
|
|
67
|
+
"@contractspec/lib.contracts-spec": "4.1.2"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@contractspec/tool.typescript": "3.7.
|
|
70
|
+
"@contractspec/tool.typescript": "3.7.8",
|
|
71
71
|
"typescript": "^5.9.3",
|
|
72
|
-
"@contractspec/tool.bun": "3.7.
|
|
72
|
+
"@contractspec/tool.bun": "3.7.8"
|
|
73
73
|
},
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public",
|
|
@@ -2,17 +2,17 @@ import type { DocBlock } from '@contractspec/lib.contracts-spec/docs';
|
|
|
2
2
|
import { registerDocBlocks } from '@contractspec/lib.contracts-spec/docs';
|
|
3
3
|
|
|
4
4
|
const blocks: DocBlock[] = [
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
5
|
+
{
|
|
6
|
+
id: 'docs.examples.lifecycle-dashboard',
|
|
7
|
+
title: 'Lifecycle Dashboard (example snippet)',
|
|
8
|
+
summary:
|
|
9
|
+
'Minimal dashboard page pattern that calls lifecycle-managed API routes and renders a status card.',
|
|
10
|
+
kind: 'reference',
|
|
11
|
+
visibility: 'public',
|
|
12
|
+
route: '/docs/examples/lifecycle-dashboard',
|
|
13
|
+
tags: ['lifecycle', 'dashboard', 'example'],
|
|
14
|
+
body: `## What this example shows\n- A simple client-driven fetch to \`POST /api/lifecycle/assessments\`.\n- A card-shaped UI pattern for stage + confidence + recommendations.\n\n## Notes\n- Keep your app design-system-first (no raw HTML in application code).\n- Add explicit loading/error/empty states with accessible messaging.\n- Implement API routes in your app as thin adapters over lifecycle-managed services.`,
|
|
15
|
+
},
|
|
16
16
|
];
|
|
17
17
|
|
|
18
18
|
registerDocBlocks(blocks);
|
package/src/example.ts
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { defineExample } from '@contractspec/lib.contracts-spec';
|
|
2
2
|
|
|
3
3
|
const example = defineExample({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
4
|
+
meta: {
|
|
5
|
+
key: 'lifecycle-dashboard',
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
title: 'Lifecycle Dashboard (snippet)',
|
|
8
|
+
description:
|
|
9
|
+
'A minimal dashboard page pattern: call lifecycle-managed endpoints and render a mobile-friendly status card.',
|
|
10
|
+
kind: 'blueprint',
|
|
11
|
+
visibility: 'public',
|
|
12
|
+
stability: 'experimental',
|
|
13
|
+
owners: ['@platform.core'],
|
|
14
|
+
tags: ['lifecycle', 'dashboard', 'nextjs', 'snippet'],
|
|
15
|
+
},
|
|
16
|
+
docs: {
|
|
17
|
+
rootDocId: 'docs.examples.lifecycle-dashboard',
|
|
18
|
+
},
|
|
19
|
+
entrypoints: {
|
|
20
|
+
packageName: '@contractspec/example.lifecycle-dashboard',
|
|
21
|
+
docs: './docs',
|
|
22
|
+
},
|
|
23
|
+
surfaces: {
|
|
24
|
+
templates: true,
|
|
25
|
+
sandbox: { enabled: true, modes: ['markdown', 'specs'] },
|
|
26
|
+
studio: { enabled: true, installable: true },
|
|
27
|
+
mcp: { enabled: true },
|
|
28
|
+
},
|
|
29
29
|
});
|
|
30
30
|
|
|
31
31
|
export default example;
|
package/src/index.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { defineFeature } from '@contractspec/lib.contracts-spec';
|
|
2
2
|
|
|
3
3
|
export const LifecycleDashboardFeature = defineFeature({
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
meta: {
|
|
5
|
+
key: 'lifecycle-dashboard',
|
|
6
|
+
version: '1.0.0',
|
|
7
|
+
title: 'Lifecycle Dashboard',
|
|
8
|
+
description:
|
|
9
|
+
'Lifecycle API usage snippet with status cards and lifecycle-managed endpoints',
|
|
10
|
+
domain: 'lifecycle',
|
|
11
|
+
owners: ['@examples'],
|
|
12
|
+
tags: ['lifecycle', 'dashboard', 'status'],
|
|
13
|
+
stability: 'experimental',
|
|
14
|
+
},
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
docs: ['docs.examples.lifecycle-dashboard'],
|
|
17
17
|
});
|
package/tsconfig.json
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
"extends": "@contractspec/tool.typescript/react-library.json",
|
|
3
|
+
"include": ["src"],
|
|
4
|
+
"exclude": ["node_modules", "dist"],
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"rootDir": "src",
|
|
7
|
+
"outDir": "dist"
|
|
8
|
+
}
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
package/tsdown.config.js
CHANGED