@pie-players/pie-assessment-toolkit 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/README.md +520 -0
  2. package/dist/attempt/TestSession.d.ts +90 -0
  3. package/dist/attempt/TestSession.d.ts.map +1 -0
  4. package/dist/attempt/TestSession.js +174 -0
  5. package/dist/attempt/TestSession.js.map +1 -0
  6. package/dist/core/TypedEventBus.d.ts +48 -0
  7. package/dist/core/TypedEventBus.d.ts.map +1 -0
  8. package/dist/core/TypedEventBus.js +63 -0
  9. package/dist/core/TypedEventBus.js.map +1 -0
  10. package/dist/index.d.ts +37 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +44 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/item-loader.d.ts +45 -0
  15. package/dist/item-loader.d.ts.map +1 -0
  16. package/dist/item-loader.js +62 -0
  17. package/dist/item-loader.js.map +1 -0
  18. package/dist/player/AssessmentPlayer.d.ts +388 -0
  19. package/dist/player/AssessmentPlayer.d.ts.map +1 -0
  20. package/dist/player/AssessmentPlayer.js +965 -0
  21. package/dist/player/AssessmentPlayer.js.map +1 -0
  22. package/dist/player/index.d.ts +17 -0
  23. package/dist/player/index.d.ts.map +1 -0
  24. package/dist/player/index.js +15 -0
  25. package/dist/player/index.js.map +1 -0
  26. package/dist/player/navigation-types.d.ts +63 -0
  27. package/dist/player/navigation-types.d.ts.map +1 -0
  28. package/dist/player/navigation-types.js +7 -0
  29. package/dist/player/navigation-types.js.map +1 -0
  30. package/dist/player/qti-navigation.d.ts +29 -0
  31. package/dist/player/qti-navigation.d.ts.map +1 -0
  32. package/dist/player/qti-navigation.js +160 -0
  33. package/dist/player/qti-navigation.js.map +1 -0
  34. package/dist/reference-layout/index.d.ts +19 -0
  35. package/dist/reference-layout/index.d.ts.map +1 -0
  36. package/dist/reference-layout/index.js +20 -0
  37. package/dist/reference-layout/index.js.map +1 -0
  38. package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
  39. package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
  40. package/dist/services/AccessibilityCatalogResolver.js +249 -0
  41. package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
  42. package/dist/services/AssessmentAuthoringService.d.ts +60 -0
  43. package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
  44. package/dist/services/AssessmentAuthoringService.js +183 -0
  45. package/dist/services/AssessmentAuthoringService.js.map +1 -0
  46. package/dist/services/ContextVariableStore.d.ts +114 -0
  47. package/dist/services/ContextVariableStore.d.ts.map +1 -0
  48. package/dist/services/ContextVariableStore.js +207 -0
  49. package/dist/services/ContextVariableStore.js.map +1 -0
  50. package/dist/services/ElementToolStateStore.d.ts +125 -0
  51. package/dist/services/ElementToolStateStore.d.ts.map +1 -0
  52. package/dist/services/ElementToolStateStore.js +200 -0
  53. package/dist/services/ElementToolStateStore.js.map +1 -0
  54. package/dist/services/HighlightCoordinator.d.ts +179 -0
  55. package/dist/services/HighlightCoordinator.d.ts.map +1 -0
  56. package/dist/services/HighlightCoordinator.js +446 -0
  57. package/dist/services/HighlightCoordinator.js.map +1 -0
  58. package/dist/services/I18nService.d.ts +121 -0
  59. package/dist/services/I18nService.d.ts.map +1 -0
  60. package/dist/services/I18nService.js +276 -0
  61. package/dist/services/I18nService.js.map +1 -0
  62. package/dist/services/PNPMapper.d.ts +71 -0
  63. package/dist/services/PNPMapper.d.ts.map +1 -0
  64. package/dist/services/PNPMapper.js +98 -0
  65. package/dist/services/PNPMapper.js.map +1 -0
  66. package/dist/services/PNPToolResolver.d.ts +127 -0
  67. package/dist/services/PNPToolResolver.d.ts.map +1 -0
  68. package/dist/services/PNPToolResolver.js +222 -0
  69. package/dist/services/PNPToolResolver.js.map +1 -0
  70. package/dist/services/SSMLExtractor.d.ts +61 -0
  71. package/dist/services/SSMLExtractor.d.ts.map +1 -0
  72. package/dist/services/SSMLExtractor.js +181 -0
  73. package/dist/services/SSMLExtractor.js.map +1 -0
  74. package/dist/services/TTSService.d.ts +162 -0
  75. package/dist/services/TTSService.d.ts.map +1 -0
  76. package/dist/services/TTSService.js +465 -0
  77. package/dist/services/TTSService.js.map +1 -0
  78. package/dist/services/ThemeProvider.d.ts +95 -0
  79. package/dist/services/ThemeProvider.d.ts.map +1 -0
  80. package/dist/services/ThemeProvider.js +299 -0
  81. package/dist/services/ThemeProvider.js.map +1 -0
  82. package/dist/services/ToolConfigResolver.d.ts +162 -0
  83. package/dist/services/ToolConfigResolver.d.ts.map +1 -0
  84. package/dist/services/ToolConfigResolver.js +230 -0
  85. package/dist/services/ToolConfigResolver.js.map +1 -0
  86. package/dist/services/ToolCoordinator.d.ts +137 -0
  87. package/dist/services/ToolCoordinator.d.ts.map +1 -0
  88. package/dist/services/ToolCoordinator.js +318 -0
  89. package/dist/services/ToolCoordinator.js.map +1 -0
  90. package/dist/services/ToolkitCoordinator.d.ts +188 -0
  91. package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
  92. package/dist/services/ToolkitCoordinator.js +252 -0
  93. package/dist/services/ToolkitCoordinator.js.map +1 -0
  94. package/dist/services/interfaces.d.ts +391 -0
  95. package/dist/services/interfaces.d.ts.map +1 -0
  96. package/dist/services/interfaces.js +12 -0
  97. package/dist/services/interfaces.js.map +1 -0
  98. package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
  99. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
  100. package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
  101. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
  102. package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
  103. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
  104. package/dist/services/tool-providers/IToolProvider.js +13 -0
  105. package/dist/services/tool-providers/IToolProvider.js.map +1 -0
  106. package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
  107. package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
  108. package/dist/services/tool-providers/TIToolProvider.js +123 -0
  109. package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
  110. package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
  111. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
  112. package/dist/services/tool-providers/TTSToolProvider.js +168 -0
  113. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
  114. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
  115. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
  116. package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
  117. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
  118. package/dist/services/tool-providers/index.d.ts +18 -0
  119. package/dist/services/tool-providers/index.d.ts.map +1 -0
  120. package/dist/services/tool-providers/index.js +15 -0
  121. package/dist/services/tool-providers/index.js.map +1 -0
  122. package/dist/services/tts/browser-provider.d.ts +24 -0
  123. package/dist/services/tts/browser-provider.d.ts.map +1 -0
  124. package/dist/services/tts/browser-provider.js +177 -0
  125. package/dist/services/tts/browser-provider.js.map +1 -0
  126. package/dist/services/tts/provider-interface.d.ts +131 -0
  127. package/dist/services/tts/provider-interface.d.ts.map +1 -0
  128. package/dist/services/tts/provider-interface.js +10 -0
  129. package/dist/services/tts/provider-interface.js.map +1 -0
  130. package/dist/tools/calculators/desmos-provider.d.ts +54 -0
  131. package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
  132. package/dist/tools/calculators/desmos-provider.js +384 -0
  133. package/dist/tools/calculators/desmos-provider.js.map +1 -0
  134. package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
  135. package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
  136. package/dist/tools/calculators/mathjs-provider.js +660 -0
  137. package/dist/tools/calculators/mathjs-provider.js.map +1 -0
  138. package/dist/tools/calculators/ti-provider.d.ts +122 -0
  139. package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
  140. package/dist/tools/calculators/ti-provider.js +587 -0
  141. package/dist/tools/calculators/ti-provider.js.map +1 -0
  142. package/dist/tools/client.d.ts +17 -0
  143. package/dist/tools/client.d.ts.map +1 -0
  144. package/dist/tools/client.js +26 -0
  145. package/dist/tools/client.js.map +1 -0
  146. package/dist/tools/index.d.ts +8 -0
  147. package/dist/tools/index.d.ts.map +1 -0
  148. package/dist/tools/index.js +10 -0
  149. package/dist/tools/index.js.map +1 -0
  150. package/dist/tools/library-loader.d.ts +63 -0
  151. package/dist/tools/library-loader.d.ts.map +1 -0
  152. package/dist/tools/library-loader.js +292 -0
  153. package/dist/tools/library-loader.js.map +1 -0
  154. package/dist/tools/response-discovery.d.ts +72 -0
  155. package/dist/tools/response-discovery.d.ts.map +1 -0
  156. package/dist/tools/response-discovery.js +183 -0
  157. package/dist/tools/response-discovery.js.map +1 -0
  158. package/dist/tools/tool-coordinator.d.ts +76 -0
  159. package/dist/tools/tool-coordinator.d.ts.map +1 -0
  160. package/dist/tools/tool-coordinator.js +197 -0
  161. package/dist/tools/tool-coordinator.js.map +1 -0
  162. package/dist/tools/types.d.ts +427 -0
  163. package/dist/tools/types.d.ts.map +1 -0
  164. package/dist/tools/types.js +13 -0
  165. package/dist/tools/types.js.map +1 -0
  166. package/dist/tools/variant-resolver.d.ts +48 -0
  167. package/dist/tools/variant-resolver.d.ts.map +1 -0
  168. package/dist/tools/variant-resolver.js +214 -0
  169. package/dist/tools/variant-resolver.js.map +1 -0
  170. package/dist/types/events.d.ts +157 -0
  171. package/dist/types/events.d.ts.map +1 -0
  172. package/dist/types/events.js +11 -0
  173. package/dist/types/events.js.map +1 -0
  174. package/dist/utils/logger.d.ts +7 -0
  175. package/dist/utils/logger.d.ts.map +1 -0
  176. package/dist/utils/logger.js +11 -0
  177. package/dist/utils/logger.js.map +1 -0
  178. package/package.json +71 -0
  179. package/src/README.md +626 -0
  180. package/src/components/QuestionToolBar.svelte +406 -0
  181. package/src/player/AssessmentLayout.svelte +68 -0
  182. package/src/player/README.md +154 -0
  183. package/src/reference-layout/README.md +135 -0
  184. package/src/reference-layout/ReferenceLayout.svelte +209 -0
  185. package/src/reference-layout/components/AssessmentContent.svelte +259 -0
  186. package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
  187. package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
  188. package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
  189. package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
  190. package/src/reference-layout/components/ItemPanel.svelte +200 -0
  191. package/src/reference-layout/components/NotesPanel.svelte +179 -0
  192. package/src/reference-layout/components/PassagePanel.svelte +76 -0
  193. package/src/tools/README.md +616 -0
  194. package/src/tools/calculators/README.md +395 -0
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Variant Resolver Service
3
+ * Resolves item configuration considering variants for A/B testing, scaffolding, and adaptations
4
+ *
5
+ * Based on architectural enhancements for item-level variant configuration
6
+ */
7
+ export class VariantResolverImpl {
8
+ /**
9
+ * Resolve variant configuration for an item
10
+ */
11
+ resolveVariant(itemConfig, context) {
12
+ // If no variant config, return item as-is
13
+ if (!itemConfig.variantConfig) {
14
+ return this._buildResolvedConfig(itemConfig, null, []);
15
+ }
16
+ const { variantConfig } = itemConfig;
17
+ const { variantId, toolOverrides, adaptations } = variantConfig;
18
+ // Apply tool overrides if variant specified
19
+ const resolvedToolParameters = {};
20
+ if (itemConfig.toolParameters) {
21
+ for (const [toolType, params] of Object.entries(itemConfig.toolParameters)) {
22
+ resolvedToolParameters[toolType] = this._resolveToolParameters(toolType, params, toolOverrides, context);
23
+ }
24
+ }
25
+ // Apply tool overrides that aren't in original tool parameters
26
+ if (toolOverrides) {
27
+ for (const [toolType, override] of Object.entries(toolOverrides)) {
28
+ if (!resolvedToolParameters[toolType]) {
29
+ resolvedToolParameters[toolType] =
30
+ this._createToolParametersFromOverride(toolType, override);
31
+ }
32
+ }
33
+ }
34
+ // Build final resolved config
35
+ return {
36
+ itemId: itemConfig.itemId,
37
+ requiredTools: this._resolveRequiredTools(itemConfig, toolOverrides),
38
+ restrictedTools: itemConfig.restrictedTools || [],
39
+ toolParameters: resolvedToolParameters,
40
+ appliedVariant: variantId,
41
+ appliedAdaptations: this._filterAdaptations(adaptations, context),
42
+ };
43
+ }
44
+ /**
45
+ * Resolve tool parameters considering variant and context
46
+ */
47
+ _resolveToolParameters(toolType, params, toolOverrides, context) {
48
+ // Start with base parameters
49
+ let finalConfig = params.config || {};
50
+ let finalHint = params.hint;
51
+ let finalPreOpen = params.preOpen;
52
+ // Apply variant-specific parameters if they exist
53
+ if (params.variants) {
54
+ const variantParams = this._selectVariantParameters(params.variants, context);
55
+ if (variantParams) {
56
+ finalConfig = { ...finalConfig, ...variantParams.config };
57
+ if (variantParams.hint !== undefined)
58
+ finalHint = variantParams.hint;
59
+ if (variantParams.preOpen !== undefined)
60
+ finalPreOpen = variantParams.preOpen;
61
+ }
62
+ }
63
+ // Apply tool override from variant config
64
+ if (toolOverrides && toolOverrides[toolType]) {
65
+ const override = toolOverrides[toolType];
66
+ if (override.config) {
67
+ finalConfig = { ...finalConfig, ...override.config };
68
+ }
69
+ if (override.parameters) {
70
+ // Merge additional parameters
71
+ finalConfig = { ...finalConfig, ...override.parameters };
72
+ }
73
+ }
74
+ return {
75
+ config: params.config,
76
+ hint: finalHint,
77
+ preOpen: finalPreOpen,
78
+ variants: params.variants,
79
+ finalConfig: finalConfig,
80
+ };
81
+ }
82
+ /**
83
+ * Select variant parameters based on context
84
+ */
85
+ _selectVariantParameters(variants, context) {
86
+ // Strategy: Select based on context properties
87
+ // 1. Check for scaffolding level match
88
+ if (context.scaffoldingLevel !== undefined) {
89
+ const scaffoldKey = `scaffolding-${context.scaffoldingLevel}`;
90
+ if (variants[scaffoldKey])
91
+ return variants[scaffoldKey];
92
+ }
93
+ // 2. Check for difficulty level match
94
+ if (context.difficultyLevel) {
95
+ const difficultyKey = `difficulty-${context.difficultyLevel}`;
96
+ if (variants[difficultyKey])
97
+ return variants[difficultyKey];
98
+ }
99
+ // 3. Check for language match
100
+ if (context.language) {
101
+ const langKey = `lang-${context.language}`;
102
+ if (variants[langKey])
103
+ return variants[langKey];
104
+ }
105
+ // 4. Check custom context keys
106
+ if (context.custom) {
107
+ for (const [key, value] of Object.entries(context.custom)) {
108
+ const customKey = `${key}-${value}`;
109
+ if (variants[customKey])
110
+ return variants[customKey];
111
+ }
112
+ }
113
+ // 5. Check for default variant
114
+ if (variants.default)
115
+ return variants.default;
116
+ return null;
117
+ }
118
+ /**
119
+ * Create tool parameters from override
120
+ */
121
+ _createToolParametersFromOverride(toolType, override) {
122
+ return {
123
+ config: override.config,
124
+ hint: override.hint,
125
+ preOpen: override.preOpen,
126
+ finalConfig: {
127
+ id: toolType,
128
+ name: this._humanizeName(toolType),
129
+ enabled: true,
130
+ ...override.config,
131
+ },
132
+ };
133
+ }
134
+ /**
135
+ * Resolve required tools considering overrides
136
+ */
137
+ _resolveRequiredTools(itemConfig, toolOverrides) {
138
+ const required = new Set(itemConfig.requiredTools || []);
139
+ // Add tools that have replacements via overrides
140
+ if (toolOverrides) {
141
+ for (const [toolType, override] of Object.entries(toolOverrides)) {
142
+ if (override.replacementTool) {
143
+ required.delete(toolType);
144
+ required.add(override.replacementTool);
145
+ }
146
+ }
147
+ }
148
+ return Array.from(required);
149
+ }
150
+ /**
151
+ * Filter adaptations based on context
152
+ */
153
+ _filterAdaptations(adaptations, context) {
154
+ if (!adaptations)
155
+ return [];
156
+ return adaptations.filter((adaptation) => {
157
+ // Check if adaptation matches context
158
+ if (adaptation.type === "scaffolding" &&
159
+ context.scaffoldingLevel !== undefined) {
160
+ return adaptation.level === context.scaffoldingLevel;
161
+ }
162
+ if (adaptation.type === "difficulty" && context.difficultyLevel) {
163
+ return adaptation.level === context.difficultyLevel;
164
+ }
165
+ if (adaptation.type === "language" && context.language) {
166
+ return adaptation.level === context.language;
167
+ }
168
+ // Include custom adaptations by default
169
+ return true;
170
+ });
171
+ }
172
+ /**
173
+ * Build resolved config without variants
174
+ */
175
+ _buildResolvedConfig(itemConfig, variantId, adaptations) {
176
+ const resolvedToolParameters = {};
177
+ if (itemConfig.toolParameters) {
178
+ for (const [toolType, params] of Object.entries(itemConfig.toolParameters)) {
179
+ resolvedToolParameters[toolType] = {
180
+ ...params,
181
+ finalConfig: {
182
+ id: toolType,
183
+ name: this._humanizeName(toolType),
184
+ enabled: true,
185
+ ...params.config,
186
+ },
187
+ };
188
+ }
189
+ }
190
+ return {
191
+ itemId: itemConfig.itemId,
192
+ requiredTools: itemConfig.requiredTools || [],
193
+ restrictedTools: itemConfig.restrictedTools || [],
194
+ toolParameters: resolvedToolParameters,
195
+ appliedVariant: variantId || undefined,
196
+ appliedAdaptations: adaptations,
197
+ };
198
+ }
199
+ /**
200
+ * Convert tool type to human-readable name
201
+ */
202
+ _humanizeName(toolType) {
203
+ return toolType
204
+ .replace(/[-_]/g, " ")
205
+ .replace(/\b\w/g, (char) => char.toUpperCase());
206
+ }
207
+ }
208
+ /**
209
+ * Singleton instance (deprecated)
210
+ * @deprecated Instantiate VariantResolverImpl directly instead:
211
+ * const resolver = new VariantResolverImpl();
212
+ */
213
+ export const variantResolver = new VariantResolverImpl();
214
+ //# sourceMappingURL=variant-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variant-resolver.js","sourceRoot":"","sources":["../../src/tools/variant-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * PIE Assessment Toolkit - Event Types
3
+ *
4
+ * Type-safe event definitions for the assessment toolkit event system.
5
+ * Uses discriminated unions for type safety across event bus.
6
+ *
7
+ * These events are standard contracts between toolkit services,
8
+ * PIE players, tools, and product implementations.
9
+ */
10
+ export interface SessionChangedEvent {
11
+ itemId: string;
12
+ component: string;
13
+ complete: boolean;
14
+ session: {
15
+ id: string;
16
+ data: any[];
17
+ };
18
+ timestamp: number;
19
+ }
20
+ export interface LoadCompleteEvent {
21
+ itemId: string;
22
+ loadTime: number;
23
+ timestamp: number;
24
+ }
25
+ export interface PlayerErrorEvent {
26
+ itemId: string;
27
+ error: string;
28
+ timestamp: number;
29
+ }
30
+ export interface ToolActivatedEvent {
31
+ toolId: string;
32
+ toolType: string;
33
+ itemId?: string;
34
+ timestamp: number;
35
+ }
36
+ export interface ToolDeactivatedEvent {
37
+ toolId: string;
38
+ timestamp: number;
39
+ }
40
+ export interface ToolStateChangedEvent {
41
+ toolId: string;
42
+ state: any;
43
+ timestamp: number;
44
+ }
45
+ export interface NavigationRequestEvent {
46
+ direction: "next" | "previous" | "index";
47
+ targetIndex?: number;
48
+ timestamp: number;
49
+ }
50
+ export interface ItemChangedEvent {
51
+ previousItemId: string | null;
52
+ currentItemId: string;
53
+ itemIndex: number;
54
+ totalItems: number;
55
+ metadata?: ItemMetadata;
56
+ timestamp: number;
57
+ }
58
+ export interface CanNavigateChangedEvent {
59
+ canNext: boolean;
60
+ canPrevious: boolean;
61
+ timestamp: number;
62
+ }
63
+ export interface ItemMetadata {
64
+ timeLimit?: number;
65
+ isLastItem: boolean;
66
+ hasPassage: boolean;
67
+ questionNumber?: number;
68
+ }
69
+ export interface AssessmentStartedEvent {
70
+ assessmentId: string;
71
+ studentId: string;
72
+ timestamp: number;
73
+ }
74
+ export interface AssessmentPausedEvent {
75
+ assessmentId: string;
76
+ timestamp: number;
77
+ }
78
+ export interface AssessmentResumedEvent {
79
+ assessmentId: string;
80
+ timestamp: number;
81
+ }
82
+ export interface AssessmentCompletedEvent {
83
+ assessmentId: string;
84
+ totalTime: number;
85
+ itemsCompleted: number;
86
+ timestamp: number;
87
+ }
88
+ export interface StateSavedEvent {
89
+ type: "session" | "tool" | "assessment";
90
+ itemId?: string;
91
+ toolId?: string;
92
+ timestamp: number;
93
+ }
94
+ export interface StateRestoredEvent {
95
+ type: "session" | "tool" | "assessment";
96
+ timestamp: number;
97
+ }
98
+ export interface SyncFailedEvent {
99
+ type: "session" | "tool" | "assessment";
100
+ itemId?: string;
101
+ toolId?: string;
102
+ error: string;
103
+ timestamp: number;
104
+ }
105
+ export type InteractionType = "response-changed" | "tool-activated" | "tool-deactivated" | "item-viewed" | "navigation-attempted" | "navigation-blocked" | "focus-lost" | "focus-gained" | "copy-attempted" | "paste-attempted" | "fullscreen-exited";
106
+ export interface InteractionEvent {
107
+ type: InteractionType;
108
+ timestamp: number;
109
+ itemId?: string;
110
+ toolId?: string;
111
+ metadata?: Record<string, any>;
112
+ }
113
+ export interface LocaleChangedEvent {
114
+ locale: string;
115
+ previousLocale: string;
116
+ direction: "ltr" | "rtl";
117
+ timestamp: number;
118
+ }
119
+ export interface LocaleLoadingStartEvent {
120
+ locale: string;
121
+ timestamp: number;
122
+ }
123
+ export interface LocaleLoadingCompleteEvent {
124
+ locale: string;
125
+ success: boolean;
126
+ timestamp: number;
127
+ }
128
+ export interface LocaleLoadingErrorEvent {
129
+ locale: string;
130
+ error: string;
131
+ timestamp: number;
132
+ }
133
+ export interface AssessmentToolkitEvents {
134
+ "player:session-changed": SessionChangedEvent;
135
+ "player:load-complete": LoadCompleteEvent;
136
+ "player:error": PlayerErrorEvent;
137
+ "tool:activated": ToolActivatedEvent;
138
+ "tool:deactivated": ToolDeactivatedEvent;
139
+ "tool:state-changed": ToolStateChangedEvent;
140
+ "nav:next-requested": NavigationRequestEvent;
141
+ "nav:previous-requested": NavigationRequestEvent;
142
+ "nav:item-changed": ItemChangedEvent;
143
+ "nav:can-navigate-changed": CanNavigateChangedEvent;
144
+ "assessment:started": AssessmentStartedEvent;
145
+ "assessment:paused": AssessmentPausedEvent;
146
+ "assessment:resumed": AssessmentResumedEvent;
147
+ "assessment:completed": AssessmentCompletedEvent;
148
+ "state:saved": StateSavedEvent;
149
+ "state:restored": StateRestoredEvent;
150
+ "state:sync-failed": SyncFailedEvent;
151
+ "interaction:tracked": InteractionEvent;
152
+ "i18n:locale-changed": LocaleChangedEvent;
153
+ "i18n:loading-start": LocaleLoadingStartEvent;
154
+ "i18n:loading-complete": LocaleLoadingCompleteEvent;
155
+ "i18n:loading-error": LocaleLoadingErrorEvent;
156
+ }
157
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * PIE Assessment Toolkit - Event Types
3
+ *
4
+ * Type-safe event definitions for the assessment toolkit event system.
5
+ * Uses discriminated unions for type safety across event bus.
6
+ *
7
+ * These events are standard contracts between toolkit services,
8
+ * PIE players, tools, and product implementations.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,7 @@
1
+ export type Logger = (...args: unknown[]) => void;
2
+ /**
3
+ * Minimal logger helper (replacement for PIEOneer’s internal debug logger).
4
+ * We intentionally keep this lightweight and browser-safe.
5
+ */
6
+ export declare function createLogger(namespace: string): Logger;
7
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAElD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKtD"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Minimal logger helper (replacement for PIEOneer’s internal debug logger).
3
+ * We intentionally keep this lightweight and browser-safe.
4
+ */
5
+ export function createLogger(namespace) {
6
+ return (...args) => {
7
+ // eslint-disable-next-line no-console
8
+ console.debug(`[${namespace}]`, ...args);
9
+ };
10
+ }
11
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC7C,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE;QAClB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@pie-players/pie-assessment-toolkit",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "description": "PIE assessment toolkit: composable services + reference implementation for assessment players and tool coordination",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/pie-framework/pie-players.git"
10
+ },
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "unpkg": "./dist/index.js",
17
+ "jsdelivr": "./dist/index.js",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./tools/client": {
24
+ "types": "./dist/tools/client.d.ts",
25
+ "import": "./dist/tools/client.js"
26
+ },
27
+ "./assessment-player": {
28
+ "types": "./dist/player/index.d.ts",
29
+ "import": "./dist/player/index.js"
30
+ },
31
+ "./assessment-player/Layout.svelte": {
32
+ "svelte": "./src/player/AssessmentLayout.svelte",
33
+ "import": "./src/player/AssessmentLayout.svelte"
34
+ },
35
+ "./components/QuestionToolBar.svelte": {
36
+ "svelte": "./src/components/QuestionToolBar.svelte",
37
+ "import": "./src/components/QuestionToolBar.svelte"
38
+ },
39
+ "./services/I18nService": {
40
+ "types": "./dist/services/I18nService.d.ts",
41
+ "import": "./dist/services/I18nService.js"
42
+ }
43
+ },
44
+ "files": [
45
+ "dist",
46
+ "src/**/*.svelte",
47
+ "README.md"
48
+ ],
49
+ "scripts": {
50
+ "build": "tsc -p tsconfig.json",
51
+ "dev": "tsc -p tsconfig.json --watch",
52
+ "typecheck": "tsc -p tsconfig.json --noEmit",
53
+ "lint": "biome check .",
54
+ "check": "tsc -p tsconfig.json --noEmit",
55
+ "test": "bun test"
56
+ },
57
+ "dependencies": {
58
+ "@pie-players/pie-calculator": "workspace:*",
59
+ "@pie-players/pie-calculator-desmos": "workspace:*",
60
+ "@pie-players/pie-players-shared": "workspace:*",
61
+ "@pie-players/pie-tts": "workspace:*",
62
+ "@pie-players/tts-client-server": "workspace:*"
63
+ },
64
+ "peerDependencies": {
65
+ "svelte": "^5.0.0"
66
+ },
67
+ "devDependencies": {
68
+ "@biomejs/biome": "^2.3.10",
69
+ "typescript": "^5.9.3"
70
+ }
71
+ }