@contractspec/example.learning-journey-ui-gamified 1.44.1 → 1.45.0

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.
@@ -14,8 +14,8 @@ $ tsdown
14
14
  ℹ dist/components/MasteryRing.js 2.15 kB │ gzip: 0.88 kB
15
15
  ℹ dist/views/Steps.js 1.63 kB │ gzip: 0.68 kB
16
16
  ℹ dist/components/DayCalendar.js 1.51 kB │ gzip: 0.68 kB
17
+ ℹ dist/example.js 0.88 kB │ gzip: 0.49 kB
17
18
  ℹ dist/docs/learning-journey-ui-gamified.docblock.js 0.83 kB │ gzip: 0.47 kB
18
- ℹ dist/example.js 0.78 kB │ gzip: 0.43 kB
19
19
  ℹ dist/index.js 0.67 kB │ gzip: 0.24 kB
20
20
  ℹ dist/views/index.js 0.21 kB │ gzip: 0.11 kB
21
21
  ℹ dist/components/index.js 0.19 kB │ gzip: 0.11 kB
@@ -28,8 +28,8 @@ $ tsdown
28
28
  ℹ dist/components/MasteryRing.js.map 3.43 kB │ gzip: 1.34 kB
29
29
  ℹ dist/views/Steps.js.map 2.36 kB │ gzip: 1.04 kB
30
30
  ℹ dist/components/DayCalendar.js.map 2.28 kB │ gzip: 0.99 kB
31
+ ℹ dist/example.js.map 1.40 kB │ gzip: 0.71 kB
31
32
  ℹ dist/docs/learning-journey-ui-gamified.docblock.js.map 1.17 kB │ gzip: 0.63 kB
32
- ℹ dist/example.js.map 1.13 kB │ gzip: 0.60 kB
33
33
  ℹ dist/components/MasteryRing.d.ts.map 0.37 kB │ gzip: 0.23 kB
34
34
  ℹ dist/components/FlashCard.d.ts.map 0.32 kB │ gzip: 0.21 kB
35
35
  ℹ dist/GamifiedMiniApp.d.ts.map 0.31 kB │ gzip: 0.22 kB
@@ -38,20 +38,20 @@ $ tsdown
38
38
  ℹ dist/views/Progress.d.ts.map 0.17 kB │ gzip: 0.15 kB
39
39
  ℹ dist/views/Timeline.d.ts.map 0.17 kB │ gzip: 0.15 kB
40
40
  ℹ dist/views/Steps.d.ts.map 0.17 kB │ gzip: 0.15 kB
41
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
42
- ℹ dist/example.d.ts 1.01 kB │ gzip: 0.43 kB
41
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
43
42
  ℹ dist/index.d.ts 0.62 kB │ gzip: 0.22 kB
44
43
  ℹ dist/GamifiedMiniApp.d.ts 0.59 kB │ gzip: 0.33 kB
45
44
  ℹ dist/components/FlashCard.d.ts 0.53 kB │ gzip: 0.31 kB
46
45
  ℹ dist/views/Overview.d.ts 0.45 kB │ gzip: 0.29 kB
47
46
  ℹ dist/components/MasteryRing.d.ts 0.45 kB │ gzip: 0.28 kB
48
- ℹ dist/components/DayCalendar.d.ts 0.41 kB │ gzip: 0.25 kB
47
+ ℹ dist/components/DayCalendar.d.ts 0.41 kB │ gzip: 0.24 kB
49
48
  ℹ dist/views/Steps.d.ts 0.36 kB │ gzip: 0.25 kB
50
49
  ℹ dist/views/Progress.d.ts 0.35 kB │ gzip: 0.24 kB
51
50
  ℹ dist/views/Timeline.d.ts 0.35 kB │ gzip: 0.24 kB
52
51
  ℹ dist/views/index.d.ts 0.21 kB │ gzip: 0.11 kB
52
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
53
53
  ℹ dist/components/index.d.ts 0.19 kB │ gzip: 0.11 kB
54
54
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
55
55
  ℹ dist/docs/learning-journey-ui-gamified.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
56
- ℹ 47 files, total: 82.27 kB
57
- ✔ Build complete in 7524ms
56
+ ℹ 47 files, total: 81.83 kB
57
+ ✔ Build complete in 7028ms
@@ -15,8 +15,8 @@ $ tsdown
15
15
  ℹ dist/components/MasteryRing.js 2.15 kB │ gzip: 0.88 kB
16
16
  ℹ dist/views/Steps.js 1.63 kB │ gzip: 0.68 kB
17
17
  ℹ dist/components/DayCalendar.js 1.51 kB │ gzip: 0.68 kB
