@nualang/nualang-ui-components 0.1.1289 → 0.1.1291

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 (654) hide show
  1. package/README.md +64 -64
  2. package/dist/Assignments/AssignmentBotSelection/AssignmentBotSelection.js +130 -48
  3. package/dist/Assignments/AssignmentCard/AssignmentCard.js +59 -63
  4. package/dist/Assignments/AssignmentCardsList/AssignmentCardsList.js +55 -61
  5. package/dist/Assignments/AssignmentCourseSelection/AssignmentCourseSelection.js +54 -56
  6. package/dist/Assignments/AssignmentExerciseSelection/AssignmentExerciseSelection.js +159 -154
  7. package/dist/Assignments/AssignmentExerciseSelector/AssignmentExerciseSelector.js +11 -16
  8. package/dist/Assignments/AssignmentRoleplaySelection/AssignmentRoleplaySelection.js +80 -87
  9. package/dist/Assignments/AssignmentSelectExercise/AssignmentSelectExercise.js +16 -21
  10. package/dist/Assignments/CreateAssignmentDialog/CreateAssignmentDialog.js +97 -103
  11. package/dist/Assignments/SelectAssignmentTypeDialog/SelectAssignmentTypeDialog.js +34 -41
  12. package/dist/Cards/Avatar/Avatar.js +10 -16
  13. package/dist/Cards/Bot/Bot.js +103 -110
  14. package/dist/Cards/Bot/Bot.test.js +21 -0
  15. package/dist/Cards/CardElements/CardTitle/CardTitle.js +9 -16
  16. package/dist/Cards/CardElements/CardVisibility/CardVisibility.js +19 -26
  17. package/dist/Cards/CardElements/index.js +26 -47
  18. package/dist/Cards/Category/Category.js +17 -24
  19. package/dist/Cards/Classroom/Classroom.js +101 -108
  20. package/dist/Cards/Classroom/Classroom.test.js +30 -0
  21. package/dist/Cards/Course/Course.js +178 -186
  22. package/dist/Cards/Course/Course.test.js +30 -0
  23. package/dist/Cards/LoadingCard/LoadingCard.js +14 -21
  24. package/dist/Cards/PreviewCard/PreviewCard.js +24 -31
  25. package/dist/Cards/PreviewCard/PreviewCard.test.js +20 -0
  26. package/dist/Cards/RecordingCard/RecordingCard.js +40 -47
  27. package/dist/Cards/Roleplay/Roleplay.js +103 -110
  28. package/dist/Cards/Roleplay/Roleplay.test.js +21 -0
  29. package/dist/Cards/ScheduleCard/ScheduleCard.js +33 -40
  30. package/dist/Cards/SubmissionsCard/SubmissionsCard.js +33 -40
  31. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.js +81 -89
  32. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.test.js +20 -0
  33. package/dist/Cards/SubscriptionPlan/nuala.svg +28 -28
  34. package/dist/Cards/SubscriptionPlan/plus.svg +4 -4
  35. package/dist/Cards/Topic/Topic.js +64 -71
  36. package/dist/Cards/Topic/Topic.test.js +21 -0
  37. package/dist/Cards/index.js +2 -13
  38. package/dist/Charts/Bar/Exercises/Exercises.js +16 -23
  39. package/dist/Charts/Bar/TotalGrades/TotalGrades.js +21 -26
  40. package/dist/Charts/Doughnut/AnswerMethod/AnswerMethod.js +15 -22
  41. package/dist/Charts/Doughnut/AnswersBreakdown/AnswersBreakdown.js +15 -22
  42. package/dist/Charts/Doughnut/RecordingAttendance/RecordingAttendance.js +19 -26
  43. package/dist/Charts/Doughnut/SubmittedRecordings/SubmittedRecordings.js +19 -26
  44. package/dist/Chat/BottomBar/BottomBar.js +154 -108
  45. package/dist/Chat/Chat.js +19 -21
  46. package/dist/Chat/ChatLoading/ChatLoading.js +39 -46
  47. package/dist/Chat/Messages/Message/Message.js +123 -130
  48. package/dist/Chat/Messages/Messages.js +30 -37
  49. package/dist/Chat/Messages/Question/Question.js +89 -95
  50. package/dist/Chat/TopBar/TopBar.js +31 -38
  51. package/dist/Chat/VoiceMessage/VoiceMessage.js +20 -27
  52. package/dist/Containers/App/App.js +115 -119
  53. package/dist/Dialogs/AddToClassroom/AddToClassroom.js +36 -44
  54. package/dist/Dialogs/AddToClassroom/AddToClassroom.test.js +15 -0
  55. package/dist/Dialogs/AddToCourse/AddToCourse.js +25 -33
  56. package/dist/Dialogs/Alternatives/Alternatives.js +12 -20
  57. package/dist/Dialogs/AvatarDialog/AvatarDialog.js +127 -136
  58. package/dist/Dialogs/AvatarDialog/options.js +1 -7
  59. package/dist/Dialogs/BotPreview/BotPreview.js +56 -63
  60. package/dist/Dialogs/Code/Code.js +43 -49
  61. package/dist/Dialogs/Code/Code.test.js +20 -0
  62. package/dist/Dialogs/ConfirmDeleteDiscussion/ConfirmDeleteDiscussion.js +16 -23
  63. package/dist/Dialogs/ConfirmDialog/ConfirmDialog.js +36 -43
  64. package/dist/Dialogs/CourseOutline/CourseOutline.js +6 -14
  65. package/dist/Dialogs/CourseOutline/CourseOutline.test.js +28 -0
  66. package/dist/Dialogs/CreatePhrase/CreatePhrase.js +90 -97
  67. package/dist/Dialogs/CreatePhrase/CreatePhrase.test.js +20 -0
  68. package/dist/Dialogs/CreateQuestion/CreateQuestion.js +53 -60
  69. package/dist/Dialogs/CreateQuestion/CreateQuestion.test.js +15 -0
  70. package/dist/Dialogs/CreateSection/CreateSection.js +8 -15
  71. package/dist/Dialogs/CreateSection/CreateSection.test.js +15 -0
  72. package/dist/Dialogs/CreateTopic/CreateTopic.js +28 -35
  73. package/dist/Dialogs/CreateTopic/CreateTopic.test.js +15 -0
  74. package/dist/Dialogs/CreatorNotSubscribed/CreatorNotSubscribed.js +7 -14
  75. package/dist/Dialogs/CreatorNotSubscribedUpgrade/CreatorNotSubscribedUpgrade.js +11 -18
  76. package/dist/Dialogs/DynamicAIWarning/DynamicAIWarning.js +31 -39
  77. package/dist/Dialogs/EnrollmentKeyDialog/EnrollmentKeyDialog.js +9 -16
  78. package/dist/Dialogs/ExerciseMenu/ExerciseMenu.js +16 -22
  79. package/dist/Dialogs/ExerciseMenu/Menus/CloseBotPreview/CloseBotPreview.js +4 -11
  80. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/CloseExercise.js +6 -13
  81. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/CompletedExcercise.js +6 -13
  82. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/InProgressExercise.js +6 -13
  83. package/dist/Dialogs/Feedback/FeedbackDialog.js +18 -26
  84. package/dist/Dialogs/FeedbackDialog/FeedbackDialog.js +28 -35
  85. package/dist/Dialogs/FeedbackInfoDialog/FeedbackInfoDialog.js +15 -22
  86. package/dist/Dialogs/GenerateBot/GenerateBot.js +49 -57
  87. package/dist/Dialogs/GeneratePhrases/GeneratePhrases.js +56 -63
  88. package/dist/Dialogs/GenerateQuestion/GenerateQuestion.js +34 -41
  89. package/dist/Dialogs/GenerateRoleplay/GenerateRoleplay.js +102 -109
  90. package/dist/Dialogs/Icons/Icons.js +4 -12
  91. package/dist/Dialogs/ImageLibrary/ImageLibrary.js +8 -15
  92. package/dist/Dialogs/ImageLibrary/ImageLibrary.test.js +20 -0
  93. package/dist/Dialogs/ImageLibraryDialog/ImageLibraryDialog.js +8 -15
  94. package/dist/Dialogs/InactivePopover/InactivePopover.js +14 -21
  95. package/dist/Dialogs/InviteDialog/InviteDialog.js +174 -181
  96. package/dist/Dialogs/Listener/Listener.js +22 -29
  97. package/dist/Dialogs/Listener/Listener.test.js +24 -0
  98. package/dist/Dialogs/LiveGameTutorial/LiveGameTutorial.js +44 -52
  99. package/dist/Dialogs/Members/Members.js +6 -14
  100. package/dist/Dialogs/Members/Members.test.js +20 -0
  101. package/dist/Dialogs/ModeratedDialog/ModeratedDialog.js +10 -17
  102. package/dist/Dialogs/PDFViewer/PDFViewer.js +59 -65
  103. package/dist/Dialogs/PhraseNameDialog/PhraseNameDialog.js +10 -17
  104. package/dist/Dialogs/RecordingDialog/RecordingDialog.js +61 -68
  105. package/dist/Dialogs/ReportProblem/ReportProblem.js +43 -51
  106. package/dist/Dialogs/ReportProblem/ReportProblem.test.js +15 -0
  107. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.js +25 -33
  108. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.test.js +15 -0
  109. package/dist/Dialogs/RewardEarned/RewardEarned.js +20 -27
  110. package/dist/Dialogs/RoleplayPreview/RoleplayPreview.js +14 -22
  111. package/dist/Dialogs/SearchTopic/SearchTopic.js +18 -26
  112. package/dist/Dialogs/SelectActor/SelectActor.js +25 -32
  113. package/dist/Dialogs/SelectClassroom/SelectClassroom.js +23 -30
  114. package/dist/Dialogs/SelectCourses/SelectCourses.js +6 -14
  115. package/dist/Dialogs/SelectCourses/SelectCourses.test.js +30 -0
  116. package/dist/Dialogs/SelectExercise/SelectExercise.js +16 -21
  117. package/dist/Dialogs/Substitution/Substitution.js +14 -21
  118. package/dist/Dialogs/Topic/Topic.js +12 -19
  119. package/dist/Dialogs/TopicPreview/TopicPreview.js +8 -16
  120. package/dist/Dialogs/Trigger/Trigger.js +42 -49
  121. package/dist/Dialogs/UpgradeSubscription/UpgradeSubscription.js +8 -15
  122. package/dist/Dialogs/UploadBotVars/UploadBotVars.js +37 -44
  123. package/dist/Dialogs/UploadBotVars/UploadBotVars.test.js +20 -0
  124. package/dist/Dialogs/UploadPhrases/UploadPhrases.js +88 -95
  125. package/dist/Dialogs/UploadPhrases/UploadPhrases.test.js +20 -0
  126. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.js +48 -55
  127. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.test.js +20 -0
  128. package/dist/Dialogs/UploadVideo/UploadVideo.js +19 -26
  129. package/dist/Dialogs/UploadVideo/UploadVideo.test.js +20 -0
  130. package/dist/Dialogs/Variable/Variable.js +14 -21
  131. package/dist/Dialogs/VideoViewer/VideoViewer.js +22 -30
  132. package/dist/Dialogs/ViewImageDialog/ViewImageDialog.js +9 -16
  133. package/dist/Dialogs/WaveformDialog/WaveformDialog.js +27 -34
  134. package/dist/Editors/Bot/Bot.js +130 -136
  135. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.js +19 -26
  136. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.test.js +12 -0
  137. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.js +19 -26
  138. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.test.js +12 -0
  139. package/dist/Editors/Bot/Editor/BotDesigner/AddSubstitutionModal/AddSubstitutionModal.js +19 -26
  140. package/dist/Editors/Bot/Editor/BotDesigner/AddSubstitutionModal/AddSubstitutionModal.test.js +12 -0
  141. package/dist/Editors/Bot/Editor/BotDesigner/AddTopicModal/AddTopicModal.js +18 -25
  142. package/dist/Editors/Bot/Editor/BotDesigner/AddTopicModal/AddTopicModal.test.js +17 -0
  143. package/dist/Editors/Bot/Editor/BotDesigner/AddTriggerModal/AddTriggerModal.js +34 -41
  144. package/dist/Editors/Bot/Editor/BotDesigner/AddTriggerModal/AddTriggerModal.test.js +12 -0
  145. package/dist/Editors/Bot/Editor/BotDesigner/AddVariableModal/AddVariableModal.js +19 -26
  146. package/dist/Editors/Bot/Editor/BotDesigner/AddVariableModal/AddVariableModal.test.js +12 -0
  147. package/dist/Editors/Bot/Editor/BotDesigner/AlternativesList.js +25 -31
  148. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.js +14 -21
  149. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.test.js +27 -0
  150. package/dist/Editors/Bot/Editor/BotDesigner/SubList.js +24 -31
  151. package/dist/Editors/Bot/Editor/BotDesigner/SwitchEditorModal/SwitchEditorModal.js +11 -18
  152. package/dist/Editors/Bot/Editor/BotDesigner/TopicList.js +45 -52
  153. package/dist/Editors/Bot/Editor/BotDesigner/VarList.js +67 -74
  154. package/dist/Editors/Bot/Editor/BotFlow/BotFlow.js +42 -49
  155. package/dist/Editors/Bot/Editor/Editor.js +147 -157
  156. package/dist/Editors/Bot/Tutorial.js +83 -89
  157. package/dist/Editors/Phrases/Phrases.js +106 -112
  158. package/dist/Editors/Phrases/SpreadsheetEditor/SpreadsheetEditor.js +26 -33
  159. package/dist/Editors/Roleplay/Roleplay.js +131 -139
  160. package/dist/Exercises/Bot/Bot.js +113 -119
  161. package/dist/Exercises/Bot/Bot.test.js +25 -0
  162. package/dist/Exercises/Listener/Listener.js +152 -160
  163. package/dist/Exercises/Listener/Listener.test.js +25 -0
  164. package/dist/Exercises/Pronouncer/Pronouncer.js +145 -153
  165. package/dist/Exercises/Pronouncer/Pronouncer.test.js +23 -0
  166. package/dist/Exercises/Roleplay/Games/ActItOutGame/ActItOutGame.js +59 -66
  167. package/dist/Exercises/Roleplay/Games/ActItOutGame/package.json +6 -6
  168. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/ActItOutGameListening.js +55 -62
  169. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/package.json +6 -6
  170. package/dist/Exercises/Roleplay/Games/ActItOutGameListeningAndSpeaking/ActItOutGame.js +106 -113
  171. package/dist/Exercises/Roleplay/Games/ActItOutGameSpeaking/ActItOutGame.js +107 -114
  172. package/dist/Exercises/Roleplay/Games/BeforeElements.js +15 -22
  173. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInBlanks.js +37 -43
  174. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInTheBlanksGame.js +41 -48
  175. package/dist/Exercises/Roleplay/Games/StoryGame/StoryGame.js +45 -52
  176. package/dist/Exercises/Roleplay/Games/TopBarActions.js +58 -64
  177. package/dist/Exercises/Roleplay/Games/Transition.js +4 -11
  178. package/dist/Exercises/Roleplay/Games/index.js +7 -48
  179. package/dist/Exercises/Roleplay/OriginalRoleplay.js +154 -161
  180. package/dist/Exercises/Roleplay/Roleplay.js +60 -69
  181. package/dist/Exercises/Roleplay/Roleplay.test.js +30 -0
  182. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.js +27 -34
  183. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.test.js +23 -0
  184. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.js +12 -19
  185. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.test.js +23 -0
  186. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.js +28 -35
  187. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.test.js +23 -0
  188. package/dist/Exercises/Translator/Translator.js +162 -170
  189. package/dist/Exercises/Translator/Translator.test.js +29 -0
  190. package/dist/Forms/AppContact/AppContact.js +20 -27
  191. package/dist/Forms/ChipInput/ChipInput.js +6 -14
  192. package/dist/Forms/Contact/Contact.js +54 -61
  193. package/dist/Forms/CreateBot/CreateBot.js +10 -17
  194. package/dist/Forms/CreateBot/CreateBot.test.js +20 -0
  195. package/dist/Forms/CreateBot/Steps/BotInformation/BotInformation.js +100 -106
  196. package/dist/Forms/CreateBot/Steps/BotInformation/__mocks__/react-simplemde-editor.js +3 -9
  197. package/dist/Forms/CreateBot/Steps/BotSettings/BotSettings.js +51 -59
  198. package/dist/Forms/CreateBot/Steps/Confirmation/Confirmation.js +56 -63
  199. package/dist/Forms/CreateBot/Steps/index.js +4 -27
  200. package/dist/Forms/CreateClassroom/CreateClassroom.js +8 -15
  201. package/dist/Forms/CreateClassroom/CreateClassroom.test.js +20 -0
  202. package/dist/Forms/CreateClassroom/Steps/ClassroomInformation/ClassroomInformation.js +31 -39
  203. package/dist/Forms/CreateClassroom/Steps/ClassroomSettings/ClassroomSettings.js +80 -87
  204. package/dist/Forms/CreateClassroom/Steps/Confirmation/Confirmation.js +23 -30
  205. package/dist/Forms/CreateClassroom/Steps/CourseSettings/CourseSettings.js +71 -78
  206. package/dist/Forms/CreateClassroom/Steps/Customization/Customization.js +19 -27
  207. package/dist/Forms/CreateClassroom/Steps/index.js +6 -41
  208. package/dist/Forms/CreateCourse/CreateCourse.js +15 -21
  209. package/dist/Forms/CreateCourse/CreateCourse.test.js +20 -0
  210. package/dist/Forms/CreateCourse/Steps/Confirmation/Confirmation.js +23 -30
  211. package/dist/Forms/CreateCourse/Steps/CourseInformation/CourseInformation.js +33 -41
  212. package/dist/Forms/CreateCourse/Steps/CourseSettings/CourseSettings.js +50 -57
  213. package/dist/Forms/CreateCourse/Steps/Customization/Customization.js +19 -27
  214. package/dist/Forms/CreateCourse/Steps/index.js +5 -34
  215. package/dist/Forms/CreateGroup/CreateGroup.js +9 -16
  216. package/dist/Forms/CreateGroup/CreateGroup.test.js +20 -0
  217. package/dist/Forms/CreateGroup/Steps/Confirmation/Confirmation.js +38 -45
  218. package/dist/Forms/CreateGroup/Steps/GroupInformation/GroupInformation.js +17 -25
  219. package/dist/Forms/CreateGroup/Steps/GroupSettings/GroupSettings.js +23 -30
  220. package/dist/Forms/CreateGroup/Steps/index.js +4 -27
  221. package/dist/Forms/CreateMeetingMultiStepForm/CreateMeetingMultiStepForm.js +9 -17
  222. package/dist/Forms/CreateMeetingMultiStepForm/GroupAssignment.js +79 -82
  223. package/dist/Forms/CreateMeetingMultiStepForm/MeetingForm.js +89 -96
  224. package/dist/Forms/CreateMeetingMultiStepForm/images/input1.js +1 -7
  225. package/dist/Forms/CreateMeetingMultiStepForm/images/input5.js +1 -7
  226. package/dist/Forms/CreateMeetingMultiStepForm/images/mode1.js +1 -7
  227. package/dist/Forms/CreateMeetingMultiStepForm/images/mode2.js +1 -7
  228. package/dist/Forms/CreateMeetingMultiStepForm/sampleTemplates.js +2 -8
  229. package/dist/Forms/CreateRoleplay/CreateRoleplay.js +10 -17
  230. package/dist/Forms/CreateRoleplay/CreateRoleplay.test.js +20 -0
  231. package/dist/Forms/CreateRoleplay/Steps/Confirmation/Confirmation.js +39 -46
  232. package/dist/Forms/CreateRoleplay/Steps/RoleplayInformation/RoleplayInformation.js +61 -69
  233. package/dist/Forms/CreateRoleplay/Steps/RoleplaySettings/RoleplaySettings.js +71 -78
  234. package/dist/Forms/CreateRoleplay/Steps/index.js +4 -27
  235. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.js +10 -17
  236. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.test.js +20 -0
  237. package/dist/Forms/CreateRoleplayHook/Steps/Confirmation/Confirmation.js +40 -47
  238. package/dist/Forms/CreateRoleplayHook/Steps/RoleplayInformation/RoleplayInformation.js +70 -78
  239. package/dist/Forms/CreateRoleplayHook/Steps/RoleplaySettings/RoleplaySettings.js +79 -86
  240. package/dist/Forms/CreateRoleplayHook/Steps/index.js +4 -27
  241. package/dist/Forms/CreateTopic/CreateTopic.js +10 -17
  242. package/dist/Forms/CreateTopic/CreateTopic.test.js +20 -0
  243. package/dist/Forms/CreateTopic/Steps/Confirmation/Confirmation.js +21 -28
  244. package/dist/Forms/CreateTopic/Steps/Customization/Customization.js +19 -27
  245. package/dist/Forms/CreateTopic/Steps/TopicInformation/TopicInformation.js +35 -43
  246. package/dist/Forms/CreateTopic/Steps/TopicSettings/TopicSettings.js +38 -46
  247. package/dist/Forms/CreateTopic/Steps/index.js +4 -27
  248. package/dist/Forms/CreateUser/CreateUser.js +20 -27
  249. package/dist/Forms/DiscussImageSelector/ImageSelector.js +44 -52
  250. package/dist/Forms/DiscussMultiStepFormDialog/MultiStepFormDialog.js +80 -87
  251. package/dist/Forms/FeedbackForm/FeedbackForm.js +160 -168
  252. package/dist/Forms/FeedbackInfo/FeedbackInfo.js +46 -52
  253. package/dist/Forms/ImageSelector/ImageSelector.js +93 -100
  254. package/dist/Forms/InputHelper/InputHelper.js +50 -58
  255. package/dist/Forms/LanguageSelector/LanguageSelector.js +15 -22
  256. package/dist/Forms/LanguageSelector/LanguageSelector.test.js +15 -0
  257. package/dist/Forms/MarkdownEditor/MarkdownEditor.js +13 -20
  258. package/dist/Forms/MarkdownEditor/MarkdownEditor.test.js +35 -0
  259. package/dist/Forms/MultiStepForm/Debug.js +7 -14
  260. package/dist/Forms/MultiStepForm/MultiStepForm.js +61 -68
  261. package/dist/Forms/MultiStepForm/MultiStepForm.test.js +20 -0
  262. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.js +76 -83
  263. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.test.js +20 -0
  264. package/dist/Forms/MultiStepFormHook/MultiStepFormHook.js +63 -71
  265. package/dist/Forms/PdfUploader/PdfUploader.js +49 -56
  266. package/dist/Forms/RecordingInfo/RecordingInfo.js +35 -43
  267. package/dist/Forms/Settings/Settings.js +20 -27
  268. package/dist/Forms/Settings/Tabs/Display/Display.js +26 -33
  269. package/dist/Forms/Settings/Tabs/EmailNotifications/EmailNotifications.js +26 -33
  270. package/dist/Forms/Settings/Tabs/General/General.js +71 -78
  271. package/dist/Forms/Settings/Tabs/Subscription/Subscription.js +61 -68
  272. package/dist/Forms/SortBySelector/SortBySelector.js +15 -22
  273. package/dist/Forms/UpdateBot/UpdateBot.js +43 -50
  274. package/dist/Forms/UpdateBot/UpdateBot.test.js +23 -0
  275. package/dist/Forms/UpdateClassroom/UpdateClassroom.js +63 -69
  276. package/dist/Forms/UpdateClassroom/UpdateClassroom.test.js +20 -0
  277. package/dist/Forms/UpdateCourse/UpdateCourse.js +49 -55
  278. package/dist/Forms/UpdateCourse/UpdateCourse.test.js +20 -0
  279. package/dist/Forms/UpdateGroup/UpdateGroup.js +41 -48
  280. package/dist/Forms/UpdateGroup/UpdateGroup.test.js +25 -0
  281. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.js +43 -50
  282. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.test.js +20 -0
  283. package/dist/Forms/UpdateTopic/UpdateTopic.js +57 -64
  284. package/dist/Forms/UpdateTopic/UpdateTopic.test.js +20 -0
  285. package/dist/Forms/VideoUploader/VideoUploader.js +31 -38
  286. package/dist/Forms/VoiceSelector/VoiceSelector.js +55 -62
  287. package/dist/Forms/VoiceSelector/VoiceSelector.test.js +15 -0
  288. package/dist/Lists/Avatars/Avatars.js +19 -26
  289. package/dist/Lists/Bots/Bots.js +36 -43
  290. package/dist/Lists/Bots/Bots.test.js +24 -0
  291. package/dist/Lists/Categories/Categories.js +24 -31
  292. package/dist/Lists/Categories/Categories.test.js +22 -0
  293. package/dist/Lists/Classrooms/Classrooms.js +26 -33
  294. package/dist/Lists/Classrooms/Classrooms.test.js +30 -0
  295. package/dist/Lists/CourseOutline/CourseOutline.js +261 -267
  296. package/dist/Lists/CourseOutline/CourseOutline.test.js +23 -0
  297. package/dist/Lists/CourseSelection/CourseSelection.js +39 -37
  298. package/dist/Lists/Courses/Courses.js +31 -37
  299. package/dist/Lists/Courses/Courses.test.js +30 -0
  300. package/dist/Lists/ExerciseSelection/ExerciseSelection.js +113 -89
  301. package/dist/Lists/Exercises/Exercises.js +439 -484
  302. package/dist/Lists/Exercises/Exercises.test.js +29 -0
  303. package/dist/Lists/Leaderboard/Leaderboard.js +76 -83
  304. package/dist/Lists/ListElements/index.js +7 -12
  305. package/dist/Lists/Members/Members.js +116 -190
  306. package/dist/Lists/Members/Members.test.js +20 -0
  307. package/dist/Lists/ParseScriptErrors/ParseScriptErrors.js +8 -14
  308. package/dist/Lists/Phrases/Phrases.js +129 -136
  309. package/dist/Lists/Phrases/Phrases.test.js +28 -0
  310. package/dist/Lists/RoleplaySelection/RoleplaySelection.js +41 -48
  311. package/dist/Lists/Roleplays/Roleplays.js +39 -46
  312. package/dist/Lists/Roleplays/Roleplays.test.js +24 -0
  313. package/dist/Lists/Sections/Sections.js +42 -49
  314. package/dist/Lists/Sections/Sections.test.js +20 -0
  315. package/dist/Lists/SpreadsheetGrid/SpreadsheetGrid.js +12 -18
  316. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.js +12 -20
  317. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.test.js +20 -0
  318. package/dist/Lists/Timeline/EventItem.js +37 -44
  319. package/dist/Lists/Timeline/EventList.js +10 -17
  320. package/dist/Lists/Timeline/TimelineLoaded.js +17 -24
  321. package/dist/Lists/Timeline/groupByDay.js +1 -7
  322. package/dist/Lists/TopicPreview/TopicPreview.js +114 -121
  323. package/dist/Lists/Topics/Topics.js +28 -35
  324. package/dist/Lists/Topics/Topics.test.js +21 -0
  325. package/dist/Lists/Voices/Voices.js +65 -72
  326. package/dist/Lists/Voices/Voices.test.js +15 -0
  327. package/dist/Live/Game/Game.js +105 -111
  328. package/dist/Live/GameControls/GameControls.js +12 -18
  329. package/dist/Live/GameMembers/GameMembers.js +53 -60
  330. package/dist/Live/GameQuestionResults/GameQuestionResults.js +17 -23
  331. package/dist/Live/GameSettings/GameSettings.js +51 -57
  332. package/dist/Live/HowToJoin/HowToJoin.js +36 -43
  333. package/dist/Live/LiveListener/LiveListener.js +97 -104
  334. package/dist/Live/LiveRoleplay/LiveStory/LiveStory.js +31 -38
  335. package/dist/Live/LiveTranslator/LiveTranslator.js +115 -122
  336. package/dist/Live/Misc/FinalScoreDrawer/FinalScoreDrawer.js +35 -42
  337. package/dist/Live/Misc/StudentAnswerDrawer/StudentAnswerDrawer.js +30 -37
  338. package/dist/Live/WaitingRoom/WaitingRoom.js +76 -83
  339. package/dist/Misc/AiExperienceIcon/AiExperienceIcon.js +15 -21
  340. package/dist/Misc/AnswerResult/AnswerResult.js +71 -78
  341. package/dist/Misc/AvatarSelector/AvatarSelector.js +35 -42
  342. package/dist/Misc/AvatarSwitcher/AvatarSwitcher.js +34 -41
  343. package/dist/Misc/AxiosRestExample/AxiosRestExample.js +18 -24
  344. package/dist/Misc/AxiosRestExample/AxiosRestPostExample.js +19 -26
  345. package/dist/Misc/CSVUploader/CSVUploader.js +23 -29
  346. package/dist/Misc/ChatBubble/ChatBubble.js +8 -15
  347. package/dist/Misc/ColorLinearProgress/ColorLinearProgress.js +9 -16
  348. package/dist/Misc/ColorSelector/ColorSelector.js +37 -44
  349. package/dist/Misc/CustomChipInput/CustomChipInput.js +73 -81
  350. package/dist/Misc/DefaultColourButton/DefaultColourButton.js +10 -17
  351. package/dist/Misc/DragAndDropPreview/DragAndDropPreview.js +12 -20
  352. package/dist/Misc/EmojiInput/EmojiInput.js +8 -15
  353. package/dist/Misc/ExerciseBottomBar/ExerciseBottomBar.js +13 -20
  354. package/dist/Misc/ExerciseProgressBar/ExerciseProgressBar.js +13 -21
  355. package/dist/Misc/FabContainer/FabContainer.js +6 -13
  356. package/dist/Misc/HideOnScroll/HideOnScroll.js +8 -15
  357. package/dist/Misc/HoverText/HoverText.js +22 -29
  358. package/dist/Misc/HtmlTooltipComponent/HtmlTooltipComponent.js +69 -0
  359. package/dist/Misc/HtmlTooltipComponent/package.json +7 -0
  360. package/dist/Misc/ImageLibrary/ImageLibrary.js +53 -60
  361. package/dist/Misc/ImagePreview/ImagePreview.js +10 -17
  362. package/dist/Misc/InfiniteScroll/InfiniteScroll.js +9 -16
  363. package/dist/Misc/LanguageSelector/LanguageSelector.js +23 -30
  364. package/dist/Misc/MedalSelector/BronzeMedal.js +346 -352
  365. package/dist/Misc/MedalSelector/GoldMedal.js +348 -354
  366. package/dist/Misc/MedalSelector/MedalSelector.js +14 -21
  367. package/dist/Misc/MedalSelector/SilverMedal.js +516 -522
  368. package/dist/Misc/NotFound/Bot.js +16 -23
  369. package/dist/Misc/NotFound/Bots.js +19 -26
  370. package/dist/Misc/NotFound/ClassCourses.js +39 -46
  371. package/dist/Misc/NotFound/Classroom.js +16 -23
  372. package/dist/Misc/NotFound/Classrooms.js +23 -30
  373. package/dist/Misc/NotFound/Course.js +16 -23
  374. package/dist/Misc/NotFound/Courses.js +21 -28
  375. package/dist/Misc/NotFound/Discussions.js +12 -19
  376. package/dist/Misc/NotFound/Members.js +12 -19
  377. package/dist/Misc/NotFound/Roleplay.js +16 -23
  378. package/dist/Misc/NotFound/Roleplays.js +19 -26
  379. package/dist/Misc/NotFound/Script.js +10 -17
  380. package/dist/Misc/NotFound/Sections.js +16 -23
  381. package/dist/Misc/NotFound/Topic.js +16 -23
  382. package/dist/Misc/Notes/Notes.js +20 -28
  383. package/dist/Misc/Notes/Notes.test.js +20 -0
  384. package/dist/Misc/NualaCreating/Nuala1.js +87 -93
  385. package/dist/Misc/NualaCreating/Nuala2.js +114 -120
  386. package/dist/Misc/NualaCreating/Nuala3.js +117 -123
  387. package/dist/Misc/NualaCreating/NualaCreating.js +9 -16
  388. package/dist/Misc/NualangVerifiedIcon/NualangVerifiedIcon.js +7 -14
  389. package/dist/Misc/OnboardingEnrolment/CheckIfCourse.js +8 -15
  390. package/dist/Misc/OnboardingEnrolment/ClassCodeInvalid.js +5 -12
  391. package/dist/Misc/OnboardingEnrolment/ClassroomCodeInvalid.js +5 -12
  392. package/dist/Misc/OnboardingEnrolment/EnrolKey.js +5 -12
  393. package/dist/Misc/Overlay/Overlay.js +17 -24
  394. package/dist/Misc/ProgressiveCardMedia/ProgressiveCardMedia.js +10 -17
  395. package/dist/Misc/PronunciationScore/PronunciationScore.js +18 -25
  396. package/dist/Misc/Recorder/Recorder.js +15 -22
  397. package/dist/Misc/ReportProblem/ReportProblem.js +17 -24
  398. package/dist/Misc/RoleplayChatWaveForm/RoleplayChatWaveForm.js +38 -45
  399. package/dist/Misc/RoleplayWaveform/RoleplayWaveform.js +15 -22
  400. package/dist/Misc/ShareButton/ShareButton.js +14 -21
  401. package/dist/Misc/ShareButton/ShareDrawer.js +61 -68
  402. package/dist/Misc/SignOut/SignOut.js +48 -55
  403. package/dist/Misc/SiteLanguageSelector/SiteLanguageSelector.js +20 -27
  404. package/dist/Misc/Snackbar/Snackbar.js +25 -32
  405. package/dist/Misc/SpeedDial/SpeedDial.js +13 -20
  406. package/dist/Misc/StudentWaitingMessage/StudentWaitingMessage.js +9 -15
  407. package/dist/Misc/SubmitTextField/SubmitTextField.js +16 -23
  408. package/dist/Misc/Testimonials/Testimonials.js +14 -21
  409. package/dist/Misc/ThemeToggle/ThemeToggle.js +15 -22
  410. package/dist/Misc/VoiceSpeed/VoiceSpeed.js +13 -20
  411. package/dist/Misc/WaveFormLite/WaveFormLite.js +22 -29
  412. package/dist/Misc/Waveform/Waveform.js +14 -21
  413. package/dist/Misc/WhatsNew/WhatsNew.js +27 -34
  414. package/dist/Navigation/BottomBar/BottomBar.js +18 -25
  415. package/dist/Navigation/Breadcrumbs/Breadcrumbs.js +22 -29
  416. package/dist/Navigation/Breadcrumbs/Breadcrumbs.test.js +24 -0
  417. package/dist/Navigation/Header/Header.js +24 -31
  418. package/dist/Navigation/Header/Header.test.js +20 -0
  419. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.js +94 -101
  420. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.test.js +23 -0
  421. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.js +54 -61
  422. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.test.js +20 -0
  423. package/dist/Navigation/ResponsiveTabs/ResponsiveTabs.js +75 -84
  424. package/dist/Navigation/ResponsiveTabs/TabContainer.js +9 -16
  425. package/dist/Navigation/_nav.js +47 -54
  426. package/dist/Payments/BillingInfo/BillingInfo.js +10 -19
  427. package/dist/Payments/BillingInfo/BillingInfo.test.js +15 -0
  428. package/dist/Payments/CardDetails/CardDetails.js +12 -19
  429. package/dist/Payments/CardDetails/CardDetails.test.js +22 -0
  430. package/dist/Payments/CardDetails/commonTextFields.js +21 -32
  431. package/dist/Payments/FreeTrial/FreeTrial.js +18 -24
  432. package/dist/Payments/Payment/Payment.js +36 -44
  433. package/dist/Payments/StripeInput/StripeInput.js +6 -12
  434. package/dist/Payments/Subscription/Subscription.js +49 -56
  435. package/dist/Payments/Subscription/commonTextFields.js +16 -27
  436. package/dist/Payments/SubscriptionPayment/Subscription.js +46 -53
  437. package/dist/Screens/Activity/Activity.js +110 -116
  438. package/dist/Screens/Activity/Exercise/Attempt/Attempt.js +187 -193
  439. package/dist/Screens/Activity/Exercise/Exercise.js +118 -125
  440. package/dist/Screens/Bots/Bots.js +55 -60
  441. package/dist/Screens/Bots/SearchBots/SearchBots.js +42 -49
  442. package/dist/Screens/Classrooms/Classrooms.js +36 -43
  443. package/dist/Screens/Classrooms/SearchClassrooms/SearchClassrooms.js +39 -46
  444. package/dist/Screens/Classrooms/ViewClassroom/ViewClassroom.js +291 -283
  445. package/dist/Screens/Courses/Courses.js +27 -34
  446. package/dist/Screens/Courses/SearchCourses/SearchCourses.js +44 -51
  447. package/dist/Screens/Courses/SearchTopic/SearchTopic.js +36 -43
  448. package/dist/Screens/Courses/ViewCourse/ViewCourse.js +200 -204
  449. package/dist/Screens/Courses/ViewCourse/ViewTopic/ViewTopic.js +267 -234
  450. package/dist/Screens/Dashboard/Dashboard.js +65 -73
  451. package/dist/Screens/GenerateAudio/GenerateAudio.js +195 -203
  452. package/dist/Screens/Library/Library.js +22 -29
  453. package/dist/Screens/Onboard/Onboard.js +18 -25
  454. package/dist/Screens/Onboard/Steps/Benefits.js +35 -42
  455. package/dist/Screens/Onboard/Steps/LanguageSelection.js +17 -24
  456. package/dist/Screens/Onboard/Steps/RoleSelection.js +21 -28
  457. package/dist/Screens/Onboard/Steps/index.js +3 -20
  458. package/dist/Screens/Pricing/Pricing.js +29 -38
  459. package/dist/Screens/Profile/Profile.js +148 -155
  460. package/dist/Screens/Roleplays/Roleplays.js +53 -60
  461. package/dist/Screens/Roleplays/SearchRoleplays/SearchRoleplays.js +40 -47
  462. package/dist/Screens/Roleplays/ViewRoleplay/ViewRoleplay.js +21 -28
  463. package/dist/Screens/Search/Search.js +35 -42
  464. package/dist/Tables/Attempt/Attempt.js +79 -86
  465. package/dist/Tables/BotRows/BotRows.js +35 -42
  466. package/dist/Tables/Bots/Bots.js +65 -72
  467. package/dist/Tables/Chart/Chart.js +14 -20
  468. package/dist/Tables/ClassroomRows/ClassroomRows.js +43 -50
  469. package/dist/Tables/Classrooms/Classrooms.js +65 -72
  470. package/dist/Tables/CourseRows/CourseRows.js +63 -70
  471. package/dist/Tables/Courses/Courses.js +65 -72
  472. package/dist/Tables/Courses/Courses.test.js +29 -0
  473. package/dist/Tables/CreatedDiscussionsTable/CreatedDiscussionsTable.js +58 -65
  474. package/dist/Tables/GameRows/GameRows.js +18 -25
  475. package/dist/Tables/Games/Games.js +51 -58
  476. package/dist/Tables/MeetingPrompstList/MeetingPromptsList.js +78 -83
  477. package/dist/Tables/Phrases/Phrases.js +34 -41
  478. package/dist/Tables/Phrases/Phrases.test.js +20 -0
  479. package/dist/Tables/Plans/Plans.js +21 -28
  480. package/dist/Tables/Progress/Progress.js +127 -133
  481. package/dist/Tables/Progress/ProgressList.js +169 -176
  482. package/dist/Tables/Progress/ProgressTable.js +317 -251
  483. package/dist/Tables/Progress/SelectMembers.js +20 -27
  484. package/dist/Tables/Progress/utils.js +7 -15
  485. package/dist/Tables/RecordingListCards/RecordingListCards.js +59 -66
  486. package/dist/Tables/RoleplayRows/RoleplayRows.js +35 -42
  487. package/dist/Tables/Roleplays/Roleplays.js +65 -72
  488. package/dist/Tables/ScheduleListCards/ScheduleListCards.js +62 -70
  489. package/dist/Tables/SubmissionsTableCards/SubmissionsTableCards.js +66 -74
  490. package/dist/Tables/TrialUsers/TrialUsers.js +40 -47
  491. package/dist/Tables/Unanswered/Unanswered.js +28 -34
  492. package/dist/Tables/User/UserTable.js +47 -54
  493. package/dist/Tables/Users/UsersTable.js +47 -54
  494. package/dist/config.js +60 -66
  495. package/dist/hooks/handleBotVarsDownload.js +3 -10
  496. package/dist/hooks/handleScriptDownload.js +4 -12
  497. package/dist/hooks/useClassroomState.js +13 -18
  498. package/dist/hooks/useClassroomStateOld.js +6 -12
  499. package/dist/hooks/useConfirm.js +3 -10
  500. package/dist/hooks/useCourseState.js +10 -16
  501. package/dist/hooks/useCourseStateOld.js +8 -14
  502. package/dist/hooks/useDebounce.js +4 -10
  503. package/dist/hooks/useExerciseDocumentTitle.js +3 -9
  504. package/dist/hooks/useExerciseState.js +143 -150
  505. package/dist/hooks/useListScroll.js +7 -13
  506. package/dist/hooks/usePhraseNameDialog.js +3 -10
  507. package/dist/hooks/useProgressiveImg.js +4 -11
  508. package/dist/hooks/useRecognition.js +34 -41
  509. package/dist/hooks/useSpreadsheetState.js +6 -11
  510. package/dist/hooks/useWordBankFocus.js +11 -17
  511. package/dist/icons/AccountBalanceOff.js +3 -9
  512. package/dist/icons/KeyBoardOffDark.js +5 -11
  513. package/dist/icons/KeyBoardOffLight.js +5 -11
  514. package/dist/img/0-nuala-001.svg +34 -34
  515. package/dist/img/1-teacher-001.svg +38 -38
  516. package/dist/img/AudioNuala.svg +165 -165
  517. package/dist/img/Bronze Medal.svg +545 -545
  518. package/dist/img/Bronze.svg +349 -349
  519. package/dist/img/BronzeBadge.svg +493 -493
  520. package/dist/img/BronzeBadgeWithoutRibbon.svg +317 -317
  521. package/dist/img/Frame 51.svg +98 -98
  522. package/dist/img/Frame 52.svg +131 -131
  523. package/dist/img/Frame 53.svg +139 -139
  524. package/dist/img/Gold Badge.svg +362 -362
  525. package/dist/img/Gold Medal.svg +481 -481
  526. package/dist/img/GoldBadge.svg +470 -470
  527. package/dist/img/GoldBadgeWithoutRibbon.svg +324 -324
  528. package/dist/img/NewText.svg +5 -5
  529. package/dist/img/NualaCreateImage.svg +129 -129
  530. package/dist/img/NualangLiveAnswerQuickly.svg +103 -103
  531. package/dist/img/NualangLiveAnwerQuicklyListening.svg +3607 -3607
  532. package/dist/img/NualangLiveListen.svg +42 -42
  533. package/dist/img/NualangLiveListenToPhrase.svg +4285 -4285
  534. package/dist/img/NualangLivePickAnswer.svg +134 -134
  535. package/dist/img/NualangLiveResult.svg +1235 -1235
  536. package/dist/img/NualangLiveRoleplayAnswer.svg +334 -334
  537. package/dist/img/NualangLiveRoleplayConvo.svg +282 -282
  538. package/dist/img/NualangLiveSeePlace.svg +134 -134
  539. package/dist/img/NualangLiveTranslate.svg +54 -54
  540. package/dist/img/NualangLiveTranslateQuickly.svg +197 -197
  541. package/dist/img/NualangLiveViewConversations.svg +135 -135
  542. package/dist/img/Polly.svg +17 -17
  543. package/dist/img/Silver Badge.svg +523 -523
  544. package/dist/img/Silver Medal.svg +549 -549
  545. package/dist/img/SilverBadge.svg +655 -655
  546. package/dist/img/SilverBadgeWithoutRibbon.svg +491 -491
  547. package/dist/img/avatars/0-nuala-001.svg +34 -34
  548. package/dist/img/avatars/0-nuala-002.svg +25 -25
  549. package/dist/img/avatars/0-nuala-003.svg +27 -27
  550. package/dist/img/avatars/0-nuala-004.svg +41 -41
  551. package/dist/img/avatars/0-nuala-005.svg +33 -33
  552. package/dist/img/avatars/0-nuala-006.svg +32 -32
  553. package/dist/img/avatars/0-nuala-007.svg +37 -37
  554. package/dist/img/avatars/0-nuala-008.svg +21 -21
  555. package/dist/img/avatars/0-nuala-009.svg +21 -21
  556. package/dist/img/avatars/0-nuala-010.svg +39 -39
  557. package/dist/img/avatars/0-nuala-011.svg +33 -33
  558. package/dist/img/avatars/0-nuala-012.svg +43 -43
  559. package/dist/img/avatars/0-nuala-013.svg +36 -36
  560. package/dist/img/avatars/0-nuala-014.svg +30 -30
  561. package/dist/img/avatars/0-nuala-015.svg +28 -28
  562. package/dist/img/avatars/0-nuala-016.svg +24 -24
  563. package/dist/img/avatars/0-nuala-017.svg +31 -31
  564. package/dist/img/avatars/0-nuala-018.svg +29 -29
  565. package/dist/img/avatars/0-nuala-019.svg +57 -57
  566. package/dist/img/avatars/0-nuala-020.svg +30 -30
  567. package/dist/img/avatars/0-nuala-021.svg +28 -28
  568. package/dist/img/avatars/1-teacher-001.svg +38 -38
  569. package/dist/img/avatars/1-teacher-002.svg +52 -52
  570. package/dist/img/avatars/1-teacher-003.svg +86 -86
  571. package/dist/img/avatars/nuala_10_celebrating.svg +44 -44
  572. package/dist/img/avatars/nuala_10_speaking.svg +45 -45
  573. package/dist/img/avatars/nuala_11_celebrating.svg +38 -38
  574. package/dist/img/avatars/nuala_11_speaking.svg +41 -41
  575. package/dist/img/avatars/nuala_12_celebrating.svg +48 -48
  576. package/dist/img/avatars/nuala_12_speaking.svg +49 -49
  577. package/dist/img/avatars/nuala_13_celebrating.svg +41 -41
  578. package/dist/img/avatars/nuala_13_speaking.svg +44 -44
  579. package/dist/img/avatars/nuala_14_celebrating.svg +35 -35
  580. package/dist/img/avatars/nuala_14_speaking.svg +36 -36
  581. package/dist/img/avatars/nuala_15_celebrating.svg +33 -33
  582. package/dist/img/avatars/nuala_15_speaking.svg +36 -36
  583. package/dist/img/avatars/nuala_16_celebrating.svg +29 -29
  584. package/dist/img/avatars/nuala_16_speaking.svg +32 -32
  585. package/dist/img/avatars/nuala_17_celebrating.svg +36 -36
  586. package/dist/img/avatars/nuala_17_speaking.svg +39 -39
  587. package/dist/img/avatars/nuala_18_celebrating.svg +34 -34
  588. package/dist/img/avatars/nuala_18_speaking.svg +37 -37
  589. package/dist/img/avatars/nuala_19_celebrating.svg +62 -62
  590. package/dist/img/avatars/nuala_19_speaking.svg +65 -65
  591. package/dist/img/avatars/nuala_1_celebrating.svg +30 -30
  592. package/dist/img/avatars/nuala_1_speaking.svg +37 -37
  593. package/dist/img/avatars/nuala_20_celebrating.svg +35 -35
  594. package/dist/img/avatars/nuala_20_speaking.svg +38 -38
  595. package/dist/img/avatars/nuala_21_celebrating.svg +33 -33
  596. package/dist/img/avatars/nuala_21_speaking.svg +36 -36
  597. package/dist/img/avatars/nuala_2_celebrating.svg +21 -21
  598. package/dist/img/avatars/nuala_2_speaking.svg +29 -29
  599. package/dist/img/avatars/nuala_3_celebrating.svg +20 -20
  600. package/dist/img/avatars/nuala_3_speaking.svg +28 -28
  601. package/dist/img/avatars/nuala_4_celebrating.svg +33 -33
  602. package/dist/img/avatars/nuala_4_speaking.svg +41 -41
  603. package/dist/img/avatars/nuala_5_celebrating.svg +30 -30
  604. package/dist/img/avatars/nuala_5_speaking.svg +36 -36
  605. package/dist/img/avatars/nuala_6_celebrating.svg +37 -37
  606. package/dist/img/avatars/nuala_6_speaking.svg +36 -36
  607. package/dist/img/avatars/nuala_7_celebrating.svg +42 -42
  608. package/dist/img/avatars/nuala_7_speaking.svg +43 -43
  609. package/dist/img/avatars/nuala_8_celebrating.svg +26 -26
  610. package/dist/img/avatars/nuala_8_speaking.svg +29 -29
  611. package/dist/img/avatars/nuala_9_celebrating.svg +26 -26
  612. package/dist/img/avatars/nuala_9_speaking.svg +27 -27
  613. package/dist/img/aws.svg +5 -5
  614. package/dist/img/azure.svg +9 -9
  615. package/dist/img/bot-error.svg +28 -28
  616. package/dist/img/bot_nuala.svg +45 -45
  617. package/dist/img/classroom.svg +178 -178
  618. package/dist/img/course.svg +113 -113
  619. package/dist/img/dashboard.svg +103 -103
  620. package/dist/img/nuala_1_celebrating.svg +33 -33
  621. package/dist/img/nuala_2_celebrating.svg +20 -20
  622. package/dist/img/nuala_3_celebrating.svg +21 -21
  623. package/dist/img/nuala_4_celebrating.svg +30 -30
  624. package/dist/img/nuala_5_celebrating.svg +30 -30
  625. package/dist/img/nuala_celebrating.svg +39 -39
  626. package/dist/img/nuala_sign_in.svg +62 -62
  627. package/dist/img/nuala_speaking.svg +41 -41
  628. package/dist/img/nuala_speaking_2.svg +41 -41
  629. package/dist/img/nuala_speaking_3.svg +41 -41
  630. package/dist/img/nuala_speaking_4.svg +41 -41
  631. package/dist/img/nualang-logo-primary.svg +17 -17
  632. package/dist/img/nualangSquareIcon.svg +18 -18
  633. package/dist/img/nualas.svg +185 -185
  634. package/dist/img/sentiment_dissatisfied_24px.svg +3 -3
  635. package/dist/img/sentiment_satisfied_24px.svg +3 -3
  636. package/dist/img/sentiment_very_satisfied_24px.svg +3 -3
  637. package/dist/img/stars1.svg +44 -44
  638. package/dist/img/stars2.svg +30 -30
  639. package/dist/img/structuring.svg +76 -76
  640. package/dist/img/teacher-create-2.svg +81 -81
  641. package/dist/img/teacher-create.svg +49 -49
  642. package/dist/img/teacher-world.svg +271 -271
  643. package/dist/img/teacher.svg +89 -89
  644. package/dist/img/world.svg +41 -41
  645. package/dist/index.js +2 -12
  646. package/dist/logger.js +3 -10
  647. package/dist/utils/Styles.js +4 -10
  648. package/dist/utils/canvasUtils.js +1 -7
  649. package/dist/utils/constants.js +2 -8
  650. package/dist/utils/dragAndDrop/dragAndDrop.js +48 -60
  651. package/dist/utils/index.js +55 -102
  652. package/dist/utils/placeholder-images/index.js +2 -8
  653. package/dist/utils/voiceImages.js +1 -7
  654. package/package.json +178 -190
