@speakableio/core 0.1.63 → 0.1.65

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.
@@ -30,142 +30,492 @@ interface FirestoreHelpers {
30
30
  type CustomTimestamp = Timestamp | Timestamp$1;
31
31
  type CallableFunction<T = any, R = any> = (data: T) => Promise<R>;
32
32
 
33
- interface Assignment {
34
- name: string;
35
- description: string;
36
- scheduledTime?: string | null;
37
- dueTime?: {
38
- hours: number;
39
- minutes: number;
40
- nanos: number;
41
- };
42
- speakableio: boolean;
43
- owners: string[];
44
- image: {
45
- path: string | null;
46
- url: string;
47
- };
48
- dueDate: {
49
- day: number;
50
- month: number;
51
- year: number;
52
- };
53
- teacherName: string;
54
- courseWorkId: string | null;
55
- dueDateTimestamp: CustomTimestamp;
56
- scheduledTimeTimestamp: number;
57
- active: boolean;
58
- voice: string | null;
59
- setId: string;
60
- dateMade: {
61
- seconds: number;
62
- nanoseconds: number;
63
- };
64
- maxPoints: number;
65
- courseId: string;
66
- isAssessment: boolean;
67
- isAvailable: boolean;
68
- ltiDeeplink?: string;
69
- content?: string[];
70
- weights?: Record<string, number>;
71
- language?: string;
33
+ declare const enum FeedbackTypesCard {
34
+ SuggestedResponse = "suggested_response",
35
+ Wida = "wida",
36
+ GrammarInsights = "grammar_insights",
37
+ Actfl = "actfl",
38
+ ProficiencyLevel = "proficiency_level"
72
39
  }
73
- interface AssignmentWithId extends Assignment {
74
- id: string;
75
- isAvailable: boolean;
76
- scores?: unknown;
40
+ declare const enum LeniencyCard {
41
+ CONFIDENCE = "confidence",
42
+ EASY = "easy",
43
+ NORMAL = "normal",
44
+ HARD = "hard"
77
45
  }
78
- interface Score {
79
- userId: string;
80
- owners: string[];
81
- progress: number;
82
- score: number;
83
- cards?: {
84
- [cardId: string]: CardScore;
85
- };
86
- courseId?: string;
87
- firstLoad?: boolean;
88
- googleClassroomUserId?: string;
89
- skippedCards?: number;
90
- lastPlayed?: CustomTimestamp;
91
- startDate?: CustomTimestamp;
92
- submissionDate?: CustomTimestamp;
93
- status?: 'SUBMITTED' | 'PENDING_REVIEW' | 'IN_PROGRESS' | 'FINALIZED';
94
- submitted?: boolean;
95
- successfulCards?: number;
96
- total_voiceSuccess?: number;
97
- total_voice_attempts?: number;
98
- total_words_spoken?: number;
99
- history?: CardScore[];
100
- attempts?: number;
101
- assignmentId?: string;
102
- setId?: string;
46
+ declare const LENIENCY_OPTIONS: {
47
+ label: string;
48
+ value: LeniencyCard;
49
+ }[];
50
+ declare const STUDENT_LEVELS_OPTIONS: {
51
+ label: string;
52
+ description: string;
53
+ value: string;
54
+ }[];
55
+ declare const BASE_RESPOND_FIELD_VALUES: {
56
+ title: string;
57
+ allowRetries: boolean;
58
+ respondTime: number;
59
+ maxCharacters: number;
60
+ };
61
+ declare const BASE_REPEAT_FIELD_VALUES: {
62
+ repeat: number;
63
+ };
64
+ declare const BASE_MULTIPLE_CHOICE_FIELD_VALUES: {
65
+ MCQType: string;
66
+ answer: string[];
67
+ choices: {
68
+ option: string;
69
+ value: string;
70
+ }[];
71
+ };
72
+ declare const enum VerificationCardStatus {
73
+ VERIFIED = "VERIFIED",
74
+ WARNING = "WARNING",
75
+ NOT_RECOMMENDED = "NOT_RECOMMENDED",
76
+ NOT_WORKING = "NOT_WORKING",
77
+ NOT_CHECKED = "NOT_CHECKED"
103
78
  }
104
- interface ScoreWithId extends Score {
79
+ declare const CARDS_COLLECTION = "flashcards";
80
+ type RefsCardsFiresotre = `${typeof CARDS_COLLECTION}/${string}`;
81
+ declare const refsCardsFiresotre: {
82
+ allCards: string;
83
+ card: (id: string) => `flashcards/${string}`;
84
+ };
85
+
86
+ interface PageActivityWithId extends PageActivity {
105
87
  id: string;
106
88
  }
107
- interface CardScore {
108
- voiceSuccess?: number;
109
- voiceAttempts?: number;
110
- voiceFail?: number;
89
+ interface PageActivity {
90
+ owners: string[];
91
+ checked?: boolean;
111
92
  completed?: boolean;
112
- attempts?: number;
113
- correct?: number;
114
- success?: boolean;
115
- aiSuccess?: boolean;
116
- grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
117
- grammar_insights?: {
118
- type?: string;
119
- justification?: string;
120
- error?: boolean;
121
- correction?: string;
122
- }[];
123
- promptSuccess?: boolean;
93
+ media_area_id?: string | null;
94
+ media_area_layout?: 'left' | 'right' | null;
124
95
  score?: number;
125
- simple_grading?: {
126
- justification?: string;
127
- success?: boolean;
128
- };
129
- suggested_response?: string;
130
- summary?: string;
131
- transcript?: string;
132
- errors?: any;
133
- improvedResponse?: string;
134
- audio?: string;
135
- actfl?: {
136
- justification: string;
137
- level: string;
138
- };
139
- wida?: {
140
- justification: string;
141
- level: string;
96
+ verificationStatus?: VerificationCardStatus;
97
+ native_text?: string;
98
+ repeat?: number;
99
+ language?: string | null;
100
+ image?: {
101
+ path?: string | null;
102
+ url?: string;
142
103
  };
143
- earned_points?: number;
144
- fileName?: string;
145
- max_points?: number;
104
+ audio?: {
105
+ path?: string | null;
106
+ url?: string;
107
+ } | null;
108
+ notes?: string;
109
+ difficulty?: string;
110
+ default_language?: string;
111
+ target_text?: string;
112
+ type: ActivityPageType;
113
+ grading_criteria?: string;
114
+ scoring_type?: string;
115
+ grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
116
+ feedback_types?: string[];
117
+ rubricId?: string;
118
+ prompt?: string;
119
+ title?: string;
146
120
  passing_score?: number;
147
- rubric?: {
148
- description: string;
149
- justification: string;
150
- maxPoints: number;
151
- score: number;
152
- score_title: string;
153
- title: string;
121
+ maxCharacters?: number;
122
+ answer?: string[];
123
+ choices?: {
124
+ value: string;
125
+ option: string;
154
126
  }[];
155
- scoring_type?: string;
156
- history?: CardScore[];
157
- media_area_opened?: boolean;
158
- noFeedbackAvailable?: boolean;
159
- proficiency_level?: {
160
- standardId: string;
161
- level: string;
162
- justification: string;
163
- key_indicators?: string[];
164
- };
165
- status?: string;
127
+ MCQType?: string;
128
+ multipleAttemptsAllowed?: boolean;
129
+ allowRetries?: boolean;
130
+ question?: string;
131
+ respondTime?: number;
132
+ hidePrompt?: boolean;
133
+ videoUrl?: string;
134
+ link?: string;
135
+ text?: string;
136
+ isListenAloud?: boolean;
137
+ embedCode?: string;
138
+ attempt?: number;
139
+ correct?: number;
140
+ autoGrade?: boolean;
141
+ points?: number;
142
+ shuffle?: boolean;
143
+ translation?: string;
144
+ includeAIContext?: boolean;
145
+ media_area_context_ref?: string | null;
146
+ standardId?: string;
147
+ target_proficiency_level?: string;
148
+ allowTTS?: boolean;
149
+ }
150
+ declare const enum ActivityPageType {
151
+ READ_REPEAT = "READ_REPEAT",
152
+ VIDEO = "VIDEO",
153
+ TEXT = "TEXT",
154
+ READ_RESPOND = "READ_RESPOND",
155
+ FREE_RESPONSE = "FREE_RESPONSE",
156
+ REPEAT = "REPEAT",
157
+ RESPOND = "RESPOND",
158
+ RESPOND_WRITE = "RESPOND_WRITE",
159
+ TEXT_TO_SPEECH = "TEXT_TO_SPEECH",
160
+ MULTIPLE_CHOICE = "MULTIPLE_CHOICE",
161
+ PODCAST = "PODCAST",
162
+ MEDIA_PAGE = "MEDIA_PAGE",
163
+ WRITE = "WRITE",
164
+ SHORT_ANSWER = "SHORT_ANSWER",
165
+ SHORT_STORY = "SHORT_STORY",
166
+ SPEAK = "SPEAK",
167
+ CONVERSATION = "CONVERSATION",
168
+ CONVERSATION_WRITE = "CONVERSATION_WRITE",
169
+ DIALOGUE = "DIALOGUE",
170
+ INSTRUCTION = "INSTRUCTION",
171
+ LISTEN = "LISTEN",
172
+ READ = "READ",
173
+ ANSWER = "ANSWER"
166
174
  }
175
+ declare const RESPOND_PAGE_ACTIVITY_TYPES: ActivityPageType[];
176
+ declare const MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
177
+ declare const REPEAT_PAGE_ACTIVITY_TYPES: ActivityPageType[];
178
+ declare const RESPOND_WRITE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
179
+ declare const RESPOND_AUDIO_PAGE_ACTIVITY_TYPES: ActivityPageType[];
167
180
 
168
- declare const enum AssignmentAnalyticsType {
181
+ declare const cardsQueryKeys: {
182
+ all: string[];
183
+ one: (params: {
184
+ cardId: string;
185
+ }) => string[];
186
+ };
187
+ declare function useCards({ cardIds, enabled, asObject, }: {
188
+ cardIds: string[];
189
+ enabled: boolean;
190
+ asObject?: boolean;
191
+ }): {
192
+ cards: PageActivityWithId[];
193
+ cardsObject: Record<string, PageActivityWithId> | null;
194
+ cardsQueries: _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>[];
195
+ };
196
+ declare function useCreateCard(): {
197
+ mutationCreateCard: _tanstack_react_query.UseMutationResult<{
198
+ id: string;
199
+ } & Partial<PageActivity>, Error, {
200
+ data: Partial<PageActivity>;
201
+ }, unknown>;
202
+ };
203
+ declare function useCreateCards(): {
204
+ mutationCreateCards: _tanstack_react_query.UseMutationResult<{
205
+ id: string;
206
+ owners: string[];
207
+ checked?: boolean;
208
+ completed?: boolean;
209
+ media_area_id?: string | null;
210
+ media_area_layout?: "left" | "right" | null;
211
+ score?: number;
212
+ verificationStatus?: VerificationCardStatus;
213
+ native_text?: string;
214
+ repeat?: number;
215
+ language?: string | null;
216
+ image?: {
217
+ path?: string | null;
218
+ url?: string;
219
+ };
220
+ audio?: {
221
+ path?: string | null;
222
+ url?: string;
223
+ } | null;
224
+ notes?: string;
225
+ difficulty?: string;
226
+ default_language?: string;
227
+ target_text?: string;
228
+ type: ActivityPageType;
229
+ grading_criteria?: string;
230
+ scoring_type?: string;
231
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
232
+ feedback_types?: string[];
233
+ rubricId?: string;
234
+ prompt?: string;
235
+ title?: string;
236
+ passing_score?: number;
237
+ maxCharacters?: number;
238
+ answer?: string[];
239
+ choices?: {
240
+ value: string;
241
+ option: string;
242
+ }[];
243
+ MCQType?: string;
244
+ multipleAttemptsAllowed?: boolean;
245
+ allowRetries?: boolean;
246
+ question?: string;
247
+ respondTime?: number;
248
+ hidePrompt?: boolean;
249
+ videoUrl?: string;
250
+ link?: string;
251
+ text?: string;
252
+ isListenAloud?: boolean;
253
+ embedCode?: string;
254
+ attempt?: number;
255
+ correct?: number;
256
+ autoGrade?: boolean;
257
+ points?: number;
258
+ shuffle?: boolean;
259
+ translation?: string;
260
+ includeAIContext?: boolean;
261
+ media_area_context_ref?: string | null;
262
+ standardId?: string;
263
+ target_proficiency_level?: string;
264
+ allowTTS?: boolean;
265
+ }[], Error, {
266
+ cards: PageActivity[];
267
+ }, unknown>;
268
+ };
269
+ declare function getCardFromCache({ cardId, queryClient, }: {
270
+ cardId: string;
271
+ queryClient: QueryClient;
272
+ }): PageActivityWithId | undefined;
273
+ declare function updateCardInCache({ cardId, card, queryClient, }: {
274
+ cardId: string;
275
+ card: PageActivityWithId | null;
276
+ queryClient: QueryClient;
277
+ }): void;
278
+ declare function useGetCard({ cardId, enabled }: {
279
+ cardId: string;
280
+ enabled?: boolean;
281
+ }): _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>;
282
+
283
+ declare const createCardRepo: () => {
284
+ createCard: (args_0: {
285
+ data: Partial<PageActivity>;
286
+ }) => Promise<{
287
+ id: string;
288
+ } & Partial<PageActivity>>;
289
+ createCards: (args_0: {
290
+ cards: PageActivity[];
291
+ }) => Promise<{
292
+ id: string;
293
+ owners: string[];
294
+ checked?: boolean;
295
+ completed?: boolean;
296
+ media_area_id?: string | null;
297
+ media_area_layout?: "left" | "right" | null;
298
+ score?: number;
299
+ verificationStatus?: VerificationCardStatus;
300
+ native_text?: string;
301
+ repeat?: number;
302
+ language?: string | null;
303
+ image?: {
304
+ path?: string | null;
305
+ url?: string;
306
+ };
307
+ audio?: {
308
+ path?: string | null;
309
+ url?: string;
310
+ } | null;
311
+ notes?: string;
312
+ difficulty?: string;
313
+ default_language?: string;
314
+ target_text?: string;
315
+ type: ActivityPageType;
316
+ grading_criteria?: string;
317
+ scoring_type?: string;
318
+ grading_method?: "simple" | "rubric" | "manual" | "standards_based";
319
+ feedback_types?: string[];
320
+ rubricId?: string;
321
+ prompt?: string;
322
+ title?: string;
323
+ passing_score?: number;
324
+ maxCharacters?: number;
325
+ answer?: string[];
326
+ choices?: {
327
+ value: string;
328
+ option: string;
329
+ }[];
330
+ MCQType?: string;
331
+ multipleAttemptsAllowed?: boolean;
332
+ allowRetries?: boolean;
333
+ question?: string;
334
+ respondTime?: number;
335
+ hidePrompt?: boolean;
336
+ videoUrl?: string;
337
+ link?: string;
338
+ text?: string;
339
+ isListenAloud?: boolean;
340
+ embedCode?: string;
341
+ attempt?: number;
342
+ correct?: number;
343
+ autoGrade?: boolean;
344
+ points?: number;
345
+ shuffle?: boolean;
346
+ translation?: string;
347
+ includeAIContext?: boolean;
348
+ media_area_context_ref?: string | null;
349
+ standardId?: string;
350
+ target_proficiency_level?: string;
351
+ allowTTS?: boolean;
352
+ }[]>;
353
+ getCard: (params: {
354
+ cardId: string;
355
+ }) => Promise<PageActivityWithId | null>;
356
+ };
357
+
358
+ declare function checkIsRepeatPage(cardType: ActivityPageType | undefined): boolean;
359
+ declare function checkIsMCPage(cardType: ActivityPageType | undefined): boolean;
360
+ declare function checkIsRespondPage(cardType: ActivityPageType | undefined): boolean;
361
+ declare function checkIsRespondWrittenPage(cardType: ActivityPageType | undefined): boolean;
362
+ declare function checkIsRespondAudioPage(cardType: ActivityPageType | undefined): boolean;
363
+ declare const checkIsMediaPage: (cardType: ActivityPageType | undefined) => boolean;
364
+ declare const checkIsShortAnswerPage: (cardType: ActivityPageType | undefined) => boolean;
365
+ declare const checkTypePageActivity: (cardType: ActivityPageType | undefined) => {
366
+ isRespondAudio: boolean;
367
+ isRespondWritten: boolean;
368
+ isRespond: boolean;
369
+ isMC: boolean;
370
+ isRepeat: boolean;
371
+ isMediaPage: boolean;
372
+ isShortAnswer: boolean;
373
+ };
374
+
375
+ declare function getPagePrompt(card: PageActivityWithId | undefined): {
376
+ has: boolean;
377
+ text: string | undefined;
378
+ };
379
+
380
+ interface Assignment {
381
+ name: string;
382
+ description: string;
383
+ scheduledTime?: string | null;
384
+ dueTime?: {
385
+ hours: number;
386
+ minutes: number;
387
+ nanos: number;
388
+ };
389
+ speakableio: boolean;
390
+ owners: string[];
391
+ image: {
392
+ path: string | null;
393
+ url: string;
394
+ };
395
+ dueDate: {
396
+ day: number;
397
+ month: number;
398
+ year: number;
399
+ };
400
+ teacherName: string;
401
+ courseWorkId: string | null;
402
+ dueDateTimestamp: CustomTimestamp;
403
+ scheduledTimeTimestamp: number;
404
+ active: boolean;
405
+ voice: string | null;
406
+ setId: string;
407
+ dateMade: {
408
+ seconds: number;
409
+ nanoseconds: number;
410
+ };
411
+ maxPoints: number;
412
+ courseId: string;
413
+ isAssessment: boolean;
414
+ isAvailable: boolean;
415
+ ltiDeeplink?: string;
416
+ content?: string[];
417
+ weights?: Record<string, number>;
418
+ language?: string;
419
+ types?: {
420
+ [key in ActivityPageType]?: number;
421
+ };
422
+ }
423
+ interface AssignmentWithId extends Assignment {
424
+ id: string;
425
+ isAvailable: boolean;
426
+ scores?: unknown;
427
+ }
428
+ interface Score {
429
+ userId: string;
430
+ owners: string[];
431
+ progress: number;
432
+ score: number;
433
+ cards?: {
434
+ [cardId: string]: PageScore;
435
+ };
436
+ courseId?: string;
437
+ firstLoad?: boolean;
438
+ googleClassroomUserId?: string;
439
+ skippedCards?: number;
440
+ lastPlayed?: CustomTimestamp;
441
+ startDate?: CustomTimestamp;
442
+ submissionDate?: CustomTimestamp;
443
+ status?: 'SUBMITTED' | 'PENDING_REVIEW' | 'IN_PROGRESS' | 'FINALIZED';
444
+ submitted?: boolean;
445
+ successfulCards?: number;
446
+ total_voiceSuccess?: number;
447
+ total_voice_attempts?: number;
448
+ total_words_spoken?: number;
449
+ history?: PageScore[];
450
+ attempts?: number;
451
+ assignmentId?: string;
452
+ setId?: string;
453
+ }
454
+ interface ScoreWithId extends Score {
455
+ id: string;
456
+ }
457
+ interface PageScore {
458
+ voiceSuccess?: number;
459
+ voiceAttempts?: number;
460
+ voiceFail?: number;
461
+ completed?: boolean;
462
+ attempts?: number;
463
+ correct?: number;
464
+ success?: boolean;
465
+ aiSuccess?: boolean;
466
+ grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
467
+ grammar_insights?: {
468
+ type?: string;
469
+ justification?: string;
470
+ error?: boolean;
471
+ correction?: string;
472
+ }[];
473
+ promptSuccess?: boolean;
474
+ score?: number;
475
+ simple_grading?: {
476
+ justification?: string;
477
+ success?: boolean;
478
+ };
479
+ suggested_response?: string;
480
+ summary?: string;
481
+ transcript?: string;
482
+ errors?: any;
483
+ improvedResponse?: string;
484
+ audio?: string;
485
+ actfl?: {
486
+ justification: string;
487
+ level: string;
488
+ };
489
+ wida?: {
490
+ justification: string;
491
+ level: string;
492
+ };
493
+ earned_points?: number;
494
+ fileName?: string;
495
+ max_points?: number;
496
+ passing_score?: number;
497
+ rubric?: {
498
+ description: string;
499
+ justification: string;
500
+ maxPoints: number;
501
+ score: number;
502
+ score_title: string;
503
+ title: string;
504
+ }[];
505
+ scoring_type?: string;
506
+ history?: PageScore[];
507
+ media_area_opened?: boolean;
508
+ noFeedbackAvailable?: boolean;
509
+ proficiency_level?: {
510
+ standardId: string;
511
+ level: string;
512
+ justification: string;
513
+ key_indicators?: string[];
514
+ };
515
+ status?: string;
516
+ }
517
+
518
+ declare const enum AssignmentAnalyticsType {
169
519
  Macro = "macro",
170
520
  Gradebook = "gradebook",
171
521
  Cards = "cards",
@@ -221,6 +571,7 @@ declare const createAssignmentRepo: () => {
221
571
  content?: string[];
222
572
  weights?: Record<string, number>;
223
573
  language?: string;
574
+ types?: { [key in ActivityPageType]?: number; };
224
575
  } | null>;
225
576
  attachScoresAssignment: (args_0: {
226
577
  assignments: AssignmentWithId[];
@@ -268,6 +619,7 @@ declare const createAssignmentRepo: () => {
268
619
  content?: string[];
269
620
  weights?: Record<string, number>;
270
621
  language?: string;
622
+ types?: { [key in ActivityPageType]?: number; };
271
623
  }[]>;
272
624
  getAssignmentScores: (args_0: {
273
625
  assignmentId: string;
@@ -334,437 +686,96 @@ declare function useAssignment({ assignmentId, enabled, analyticType, userId, }:
334
686
  content?: string[];
335
687
  weights?: Record<string, number>;
336
688
  language?: string;
689
+ types?: { [key in ActivityPageType]?: number; };
337
690
  } | null, Error>;
338
691
 
339
- declare const scoreQueryKeys: {
340
- all: readonly ["scores"];
341
- byId: (id: string) => readonly ["scores", string];
342
- list: () => readonly ["scores", "list"];
343
- };
344
- declare function useScore({ isAssignment, activityId, userId, courseId, enabled, googleClassroomUserId, }: {
345
- userId: string;
346
- isAssignment: boolean;
347
- activityId: string;
348
- courseId?: string;
349
- enabled?: boolean;
350
- googleClassroomUserId?: string;
351
- }): _tanstack_react_query.UseQueryResult<ScoreWithId, Error>;
352
- declare function useUpdateScore(): {
353
- mutationUpdateScore: _tanstack_react_query.UseMutationResult<Promise<void>, Error, {
354
- userId: string;
355
- data: Partial<Score>;
356
- isAssignment: boolean;
357
- activityId: string;
358
- }, {
359
- previousData: Partial<Score> | undefined;
360
- }>;
361
- };
362
- declare function useUpdateCardScore({ isAssignment, activityId, userId, cardIds, weights, }: {
363
- isAssignment: boolean;
364
- userId: string;
365
- activityId: string;
366
- cardIds: string[];
367
- weights: Record<string, number>;
368
- }): {
369
- mutationUpdateCardScore: _tanstack_react_query.UseMutationResult<{
370
- cardId: string;
371
- scoresUpdated: Score;
372
- }, Error, {
373
- cardId: string;
374
- cardScore: CardScore;
375
- }, void>;
376
- };
377
- declare function useClearScore(): {
378
- mutationClearScore: _tanstack_react_query.UseMutationResult<{
379
- update: Partial<Score>;
380
- activityId: string;
381
- }, Error, {
382
- isAssignment: boolean;
383
- cardId: string;
384
- cardScores: CardScore;
385
- userId: string;
386
- activityId: string;
387
- }, unknown>;
388
- };
389
- declare function useSubmitAssignmentScore({ onAssignmentSubmitted, studentName, }: {
390
- onAssignmentSubmitted: (assignmentId: string) => void;
391
- studentName: string;
392
- }): {
393
- submitAssignmentScore: _tanstack_react_query.UseMutateAsyncFunction<{
394
- success: boolean;
395
- message: string;
396
- error?: undefined;
397
- } | {
398
- success: boolean;
399
- error: unknown;
400
- message?: undefined;
401
- }, Error, {
402
- assignment: AssignmentWithId;
403
- userId: string;
404
- cardIds: string[];
405
- weights: Record<string, number>;
406
- scores: Score;
407
- status: "FINALIZED" | "IN_PROGRESS" | "PENDING_REVIEW";
408
- }, unknown>;
409
- isLoading: boolean;
410
- };
411
- declare function useSubmitPracticeScore(): {
412
- submitPracticeScore: _tanstack_react_query.UseMutateAsyncFunction<{
413
- success: boolean;
414
- message: string;
415
- error?: undefined;
416
- } | {
417
- success: boolean;
418
- error: unknown;
419
- message?: undefined;
420
- }, Error, {
421
- setId: string;
422
- userId: string;
423
- scores: Score;
424
- }, unknown>;
425
- isLoading: boolean;
426
- };
427
-
428
- declare const enum FeedbackTypesCard {
429
- SuggestedResponse = "suggested_response",
430
- Wida = "wida",
431
- GrammarInsights = "grammar_insights",
432
- Actfl = "actfl",
433
- ProficiencyLevel = "proficiency_level"
434
- }
435
- declare const enum LeniencyCard {
436
- CONFIDENCE = "confidence",
437
- EASY = "easy",
438
- NORMAL = "normal",
439
- HARD = "hard"
440
- }
441
- declare const LENIENCY_OPTIONS: {
442
- label: string;
443
- value: LeniencyCard;
444
- }[];
445
- declare const STUDENT_LEVELS_OPTIONS: {
446
- label: string;
447
- description: string;
448
- value: string;
449
- }[];
450
- declare const BASE_RESPOND_FIELD_VALUES: {
451
- title: string;
452
- allowRetries: boolean;
453
- respondTime: number;
454
- maxCharacters: number;
455
- };
456
- declare const BASE_REPEAT_FIELD_VALUES: {
457
- repeat: number;
458
- };
459
- declare const BASE_MULTIPLE_CHOICE_FIELD_VALUES: {
460
- MCQType: string;
461
- answer: string[];
462
- choices: {
463
- option: string;
464
- value: string;
465
- }[];
466
- };
467
- declare const enum VerificationCardStatus {
468
- VERIFIED = "VERIFIED",
469
- WARNING = "WARNING",
470
- NOT_RECOMMENDED = "NOT_RECOMMENDED",
471
- NOT_WORKING = "NOT_WORKING",
472
- NOT_CHECKED = "NOT_CHECKED"
473
- }
474
- declare const CARDS_COLLECTION = "flashcards";
475
- type RefsCardsFiresotre = `${typeof CARDS_COLLECTION}/${string}`;
476
- declare const refsCardsFiresotre: {
477
- allCards: string;
478
- card: (id: string) => `flashcards/${string}`;
479
- };
480
-
481
- interface PageActivityWithId extends PageActivity {
482
- id: string;
483
- }
484
- interface PageActivity {
485
- owners: string[];
486
- checked?: boolean;
487
- completed?: boolean;
488
- media_area_id?: string | null;
489
- media_area_layout?: 'left' | 'right' | null;
490
- score?: number;
491
- verificationStatus?: VerificationCardStatus;
492
- native_text?: string;
493
- repeat?: number;
494
- language?: string | null;
495
- image?: {
496
- path?: string | null;
497
- url?: string;
498
- };
499
- audio?: {
500
- path?: string | null;
501
- url?: string;
502
- } | null;
503
- notes?: string;
504
- difficulty?: string;
505
- default_language?: string;
506
- target_text?: string;
507
- type: ActivityPageType;
508
- grading_criteria?: string;
509
- scoring_type?: string;
510
- grading_method?: 'simple' | 'rubric' | 'manual' | 'standards_based';
511
- feedback_types?: string[];
512
- rubricId?: string;
513
- prompt?: string;
514
- title?: string;
515
- passing_score?: number;
516
- maxCharacters?: number;
517
- answer?: string[];
518
- choices?: {
519
- value: string;
520
- option: string;
521
- }[];
522
- MCQType?: string;
523
- multipleAttemptsAllowed?: boolean;
524
- allowRetries?: boolean;
525
- question?: string;
526
- respondTime?: number;
527
- hidePrompt?: boolean;
528
- videoUrl?: string;
529
- link?: string;
530
- text?: string;
531
- isListenAloud?: boolean;
532
- embedCode?: string;
533
- attempt?: number;
534
- correct?: number;
535
- autoGrade?: boolean;
536
- points?: number;
537
- shuffle?: boolean;
538
- translation?: string;
539
- includeAIContext?: boolean;
540
- media_area_context_ref?: string | null;
541
- standardId?: string;
542
- target_proficiency_level?: string;
543
- allowTTS?: boolean;
544
- }
545
- declare const enum ActivityPageType {
546
- READ_REPEAT = "READ_REPEAT",
547
- VIDEO = "VIDEO",
548
- TEXT = "TEXT",
549
- READ_RESPOND = "READ_RESPOND",
550
- FREE_RESPONSE = "FREE_RESPONSE",
551
- REPEAT = "REPEAT",
552
- RESPOND = "RESPOND",
553
- RESPOND_WRITE = "RESPOND_WRITE",
554
- TEXT_TO_SPEECH = "TEXT_TO_SPEECH",
555
- MULTIPLE_CHOICE = "MULTIPLE_CHOICE",
556
- PODCAST = "PODCAST",
557
- MEDIA_PAGE = "MEDIA_PAGE",
558
- WRITE = "WRITE",
559
- SHORT_ANSWER = "SHORT_ANSWER",
560
- SHORT_STORY = "SHORT_STORY",
561
- SPEAK = "SPEAK",
562
- CONVERSATION = "CONVERSATION",
563
- CONVERSATION_WRITE = "CONVERSATION_WRITE",
564
- DIALOGUE = "DIALOGUE",
565
- INSTRUCTION = "INSTRUCTION",
566
- LISTEN = "LISTEN",
567
- READ = "READ",
568
- ANSWER = "ANSWER"
569
- }
570
- declare const RESPOND_PAGE_ACTIVITY_TYPES: ActivityPageType[];
571
- declare const MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
572
- declare const REPEAT_PAGE_ACTIVITY_TYPES: ActivityPageType[];
573
- declare const RESPOND_WRITE_PAGE_ACTIVITY_TYPES: ActivityPageType[];
574
- declare const RESPOND_AUDIO_PAGE_ACTIVITY_TYPES: ActivityPageType[];
575
-
576
- declare const cardsQueryKeys: {
577
- all: string[];
578
- one: (params: {
579
- cardId: string;
580
- }) => string[];
692
+ declare const scoreQueryKeys: {
693
+ all: readonly ["scores"];
694
+ byId: (id: string) => readonly ["scores", string];
695
+ list: () => readonly ["scores", "list"];
581
696
  };
582
- declare function useCards({ cardIds, enabled, asObject, }: {
697
+ declare function useScore({ isAssignment, activityId, userId, courseId, enabled, googleClassroomUserId, }: {
698
+ userId: string;
699
+ isAssignment: boolean;
700
+ activityId: string;
701
+ courseId?: string;
702
+ enabled?: boolean;
703
+ googleClassroomUserId?: string;
704
+ }): _tanstack_react_query.UseQueryResult<ScoreWithId, Error>;
705
+ declare function useUpdateScore(): {
706
+ mutationUpdateScore: _tanstack_react_query.UseMutationResult<Promise<void>, Error, {
707
+ userId: string;
708
+ data: Partial<Score>;
709
+ isAssignment: boolean;
710
+ activityId: string;
711
+ }, {
712
+ previousData: Partial<Score> | undefined;
713
+ }>;
714
+ };
715
+ declare function useUpdateCardScore({ isAssignment, activityId, userId, cardIds, weights, }: {
716
+ isAssignment: boolean;
717
+ userId: string;
718
+ activityId: string;
583
719
  cardIds: string[];
584
- enabled: boolean;
585
- asObject?: boolean;
720
+ weights: Record<string, number>;
586
721
  }): {
587
- cards: PageActivityWithId[];
588
- cardsObject: Record<string, PageActivityWithId> | null;
589
- cardsQueries: _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>[];
722
+ mutationUpdateCardScore: _tanstack_react_query.UseMutationResult<{
723
+ cardId: string;
724
+ scoresUpdated: Score;
725
+ }, Error, {
726
+ cardId: string;
727
+ cardScore: PageScore;
728
+ }, void>;
590
729
  };
591
- declare function useCreateCard(): {
592
- mutationCreateCard: _tanstack_react_query.UseMutationResult<{
593
- id: string;
594
- } & Partial<PageActivity>, Error, {
595
- data: Partial<PageActivity>;
730
+ declare function useClearScore(): {
731
+ mutationClearScore: _tanstack_react_query.UseMutationResult<{
732
+ update: Partial<Score>;
733
+ activityId: string;
734
+ }, Error, {
735
+ isAssignment: boolean;
736
+ cardId: string;
737
+ cardScores: PageScore;
738
+ userId: string;
739
+ activityId: string;
596
740
  }, unknown>;
597
741
  };
598
- declare function useCreateCards(): {
599
- mutationCreateCards: _tanstack_react_query.UseMutationResult<{
600
- id: string;
601
- owners: string[];
602
- checked?: boolean;
603
- completed?: boolean;
604
- media_area_id?: string | null;
605
- media_area_layout?: "left" | "right" | null;
606
- score?: number;
607
- verificationStatus?: VerificationCardStatus;
608
- native_text?: string;
609
- repeat?: number;
610
- language?: string | null;
611
- image?: {
612
- path?: string | null;
613
- url?: string;
614
- };
615
- audio?: {
616
- path?: string | null;
617
- url?: string;
618
- } | null;
619
- notes?: string;
620
- difficulty?: string;
621
- default_language?: string;
622
- target_text?: string;
623
- type: ActivityPageType;
624
- grading_criteria?: string;
625
- scoring_type?: string;
626
- grading_method?: "simple" | "rubric" | "manual" | "standards_based";
627
- feedback_types?: string[];
628
- rubricId?: string;
629
- prompt?: string;
630
- title?: string;
631
- passing_score?: number;
632
- maxCharacters?: number;
633
- answer?: string[];
634
- choices?: {
635
- value: string;
636
- option: string;
637
- }[];
638
- MCQType?: string;
639
- multipleAttemptsAllowed?: boolean;
640
- allowRetries?: boolean;
641
- question?: string;
642
- respondTime?: number;
643
- hidePrompt?: boolean;
644
- videoUrl?: string;
645
- link?: string;
646
- text?: string;
647
- isListenAloud?: boolean;
648
- embedCode?: string;
649
- attempt?: number;
650
- correct?: number;
651
- autoGrade?: boolean;
652
- points?: number;
653
- shuffle?: boolean;
654
- translation?: string;
655
- includeAIContext?: boolean;
656
- media_area_context_ref?: string | null;
657
- standardId?: string;
658
- target_proficiency_level?: string;
659
- allowTTS?: boolean;
660
- }[], Error, {
661
- cards: PageActivity[];
742
+ declare function useSubmitAssignmentScore({ onAssignmentSubmitted, studentName, }: {
743
+ onAssignmentSubmitted: (assignmentId: string) => void;
744
+ studentName: string;
745
+ }): {
746
+ submitAssignmentScore: _tanstack_react_query.UseMutateAsyncFunction<{
747
+ success: boolean;
748
+ message: string;
749
+ error?: undefined;
750
+ } | {
751
+ success: boolean;
752
+ error: unknown;
753
+ message?: undefined;
754
+ }, Error, {
755
+ assignment: AssignmentWithId;
756
+ userId: string;
757
+ cardIds: string[];
758
+ weights: Record<string, number>;
759
+ scores: Score;
760
+ status: "FINALIZED" | "IN_PROGRESS" | "PENDING_REVIEW";
662
761
  }, unknown>;
762
+ isLoading: boolean;
663
763
  };
664
- declare function getCardFromCache({ cardId, queryClient, }: {
665
- cardId: string;
666
- queryClient: QueryClient;
667
- }): PageActivityWithId | undefined;
668
- declare function updateCardInCache({ cardId, card, queryClient, }: {
669
- cardId: string;
670
- card: PageActivityWithId | null;
671
- queryClient: QueryClient;
672
- }): void;
673
- declare function useGetCard({ cardId, enabled }: {
674
- cardId: string;
675
- enabled?: boolean;
676
- }): _tanstack_react_query.UseQueryResult<PageActivityWithId | null, Error>;
677
-
678
- declare const createCardRepo: () => {
679
- createCard: (args_0: {
680
- data: Partial<PageActivity>;
681
- }) => Promise<{
682
- id: string;
683
- } & Partial<PageActivity>>;
684
- createCards: (args_0: {
685
- cards: PageActivity[];
686
- }) => Promise<{
687
- id: string;
688
- owners: string[];
689
- checked?: boolean;
690
- completed?: boolean;
691
- media_area_id?: string | null;
692
- media_area_layout?: "left" | "right" | null;
693
- score?: number;
694
- verificationStatus?: VerificationCardStatus;
695
- native_text?: string;
696
- repeat?: number;
697
- language?: string | null;
698
- image?: {
699
- path?: string | null;
700
- url?: string;
701
- };
702
- audio?: {
703
- path?: string | null;
704
- url?: string;
705
- } | null;
706
- notes?: string;
707
- difficulty?: string;
708
- default_language?: string;
709
- target_text?: string;
710
- type: ActivityPageType;
711
- grading_criteria?: string;
712
- scoring_type?: string;
713
- grading_method?: "simple" | "rubric" | "manual" | "standards_based";
714
- feedback_types?: string[];
715
- rubricId?: string;
716
- prompt?: string;
717
- title?: string;
718
- passing_score?: number;
719
- maxCharacters?: number;
720
- answer?: string[];
721
- choices?: {
722
- value: string;
723
- option: string;
724
- }[];
725
- MCQType?: string;
726
- multipleAttemptsAllowed?: boolean;
727
- allowRetries?: boolean;
728
- question?: string;
729
- respondTime?: number;
730
- hidePrompt?: boolean;
731
- videoUrl?: string;
732
- link?: string;
733
- text?: string;
734
- isListenAloud?: boolean;
735
- embedCode?: string;
736
- attempt?: number;
737
- correct?: number;
738
- autoGrade?: boolean;
739
- points?: number;
740
- shuffle?: boolean;
741
- translation?: string;
742
- includeAIContext?: boolean;
743
- media_area_context_ref?: string | null;
744
- standardId?: string;
745
- target_proficiency_level?: string;
746
- allowTTS?: boolean;
747
- }[]>;
748
- getCard: (params: {
749
- cardId: string;
750
- }) => Promise<PageActivityWithId | null>;
751
- };
752
-
753
- declare function checkIsRepeatPage(cardType: ActivityPageType | undefined): boolean;
754
- declare function checkIsMCPage(cardType: ActivityPageType | undefined): boolean;
755
- declare function checkIsRespondPage(cardType: ActivityPageType | undefined): boolean;
756
- declare function checkIsRespondWrittenPage(cardType: ActivityPageType | undefined): boolean;
757
- declare function checkIsRespondAudioPage(cardType: ActivityPageType | undefined): boolean;
758
- declare const checkIsMediaPage: (cardType: ActivityPageType | undefined) => boolean;
759
- declare const checkIsShortAnswerPage: (cardType: ActivityPageType | undefined) => boolean;
760
- declare const checkTypePageActivity: (cardType: ActivityPageType | undefined) => {
761
- isRespondAudio: boolean;
762
- isRespondWritten: boolean;
763
- isRespond: boolean;
764
- isMC: boolean;
765
- isRepeat: boolean;
766
- isMediaPage: boolean;
767
- isShortAnswer: boolean;
764
+ declare function useSubmitPracticeScore(): {
765
+ submitPracticeScore: _tanstack_react_query.UseMutateAsyncFunction<{
766
+ success: boolean;
767
+ message: string;
768
+ error?: undefined;
769
+ } | {
770
+ success: boolean;
771
+ error: unknown;
772
+ message?: undefined;
773
+ }, Error, {
774
+ setId: string;
775
+ userId: string;
776
+ scores: Score;
777
+ }, unknown>;
778
+ isLoading: boolean;
768
779
  };
769
780
 
770
781
  interface SetWithId extends Set {
@@ -927,6 +938,7 @@ declare function createFsClientBase({ db, helpers, httpsCallable, logEvent, }: {
927
938
  content?: string[];
928
939
  weights?: Record<string, number>;
929
940
  language?: string;
941
+ types?: { [key in ActivityPageType]?: number; };
930
942
  } | null>;
931
943
  attachScoresAssignment: (args_0: {
932
944
  assignments: AssignmentWithId[];
@@ -974,6 +986,7 @@ declare function createFsClientBase({ db, helpers, httpsCallable, logEvent, }: {
974
986
  content?: string[];
975
987
  weights?: Record<string, number>;
976
988
  language?: string;
989
+ types?: { [key in ActivityPageType]?: number; };
977
990
  }[]>;
978
991
  getAssignmentScores: (args_0: {
979
992
  assignmentId: string;
@@ -1277,6 +1290,7 @@ declare function useActivity({ id, isAssignment, onAssignmentSubmitted, ltiData,
1277
1290
  content?: string[];
1278
1291
  weights?: Record<string, number>;
1279
1292
  language?: string;
1293
+ types?: { [key in ActivityPageType]?: number; };
1280
1294
  } | null | undefined;
1281
1295
  query: _tanstack_react_query.UseQueryResult<AssignmentWithId | {
1282
1296
  scores: any;
@@ -1319,6 +1333,7 @@ declare function useActivity({ id, isAssignment, onAssignmentSubmitted, ltiData,
1319
1333
  content?: string[];
1320
1334
  weights?: Record<string, number>;
1321
1335
  language?: string;
1336
+ types?: { [key in ActivityPageType]?: number; };
1322
1337
  } | null, Error>;
1323
1338
  };
1324
1339
  scores: {
@@ -1339,7 +1354,7 @@ declare function useActivity({ id, isAssignment, onAssignmentSubmitted, ltiData,
1339
1354
  error: unknown;
1340
1355
  message?: undefined;
1341
1356
  }>;
1342
- updateCard: (cardId: string, cardScore: CardScore) => void;
1357
+ updateCard: (cardId: string, cardScore: PageScore) => void;
1343
1358
  logGradingStandardEntry: ({ cardId, gradingStandard, type, }: {
1344
1359
  cardId: string;
1345
1360
  gradingStandard: {
@@ -2567,6 +2582,7 @@ declare const createFsClientNative: ({ db, httpsCallable, logEvent }: FsClientPa
2567
2582
  content?: string[];
2568
2583
  weights?: Record<string, number>;
2569
2584
  language?: string;
2585
+ types?: { [key in ActivityPageType]?: number; };
2570
2586
  } | null>;
2571
2587
  attachScoresAssignment: (args_0: {
2572
2588
  assignments: AssignmentWithId[];
@@ -2614,6 +2630,7 @@ declare const createFsClientNative: ({ db, httpsCallable, logEvent }: FsClientPa
2614
2630
  content?: string[];
2615
2631
  weights?: Record<string, number>;
2616
2632
  language?: string;
2633
+ types?: { [key in ActivityPageType]?: number; };
2617
2634
  }[]>;
2618
2635
  getAssignmentScores: (args_0: {
2619
2636
  assignmentId: string;
@@ -2704,4 +2721,4 @@ declare const createFsClientNative: ({ db, httpsCallable, logEvent }: FsClientPa
2704
2721
  };
2705
2722
  };
2706
2723
 
2707
- export { ActivityPageType, type Assignment, type AssignmentWithId, BASE_MULTIPLE_CHOICE_FIELD_VALUES, BASE_REPEAT_FIELD_VALUES, BASE_RESPOND_FIELD_VALUES, type CardScore, type CreditContract, FeedbackTypesCard, FsCtx, type InstitutionSubscription, LENIENCY_OPTIONS, LeniencyCard, MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES, type Organization, type OrganizationAccess, type PageActivity, type PageActivityWithId, REPEAT_PAGE_ACTIVITY_TYPES, RESPOND_AUDIO_PAGE_ACTIVITY_TYPES, RESPOND_PAGE_ACTIVITY_TYPES, RESPOND_WRITE_PAGE_ACTIVITY_TYPES, type RefsCardsFiresotre, type RefsSetsFirestore, SPEAKABLE_NOTIFICATIONS, STUDENT_LEVELS_OPTIONS, type Score, type ScoreWithId, type Set, type SetWithId, type SpeakableNotificationType, SpeakableNotificationTypes, SpeakableProvider, VerificationCardStatus, assignmentQueryKeys, cardsQueryKeys, checkIsMCPage, checkIsMediaPage, checkIsRepeatPage, checkIsRespondAudioPage, checkIsRespondPage, checkIsRespondWrittenPage, checkIsShortAnswerPage, checkTypePageActivity, cleanString, createAssignmentRepo, createCardRepo, createFsClientNative as createFsClient, createSetRepo, creditQueryKeys, debounce, getCardFromCache, getRespondCardTool, getSetFromCache, getWordHash, purify, refsCardsFiresotre, refsSetsFirestore, scoreQueryKeys, setsQueryKeys, updateCardInCache, updateSetInCache, useActivity, useActivityFeedbackAccess, useAssignment, useBaseOpenAI, useCards, useClearScore, useCreateCard, useCreateCards, useCreateNotification, useGetCard, useOrganizationAccess, useScore, useSet, useSpeakableApi, useSubmitAssignmentScore, useSubmitPracticeScore, useUpdateCardScore, useUpdateScore, useUserCredits };
2724
+ export { ActivityPageType, type Assignment, type AssignmentWithId, BASE_MULTIPLE_CHOICE_FIELD_VALUES, BASE_REPEAT_FIELD_VALUES, BASE_RESPOND_FIELD_VALUES, type CreditContract, FeedbackTypesCard, FsCtx, type InstitutionSubscription, LENIENCY_OPTIONS, LeniencyCard, MULTIPLE_CHOICE_PAGE_ACTIVITY_TYPES, type Organization, type OrganizationAccess, type PageActivity, type PageActivityWithId, type PageScore, REPEAT_PAGE_ACTIVITY_TYPES, RESPOND_AUDIO_PAGE_ACTIVITY_TYPES, RESPOND_PAGE_ACTIVITY_TYPES, RESPOND_WRITE_PAGE_ACTIVITY_TYPES, type RefsCardsFiresotre, type RefsSetsFirestore, SPEAKABLE_NOTIFICATIONS, STUDENT_LEVELS_OPTIONS, type Score, type ScoreWithId, type Set, type SetWithId, type SpeakableNotificationType, SpeakableNotificationTypes, SpeakableProvider, VerificationCardStatus, assignmentQueryKeys, cardsQueryKeys, checkIsMCPage, checkIsMediaPage, checkIsRepeatPage, checkIsRespondAudioPage, checkIsRespondPage, checkIsRespondWrittenPage, checkIsShortAnswerPage, checkTypePageActivity, cleanString, createAssignmentRepo, createCardRepo, createFsClientNative as createFsClient, createSetRepo, creditQueryKeys, debounce, getCardFromCache, getPagePrompt, getRespondCardTool, getSetFromCache, getWordHash, purify, refsCardsFiresotre, refsSetsFirestore, scoreQueryKeys, setsQueryKeys, updateCardInCache, updateSetInCache, useActivity, useActivityFeedbackAccess, useAssignment, useBaseOpenAI, useCards, useClearScore, useCreateCard, useCreateCards, useCreateNotification, useGetCard, useOrganizationAccess, useScore, useSet, useSpeakableApi, useSubmitAssignmentScore, useSubmitPracticeScore, useUpdateCardScore, useUpdateScore, useUserCredits };