18
+ ℹ dist/example.js 0.88 kB │ gzip: 0.49 kB
18
19
  ℹ dist/docs/learning-journey-ui-gamified.docblock.js 0.83 kB │ gzip: 0.47 kB
19
- ℹ dist/example.js 0.78 kB │ gzip: 0.43 kB
20
20
  ℹ dist/index.js 0.67 kB │ gzip: 0.24 kB
21
21
  ℹ dist/views/index.js 0.21 kB │ gzip: 0.11 kB
22
22
  ℹ dist/components/index.js 0.19 kB │ gzip: 0.11 kB
@@ -29,8 +29,8 @@ $ tsdown
29
29
  ℹ dist/components/MasteryRing.js.map 3.43 kB │ gzip: 1.34 kB
30
30
  ℹ dist/views/Steps.js.map 2.36 kB │ gzip: 1.04 kB
31
31
  ℹ dist/components/DayCalendar.js.map 2.28 kB │ gzip: 0.99 kB
32
+ ℹ dist/example.js.map 1.40 kB │ gzip: 0.71 kB
32
33
  ℹ dist/docs/learning-journey-ui-gamified.docblock.js.map 1.17 kB │ gzip: 0.63 kB
33
- ℹ dist/example.js.map 1.13 kB │ gzip: 0.60 kB
34
34
  ℹ dist/components/MasteryRing.d.ts.map 0.37 kB │ gzip: 0.23 kB
35
35
  ℹ dist/components/FlashCard.d.ts.map 0.32 kB │ gzip: 0.21 kB
36
36
  ℹ dist/GamifiedMiniApp.d.ts.map 0.31 kB │ gzip: 0.22 kB
@@ -39,20 +39,20 @@ $ tsdown
39
39
  ℹ dist/views/Progress.d.ts.map 0.17 kB │ gzip: 0.15 kB
40
40
  ℹ dist/views/Timeline.d.ts.map 0.17 kB │ gzip: 0.15 kB
41
41
  ℹ dist/views/Steps.d.ts.map 0.17 kB │ gzip: 0.15 kB
42
- ℹ dist/example.d.ts.map 0.14 kB │ gzip: 0.13 kB
43
- ℹ dist/example.d.ts 1.01 kB │ gzip: 0.43 kB
42
+ ℹ dist/example.d.ts.map 0.12 kB │ gzip: 0.12 kB
44
43
  ℹ dist/index.d.ts 0.62 kB │ gzip: 0.22 kB
45
44
  ℹ dist/GamifiedMiniApp.d.ts 0.59 kB │ gzip: 0.33 kB
46
45
  ℹ dist/components/FlashCard.d.ts 0.53 kB │ gzip: 0.31 kB
47
46
  ℹ dist/views/Overview.d.ts 0.45 kB │ gzip: 0.29 kB
48
47
  ℹ dist/components/MasteryRing.d.ts 0.45 kB │ gzip: 0.28 kB
49
- ℹ dist/components/DayCalendar.d.ts 0.41 kB │ gzip: 0.25 kB
48
+ ℹ dist/components/DayCalendar.d.ts 0.41 kB │ gzip: 0.24 kB
50
49
  ℹ dist/views/Steps.d.ts 0.36 kB │ gzip: 0.25 kB
51
50
  ℹ dist/views/Progress.d.ts 0.35 kB │ gzip: 0.24 kB
52
51
  ℹ dist/views/Timeline.d.ts 0.35 kB │ gzip: 0.24 kB
53
52
  ℹ dist/views/index.d.ts 0.21 kB │ gzip: 0.11 kB
53
+ ℹ dist/example.d.ts 0.20 kB │ gzip: 0.16 kB
54
54
  ℹ dist/components/index.d.ts 0.19 kB │ gzip: 0.11 kB
55
55
  ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
56
56
  ℹ dist/docs/learning-journey-ui-gamified.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
57
- ℹ 47 files, total: 82.27 kB
58
- ✔ Build complete in 7179ms
57
+ ℹ 47 files, total: 81.83 kB
58
+ ✔ Build complete in 6389ms
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @contractspec/example.learning-journey-ui-gamified
2
2
 
