@thanh01.pmt/interactive-quiz-kit 1.0.25 → 1.0.28
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/dist/ai.cjs +521 -522
- package/dist/{ai.js → ai.mjs} +521 -523
- package/dist/authoring.cjs +103867 -13247
- package/dist/authoring.mjs +105685 -0
- package/dist/index.cjs +2484 -25
- package/dist/{index.js → index.mjs} +2483 -24
- package/dist/player.cjs +93503 -3611
- package/dist/player.mjs +94199 -0
- package/dist/react-ui.cjs +163794 -17127
- package/dist/react-ui.mjs +167381 -0
- package/package.json +67 -66
- package/dist/ai-ecosystem-BJ5RR5Ys.d.ts +0 -228
- package/dist/ai-ecosystem-CL30v1Lg.d.cts +0 -228
- package/dist/ai.d.cts +0 -1881
- package/dist/ai.d.ts +0 -1881
- package/dist/authoring.d.cts +0 -12
- package/dist/authoring.d.ts +0 -12
- package/dist/authoring.js +0 -15052
- package/dist/index.d.cts +0 -444
- package/dist/index.d.ts +0 -444
- package/dist/player.d.cts +0 -13
- package/dist/player.d.ts +0 -13
- package/dist/player.js +0 -4295
- package/dist/quiz-config-1gNNhljP.d.cts +0 -197
- package/dist/quiz-config-1gNNhljP.d.ts +0 -197
- package/dist/react-ui.d.cts +0 -207
- package/dist/react-ui.d.ts +0 -207
- package/dist/react-ui.js +0 -20673
- package/dist/toaster-CtnxWhfE.d.ts +0 -133
- package/dist/toaster-DUq851l_.d.cts +0 -133
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thanh01.pmt/interactive-quiz-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.28",
|
|
4
4
|
"description": "A comprehensive library for creating, managing, and playing interactive quizzes, with AI generation and SCORM support.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -23,32 +23,32 @@
|
|
|
23
23
|
],
|
|
24
24
|
"type": "module",
|
|
25
25
|
"main": "./dist/index.cjs",
|
|
26
|
-
"module": "./dist/index.
|
|
26
|
+
"module": "./dist/index.mjs",
|
|
27
27
|
"types": "./dist/index.d.ts",
|
|
28
28
|
"exports": {
|
|
29
29
|
".": {
|
|
30
30
|
"types": "./dist/index.d.ts",
|
|
31
|
-
"import": "./dist/index.
|
|
31
|
+
"import": "./dist/index.mjs",
|
|
32
32
|
"require": "./dist/index.cjs"
|
|
33
33
|
},
|
|
34
34
|
"./player": {
|
|
35
35
|
"types": "./dist/player.d.ts",
|
|
36
|
-
"import": "./dist/player.
|
|
36
|
+
"import": "./dist/player.mjs",
|
|
37
37
|
"require": "./dist/player.cjs"
|
|
38
38
|
},
|
|
39
39
|
"./react-ui": {
|
|
40
40
|
"types": "./dist/react-ui.d.ts",
|
|
41
|
-
"import": "./dist/react-ui.
|
|
41
|
+
"import": "./dist/react-ui.mjs",
|
|
42
42
|
"require": "./dist/react-ui.cjs"
|
|
43
43
|
},
|
|
44
44
|
"./ai": {
|
|
45
45
|
"types": "./dist/ai.d.ts",
|
|
46
|
-
"import": "./dist/ai.
|
|
46
|
+
"import": "./dist/ai.mjs",
|
|
47
47
|
"require": "./dist/ai.cjs"
|
|
48
48
|
},
|
|
49
49
|
"./authoring": {
|
|
50
50
|
"types": "./dist/authoring.d.ts",
|
|
51
|
-
"import": "./dist/authoring.
|
|
51
|
+
"import": "./dist/authoring.mjs",
|
|
52
52
|
"require": "./dist/authoring.cjs"
|
|
53
53
|
},
|
|
54
54
|
"./package.json": "./package.json"
|
|
@@ -62,13 +62,15 @@
|
|
|
62
62
|
"access": "public"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
|
-
"
|
|
65
|
+
"clean": "rm -rf dist",
|
|
66
|
+
"build:types": "tsc --project tsconfig.json",
|
|
67
|
+
"build:js": "tsup",
|
|
68
|
+
"build": "npm run clean && npm run build:types && npm run build:js",
|
|
66
69
|
"build:scorm:js": "tsup --config tsup.scorm.config.ts",
|
|
67
70
|
"build:scorm:css": "tailwindcss -i ./src/styles/main.css -o ./scorm-bundle/styles.css --minify",
|
|
68
71
|
"build:scorm": "npm run build:scorm:js && npm run build:scorm:css",
|
|
69
72
|
"lint": "eslint . --ext .ts,.tsx",
|
|
70
|
-
"test": "jest"
|
|
71
|
-
"clean": "rm -rf dist"
|
|
73
|
+
"test": "jest"
|
|
72
74
|
},
|
|
73
75
|
"dependencies": {
|
|
74
76
|
"@genkit-ai/googleai": "^1.0.0",
|
|
@@ -82,76 +84,75 @@
|
|
|
82
84
|
"zod": "^3.23.8"
|
|
83
85
|
},
|
|
84
86
|
"peerDependencies": {
|
|
85
|
-
"@codemirror/lang-cpp": ">=6.0.0",
|
|
86
|
-
"@codemirror/lang-javascript": ">=6.0.0",
|
|
87
|
-
"@codemirror/lang-python": ">=6.0.0",
|
|
88
|
-
"@dnd-kit/core": ">=6.0.0",
|
|
89
|
-
"@dnd-kit/sortable": ">=8.0.0",
|
|
90
|
-
"@dnd-kit/utilities": ">=3.2.0",
|
|
91
|
-
"@radix-ui/react-accordion": ">=1.1.0",
|
|
92
|
-
"@radix-ui/react-alert-dialog": ">=1.0.0",
|
|
93
|
-
"@radix-ui/react-avatar": ">=1.1.0",
|
|
94
|
-
"@radix-ui/react-checkbox": ">=1.0.0",
|
|
95
|
-
"@radix-ui/react-dialog": ">=1.0.0",
|
|
96
|
-
"@radix-ui/react-dropdown-menu": ">=2.1.0",
|
|
97
|
-
"@radix-ui/react-label": ">=2.0.0",
|
|
98
|
-
"@radix-ui/react-menubar": ">=1.1.0",
|
|
99
|
-
"@radix-ui/react-popover": ">=1.1.0",
|
|
100
|
-
"@radix-ui/react-progress": ">=1.0.0",
|
|
101
|
-
"@radix-ui/react-radio-group": ">=1.1.0",
|
|
102
|
-
"@radix-ui/react-scroll-area": ">=1.0.0",
|
|
103
|
-
"@radix-ui/react-select": ">=2.0.0",
|
|
104
|
-
"@radix-ui/react-separator": ">=1.1.0",
|
|
105
|
-
"@radix-ui/react-slider": ">=1.2.0",
|
|
106
|
-
"@radix-ui/react-slot": ">=1.0.0",
|
|
107
|
-
"@radix-ui/react-switch": ">=1.1.0",
|
|
108
|
-
"@radix-ui/react-tabs": ">=1.1.0",
|
|
109
|
-
"@radix-ui/react-toast": ">=1.1.0",
|
|
110
|
-
"@radix-ui/react-tooltip": ">=1.2.7",
|
|
111
|
-
"@uiw/react-codemirror": ">=4.21.0",
|
|
112
|
-
"date-fns": ">=3.0.0",
|
|
113
|
-
"html-to-image": ">=1.11.0",
|
|
114
|
-
"i18next": ">=23.0.0",
|
|
115
|
-
"i18next-browser-languagedetector": ">=7.2.0",
|
|
116
|
-
"lucide-react": ">=0.300.0",
|
|
117
87
|
"next": ">=14.0.0",
|
|
118
88
|
"react": ">=18.0.0",
|
|
119
|
-
"react-
|
|
120
|
-
"react-day-picker": ">=8.10.0",
|
|
121
|
-
"react-dom": ">=18.0.0",
|
|
122
|
-
"react-i18next": ">=14.0.0",
|
|
123
|
-
"react-markdown": ">=9.0.0",
|
|
124
|
-
"react-tooltip": ">=5.26.0",
|
|
125
|
-
"recharts": ">=2.12.0",
|
|
126
|
-
"rehype-highlight": ">=7.0.0",
|
|
127
|
-
"rehype-katex": ">=7.0.0",
|
|
128
|
-
"remark-gfm": ">=4.0.0",
|
|
129
|
-
"remark-math": ">=6.0.0"
|
|
130
|
-
},
|
|
131
|
-
"peerDependenciesMeta": {
|
|
132
|
-
"genkit": {
|
|
133
|
-
"optional": true
|
|
134
|
-
},
|
|
135
|
-
"@genkit-ai/googleai": {
|
|
136
|
-
"optional": true
|
|
137
|
-
}
|
|
89
|
+
"react-dom": ">=18.0.0"
|
|
138
90
|
},
|
|
139
91
|
"devDependencies": {
|
|
92
|
+
"@dnd-kit/core": "^6.1.0",
|
|
93
|
+
"@dnd-kit/sortable": "^8.0.0",
|
|
94
|
+
"@dnd-kit/utilities": "^3.2.2",
|
|
95
|
+
"@milkdown/kit": "^7.3.2",
|
|
96
|
+
"@milkdown/react": "^7.3.2",
|
|
97
|
+
"@prosemirror-adapter/react": "^0.1.0-next.12",
|
|
98
|
+
"@radix-ui/react-accordion": "^1.2.0",
|
|
99
|
+
"@radix-ui/react-alert-dialog": "^1.1.1",
|
|
100
|
+
"@radix-ui/react-avatar": "^1.1.0",
|
|
101
|
+
"@radix-ui/react-checkbox": "^1.1.1",
|
|
102
|
+
"@radix-ui/react-dialog": "^1.1.1",
|
|
103
|
+
"@radix-ui/react-dropdown-menu": "^2.1.1",
|
|
104
|
+
"@radix-ui/react-label": "^2.1.0",
|
|
105
|
+
"@radix-ui/react-menubar": "^1.1.1",
|
|
106
|
+
"@radix-ui/react-popover": "^1.1.1",
|
|
107
|
+
"@radix-ui/react-progress": "^1.1.0",
|
|
108
|
+
"@radix-ui/react-radio-group": "^1.2.0",
|
|
109
|
+
"@radix-ui/react-scroll-area": "^1.1.0",
|
|
110
|
+
"@radix-ui/react-select": "^2.1.1",
|
|
111
|
+
"@radix-ui/react-separator": "^1.1.0",
|
|
112
|
+
"@radix-ui/react-slider": "^1.2.0",
|
|
113
|
+
"@radix-ui/react-slot": "^1.1.0",
|
|
114
|
+
"@radix-ui/react-switch": "^1.1.0",
|
|
115
|
+
"@radix-ui/react-tabs": "^1.1.0",
|
|
116
|
+
"@radix-ui/react-toast": "^1.2.1",
|
|
117
|
+
"@radix-ui/react-tooltip": "^1.1.2",
|
|
118
|
+
"@tiptap/extension-code-block-lowlight": "^2.4.0",
|
|
119
|
+
"@tiptap/extension-image": "^2.4.0",
|
|
120
|
+
"@tiptap/extension-link": "^2.4.0",
|
|
121
|
+
"@tiptap/react": "^2.4.0",
|
|
122
|
+
"@tiptap/starter-kit": "^2.4.0",
|
|
140
123
|
"@types/node": "^20",
|
|
141
124
|
"@types/react": "^18",
|
|
142
125
|
"@types/react-calendar-heatmap": "^1.9.0",
|
|
143
126
|
"@types/react-dom": "^18",
|
|
144
|
-
"
|
|
145
|
-
"
|
|
127
|
+
"@uiw/react-codemirror": "^4.22.2",
|
|
128
|
+
"autoprefixer": "^10.4.19",
|
|
129
|
+
"date-fns": "^3.6.0",
|
|
130
|
+
"dotenv": "^16.4.5",
|
|
146
131
|
"eslint": "^8.57.0",
|
|
147
132
|
"eslint-config-next": "14.2.3",
|
|
148
133
|
"genkit-cli": "^1.8.0",
|
|
149
|
-
"
|
|
134
|
+
"html-to-image": "^1.11.11",
|
|
135
|
+
"i18next": "^23.11.5",
|
|
136
|
+
"i18next-browser-languagedetector": "^7.2.1",
|
|
137
|
+
"lowlight": "^3.1.0",
|
|
138
|
+
"lucide-react": "^0.395.0",
|
|
139
|
+
"postcss": "^8.4.38",
|
|
150
140
|
"react": "^18.3.1",
|
|
141
|
+
"react-calendar-heatmap": "^1.9.0",
|
|
142
|
+
"react-day-picker": "^8.10.1",
|
|
151
143
|
"react-dom": "^18.3.1",
|
|
152
|
-
"
|
|
144
|
+
"react-hook-form": "^7.52.0",
|
|
145
|
+
"react-i18next": "^14.1.2",
|
|
146
|
+
"react-markdown": "^9.0.1",
|
|
147
|
+
"react-tooltip": "^5.27.0",
|
|
148
|
+
"recharts": "^2.12.7",
|
|
149
|
+
"rehype-highlight": "^7.0.0",
|
|
150
|
+
"rehype-katex": "^7.0.0",
|
|
151
|
+
"remark-gfm": "^4.0.0",
|
|
152
|
+
"remark-math": "^6.0.0",
|
|
153
|
+
"tailwindcss": "^3.4.1",
|
|
153
154
|
"tailwindcss-animate": "^1.0.7",
|
|
154
|
-
"tsup": "^8.0
|
|
155
|
+
"tsup": "^8.1.0",
|
|
155
156
|
"typescript": "^5"
|
|
156
157
|
}
|
|
157
158
|
}
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { Q as QuestionTypeStrings, R as RichContentString, r as QuizConfig } from './quiz-config-1gNNhljP.js';
|
|
2
|
-
|
|
3
|
-
interface TestCaseResult {
|
|
4
|
-
testCaseId: string;
|
|
5
|
-
passed: boolean;
|
|
6
|
-
actualOutput: any;
|
|
7
|
-
reasoning: string;
|
|
8
|
-
}
|
|
9
|
-
type UserAnswerType = string | string[] | Record<string, string> | boolean | null;
|
|
10
|
-
type UserAnswers = Map<string, UserAnswerType>;
|
|
11
|
-
interface PerformanceMetric {
|
|
12
|
-
totalQuestions: number;
|
|
13
|
-
correctQuestions: number;
|
|
14
|
-
pointsEarned: number;
|
|
15
|
-
maxPoints: number;
|
|
16
|
-
percentage: number;
|
|
17
|
-
}
|
|
18
|
-
interface PerformanceByLearningObjective extends PerformanceMetric {
|
|
19
|
-
learningObjective: string;
|
|
20
|
-
}
|
|
21
|
-
interface PerformanceByCategory extends PerformanceMetric {
|
|
22
|
-
category: string;
|
|
23
|
-
}
|
|
24
|
-
interface PerformanceByTopic extends PerformanceMetric {
|
|
25
|
-
topic: string;
|
|
26
|
-
}
|
|
27
|
-
interface PerformanceByDifficulty extends PerformanceMetric {
|
|
28
|
-
difficulty: string;
|
|
29
|
-
}
|
|
30
|
-
interface PerformanceByBloomLevel extends PerformanceMetric {
|
|
31
|
-
bloomLevel: string;
|
|
32
|
-
}
|
|
33
|
-
type AnswerDetail = {
|
|
34
|
-
id: string | string[] | null;
|
|
35
|
-
value: RichContentString | RichContentString[] | Record<string, RichContentString> | boolean | number | null;
|
|
36
|
-
};
|
|
37
|
-
interface QuizResultType {
|
|
38
|
-
quizTitle?: string;
|
|
39
|
-
score: number;
|
|
40
|
-
maxScore: number;
|
|
41
|
-
percentage: number;
|
|
42
|
-
answers: UserAnswers;
|
|
43
|
-
passed?: boolean;
|
|
44
|
-
questionResults: Array<{
|
|
45
|
-
questionId: string;
|
|
46
|
-
questionType: QuestionTypeStrings;
|
|
47
|
-
prompt: RichContentString;
|
|
48
|
-
isCorrect: boolean;
|
|
49
|
-
pointsEarned: number;
|
|
50
|
-
userAnswer: AnswerDetail | null;
|
|
51
|
-
correctAnswer: AnswerDetail | null;
|
|
52
|
-
allOptions?: {
|
|
53
|
-
id: string;
|
|
54
|
-
value: RichContentString;
|
|
55
|
-
}[];
|
|
56
|
-
timeSpentSeconds?: number;
|
|
57
|
-
evaluationDetails?: TestCaseResult[];
|
|
58
|
-
}>;
|
|
59
|
-
webhookStatus?: 'idle' | 'sending' | 'success' | 'error';
|
|
60
|
-
webhookError?: string;
|
|
61
|
-
scormStatus?: 'idle' | 'no_api' | 'initializing' | 'initialized' | 'sending_data' | 'committed' | 'terminated' | 'error';
|
|
62
|
-
scormError?: string;
|
|
63
|
-
studentName?: string;
|
|
64
|
-
totalTimeSpentSeconds?: number;
|
|
65
|
-
averageTimePerQuestionSeconds?: number;
|
|
66
|
-
performanceByLearningObjective?: PerformanceByLearningObjective[];
|
|
67
|
-
performanceByCategory?: PerformanceByCategory[];
|
|
68
|
-
performanceByTopic?: PerformanceByTopic[];
|
|
69
|
-
performanceByDifficulty?: PerformanceByDifficulty[];
|
|
70
|
-
performanceByBloomLevel?: PerformanceByBloomLevel[];
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
interface ImportError {
|
|
74
|
-
index: number;
|
|
75
|
-
message: string;
|
|
76
|
-
data: any;
|
|
77
|
-
}
|
|
78
|
-
interface QuestionReview {
|
|
79
|
-
questionId: string;
|
|
80
|
-
explanation: RichContentString;
|
|
81
|
-
}
|
|
82
|
-
interface QuizReviewContent {
|
|
83
|
-
questionReviews: QuestionReview[];
|
|
84
|
-
overallSummary: RichContentString;
|
|
85
|
-
relatedTopics: string[];
|
|
86
|
-
}
|
|
87
|
-
interface AchievementDefinition {
|
|
88
|
-
id: string;
|
|
89
|
-
icon: string;
|
|
90
|
-
nameKey: string;
|
|
91
|
-
descriptionKey: string;
|
|
92
|
-
condition: {
|
|
93
|
-
type: string;
|
|
94
|
-
params: Record<string, any>;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
interface Achievement {
|
|
98
|
-
id: string;
|
|
99
|
-
name: string;
|
|
100
|
-
description: string;
|
|
101
|
-
icon: string;
|
|
102
|
-
unlockedAt?: number;
|
|
103
|
-
}
|
|
104
|
-
type PracticeDifficulty = 'Very Easy' | 'Easy' | 'Medium' | 'Hard' | 'Expert';
|
|
105
|
-
interface PracticeSuggestionTopic {
|
|
106
|
-
loId: string;
|
|
107
|
-
topicName: string;
|
|
108
|
-
reason: 'review' | 'explore';
|
|
109
|
-
suggestedDifficulty?: PracticeDifficulty;
|
|
110
|
-
}
|
|
111
|
-
interface PracticeSuggestion {
|
|
112
|
-
suggestionText: RichContentString;
|
|
113
|
-
suggestedTopics: PracticeSuggestionTopic[];
|
|
114
|
-
}
|
|
115
|
-
interface KnowledgeCard {
|
|
116
|
-
id: string;
|
|
117
|
-
concept: string;
|
|
118
|
-
definition: RichContentString;
|
|
119
|
-
example: RichContentString;
|
|
120
|
-
subject?: string;
|
|
121
|
-
}
|
|
122
|
-
interface PracticeTopicSummary {
|
|
123
|
-
subject: string;
|
|
124
|
-
category: string;
|
|
125
|
-
topic: string;
|
|
126
|
-
}
|
|
127
|
-
interface PracticeSession {
|
|
128
|
-
id: string;
|
|
129
|
-
timestamp: number;
|
|
130
|
-
quizConfig: QuizConfig;
|
|
131
|
-
quizResult: QuizResultType;
|
|
132
|
-
quizReview: QuizReviewContent | null;
|
|
133
|
-
summary: {
|
|
134
|
-
topics: PracticeTopicSummary[];
|
|
135
|
-
score: number;
|
|
136
|
-
maxScore: number;
|
|
137
|
-
percentage: number;
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
interface PracticeSessionSummary {
|
|
141
|
-
id: string;
|
|
142
|
-
timestamp: number;
|
|
143
|
-
quizTitle: string;
|
|
144
|
-
topics: PracticeTopicSummary[];
|
|
145
|
-
score: number | null;
|
|
146
|
-
maxScore: number | null;
|
|
147
|
-
percentage: number | null;
|
|
148
|
-
}
|
|
149
|
-
type ActivityCalendarData = Record<string, number>;
|
|
150
|
-
interface PerformanceSummary {
|
|
151
|
-
name: string;
|
|
152
|
-
totalSessions: number;
|
|
153
|
-
averageScore: number;
|
|
154
|
-
}
|
|
155
|
-
interface PracticeStats {
|
|
156
|
-
totalSessions: number;
|
|
157
|
-
currentStreak: number;
|
|
158
|
-
longestStreak: number;
|
|
159
|
-
activityCalendar: ActivityCalendarData;
|
|
160
|
-
performanceBySubject: PerformanceSummary[];
|
|
161
|
-
performanceByTopic: PerformanceSummary[];
|
|
162
|
-
}
|
|
163
|
-
interface ImageContextItem {
|
|
164
|
-
id: string;
|
|
165
|
-
imageUrl: string;
|
|
166
|
-
imageAltText: string;
|
|
167
|
-
detailedDescription: string;
|
|
168
|
-
subject: string;
|
|
169
|
-
category: string;
|
|
170
|
-
topic: string;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
interface RoadmapItem {
|
|
174
|
-
day: string;
|
|
175
|
-
topicName: string;
|
|
176
|
-
reason: string;
|
|
177
|
-
suggestedDifficulty: PracticeDifficulty;
|
|
178
|
-
loId: string;
|
|
179
|
-
isCompleted: boolean;
|
|
180
|
-
}
|
|
181
|
-
interface WeeklyRoadmap {
|
|
182
|
-
generatedAt: number;
|
|
183
|
-
items: RoadmapItem[];
|
|
184
|
-
}
|
|
185
|
-
interface AnalysisReport {
|
|
186
|
-
generatedAt: number;
|
|
187
|
-
startDate: string;
|
|
188
|
-
endDate: string;
|
|
189
|
-
effortAndConsistencyRemarks: RichContentString;
|
|
190
|
-
strengths: string[];
|
|
191
|
-
areasForImprovement: string[];
|
|
192
|
-
gamificationRemarks: RichContentString;
|
|
193
|
-
}
|
|
194
|
-
interface LearningAnalysis {
|
|
195
|
-
analysisReport?: AnalysisReport;
|
|
196
|
-
weeklyRoadmap?: WeeklyRoadmap;
|
|
197
|
-
}
|
|
198
|
-
type DashboardCardId = 'roadmap' | 'activity' | 'history' | 'performance' | 'achievements' | 'knowledgeCards' | 'goals' | 'generatedQuizzes' | 'freestyleQuizzes';
|
|
199
|
-
interface DashboardCardConfig {
|
|
200
|
-
id: DashboardCardId;
|
|
201
|
-
visible: boolean;
|
|
202
|
-
}
|
|
203
|
-
interface DashboardLayout {
|
|
204
|
-
column1: DashboardCardConfig[];
|
|
205
|
-
column2: DashboardCardConfig[];
|
|
206
|
-
}
|
|
207
|
-
interface ChatMessage {
|
|
208
|
-
id: string;
|
|
209
|
-
role: 'user' | 'assistant';
|
|
210
|
-
content: RichContentString;
|
|
211
|
-
}
|
|
212
|
-
interface ChatContext {
|
|
213
|
-
history: ChatMessage[];
|
|
214
|
-
knowledgeCards: Omit<KnowledgeCard, 'id' | 'subject'>[];
|
|
215
|
-
}
|
|
216
|
-
type GoalType = 'average_score_subject' | 'mastery_topic';
|
|
217
|
-
interface Goal {
|
|
218
|
-
id: string;
|
|
219
|
-
type: GoalType;
|
|
220
|
-
targetValue: number;
|
|
221
|
-
subject?: string;
|
|
222
|
-
topic?: string;
|
|
223
|
-
consecutiveSessions?: number;
|
|
224
|
-
isAchieved: boolean;
|
|
225
|
-
achievedAt?: number;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export type { AnswerDetail as A, ChatMessage as C, DashboardCardId as D, GoalType as G, ImportError as I, KnowledgeCard as K, LearningAnalysis as L, PerformanceByLearningObjective as P, QuizResultType as Q, RoadmapItem as R, TestCaseResult as T, UserAnswerType as U, WeeklyRoadmap as W, UserAnswers as a, PerformanceByCategory as b, PerformanceByTopic as c, PerformanceByDifficulty as d, PerformanceByBloomLevel as e, PerformanceMetric as f, QuestionReview as g, QuizReviewContent as h, Achievement as i, AchievementDefinition as j, PracticeDifficulty as k, PracticeSuggestionTopic as l, PracticeSuggestion as m, PracticeSession as n, PracticeStats as o, PracticeSessionSummary as p, PracticeTopicSummary as q, ActivityCalendarData as r, PerformanceSummary as s, ImageContextItem as t, AnalysisReport as u, DashboardCardConfig as v, DashboardLayout as w, ChatContext as x, Goal as y };
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { Q as QuestionTypeStrings, R as RichContentString, r as QuizConfig } from './quiz-config-1gNNhljP.cjs';
|
|
2
|
-
|
|
3
|
-
interface TestCaseResult {
|
|
4
|
-
testCaseId: string;
|
|
5
|
-
passed: boolean;
|
|
6
|
-
actualOutput: any;
|
|
7
|
-
reasoning: string;
|
|
8
|
-
}
|
|
9
|
-
type UserAnswerType = string | string[] | Record<string, string> | boolean | null;
|
|
10
|
-
type UserAnswers = Map<string, UserAnswerType>;
|
|
11
|
-
interface PerformanceMetric {
|
|
12
|
-
totalQuestions: number;
|
|
13
|
-
correctQuestions: number;
|
|
14
|
-
pointsEarned: number;
|
|
15
|
-
maxPoints: number;
|
|
16
|
-
percentage: number;
|
|
17
|
-
}
|
|
18
|
-
interface PerformanceByLearningObjective extends PerformanceMetric {
|
|
19
|
-
learningObjective: string;
|
|
20
|
-
}
|
|
21
|
-
interface PerformanceByCategory extends PerformanceMetric {
|
|
22
|
-
category: string;
|
|
23
|
-
}
|
|
24
|
-
interface PerformanceByTopic extends PerformanceMetric {
|
|
25
|
-
topic: string;
|
|
26
|
-
}
|
|
27
|
-
interface PerformanceByDifficulty extends PerformanceMetric {
|
|
28
|
-
difficulty: string;
|
|
29
|
-
}
|
|
30
|
-
interface PerformanceByBloomLevel extends PerformanceMetric {
|
|
31
|
-
bloomLevel: string;
|
|
32
|
-
}
|
|
33
|
-
type AnswerDetail = {
|
|
34
|
-
id: string | string[] | null;
|
|
35
|
-
value: RichContentString | RichContentString[] | Record<string, RichContentString> | boolean | number | null;
|
|
36
|
-
};
|
|
37
|
-
interface QuizResultType {
|
|
38
|
-
quizTitle?: string;
|
|
39
|
-
score: number;
|
|
40
|
-
maxScore: number;
|
|
41
|
-
percentage: number;
|
|
42
|
-
answers: UserAnswers;
|
|
43
|
-
passed?: boolean;
|
|
44
|
-
questionResults: Array<{
|
|
45
|
-
questionId: string;
|
|
46
|
-
questionType: QuestionTypeStrings;
|
|
47
|
-
prompt: RichContentString;
|
|
48
|
-
isCorrect: boolean;
|
|
49
|
-
pointsEarned: number;
|
|
50
|
-
userAnswer: AnswerDetail | null;
|
|
51
|
-
correctAnswer: AnswerDetail | null;
|
|
52
|
-
allOptions?: {
|
|
53
|
-
id: string;
|
|
54
|
-
value: RichContentString;
|
|
55
|
-
}[];
|
|
56
|
-
timeSpentSeconds?: number;
|
|
57
|
-
evaluationDetails?: TestCaseResult[];
|
|
58
|
-
}>;
|
|
59
|
-
webhookStatus?: 'idle' | 'sending' | 'success' | 'error';
|
|
60
|
-
webhookError?: string;
|
|
61
|
-
scormStatus?: 'idle' | 'no_api' | 'initializing' | 'initialized' | 'sending_data' | 'committed' | 'terminated' | 'error';
|
|
62
|
-
scormError?: string;
|
|
63
|
-
studentName?: string;
|
|
64
|
-
totalTimeSpentSeconds?: number;
|
|
65
|
-
averageTimePerQuestionSeconds?: number;
|
|
66
|
-
performanceByLearningObjective?: PerformanceByLearningObjective[];
|
|
67
|
-
performanceByCategory?: PerformanceByCategory[];
|
|
68
|
-
performanceByTopic?: PerformanceByTopic[];
|
|
69
|
-
performanceByDifficulty?: PerformanceByDifficulty[];
|
|
70
|
-
performanceByBloomLevel?: PerformanceByBloomLevel[];
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
interface ImportError {
|
|
74
|
-
index: number;
|
|
75
|
-
message: string;
|
|
76
|
-
data: any;
|
|
77
|
-
}
|
|
78
|
-
interface QuestionReview {
|
|
79
|
-
questionId: string;
|
|
80
|
-
explanation: RichContentString;
|
|
81
|
-
}
|
|
82
|
-
interface QuizReviewContent {
|
|
83
|
-
questionReviews: QuestionReview[];
|
|
84
|
-
overallSummary: RichContentString;
|
|
85
|
-
relatedTopics: string[];
|
|
86
|
-
}
|
|
87
|
-
interface AchievementDefinition {
|
|
88
|
-
id: string;
|
|
89
|
-
icon: string;
|
|
90
|
-
nameKey: string;
|
|
91
|
-
descriptionKey: string;
|
|
92
|
-
condition: {
|
|
93
|
-
type: string;
|
|
94
|
-
params: Record<string, any>;
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
interface Achievement {
|
|
98
|
-
id: string;
|
|
99
|
-
name: string;
|
|
100
|
-
description: string;
|
|
101
|
-
icon: string;
|
|
102
|
-
unlockedAt?: number;
|
|
103
|
-
}
|
|
104
|
-
type PracticeDifficulty = 'Very Easy' | 'Easy' | 'Medium' | 'Hard' | 'Expert';
|
|
105
|
-
interface PracticeSuggestionTopic {
|
|
106
|
-
loId: string;
|
|
107
|
-
topicName: string;
|
|
108
|
-
reason: 'review' | 'explore';
|
|
109
|
-
suggestedDifficulty?: PracticeDifficulty;
|
|
110
|
-
}
|
|
111
|
-
interface PracticeSuggestion {
|
|
112
|
-
suggestionText: RichContentString;
|
|
113
|
-
suggestedTopics: PracticeSuggestionTopic[];
|
|
114
|
-
}
|
|
115
|
-
interface KnowledgeCard {
|
|
116
|
-
id: string;
|
|
117
|
-
concept: string;
|
|
118
|
-
definition: RichContentString;
|
|
119
|
-
example: RichContentString;
|
|
120
|
-
subject?: string;
|
|
121
|
-
}
|
|
122
|
-
interface PracticeTopicSummary {
|
|
123
|
-
subject: string;
|
|
124
|
-
category: string;
|
|
125
|
-
topic: string;
|
|
126
|
-
}
|
|
127
|
-
interface PracticeSession {
|
|
128
|
-
id: string;
|
|
129
|
-
timestamp: number;
|
|
130
|
-
quizConfig: QuizConfig;
|
|
131
|
-
quizResult: QuizResultType;
|
|
132
|
-
quizReview: QuizReviewContent | null;
|
|
133
|
-
summary: {
|
|
134
|
-
topics: PracticeTopicSummary[];
|
|
135
|
-
score: number;
|
|
136
|
-
maxScore: number;
|
|
137
|
-
percentage: number;
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
interface PracticeSessionSummary {
|
|
141
|
-
id: string;
|
|
142
|
-
timestamp: number;
|
|
143
|
-
quizTitle: string;
|
|
144
|
-
topics: PracticeTopicSummary[];
|
|
145
|
-
score: number | null;
|
|
146
|
-
maxScore: number | null;
|
|
147
|
-
percentage: number | null;
|
|
148
|
-
}
|
|
149
|
-
type ActivityCalendarData = Record<string, number>;
|
|
150
|
-
interface PerformanceSummary {
|
|
151
|
-
name: string;
|
|
152
|
-
totalSessions: number;
|
|
153
|
-
averageScore: number;
|
|
154
|
-
}
|
|
155
|
-
interface PracticeStats {
|
|
156
|
-
totalSessions: number;
|
|
157
|
-
currentStreak: number;
|
|
158
|
-
longestStreak: number;
|
|
159
|
-
activityCalendar: ActivityCalendarData;
|
|
160
|
-
performanceBySubject: PerformanceSummary[];
|
|
161
|
-
performanceByTopic: PerformanceSummary[];
|
|
162
|
-
}
|
|
163
|
-
interface ImageContextItem {
|
|
164
|
-
id: string;
|
|
165
|
-
imageUrl: string;
|
|
166
|
-
imageAltText: string;
|
|
167
|
-
detailedDescription: string;
|
|
168
|
-
subject: string;
|
|
169
|
-
category: string;
|
|
170
|
-
topic: string;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
interface RoadmapItem {
|
|
174
|
-
day: string;
|
|
175
|
-
topicName: string;
|
|
176
|
-
reason: string;
|
|
177
|
-
suggestedDifficulty: PracticeDifficulty;
|
|
178
|
-
loId: string;
|
|
179
|
-
isCompleted: boolean;
|
|
180
|
-
}
|
|
181
|
-
interface WeeklyRoadmap {
|
|
182
|
-
generatedAt: number;
|
|
183
|
-
items: RoadmapItem[];
|
|
184
|
-
}
|
|
185
|
-
interface AnalysisReport {
|
|
186
|
-
generatedAt: number;
|
|
187
|
-
startDate: string;
|
|
188
|
-
endDate: string;
|
|
189
|
-
effortAndConsistencyRemarks: RichContentString;
|
|
190
|
-
strengths: string[];
|
|
191
|
-
areasForImprovement: string[];
|
|
192
|
-
gamificationRemarks: RichContentString;
|
|
193
|
-
}
|
|
194
|
-
interface LearningAnalysis {
|
|
195
|
-
analysisReport?: AnalysisReport;
|
|
196
|
-
weeklyRoadmap?: WeeklyRoadmap;
|
|
197
|
-
}
|
|
198
|
-
type DashboardCardId = 'roadmap' | 'activity' | 'history' | 'performance' | 'achievements' | 'knowledgeCards' | 'goals' | 'generatedQuizzes' | 'freestyleQuizzes';
|
|
199
|
-
interface DashboardCardConfig {
|
|
200
|
-
id: DashboardCardId;
|
|
201
|
-
visible: boolean;
|
|
202
|
-
}
|
|
203
|
-
interface DashboardLayout {
|
|
204
|
-
column1: DashboardCardConfig[];
|
|
205
|
-
column2: DashboardCardConfig[];
|
|
206
|
-
}
|
|
207
|
-
interface ChatMessage {
|
|
208
|
-
id: string;
|
|
209
|
-
role: 'user' | 'assistant';
|
|
210
|
-
content: RichContentString;
|
|
211
|
-
}
|
|
212
|
-
interface ChatContext {
|
|
213
|
-
history: ChatMessage[];
|
|
214
|
-
knowledgeCards: Omit<KnowledgeCard, 'id' | 'subject'>[];
|
|
215
|
-
}
|
|
216
|
-
type GoalType = 'average_score_subject' | 'mastery_topic';
|
|
217
|
-
interface Goal {
|
|
218
|
-
id: string;
|
|
219
|
-
type: GoalType;
|
|
220
|
-
targetValue: number;
|
|
221
|
-
subject?: string;
|
|
222
|
-
topic?: string;
|
|
223
|
-
consecutiveSessions?: number;
|
|
224
|
-
isAchieved: boolean;
|
|
225
|
-
achievedAt?: number;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
export type { AnswerDetail as A, ChatMessage as C, DashboardCardId as D, GoalType as G, ImportError as I, KnowledgeCard as K, LearningAnalysis as L, PerformanceByLearningObjective as P, QuizResultType as Q, RoadmapItem as R, TestCaseResult as T, UserAnswerType as U, WeeklyRoadmap as W, UserAnswers as a, PerformanceByCategory as b, PerformanceByTopic as c, PerformanceByDifficulty as d, PerformanceByBloomLevel as e, PerformanceMetric as f, QuestionReview as g, QuizReviewContent as h, Achievement as i, AchievementDefinition as j, PracticeDifficulty as k, PracticeSuggestionTopic as l, PracticeSuggestion as m, PracticeSession as n, PracticeStats as o, PracticeSessionSummary as p, PracticeTopicSummary as q, ActivityCalendarData as r, PerformanceSummary as s, ImageContextItem as t, AnalysisReport as u, DashboardCardConfig as v, DashboardLayout as w, ChatContext as x, Goal as y };
|