@lssm/example.learning-journey-registry 0.0.0-canary-20251217060834 → 0.0.0-canary-20251217072406

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.
Files changed (112) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +402 -57
  2. package/.turbo/turbo-build.log +401 -56
  3. package/CHANGELOG.md +14 -12
  4. package/dist/api.js +170 -1
  5. package/dist/docs/index.js +1 -1
  6. package/dist/docs/learning-journey-registry.docblock.js +38 -1
  7. package/dist/example.js +34 -1
  8. package/dist/examples/learning-journey-ambient-coach/src/track.js +41 -0
  9. package/dist/examples/learning-journey-crm-onboarding/dist/track.js +98 -0
  10. package/dist/examples/learning-journey-duo-drills/src/track.js +65 -0
  11. package/dist/examples/learning-journey-platform-tour/dist/track.js +105 -0
  12. package/dist/examples/learning-journey-quest-challenges/src/track.js +35 -0
  13. package/dist/examples/learning-journey-studio-onboarding/dist/track.js +90 -0
  14. package/dist/examples/learning-journey-ui-coaching/src/CoachingMiniApp.js +64 -0
  15. package/dist/examples/learning-journey-ui-coaching/src/components/EngagementMeter.js +107 -0
  16. package/dist/examples/learning-journey-ui-coaching/src/components/TipCard.js +75 -0
  17. package/dist/examples/learning-journey-ui-coaching/src/components/TipFeed.js +65 -0
  18. package/dist/examples/learning-journey-ui-coaching/src/components/index.js +3 -0
  19. package/dist/examples/learning-journey-ui-coaching/src/docs/index.js +1 -0
  20. package/dist/examples/learning-journey-ui-coaching/src/docs/learning-journey-ui-coaching.docblock.js +20 -0
  21. package/dist/examples/learning-journey-ui-coaching/src/index.js +11 -0
  22. package/dist/examples/learning-journey-ui-coaching/src/views/Overview.js +152 -0
  23. package/dist/examples/learning-journey-ui-coaching/src/views/Progress.js +117 -0
  24. package/dist/examples/learning-journey-ui-coaching/src/views/Steps.js +68 -0
  25. package/dist/examples/learning-journey-ui-coaching/src/views/Timeline.js +112 -0
  26. package/dist/examples/learning-journey-ui-coaching/src/views/index.js +4 -0
  27. package/dist/examples/learning-journey-ui-gamified/src/GamifiedMiniApp.js +64 -0
  28. package/dist/examples/learning-journey-ui-gamified/src/components/DayCalendar.js +32 -0
  29. package/dist/examples/learning-journey-ui-gamified/src/components/FlashCard.js +79 -0
  30. package/dist/examples/learning-journey-ui-gamified/src/components/MasteryRing.js +81 -0
  31. package/dist/examples/learning-journey-ui-gamified/src/components/index.js +3 -0
  32. package/dist/examples/learning-journey-ui-gamified/src/docs/index.js +1 -0
  33. package/dist/examples/learning-journey-ui-gamified/src/docs/learning-journey-ui-gamified.docblock.js +20 -0
  34. package/dist/examples/learning-journey-ui-gamified/src/index.js +11 -0
  35. package/dist/examples/learning-journey-ui-gamified/src/views/Overview.js +163 -0
  36. package/dist/examples/learning-journey-ui-gamified/src/views/Progress.js +144 -0
  37. package/dist/examples/learning-journey-ui-gamified/src/views/Steps.js +55 -0
  38. package/dist/examples/learning-journey-ui-gamified/src/views/Timeline.js +132 -0
  39. package/dist/examples/learning-journey-ui-gamified/src/views/index.js +4 -0
  40. package/dist/examples/learning-journey-ui-onboarding/src/OnboardingMiniApp.js +64 -0
  41. package/dist/examples/learning-journey-ui-onboarding/src/components/CodeSnippet.js +4 -0
  42. package/dist/examples/learning-journey-ui-onboarding/src/components/JourneyMap.js +48 -0
  43. package/dist/examples/learning-journey-ui-onboarding/src/components/StepChecklist.js +79 -0
  44. package/dist/examples/learning-journey-ui-onboarding/src/components/index.js +3 -0
  45. package/dist/examples/learning-journey-ui-onboarding/src/docs/index.js +1 -0
  46. package/dist/examples/learning-journey-ui-onboarding/src/docs/learning-journey-ui-onboarding.docblock.js +20 -0
  47. package/dist/examples/learning-journey-ui-onboarding/src/index.js +10 -0
  48. package/dist/examples/learning-journey-ui-onboarding/src/views/Overview.js +180 -0
  49. package/dist/examples/learning-journey-ui-onboarding/src/views/Progress.js +162 -0
  50. package/dist/examples/learning-journey-ui-onboarding/src/views/Steps.js +91 -0
  51. package/dist/examples/learning-journey-ui-onboarding/src/views/Timeline.js +97 -0
  52. package/dist/examples/learning-journey-ui-onboarding/src/views/index.js +4 -0
  53. package/dist/examples/learning-journey-ui-shared/src/components/BadgeDisplay.js +44 -0
  54. package/dist/examples/learning-journey-ui-shared/src/components/StreakCounter.js +45 -0
  55. package/dist/examples/learning-journey-ui-shared/src/components/ViewTabs.js +48 -0
  56. package/dist/examples/learning-journey-ui-shared/src/components/XpBar.js +46 -0
  57. package/dist/examples/learning-journey-ui-shared/src/components/index.js +4 -0
  58. package/dist/examples/learning-journey-ui-shared/src/docs/index.js +1 -0
  59. package/dist/examples/learning-journey-ui-shared/src/docs/learning-journey-ui-shared.docblock.js +20 -0
  60. package/dist/examples/learning-journey-ui-shared/src/hooks/index.js +1 -0
  61. package/dist/examples/learning-journey-ui-shared/src/hooks/useLearningProgress.js +73 -0
  62. package/dist/examples/learning-journey-ui-shared/src/index.js +8 -0
  63. package/dist/index.js +13 -1
  64. package/dist/learning-journey-registry.feature.js +66 -1
  65. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +16 -76
  66. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +16 -350
  67. package/dist/libs/contracts/dist/docs/index.js +29 -1
  68. package/dist/libs/contracts/dist/docs/presentations.js +71 -1
  69. package/dist/libs/contracts/dist/docs/registry.js +44 -1
  70. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +16 -383
  71. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +16 -68
  72. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +16 -140
  73. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +16 -86
  74. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +16 -1
  75. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +24 -2
  76. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +21 -2
  77. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +16 -213
  78. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +73 -5
  79. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +37 -1
  80. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +16 -1
  81. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +20 -262
  82. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +48 -1
  83. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +24 -2
  84. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +23 -2
  85. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +25 -16
  86. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +67 -1
  87. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +22 -2
  88. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +40 -36
  89. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +47 -1
  90. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +23 -2
  91. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +36 -3
  92. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +20 -1
  93. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +36 -3
  94. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +20 -1
  95. package/dist/libs/design-system/dist/_virtual/rolldown_runtime.js +5 -0
  96. package/dist/libs/design-system/dist/components/atoms/Button.js +33 -0
  97. package/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js +55 -0
  98. package/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +13 -0
  99. package/dist/libs/ui-kit-core/dist/utils.js +10 -0
  100. package/dist/libs/ui-kit-web/dist/ui/card.js +36 -0
  101. package/dist/libs/ui-kit-web/dist/ui/progress.js +23 -0
  102. package/dist/libs/ui-kit-web/dist/ui/utils.js +10 -0
  103. package/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js +10 -0
  104. package/dist/presentations/index.js +64 -1
  105. package/dist/progress-store.js +30 -1
  106. package/dist/tracks.d.ts +1 -1
  107. package/dist/tracks.js +47 -1
  108. package/dist/ui/LearningMiniApp.d.ts +0 -1
  109. package/dist/ui/LearningMiniApp.js +82 -1
  110. package/dist/ui/index.js +3 -1
  111. package/package.json +16 -14
  112. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1,64 @@