3
+ ## 1.45.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e73ca1d: feat: improve app config and examples contracts
8
+ feat: Contract layers support (features, examples, app-configs)
9
+
10
+ ### New CLI Commands
11
+ - `contractspec list layers` - List all contract layers with filtering
12
+
13
+ ### Enhanced Commands
14
+ - `contractspec ci` - New `layers` check category validates features/examples/config
15
+ - `contractspec doctor` - New `layers` health checks
16
+ - `contractspec integrity` - Now shows layer statistics
17
+
18
+ ### New APIs
19
+ - `discoverLayers()` - Scan workspace for all layer files
20
+ - `scanExampleSource()` - Parse ExampleSpec from source code
21
+ - `isExampleFile()` - Check if file is an example spec
22
+
23
+ ### Patch Changes
24
+
25
+ - Updated dependencies [e73ca1d]
26
+ - @contractspec/example.learning-journey-quest-challenges@1.45.0
27
+ - @contractspec/example.learning-journey-duo-drills@1.45.0
28
+ - @contractspec/example.learning-journey-ui-shared@1.45.0
29
+ - @contractspec/module.learning-journey@1.45.0
30
+ - @contractspec/lib.design-system@1.45.0
31
+ - @contractspec/lib.ui-kit-web@1.45.0
32
+ - @contractspec/lib.contracts@1.45.0
33
+ - @contractspec/lib.schema@1.45.0
34
+
3
35
  ## 1.44.1
4
36
 
5
37
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { LearningMiniAppProps } from "@contractspec/example.learning-journey-ui-shared";
2
- import * as react_jsx_runtime6 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/GamifiedMiniApp.d.ts
5
5
  type GamifiedMiniAppProps = Omit<LearningMiniAppProps, 'progress'> & {
@@ -11,7 +11,7 @@ declare function GamifiedMiniApp({
11
11
  onStepComplete: externalOnStepComplete,
12
12
  onViewChange,
13
13
  initialView
14
- }: GamifiedMiniAppProps): react_jsx_runtime6.JSX.Element;
14
+ }: GamifiedMiniAppProps): react_jsx_runtime1.JSX.Element;
15
15
  //#endregion
16
16
  export { GamifiedMiniApp };
17
17
  //# sourceMappingURL=GamifiedMiniApp.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime5 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/DayCalendar.d.ts
4
4
  interface DayCalendarProps {
@@ -10,7 +10,7 @@ declare function DayCalendar({
10
10
  totalDays,
11
11
  currentDay,
12
12
  completedDays
13
- }: DayCalendarProps): react_jsx_runtime5.JSX.Element;
13
+ }: DayCalendarProps): react_jsx_runtime0.JSX.Element;
14
14
  //#endregion
15
15
  export { DayCalendar };
16
16
  //# sourceMappingURL=DayCalendar.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
2
2
  import { LearningJourneyStepSpec } from "@contractspec/module.learning-journey/track-spec";
3
3
 
4
4
  //#region src/components/FlashCard.d.ts
@@ -13,7 +13,7 @@ declare function FlashCard({
13
13
  isCompleted,
14
14
  isCurrent,
15
15
  onComplete
16
- }: FlashCardProps): react_jsx_runtime0.JSX.Element;
16
+ }: FlashCardProps): react_jsx_runtime2.JSX.Element;
17
17
  //#endregion
18
18
  export { FlashCard };
19
19
  //# sourceMappingURL=FlashCard.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/MasteryRing.d.ts
4
4
  interface MasteryRingProps {
@@ -12,7 +12,7 @@ declare function MasteryRing({
12
12
  percentage,
13
13
  size,
14
14
  color
15
- }: MasteryRingProps): react_jsx_runtime0.JSX.Element;
15
+ }: MasteryRingProps): react_jsx_runtime3.JSX.Element;
16
16
  //#endregion
17
17
  export { MasteryRing };
18
18
  //# sourceMappingURL=MasteryRing.d.ts.map
package/dist/example.d.ts CHANGED
@@ -1,33 +1,7 @@
1
+ import { ExampleSpec } from "@contractspec/lib.contracts";
2
+
1
3
  //#region src/example.d.ts
2
- declare const example: {
3
- readonly id: "learning-journey-ui-gamified";
4
- readonly title: "Learning Journey UI — Gamified";
5
- readonly summary: "UI mini-app for gamified learning: flashcards, mastery ring, calendar.";
6
- readonly tags: readonly ["learning", "ui", "gamified"];
7
- readonly kind: "ui";
8
- readonly visibility: "public";
9
- readonly docs: {
10
- readonly rootDocId: "docs.examples.learning-journey-ui-gamified";
11
- };
12
- readonly entrypoints: {
13
- readonly packageName: "@contractspec/example.learning-journey-ui-gamified";
14
- readonly docs: "./docs";
15
- };
16
- readonly surfaces: {
17
- readonly templates: true;
18
- readonly sandbox: {
19
- readonly enabled: true;
20
- readonly modes: readonly ["playground", "markdown"];
21
- };
22
- readonly studio: {
23
- readonly enabled: true;
24
- readonly installable: true;
25
- };
26
- readonly mcp: {
27
- readonly enabled: true;
28
- };
29
- };
30
- };
4
+ declare const example: ExampleSpec;
31
5
  //#endregion
