@contractspec/example.lifecycle-dashboard 3.7.6 → 3.7.7
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 +3 -3
- package/AGENTS.md +39 -16
- 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 +4 -4
- 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 23ms
|
|
7
7
|
|
|
8
8
|
docs/index.js 0.95 KB (entry point)
|
|
9
9
|
./index.js 4.0 KB (entry point)
|
|
@@ -13,7 +13,7 @@ Bundled 6 modules in 22ms
|
|
|
13
13
|
snippets/page.js 1.58 KB (entry point)
|
|
14
14
|
|
|
15
15
|
[contractspec-bun-build] transpile target=node root=src entries=6 noBundle=false
|
|
16
|
-
Bundled 6 modules in
|
|
16
|
+
Bundled 6 modules in 13ms
|
|
17
17
|
|
|
18
18
|
docs/index.js 0.94 KB (entry point)
|
|
19
19
|
./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 24ms
|
|
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/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.7",
|
|
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,14 +57,14 @@
|
|
|
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.0.0"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@contractspec/tool.typescript": "3.7.6",
|
|
@@ -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