@local-civics/mgmt-ui 0.1.117-beta.1 → 0.1.117-beta.3

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.
@@ -0,0 +1,686 @@
1
+ export { showNotification, updateNotification } from '@mantine/notifications';
2
+ import * as React from 'react';
3
+
4
+ /**
5
+ * NavbarProps
6
+ */
7
+ interface NavbarProps {
8
+ active: string;
9
+ version: string;
10
+ image: string;
11
+ name: string;
12
+ email: string;
13
+ links: Record<string, {
14
+ notifications: number;
15
+ href: string;
16
+ hidden?: boolean;
17
+ }>;
18
+ trial?: boolean;
19
+ loading?: boolean;
20
+ onLogout: () => void;
21
+ onGettingStarted: () => void;
22
+ onSwitchAccounts?: () => void;
23
+ }
24
+ declare function Navbar(props: NavbarProps): JSX.Element;
25
+
26
+ /**
27
+ * GettingStartedProps
28
+ */
29
+ type GettingStartedProps = {
30
+ opened: boolean;
31
+ loading: boolean;
32
+ videoURL: string;
33
+ onClose: () => void;
34
+ };
35
+ /**
36
+ * GettingStarted
37
+ * @param props
38
+ * @constructor
39
+ */
40
+ declare const GettingStarted: (props: GettingStartedProps) => JSX.Element;
41
+
42
+ /**
43
+ * AccountItem
44
+ */
45
+ type AccountItem = {
46
+ accountId: string;
47
+ name: string;
48
+ isAdmin?: boolean;
49
+ isGroupAdmin?: boolean;
50
+ };
51
+ /**
52
+ * SwitchAccountProps
53
+ */
54
+ type SwitchAccountProps = {
55
+ opened: boolean;
56
+ account: string;
57
+ loading: boolean;
58
+ accounts: AccountItem[];
59
+ onClick: (account: string) => void;
60
+ onClose: () => void;
61
+ };
62
+ /**
63
+ * SwitchAccount
64
+ * @param props
65
+ * @constructor
66
+ */
67
+ declare const SwitchAccount: (props: SwitchAccountProps) => JSX.Element;
68
+
69
+ /**
70
+ * Item
71
+ */
72
+ interface Item$j {
73
+ lessonName: string;
74
+ completion: number;
75
+ isStarted?: boolean;
76
+ href: string;
77
+ }
78
+
79
+ /**
80
+ * Item
81
+ */
82
+ interface Item$i {
83
+ userId: string;
84
+ avatar: string;
85
+ name: string;
86
+ email: string;
87
+ isComplete?: boolean;
88
+ lessons: Item$j[];
89
+ }
90
+
91
+ /**
92
+ * Item
93
+ */
94
+ interface Item$h {
95
+ lessonId: string;
96
+ lessonName: string;
97
+ percentageCompletion: number;
98
+ href: string;
99
+ }
100
+
101
+ /**
102
+ * BadgeUserItem
103
+ */
104
+ type BadgeUserItem = Item$i;
105
+ /**
106
+ * BadgeClass
107
+ */
108
+ type BadgeClass = {
109
+ classId: string;
110
+ name: string;
111
+ active: boolean;
112
+ };
113
+ /**
114
+ * BadgeProps
115
+ */
116
+ type BadgeProps = {
117
+ loading: boolean;
118
+ displayName: string;
119
+ description: string;
120
+ classes: BadgeClass[];
121
+ lessons: Item$h[];
122
+ classId: string;
123
+ students: BadgeUserItem[];
124
+ href: string;
125
+ trial?: boolean;
126
+ lessonsCompleted?: number;
127
+ onBackClick: () => void;
128
+ onClassChange: (classId: string) => void;
129
+ onCopyLinkClick: () => void;
130
+ onExportDataClick: () => void;
131
+ };
132
+ /**
133
+ * Badge
134
+ * @param props
135
+ * @constructor
136
+ */
137
+ declare const Badge: (props: BadgeProps) => JSX.Element;
138
+
139
+ /**
140
+ * Item
141
+ */
142
+ interface Item$g {
143
+ badgeId: string;
144
+ name: string;
145
+ description: string;
146
+ href: string;
147
+ }
148
+
149
+ /**
150
+ * BadgeItem
151
+ */
152
+ type BadgeItem = Item$g;
153
+ /**
154
+ * BadgesProps
155
+ */
156
+ type BadgesProps = {
157
+ loading: boolean;
158
+ badges: BadgeItem[];
159
+ onAutocompleteChange: (value: string) => void;
160
+ };
161
+ /**
162
+ * Badges
163
+ * @param props
164
+ * @constructor
165
+ */
166
+ declare const Badges: (props: BadgesProps) => JSX.Element;
167
+
168
+ /**
169
+ * Item
170
+ */
171
+ interface Item$f {
172
+ studentId: string;
173
+ studentName: string;
174
+ className: string;
175
+ }
176
+
177
+ /**
178
+ * Item
179
+ */
180
+ interface Item$e {
181
+ lessonName: string;
182
+ studentName: string;
183
+ reflection: string;
184
+ updatedAt: string;
185
+ }
186
+
187
+ /**
188
+ * Item
189
+ */
190
+ interface Item$d {
191
+ studentName: string;
192
+ impactStatement: string;
193
+ }
194
+
195
+ /**
196
+ * Item
197
+ */
198
+ interface Item$c {
199
+ badgeId: string;
200
+ name: string;
201
+ description: string;
202
+ percentageCompletion: number;
203
+ }
204
+
205
+ /**
206
+ * Item
207
+ */
208
+ interface Item$b {
209
+ lessonId: string;
210
+ name: string;
211
+ description: string;
212
+ percentageCompletion: number;
213
+ }
214
+
215
+ /**
216
+ * DashboardClass
217
+ */
218
+ type DashboardClass = {
219
+ classId: string;
220
+ name: string;
221
+ };
222
+ /**
223
+ * DashboardProps
224
+ */
225
+ type DashboardProps = {
226
+ loading: boolean;
227
+ students: Item$f[];
228
+ impacts: Item$d[];
229
+ reflections: Item$e[];
230
+ classes: DashboardClass[];
231
+ badges: Item$c[];
232
+ lessons: Item$b[];
233
+ classId: string;
234
+ percentageOfAccountsCreated: number;
235
+ numberOfBadgesEarned: number;
236
+ numberOfLessonsCompleted: number;
237
+ onClassChange: (classId: string) => void;
238
+ onViewStudentProfile: (student: Item$f) => void;
239
+ onBadgeClick: (badge: Item$c) => void;
240
+ onLessonClick: (lesson: Item$b) => void;
241
+ };
242
+ /**
243
+ * Dashboard
244
+ * @param props
245
+ * @constructor
246
+ */
247
+ declare const Dashboard: (props: DashboardProps) => JSX.Element;
248
+
249
+ /**
250
+ * Item
251
+ */
252
+ type Item$a = {
253
+ classId: string;
254
+ userId: string;
255
+ avatar: string;
256
+ email: string;
257
+ givenName: string;
258
+ familyName: string;
259
+ lastActivity: Date | null;
260
+ readonly: boolean;
261
+ hasAccount: boolean;
262
+ badgesEarned: number;
263
+ lessonsCompleted: number;
264
+ isAdmin: boolean;
265
+ href: string;
266
+ };
267
+
268
+ /**
269
+ * MemberItem
270
+ */
271
+ type MemberItem = Item$a;
272
+ /**
273
+ * ClassProps
274
+ */
275
+ type ClassProps = {
276
+ loading: boolean;
277
+ displayName: string;
278
+ description: string;
279
+ members: MemberItem[];
280
+ percentageOfAccountsCreated: number;
281
+ numberOfBadgesEarned: number;
282
+ numberOfLessonsCompleted: number;
283
+ onBackClick: () => void;
284
+ onCreateMembers: (members: MemberItem[]) => void;
285
+ onDeleteMember: (student: MemberItem) => void;
286
+ onChangeUserRole: (user: MemberItem, role: string | null) => void;
287
+ onCopyLinkClick: () => void;
288
+ };
289
+ /**
290
+ * Class
291
+ * @param props
292
+ * @constructor
293
+ */
294
+ declare const Class: (props: ClassProps) => JSX.Element;
295
+
296
+ /**
297
+ * Item
298
+ */
299
+ type Item$9 = {
300
+ href: string;
301
+ classId: string;
302
+ name: string;
303
+ description: string;
304
+ numberOfStudents: number;
305
+ };
306
+
307
+ /**
308
+ * ClassItem
309
+ */
310
+ type ClassItem = Item$9;
311
+ /**
312
+ * ClassesProps
313
+ */
314
+ type ClassesProps = {
315
+ loading: boolean;
316
+ classes: ClassItem[];
317
+ onCreateClass: (group: ClassItem) => void;
318
+ onDeleteClass: (group: ClassItem) => void;
319
+ onAutocompleteChange: (next: string) => void;
320
+ };
321
+ /**
322
+ * Classes
323
+ * @param props
324
+ * @constructor
325
+ */
326
+ declare const Classes: (props: ClassesProps) => JSX.Element;
327
+
328
+ /**
329
+ * Item
330
+ */
331
+ interface Item$8 {
332
+ badgeId: string;
333
+ badgeName: string;
334
+ isComplete?: boolean;
335
+ }
336
+
337
+ /**
338
+ * Item
339
+ */
340
+ interface Item$7 {
341
+ lessonId: string;
342
+ lessonName: string;
343
+ questionName: string;
344
+ answer: string[];
345
+ href: string;
346
+ }
347
+
348
+ /**
349
+ * Item
350
+ */
351
+ interface Item$6 {
352
+ lessonId: string;
353
+ lessonName: string;
354
+ reflection: string;
355
+ rating: number;
356
+ href: string;
357
+ }
358
+
359
+ /**
360
+ * StudentProps
361
+ */
362
+ type StudentProps = {
363
+ loading: boolean;
364
+ name: string;
365
+ impactStatement: string;
366
+ numberOfProblemsSolved: number;
367
+ percentageOfLessonsCompleted: number;
368
+ badges: Item$8[];
369
+ answers: Item$7[];
370
+ reflections: Item$6[];
371
+ onBackClick: () => void;
372
+ };
373
+ declare const Student: (props: StudentProps) => JSX.Element;
374
+
375
+ /**
376
+ * HomeProps
377
+ */
378
+ type HomeProps = {
379
+ loading: boolean;
380
+ avatarURL: string;
381
+ name: string;
382
+ impactStatement: string;
383
+ organization: {
384
+ name: string;
385
+ description: string;
386
+ image: string;
387
+ website: string;
388
+ };
389
+ onDashboardClick: () => void;
390
+ onClassesClick: () => void;
391
+ onLessonsClick: () => void;
392
+ onBadgesClick: () => void;
393
+ };
394
+ /**
395
+ * Home
396
+ * @param props
397
+ * @constructor
398
+ */
399
+ declare const Home: (props: HomeProps) => JSX.Element;
400
+
401
+ /**
402
+ * Item
403
+ */
404
+ interface Item$5 {
405
+ studentName: string;
406
+ reflection: string;
407
+ rating: number;
408
+ }
409
+
410
+ /**
411
+ * Item
412
+ */
413
+ interface Item$4 {
414
+ questionName: string;
415
+ answer: string[];
416
+ }
417
+
418
+ /**
419
+ * Item
420
+ */
421
+ interface Item$3 {
422
+ userId: string;
423
+ avatar: string;
424
+ name: string;
425
+ email: string;
426
+ answers: Item$4[];
427
+ isStarted?: boolean;
428
+ isComplete?: boolean;
429
+ href: string;
430
+ }
431
+
432
+ /**
433
+ * Item
434
+ */
435
+ interface Item$2 {
436
+ question: string;
437
+ answers: string[][];
438
+ choices?: string[];
439
+ chart?: boolean;
440
+ }
441
+
442
+ /**
443
+ * LessonUserItem
444
+ */
445
+ type LessonUserItem = Item$3;
446
+ /**
447
+ * LessonClass
448
+ */
449
+ type LessonClass = {
450
+ classId: string;
451
+ name: string;
452
+ active: boolean;
453
+ };
454
+ /**
455
+ * LessonProps
456
+ */
457
+ type LessonProps = {
458
+ loading: boolean;
459
+ displayName: string;
460
+ description: string;
461
+ href: string;
462
+ classId: string;
463
+ classes: LessonClass[];
464
+ students: LessonUserItem[];
465
+ reflections: Item$5[];
466
+ questions: Item$2[];
467
+ trial?: boolean;
468
+ lessonsCompleted?: number;
469
+ contributors?: {
470
+ name: string;
471
+ }[];
472
+ onBackClick: () => void;
473
+ onClassChange: (classId: string) => void;
474
+ onCopyLinkClick: () => void;
475
+ onExportDataClick: () => void;
476
+ };
477
+ /**
478
+ * Lesson
479
+ * @param props
480
+ * @constructor
481
+ */
482
+ declare const Lesson: (props: LessonProps) => JSX.Element;
483
+
484
+ /**
485
+ * Item
486
+ */
487
+ interface Item$1 {
488
+ lessonId: string;
489
+ name: string;
490
+ description: string;
491
+ href: string;
492
+ }
493
+
494
+ /**
495
+ * LessonItem
496
+ */
497
+ type LessonItem = Item$1;
498
+ /**
499
+ * LessonsProps
500
+ */
501
+ type LessonsProps = {
502
+ loading: boolean;
503
+ lessons: LessonItem[];
504
+ onAutocompleteChange: (next: string) => void;
505
+ };
506
+ /**
507
+ * Lessons
508
+ * @param props
509
+ * @constructor
510
+ */
511
+ declare const Lessons: (props: LessonsProps) => JSX.Element;
512
+
513
+ /**
514
+ * OrganizationProps
515
+ */
516
+ type OrganizationProps = {
517
+ loading: boolean;
518
+ displayName: string;
519
+ description: string;
520
+ numberOfStudents: number;
521
+ numberOfEducators: number;
522
+ percentageOfAccountsActive: number;
523
+ accessCode: string;
524
+ peopleLink: string;
525
+ onBackClick: () => void;
526
+ onCopyAccessCode: () => void;
527
+ };
528
+ /**
529
+ * Organization
530
+ * @param props
531
+ * @constructor
532
+ */
533
+ declare const Organization: (props: OrganizationProps) => JSX.Element;
534
+
535
+ /**
536
+ * Item
537
+ */
538
+ type Item = {
539
+ userId: string;
540
+ avatar: string;
541
+ email: string;
542
+ givenName: string;
543
+ familyName: string;
544
+ lastActivity: Date | null;
545
+ readonly: boolean;
546
+ hasAccount: boolean;
547
+ isAdmin: boolean;
548
+ isGroupAdmin: boolean;
549
+ numberOfClasses: number;
550
+ href: string;
551
+ };
552
+
553
+ /**
554
+ * UserItem
555
+ */
556
+ type UserItem = Item;
557
+ /**
558
+ * PeopleProps
559
+ */
560
+ type PeopleProps = {
561
+ loading: boolean;
562
+ users: UserItem[];
563
+ percentageOfAccountsCreated: number;
564
+ percentageRostered: number;
565
+ withOrganizationLink?: boolean;
566
+ onBackClick: () => void;
567
+ onCreateUsers: (users: UserItem[]) => void;
568
+ onDeleteUser: (user: UserItem) => void;
569
+ onChangeUserRole: (user: UserItem, role: string | null) => void;
570
+ onCopyLinkClick: () => void;
571
+ onAutocompleteChange: (next: string) => void;
572
+ };
573
+ /**
574
+ * Class
575
+ * @param props
576
+ * @constructor
577
+ */
578
+ declare const People: (props: PeopleProps) => JSX.Element;
579
+
580
+ /**
581
+ * StartAnonymousLessonProps
582
+ */
583
+ type StartAnonymousLessonProps = {
584
+ title: string;
585
+ description: string;
586
+ educatorName: string;
587
+ studentName?: string;
588
+ onStart: (name: string) => void;
589
+ };
590
+ /**
591
+ * StartAnonymousLesson
592
+ * @param props
593
+ * @constructor
594
+ */
595
+ declare const StartAnonymousLesson: (props: StartAnonymousLessonProps) => JSX.Element;
596
+
597
+ /**
598
+ * BadgeGridProps
599
+ */
600
+ type BadgeGridProps = {
601
+ badges: TaskCardProps[];
602
+ onAssign: (taskId: string) => void;
603
+ };
604
+ type TaskCardProps = {
605
+ taskId: string;
606
+ title: string;
607
+ description: string;
608
+ href: string;
609
+ onAssign: (taskId: string) => void;
610
+ };
611
+
612
+ /**
613
+ * TrialHomeProps
614
+ */
615
+ type TrialHomeProps = BadgeGridProps & {
616
+ loading: boolean;
617
+ name: string;
618
+ firstName: string;
619
+ daysRemaining: number;
620
+ upgradeHref: string;
621
+ };
622
+ /**
623
+ * TrialHome
624
+ * @param props
625
+ * @constructor
626
+ */
627
+ declare const TrialHome: (props: TrialHomeProps) => JSX.Element;
628
+
629
+ /**
630
+ * TrialRegistrationProps
631
+ */
632
+ type TrialRegistrationProps = {
633
+ organizations: {
634
+ organizationId: string;
635
+ displayName: string;
636
+ }[];
637
+ onBegin: (data: NewTrialRegistration) => void;
638
+ onQueryOrganizations: (name: string) => void;
639
+ };
640
+ type NewTrialRegistration = {
641
+ firstName: string;
642
+ lastName: string;
643
+ organizationId: string;
644
+ organizationName: string;
645
+ interests: string[];
646
+ };
647
+ /**
648
+ * TrialRegistration
649
+ * @param props
650
+ * @constructor
651
+ */
652
+ declare const TrialRegistration: (props: TrialRegistrationProps) => JSX.Element;
653
+
654
+ /**
655
+ * AdminProviderProps
656
+ */
657
+ interface AdminProviderProps {
658
+ notificationLimit?: number;
659
+ children: React.ReactNode;
660
+ }
661
+ /**
662
+ * AdminProvider
663
+ * @constructor
664
+ * @param props
665
+ */
666
+ declare const AdminProvider: (props: AdminProviderProps) => JSX.Element;
667
+
668
+ /**
669
+ * AppProps
670
+ */
671
+ type AppProps = {
672
+ loading?: boolean;
673
+ account?: string;
674
+ accounts?: AccountItem[];
675
+ navbar?: React.ReactElement<NavbarProps>;
676
+ page: React.ReactNode;
677
+ onAccountChange?: (account: string) => Promise<void>;
678
+ };
679
+ /**
680
+ * App
681
+ * @param props
682
+ * @constructor
683
+ */
684
+ declare const App: (props: AppProps) => JSX.Element;
685
+
686
+ export { AccountItem, AdminProvider, AdminProviderProps, App, AppProps, Badge, BadgeClass, BadgeItem, BadgeProps, BadgeUserItem, Badges, BadgesProps, Class, ClassItem, ClassProps, Classes, ClassesProps, Dashboard, DashboardClass, DashboardProps, GettingStarted, GettingStartedProps, Home, HomeProps, Lesson, LessonClass, LessonItem, LessonProps, LessonUserItem, Lessons, LessonsProps, MemberItem, Navbar, NavbarProps, NewTrialRegistration, Organization, OrganizationProps, People, PeopleProps, StartAnonymousLesson, StartAnonymousLessonProps, Student, StudentProps, SwitchAccount, SwitchAccountProps, TrialHome, TrialHomeProps, TrialRegistration, TrialRegistrationProps, UserItem };