32
6
  export { example as default };
33
7
  //# sourceMappingURL=example.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";cAAM;EAAA,SAAA,EAqBI,EAAA,8BAAA"}
1
+ {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";;;cAEM,SAAS"}
package/dist/example.js CHANGED
@@ -1,15 +1,20 @@
1
1
  //#region src/example.ts
2
2
  const example = {
3
- id: "learning-journey-ui-gamified",
4
- title: "Learning Journey UI — Gamified",
5
- summary: "UI mini-app for gamified learning: flashcards, mastery ring, calendar.",
6
- tags: [
7
- "learning",
8
- "ui",
9
- "gamified"
10
- ],
11
- kind: "ui",
12
- visibility: "public",
3
+ meta: {
4
+ key: "learning-journey-ui-gamified",
5
+ version: "1.0.0",
6
+ title: "Learning Journey UI — Gamified",
7
+ description: "UI mini-app for gamified learning: flashcards, mastery ring, calendar.",
8
+ kind: "ui",
9
+ visibility: "public",
10
+ stability: "experimental",
11
+ owners: ["@platform.core"],
12
+ tags: [
13
+ "learning",
14
+ "ui",
15
+ "gamified"
16
+ ]
17
+ },
13
18
  docs: { rootDocId: "docs.examples.learning-journey-ui-gamified" },
14
19
  entrypoints: {
15
20
  packageName: "@contractspec/example.learning-journey-ui-gamified",
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'learning-journey-ui-gamified',\n title: 'Learning Journey UI — Gamified',\n summary:\n 'UI mini-app for gamified learning: flashcards, mastery ring, calendar.',\n tags: ['learning', 'ui', 'gamified'],\n kind: 'ui',\n visibility: 'public',\n docs: {\n rootDocId: 'docs.examples.learning-journey-ui-gamified',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-ui-gamified',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n} as const;\n\nexport default example;\n"],"mappings":";AAAA,MAAM,UAAU;CACd,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;EAAC;EAAY;EAAM;EAAW;CACpC,MAAM;CACN,YAAY;CACZ,MAAM,EACJ,WAAW,8CACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
1
+ {"version":3,"file":"example.js","names":["example: ExampleSpec"],"sources":["../src/example.ts"],"sourcesContent":["import type { ExampleSpec } from '@contractspec/lib.contracts';\n\nconst example: ExampleSpec = {\n meta: {\n key: 'learning-journey-ui-gamified',\n version: '1.0.0',\n title: 'Learning Journey UI — Gamified',\n description:\n 'UI mini-app for gamified learning: flashcards, mastery ring, calendar.',\n kind: 'ui',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['learning', 'ui', 'gamified'],\n },\n docs: {\n rootDocId: 'docs.examples.learning-journey-ui-gamified',\n },\n entrypoints: {\n packageName: '@contractspec/example.learning-journey-ui-gamified',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['playground', 'markdown'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n};\n\nexport default example;\n"],"mappings":";AAEA,MAAMA,UAAuB;CAC3B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAY;GAAM;GAAW;EACrC;CACD,MAAM,EACJ,WAAW,8CACZ;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,cAAc,WAAW;GAAE;EAC7D,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF;AAED,sBAAe"}
@@ -1,5 +1,5 @@
1
1
  import { LearningViewProps } from "@contractspec/example.learning-journey-ui-shared";
2
- import * as react_jsx_runtime1 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/views/Overview.d.ts
5
5
  interface GamifiedOverviewProps extends LearningViewProps {
@@ -9,7 +9,7 @@ declare function Overview({
9
9
  track,
10
10
  progress,
11
11
  onStart
12
- }: GamifiedOverviewProps): react_jsx_runtime1.JSX.Element;
12
+ }: GamifiedOverviewProps): react_jsx_runtime0.JSX.Element;
13
13
  //#endregion
14
14
  export { Overview };
15
15
  //# sourceMappingURL=Overview.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import { LearningViewProps } from "@contractspec/example.learning-journey-ui-shared";
2
- import * as react_jsx_runtime2 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/views/Progress.d.ts
5
5
  declare function Progress({
6
6
  track,
7
7
  progress
8
- }: LearningViewProps): react_jsx_runtime2.JSX.Element;
8
+ }: LearningViewProps): react_jsx_runtime5.JSX.Element;
9
9
  //#endregion
