@lssm/example.learning-journey-ui-onboarding 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229
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$colon$bundle.log +486 -22
- package/.turbo/turbo-build.log +487 -24
- package/CHANGELOG.md +10 -10
- package/LICENSE +21 -0
- package/dist/OnboardingMiniApp.d.ts +17 -0
- package/dist/OnboardingMiniApp.d.ts.map +1 -0
- package/dist/OnboardingMiniApp.js +65 -0
- package/dist/OnboardingMiniApp.js.map +1 -0
- package/dist/components/CodeSnippet.d.ts +16 -0
- package/dist/components/CodeSnippet.d.ts.map +1 -0
- package/dist/{components-OUN5S2z0.mjs → components/CodeSnippet.js} +5 -2
- package/dist/components/CodeSnippet.js.map +1 -0
- package/dist/components/JourneyMap.d.ts +17 -0
- package/dist/components/JourneyMap.d.ts.map +1 -0
- package/dist/components/JourneyMap.js +49 -0
- package/dist/components/JourneyMap.js.map +1 -0
- package/dist/components/StepChecklist.d.ts +25 -0
- package/dist/components/StepChecklist.d.ts.map +1 -0
- package/dist/{JourneyMap-CZ47DksM.mjs → components/StepChecklist.js} +6 -46
- package/dist/components/StepChecklist.js.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +5 -0
- package/dist/docs/index.d.ts +1 -0
- package/dist/docs/index.js +1 -0
- package/dist/docs/learning-journey-ui-onboarding.docblock.d.ts +1 -0
- package/dist/docs/learning-journey-ui-onboarding.docblock.js +21 -0
- package/dist/docs/learning-journey-ui-onboarding.docblock.js.map +1 -0
- package/dist/{index.d.mts → example.d.ts} +2 -18
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +35 -0
- package/dist/example.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/BadgeDisplay.js +45 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/BadgeDisplay.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/StreakCounter.js +4 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/ViewTabs.js +49 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/ViewTabs.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/XpBar.js +47 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/XpBar.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/components/index.js +4 -0
- package/dist/examples/learning-journey-ui-shared/dist/docs/index.js +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/docs/learning-journey-ui-shared.docblock.js +21 -0
- package/dist/examples/learning-journey-ui-shared/dist/docs/learning-journey-ui-shared.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/hooks/index.js +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/hooks/useLearningProgress.js +74 -0
- package/dist/examples/learning-journey-ui-shared/dist/hooks/useLearningProgress.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/index.js +8 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +16 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/index.js +24 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/meta.docs.js +29 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/presentations.js +72 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/registry.js +45 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +80 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +57 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +16 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +357 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +37 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +16 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +20 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +48 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +79 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +84 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +45 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +67 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +40 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +69 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +47 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +62 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +155 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +20 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +101 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +20 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech-contracts.docs.js +96 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/_virtual/rolldown_runtime.js +6 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/_virtual/rolldown_runtime.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/components/atoms/Button.js +34 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/components/atoms/Button.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js +56 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +14 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui/progress.js +24 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui/progress.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui/utils.js +11 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui/utils.js.map +1 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js +11 -0
- package/dist/examples/learning-journey-ui-shared/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.js +14 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +25 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +72 -0
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +45 -0
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +81 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +58 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +358 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +38 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +49 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +80 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +85 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +46 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +68 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +41 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +70 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +48 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +63 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +156 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +102 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/design-system/dist/_virtual/rolldown_runtime.js +6 -0
- package/dist/libs/design-system/dist/_virtual/rolldown_runtime.js.map +1 -0
- package/dist/libs/design-system/dist/components/atoms/Button.js +34 -0
- package/dist/libs/design-system/dist/components/atoms/Button.js.map +1 -0
- package/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js +56 -0
- package/dist/libs/design-system/dist/ui-kit-web/dist/ui/button.js.map +1 -0
- package/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js +14 -0
- package/dist/libs/design-system/dist/ui-kit-web/dist/ui-kit-core/dist/utils.js.map +1 -0
- package/dist/libs/ui-kit-core/dist/utils.js +11 -0
- package/dist/libs/ui-kit-core/dist/utils.js.map +1 -0
- package/dist/libs/ui-kit-web/dist/ui/card.js +37 -0
- package/dist/libs/ui-kit-web/dist/ui/card.js.map +1 -0
- package/dist/libs/ui-kit-web/dist/ui/progress.js +24 -0
- package/dist/libs/ui-kit-web/dist/ui/progress.js.map +1 -0
- package/dist/libs/ui-kit-web/dist/ui/utils.js +11 -0
- package/dist/libs/ui-kit-web/dist/ui/utils.js.map +1 -0
- package/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js +11 -0
- package/dist/libs/ui-kit-web/dist/ui-kit-core/dist/utils.js.map +1 -0
- package/dist/views/Overview.d.ts +15 -0
- package/dist/views/Overview.d.ts.map +1 -0
- package/dist/views/Overview.js +181 -0
- package/dist/views/Overview.js.map +1 -0
- package/dist/views/Progress.d.ts +11 -0
- package/dist/views/Progress.d.ts.map +1 -0
- package/dist/views/Progress.js +163 -0
- package/dist/views/Progress.js.map +1 -0
- package/dist/views/Steps.d.ts +12 -0
- package/dist/views/Steps.d.ts.map +1 -0
- package/dist/views/Steps.js +92 -0
- package/dist/views/Steps.js.map +1 -0
- package/dist/views/Timeline.d.ts +11 -0
- package/dist/views/Timeline.d.ts.map +1 -0
- package/dist/views/Timeline.js +98 -0
- package/dist/views/Timeline.js.map +1 -0
- package/dist/views/index.d.ts +5 -0
- package/dist/views/index.js +6 -0
- package/package.json +29 -19
- package/tsconfig.tsbuildinfo +1 -1
- package/tsdown.config.js +14 -10
- package/dist/components/index.d.mts +0 -2
- package/dist/components/index.mjs +0 -4
- package/dist/index-BNYp4weX.d.mts +0 -33
- package/dist/index-BsbXKz4M.d.mts +0 -48
- package/dist/index.mjs +0 -110
- package/dist/views/index.d.mts +0 -2
- package/dist/views/index.mjs +0 -4
- package/dist/views-BS9u6UnM.mjs +0 -504
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @lssm/example.learning-journey-ui-onboarding
|
|
2
2
|
|
|
3
|
-
## 0.0.0-canary-
|
|
3
|
+
## 0.0.0-canary-20251219202229
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
### Patch Changes
|
|
10
10
|
|
|
11
11
|
- Updated dependencies [66a5dfd]
|
|
12
|
-
- @lssm/example.learning-journey-platform-tour@0.0.0-canary-
|
|
13
|
-
- @lssm/example.learning-journey-studio-onboarding@0.0.0-canary-
|
|
14
|
-
- @lssm/example.learning-journey-ui-shared@0.0.0-canary-
|
|
15
|
-
- @lssm/lib.contracts@0.0.0-canary-
|
|
16
|
-
- @lssm/lib.design-system@0.0.0-canary-
|
|
17
|
-
- @lssm/lib.schema@0.0.0-canary-
|
|
18
|
-
- @lssm/lib.ui-kit-core@0.0.0-canary-
|
|
19
|
-
- @lssm/lib.ui-kit-web@0.0.0-canary-
|
|
20
|
-
- @lssm/module.learning-journey@0.0.0-canary-
|
|
12
|
+
- @lssm/example.learning-journey-platform-tour@0.0.0-canary-20251219202229
|
|
13
|
+
- @lssm/example.learning-journey-studio-onboarding@0.0.0-canary-20251219202229
|
|
14
|
+
- @lssm/example.learning-journey-ui-shared@0.0.0-canary-20251219202229
|
|
15
|
+
- @lssm/lib.contracts@0.0.0-canary-20251219202229
|
|
16
|
+
- @lssm/lib.design-system@0.0.0-canary-20251219202229
|
|
17
|
+
- @lssm/lib.schema@0.0.0-canary-20251219202229
|
|
18
|
+
- @lssm/lib.ui-kit-core@0.0.0-canary-20251219202229
|
|
19
|
+
- @lssm/lib.ui-kit-web@0.0.0-canary-20251219202229
|
|
20
|
+
- @lssm/module.learning-journey@0.0.0-canary-20251219202229
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Chaman Ventures, SASU
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
import { LearningMiniAppProps } from "@lssm/example.learning-journey-ui-shared";
|
|
3
|
+
|
|
4
|
+
//#region src/OnboardingMiniApp.d.ts
|
|
5
|
+
type OnboardingMiniAppProps = Omit<LearningMiniAppProps, 'progress'> & {
|
|
6
|
+
progress?: LearningMiniAppProps['progress'];
|
|
7
|
+
};
|
|
8
|
+
declare function OnboardingMiniApp({
|
|
9
|
+
track,
|
|
10
|
+
progress: externalProgress,
|
|
11
|
+
onStepComplete: externalOnStepComplete,
|
|
12
|
+
onViewChange,
|
|
13
|
+
initialView
|
|
14
|
+
}: OnboardingMiniAppProps): react_jsx_runtime0.JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { OnboardingMiniApp };
|
|
17
|
+
//# sourceMappingURL=OnboardingMiniApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnboardingMiniApp.d.ts","names":[],"sources":["../src/OnboardingMiniApp.tsx"],"sourcesContent":[],"mappings":";;;;KAeK,sBAAA,GAAyB,KAAK;aACtB;;AADR,iBAIW,iBAAA,CAJW;EAAA,KAAA;EAAA,QAAA,EAMf,gBANe;EAAA,cAAA,EAOT,sBAPS;EAAA,YAAA;EAAA;AAAA,CAAA,EAUxB,sBAVwB,CAAA,EAUF,kBAAA,CAAA,GAAA,CAAA,OAVE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Card, CardContent } from "./libs/ui-kit-web/dist/ui/card.js";
|
|
4
|
+
import { useLearningProgress } from "./examples/learning-journey-ui-shared/dist/hooks/useLearningProgress.js";
|
|
5
|
+
import { ViewTabs } from "./examples/learning-journey-ui-shared/dist/components/ViewTabs.js";
|
|
6
|
+
import "./examples/learning-journey-ui-shared/dist/index.js";
|
|
7
|
+
import { Overview } from "./views/Overview.js";
|
|
8
|
+
import { Steps } from "./views/Steps.js";
|
|
9
|
+
import { Progress as ProgressView } from "./views/Progress.js";
|
|
10
|
+
import { Timeline } from "./views/Timeline.js";
|
|
11
|
+
import { useCallback, useState } from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
|
|
14
|
+
//#region src/OnboardingMiniApp.tsx
|
|
15
|
+
function OnboardingMiniApp({ track, progress: externalProgress, onStepComplete: externalOnStepComplete, onViewChange, initialView = "overview" }) {
|
|
16
|
+
const [currentView, setCurrentView] = useState(initialView);
|
|
17
|
+
const { progress: internalProgress, completeStep: internalCompleteStep } = useLearningProgress(track);
|
|
18
|
+
const progress = externalProgress ?? internalProgress;
|
|
19
|
+
const handleViewChange = useCallback((view) => {
|
|
20
|
+
setCurrentView(view);
|
|
21
|
+
onViewChange?.(view);
|
|
22
|
+
}, [onViewChange]);
|
|
23
|
+
const handleStepComplete = useCallback((stepId) => {
|
|
24
|
+
if (externalOnStepComplete) externalOnStepComplete(stepId);
|
|
25
|
+
else internalCompleteStep(stepId);
|
|
26
|
+
}, [externalOnStepComplete, internalCompleteStep]);
|
|
27
|
+
const handleStartFromOverview = useCallback(() => {
|
|
28
|
+
setCurrentView("steps");
|
|
29
|
+
onViewChange?.("steps");
|
|
30
|
+
}, [onViewChange]);
|
|
31
|
+
const renderView = () => {
|
|
32
|
+
const viewProps = {
|
|
33
|
+
track,
|
|
34
|
+
progress,
|
|
35
|
+
onStepComplete: handleStepComplete
|
|
36
|
+
};
|
|
37
|
+
switch (currentView) {
|
|
38
|
+
case "overview": return /* @__PURE__ */ jsx(Overview, {
|
|
39
|
+
...viewProps,
|
|
40
|
+
onStart: handleStartFromOverview
|
|
41
|
+
});
|
|
42
|
+
case "steps": return /* @__PURE__ */ jsx(Steps, { ...viewProps });
|
|
43
|
+
case "progress": return /* @__PURE__ */ jsx(ProgressView, { ...viewProps });
|
|
44
|
+
case "timeline": return /* @__PURE__ */ jsx(Timeline, { ...viewProps });
|
|
45
|
+
default: return /* @__PURE__ */ jsx(Overview, {
|
|
46
|
+
...viewProps,
|
|
47
|
+
onStart: handleStartFromOverview
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
52
|
+
className: "space-y-6",
|
|
53
|
+
children: [/* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, {
|
|
54
|
+
className: "p-4",
|
|
55
|
+
children: /* @__PURE__ */ jsx(ViewTabs, {
|
|
56
|
+
currentView,
|
|
57
|
+
onViewChange: handleViewChange
|
|
58
|
+
})
|
|
59
|
+
}) }), renderView()]
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//#endregion
|
|
64
|
+
export { OnboardingMiniApp };
|
|
65
|
+
//# sourceMappingURL=OnboardingMiniApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnboardingMiniApp.js","names":["Progress"],"sources":["../src/OnboardingMiniApp.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useCallback } from 'react';\nimport { Card, CardContent } from '@lssm/lib.ui-kit-web/ui/card';\nimport {\n ViewTabs,\n useLearningProgress,\n type LearningView,\n type LearningMiniAppProps,\n} from '@lssm/example.learning-journey-ui-shared';\nimport { Overview } from './views/Overview';\nimport { Steps } from './views/Steps';\nimport { Progress } from './views/Progress';\nimport { Timeline } from './views/Timeline';\n\ntype OnboardingMiniAppProps = Omit<LearningMiniAppProps, 'progress'> & {\n progress?: LearningMiniAppProps['progress'];\n};\n\nexport function OnboardingMiniApp({\n track,\n progress: externalProgress,\n onStepComplete: externalOnStepComplete,\n onViewChange,\n initialView = 'overview',\n}: OnboardingMiniAppProps) {\n const [currentView, setCurrentView] = useState<LearningView>(initialView);\n\n // Use internal progress if not provided externally\n const { progress: internalProgress, completeStep: internalCompleteStep } =\n useLearningProgress(track);\n\n const progress = externalProgress ?? internalProgress;\n\n const handleViewChange = useCallback(\n (view: LearningView) => {\n setCurrentView(view);\n onViewChange?.(view);\n },\n [onViewChange]\n );\n\n const handleStepComplete = useCallback(\n (stepId: string) => {\n if (externalOnStepComplete) {\n externalOnStepComplete(stepId);\n } else {\n internalCompleteStep(stepId);\n }\n },\n [externalOnStepComplete, internalCompleteStep]\n );\n\n const handleStartFromOverview = useCallback(() => {\n setCurrentView('steps');\n onViewChange?.('steps');\n }, [onViewChange]);\n\n const renderView = () => {\n const viewProps = {\n track,\n progress,\n onStepComplete: handleStepComplete,\n };\n\n switch (currentView) {\n case 'overview':\n return <Overview {...viewProps} onStart={handleStartFromOverview} />;\n case 'steps':\n return <Steps {...viewProps} />;\n case 'progress':\n return <Progress {...viewProps} />;\n case 'timeline':\n return <Timeline {...viewProps} />;\n default:\n return <Overview {...viewProps} onStart={handleStartFromOverview} />;\n }\n };\n\n return (\n <div className=\"space-y-6\">\n {/* Navigation */}\n <Card>\n <CardContent className=\"p-4\">\n <ViewTabs currentView={currentView} onViewChange={handleViewChange} />\n </CardContent>\n </Card>\n\n {/* Current View */}\n {renderView()}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAgB,kBAAkB,EAChC,OACA,UAAU,kBACV,gBAAgB,wBAChB,cACA,cAAc,cACW;CACzB,MAAM,CAAC,aAAa,kBAAkB,SAAuB,YAAY;CAGzE,MAAM,EAAE,UAAU,kBAAkB,cAAc,yBAChD,oBAAoB,MAAM;CAE5B,MAAM,WAAW,oBAAoB;CAErC,MAAM,mBAAmB,aACtB,SAAuB;AACtB,iBAAe,KAAK;AACpB,iBAAe,KAAK;IAEtB,CAAC,aAAa,CACf;CAED,MAAM,qBAAqB,aACxB,WAAmB;AAClB,MAAI,uBACF,wBAAuB,OAAO;MAE9B,sBAAqB,OAAO;IAGhC,CAAC,wBAAwB,qBAAqB,CAC/C;CAED,MAAM,0BAA0B,kBAAkB;AAChD,iBAAe,QAAQ;AACvB,iBAAe,QAAQ;IACtB,CAAC,aAAa,CAAC;CAElB,MAAM,mBAAmB;EACvB,MAAM,YAAY;GAChB;GACA;GACA,gBAAgB;GACjB;AAED,UAAQ,aAAR;GACE,KAAK,WACH,QAAO,oBAAC;IAAS,GAAI;IAAW,SAAS;KAA2B;GACtE,KAAK,QACH,QAAO,oBAAC,SAAM,GAAI,YAAa;GACjC,KAAK,WACH,QAAO,oBAACA,gBAAS,GAAI,YAAa;GACpC,KAAK,WACH,QAAO,oBAAC,YAAS,GAAI,YAAa;GACpC,QACE,QAAO,oBAAC;IAAS,GAAI;IAAW,SAAS;KAA2B;;;AAI1E,QACE,qBAAC;EAAI,WAAU;aAEb,oBAAC,kBACC,oBAAC;GAAY,WAAU;aACrB,oBAAC;IAAsB;IAAa,cAAc;KAAoB;IAC1D,GACT,EAGN,YAAY;GACT"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/components/CodeSnippet.d.ts
|
|
4
|
+
interface CodeSnippetProps {
|
|
5
|
+
code: string;
|
|
6
|
+
language?: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
declare function CodeSnippet({
|
|
10
|
+
code,
|
|
11
|
+
language,
|
|
12
|
+
title
|
|
13
|
+
}: CodeSnippetProps): react_jsx_runtime0.JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { CodeSnippet };
|
|
16
|
+
//# sourceMappingURL=CodeSnippet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeSnippet.d.ts","names":[],"sources":["../../src/components/CodeSnippet.tsx"],"sourcesContent":[],"mappings":";;;UAKU,gBAAA;;;EAAA,KAAA,CAAA,EAAA,MAAA;AAMV;AACE,iBADc,WAAA,CACd;EAAA,IAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAGC,gBAHD,CAAA,EAGiB,kBAAA,CAAA,GAAA,CAAA,OAHjB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Button } from "../libs/design-system/dist/components/atoms/Button.js";
|
|
1
4
|
import { useState } from "react";
|
|
2
|
-
import { Button } from "@lssm/lib.design-system";
|
|
3
5
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
4
6
|
|
|
5
7
|
//#region src/components/CodeSnippet.tsx
|
|
@@ -44,4 +46,5 @@ function CodeSnippet({ code, language = "typescript", title }) {
|
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
//#endregion
|
|
47
|
-
export { CodeSnippet
|
|
49
|
+
export { CodeSnippet };
|
|
50
|
+
//# sourceMappingURL=CodeSnippet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeSnippet.js","names":[],"sources":["../../src/components/CodeSnippet.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\nimport { Button } from '@lssm/lib.design-system';\n\ninterface CodeSnippetProps {\n code: string;\n language?: string;\n title?: string;\n}\n\nexport function CodeSnippet({\n code,\n language = 'typescript',\n title,\n}: CodeSnippetProps) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <div className=\"bg-muted/50 overflow-hidden rounded-lg border\">\n {/* Header */}\n <div className=\"bg-muted flex items-center justify-between border-b px-4 py-2\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-muted-foreground text-xs font-medium uppercase\">\n {language}\n </span>\n {title && (\n <>\n <span className=\"text-muted-foreground\">•</span>\n <span className=\"text-sm\">{title}</span>\n </>\n )}\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleCopy}\n className=\"h-7 text-xs\"\n >\n {copied ? '✓ Copied' : 'Copy'}\n </Button>\n </div>\n\n {/* Code */}\n <pre className=\"overflow-x-auto p-4\">\n <code className=\"text-sm\">{code}</code>\n </pre>\n </div>\n );\n}\n"],"mappings":";;;;;;;AAWA,SAAgB,YAAY,EAC1B,MACA,WAAW,cACX,SACmB;CACnB,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAE3C,MAAM,aAAa,YAAY;AAC7B,QAAM,UAAU,UAAU,UAAU,KAAK;AACzC,YAAU,KAAK;AACf,mBAAiB,UAAU,MAAM,EAAE,IAAK;;AAG1C,QACE,qBAAC;EAAI,WAAU;aAEb,qBAAC;GAAI,WAAU;cACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eACb;MACI,EACN,SACC,4CACE,oBAAC;KAAK,WAAU;eAAwB;MAAQ,EAChD,oBAAC;KAAK,WAAU;eAAW;MAAa,IACvC;KAED,EACN,oBAAC;IACC,SAAQ;IACR,MAAK;IACL,SAAS;IACT,WAAU;cAET,SAAS,aAAa;KAChB;IACL,EAGN,oBAAC;GAAI,WAAU;aACb,oBAAC;IAAK,WAAU;cAAW;KAAY;IACnC;GACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as react_jsx_runtime1 from "react/jsx-runtime";
|
|
2
|
+
import { LearningJourneyStepSpec } from "@lssm/module.learning-journey/track-spec";
|
|
3
|
+
|
|
4
|
+
//#region src/components/JourneyMap.d.ts
|
|
5
|
+
interface JourneyMapProps {
|
|
6
|
+
steps: LearningJourneyStepSpec[];
|
|
7
|
+
completedStepIds: string[];
|
|
8
|
+
currentStepId?: string | null;
|
|
9
|
+
}
|
|
10
|
+
declare function JourneyMap({
|
|
11
|
+
steps,
|
|
12
|
+
completedStepIds,
|
|
13
|
+
currentStepId
|
|
14
|
+
}: JourneyMapProps): react_jsx_runtime1.JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { JourneyMap };
|
|
17
|
+
//# sourceMappingURL=JourneyMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JourneyMap.d.ts","names":[],"sources":["../../src/components/JourneyMap.tsx"],"sourcesContent":[],"mappings":";;;;UAKU,eAAA;SACD;;EADC,aAAA,CAAA,EAAA,MAAe,GAAA,IAChB;AAgBT;AACE,iBADc,UAAA,CACd;EAAA,KAAA;EAAA,gBAAA;EAAA;AAAA,CAAA,EAGC,eAHD,CAAA,EAGgB,kBAAA,CAAA,GAAA,CAAA,OAHhB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../libs/ui-kit-web/dist/ui/utils.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/components/JourneyMap.tsx
|
|
7
|
+
const SURFACE_ICONS = {
|
|
8
|
+
templates: "📋",
|
|
9
|
+
"spec-editor": "✏️",
|
|
10
|
+
regenerator: "🔄",
|
|
11
|
+
playground: "🎮",
|
|
12
|
+
evolution: "🤖",
|
|
13
|
+
dashboard: "📊",
|
|
14
|
+
settings: "⚙️",
|
|
15
|
+
default: "📍"
|
|
16
|
+
};
|
|
17
|
+
function JourneyMap({ steps, completedStepIds, currentStepId }) {
|
|
18
|
+
return /* @__PURE__ */ jsx("div", {
|
|
19
|
+
className: "relative overflow-x-auto pb-4",
|
|
20
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
21
|
+
className: "flex min-w-max items-center gap-2",
|
|
22
|
+
children: steps.map((step, index) => {
|
|
23
|
+
const isCompleted = completedStepIds.includes(step.id);
|
|
24
|
+
const isCurrent = step.id === currentStepId;
|
|
25
|
+
const icon = SURFACE_ICONS[step.metadata?.surface ?? "default"] ?? SURFACE_ICONS.default;
|
|
26
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
27
|
+
className: "flex items-center",
|
|
28
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
29
|
+
className: "flex flex-col items-center gap-2",
|
|
30
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
31
|
+
className: cn("flex h-14 w-14 items-center justify-center rounded-2xl border-2 text-2xl transition-all", isCompleted && "border-green-500 bg-green-500/10", isCurrent && !isCompleted && "border-violet-500 bg-violet-500/10 ring-4 ring-violet-500/20", !isCompleted && !isCurrent && "border-muted bg-muted/50"),
|
|
32
|
+
children: isCompleted ? "✓" : icon
|
|
33
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
34
|
+
className: "text-center",
|
|
35
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
36
|
+
className: cn("max-w-[100px] truncate text-xs font-medium", isCompleted && "text-green-500", isCurrent && !isCompleted && "text-violet-500", !isCompleted && !isCurrent && "text-muted-foreground"),
|
|
37
|
+
children: step.title
|
|
38
|
+
})
|
|
39
|
+
})]
|
|
40
|
+
}), index < steps.length - 1 && /* @__PURE__ */ jsx("div", { className: cn("mx-2 h-1 w-8 rounded-full transition-colors", completedStepIds.includes(steps[index + 1]?.id ?? "") ? "bg-green-500" : isCompleted ? "bg-green-500/50" : "bg-muted") })]
|
|
41
|
+
}, step.id);
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { JourneyMap };
|
|
49
|
+
//# sourceMappingURL=JourneyMap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JourneyMap.js","names":["SURFACE_ICONS: Record<string, string>"],"sources":["../../src/components/JourneyMap.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@lssm/lib.ui-kit-web/ui/utils';\nimport type { LearningJourneyStepSpec } from '@lssm/module.learning-journey/track-spec';\n\ninterface JourneyMapProps {\n steps: LearningJourneyStepSpec[];\n completedStepIds: string[];\n currentStepId?: string | null;\n}\n\nconst SURFACE_ICONS: Record<string, string> = {\n templates: '📋',\n 'spec-editor': '✏️',\n regenerator: '🔄',\n playground: '🎮',\n evolution: '🤖',\n dashboard: '📊',\n settings: '⚙️',\n default: '📍',\n};\n\nexport function JourneyMap({\n steps,\n completedStepIds,\n currentStepId,\n}: JourneyMapProps) {\n return (\n <div className=\"relative overflow-x-auto pb-4\">\n <div className=\"flex min-w-max items-center gap-2\">\n {steps.map((step, index) => {\n const isCompleted = completedStepIds.includes(step.id);\n const isCurrent = step.id === currentStepId;\n const surface = (step.metadata?.surface as string) ?? 'default';\n const icon = SURFACE_ICONS[surface] ?? SURFACE_ICONS.default;\n\n return (\n <div key={step.id} className=\"flex items-center\">\n {/* Node */}\n <div className=\"flex flex-col items-center gap-2\">\n <div\n className={cn(\n 'flex h-14 w-14 items-center justify-center rounded-2xl border-2 text-2xl transition-all',\n isCompleted && 'border-green-500 bg-green-500/10',\n isCurrent &&\n !isCompleted &&\n 'border-violet-500 bg-violet-500/10 ring-4 ring-violet-500/20',\n !isCompleted && !isCurrent && 'border-muted bg-muted/50'\n )}\n >\n {isCompleted ? '✓' : icon}\n </div>\n <div className=\"text-center\">\n <p\n className={cn(\n 'max-w-[100px] truncate text-xs font-medium',\n isCompleted && 'text-green-500',\n isCurrent && !isCompleted && 'text-violet-500',\n !isCompleted && !isCurrent && 'text-muted-foreground'\n )}\n >\n {step.title}\n </p>\n </div>\n </div>\n\n {/* Connector */}\n {index < steps.length - 1 && (\n <div\n className={cn(\n 'mx-2 h-1 w-8 rounded-full transition-colors',\n completedStepIds.includes(steps[index + 1]?.id ?? '')\n ? 'bg-green-500'\n : isCompleted\n ? 'bg-green-500/50'\n : 'bg-muted'\n )}\n />\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AAWA,MAAMA,gBAAwC;CAC5C,WAAW;CACX,eAAe;CACf,aAAa;CACb,YAAY;CACZ,WAAW;CACX,WAAW;CACX,UAAU;CACV,SAAS;CACV;AAED,SAAgB,WAAW,EACzB,OACA,kBACA,iBACkB;AAClB,QACE,oBAAC;EAAI,WAAU;YACb,oBAAC;GAAI,WAAU;aACZ,MAAM,KAAK,MAAM,UAAU;IAC1B,MAAM,cAAc,iBAAiB,SAAS,KAAK,GAAG;IACtD,MAAM,YAAY,KAAK,OAAO;IAE9B,MAAM,OAAO,cADI,KAAK,UAAU,WAAsB,cACf,cAAc;AAErD,WACE,qBAAC;KAAkB,WAAU;gBAE3B,qBAAC;MAAI,WAAU;iBACb,oBAAC;OACC,WAAW,GACT,2FACA,eAAe,oCACf,aACE,CAAC,eACD,gEACF,CAAC,eAAe,CAAC,aAAa,2BAC/B;iBAEA,cAAc,MAAM;QACjB,EACN,oBAAC;OAAI,WAAU;iBACb,oBAAC;QACC,WAAW,GACT,8CACA,eAAe,kBACf,aAAa,CAAC,eAAe,mBAC7B,CAAC,eAAe,CAAC,aAAa,wBAC/B;kBAEA,KAAK;SACJ;QACA;OACF,EAGL,QAAQ,MAAM,SAAS,KACtB,oBAAC,SACC,WAAW,GACT,+CACA,iBAAiB,SAAS,MAAM,QAAQ,IAAI,MAAM,GAAG,GACjD,iBACA,cACE,oBACA,WACP,GACD;OAxCI,KAAK,GA0CT;KAER;IACE;GACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
2
|
+
import { LearningJourneyStepSpec } from "@lssm/module.learning-journey/track-spec";
|
|
3
|
+
|
|
4
|
+
//#region src/components/StepChecklist.d.ts
|
|
5
|
+
interface StepChecklistProps {
|
|
6
|
+
step: LearningJourneyStepSpec;
|
|
7
|
+
stepNumber: number;
|
|
8
|
+
isCompleted: boolean;
|
|
9
|
+
isCurrent: boolean;
|
|
10
|
+
isExpanded: boolean;
|
|
11
|
+
onToggle: () => void;
|
|
12
|
+
onComplete?: () => void;
|
|
13
|
+
}
|
|
14
|
+
declare function StepChecklist({
|
|
15
|
+
step,
|
|
16
|
+
stepNumber,
|
|
17
|
+
isCompleted,
|
|
18
|
+
isCurrent,
|
|
19
|
+
isExpanded,
|
|
20
|
+
onToggle,
|
|
21
|
+
onComplete
|
|
22
|
+
}: StepChecklistProps): react_jsx_runtime2.JSX.Element;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { StepChecklist };
|
|
25
|
+
//# sourceMappingURL=StepChecklist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepChecklist.d.ts","names":[],"sources":["../../src/components/StepChecklist.tsx"],"sourcesContent":[],"mappings":";;;;UAMU,kBAAA;QACF;;EADE,WAAA,EAAA,OAAA;EAUM,SAAA,EAAA,OAAa;EAC3B,UAAA,EAAA,OAAA;EACA,QAAA,EAAA,GAAA,GAAA,IAAA;EACA,UAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;AAEA,iBALc,aAAA,CAKd;EAAA,IAAA;EAAA,UAAA;EAAA,WAAA;EAAA,SAAA;EAAA,UAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAGC,kBAHD,CAAA,EAGmB,kBAAA,CAAA,GAAA,CAAA,OAHnB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Button } from "../libs/design-system/dist/components/atoms/Button.js";
|
|
4
|
+
import { cn } from "../libs/ui-kit-core/dist/utils.js";
|
|
2
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { cn } from "@lssm/lib.ui-kit-core";
|
|
4
|
-
import { cn as cn$1 } from "@lssm/lib.ui-kit-web/ui/utils";
|
|
5
6
|
|
|
6
7
|
//#region src/components/StepChecklist.tsx
|
|
7
8
|
function StepChecklist({ step, stepNumber, isCompleted, isCurrent, isExpanded, onToggle, onComplete }) {
|
|
@@ -75,46 +76,5 @@ function StepChecklist({ step, stepNumber, isCompleted, isCurrent, isExpanded, o
|
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
//#endregion
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
templates: "📋",
|
|
81
|
-
"spec-editor": "✏️",
|
|
82
|
-
regenerator: "🔄",
|
|
83
|
-
playground: "🎮",
|
|
84
|
-
evolution: "🤖",
|
|
85
|
-
dashboard: "📊",
|
|
86
|
-
settings: "⚙️",
|
|
87
|
-
default: "📍"
|
|
88
|
-
};
|
|
89
|
-
function JourneyMap({ steps, completedStepIds, currentStepId }) {
|
|
90
|
-
return /* @__PURE__ */ jsx("div", {
|
|
91
|
-
className: "relative overflow-x-auto pb-4",
|
|
92
|
-
children: /* @__PURE__ */ jsx("div", {
|
|
93
|
-
className: "flex min-w-max items-center gap-2",
|
|
94
|
-
children: steps.map((step, index) => {
|
|
95
|
-
const isCompleted = completedStepIds.includes(step.id);
|
|
96
|
-
const isCurrent = step.id === currentStepId;
|
|
97
|
-
const icon = SURFACE_ICONS[step.metadata?.surface ?? "default"] ?? SURFACE_ICONS.default;
|
|
98
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
99
|
-
className: "flex items-center",
|
|
100
|
-
children: [/* @__PURE__ */ jsxs("div", {
|
|
101
|
-
className: "flex flex-col items-center gap-2",
|
|
102
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
103
|
-
className: cn$1("flex h-14 w-14 items-center justify-center rounded-2xl border-2 text-2xl transition-all", isCompleted && "border-green-500 bg-green-500/10", isCurrent && !isCompleted && "border-violet-500 bg-violet-500/10 ring-4 ring-violet-500/20", !isCompleted && !isCurrent && "border-muted bg-muted/50"),
|
|
104
|
-
children: isCompleted ? "✓" : icon
|
|
105
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
106
|
-
className: "text-center",
|
|
107
|
-
children: /* @__PURE__ */ jsx("p", {
|
|
108
|
-
className: cn$1("max-w-[100px] truncate text-xs font-medium", isCompleted && "text-green-500", isCurrent && !isCompleted && "text-violet-500", !isCompleted && !isCurrent && "text-muted-foreground"),
|
|
109
|
-
children: step.title
|
|
110
|
-
})
|
|
111
|
-
})]
|
|
112
|
-
}), index < steps.length - 1 && /* @__PURE__ */ jsx("div", { className: cn$1("mx-2 h-1 w-8 rounded-full transition-colors", completedStepIds.includes(steps[index + 1]?.id ?? "") ? "bg-green-500" : isCompleted ? "bg-green-500/50" : "bg-muted") })]
|
|
113
|
-
}, step.id);
|
|
114
|
-
})
|
|
115
|
-
})
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
//#endregion
|
|
120
|
-
export { StepChecklist as n, JourneyMap as t };
|
|
79
|
+
export { StepChecklist };
|
|
80
|
+
//# sourceMappingURL=StepChecklist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepChecklist.js","names":[],"sources":["../../src/components/StepChecklist.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '@lssm/lib.design-system';\nimport { cn } from '@lssm/lib.ui-kit-core';\nimport type { LearningJourneyStepSpec } from '@lssm/module.learning-journey/track-spec';\n\ninterface StepChecklistProps {\n step: LearningJourneyStepSpec;\n stepNumber: number;\n isCompleted: boolean;\n isCurrent: boolean;\n isExpanded: boolean;\n onToggle: () => void;\n onComplete?: () => void;\n}\n\nexport function StepChecklist({\n step,\n stepNumber,\n isCompleted,\n isCurrent,\n isExpanded,\n onToggle,\n onComplete,\n}: StepChecklistProps) {\n return (\n <div\n className={cn(\n 'rounded-xl border transition-all',\n isCompleted && 'border-green-500/50 bg-green-500/5',\n isCurrent && !isCompleted && 'border-violet-500 bg-violet-500/5',\n !isCompleted && !isCurrent && 'border-border'\n )}\n >\n {/* Header */}\n <button\n type=\"button\"\n className=\"flex w-full items-center gap-4 p-4 text-left\"\n onClick={onToggle}\n >\n {/* Checkbox/Number */}\n <div\n className={cn(\n 'flex h-8 w-8 shrink-0 items-center justify-center rounded-full border-2 text-sm font-semibold transition-colors',\n isCompleted && 'border-green-500 bg-green-500 text-white',\n isCurrent && !isCompleted && 'border-violet-500 text-violet-500',\n !isCompleted &&\n !isCurrent &&\n 'border-muted-foreground text-muted-foreground'\n )}\n >\n {isCompleted ? '✓' : stepNumber}\n </div>\n\n {/* Title & Description */}\n <div className=\"min-w-0 flex-1\">\n <h4\n className={cn(\n 'font-semibold',\n isCompleted && 'text-green-500',\n isCurrent && !isCompleted && 'text-foreground',\n !isCompleted && !isCurrent && 'text-muted-foreground'\n )}\n >\n {step.title}\n </h4>\n {!isExpanded && step.description && (\n <p className=\"text-muted-foreground truncate text-sm\">\n {step.description}\n </p>\n )}\n </div>\n\n {/* XP Badge */}\n {step.xpReward && (\n <span\n className={cn(\n 'shrink-0 rounded-full px-2 py-1 text-xs font-semibold',\n isCompleted\n ? 'bg-green-500/10 text-green-500'\n : 'bg-muted text-muted-foreground'\n )}\n >\n +{step.xpReward} XP\n </span>\n )}\n\n {/* Expand indicator */}\n <span\n className={cn(\n 'shrink-0 transition-transform',\n isExpanded && 'rotate-180'\n )}\n >\n ▼\n </span>\n </button>\n\n {/* Expanded Content */}\n {isExpanded && (\n <div className=\"border-t px-4 py-4\">\n {step.description && (\n <p className=\"text-muted-foreground mb-4\">{step.description}</p>\n )}\n\n {step.instructions && (\n <div className=\"bg-muted mb-4 rounded-lg p-4\">\n <p className=\"mb-2 text-sm font-medium\">Instructions:</p>\n <p className=\"text-muted-foreground text-sm\">\n {step.instructions}\n </p>\n </div>\n )}\n\n {/* Action buttons */}\n <div className=\"flex flex-wrap gap-2\">\n {step.actionUrl && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => window.open(step.actionUrl, '_blank')}\n >\n {step.actionLabel ?? 'Try it'}\n </Button>\n )}\n {!isCompleted && (\n <Button size=\"sm\" onClick={onComplete}>\n Mark as Complete\n </Button>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,cAAc,EAC5B,MACA,YACA,aACA,WACA,YACA,UACA,cACqB;AACrB,QACE,qBAAC;EACC,WAAW,GACT,oCACA,eAAe,sCACf,aAAa,CAAC,eAAe,qCAC7B,CAAC,eAAe,CAAC,aAAa,gBAC/B;aAGD,qBAAC;GACC,MAAK;GACL,WAAU;GACV,SAAS;;IAGT,oBAAC;KACC,WAAW,GACT,mHACA,eAAe,4CACf,aAAa,CAAC,eAAe,qCAC7B,CAAC,eACC,CAAC,aACD,gDACH;eAEA,cAAc,MAAM;MACjB;IAGN,qBAAC;KAAI,WAAU;gBACb,oBAAC;MACC,WAAW,GACT,iBACA,eAAe,kBACf,aAAa,CAAC,eAAe,mBAC7B,CAAC,eAAe,CAAC,aAAa,wBAC/B;gBAEA,KAAK;OACH,EACJ,CAAC,cAAc,KAAK,eACnB,oBAAC;MAAE,WAAU;gBACV,KAAK;OACJ;MAEF;IAGL,KAAK,YACJ,qBAAC;KACC,WAAW,GACT,yDACA,cACI,mCACA,iCACL;;MACF;MACG,KAAK;MAAS;;MACX;IAIT,oBAAC;KACC,WAAW,GACT,iCACA,cAAc,aACf;eACF;MAEM;;IACA,EAGR,cACC,qBAAC;GAAI,WAAU;;IACZ,KAAK,eACJ,oBAAC;KAAE,WAAU;eAA8B,KAAK;MAAgB;IAGjE,KAAK,gBACJ,qBAAC;KAAI,WAAU;gBACb,oBAAC;MAAE,WAAU;gBAA2B;OAAiB,EACzD,oBAAC;MAAE,WAAU;gBACV,KAAK;OACJ;MACA;IAIR,qBAAC;KAAI,WAAU;gBACZ,KAAK,aACJ,oBAAC;MACC,SAAQ;MACR,MAAK;MACL,eAAe,OAAO,KAAK,KAAK,WAAW,SAAS;gBAEnD,KAAK,eAAe;OACd,EAEV,CAAC,eACA,oBAAC;MAAO,MAAK;MAAK,SAAS;gBAAY;OAE9B;MAEP;;IACF;GAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./learning-journey-ui-onboarding.docblock.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { registerDocBlocks } from "../libs/contracts/dist/docs/registry.js";
|
|
2
|
+
import "../libs/contracts/dist/docs/index.js";
|
|
3
|
+
|
|
4
|
+
//#region src/docs/learning-journey-ui-onboarding.docblock.ts
|
|
5
|
+
registerDocBlocks([{
|
|
6
|
+
id: "docs.examples.learning-journey-ui-onboarding",
|
|
7
|
+
title: "Learning Journey UI — Onboarding",
|
|
8
|
+
summary: "UI mini-app components for onboarding: checklists, snippets, and journey mapping.",
|
|
9
|
+
kind: "reference",
|
|
10
|
+
visibility: "public",
|
|
11
|
+
route: "/docs/examples/learning-journey-ui-onboarding",
|
|
12
|
+
tags: [
|
|
13
|
+
"learning",
|
|
14
|
+
"ui",
|
|
15
|
+
"onboarding"
|
|
16
|
+
],
|
|
17
|
+
body: `## Includes\n- Onboarding mini-app shell\n- Views: overview, steps, progress, timeline\n- Components: step checklist, code snippet, journey map\n\n## Notes\n- Compose with design system components.\n- Ensure accessible labels and keyboard navigation.`
|
|
18
|
+
}]);
|
|
19
|
+
|
|
20
|
+
//#endregion
|
|
21
|
+
//# sourceMappingURL=learning-journey-ui-onboarding.docblock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-journey-ui-onboarding.docblock.js","names":[],"sources":["../../src/docs/learning-journey-ui-onboarding.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@lssm/lib.contracts/docs';\nimport { registerDocBlocks } from '@lssm/lib.contracts/docs';\n\nconst blocks: DocBlock[] = [\n {\n id: 'docs.examples.learning-journey-ui-onboarding',\n title: 'Learning Journey UI — Onboarding',\n summary:\n 'UI mini-app components for onboarding: checklists, snippets, and journey mapping.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/examples/learning-journey-ui-onboarding',\n tags: ['learning', 'ui', 'onboarding'],\n body: `## Includes\\n- Onboarding mini-app shell\\n- Views: overview, steps, progress, timeline\\n- Components: step checklist, code snippet, journey map\\n\\n## Notes\\n- Compose with design system components.\\n- Ensure accessible labels and keyboard navigation.`,\n },\n];\n\nregisterDocBlocks(blocks);\n"],"mappings":";;;;AAiBA,kBAd2B,CACzB;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAY;EAAM;EAAa;CACtC,MAAM;CACP,CACF,CAEwB"}
|
|
@@ -1,20 +1,3 @@
|
|
|
1
|
-
import { n as CodeSnippet, r as StepChecklist, t as JourneyMap } from "./index-BsbXKz4M.mjs";
|
|
2
|
-
import { i as Overview, n as ProgressView, r as Steps, t as Timeline } from "./index-BNYp4weX.mjs";
|
|
3
|
-
import { LearningMiniAppProps } from "@lssm/example.learning-journey-ui-shared";
|
|
4
|
-
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
5
|
-
|
|
6
|
-
//#region src/OnboardingMiniApp.d.ts
|
|
7
|
-
type OnboardingMiniAppProps = Omit<LearningMiniAppProps, 'progress'> & {
|
|
8
|
-
progress?: LearningMiniAppProps['progress'];
|
|
9
|
-
};
|
|
10
|
-
declare function OnboardingMiniApp({
|
|
11
|
-
track,
|
|
12
|
-
progress: externalProgress,
|
|
13
|
-
onStepComplete: externalOnStepComplete,
|
|
14
|
-
onViewChange,
|
|
15
|
-
initialView
|
|
16
|
-
}: OnboardingMiniAppProps): react_jsx_runtime6.JSX.Element;
|
|
17
|
-
//#endregion
|
|
18
1
|
//#region src/example.d.ts
|
|
19
2
|
declare const example: {
|
|
20
3
|
readonly id: "learning-journey-ui-onboarding";
|
|
@@ -46,4 +29,5 @@ declare const example: {
|
|
|
46
29
|
};
|
|
47
30
|
};
|
|
48
31
|
//#endregion
|
|
49
|
-
export {
|
|
32
|
+
export { example as default };
|
|
33
|
+
//# sourceMappingURL=example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"sourcesContent":[],"mappings":";cAAM;EAAA,SAAA,EAqBI,EAAA,gCAAA"}
|
package/dist/example.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/example.ts
|
|
2
|
+
const example = {
|
|
3
|
+
id: "learning-journey-ui-onboarding",
|
|
4
|
+
title: "Learning Journey UI — Onboarding",
|
|
5
|
+
summary: "UI mini-app for onboarding patterns: checklists, code snippets, journey map.",
|
|
6
|
+
tags: [
|
|
7
|
+
"learning",
|
|
8
|
+
"ui",
|
|
9
|
+
"onboarding"
|
|
10
|
+
],
|
|
11
|
+
kind: "ui",
|
|
12
|
+
visibility: "public",
|
|
13
|
+
docs: { rootDocId: "docs.examples.learning-journey-ui-onboarding" },
|
|
14
|
+
entrypoints: {
|
|
15
|
+
packageName: "@lssm/example.learning-journey-ui-onboarding",
|
|
16
|
+
docs: "./docs"
|
|
17
|
+
},
|
|
18
|
+
surfaces: {
|
|
19
|
+
templates: true,
|
|
20
|
+
sandbox: {
|
|
21
|
+
enabled: true,
|
|
22
|
+
modes: ["playground", "markdown"]
|
|
23
|
+
},
|
|
24
|
+
studio: {
|
|
25
|
+
enabled: true,
|
|
26
|
+
installable: true
|
|
27
|
+
},
|
|
28
|
+
mcp: { enabled: true }
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var example_default = example;
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { example_default as default };
|
|
35
|
+
//# sourceMappingURL=example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["const example = {\n id: 'learning-journey-ui-onboarding',\n title: 'Learning Journey UI — Onboarding',\n summary:\n 'UI mini-app for onboarding patterns: checklists, code snippets, journey map.',\n tags: ['learning', 'ui', 'onboarding'],\n kind: 'ui',\n visibility: 'public',\n docs: {\n rootDocId: 'docs.examples.learning-journey-ui-onboarding',\n },\n entrypoints: {\n packageName: '@lssm/example.learning-journey-ui-onboarding',\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;EAAa;CACtC,MAAM;CACN,YAAY;CACZ,MAAM,EACJ,WAAW,gDACZ;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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "../libs/ui-kit-web/dist/ui/utils.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ../learning-journey-ui-shared/dist/components/BadgeDisplay.js
|
|
7
|
+
const BADGE_ICONS = {
|
|
8
|
+
studio_first_30m: "🎯",
|
|
9
|
+
platform_tour: "🗺️",
|
|
10
|
+
crm_first_win: "🏆",
|
|
11
|
+
drill_master: "🧠",
|
|
12
|
+
coach_listener: "👂",
|
|
13
|
+
quest_complete: "⭐",
|
|
14
|
+
streak_7: "🔥",
|
|
15
|
+
streak_30: "💎",
|
|
16
|
+
default: "🏅"
|
|
17
|
+
};
|
|
18
|
+
const sizeStyles = {
|
|
19
|
+
sm: "h-6 w-6 text-sm",
|
|
20
|
+
md: "h-8 w-8 text-base",
|
|
21
|
+
lg: "h-10 w-10 text-lg"
|
|
22
|
+
};
|
|
23
|
+
function BadgeDisplay({ badges, maxVisible = 5, size = "md" }) {
|
|
24
|
+
const visibleBadges = badges.slice(0, maxVisible);
|
|
25
|
+
const hiddenCount = badges.length - maxVisible;
|
|
26
|
+
if (badges.length === 0) return /* @__PURE__ */ jsx("div", {
|
|
27
|
+
className: "text-muted-foreground text-sm",
|
|
28
|
+
children: "No badges earned yet"
|
|
29
|
+
});
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
31
|
+
className: "flex items-center gap-1",
|
|
32
|
+
children: [visibleBadges.map((badge) => /* @__PURE__ */ jsx("div", {
|
|
33
|
+
className: cn("flex items-center justify-center rounded-full bg-gradient-to-br from-amber-400/20 to-amber-600/20", sizeStyles[size]),
|
|
34
|
+
title: badge.replace(/_/g, " "),
|
|
35
|
+
children: BADGE_ICONS[badge] ?? BADGE_ICONS.default
|
|
36
|
+
}, badge)), hiddenCount > 0 && /* @__PURE__ */ jsxs("div", {
|
|
37
|
+
className: cn("text-muted-foreground bg-muted flex items-center justify-center rounded-full", sizeStyles[size], "text-xs font-medium"),
|
|
38
|
+
children: ["+", hiddenCount]
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
//#endregion
|
|
44
|
+
export { BadgeDisplay };
|
|
45
|
+
//# sourceMappingURL=BadgeDisplay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BadgeDisplay.js","names":[],"sources":["../../../../../../learning-journey-ui-shared/dist/components/BadgeDisplay.js"],"sourcesContent":["'use client';\n\nimport { cn } from \"../libs/ui-kit-web/dist/ui/utils.js\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\n//#region src/components/BadgeDisplay.tsx\nconst BADGE_ICONS = {\n\tstudio_first_30m: \"🎯\",\n\tplatform_tour: \"🗺️\",\n\tcrm_first_win: \"🏆\",\n\tdrill_master: \"🧠\",\n\tcoach_listener: \"👂\",\n\tquest_complete: \"⭐\",\n\tstreak_7: \"🔥\",\n\tstreak_30: \"💎\",\n\tdefault: \"🏅\"\n};\nconst sizeStyles = {\n\tsm: \"h-6 w-6 text-sm\",\n\tmd: \"h-8 w-8 text-base\",\n\tlg: \"h-10 w-10 text-lg\"\n};\nfunction BadgeDisplay({ badges, maxVisible = 5, size = \"md\" }) {\n\tconst visibleBadges = badges.slice(0, maxVisible);\n\tconst hiddenCount = badges.length - maxVisible;\n\tif (badges.length === 0) return /* @__PURE__ */ jsx(\"div\", {\n\t\tclassName: \"text-muted-foreground text-sm\",\n\t\tchildren: \"No badges earned yet\"\n\t});\n\treturn /* @__PURE__ */ jsxs(\"div\", {\n\t\tclassName: \"flex items-center gap-1\",\n\t\tchildren: [visibleBadges.map((badge) => /* @__PURE__ */ jsx(\"div\", {\n\t\t\tclassName: cn(\"flex items-center justify-center rounded-full bg-gradient-to-br from-amber-400/20 to-amber-600/20\", sizeStyles[size]),\n\t\t\ttitle: badge.replace(/_/g, \" \"),\n\t\t\tchildren: BADGE_ICONS[badge] ?? BADGE_ICONS.default\n\t\t}, badge)), hiddenCount > 0 && /* @__PURE__ */ jsxs(\"div\", {\n\t\t\tclassName: cn(\"text-muted-foreground bg-muted flex items-center justify-center rounded-full\", sizeStyles[size], \"text-xs font-medium\"),\n\t\t\tchildren: [\"+\", hiddenCount]\n\t\t})]\n\t});\n}\n\n//#endregion\nexport { BadgeDisplay };\n//# sourceMappingURL=BadgeDisplay.js.map"],"mappings":";;;;;;AAMA,MAAM,cAAc;CACnB,kBAAkB;CAClB,eAAe;CACf,eAAe;CACf,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CAChB,UAAU;CACV,WAAW;CACX,SAAS;CACT;AACD,MAAM,aAAa;CAClB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ;AACD,SAAS,aAAa,EAAE,QAAQ,aAAa,GAAG,OAAO,QAAQ;CAC9D,MAAM,gBAAgB,OAAO,MAAM,GAAG,WAAW;CACjD,MAAM,cAAc,OAAO,SAAS;AACpC,KAAI,OAAO,WAAW,EAAG,QAAuB,oBAAI,OAAO;EAC1D,WAAW;EACX,UAAU;EACV,CAAC;AACF,QAAuB,qBAAK,OAAO;EAClC,WAAW;EACX,UAAU,CAAC,cAAc,KAAK,UAA0B,oBAAI,OAAO;GAClE,WAAW,GAAG,qGAAqG,WAAW,MAAM;GACpI,OAAO,MAAM,QAAQ,MAAM,IAAI;GAC/B,UAAU,YAAY,UAAU,YAAY;GAC5C,EAAE,MAAM,CAAC,EAAE,cAAc,KAAqB,qBAAK,OAAO;GAC1D,WAAW,GAAG,gFAAgF,WAAW,OAAO,sBAAsB;GACtI,UAAU,CAAC,KAAK,YAAY;GAC5B,CAAC,CAAC;EACH,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { Button } from "../libs/design-system/dist/components/atoms/Button.js";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ../learning-journey-ui-shared/dist/components/ViewTabs.js
|
|
7
|
+
const VIEW_LABELS = {
|
|
8
|
+
overview: {
|
|
9
|
+
label: "Overview",
|
|
10
|
+
icon: "📊"
|
|
11
|
+
},
|
|
12
|
+
steps: {
|
|
13
|
+
label: "Steps",
|
|
14
|
+
icon: "📝"
|
|
15
|
+
},
|
|
16
|
+
progress: {
|
|
17
|
+
label: "Progress",
|
|
18
|
+
icon: "📈"
|
|
19
|
+
},
|
|
20
|
+
timeline: {
|
|
21
|
+
label: "Timeline",
|
|
22
|
+
icon: "📅"
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const DEFAULT_VIEWS = [
|
|
26
|
+
"overview",
|
|
27
|
+
"steps",
|
|
28
|
+
"progress",
|
|
29
|
+
"timeline"
|
|
30
|
+
];
|
|
31
|
+
function ViewTabs({ currentView, onViewChange, availableViews = DEFAULT_VIEWS }) {
|
|
32
|
+
return /* @__PURE__ */ jsx("div", {
|
|
33
|
+
className: "flex flex-wrap gap-2",
|
|
34
|
+
children: availableViews.map((view) => {
|
|
35
|
+
const { label, icon } = VIEW_LABELS[view];
|
|
36
|
+
return /* @__PURE__ */ jsxs(Button, {
|
|
37
|
+
variant: currentView === view ? "default" : "outline",
|
|
38
|
+
size: "sm",
|
|
39
|
+
onClick: () => onViewChange(view),
|
|
40
|
+
className: "gap-1.5",
|
|
41
|
+
children: [/* @__PURE__ */ jsx("span", { children: icon }), /* @__PURE__ */ jsx("span", { children: label })]
|
|
42
|
+
}, view);
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { ViewTabs };
|
|
49
|
+
//# sourceMappingURL=ViewTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewTabs.js","names":[],"sources":["../../../../../../learning-journey-ui-shared/dist/components/ViewTabs.js"],"sourcesContent":["'use client';\n\nimport { Button } from \"../libs/design-system/dist/components/atoms/Button.js\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\n//#region src/components/ViewTabs.tsx\nconst VIEW_LABELS = {\n\toverview: {\n\t\tlabel: \"Overview\",\n\t\ticon: \"📊\"\n\t},\n\tsteps: {\n\t\tlabel: \"Steps\",\n\t\ticon: \"📝\"\n\t},\n\tprogress: {\n\t\tlabel: \"Progress\",\n\t\ticon: \"📈\"\n\t},\n\ttimeline: {\n\t\tlabel: \"Timeline\",\n\t\ticon: \"📅\"\n\t}\n};\nconst DEFAULT_VIEWS = [\n\t\"overview\",\n\t\"steps\",\n\t\"progress\",\n\t\"timeline\"\n];\nfunction ViewTabs({ currentView, onViewChange, availableViews = DEFAULT_VIEWS }) {\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\tclassName: \"flex flex-wrap gap-2\",\n\t\tchildren: availableViews.map((view) => {\n\t\t\tconst { label, icon } = VIEW_LABELS[view];\n\t\t\treturn /* @__PURE__ */ jsxs(Button, {\n\t\t\t\tvariant: currentView === view ? \"default\" : \"outline\",\n\t\t\t\tsize: \"sm\",\n\t\t\t\tonClick: () => onViewChange(view),\n\t\t\t\tclassName: \"gap-1.5\",\n\t\t\t\tchildren: [/* @__PURE__ */ jsx(\"span\", { children: icon }), /* @__PURE__ */ jsx(\"span\", { children: label })]\n\t\t\t}, view);\n\t\t})\n\t});\n}\n\n//#endregion\nexport { ViewTabs };\n//# sourceMappingURL=ViewTabs.js.map"],"mappings":";;;;;;AAMA,MAAM,cAAc;CACnB,UAAU;EACT,OAAO;EACP,MAAM;EACN;CACD,OAAO;EACN,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,OAAO;EACP,MAAM;EACN;CACD,UAAU;EACT,OAAO;EACP,MAAM;EACN;CACD;AACD,MAAM,gBAAgB;CACrB;CACA;CACA;CACA;CACA;AACD,SAAS,SAAS,EAAE,aAAa,cAAc,iBAAiB,iBAAiB;AAChF,QAAuB,oBAAI,OAAO;EACjC,WAAW;EACX,UAAU,eAAe,KAAK,SAAS;GACtC,MAAM,EAAE,OAAO,SAAS,YAAY;AACpC,UAAuB,qBAAK,QAAQ;IACnC,SAAS,gBAAgB,OAAO,YAAY;IAC5C,MAAM;IACN,eAAe,aAAa,KAAK;IACjC,WAAW;IACX,UAAU,CAAiB,oBAAI,QAAQ,EAAE,UAAU,MAAM,CAAC,EAAkB,oBAAI,QAAQ,EAAE,UAAU,OAAO,CAAC,CAAC;IAC7G,EAAE,KAAK;IACP;EACF,CAAC"}
|