1
- const e={domain:`learning-journey`,owners:[`learning-team`],tags:[`learning`,`journey`,`onboarding`]},t={meta:{name:`learning.journey.track_list`,version:1,description:`List of learning journeys available to the learner.`,...e},source:{type:`component`,framework:`react`,componentKey:`LearningTrackList`},targets:[`react`,`markdown`]},n={meta:{name:`learning.journey.track_detail`,version:1,description:`Track detail with steps and progress state.`,...e},source:{type:`component`,framework:`react`,componentKey:`LearningTrackDetail`},targets:[`react`,`markdown`,`application/json`]},r={meta:{name:`learning.journey.progress_widget`,version:1,description:`Compact widget showing progress for active track.`,...e},source:{type:`component`,framework:`react`,componentKey:`LearningTrackProgressWidget`},targets:[`react`]},i=[t,n,r];export{n as LearningTrackDetailPresentation,t as LearningTrackListPresentation,r as LearningTrackProgressWidgetPresentation,i as learningJourneyPresentations};
1
+ //#region src/presentations/index.ts
2
+ const baseMeta = {
3
+ domain: "learning-journey",
4
+ owners: ["learning-team"],
5
+ tags: [
6
+ "learning",
7
+ "journey",
8
+ "onboarding"
9
+ ]
10
+ };
11
+ const LearningTrackListPresentation = {
12
+ meta: {
13
+ name: "learning.journey.track_list",
14
+ version: 1,
15
+ description: "List of learning journeys available to the learner.",
16
+ ...baseMeta
17
+ },
18
+ source: {
19
+ type: "component",
20
+ framework: "react",
21
+ componentKey: "LearningTrackList"
22
+ },
23
+ targets: ["react", "markdown"]
24
+ };
25
+ const LearningTrackDetailPresentation = {
26
+ meta: {
27
+ name: "learning.journey.track_detail",
28
+ version: 1,
29
+ description: "Track detail with steps and progress state.",
30
+ ...baseMeta
31
+ },
32
+ source: {
33
+ type: "component",
34
+ framework: "react",
35
+ componentKey: "LearningTrackDetail"
36
+ },
37
+ targets: [
38
+ "react",
39
+ "markdown",
40
+ "application/json"
41
+ ]
42
+ };
43
+ const LearningTrackProgressWidgetPresentation = {
44
+ meta: {
45
+ name: "learning.journey.progress_widget",
46
+ version: 1,
47
+ description: "Compact widget showing progress for active track.",
48
+ ...baseMeta
49
+ },
50
+ source: {
51
+ type: "component",
52
+ framework: "react",
53
+ componentKey: "LearningTrackProgressWidget"
54
+ },
55
+ targets: ["react"]
56
+ };
57
+ const learningJourneyPresentations = [
58
+ LearningTrackListPresentation,
59
+ LearningTrackDetailPresentation,
60
+ LearningTrackProgressWidgetPresentation
61
+ ];
62
+
63
+ //#endregion
64
+ export { LearningTrackDetailPresentation, LearningTrackListPresentation, LearningTrackProgressWidgetPresentation, learningJourneyPresentations };
@@ -1 +1,30 @@
1
- const e=new Map,t=e=>t=>e.find(e=>e.id===t),n=t=>{let n=e.get(t);if(n)return n;let r=new Map;return e.set(t,r),r},r=(e,t)=>({learnerId:e,trackId:t.id,progress:0,isCompleted:!1,xpEarned:0,steps:t.steps.map(e=>({id:e.id,status:`PENDING`,xpEarned:0,occurrences:0,masteryCount:0})),startedAt:void 0,completedAt:void 0,lastActivityAt:void 0});export{n as getLearnerTracks,t as getTrackResolver,r as initProgress,e as progressStore};
1
+ //#region src/progress-store.ts
2
+ const progressStore = /* @__PURE__ */ new Map();
3
+ const getTrackResolver = (tracks) => (trackId) => tracks.find((t) => t.id === trackId);
4
+ const getLearnerTracks = (learnerId) => {
5
+ const existing = progressStore.get(learnerId);
6
+ if (existing) return existing;
7
+ const map = /* @__PURE__ */ new Map();
8
+ progressStore.set(learnerId, map);
9
+ return map;
10
+ };
11
+ const initProgress = (learnerId, track) => ({
12
+ learnerId,
13
+ trackId: track.id,
14
+ progress: 0,
15
+ isCompleted: false,
16
+ xpEarned: 0,
17
+ steps: track.steps.map((step) => ({
18
+ id: step.id,
19
+ status: "PENDING",
20
+ xpEarned: 0,
21
+ occurrences: 0,
22
+ masteryCount: 0
23
+ })),
24
+ startedAt: void 0,
25
+ completedAt: void 0,
26
+ lastActivityAt: void 0
27
+ });
28
+
29
+ //#endregion
30
+ export { getLearnerTracks, getTrackResolver, initProgress, progressStore };
package/dist/tracks.d.ts CHANGED
@@ -1,7 +1,7 @@
1
+ import { LearningJourneyStepSpec, LearningJourneyTrackSpec, StepAvailabilitySpec, StepCompletionConditionSpec } from "@lssm/module.learning-journey/track-spec";
1
2
  import { crmLearningTracks } from "@lssm/example.learning-journey-crm-onboarding/track";