10
10
  export { Progress };
11
11
  //# sourceMappingURL=Progress.d.ts.map
@@ -1,12 +1,12 @@
1
1
  import { LearningViewProps } from "@contractspec/example.learning-journey-ui-shared";
2
- import * as react_jsx_runtime3 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/views/Steps.d.ts
5
5
  declare function Steps({
6
6
  track,
7
7
  progress,
8
8
  onStepComplete
9
- }: LearningViewProps): react_jsx_runtime3.JSX.Element;
9
+ }: LearningViewProps): react_jsx_runtime4.JSX.Element;
10
10
  //#endregion
11
11
  export { Steps };
12
12
  //# sourceMappingURL=Steps.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import { LearningViewProps } from "@contractspec/example.learning-journey-ui-shared";
2
- import * as react_jsx_runtime4 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/views/Timeline.d.ts
5
5
  declare function Timeline({
6
6
  track,
7
7
  progress
8
- }: LearningViewProps): react_jsx_runtime4.JSX.Element;
8
+ }: LearningViewProps): react_jsx_runtime6.JSX.Element;
9
9
  //#endregion
10
10
  export { Timeline };
11
11
  //# sourceMappingURL=Timeline.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contractspec/example.learning-journey-ui-gamified",
3
- "version": "1.44.1",
3
+ "version": "1.45.0",
4
4
  "description": "Duolingo-style gamified learning UI for drills and quests.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -36,19 +36,19 @@
36
36
  "test": "bun test"
37
37
  },
38
38
  "dependencies": {
39
- "@contractspec/lib.schema": "1.44.1",
40
- "@contractspec/lib.contracts": "1.44.1",
41
- "@contractspec/example.learning-journey-ui-shared": "1.44.1",
42
- "@contractspec/example.learning-journey-duo-drills": "1.44.1",
43
- "@contractspec/example.learning-journey-quest-challenges": "1.44.1",
44
- "@contractspec/module.learning-journey": "1.44.1",
45
- "@contractspec/lib.design-system": "1.44.1",
46
- "@contractspec/lib.ui-kit-web": "1.44.1",
39
+ "@contractspec/lib.schema": "1.45.0",
40
+ "@contractspec/lib.contracts": "1.45.0",
41
+ "@contractspec/example.learning-journey-ui-shared": "1.45.0",
42
+ "@contractspec/example.learning-journey-duo-drills": "1.45.0",
43
+ "@contractspec/example.learning-journey-quest-challenges": "1.45.0",
44
+ "@contractspec/module.learning-journey": "1.45.0",
45
+ "@contractspec/lib.design-system": "1.45.0",
46
+ "@contractspec/lib.ui-kit-web": "1.45.0",
47
47
  "react": "19.2.3"
48
48
  },
49
49
  "devDependencies": {
50
- "@contractspec/tool.tsdown": "1.44.1",
51
- "@contractspec/tool.typescript": "1.44.1",
50
+ "@contractspec/tool.tsdown": "1.45.0",
51
+ "@contractspec/tool.typescript": "1.45.0",
52
52
  "@types/react": "^19.1.6",
53
53
  "tsdown": "^0.18.3",
54
54
  "typescript": "^5.9.3"
package/src/example.ts CHANGED
@@ -1,11 +1,18 @@
1
- const example = {
2
- id: 'learning-journey-ui-gamified',
3
- title: 'Learning Journey UI — Gamified',
4
- summary:
5
- 'UI mini-app for gamified learning: flashcards, mastery ring, calendar.',
6
- tags: ['learning', 'ui', 'gamified'],
7
- kind: 'ui',
8
- visibility: 'public',
1
+ import type { ExampleSpec } from '@contractspec/lib.contracts';
2
+
3
+ const example: ExampleSpec = {
4
+ meta: {
5
+ key: 'learning-journey-ui-gamified',
6
+ version: '1.0.0',
7
+ title: 'Learning Journey UI — Gamified',
8
+ description:
9
+ 'UI mini-app for gamified learning: flashcards, mastery ring, calendar.',
10
+ kind: 'ui',
11
+ visibility: 'public',
12
+ stability: 'experimental',
13
+ owners: ['@platform.core'],
14
+ tags: ['learning', 'ui', 'gamified'],
15
+ },
9
16
  docs: {
10
17
  rootDocId: 'docs.examples.learning-journey-ui-gamified',
11
18
  },
@@ -19,6 +26,6 @@ const example = {
19
26
  studio: { enabled: true, installable: true },
20
27
  mcp: { enabled: true },
21
28
  },
22
- } as const;
29
+ };
23
30
 
24
31
  export default example;