package/README.md CHANGED
@@ -1,65 +1,65 @@
1
- # Nualang ui-components
2
- This is the ui-components repository for the Nualang product. The components
3
- are developed, reviewed and tested with storybook and a library is then published
4
- to `npm` and consumed from there by nualang web apps.
5
-
6
- ## Getting Started
7
- Clone this repository and then execute `npm install`. `npm start` will start
8
- [stoybook](https://storybook.js.org) and allow you to brrowse the available components.
9
-
10
- ## Develop
11
- ```
12
- npm start
13
- ```
14
-
15
- ## Create Local Package
16
- Compile and pack (This will create a '.tgz' file):
17
- ```
18
- npm run localpack
19
- ```
20
-
21
- Install package (Inside webapp):
22
- ```
23
- npm i ../ui-components/fathomtech-nualang-ui-components-0.1.XXX.tgz
24
- ```
25
-
26
- If webapp is caching previous versions (Add a character to the end of the .tgz, e.g 'a') and install again:
27
- ```
28
- yarn add ../ui-components/fathomtech-nualang-ui-components-0.1.XXXa.tgz
29
- ```
30
-
31
- ## Publish to npm
32
- Make sure that the version number has been updayed in package.json.
33
- Ensure that you have committed the latest version to git.
34
- Execute:-
35
- ```bash
36
- npm run postversion
37
- ```
38
- npm will complain if you try to re-publish a previously used version number.
39
-
40
-
41
- ## Additional Scripts
42
- In the project directory, you can run:
43
-
44
- ### `npm run storybook`
45
- Runs the app in the development mode.<br />
46
- Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
47
-
48
- The page will reload if you make edits.<br />
49
- You should also see any lint errors in the console.
50
-
51
- ### `npm run test`
52
- Launches the test runner in interactive watch mode.<br />
53
- See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
54
-
55
- ### `npm run lint`
56
- Check for any lint errors or warnings.
57
-
58
- ### `npm run compile`
59
- Run the babel compiler to compile es6 to js.
60
-
61
- ### `npm run postversion`
62
- Publish a new version of the pacakage to npm. npm will complain
63
-
64
- ### `npm run chromatic`
1
+ # Nualang ui-components
2
+ This is the ui-components repository for the Nualang product. The components
3
+ are developed, reviewed and tested with storybook and a library is then published
4
+ to `npm` and consumed from there by nualang web apps.
5
+
6
+ ## Getting Started
7
+ Clone this repository and then execute `npm install`. `npm start` will start
8
+ [stoybook](https://storybook.js.org) and allow you to brrowse the available components.
9
+
10
+ ## Develop
11
+ ```
12
+ npm start
13
+ ```
14
+
15
+ ## Create Local Package
16
+ Compile and pack (This will create a '.tgz' file):
17
+ ```
18
+ npm run localpack
19
+ ```
20
+
21
+ Install package (Inside webapp):
22
+ ```
23
+ npm i ../ui-components/fathomtech-nualang-ui-components-0.1.XXX.tgz
24
+ ```
25
+
26
+ If webapp is caching previous versions (Add a character to the end of the .tgz, e.g 'a') and install again:
27
+ ```
28
+ yarn add ../ui-components/fathomtech-nualang-ui-components-0.1.XXXa.tgz
29
+ ```
30
+
31
+ ## Publish to npm
32
+ Make sure that the version number has been updayed in package.json.
33
+ Ensure that you have committed the latest version to git.
34
+ Execute:-
35
+ ```bash
36
+ npm run postversion
37
+ ```
38
+ npm will complain if you try to re-publish a previously used version number.
39
+
40
+
41
+ ## Additional Scripts
42
+ In the project directory, you can run:
43
+
44
+ ### `npm run storybook`
45
+ Runs the app in the development mode.<br />
46
+ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
47
+
48
+ The page will reload if you make edits.<br />
49
+ You should also see any lint errors in the console.
50
+
51
+ ### `npm run test`
52
+ Launches the test runner in interactive watch mode.<br />
53
+ See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
54
+
55
+ ### `npm run lint`
56
+ Check for any lint errors or warnings.
57
+
58
+ ### `npm run compile`
59
+ Run the babel compiler to compile es6 to js.
60
+
61
+ ### `npm run postversion`
62
+ Publish a new version of the pacakage to npm. npm will complain
63
+
64
+ ### `npm run chromatic`
65
65
  Publish a new version of the pacakage to https://www.chromatic.com/
@@ -1,41 +1,34 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.InProgressBadge = InProgressBadge;
7
- exports.ProgressBadge = ProgressBadge;
8
- exports.default = void 0;
9
- var _react = require("react");
10
- var _material = require("@mui/material");
11
- var _Clear = _interopRequireDefault(require("@mui/icons-material/Clear"));
12
- var _iconsMaterial = require("@mui/icons-material");
13
- var _reactRouterDom = require("react-router-dom");
14
- var _jsxRuntime = require("react/jsx-runtime");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import { useState, useEffect, Fragment } from "react";
2
+ import { Box, ListItemText, ListItemButton, Avatar, Checkbox, ListItemIcon, Badge, IconButton, Chip, Typography } from "@mui/material";
3
+ import ClearIcon from "@mui/icons-material/Clear";
4
+ import { Done, Timelapse } from "@mui/icons-material";
5
+ import { useNavigate, useParams } from "react-router-dom";
6
+ import Tooltip, { tooltipClasses } from "@mui/material/Tooltip";
7
+ import { styled } from "@mui/material/styles";
8
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
16
9
  const sxGreenColor = theme => ({
17
10
  color: theme.palette.success ? theme.palette.success.dark : ""
18
11
  });
19
12
  const sxInfoColor = theme => ({
20
13
  color: theme.palette.info ? theme.palette.info.main : ""
21
14
  });
22
- function ProgressBadge({
15
+ export function ProgressBadge({
23
16
  completions
24
17
  }) {
25
- return completions > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Badge, {
18
+ return completions > 0 ? /*#__PURE__*/_jsx(Badge, {
26
19
  sx: sxGreenColor,
27
20
  badgeContent: completions,
28
21
  color: "default",
29
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.Done, {})
22
+ children: /*#__PURE__*/_jsx(Done, {})
30
23
  }) : null;
31
24
  }
32
- function InProgressBadge({
25
+ export function InProgressBadge({
33
26
  progressCount
34
27
  }) {
35
- return progressCount > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Badge, {
28
+ return progressCount > 0 ? /*#__PURE__*/_jsx(Badge, {
36
29
  sx: sxInfoColor,
37
30
  color: "default",
38
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.Timelapse, {})
31
+ children: /*#__PURE__*/_jsx(Timelapse, {})
39
32
  }) : null;
40
33
  }
41
34
  function Bot({
@@ -53,10 +46,11 @@ function Bot({
53
46
  topicProgress,
54
47
  isCreator,
55
48
  handleRemoveExercise,
56
- isPreview
49
+ isPreview,
50
+ isCreateMode
57
51
  }) {
58
- const navigate = (0, _reactRouterDom.useNavigate)();
59
- const params = (0, _reactRouterDom.useParams)();
52
+ const navigate = useNavigate();
53
+ const params = useParams();
60
54
  const {
61
55
  classroomId
62
56
  } = params;
@@ -73,9 +67,9 @@ function Bot({
73
67
  localStorage.setItem("lastClickedExercise", JSON.stringify(lastClickedExercise));
74
68
  navigate(`/classrooms/${classroomId}/${courseId}/${sectionId}/${topicId}/bots/${bot?.botId}?assignmentId=${assignment.assignmentId}`);
75
69
  };
76
- const [open, setOpen] = (0, _react.useState)(lastClickedBotId === bot.botId && lastClickedAssignmentId === assignment.assignmentId);
77
- const [isSelected, setIsSelected] = (0, _react.useState)(false);
78
- (0, _react.useEffect)(() => {
70
+ const [open, setOpen] = useState(lastClickedBotId === bot.botId && lastClickedAssignmentId === assignment.assignmentId);
71
+ const [isSelected, setIsSelected] = useState(false);
72
+ useEffect(() => {
79
73
  // Check if this exercise is selected
80
74
  const exerciseSelected = selectedExercises?.some(exercise => exercise.botId === bot.botId);
81
75
  setIsSelected(exerciseSelected);
@@ -99,9 +93,56 @@ function Bot({
99
93
  const progress = topicProgress?.filter(progress => progress.botId === bot.botId && progress.existingMessages && progress.existingMessages !== null);
100
94
  return progress?.length || 0;
101
95
  };
102
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
103
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
104
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ListItemButton, {
96
+ const ChallengeModeHtmlTooltip = styled(({
97
+ className,
98
+ ...props
99
+ }) => /*#__PURE__*/_jsx(Tooltip, {
100
+ ...props,
101
+ classes: {
102
+ popper: className
103
+ },
104
+ title: /*#__PURE__*/_jsxs(Fragment, {
105
+ children: [/*#__PURE__*/_jsx("div", {
106
+ style: {
107
+ fontWeight: "bold",
108
+ marginBottom: "8px"
109
+ },
110
+ children: t("challenge_bot")
111
+ }), /*#__PURE__*/_jsx("div", {
112
+ style: {
113
+ marginBottom: "8px"
114
+ },
115
+ children: t("challenge_bot_desc")
116
+ }), /*#__PURE__*/_jsx("div", {
117
+ style: {
118
+ fontSize: "12px"
119
+ },
120
+ children: t("freely_changed")
121
+ })]
122
+ })
123
+ }))(({
124
+ theme
125
+ }) => ({
126
+ [`& .${tooltipClasses.tooltip}`]: {
127
+ padding: theme.spacing(2),
128
+ backgroundColor: theme.palette.background.paper,
129
+ color: theme.palette.text.primary,
130
+ fontSize: theme.typography.pxToRem(12),
131
+ border: `1px solid ${theme.palette.divider}`
132
+ },
133
+ [`& ul`]: {
134
+ listStyleType: "disc",
135
+ paddingLeft: theme.spacing(2),
136
+ margin: 0
137
+ },
138
+ [`& li`]: {
139
+ display: "list-item",
140
+ marginBottom: theme.spacing(0.5)
141
+ }
142
+ }));
143
+ return /*#__PURE__*/_jsx("div", {
144
+ children: /*#__PURE__*/_jsx("div", {
145
+ children: /*#__PURE__*/_jsxs(ListItemButton, {
105
146
  onClick: () => {
106
147
  if (useCase === "assignment-start") {
107
148
  addSearchParams();
@@ -119,23 +160,52 @@ function Bot({
119
160
  },
120
161
  marginLeft: "60px"
121
162
  },
122
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
163
+ children: [/*#__PURE__*/_jsxs(Box, {
123
164
  display: "flex",
124
165
  alignItems: "center",
125
166
  width: {
126
167
  xs: "100%",
127
168
  sm: "85%"
128
169
  },
129
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Avatar, {
170
+ children: [/*#__PURE__*/_jsx(Avatar, {
130
171
  src: bot.picture
131
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemText, {
132
- primary: bot.botName,
133
- secondary: bot.description,
172
+ }), /*#__PURE__*/_jsx(ListItemText, {
134
173
  sx: {
135
174
  marginLeft: 2
136
- }
175
+ },
176
+ primary: /*#__PURE__*/_jsxs(Box, {
177
+ display: "flex",
178
+ alignItems: "center",
179
+ gap: 1,
180
+ children: [/*#__PURE__*/_jsx(Typography, {
181
+ variant: "body1",
182
+ children: bot.botName
183
+ }), bot?.isChallengeBot && /*#__PURE__*/_jsx(_Fragment, {
184
+ children: isCreator || isCreateMode ? /*#__PURE__*/_jsx(ChallengeModeHtmlTooltip, {
185
+ placement: "right",
186
+ children: /*#__PURE__*/_jsx(Chip, {
187
+ label: t("challenge_bot"),
188
+ size: "small",
189
+ variant: "outlined",
190
+ color: "primary",
191
+ sx: {
192
+ fontWeight: "normal"
193
+ }
194
+ })
195
+ }) : /*#__PURE__*/_jsx(Chip, {
196
+ label: t("challenge_bot"),
197
+ size: "small",
198
+ variant: "outlined",
199
+ color: "primary",
200
+ sx: {
201
+ fontWeight: "normal"
202
+ }
203
+ })
204
+ })]
205
+ }),
206
+ secondary: bot.description
137
207
  })]
138
- }), useCase === "assignment-select" && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Checkbox, {
208
+ }), useCase === "assignment-select" && /*#__PURE__*/_jsx(Checkbox, {
139
209
  sx: {
140
210
  marginRight: "15px"
141
211
  },
@@ -144,8 +214,8 @@ function Bot({
144
214
  e.stopPropagation();
145
215
  handleClick();
146
216
  }
147
- }), useCase === "assignment-view" && isPreview && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.ListItemIcon, {
148
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.IconButton, {
217
+ }), useCase === "assignment-view" && isPreview && /*#__PURE__*/_jsx(ListItemIcon, {
218
+ children: /*#__PURE__*/_jsx(IconButton, {
149
219
  edge: "end",
150
220
  "aria-label": "remove-bot",
151
221
  onClick: e => {
@@ -155,14 +225,14 @@ function Bot({
155
225
  handleRemoveExercise(exerciseToRemove);
156
226
  }
157
227
  },
158
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Clear.default, {
228
+ children: /*#__PURE__*/_jsx(ClearIcon, {
159
229
  fontSize: "small"
160
230
  })
161
231
  })
162
- }), useCase === "assignment-start" && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.ListItemIcon, {
163
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(InProgressBadge, {
232
+ }), useCase === "assignment-start" && /*#__PURE__*/_jsxs(ListItemIcon, {
233
+ children: [/*#__PURE__*/_jsx(InProgressBadge, {
164
234
  progressCount: getBotProgress()
165
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ProgressBadge, {
235
+ }), /*#__PURE__*/_jsx(ProgressBadge, {
166
236
  completions: getBotCompletion()
167
237
  })]
168
238
  })]
@@ -183,10 +253,19 @@ function AssignmentBotSelection({
183
253
  memberCourseCompletions,
184
254
  topicProgress,
185
255
  handleRemoveExercise,
186
- isPreview
256
+ isPreview,
257
+ isChallengeModeStudent,
258
+ isCreator
187
259
  }) {
188
- const filteredBots = useCase === "assignment-view" ? bots.filter(bot => selectedExercises.some(ex => ex.botId === bot.botId && ex.courseSectionTopicId === courseSectionTopicId)) : bots;
189
- return filteredBots.map((bot, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Bot, {
260
+ const isCreateMode = location.pathname.includes("/assignments/create");
261
+ const visibleBots = bots.filter(bot => {
262
+ if (bot.isChallengeBot) {
263
+ return isCreateMode || isCreator || isChallengeModeStudent;
264
+ }
265
+ return true;
266
+ });
267
+ const filteredBots = useCase === "assignment-view" || useCase === "assignment-start" ? visibleBots.filter(bot => selectedExercises.some(ex => ex.botId === bot.botId && ex.courseSectionTopicId === courseSectionTopicId)) : visibleBots;
268
+ return filteredBots.map((bot, index) => /*#__PURE__*/_jsx(Bot, {
190
269
  bot: bot,
191
270
  courseSectionTopicId: courseSectionTopicId,
192
271
  t: t,
@@ -199,7 +278,10 @@ function AssignmentBotSelection({
199
278
  memberCourseCompletions: memberCourseCompletions,
200
279
  topicProgress: topicProgress,
201
280
  handleRemoveExercise: handleRemoveExercise,
202
- isPreview: isPreview
281
+ isPreview: isPreview,
282
+ isChallengeModeStudent: isChallengeModeStudent,
283
+ isCreator: isCreator,
284
+ isCreateMode: isCreateMode
203
285
  }, index));
204
286
  }
205
- var _default = exports.default = AssignmentBotSelection;
287
+ export default AssignmentBotSelection;
@@ -1,20 +1,14 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = AssignmentCard;
7
- var _react = require("react");
8
- var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
9
- var _material = require("@mui/material");
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _AssignmentExerciseSelector = _interopRequireDefault(require("../AssignmentExerciseSelector/AssignmentExerciseSelector"));
12
- var _Queries = require("@nualang/nualang-api-and-queries/Queries");
13
- var _useConfirm = _interopRequireDefault(require("../../hooks/useConfirm"));
14
- var _iconsMaterial = require("@mui/icons-material");
15
- var _jsxRuntime = require("react/jsx-runtime");
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- function AssignmentCard({
1
+ import { useMemo } from "react";
2
+ import Typography from "@mui/material/Typography";
3
+ import { Card, CardContent, Grid, Box, Divider, Button, LinearProgress, IconButton, Tooltip } from "@mui/material";
4
+ import PropTypes from "prop-types";
5
+ import AssignmentExerciseSelector from "../AssignmentExerciseSelector/AssignmentExerciseSelector";
6
+ import { courses as courseQuerys, ReactQuery } from "@nualang/nualang-api-and-queries/Queries";
7
+ import useConfirm from "../../hooks/useConfirm";
8
+ import { Delete } from "@mui/icons-material";
9
+ import { Edit } from "@mui/icons-material";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export default function AssignmentCard({
18
12
  t = text => text,
19
13
  index = 0,
20
14
  assignment,
@@ -33,12 +27,13 @@ function AssignmentCard({
33
27
  lastClickedExerciseId,
34
28
  handleViewProgress,
35
29
  lastAssignmentFetch,
36
- assignedStudents = []
30
+ assignedStudents = [],
31
+ isChallengeModeStudent
37
32
  }) {
38
- const [confirm] = (0, _useConfirm.default)(t);
33
+ const [confirm] = useConfirm(t);
39
34
  const {
40
35
  useQuery
41
- } = _Queries.ReactQuery;
36
+ } = ReactQuery;
42
37
  const handleDeleteAssignment = async (classroomId, assignmentId) => {
43
38
  const confirmed = await confirm(t("delete_assignment"), t("delete_assignment_confirmation"));
44
39
  if (confirmed) {
@@ -73,7 +68,7 @@ function AssignmentCard({
73
68
  };
74
69
  const {
75
70
  uniqueCourses
76
- } = (0, _react.useMemo)(() => {
71
+ } = useMemo(() => {
77
72
  const courses = new Set();
78
73
  assignment?.exercises?.forEach(({
79
74
  courseSectionTopicId,
@@ -88,7 +83,7 @@ function AssignmentCard({
88
83
  uniqueCourses: [...courses]
89
84
  };
90
85
  }, [assignment?.exercises]);
91
- const coursesQuery = _Queries.courses.useCourses(async filters => {
86
+ const coursesQuery = courseQuerys.useCourses(async filters => {
92
87
  const response = await getCourses(filters);
93
88
  return response;
94
89
  }, {
@@ -98,7 +93,7 @@ function AssignmentCard({
98
93
  }, {
99
94
  enabled: !!uniqueCourses?.length
100
95
  });
101
- const courses = (0, _react.useMemo)(() => coursesQuery.isSuccess && Array.isArray(coursesQuery.data.Items) && coursesQuery.data.Items.length ? coursesQuery.data.Items : [], [coursesQuery.data, coursesQuery.isSuccess]);
96
+ const courses = useMemo(() => coursesQuery.isSuccess && Array.isArray(coursesQuery.data.Items) && coursesQuery.data.Items.length ? coursesQuery.data.Items : [], [coursesQuery.data, coursesQuery.isSuccess]);
102
97
  assignment = {
103
98
  ...assignment,
104
99
  courses
@@ -111,35 +106,35 @@ function AssignmentCard({
111
106
  },
112
107
  staleTime: 500000
113
108
  });
114
- const memberCourseCompletions = (0, _react.useMemo)(() => memberCourseCompletionsQuery.isSuccess && memberCourseCompletionsQuery.data ? memberCourseCompletionsQuery.data : {}, [memberCourseCompletionsQuery.data, memberCourseCompletionsQuery.isSuccess]);
109
+ const memberCourseCompletions = useMemo(() => memberCourseCompletionsQuery.isSuccess && memberCourseCompletionsQuery.data ? memberCourseCompletionsQuery.data : {}, [memberCourseCompletionsQuery.data, memberCourseCompletionsQuery.isSuccess]);
115
110
  const lastFetch = lastAssignmentFetch?.current[assignment?.classroomId] || 0;
116
111
  const isNew = assignment?.updatedAt > lastFetch && !isCreator;
117
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Card, {
112
+ return /*#__PURE__*/_jsx(Card, {
118
113
  sx: {
119
114
  display: "flex",
120
115
  marginBottom: 2,
121
116
  boxShadow: 3
122
117
  },
123
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.CardContent, {
118
+ children: /*#__PURE__*/_jsxs(CardContent, {
124
119
  sx: {
125
120
  flexGrow: 1
126
121
  },
127
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, {
122
+ children: [/*#__PURE__*/_jsxs(Grid, {
128
123
  container: true,
129
124
  spacing: 2,
130
125
  alignItems: "center",
131
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
126
+ children: [/*#__PURE__*/_jsx(Grid, {
132
127
  size: "grow",
133
128
  flexDirection: "column",
134
129
  display: "flex",
135
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
130
+ children: /*#__PURE__*/_jsxs(Box, {
136
131
  display: "flex",
137
132
  alignItems: "center",
138
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
133
+ children: [/*#__PURE__*/_jsx(Typography, {
139
134
  variant: "body1",
140
135
  component: "div",
141
136
  children: assignment.title
142
- }), isNew && /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
137
+ }), isNew && /*#__PURE__*/_jsx(Box, {
143
138
  ml: 2,
144
139
  px: 1,
145
140
  py: 0.25,
@@ -151,52 +146,52 @@ function AssignmentCard({
151
146
  children: t("NEW")
152
147
  })]
153
148
  })
154
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
155
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
149
+ }), /*#__PURE__*/_jsx(Grid, {
150
+ children: /*#__PURE__*/_jsx(Typography, {
156
151
  variant: "button",
157
152
  color: "text.secondary",
158
153
  children: calculateDaysUntilDue(assignment.dueDate, assignment.scheduleDate, t)
159
154
  })
160
- }), isCreator && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, {
161
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
155
+ }), isCreator && /*#__PURE__*/_jsxs(Grid, {
156
+ children: [/*#__PURE__*/_jsx(Tooltip, {
162
157
  title: t("edit"),
163
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.IconButton, {
158
+ children: /*#__PURE__*/_jsxs(IconButton, {
164
159
  "data-cy": `edit-assignment-${index}`,
165
160
  onClick: () => handleEditAssignment(assignment),
166
- children: [" ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.Edit, {}), " "]
161
+ children: [" ", /*#__PURE__*/_jsx(Edit, {}), " "]
167
162
  })
168
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Tooltip, {
163
+ }), /*#__PURE__*/_jsx(Tooltip, {
169
164
  title: t("delete"),
170
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.IconButton, {
165
+ children: /*#__PURE__*/_jsxs(IconButton, {
171
166
  "data-cy": `delete-assignment-${index}`,
172
167
  onClick: () => {
173
168
  handleDeleteAssignment(assignment.classroomId, assignment.assignmentId);
174
169
  },
175
- children: [" ", /*#__PURE__*/(0, _jsxRuntime.jsx)(_iconsMaterial.Delete, {}), " "]
170
+ children: [" ", /*#__PURE__*/_jsx(Delete, {}), " "]
176
171
  })
177
172
  })]
178
173
  })]
179
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
174
+ }), /*#__PURE__*/_jsxs(Box, {
180
175
  mt: 2,
181
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Divider, {
176
+ children: [/*#__PURE__*/_jsx(Divider, {
182
177
  sx: {
183
178
  marginBottom: 1.5
184
179
  }
185
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, {
180
+ }), /*#__PURE__*/_jsxs(Grid, {
186
181
  container: true,
187
182
  spacing: 2,
188
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Grid, {
183
+ children: [/*#__PURE__*/_jsxs(Grid, {
189
184
  size: {
190
185
  md: 10,
191
186
  xs: 12
192
187
  },
193
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
188
+ children: [/*#__PURE__*/_jsx(Typography, {
194
189
  variant: "body2",
195
190
  children: assignment.instructions
196
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Box, {
191
+ }), /*#__PURE__*/_jsx(Box, {
197
192
  mt: 2,
198
193
  width: isCreator ? "80%" : "100%",
199
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AssignmentExerciseSelector.default, {
194
+ children: /*#__PURE__*/_jsx(AssignmentExerciseSelector, {
200
195
  t: t,
201
196
  assignment: assignment,
202
197
  handleStartExercise: handleStartExercise,
@@ -209,29 +204,30 @@ function AssignmentCard({
209
204
  preferred_username: preferred_username,
210
205
  progressHelpers: progressHelpers,
211
206
  memberCourseCompletions: memberCourseCompletions,
212
- lastClickedExerciseId: lastClickedExerciseId
207
+ lastClickedExerciseId: lastClickedExerciseId,
208
+ isChallengeModeStudent: isChallengeModeStudent
213
209
  })
214
210
  })]
215
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Grid, {
211
+ }), /*#__PURE__*/_jsx(Grid, {
216
212
  size: {
217
213
  xs: 3,
218
214
  md: 2
219
215
  },
220
- children: isCreator && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
216
+ children: isCreator && /*#__PURE__*/_jsxs(Box, {
221
217
  display: "flex",
222
218
  flexDirection: "column",
223
219
  alignItems: "center",
224
220
  textAlign: "center",
225
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_material.Box, {
226
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
221
+ children: [/*#__PURE__*/_jsxs(Box, {
222
+ children: [/*#__PURE__*/_jsx(Typography, {
227
223
  variant: "h4",
228
224
  children: assignedStudents?.length
229
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
225
+ }), /*#__PURE__*/_jsx(Typography, {
230
226
  variant: "body2",
231
227
  color: "text.secondary",
232
228
  children: t("assigned")
233
229
  })]
234
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Button, {
230
+ }), /*#__PURE__*/_jsx(Button, {
235
231
  variant: "contained",
236
232
  sx: {
237
233
  marginTop: 2
@@ -249,14 +245,14 @@ function AssignmentCard({
249
245
  });
250
246
  }
251
247
  AssignmentCard.propTypes = {
252
- assignment: _propTypes.default.shape({
253
- image: _propTypes.default.string,
254
- title: _propTypes.default.string,
255
- description: _propTypes.default.string,
256
- dueDate: _propTypes.default.string.isRequired,
257
- completed: _propTypes.default.number,
258
- assigned: _propTypes.default.number,
259
- assignedStudents: _propTypes.default.array,
260
- t: _propTypes.default.func
248
+ assignment: PropTypes.shape({
249
+ image: PropTypes.string,
250
+ title: PropTypes.string,
251
+ description: PropTypes.string,
252
+ dueDate: PropTypes.string.isRequired,
253
+ completed: PropTypes.number,
254
+ assigned: PropTypes.number,
255
+ assignedStudents: PropTypes.array,
256
+ t: PropTypes.func
261
257
  }).isRequired
262
258
  };