2
3
  import { platformLearningTracks } from "@lssm/example.learning-journey-platform-tour/track";
3
4
  import { studioLearningTracks } from "@lssm/example.learning-journey-studio-onboarding/track";
4
- import { LearningJourneyStepSpec, LearningJourneyTrackSpec, StepAvailabilitySpec, StepCompletionConditionSpec } from "@lssm/module.learning-journey/track-spec";
5
5
 
6
6
  //#region src/tracks.d.ts
7
7
  interface OnboardingStepDto {
package/dist/tracks.js CHANGED
@@ -1 +1,47 @@
1
- import{crmLearningTracks as e}from"@lssm/example.learning-journey-crm-onboarding/track";import{drillTracks as t}from"@lssm/example.learning-journey-duo-drills/track";import{ambientCoachTracks as n}from"@lssm/example.learning-journey-ambient-coach/track";import{questTracks as r}from"@lssm/example.learning-journey-quest-challenges/track";import{platformLearningTracks as i}from"@lssm/example.learning-journey-platform-tour/track";import{studioLearningTracks as a}from"@lssm/example.learning-journey-studio-onboarding/track";const o=e=>({id:e.id,title:e.title,description:e.description,completionEvent:e.completion.eventName,completionCondition:e.completion,xpReward:e.xpReward,isRequired:e.isRequired,canSkip:e.canSkip,actionUrl:e.actionUrl,actionLabel:e.actionLabel,availability:e.availability,metadata:e.metadata}),s=e=>({id:e.id,name:e.name,description:e.description,productId:e.productId,targetUserSegment:e.targetUserSegment,targetRole:e.targetRole,totalXp:e.totalXp,streakRule:e.streakRule,completionRewards:e.completionRewards,steps:e.steps.map(o),metadata:e.metadata}),c=[...a,...i,...e,...t,...n,...r],l=c.map(s);export{e as crmLearningTracks,c as learningJourneyTracks,o as mapStep,s as mapTrackSpecToDto,l as onboardingTrackCatalog,i as platformLearningTracks,a as studioLearningTracks};
1
+ import { crmLearningTracks } from "./examples/learning-journey-crm-onboarding/dist/track.js";
2
+ import { drillTracks } from "./examples/learning-journey-duo-drills/src/track.js";
3
+ import { ambientCoachTracks } from "./examples/learning-journey-ambient-coach/src/track.js";
4
+ import { questTracks } from "./examples/learning-journey-quest-challenges/src/track.js";
5
+ import { platformLearningTracks } from "./examples/learning-journey-platform-tour/dist/track.js";
6
+ import { studioLearningTracks } from "./examples/learning-journey-studio-onboarding/dist/track.js";
7
+
8
+ //#region src/tracks.ts
9
+ const mapStep = (step) => ({
10
+ id: step.id,
11
+ title: step.title,
12
+ description: step.description,
13
+ completionEvent: step.completion.eventName,
14
+ completionCondition: step.completion,
15
+ xpReward: step.xpReward,
16
+ isRequired: step.isRequired,
17
+ canSkip: step.canSkip,
18
+ actionUrl: step.actionUrl,
19
+ actionLabel: step.actionLabel,
20
+ availability: step.availability,
21
+ metadata: step.metadata
22
+ });
23
+ const mapTrackSpecToDto = (track) => ({
24
+ id: track.id,
25
+ name: track.name,
26
+ description: track.description,
27
+ productId: track.productId,
28
+ targetUserSegment: track.targetUserSegment,
29
+ targetRole: track.targetRole,
30
+ totalXp: track.totalXp,
31
+ streakRule: track.streakRule,
32
+ completionRewards: track.completionRewards,
33
+ steps: track.steps.map(mapStep),
34
+ metadata: track.metadata
35
+ });
36
+ const learningJourneyTracks = [
37
+ ...studioLearningTracks,
38
+ ...platformLearningTracks,
39
+ ...crmLearningTracks,
40
+ ...drillTracks,
41
+ ...ambientCoachTracks,
42
+ ...questTracks
43
+ ];
44
+ const onboardingTrackCatalog = learningJourneyTracks.map(mapTrackSpecToDto);
45
+
46
+ //#endregion
47
+ export { crmLearningTracks, learningJourneyTracks, mapStep, mapTrackSpecToDto, onboardingTrackCatalog, platformLearningTracks, studioLearningTracks };
@@ -1,5 +1,4 @@
1
1
  import * as react_jsx_runtime0 from "react/jsx-runtime";
2
- import { LearningView } from "@lssm/example.learning-journey-ui-shared";
3
2
 
4
3
  //#region src/ui/LearningMiniApp.d.ts
5
4
  /** Template IDs that map to learning journey tracks */
@@ -1 +1,82 @@
1
- "use client";import{learningJourneyTracks as e}from"../tracks.js";import{useMemo as t}from"react";import{GamifiedMiniApp as n}from"@lssm/example.learning-journey-ui-gamified";import{OnboardingMiniApp as r}from"@lssm/example.learning-journey-ui-onboarding";import{CoachingMiniApp as i}from"@lssm/example.learning-journey-ui-coaching";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s={"learning-journey-duo-drills":`drills_language_basics`,"learning-journey-quest-challenges":`money_reset_7day`,"learning-journey-studio-onboarding":`studio_getting_started`,"learning-journey-platform-tour":`platform_tour`,"learning-journey-ambient-coach":`money_ambient_coach`,"learning-journey-crm-onboarding":`crm_first_win`},c={"learning-journey-duo-drills":`gamified`,"learning-journey-quest-challenges":`gamified`,"learning-journey-studio-onboarding":`onboarding`,"learning-journey-platform-tour":`onboarding`,"learning-journey-ambient-coach":`coaching`,"learning-journey-crm-onboarding":`coaching`};function l({templateId:l,initialView:u=`overview`,onViewChange:d}){let f=t(()=>{let t=s[l];return t?e.find(e=>e.id===t):null},[l]),p=c[l];if(!f)return a(`div`,{className:`rounded-lg border border-amber-500/50 bg-amber-500/10 p-6 text-center`,children:o(`p`,{className:`text-amber-500`,children:[`Unknown learning template: `,l]})});switch(p){case`gamified`:return a(n,{track:f,initialView:u,onViewChange:d});case`onboarding`:return a(r,{track:f,initialView:u,onViewChange:d});case`coaching`:return a(i,{track:f,initialView:u,onViewChange:d});default:return a(`div`,{className:`rounded-lg border border-red-500/50 bg-red-500/10 p-6 text-center`,children:o(`p`,{className:`text-red-500`,children:[`Unknown app type for template: `,l]})})}}function u(e){return e in s}function d(){return Object.keys(s)}export{l as LearningMiniApp,d as getLearningTemplateIds,u as isLearningTemplate};
1
+ 'use client';
2
+
3
+ import { learningJourneyTracks } from "../tracks.js";
4
+ import { GamifiedMiniApp } from "../examples/learning-journey-ui-gamified/src/GamifiedMiniApp.js";
5
+ import "../examples/learning-journey-ui-gamified/src/index.js";
6
+ import { OnboardingMiniApp } from "../examples/learning-journey-ui-onboarding/src/OnboardingMiniApp.js";
7
+ import "../examples/learning-journey-ui-onboarding/src/index.js";
8
+ import { CoachingMiniApp } from "../examples/learning-journey-ui-coaching/src/CoachingMiniApp.js";
9
+ import "../examples/learning-journey-ui-coaching/src/index.js";
10
+ import { useMemo } from "react";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+
13
+ //#region src/ui/LearningMiniApp.tsx
14
+ /** Map template IDs to track IDs */
15
+ const TEMPLATE_TO_TRACK = {
16
+ "learning-journey-duo-drills": "drills_language_basics",
17
+ "learning-journey-quest-challenges": "money_reset_7day",
18
+ "learning-journey-studio-onboarding": "studio_getting_started",
19
+ "learning-journey-platform-tour": "platform_tour",
20
+ "learning-journey-ambient-coach": "money_ambient_coach",
21
+ "learning-journey-crm-onboarding": "crm_first_win"
22
+ };
23
+ /** Map template IDs to mini-app type */
24
+ const TEMPLATE_TO_APP_TYPE = {
25
+ "learning-journey-duo-drills": "gamified",
26
+ "learning-journey-quest-challenges": "gamified",
27
+ "learning-journey-studio-onboarding": "onboarding",
28
+ "learning-journey-platform-tour": "onboarding",
29
+ "learning-journey-ambient-coach": "coaching",
30
+ "learning-journey-crm-onboarding": "coaching"
31
+ };
32
+ /** Router component that picks the correct mini-app based on template ID */
33
+ function LearningMiniApp({ templateId, initialView = "overview", onViewChange }) {
34
+ const track = useMemo(() => {
35
+ const trackId = TEMPLATE_TO_TRACK[templateId];
36
+ if (!trackId) return null;
37
+ return learningJourneyTracks.find((t) => t.id === trackId);
38
+ }, [templateId]);
39
+ const appType = TEMPLATE_TO_APP_TYPE[templateId];
40
+ if (!track) return /* @__PURE__ */ jsx("div", {
41
+ className: "rounded-lg border border-amber-500/50 bg-amber-500/10 p-6 text-center",
42
+ children: /* @__PURE__ */ jsxs("p", {
43
+ className: "text-amber-500",
44
+ children: ["Unknown learning template: ", templateId]
45
+ })
46
+ });
47
+ switch (appType) {
48
+ case "gamified": return /* @__PURE__ */ jsx(GamifiedMiniApp, {
49
+ track,
50
+ initialView,
51
+ onViewChange
52
+ });
53
+ case "onboarding": return /* @__PURE__ */ jsx(OnboardingMiniApp, {
54
+ track,
55
+ initialView,
56
+ onViewChange
57
+ });
58
+ case "coaching": return /* @__PURE__ */ jsx(CoachingMiniApp, {
59
+ track,
60
+ initialView,
61
+ onViewChange
62
+ });
63
+ default: return /* @__PURE__ */ jsx("div", {
64
+ className: "rounded-lg border border-red-500/50 bg-red-500/10 p-6 text-center",
65
+ children: /* @__PURE__ */ jsxs("p", {
66
+ className: "text-red-500",
67
+ children: ["Unknown app type for template: ", templateId]
68
+ })
69
+ });
70
+ }
71
+ }
72
+ /** Check if a template ID is a learning journey template */
73
+ function isLearningTemplate(templateId) {
74
+ return templateId in TEMPLATE_TO_TRACK;
75
+ }
76
+ /** Get all learning template IDs */
77
+ function getLearningTemplateIds() {
78
+ return Object.keys(TEMPLATE_TO_TRACK);
79
+ }
80
+
81
+ //#endregion
82
+ export { LearningMiniApp, getLearningTemplateIds, isLearningTemplate };
package/dist/ui/index.js CHANGED
@@ -1 +1,3 @@
1
- import{LearningMiniApp as e,getLearningTemplateIds as t,isLearningTemplate as n}from"./LearningMiniApp.js";export{e as LearningMiniApp,t as getLearningTemplateIds,n as isLearningTemplate};
1
+ import { LearningMiniApp, getLearningTemplateIds, isLearningTemplate } from "./LearningMiniApp.js";
2
+
3
+ export { LearningMiniApp, getLearningTemplateIds, isLearningTemplate };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lssm/example.learning-journey-registry",
3
- "version": "0.0.0-canary-20251217060834",
3
+ "version": "0.0.0-canary-20251217072406",
4
4
  "description": "Registry that aggregates learning journey example tracks.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -34,22 +34,24 @@
34
34
  "lint:check": "eslint src"
35
35
  },
36
36
  "dependencies": {
37
- "@lssm/example.learning-journey-ambient-coach": "0.0.0-canary-20251217060834",
38
- "@lssm/example.learning-journey-duo-drills": "0.0.0-canary-20251217060834",
39
- "@lssm/example.learning-journey-crm-onboarding": "0.0.0-canary-20251217060834",
40
- "@lssm/example.learning-journey-platform-tour": "0.0.0-canary-20251217060834",
41
- "@lssm/example.learning-journey-quest-challenges": "0.0.0-canary-20251217060834",
42
- "@lssm/example.learning-journey-studio-onboarding": "0.0.0-canary-20251217060834",
43
- "@lssm/example.learning-journey-ui-shared": "0.0.0-canary-20251217060834",
44
- "@lssm/example.learning-journey-ui-gamified": "0.0.0-canary-20251217060834",
45
- "@lssm/example.learning-journey-ui-onboarding": "0.0.0-canary-20251217060834",
46
- "@lssm/example.learning-journey-ui-coaching": "0.0.0-canary-20251217060834",
47
- "@lssm/module.learning-journey": "0.0.0-canary-20251217060834",
37
+ "@lssm/lib.schema": "0.0.0-canary-20251217072406",
38
+ "@lssm/lib.contracts": "0.0.0-canary-20251217072406",
39
+ "@lssm/example.learning-journey-ambient-coach": "0.0.0-canary-20251217072406",
40
+ "@lssm/example.learning-journey-duo-drills": "0.0.0-canary-20251217072406",
41
+ "@lssm/example.learning-journey-crm-onboarding": "0.0.0-canary-20251217072406",
42
+ "@lssm/example.learning-journey-platform-tour": "0.0.0-canary-20251217072406",
43
+ "@lssm/example.learning-journey-quest-challenges": "0.0.0-canary-20251217072406",
44
+ "@lssm/example.learning-journey-studio-onboarding": "0.0.0-canary-20251217072406",
45
+ "@lssm/example.learning-journey-ui-shared": "0.0.0-canary-20251217072406",
46
+ "@lssm/example.learning-journey-ui-gamified": "0.0.0-canary-20251217072406",
47
+ "@lssm/example.learning-journey-ui-onboarding": "0.0.0-canary-20251217072406",
48
+ "@lssm/example.learning-journey-ui-coaching": "0.0.0-canary-20251217072406",
49
+ "@lssm/module.learning-journey": "0.0.0-canary-20251217072406",
48
50
  "react": "^19.2.3"
49
51
  },
50
52
  "devDependencies": {
51
- "@lssm/tool.tsdown": "0.0.0-canary-20251217060834",
52
- "@lssm/tool.typescript": "0.0.0-canary-20251217060834",
53
+ "@lssm/tool.tsdown": "0.0.0-canary-20251217072406",
54
+ "@lssm/tool.typescript": "0.0.0-canary-20251217072406",
53
55
  "@types/react": "^19.1.6",
54
56
  "tsdown": "^0.17.4",
55
57
  "typescript": "^5.9.3"