@nualang/nualang-ui-components 0.1.1399 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/package.json +7 -10
  2. package/dist/Assignments/AssignmentBotSelection/AssignmentBotSelection.js +0 -278
  3. package/dist/Assignments/AssignmentBotSelection/package.json +0 -6
  4. package/dist/Assignments/AssignmentCard/AssignmentCard.js +0 -297
  5. package/dist/Assignments/AssignmentCard/package.json +0 -6
  6. package/dist/Assignments/AssignmentCardsList/AssignmentCardsList.js +0 -389
  7. package/dist/Assignments/AssignmentCardsList/package.json +0 -6
  8. package/dist/Assignments/AssignmentCourseSelection/AssignmentCourseSelection.js +0 -280
  9. package/dist/Assignments/AssignmentCourseSelection/package.json +0 -6
  10. package/dist/Assignments/AssignmentExerciseSelection/AssignmentExerciseSelection.js +0 -1056
  11. package/dist/Assignments/AssignmentExerciseSelection/package.json +0 -6
  12. package/dist/Assignments/AssignmentExerciseSelector/AssignmentExerciseSelector.js +0 -53
  13. package/dist/Assignments/AssignmentExerciseSelector/package.json +0 -6
  14. package/dist/Assignments/AssignmentPhraseListSelection/AssignmentPhraseListSelection.js +0 -469
  15. package/dist/Assignments/AssignmentPhraseListSelection/package.json +0 -6
  16. package/dist/Assignments/AssignmentRoleplaySelection/AssignmentRoleplaySelection.js +0 -498
  17. package/dist/Assignments/AssignmentRoleplaySelection/package.json +0 -6
  18. package/dist/Assignments/AssignmentSelectExercise/AssignmentSelectExercise.js +0 -113
  19. package/dist/Assignments/CreateAssignmentDialog/CreateAssignmentDialog.js +0 -654
  20. package/dist/Assignments/CreateAssignmentDialog/package.json +0 -6
  21. package/dist/Assignments/SelectAssignmentTypeDialog/SelectAssignmentTypeDialog.js +0 -168
  22. package/dist/Assignments/SelectAssignmentTypeDialog/package.json +0 -6
  23. package/dist/Cards/Avatar/Avatar.js +0 -45
  24. package/dist/Cards/Bot/Bot.js +0 -349
  25. package/dist/Cards/Bot/Bot.test.js +0 -21
  26. package/dist/Cards/Bot/package.json +0 -6
  27. package/dist/Cards/CardElements/CardTitle/CardTitle.js +0 -28
  28. package/dist/Cards/CardElements/CardTitle/package.json +0 -6
  29. package/dist/Cards/CardElements/CardVisibility/CardVisibility.js +0 -80
  30. package/dist/Cards/CardElements/CardVisibility/package.json +0 -6
  31. package/dist/Cards/CardElements/index.js +0 -169
  32. package/dist/Cards/Category/Category.js +0 -92
  33. package/dist/Cards/Category/sample.png +0 -0
  34. package/dist/Cards/Classroom/Classroom.js +0 -379
  35. package/dist/Cards/Classroom/Classroom.test.js +0 -30
  36. package/dist/Cards/Classroom/package.json +0 -6
  37. package/dist/Cards/Course/Course.js +0 -666
  38. package/dist/Cards/Course/Course.test.js +0 -30
  39. package/dist/Cards/Course/package.json +0 -6
  40. package/dist/Cards/FeedbackCard/FeedbackCard.js +0 -624
  41. package/dist/Cards/LoadingCard/LoadingCard.js +0 -39
  42. package/dist/Cards/PreviewCard/PreviewCard.js +0 -63
  43. package/dist/Cards/PreviewCard/PreviewCard.test.js +0 -20
  44. package/dist/Cards/RecordingCard/RecordingCard.js +0 -250
  45. package/dist/Cards/Roleplay/Roleplay.js +0 -348
  46. package/dist/Cards/Roleplay/Roleplay.test.js +0 -21
  47. package/dist/Cards/Roleplay/package.json +0 -6
  48. package/dist/Cards/ScheduleCard/ScheduleCard.js +0 -152
  49. package/dist/Cards/SubmissionsCard/SubmissionsCard.js +0 -138
  50. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.js +0 -395
  51. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.test.js +0 -20
  52. package/dist/Cards/SubscriptionPlan/nuala.svg +0 -28
  53. package/dist/Cards/SubscriptionPlan/package.json +0 -6
  54. package/dist/Cards/SubscriptionPlan/plus.svg +0 -4
  55. package/dist/Cards/Topic/Topic.js +0 -219
  56. package/dist/Cards/Topic/Topic.test.js +0 -21
  57. package/dist/Cards/Topic/package.json +0 -6
  58. package/dist/Cards/index.js +0 -2
  59. package/dist/Charts/Bar/Exercises/Exercises.js +0 -118
  60. package/dist/Charts/Bar/Exercises/package.json +0 -6
  61. package/dist/Charts/Bar/TotalGrades/TotalGrades.js +0 -123
  62. package/dist/Charts/Bar/TotalGrades/package.json +0 -6
  63. package/dist/Charts/Doughnut/AnswerMethod/AnswerMethod.js +0 -97
  64. package/dist/Charts/Doughnut/AnswerMethod/package.json +0 -6
  65. package/dist/Charts/Doughnut/AnswersBreakdown/AnswersBreakdown.js +0 -105
  66. package/dist/Charts/Doughnut/AnswersBreakdown/package.json +0 -6
  67. package/dist/Charts/Doughnut/RecordingAttendance/RecordingAttendance.js +0 -100
  68. package/dist/Charts/Doughnut/SubmittedRecordings/SubmittedRecordings.js +0 -87
  69. package/dist/Chat/BottomBar/BottomBar.js +0 -375
  70. package/dist/Chat/BottomBar/package.json +0 -6
  71. package/dist/Chat/Chat.js +0 -205
  72. package/dist/Chat/ChatLoading/ChatLoading.js +0 -224
  73. package/dist/Chat/ChatLoading/package.json +0 -6
  74. package/dist/Chat/Messages/Message/Message.js +0 -710
  75. package/dist/Chat/Messages/Message/package.json +0 -6
  76. package/dist/Chat/Messages/Messages.js +0 -270
  77. package/dist/Chat/Messages/Question/Question.js +0 -485
  78. package/dist/Chat/Messages/Question/package.json +0 -6
  79. package/dist/Chat/Messages/package.json +0 -6
  80. package/dist/Chat/TopBar/TopBar.js +0 -123
  81. package/dist/Chat/TopBar/package.json +0 -6
  82. package/dist/Chat/VoiceMessage/VoiceMessage.js +0 -144
  83. package/dist/Chat/VoiceMessage/package.json +0 -6
  84. package/dist/Chat/package.json +0 -6
  85. package/dist/Containers/App/App.js +0 -536
  86. package/dist/Containers/App/package.json +0 -6
  87. package/dist/Dialogs/AddToClassroom/AddToClassroom.js +0 -117
  88. package/dist/Dialogs/AddToClassroom/AddToClassroom.test.js +0 -15
  89. package/dist/Dialogs/AddToClassroom/package.json +0 -6
  90. package/dist/Dialogs/AddToCourse/AddToCourse.js +0 -73
  91. package/dist/Dialogs/Alternatives/Alternatives.js +0 -67
  92. package/dist/Dialogs/Alternatives/package.json +0 -6
  93. package/dist/Dialogs/AvatarDialog/AvatarDialog.js +0 -585
  94. package/dist/Dialogs/AvatarDialog/options.js +0 -120
  95. package/dist/Dialogs/BotPreview/BotPreview.js +0 -350
  96. package/dist/Dialogs/BotPreview/package.json +0 -6
  97. package/dist/Dialogs/Code/Code.js +0 -147
  98. package/dist/Dialogs/Code/Code.test.js +0 -20
  99. package/dist/Dialogs/Code/package.json +0 -6
  100. package/dist/Dialogs/ConfirmDeleteDiscussion/ConfirmDeleteDiscussion.js +0 -46
  101. package/dist/Dialogs/ConfirmDialog/ConfirmDialog.js +0 -198
  102. package/dist/Dialogs/CourseOutline/CourseOutline.js +0 -27
  103. package/dist/Dialogs/CourseOutline/CourseOutline.test.js +0 -28
  104. package/dist/Dialogs/CourseOutline/package.json +0 -6
  105. package/dist/Dialogs/CreatePhrase/CreatePhrase.js +0 -733
  106. package/dist/Dialogs/CreatePhrase/CreatePhrase.test.js +0 -20
  107. package/dist/Dialogs/CreatePhrase/package.json +0 -6
  108. package/dist/Dialogs/CreatePhraseGroupDialog/CreatePhraseGroupDialog.js +0 -144
  109. package/dist/Dialogs/CreatePhraseListFromSelectionDialog/CreatePhraseListFromSelectionDialog.js +0 -49
  110. package/dist/Dialogs/CreateQuestion/CreateQuestion.js +0 -282
  111. package/dist/Dialogs/CreateQuestion/CreateQuestion.test.js +0 -15
  112. package/dist/Dialogs/CreateQuestion/package.json +0 -6
  113. package/dist/Dialogs/CreateSection/CreateSection.js +0 -51
  114. package/dist/Dialogs/CreateSection/CreateSection.test.js +0 -15
  115. package/dist/Dialogs/CreateSection/package.json +0 -6
  116. package/dist/Dialogs/CreateTopic/CreateTopic.js +0 -135
  117. package/dist/Dialogs/CreateTopic/CreateTopic.test.js +0 -15
  118. package/dist/Dialogs/CreateTopic/package.json +0 -6
  119. package/dist/Dialogs/CreatorNotSubscribed/CreatorNotSubscribed.js +0 -19
  120. package/dist/Dialogs/CreatorNotSubscribedUpgrade/CreatorNotSubscribedUpgrade.js +0 -50
  121. package/dist/Dialogs/DynamicAIWarning/DynamicAIWarning.js +0 -183
  122. package/dist/Dialogs/DynamicAIWarning/owl.png +0 -0
  123. package/dist/Dialogs/EnrollmentKeyDialog/EnrollmentKeyDialog.js +0 -47
  124. package/dist/Dialogs/ExerciseMenu/ExerciseMenu.js +0 -92
  125. package/dist/Dialogs/ExerciseMenu/Menus/CloseBotPreview/CloseBotPreview.js +0 -20
  126. package/dist/Dialogs/ExerciseMenu/Menus/CloseBotPreview/package.json +0 -6
  127. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/CloseExercise.js +0 -52
  128. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/package.json +0 -6
  129. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/CompletedExcercise.js +0 -60
  130. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/package.json +0 -6
  131. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/InProgressExercise.js +0 -43
  132. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/package.json +0 -6
  133. package/dist/Dialogs/ExerciseMenu/package.json +0 -6
  134. package/dist/Dialogs/Feedback/FeedbackDialog.js +0 -86
  135. package/dist/Dialogs/FeedbackDialog/FeedbackDialog.js +0 -123
  136. package/dist/Dialogs/FeedbackInfoDialog/FeedbackInfoDialog.js +0 -39
  137. package/dist/Dialogs/GenerateBot/GenerateBot.js +0 -429
  138. package/dist/Dialogs/GenerateBot/package.json +0 -6
  139. package/dist/Dialogs/GenerateDefinitions/GenerateDefinitions.js +0 -217
  140. package/dist/Dialogs/GenerateDefinitions/package.json +0 -6
  141. package/dist/Dialogs/GenerateDiscussion/GenerateDiscussion.js +0 -275
  142. package/dist/Dialogs/GeneratePhrases/GeneratePhrases.js +0 -379
  143. package/dist/Dialogs/GeneratePhrases/package.json +0 -6
  144. package/dist/Dialogs/GenerateQuestion/GenerateQuestion.js +0 -212
  145. package/dist/Dialogs/GenerateQuestion/package.json +0 -6
  146. package/dist/Dialogs/GenerateRoleplay/GenerateRoleplay.js +0 -735
  147. package/dist/Dialogs/GenerateRoleplay/package.json +0 -6
  148. package/dist/Dialogs/GroupedFeedbackDialog/GroupedFeedbackDialog.js +0 -711
  149. package/dist/Dialogs/GroupedFeedbackDialog/package.json +0 -6
  150. package/dist/Dialogs/Icons/Icons.js +0 -18
  151. package/dist/Dialogs/Icons/package.json +0 -6
  152. package/dist/Dialogs/ImageLibrary/ImageLibrary.js +0 -34
  153. package/dist/Dialogs/ImageLibrary/ImageLibrary.test.js +0 -20
  154. package/dist/Dialogs/ImageLibrary/package.json +0 -6
  155. package/dist/Dialogs/ImageLibraryDialog/ImageLibraryDialog.js +0 -33
  156. package/dist/Dialogs/InactivePopover/InactivePopover.js +0 -71
  157. package/dist/Dialogs/InviteDialog/InviteDialog.js +0 -695
  158. package/dist/Dialogs/InviteDialog/package.json +0 -6
  159. package/dist/Dialogs/InviteDialog/upload-emails-csv.png +0 -0
  160. package/dist/Dialogs/Listener/Listener.js +0 -87
  161. package/dist/Dialogs/Listener/Listener.test.js +0 -24
  162. package/dist/Dialogs/Listener/package.json +0 -6
  163. package/dist/Dialogs/LiveGameTutorial/LiveGameTutorial.js +0 -166
  164. package/dist/Dialogs/LiveGameTutorial/package.json +0 -6
  165. package/dist/Dialogs/Members/Members.js +0 -27
  166. package/dist/Dialogs/Members/Members.test.js +0 -20
  167. package/dist/Dialogs/Members/package.json +0 -6
  168. package/dist/Dialogs/ModeratedDialog/ModeratedDialog.js +0 -35
  169. package/dist/Dialogs/PDFViewer/PDFViewer.js +0 -252
  170. package/dist/Dialogs/PDFViewer/pdf24.pdf +0 -0
  171. package/dist/Dialogs/PDFViewer/rubrics/level1Rubric.pdf +0 -0
  172. package/dist/Dialogs/PDFViewer/rubrics/level2Rubric.pdf +0 -0
  173. package/dist/Dialogs/PDFViewer/rubrics/level3Rubric.pdf +0 -0
  174. package/dist/Dialogs/PDFViewer/rubrics/level4Rubric.pdf +0 -0
  175. package/dist/Dialogs/PhraseNameDialog/PhraseNameDialog.js +0 -30
  176. package/dist/Dialogs/QuickCreateClassroomDialog/QuickCreateClassroomDialog.js +0 -201
  177. package/dist/Dialogs/QuickCreateCourseDialog/QuickCreateCourseDialog.js +0 -215
  178. package/dist/Dialogs/RecordingDialog/RecordingDialog.js +0 -288
  179. package/dist/Dialogs/ReportProblem/ReportProblem.js +0 -287
  180. package/dist/Dialogs/ReportProblem/ReportProblem.test.js +0 -15
  181. package/dist/Dialogs/ReportProblem/package.json +0 -6
  182. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.js +0 -105
  183. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.test.js +0 -15
  184. package/dist/Dialogs/ResponsiveDialog/package.json +0 -6
  185. package/dist/Dialogs/RewardEarned/RewardEarned.js +0 -111
  186. package/dist/Dialogs/RewardEarned/package.json +0 -6
  187. package/dist/Dialogs/RoleplayPreview/RoleplayPreview.js +0 -87
  188. package/dist/Dialogs/SearchTopic/SearchTopic.js +0 -87
  189. package/dist/Dialogs/SelectActor/SelectActor.js +0 -157
  190. package/dist/Dialogs/SelectActor/package.json +0 -6
  191. package/dist/Dialogs/SelectClassroom/SelectClassroom.js +0 -81
  192. package/dist/Dialogs/SelectClassroom/package.json +0 -6
  193. package/dist/Dialogs/SelectExercise/SelectExercise.js +0 -47
  194. package/dist/Dialogs/SelectExercise/package.json +0 -6
  195. package/dist/Dialogs/Substitution/Substitution.js +0 -82
  196. package/dist/Dialogs/Substitution/package.json +0 -6
  197. package/dist/Dialogs/Topic/Topic.js +0 -69
  198. package/dist/Dialogs/Topic/package.json +0 -6
  199. package/dist/Dialogs/TopicPreview/TopicPreview.js +0 -39
  200. package/dist/Dialogs/TopicPreview/package.json +0 -6
  201. package/dist/Dialogs/TransferPhrase/TransferPhrase.js +0 -115
  202. package/dist/Dialogs/Trigger/Trigger.js +0 -213
  203. package/dist/Dialogs/Trigger/package.json +0 -6
  204. package/dist/Dialogs/UpgradeSubscription/UpgradeSubscription.js +0 -40
  205. package/dist/Dialogs/UploadBotVars/UploadBotVars.jpeg +0 -0
  206. package/dist/Dialogs/UploadBotVars/UploadBotVars.js +0 -186
  207. package/dist/Dialogs/UploadBotVars/UploadBotVars.test.js +0 -20
  208. package/dist/Dialogs/UploadBotVars/package.json +0 -6
  209. package/dist/Dialogs/UploadPhrases/UploadPhrases.js +0 -553
  210. package/dist/Dialogs/UploadPhrases/UploadPhrases.test.js +0 -20
  211. package/dist/Dialogs/UploadPhrases/package.json +0 -6
  212. package/dist/Dialogs/UploadPhrases/upload-phrases-csv.png +0 -0
  213. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.js +0 -287
  214. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.test.js +0 -20
  215. package/dist/Dialogs/UploadRoleplayScript/package.json +0 -6
  216. package/dist/Dialogs/UploadRoleplayScript/roleplay-script-csv.png +0 -0
  217. package/dist/Dialogs/UploadVideo/UploadVideo.js +0 -80
  218. package/dist/Dialogs/UploadVideo/UploadVideo.test.js +0 -20
  219. package/dist/Dialogs/UploadVideo/package.json +0 -6
  220. package/dist/Dialogs/Variable/Variable.js +0 -74
  221. package/dist/Dialogs/Variable/package.json +0 -6
  222. package/dist/Dialogs/VideoViewer/VideoViewer.js +0 -61
  223. package/dist/Dialogs/ViewImageDialog/ViewImageDialog.js +0 -24
  224. package/dist/Dialogs/WaveformDialog/WaveformDialog.js +0 -110
  225. package/dist/Editors/Bot/Bot.js +0 -843
  226. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.js +0 -98
  227. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.test.js +0 -12
  228. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/package.json +0 -6
  229. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.js +0 -95
  230. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.test.js +0 -12
  231. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/package.json +0 -6
  232. package/dist/Editors/Bot/Editor/BotDesigner/AlternativesList.js +0 -88
  233. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.js +0 -66
  234. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.test.js +0 -34
  235. package/dist/Editors/Bot/Editor/BotDesigner/VarList.js +0 -324
  236. package/dist/Editors/Bot/Editor/BotDesigner/package.json +0 -6
  237. package/dist/Editors/Bot/Editor/Editor.js +0 -628
  238. package/dist/Editors/Bot/Editor/package.json +0 -6
  239. package/dist/Editors/Bot/Tutorial.js +0 -154
  240. package/dist/Editors/Bot/package.json +0 -6
  241. package/dist/Editors/PhraseList/PhraseList.js +0 -388
  242. package/dist/Editors/Phrases/Phrases.js +0 -617
  243. package/dist/Editors/Phrases/SpreadsheetEditor/SpreadsheetEditor.js +0 -146
  244. package/dist/Editors/Roleplay/Roleplay.js +0 -955
  245. package/dist/Editors/Roleplay/package.json +0 -6
  246. package/dist/Exercises/Bot/Bot.js +0 -716
  247. package/dist/Exercises/Bot/Bot.test.js +0 -25
  248. package/dist/Exercises/Bot/package.json +0 -6
  249. package/dist/Exercises/ListenAndSpeak/ListenAndSpeak.js +0 -963
  250. package/dist/Exercises/Listener/Listener.js +0 -1023
  251. package/dist/Exercises/Listener/Listener.test.js +0 -25
  252. package/dist/Exercises/Listener/package.json +0 -6
  253. package/dist/Exercises/Meaning/Meaning.js +0 -808
  254. package/dist/Exercises/MeaningReadWrite/MeaningReadWriteGame.js +0 -725
  255. package/dist/Exercises/PhraseGroup/Games/ListenAndSpeakGame/ListenAndSpeakGame.js +0 -95
  256. package/dist/Exercises/PhraseGroup/Games/ListeningGame/ListeningGame.js +0 -89
  257. package/dist/Exercises/PhraseGroup/Games/MeaningGame/MeaningGame.js +0 -88
  258. package/dist/Exercises/PhraseGroup/Games/MeaningReadWriteGame/MeaningReadWriteGame.js +0 -90
  259. package/dist/Exercises/PhraseGroup/Games/PronunciationGame/PronunciationGame.js +0 -85
  260. package/dist/Exercises/PhraseGroup/Games/TranslationGame/TranslationGame.js +0 -90
  261. package/dist/Exercises/PhraseGroup/Games/index.js +0 -7
  262. package/dist/Exercises/PhraseGroup/PhraseGroup.js +0 -269
  263. package/dist/Exercises/PhraseGroup/PhraseGroup.test.js +0 -28
  264. package/dist/Exercises/PhraseGroup/PhraseGroupGameOptions/PhraseGroupGame/PhraseGroupGame.js +0 -296
  265. package/dist/Exercises/PhraseGroup/PhraseGroupGameOptions/PhraseGroupGames.js +0 -70
  266. package/dist/Exercises/PhraseGroup/PhraseGroupInfo/PhraseGroupInfo.js +0 -135
  267. package/dist/Exercises/PhraseGroup/package.json +0 -7
  268. package/dist/Exercises/Pronouncer/Pronouncer.js +0 -981
  269. package/dist/Exercises/Pronouncer/Pronouncer.test.js +0 -23
  270. package/dist/Exercises/Pronouncer/package.json +0 -6
  271. package/dist/Exercises/Roleplay/Games/ActItOutGame/ActItOutGame.js +0 -502
  272. package/dist/Exercises/Roleplay/Games/ActItOutGame/package.json +0 -6
  273. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/ActItOutGameListening.js +0 -505
  274. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/package.json +0 -6
  275. package/dist/Exercises/Roleplay/Games/ActItOutGameListeningAndSpeaking/ActItOutGame.js +0 -748
  276. package/dist/Exercises/Roleplay/Games/ActItOutGameListeningAndSpeaking/package.json +0 -6
  277. package/dist/Exercises/Roleplay/Games/ActItOutGameSpeaking/ActItOutGame.js +0 -738
  278. package/dist/Exercises/Roleplay/Games/ActItOutGameSpeaking/package.json +0 -6
  279. package/dist/Exercises/Roleplay/Games/BeforeElements.js +0 -68
  280. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInBlanks.js +0 -264
  281. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInTheBlanksGame.js +0 -360
  282. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/package.json +0 -6
  283. package/dist/Exercises/Roleplay/Games/StoryGame/StoryGame.js +0 -347
  284. package/dist/Exercises/Roleplay/Games/StoryGame/package.json +0 -6
  285. package/dist/Exercises/Roleplay/Games/TopBarActions.js +0 -336
  286. package/dist/Exercises/Roleplay/Games/Transition.js +0 -9
  287. package/dist/Exercises/Roleplay/Games/index.js +0 -7
  288. package/dist/Exercises/Roleplay/OriginalRoleplay.js +0 -946
  289. package/dist/Exercises/Roleplay/Roleplay.js +0 -399
  290. package/dist/Exercises/Roleplay/Roleplay.test.js +0 -30
  291. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.js +0 -194
  292. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.test.js +0 -23
  293. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/package.json +0 -6
  294. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.js +0 -61
  295. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.test.js +0 -23
  296. package/dist/Exercises/Roleplay/RoleplayGameOptions/package.json +0 -6
  297. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.js +0 -153
  298. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.test.js +0 -23
  299. package/dist/Exercises/Roleplay/RoleplayInfo/package.json +0 -6
  300. package/dist/Exercises/Roleplay/package.json +0 -6
  301. package/dist/Exercises/Translator/Translator.js +0 -1031
  302. package/dist/Exercises/Translator/Translator.test.js +0 -29
  303. package/dist/Exercises/Translator/package.json +0 -6
  304. package/dist/Forms/AppContact/AppContact.js +0 -141
  305. package/dist/Forms/ChipInput/ChipInput.js +0 -74
  306. package/dist/Forms/ChipInput/package.json +0 -6
  307. package/dist/Forms/Contact/Contact.js +0 -363
  308. package/dist/Forms/CreateBot/CreateBot.js +0 -77
  309. package/dist/Forms/CreateBot/CreateBot.test.js +0 -20
  310. package/dist/Forms/CreateBot/Steps/BotInformation/BotInformation.js +0 -649
  311. package/dist/Forms/CreateBot/Steps/BotInformation/__mocks__/react-simplemde-editor.js +0 -8
  312. package/dist/Forms/CreateBot/Steps/BotInformation/package.json +0 -6
  313. package/dist/Forms/CreateBot/Steps/BotSettings/BotSettings.js +0 -199
  314. package/dist/Forms/CreateBot/Steps/BotSettings/package.json +0 -6
  315. package/dist/Forms/CreateBot/Steps/Confirmation/Confirmation.js +0 -237
  316. package/dist/Forms/CreateBot/Steps/Confirmation/package.json +0 -6
  317. package/dist/Forms/CreateBot/Steps/index.js +0 -4
  318. package/dist/Forms/CreateBot/package.json +0 -6
  319. package/dist/Forms/CreateClassroom/CreateClassroom.js +0 -53
  320. package/dist/Forms/CreateClassroom/CreateClassroom.test.js +0 -20
  321. package/dist/Forms/CreateClassroom/Steps/ClassroomInformation/ClassroomInformation.js +0 -168
  322. package/dist/Forms/CreateClassroom/Steps/ClassroomInformation/package.json +0 -6
  323. package/dist/Forms/CreateClassroom/Steps/ClassroomSettings/ClassroomSettings.js +0 -401
  324. package/dist/Forms/CreateClassroom/Steps/ClassroomSettings/package.json +0 -6
  325. package/dist/Forms/CreateClassroom/Steps/Confirmation/Confirmation.js +0 -117
  326. package/dist/Forms/CreateClassroom/Steps/Confirmation/package.json +0 -6
  327. package/dist/Forms/CreateClassroom/Steps/CourseSettings/CourseSettings.js +0 -340
  328. package/dist/Forms/CreateClassroom/Steps/CourseSettings/package.json +0 -6
  329. package/dist/Forms/CreateClassroom/Steps/Customization/Customization.js +0 -77
  330. package/dist/Forms/CreateClassroom/Steps/Customization/package.json +0 -6
  331. package/dist/Forms/CreateClassroom/Steps/index.js +0 -6
  332. package/dist/Forms/CreateClassroom/package.json +0 -6
  333. package/dist/Forms/CreateCourse/CreateCourse.js +0 -62
  334. package/dist/Forms/CreateCourse/CreateCourse.test.js +0 -20
  335. package/dist/Forms/CreateCourse/Steps/Confirmation/Confirmation.js +0 -117
  336. package/dist/Forms/CreateCourse/Steps/Confirmation/package.json +0 -6
  337. package/dist/Forms/CreateCourse/Steps/CourseInformation/CourseInformation.js +0 -194
  338. package/dist/Forms/CreateCourse/Steps/CourseInformation/package.json +0 -6
  339. package/dist/Forms/CreateCourse/Steps/CourseSettings/CourseSettings.js +0 -257
  340. package/dist/Forms/CreateCourse/Steps/CourseSettings/package.json +0 -6
  341. package/dist/Forms/CreateCourse/Steps/Customization/Customization.js +0 -77
  342. package/dist/Forms/CreateCourse/Steps/Customization/package.json +0 -6
  343. package/dist/Forms/CreateCourse/Steps/index.js +0 -5
  344. package/dist/Forms/CreateCourse/package.json +0 -6
  345. package/dist/Forms/CreateGroup/CreateGroup.js +0 -55
  346. package/dist/Forms/CreateGroup/CreateGroup.test.js +0 -20
  347. package/dist/Forms/CreateGroup/Steps/Confirmation/Confirmation.js +0 -172
  348. package/dist/Forms/CreateGroup/Steps/Confirmation/package.json +0 -6
  349. package/dist/Forms/CreateGroup/Steps/GroupInformation/GroupInformation.js +0 -130
  350. package/dist/Forms/CreateGroup/Steps/GroupInformation/package.json +0 -6
  351. package/dist/Forms/CreateGroup/Steps/GroupSettings/GroupSettings.js +0 -171
  352. package/dist/Forms/CreateGroup/Steps/GroupSettings/package.json +0 -6
  353. package/dist/Forms/CreateGroup/Steps/index.js +0 -4
  354. package/dist/Forms/CreateGroup/package.json +0 -6
  355. package/dist/Forms/CreateMeetingMultiStepForm/CreateMeetingMultiStepForm.js +0 -88
  356. package/dist/Forms/CreateMeetingMultiStepForm/GroupAssignment.js +0 -919
  357. package/dist/Forms/CreateMeetingMultiStepForm/MeetingForm.js +0 -501
  358. package/dist/Forms/CreateMeetingMultiStepForm/images/input1.js +0 -2
  359. package/dist/Forms/CreateMeetingMultiStepForm/images/input5.js +0 -2
  360. package/dist/Forms/CreateMeetingMultiStepForm/images/mode1.js +0 -2
  361. package/dist/Forms/CreateMeetingMultiStepForm/images/mode2.js +0 -2
  362. package/dist/Forms/CreateMeetingMultiStepForm/sampleTemplates.js +0 -44
  363. package/dist/Forms/CreateRoleplay/CreateRoleplay.js +0 -87
  364. package/dist/Forms/CreateRoleplay/CreateRoleplay.test.js +0 -20
  365. package/dist/Forms/CreateRoleplay/Steps/Confirmation/Confirmation.js +0 -166
  366. package/dist/Forms/CreateRoleplay/Steps/Confirmation/package.json +0 -6
  367. package/dist/Forms/CreateRoleplay/Steps/RoleplayInformation/RoleplayInformation.js +0 -501
  368. package/dist/Forms/CreateRoleplay/Steps/RoleplayInformation/package.json +0 -6
  369. package/dist/Forms/CreateRoleplay/Steps/RoleplaySettings/RoleplaySettings.js +0 -261
  370. package/dist/Forms/CreateRoleplay/Steps/RoleplaySettings/package.json +0 -6
  371. package/dist/Forms/CreateRoleplay/Steps/index.js +0 -4
  372. package/dist/Forms/CreateRoleplay/package.json +0 -6
  373. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.js +0 -83
  374. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.test.js +0 -20
  375. package/dist/Forms/CreateRoleplayHook/Steps/Confirmation/Confirmation.js +0 -174
  376. package/dist/Forms/CreateRoleplayHook/Steps/Confirmation/package.json +0 -6
  377. package/dist/Forms/CreateRoleplayHook/Steps/RoleplayInformation/RoleplayInformation.js +0 -487
  378. package/dist/Forms/CreateRoleplayHook/Steps/RoleplayInformation/package.json +0 -6
  379. package/dist/Forms/CreateRoleplayHook/Steps/RoleplaySettings/RoleplaySettings.js +0 -330
  380. package/dist/Forms/CreateRoleplayHook/Steps/RoleplaySettings/package.json +0 -6
  381. package/dist/Forms/CreateRoleplayHook/Steps/index.js +0 -4
  382. package/dist/Forms/CreateRoleplayHook/package.json +0 -6
  383. package/dist/Forms/CreateTopic/CreateTopic.js +0 -52
  384. package/dist/Forms/CreateTopic/CreateTopic.test.js +0 -20
  385. package/dist/Forms/CreateTopic/Steps/Confirmation/Confirmation.js +0 -111
  386. package/dist/Forms/CreateTopic/Steps/Confirmation/package.json +0 -6
  387. package/dist/Forms/CreateTopic/Steps/Customization/Customization.js +0 -77
  388. package/dist/Forms/CreateTopic/Steps/Customization/package.json +0 -6
  389. package/dist/Forms/CreateTopic/Steps/TopicInformation/TopicInformation.js +0 -190
  390. package/dist/Forms/CreateTopic/Steps/TopicInformation/package.json +0 -6
  391. package/dist/Forms/CreateTopic/Steps/TopicSettings/TopicSettings.js +0 -81
  392. package/dist/Forms/CreateTopic/Steps/TopicSettings/package.json +0 -6
  393. package/dist/Forms/CreateTopic/Steps/index.js +0 -4
  394. package/dist/Forms/CreateTopic/package.json +0 -6
  395. package/dist/Forms/CreateUser/CreateUser.js +0 -77
  396. package/dist/Forms/DiscussImageSelector/ImageSelector.js +0 -311
  397. package/dist/Forms/DiscussImageSelector/package.json +0 -6
  398. package/dist/Forms/DiscussMultiStepFormDialog/MultiStepFormDialog.js +0 -402
  399. package/dist/Forms/DiscussMultiStepFormDialog/package.json +0 -6
  400. package/dist/Forms/FeedbackForm/FeedbackForm.js +0 -1036
  401. package/dist/Forms/FeedbackInfo/FeedbackInfo.js +0 -233
  402. package/dist/Forms/ImageSelector/ImageSelector.js +0 -516
  403. package/dist/Forms/ImageSelector/package.json +0 -6
  404. package/dist/Forms/InputHelper/InputHelper.js +0 -277
  405. package/dist/Forms/InputHelper/package.json +0 -6
  406. package/dist/Forms/LanguageSelector/LanguageSelector.js +0 -49
  407. package/dist/Forms/LanguageSelector/LanguageSelector.test.js +0 -15
  408. package/dist/Forms/MarkdownEditor/MarkdownEditor.js +0 -72
  409. package/dist/Forms/MarkdownEditor/MarkdownEditor.test.js +0 -35
  410. package/dist/Forms/MarkdownEditor/package.json +0 -6
  411. package/dist/Forms/MultiStepForm/Debug.js +0 -38
  412. package/dist/Forms/MultiStepForm/MultiStepForm.js +0 -278
  413. package/dist/Forms/MultiStepForm/MultiStepForm.test.js +0 -20
  414. package/dist/Forms/MultiStepForm/package.json +0 -6
  415. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.js +0 -354
  416. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.test.js +0 -20
  417. package/dist/Forms/MultiStepFormDialog/package.json +0 -6
  418. package/dist/Forms/MultiStepFormHook/MultiStepFormHook.js +0 -279
  419. package/dist/Forms/PdfUploader/PdfUploader.js +0 -250
  420. package/dist/Forms/PdfUploader/package.json +0 -6
  421. package/dist/Forms/RecordingInfo/RecordingInfo.js +0 -140
  422. package/dist/Forms/Settings/Settings.js +0 -138
  423. package/dist/Forms/Settings/Tabs/Display/Display.js +0 -106
  424. package/dist/Forms/Settings/Tabs/Display/package.json +0 -6
  425. package/dist/Forms/Settings/Tabs/EmailNotifications/EmailNotifications.js +0 -108
  426. package/dist/Forms/Settings/Tabs/EmailNotifications/package.json +0 -6
  427. package/dist/Forms/Settings/Tabs/General/General.js +0 -534
  428. package/dist/Forms/Settings/Tabs/General/package.json +0 -6
  429. package/dist/Forms/Settings/Tabs/Subscription/Subscription.js +0 -259
  430. package/dist/Forms/Settings/Tabs/Subscription/package.json +0 -6
  431. package/dist/Forms/Settings/package.json +0 -6
  432. package/dist/Forms/SortBySelector/SortBySelector.js +0 -47
  433. package/dist/Forms/UpdateBot/UpdateBot.js +0 -234
  434. package/dist/Forms/UpdateBot/UpdateBot.test.js +0 -23
  435. package/dist/Forms/UpdateBot/package.json +0 -6
  436. package/dist/Forms/UpdateClassroom/UpdateClassroom.js +0 -368
  437. package/dist/Forms/UpdateClassroom/UpdateClassroom.test.js +0 -20
  438. package/dist/Forms/UpdateClassroom/package.json +0 -6
  439. package/dist/Forms/UpdateCourse/UpdateCourse.js +0 -260
  440. package/dist/Forms/UpdateCourse/UpdateCourse.test.js +0 -20
  441. package/dist/Forms/UpdateCourse/package.json +0 -6
  442. package/dist/Forms/UpdateGroup/UpdateGroup.js +0 -185
  443. package/dist/Forms/UpdateGroup/UpdateGroup.test.js +0 -25
  444. package/dist/Forms/UpdateGroup/package.json +0 -6
  445. package/dist/Forms/UpdatePhraseList/UpdatePhraseList.js +0 -529
  446. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.js +0 -238
  447. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.test.js +0 -20
  448. package/dist/Forms/UpdateRoleplay/package.json +0 -6
  449. package/dist/Forms/UpdateTopic/UpdateTopic.js +0 -248
  450. package/dist/Forms/UpdateTopic/UpdateTopic.test.js +0 -20
  451. package/dist/Forms/UpdateTopic/package.json +0 -6
  452. package/dist/Forms/VideoUploader/VideoUploader.js +0 -197
  453. package/dist/Forms/VideoUploader/package.json +0 -6
  454. package/dist/Forms/VoiceSelector/VoiceSelector.js +0 -343
  455. package/dist/Forms/VoiceSelector/VoiceSelector.test.js +0 -15
  456. package/dist/Forms/VoiceSelector/package.json +0 -6
  457. package/dist/Lists/Avatars/Avatars.js +0 -67
  458. package/dist/Lists/Bots/Bots.js +0 -208
  459. package/dist/Lists/Bots/Bots.test.js +0 -24
  460. package/dist/Lists/Bots/package.json +0 -6
  461. package/dist/Lists/Categories/Categories.js +0 -93
  462. package/dist/Lists/Categories/Categories.test.js +0 -22
  463. package/dist/Lists/Categories/package.json +0 -6
  464. package/dist/Lists/Categories/sample.png +0 -0
  465. package/dist/Lists/Classrooms/Classrooms.js +0 -117
  466. package/dist/Lists/Classrooms/Classrooms.test.js +0 -30
  467. package/dist/Lists/Classrooms/package.json +0 -6
  468. package/dist/Lists/CourseOutline/CourseOutline.js +0 -1365
  469. package/dist/Lists/CourseOutline/CourseOutline.test.js +0 -23
  470. package/dist/Lists/CourseOutline/package.json +0 -6
  471. package/dist/Lists/CourseSelection/CourseSelection.js +0 -166
  472. package/dist/Lists/Courses/Courses.js +0 -184
  473. package/dist/Lists/Courses/Courses.test.js +0 -30
  474. package/dist/Lists/Courses/package.json +0 -6
  475. package/dist/Lists/ExerciseSelection/ExerciseSelection.js +0 -523
  476. package/dist/Lists/Exercises/Exercises.js +0 -1539
  477. package/dist/Lists/Exercises/Exercises.test.js +0 -29
  478. package/dist/Lists/Exercises/package.json +0 -6
  479. package/dist/Lists/Leaderboard/Leaderboard.js +0 -405
  480. package/dist/Lists/Leaderboard/package.json +0 -6
  481. package/dist/Lists/ListElements/index.js +0 -35
  482. package/dist/Lists/Members/Members.js +0 -433
  483. package/dist/Lists/Members/Members.test.js +0 -20
  484. package/dist/Lists/Members/package.json +0 -6
  485. package/dist/Lists/ParseScriptErrors/ParseScriptErrors.js +0 -29
  486. package/dist/Lists/PhraseListSelection/PhraseListSelection.js +0 -238
  487. package/dist/Lists/Phrases/Phrases.js +0 -717
  488. package/dist/Lists/Phrases/Phrases.test.js +0 -28
  489. package/dist/Lists/Phrases/package.json +0 -6
  490. package/dist/Lists/RoleplaySelection/RoleplaySelection.js +0 -192
  491. package/dist/Lists/Roleplays/Roleplays.js +0 -218
  492. package/dist/Lists/Roleplays/Roleplays.test.js +0 -24
  493. package/dist/Lists/Roleplays/package.json +0 -6
  494. package/dist/Lists/Sections/Sections.js +0 -238
  495. package/dist/Lists/Sections/Sections.test.js +0 -20
  496. package/dist/Lists/Sections/package.json +0 -6
  497. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.js +0 -49
  498. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.test.js +0 -20
  499. package/dist/Lists/SubscriptionPlans/package.json +0 -6
  500. package/dist/Lists/Timeline/EventItem.js +0 -154
  501. package/dist/Lists/Timeline/EventList.js +0 -34
  502. package/dist/Lists/Timeline/TimelineLoaded.js +0 -65
  503. package/dist/Lists/Timeline/groupByDay.js +0 -24
  504. package/dist/Lists/TopicPreview/TopicPreview.js +0 -454
  505. package/dist/Lists/TopicPreview/package.json +0 -6
  506. package/dist/Lists/Topics/Topics.js +0 -128
  507. package/dist/Lists/Topics/Topics.test.js +0 -21
  508. package/dist/Lists/Topics/package.json +0 -6
  509. package/dist/Lists/Voices/Voices.js +0 -257
  510. package/dist/Lists/Voices/Voices.test.js +0 -15
  511. package/dist/Lists/Voices/horse.ogm +0 -0
  512. package/dist/Lists/Voices/package.json +0 -6
  513. package/dist/Live/Game/Game.js +0 -678
  514. package/dist/Live/Game/package.json +0 -6
  515. package/dist/Live/GameControls/GameControls.js +0 -69
  516. package/dist/Live/GameControls/package.json +0 -6
  517. package/dist/Live/GameMembers/GameMembers.js +0 -185
  518. package/dist/Live/GameMembers/package.json +0 -6
  519. package/dist/Live/GameQuestionResults/GameQuestionResults.js +0 -96
  520. package/dist/Live/GameQuestionResults/package.json +0 -6
  521. package/dist/Live/GameSettings/GameSettings.js +0 -248
  522. package/dist/Live/GameSettings/package.json +0 -6
  523. package/dist/Live/HowToJoin/HowToJoin.js +0 -120
  524. package/dist/Live/HowToJoin/package.json +0 -6
  525. package/dist/Live/LiveListener/LiveListener.js +0 -606
  526. package/dist/Live/LiveListener/package.json +0 -6
  527. package/dist/Live/LiveMeaning/LiveMeaning.js +0 -392
  528. package/dist/Live/LiveMeaningReadWrite/LiveMeaningReadWrite.js +0 -393
  529. package/dist/Live/LiveRoleplay/LiveStory/LiveStory.js +0 -260
  530. package/dist/Live/LiveRoleplay/LiveStory/package.json +0 -6
  531. package/dist/Live/LiveTranslator/LiveTranslator.js +0 -735
  532. package/dist/Live/Misc/FinalScoreDrawer/FinalScoreDrawer.js +0 -244
  533. package/dist/Live/Misc/FinalScoreDrawer/package.json +0 -6
  534. package/dist/Live/Misc/StudentAnswerDrawer/StudentAnswerDrawer.js +0 -146
  535. package/dist/Live/Misc/StudentAnswerDrawer/package.json +0 -6
  536. package/dist/Live/WaitingRoom/WaitingRoom.js +0 -422
  537. package/dist/Live/WaitingRoom/package.json +0 -6
  538. package/dist/Misc/AiExperienceIcon/AiExperienceIcon.js +0 -128
  539. package/dist/Misc/AnswerResult/AnswerResult.js +0 -620
  540. package/dist/Misc/AnswerResult/package.json +0 -6
  541. package/dist/Misc/AvatarSelector/AvatarSelector.js +0 -183
  542. package/dist/Misc/AvatarSwitcher/AvatarSwitcher.js +0 -57
  543. package/dist/Misc/AxiosRestExample/AxiosRestExample.js +0 -46
  544. package/dist/Misc/AxiosRestExample/AxiosRestPostExample.js +0 -65
  545. package/dist/Misc/CSVUploader/CSVUploader.js +0 -153
  546. package/dist/Misc/CSVUploader/package.json +0 -6
  547. package/dist/Misc/ChatBubble/ChatBubble.js +0 -71
  548. package/dist/Misc/ColorLinearProgress/ColorLinearProgress.js +0 -28
  549. package/dist/Misc/ColorLinearProgress/package.json +0 -6
  550. package/dist/Misc/ColorSelector/ColorSelector.js +0 -143
  551. package/dist/Misc/ColorSelector/package.json +0 -6
  552. package/dist/Misc/CustomChipInput/CustomChipInput.js +0 -391
  553. package/dist/Misc/CustomChipInput/package.json +0 -6
  554. package/dist/Misc/DefaultColourButton/DefaultColourButton.js +0 -39
  555. package/dist/Misc/DefaultColourButton/package.json +0 -6
  556. package/dist/Misc/DiscussionTopicSelector/TopicSelector.js +0 -191
  557. package/dist/Misc/DiscussionTopicSelector/package.json +0 -6
  558. package/dist/Misc/DragAndDropPreview/DragAndDropPreview.js +0 -40
  559. package/dist/Misc/DragAndDropPreview/package.json +0 -6
  560. package/dist/Misc/EmojiInput/EmojiInput.js +0 -83
  561. package/dist/Misc/EmojiInput/css/emoji-mart.css +0 -497
  562. package/dist/Misc/ExerciseBottomBar/ExerciseBottomBar.js +0 -95
  563. package/dist/Misc/ExerciseBottomBar/package.json +0 -6
  564. package/dist/Misc/ExerciseProgressBar/ExerciseProgressBar.js +0 -56
  565. package/dist/Misc/ExerciseProgressBar/package.json +0 -6
  566. package/dist/Misc/FabContainer/FabContainer.js +0 -42
  567. package/dist/Misc/FabContainer/package.json +0 -6
  568. package/dist/Misc/HideOnScroll/HideOnScroll.js +0 -27
  569. package/dist/Misc/HideOnScroll/package.json +0 -6
  570. package/dist/Misc/HoverText/HoverText.js +0 -303
  571. package/dist/Misc/HtmlTooltipComponent/HtmlTooltipComponent.js +0 -69
  572. package/dist/Misc/HtmlTooltipComponent/package.json +0 -6
  573. package/dist/Misc/ImageLibrary/ImageLibrary.js +0 -311
  574. package/dist/Misc/ImagePreview/ImagePreview.js +0 -43
  575. package/dist/Misc/InfiniteScroll/InfiniteScroll.js +0 -37
  576. package/dist/Misc/InfiniteScroll/package.json +0 -6
  577. package/dist/Misc/LanguageSelector/LanguageSelector.js +0 -163
  578. package/dist/Misc/LanguageSelector/package.json +0 -6
  579. package/dist/Misc/MedalSelector/BronzeMedal.js +0 -1362
  580. package/dist/Misc/MedalSelector/GoldMedal.js +0 -1322
  581. package/dist/Misc/MedalSelector/MedalSelector.js +0 -55
  582. package/dist/Misc/MedalSelector/SilverMedal.js +0 -1862
  583. package/dist/Misc/MedalSelector/styles.css +0 -24
  584. package/dist/Misc/NotFound/Bot.js +0 -62
  585. package/dist/Misc/NotFound/Bots.js +0 -75
  586. package/dist/Misc/NotFound/ClassCourses.js +0 -198
  587. package/dist/Misc/NotFound/Classroom.js +0 -61
  588. package/dist/Misc/NotFound/Classrooms.js +0 -93
  589. package/dist/Misc/NotFound/Course.js +0 -62
  590. package/dist/Misc/NotFound/Courses.js +0 -111
  591. package/dist/Misc/NotFound/Discussions.js +0 -52
  592. package/dist/Misc/NotFound/Members.js +0 -48
  593. package/dist/Misc/NotFound/Roleplay.js +0 -62
  594. package/dist/Misc/NotFound/Roleplays.js +0 -75
  595. package/dist/Misc/NotFound/Script.js +0 -47
  596. package/dist/Misc/NotFound/Sections.js +0 -63
  597. package/dist/Misc/NotFound/Topic.js +0 -62
  598. package/dist/Misc/Notes/Notes.js +0 -77
  599. package/dist/Misc/Notes/Notes.test.js +0 -20
  600. package/dist/Misc/Notes/package.json +0 -6
  601. package/dist/Misc/NualaCreating/Nuala1.js +0 -352
  602. package/dist/Misc/NualaCreating/Nuala2.js +0 -455
  603. package/dist/Misc/NualaCreating/Nuala3.js +0 -462
  604. package/dist/Misc/NualaCreating/NualaCreating.js +0 -23
  605. package/dist/Misc/NualaCreating/styles.css +0 -68
  606. package/dist/Misc/NualangVerifiedIcon/NualangVerifiedIcon.js +0 -19
  607. package/dist/Misc/OnboardingEnrolment/CheckIfCourse.js +0 -33
  608. package/dist/Misc/OnboardingEnrolment/ClassCodeInvalid.js +0 -14
  609. package/dist/Misc/OnboardingEnrolment/ClassroomCodeInvalid.js +0 -14
  610. package/dist/Misc/OnboardingEnrolment/EnrolKey.js +0 -14
  611. package/dist/Misc/Overlay/Overlay.js +0 -59
  612. package/dist/Misc/Overlay/package.json +0 -6
  613. package/dist/Misc/PhraseDisplay/PhraseDisplay.js +0 -123
  614. package/dist/Misc/ProgressiveCardMedia/ProgressiveCardMedia.js +0 -38
  615. package/dist/Misc/ProgressiveCardMedia/package.json +0 -6
  616. package/dist/Misc/PronunciationScore/PronunciationScore.js +0 -92
  617. package/dist/Misc/PronunciationScore/package.json +0 -6
  618. package/dist/Misc/Recorder/Recorder.js +0 -151
  619. package/dist/Misc/Recorder/package.json +0 -6
  620. package/dist/Misc/ReportProblem/ReportProblem.js +0 -64
  621. package/dist/Misc/ReportProblem/package.json +0 -6
  622. package/dist/Misc/RoleplayChatWaveForm/RoleplayChatWaveForm.js +0 -199
  623. package/dist/Misc/RoleplayChatWaveForm/package.json +0 -6
  624. package/dist/Misc/RoleplayWaveform/RoleplayWaveform.js +0 -95
  625. package/dist/Misc/RoleplayWaveform/package.json +0 -6
  626. package/dist/Misc/RubyText/RubyText.js +0 -27
  627. package/dist/Misc/ShareButton/ShareButton.js +0 -69
  628. package/dist/Misc/ShareButton/ShareDrawer.js +0 -241
  629. package/dist/Misc/ShareButton/package.json +0 -6
  630. package/dist/Misc/SignOut/SignOut.js +0 -132
  631. package/dist/Misc/SignOut/package.json +0 -6
  632. package/dist/Misc/SiteLanguageSelector/SiteLanguageSelector.js +0 -107
  633. package/dist/Misc/SiteLanguageSelector/package.json +0 -6
  634. package/dist/Misc/Snackbar/Snackbar.js +0 -98
  635. package/dist/Misc/Snackbar/package.json +0 -6
  636. package/dist/Misc/SpeedDial/SpeedDial.js +0 -49
  637. package/dist/Misc/SpeedDial/package.json +0 -6
  638. package/dist/Misc/StudentWaitingMessage/StudentWaitingMessage.js +0 -38
  639. package/dist/Misc/SubmitTextField/SubmitTextField.js +0 -48
  640. package/dist/Misc/Testimonials/Testimonials.js +0 -82
  641. package/dist/Misc/Testimonials/package.json +0 -6
  642. package/dist/Misc/ThemeToggle/ThemeToggle.js +0 -39
  643. package/dist/Misc/ThemeToggle/package.json +0 -6
  644. package/dist/Misc/VoiceSpeed/VoiceSpeed.js +0 -68
  645. package/dist/Misc/VoiceSpeed/package.json +0 -6
  646. package/dist/Misc/WaveFormLite/WaveFormLite.js +0 -138
  647. package/dist/Misc/WaveFormLite/package.json +0 -6
  648. package/dist/Misc/Waveform/Waveform.js +0 -93
  649. package/dist/Misc/Waveform/package.json +0 -6
  650. package/dist/Misc/WhatsNew/WhatsNew.js +0 -105
  651. package/dist/Misc/WhatsNew/package.json +0 -6
  652. package/dist/Misc/WhatsNew/whatsnew.md +0 -41
  653. package/dist/Navigation/BottomBar/BottomBar.js +0 -72
  654. package/dist/Navigation/Breadcrumbs/Breadcrumbs.js +0 -113
  655. package/dist/Navigation/Breadcrumbs/Breadcrumbs.test.js +0 -24
  656. package/dist/Navigation/Breadcrumbs/package.json +0 -6
  657. package/dist/Navigation/Header/Header.js +0 -90
  658. package/dist/Navigation/Header/Header.test.js +0 -20
  659. package/dist/Navigation/Header/package.json +0 -6
  660. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.js +0 -532
  661. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.test.js +0 -23
  662. package/dist/Navigation/ResponsiveDrawer/package.json +0 -6
  663. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.js +0 -253
  664. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.test.js +0 -20
  665. package/dist/Navigation/ResponsiveStepper/package.json +0 -6
  666. package/dist/Navigation/ResponsiveTabs/ResponsiveTabs.js +0 -379
  667. package/dist/Navigation/ResponsiveTabs/TabContainer.js +0 -28
  668. package/dist/Navigation/ResponsiveTabs/package.json +0 -6
  669. package/dist/Navigation/_nav.js +0 -164
  670. package/dist/Payments/FreeTrial/FreeTrial.js +0 -106
  671. package/dist/Payments/FreeTrial/package.json +0 -6
  672. package/dist/Tables/Attempt/Attempt.js +0 -322
  673. package/dist/Tables/BotRows/BotRows.js +0 -132
  674. package/dist/Tables/BotRows/package.json +0 -6
  675. package/dist/Tables/Bots/Bots.js +0 -280
  676. package/dist/Tables/Bots/package.json +0 -6
  677. package/dist/Tables/Chart/Chart.js +0 -54
  678. package/dist/Tables/Chart/package.json +0 -5
  679. package/dist/Tables/ClassroomRows/ClassroomRows.js +0 -152
  680. package/dist/Tables/ClassroomRows/package.json +0 -6
  681. package/dist/Tables/Classrooms/Classrooms.js +0 -282
  682. package/dist/Tables/Classrooms/package.json +0 -6
  683. package/dist/Tables/CourseRows/CourseRows.js +0 -185
  684. package/dist/Tables/CourseRows/package.json +0 -6
  685. package/dist/Tables/Courses/Courses.js +0 -287
  686. package/dist/Tables/Courses/Courses.test.js +0 -29
  687. package/dist/Tables/Courses/package.json +0 -6
  688. package/dist/Tables/CreatedDiscussionsTable/CreatedDiscussionsTable.js +0 -188
  689. package/dist/Tables/GameRows/GameRows.js +0 -87
  690. package/dist/Tables/GameRows/package.json +0 -6
  691. package/dist/Tables/Games/Games.js +0 -258
  692. package/dist/Tables/Games/package.json +0 -6
  693. package/dist/Tables/MeetingPrompstList/MeetingPromptsList.js +0 -565
  694. package/dist/Tables/Phrases/Phrases.js +0 -200
  695. package/dist/Tables/Phrases/Phrases.test.js +0 -20
  696. package/dist/Tables/Phrases/package.json +0 -6
  697. package/dist/Tables/Plans/Plans.js +0 -74
  698. package/dist/Tables/Plans/plans.json +0 -162
  699. package/dist/Tables/Plans/plans2.json +0 -151
  700. package/dist/Tables/Progress/Header.js +0 -559
  701. package/dist/Tables/Progress/Progress.js +0 -502
  702. package/dist/Tables/Progress/ProgressList.js +0 -905
  703. package/dist/Tables/Progress/ProgressList.test.js +0 -48
  704. package/dist/Tables/Progress/ProgressTable.js +0 -882
  705. package/dist/Tables/Progress/ProgressTable.test.js +0 -258
  706. package/dist/Tables/Progress/ProgressTableRow.js +0 -295
  707. package/dist/Tables/Progress/README.md +0 -53
  708. package/dist/Tables/Progress/SelectMembers.js +0 -64
  709. package/dist/Tables/Progress/TableToolbar.js +0 -134
  710. package/dist/Tables/Progress/TableToolbar.test.js +0 -69
  711. package/dist/Tables/Progress/cells/index.js +0 -523
  712. package/dist/Tables/Progress/cells/index.test.js +0 -334
  713. package/dist/Tables/Progress/constants.js +0 -10
  714. package/dist/Tables/Progress/exportToExcel.js +0 -224
  715. package/dist/Tables/Progress/exportToExcel.test.js +0 -135
  716. package/dist/Tables/Progress/helpers.js +0 -42
  717. package/dist/Tables/Progress/helpers.test.js +0 -23
  718. package/dist/Tables/Progress/package.json +0 -6
  719. package/dist/Tables/Progress/sorting.js +0 -78
  720. package/dist/Tables/Progress/sorting.test.js +0 -69
  721. package/dist/Tables/Progress/styledComponents.js +0 -156
  722. package/dist/Tables/Progress/useProgressUrlParams.js +0 -162
  723. package/dist/Tables/Progress/useProgressUrlParams.test.js +0 -183
  724. package/dist/Tables/Progress/utils.js +0 -214
  725. package/dist/Tables/Progress/utils.test.js +0 -129
  726. package/dist/Tables/Progress/viewState.js +0 -27
  727. package/dist/Tables/RecordingListCards/RecordingListCards.js +0 -192
  728. package/dist/Tables/RoleplayRows/RoleplayRows.js +0 -129
  729. package/dist/Tables/RoleplayRows/package.json +0 -6
  730. package/dist/Tables/Roleplays/Roleplays.js +0 -280
  731. package/dist/Tables/Roleplays/package.json +0 -6
  732. package/dist/Tables/ScheduleListCards/ScheduleListCards.js +0 -92
  733. package/dist/Tables/SubmissionsTableCards/SubmissionsTableCards.js +0 -296
  734. package/dist/Tables/TrialUsers/TrialUsers.js +0 -155
  735. package/dist/Tables/Unanswered/Unanswered.js +0 -97
  736. package/dist/Tables/User/UserTable.js +0 -139
  737. package/dist/Tables/Users/UsersTable.js +0 -159
  738. package/dist/config.js +0 -413
  739. package/dist/hooks/handleBotVarsDownload.js +0 -40
  740. package/dist/hooks/handleScriptDownload.js +0 -93
  741. package/dist/hooks/useClassroomState.js +0 -55
  742. package/dist/hooks/useClassroomStateOld.js +0 -81
  743. package/dist/hooks/useConfirm.js +0 -19
  744. package/dist/hooks/useCourseState.js +0 -62
  745. package/dist/hooks/useCourseStateOld.js +0 -89
  746. package/dist/hooks/useDebounce.js +0 -20
  747. package/dist/hooks/useExerciseDocumentTitle.js +0 -15
  748. package/dist/hooks/useExerciseState.js +0 -2039
  749. package/dist/hooks/useLanguageTokens.js +0 -73
  750. package/dist/hooks/useListScroll.js +0 -19
  751. package/dist/hooks/usePhonetics.js +0 -64
  752. package/dist/hooks/usePhraseNameDialog.js +0 -10
  753. package/dist/hooks/useProgressiveImg.js +0 -21
  754. package/dist/hooks/useRecognition.js +0 -455
  755. package/dist/hooks/useSpreadsheetState.js +0 -87
  756. package/dist/hooks/useUrlQueryParam.js +0 -27
  757. package/dist/hooks/useWordBankFocus.js +0 -80
  758. package/dist/icons/AccountBalanceOff.js +0 -5
  759. package/dist/icons/KeyBoardOffDark.js +0 -22
  760. package/dist/icons/KeyBoardOffLight.js +0 -22
  761. package/dist/img/0-nuala-001.svg +0 -34
  762. package/dist/img/1-teacher-001.svg +0 -38
  763. package/dist/img/AudioNuala.svg +0 -165
  764. package/dist/img/Bronze Medal.svg +0 -545
  765. package/dist/img/Bronze.svg +0 -349
  766. package/dist/img/BronzeBadge.svg +0 -493
  767. package/dist/img/BronzeBadgeWithoutRibbon.svg +0 -317
  768. package/dist/img/Frame 51.svg +0 -98
  769. package/dist/img/Frame 52.svg +0 -131
  770. package/dist/img/Frame 53.svg +0 -139
  771. package/dist/img/Gold Badge.svg +0 -362
  772. package/dist/img/Gold Medal.svg +0 -481
  773. package/dist/img/GoldBadge.svg +0 -470
  774. package/dist/img/GoldBadgeWithoutRibbon.svg +0 -324
  775. package/dist/img/NewText.svg +0 -5
  776. package/dist/img/NualaCreateImage.svg +0 -129
  777. package/dist/img/NualaHeadphonesBackground.svg +0 -39
  778. package/dist/img/NualangLiveAnswerQuickly.svg +0 -103
  779. package/dist/img/NualangLiveAnwerQuicklyListening.svg +0 -3608
  780. package/dist/img/NualangLiveListen.png +0 -0
  781. package/dist/img/NualangLiveListen.svg +0 -42
  782. package/dist/img/NualangLiveListenQuickly.png +0 -0
  783. package/dist/img/NualangLiveListenToPhrase.svg +0 -4286
  784. package/dist/img/NualangLivePickAnswer.svg +0 -134
  785. package/dist/img/NualangLiveResult.png +0 -0
  786. package/dist/img/NualangLiveResult.svg +0 -1235
  787. package/dist/img/NualangLiveRoleplayAnswer.png +0 -0
  788. package/dist/img/NualangLiveRoleplayAnswer.svg +0 -334
  789. package/dist/img/NualangLiveRoleplayConvo.png +0 -0
  790. package/dist/img/NualangLiveRoleplayConvo.svg +0 -282
  791. package/dist/img/NualangLiveSeePlace.svg +0 -134
  792. package/dist/img/NualangLiveTranslate.png +0 -0
  793. package/dist/img/NualangLiveTranslate.svg +0 -54
  794. package/dist/img/NualangLiveTranslateQuickly.png +0 -0
  795. package/dist/img/NualangLiveTranslateQuickly.svg +0 -197
  796. package/dist/img/NualangLiveViewConversations.svg +0 -135
  797. package/dist/img/Polly.svg +0 -18
  798. package/dist/img/Silver Badge.svg +0 -523
  799. package/dist/img/Silver Medal.svg +0 -549
  800. package/dist/img/SilverBadge.svg +0 -655
  801. package/dist/img/SilverBadgeWithoutRibbon.svg +0 -491
  802. package/dist/img/aaron-square.jpg +0 -0
  803. package/dist/img/aaronAvatar.png +0 -0
  804. package/dist/img/add-file.svg +0 -1
  805. package/dist/img/avatars/0-nuala-001.svg +0 -34
  806. package/dist/img/avatars/0-nuala-002.svg +0 -25
  807. package/dist/img/avatars/0-nuala-003.svg +0 -27
  808. package/dist/img/avatars/0-nuala-004.svg +0 -41
  809. package/dist/img/avatars/0-nuala-005.svg +0 -33
  810. package/dist/img/avatars/0-nuala-006.svg +0 -32
  811. package/dist/img/avatars/0-nuala-007.svg +0 -37
  812. package/dist/img/avatars/0-nuala-008.svg +0 -21
  813. package/dist/img/avatars/0-nuala-009.svg +0 -21
  814. package/dist/img/avatars/0-nuala-010.svg +0 -39
  815. package/dist/img/avatars/0-nuala-011.svg +0 -33
  816. package/dist/img/avatars/0-nuala-012.svg +0 -43
  817. package/dist/img/avatars/0-nuala-013.svg +0 -36
  818. package/dist/img/avatars/0-nuala-014.svg +0 -30
  819. package/dist/img/avatars/0-nuala-015.svg +0 -28
  820. package/dist/img/avatars/0-nuala-016.svg +0 -24
  821. package/dist/img/avatars/0-nuala-017.svg +0 -31
  822. package/dist/img/avatars/0-nuala-018.svg +0 -29
  823. package/dist/img/avatars/0-nuala-019.svg +0 -57
  824. package/dist/img/avatars/0-nuala-020.svg +0 -30
  825. package/dist/img/avatars/0-nuala-021.svg +0 -28
  826. package/dist/img/avatars/001-man.svg +0 -104
  827. package/dist/img/avatars/002-girl.svg +0 -92
  828. package/dist/img/avatars/006-woman-1.svg +0 -99
  829. package/dist/img/avatars/028-woman-7.svg +0 -95
  830. package/dist/img/avatars/029-man-8.svg +0 -95
  831. package/dist/img/avatars/035-woman-9.svg +0 -86
  832. package/dist/img/avatars/066-boy-6.svg +0 -91
  833. package/dist/img/avatars/1-teacher-001.svg +0 -38
  834. package/dist/img/avatars/1-teacher-002.svg +0 -52
  835. package/dist/img/avatars/1-teacher-003.svg +0 -86
  836. package/dist/img/avatars/avatar1.png +0 -0
  837. package/dist/img/avatars/avatar2.png +0 -0
  838. package/dist/img/avatars/nuala_10_celebrating.svg +0 -44
  839. package/dist/img/avatars/nuala_10_speaking.svg +0 -45
  840. package/dist/img/avatars/nuala_11_celebrating.svg +0 -38
  841. package/dist/img/avatars/nuala_11_speaking.svg +0 -41
  842. package/dist/img/avatars/nuala_12_celebrating.svg +0 -48
  843. package/dist/img/avatars/nuala_12_speaking.svg +0 -49
  844. package/dist/img/avatars/nuala_13_celebrating.svg +0 -41
  845. package/dist/img/avatars/nuala_13_speaking.svg +0 -44
  846. package/dist/img/avatars/nuala_14_celebrating.svg +0 -35
  847. package/dist/img/avatars/nuala_14_speaking.svg +0 -36
  848. package/dist/img/avatars/nuala_15_celebrating.svg +0 -33
  849. package/dist/img/avatars/nuala_15_speaking.svg +0 -36
  850. package/dist/img/avatars/nuala_16_celebrating.svg +0 -29
  851. package/dist/img/avatars/nuala_16_speaking.svg +0 -32
  852. package/dist/img/avatars/nuala_17_celebrating.svg +0 -36
  853. package/dist/img/avatars/nuala_17_speaking.svg +0 -39
  854. package/dist/img/avatars/nuala_18_celebrating.svg +0 -34
  855. package/dist/img/avatars/nuala_18_speaking.svg +0 -37
  856. package/dist/img/avatars/nuala_19_celebrating.svg +0 -62
  857. package/dist/img/avatars/nuala_19_speaking.svg +0 -65
  858. package/dist/img/avatars/nuala_1_celebrating.svg +0 -30
  859. package/dist/img/avatars/nuala_1_speaking.svg +0 -37
  860. package/dist/img/avatars/nuala_20_celebrating.svg +0 -35
  861. package/dist/img/avatars/nuala_20_speaking.svg +0 -38
  862. package/dist/img/avatars/nuala_21_celebrating.svg +0 -33
  863. package/dist/img/avatars/nuala_21_speaking.svg +0 -36
  864. package/dist/img/avatars/nuala_2_celebrating.svg +0 -21
  865. package/dist/img/avatars/nuala_2_speaking.svg +0 -29
  866. package/dist/img/avatars/nuala_3_celebrating.svg +0 -20
  867. package/dist/img/avatars/nuala_3_speaking.svg +0 -28
  868. package/dist/img/avatars/nuala_4_celebrating.svg +0 -33
  869. package/dist/img/avatars/nuala_4_speaking.svg +0 -41
  870. package/dist/img/avatars/nuala_5_celebrating.svg +0 -30
  871. package/dist/img/avatars/nuala_5_speaking.svg +0 -36
  872. package/dist/img/avatars/nuala_6_celebrating.svg +0 -37
  873. package/dist/img/avatars/nuala_6_speaking.svg +0 -36
  874. package/dist/img/avatars/nuala_7_celebrating.svg +0 -42
  875. package/dist/img/avatars/nuala_7_speaking.svg +0 -43
  876. package/dist/img/avatars/nuala_8_celebrating.svg +0 -26
  877. package/dist/img/avatars/nuala_8_speaking.svg +0 -29
  878. package/dist/img/avatars/nuala_9_celebrating.svg +0 -26
  879. package/dist/img/avatars/nuala_9_speaking.svg +0 -27
  880. package/dist/img/aws.svg +0 -6
  881. package/dist/img/azure.svg +0 -10
  882. package/dist/img/bot-error.svg +0 -28
  883. package/dist/img/bot_nuala.svg +0 -45
  884. package/dist/img/classroom.svg +0 -178
  885. package/dist/img/connorAvatar.png +0 -0
  886. package/dist/img/course.svg +0 -113
  887. package/dist/img/dashboard.svg +0 -104
  888. package/dist/img/defaultImg.png +0 -0
  889. package/dist/img/google-classroom.svg +0 -1
  890. package/dist/img/jamieAvatar.png +0 -0
  891. package/dist/img/nuala_1_celebrating.svg +0 -33
  892. package/dist/img/nuala_2_celebrating.svg +0 -20
  893. package/dist/img/nuala_3_celebrating.svg +0 -21
  894. package/dist/img/nuala_4_celebrating.svg +0 -30
  895. package/dist/img/nuala_5_celebrating.svg +0 -30
  896. package/dist/img/nuala_celebrating.svg +0 -39
  897. package/dist/img/nuala_sign_in.svg +0 -62
  898. package/dist/img/nuala_speaking.svg +0 -41
  899. package/dist/img/nuala_speaking_2.svg +0 -41
  900. package/dist/img/nuala_speaking_3.svg +0 -41
  901. package/dist/img/nuala_speaking_4.svg +0 -41
  902. package/dist/img/nualang-logo-primary.svg +0 -17
  903. package/dist/img/nualangSquareIcon.svg +0 -18
  904. package/dist/img/nualas.svg +0 -185
  905. package/dist/img/photos.svg +0 -1
  906. package/dist/img/sentiment_dissatisfied_24px.svg +0 -3
  907. package/dist/img/sentiment_satisfied_24px.svg +0 -3
  908. package/dist/img/sentiment_very_satisfied_24px.svg +0 -3
  909. package/dist/img/soundWave.png +0 -0
  910. package/dist/img/stars1.svg +0 -44
  911. package/dist/img/stars2.svg +0 -30
  912. package/dist/img/stephenAvatar.png +0 -0
  913. package/dist/img/structuring.svg +0 -76
  914. package/dist/img/teacher-create-2.svg +0 -81
  915. package/dist/img/teacher-create.svg +0 -49
  916. package/dist/img/teacher-world.svg +0 -271
  917. package/dist/img/teacher.svg +0 -89
  918. package/dist/img/work-chat.svg +0 -1
  919. package/dist/img/world.svg +0 -41
  920. package/dist/index.js +0 -4
  921. package/dist/logger.js +0 -6
  922. package/dist/theme/colors/primary.js +0 -17
  923. package/dist/theme/colors/secondary.js +0 -17
  924. package/dist/theme/getComponents.js +0 -234
  925. package/dist/theme/index.js +0 -82
  926. package/dist/utils/Styles.js +0 -59
  927. package/dist/utils/canvasUtils.js +0 -55
  928. package/dist/utils/constants.js +0 -32
  929. package/dist/utils/currency-code-map.json +0 -1460
  930. package/dist/utils/dragAndDrop/dragAndDrop.js +0 -222
  931. package/dist/utils/index.js +0 -641
  932. package/dist/utils/japaneseTokenizer.js +0 -91
  933. package/dist/utils/languageHelpers.js +0 -41
  934. package/dist/utils/placeholder-images/index.js +0 -13
  935. package/dist/utils/voiceImages.js +0 -16
@@ -1,1539 +0,0 @@
1
- import { useState, useEffect, useRef, useCallback } from "react";
2
- import { useLocation, useNavigate, useParams } from "react-router";
3
- import CopyIcon from "@mui/icons-material/FileCopy";
4
- import Typography from "@mui/material/Typography";
5
- import MoreVertIcon from "@mui/icons-material/MoreVert";
6
- import Menu from "@mui/material/Menu";
7
- import MenuItem from "@mui/material/MenuItem";
8
- import useMediaQuery from "@mui/material/useMediaQuery";
9
- import { Avatar, AvatarGroup, ListItem, ListItemButton } from "@mui/material";
10
- import SelectClassroom from "../../Dialogs/SelectClassroom/SelectClassroom";
11
- import PlaceholderImages from "../../utils/placeholder-images/index";
12
- import { useDrag, useDrop } from "react-dnd";
13
- import update from "immutability-helper";
14
- import { searchStringToObj, objToSearchString } from "../../utils";
15
- import FlashOnIcon from "@mui/icons-material/FlashOn";
16
- import FlashOffIcon from "@mui/icons-material/FlashOff";
17
- import MenuBookIcon from "@mui/icons-material/MenuBook";
18
- import { Collapse, ListItemText, ListItemIcon, List, ListItemAvatar, IconButton, Badge, Tooltip, Box, Chip } from "@mui/material";
19
- import Add from "@mui/icons-material/Add";
20
- import Face from "@mui/icons-material/Face";
21
- import ForumIcon from "@mui/icons-material/Forum";
22
- import ExpandLess from "@mui/icons-material/ExpandLess";
23
- import ExpandMore from "@mui/icons-material/ExpandMore";
24
- import Delete from "@mui/icons-material/Delete";
25
- import Create from "@mui/icons-material/Create";
26
- import Done from "@mui/icons-material/Done";
27
- import DragHandle from "@mui/icons-material/DragHandle";
28
- import Visibility from "@mui/icons-material/Visibility";
29
- import VisibilityOff from "@mui/icons-material/VisibilityOff";
30
- import Timeline from "@mui/icons-material/Timeline";
31
- import Timelapse from "@mui/icons-material/Timelapse";
32
- import HtmlTooltipComponent from "../../Misc/HtmlTooltipComponent/HtmlTooltipComponent";
33
- import CreatePhraseGroupDialog from "../../Dialogs/CreatePhraseGroupDialog/CreatePhraseGroupDialog";
34
- import PhraseListEditorDialog from "../../Editors/PhraseList/PhraseList";
35
- import { useTheme } from "@mui/material/styles";
36
- import { styled } from "@mui/system";
37
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
38
- const sxRoot = () => ({
39
- width: "100%"
40
- });
41
- const sxNested = theme => ({
42
- paddingLeft: theme.spacing(9)
43
- });
44
- const sxGreenColor = theme => ({
45
- color: theme.palette.success ? theme.palette.success.dark : ""
46
- });
47
- const sxGreenColorWithMargin = theme => ({
48
- color: theme.palette.success ? theme.palette.success.dark : "",
49
- marginTop: theme.spacing(2),
50
- marginRight: theme.spacing(2),
51
- marginBottom: theme.spacing(2)
52
- });
53
- const sxInfoColorWithMargin = theme => ({
54
- color: theme.palette.info ? theme.palette.info.main : "",
55
- marginTop: theme.spacing(2),
56
- marginRight: theme.spacing(2),
57
- marginBottom: theme.spacing(2)
58
- });
59
- const sxDescriptionWrapper = () => ({
60
- maxWidth: "70%"
61
- });
62
- function OverflowMenu({
63
- children,
64
- anchorEl,
65
- handleClose
66
- }) {
67
- return /*#__PURE__*/_jsx(Menu, {
68
- anchorEl: anchorEl,
69
- keepMounted: true,
70
- open: Boolean(anchorEl),
71
- onClose: handleClose,
72
- children: children
73
- });
74
- }
75
- const getRoleplayProgress = (topicProgress, roleplayId) => {
76
- const idx = topicProgress.findIndex(p => p.roleplayId === roleplayId);
77
- if (idx > -1) {
78
- return {
79
- existingMessages: topicProgress[idx].existingMessages,
80
- existingAnswerAttempts: topicProgress[idx].answerAttempts,
81
- selectedActor: topicProgress[idx].selectedActor,
82
- exerciseStartTime: topicProgress[idx].exerciseStartTime
83
- };
84
- }
85
- return {
86
- existingMessages: null,
87
- existingAnswerAttempts: null,
88
- selectedActor: null,
89
- exerciseStartTime: null
90
- };
91
- };
92
- const getBotProgress = (topicProgress, botId) => {
93
- const idx = topicProgress.findIndex(p => p.botId === botId);
94
- if (idx > -1) {
95
- return {
96
- existingMessages: topicProgress[idx].existingMessages,
97
- existingVars: topicProgress[idx].existingVars,
98
- exerciseStartTime: topicProgress[idx].exerciseStartTime
99
- };
100
- }
101
- return {
102
- existingMessages: null,
103
- existingVars: null,
104
- exerciseStartTime: null
105
- };
106
- };
107
- export function ProgressBadge({
108
- completions
109
- }) {
110
- return completions > 0 ? /*#__PURE__*/_jsx(Badge, {
111
- sx: sxGreenColorWithMargin,
112
- badgeContent: completions,
113
- color: "default",
114
- children: /*#__PURE__*/_jsx(Done, {})
115
- }) : null;
116
- }
117
- export function InProgressBadge({
118
- progressCount
119
- }) {
120
- return progressCount > 0 ? /*#__PURE__*/_jsx(Badge, {
121
- sx: sxInfoColorWithMargin,
122
- color: "default",
123
- children: /*#__PURE__*/_jsx(Timelapse, {})
124
- }) : null;
125
- }
126
- const ExerciseAvatarGroup = styled(AvatarGroup)(() => ({
127
- justifyContent: "start",
128
- "& .MuiAvatarGroup-avatar": {
129
- width: 24,
130
- height: 24,
131
- fontSize: "12px",
132
- fontWeight: "bold"
133
- }
134
- }));
135
- function PhraseListRow({
136
- t,
137
- phraseList,
138
- completions,
139
- numberOfPhraseListCompletions,
140
- handleDeletePhraseList,
141
- handleUpdatePhraseList,
142
- isCreator,
143
- isMember,
144
- isLargeScreen,
145
- courseId,
146
- sectionId,
147
- topicId,
148
- handleDuplicatePhraseList,
149
- handleOpenPhraseList,
150
- handleEditPhraseList,
151
- teachClassrooms,
152
- phraseListIndex,
153
- movePhraseList,
154
- onDropPhraseList
155
- }) {
156
- const params = useParams();
157
- const {
158
- classroomId
159
- } = params;
160
- const [anchorEl, setAnchorEl] = useState(null);
161
- const [isPhraseListHiddenState, setIsPhraseListHiddenState] = useState(phraseList.isPhraseListHidden);
162
- const navigate = useNavigate();
163
- const ref = useRef(null);
164
- const [{
165
- handlerId
166
- }, drop] = useDrop({
167
- accept: "phraseList",
168
- hover(item, monitor) {
169
- if (!ref.current) return;
170
- const dragIndex = item.index;
171
- const hoverIndex = phraseListIndex;
172
- if (dragIndex === hoverIndex) return;
173
- const hoverBoundingRect = ref.current.getBoundingClientRect();
174
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
175
- const clientOffset = monitor.getClientOffset();
176
- const hoverClientY = clientOffset.y - hoverBoundingRect.top;
177
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) return;
178
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) return;
179
- movePhraseList(dragIndex, hoverIndex);
180
- item.index = hoverIndex;
181
- }
182
- });
183
- const [{
184
- isDragging
185
- }, drag] = useDrag({
186
- type: "phraseList",
187
- canDrag: isCreator && isLargeScreen,
188
- item: {
189
- index: phraseListIndex,
190
- primary: phraseList,
191
- secondary: phraseList.description,
192
- image: phraseList.picture
193
- },
194
- collect: monitor => ({
195
- isDragging: monitor.isDragging()
196
- }),
197
- end: () => onDropPhraseList()
198
- });
199
- const opacity = isDragging ? 0 : 1;
200
- drag(drop(ref));
201
- useEffect(() => {
202
- setIsPhraseListHiddenState(phraseList.isPhraseListHidden);
203
- }, [phraseList]);
204
- const [isSelectClassroomDialogOpen, setIsSelectClassroomDialogOpen] = useState(false);
205
- const handleClickMenu = e => setAnchorEl(e.currentTarget);
206
- const handleCloseMenu = () => setAnchorEl(null);
207
- const {
208
- isPhraseListHidden
209
- } = phraseList;
210
- const phraseListCompletions = numberOfPhraseListCompletions(completions, phraseList.phraseListId);
211
- const updatePhraseListVisibility = async () => {
212
- setIsPhraseListHiddenState(!isPhraseListHidden);
213
- await handleUpdatePhraseList(phraseList.phraseListId, {
214
- isPhraseListHidden: !isPhraseListHidden
215
- });
216
- };
217
- return /*#__PURE__*/_jsxs(_Fragment, {
218
- children: [(!isPhraseListHiddenState || isCreator) && /*#__PURE__*/_jsx(ListItem, {
219
- ref: ref,
220
- style: {
221
- opacity
222
- },
223
- disablePadding: true,
224
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
225
- children: [!isCreator && isLargeScreen && /*#__PURE__*/_jsx(ProgressBadge, {
226
- completions: phraseListCompletions
227
- }), isLargeScreen && !isCreator && phraseListCompletions > 0 && classroomId && /*#__PURE__*/_jsx(Tooltip, {
228
- title: t("view_activity"),
229
- children: /*#__PURE__*/_jsx(IconButton, {
230
- onClick: () => navigate(`/classrooms/${classroomId}?courseId=${courseId}&sectionId=${sectionId}&topicId=${topicId}&phraseListId=${phraseList.phraseListId || ""}#Progress`),
231
- children: /*#__PURE__*/_jsx(Timeline, {})
232
- })
233
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
234
- title: t("edit_phrase_list") || "Edit",
235
- children: /*#__PURE__*/_jsx(IconButton, {
236
- onClick: () => handleEditPhraseList(phraseList),
237
- children: /*#__PURE__*/_jsx(Create, {})
238
- })
239
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
240
- title: isPhraseListHiddenState ? t("show_phrase_list") || "Show" : t("hide_phrase_list") || "Hide",
241
- children: /*#__PURE__*/_jsx("span", {
242
- children: /*#__PURE__*/_jsx(IconButton, {
243
- onClick: updatePhraseListVisibility,
244
- children: isPhraseListHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
245
- })
246
- })
247
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
248
- title: t("move_phrase_list") || "Move",
249
- children: /*#__PURE__*/_jsx(IconButton, {
250
- "data-handler-id": handlerId,
251
- style: {
252
- cursor: "move"
253
- },
254
- size: "large",
255
- children: /*#__PURE__*/_jsx(DragHandle, {})
256
- })
257
- }), isCreator && /*#__PURE__*/_jsx(Tooltip, {
258
- title: t("more_options"),
259
- children: /*#__PURE__*/_jsx("span", {
260
- children: /*#__PURE__*/_jsx(IconButton, {
261
- onClick: handleClickMenu,
262
- "aria-expanded": Boolean(anchorEl),
263
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
264
- })
265
- })
266
- })]
267
- }),
268
- children: /*#__PURE__*/_jsxs(ListItemButton, {
269
- id: phraseList.phraseListId,
270
- sx: sxNested,
271
- onClick: () => handleOpenPhraseList(phraseList),
272
- disabled: !(isMember || isCreator),
273
- children: [isLargeScreen && /*#__PURE__*/_jsx(ListItemAvatar, {
274
- children: /*#__PURE__*/_jsx(Avatar, {
275
- src: phraseList.picture || PlaceholderImages.roleplay,
276
- alt: ""
277
- })
278
- }), /*#__PURE__*/_jsx(ListItemText, {
279
- primary: isLargeScreen ? phraseList.phraseListName || "" : /*#__PURE__*/_jsxs(_Fragment, {
280
- children: [/*#__PURE__*/_jsx(Box, {
281
- sx: {
282
- mb: 1
283
- },
284
- children: /*#__PURE__*/_jsx(Avatar, {
285
- src: phraseList.picture || PlaceholderImages.roleplay,
286
- alt: ""
287
- })
288
- }), /*#__PURE__*/_jsx(Typography, {
289
- variant: "body1",
290
- children: phraseList.phraseListName || ""
291
- })]
292
- }),
293
- secondary: isLargeScreen ? /*#__PURE__*/_jsx(Box, {
294
- sx: isCreator ? sxDescriptionWrapper : null,
295
- children: /*#__PURE__*/_jsx(Typography, {
296
- variant: "body2",
297
- component: "p",
298
- color: "textSecondary",
299
- children: phraseList.description || ""
300
- })
301
- }) : !isCreator && /*#__PURE__*/_jsxs(_Fragment, {
302
- children: [/*#__PURE__*/_jsx(Typography, {
303
- variant: "body2",
304
- component: "p",
305
- color: "textSecondary",
306
- children: phraseList.description || ""
307
- }), /*#__PURE__*/_jsx(ProgressBadge, {
308
- completions: phraseListCompletions
309
- })]
310
- })
311
- })]
312
- })
313
- }), /*#__PURE__*/_jsxs(OverflowMenu, {
314
- anchorEl: anchorEl,
315
- handleClose: handleCloseMenu,
316
- children: [/*#__PURE__*/_jsxs(MenuItem, {
317
- onClick: () => setIsSelectClassroomDialogOpen(true),
318
- disabled: !isCreator && !(phraseListCompletions > 0),
319
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
320
- children: /*#__PURE__*/_jsx(Timeline, {})
321
- }), /*#__PURE__*/_jsx(ListItemText, {
322
- primary: t(isCreator ? "view_activity" : "show_progress")
323
- })]
324
- }), !isLargeScreen && /*#__PURE__*/_jsxs(_Fragment, {
325
- children: [/*#__PURE__*/_jsxs(MenuItem, {
326
- onClick: () => handleEditPhraseList(phraseList),
327
- disabled: !isCreator,
328
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
329
- children: /*#__PURE__*/_jsx(Create, {})
330
- }), /*#__PURE__*/_jsx(ListItemText, {
331
- primary: t("edit_phrase_list") || "Edit"
332
- })]
333
- }), /*#__PURE__*/_jsxs(MenuItem, {
334
- onClick: updatePhraseListVisibility,
335
- disabled: !isCreator,
336
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
337
- children: isPhraseListHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
338
- }), /*#__PURE__*/_jsx(ListItemText, {
339
- primary: isPhraseListHiddenState ? t("show_phrase_list") || "Show" : t("hide_phrase_list") || "Hide"
340
- })]
341
- })]
342
- }), isCreator && handleDuplicatePhraseList && /*#__PURE__*/_jsxs(MenuItem, {
343
- onClick: () => handleDuplicatePhraseList(phraseList),
344
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
345
- children: /*#__PURE__*/_jsx(CopyIcon, {})
346
- }), /*#__PURE__*/_jsx(ListItemText, {
347
- primary: t("create_duplicate")
348
- })]
349
- }), /*#__PURE__*/_jsxs(MenuItem, {
350
- onClick: () => handleDeletePhraseList(phraseList.phraseListId),
351
- disabled: !isCreator,
352
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
353
- children: /*#__PURE__*/_jsx(Delete, {})
354
- }), /*#__PURE__*/_jsx(ListItemText, {
355
- primary: t("remove_phrase_list") || "Remove"
356
- })]
357
- })]
358
- }), /*#__PURE__*/_jsx(SelectClassroom, {
359
- t: t,
360
- open: isSelectClassroomDialogOpen,
361
- handleClose: () => setIsSelectClassroomDialogOpen(false),
362
- title: t("select_a_classroom"),
363
- teachClassrooms: teachClassrooms || [],
364
- type: "phraseList",
365
- courseId: courseId,
366
- sectionId: sectionId,
367
- topicId: topicId,
368
- phraseListId: phraseList.phraseListId
369
- })]
370
- });
371
- }
372
-
373
- // ─── RoleplayListItem ─────────────────────────────────────────────────────────
374
-
375
- function RoleplayListItem({
376
- t,
377
- roleplay,
378
- completions,
379
- numberOfRoleplayCompletions,
380
- handleRemoveRoleplay,
381
- handleUpdateRoleplay,
382
- isCreator,
383
- isMember,
384
- topicProgress,
385
- isLargeScreen,
386
- courseId,
387
- sectionId,
388
- topicId,
389
- handleDuplicateRoleplay,
390
- handlePlayRoleplay,
391
- handleEditRoleplay,
392
- teachClassrooms,
393
- roleplayIndex,
394
- moveRoleplay,
395
- onDropRoleplay,
396
- parentClassroom,
397
- ...otherProps
398
- }) {
399
- const params = useParams();
400
- const {
401
- classroomId
402
- } = params;
403
- const [anchorEl, setAnchorEl] = useState(null);
404
- const [isRoleplayHiddenState, setIsRoleplayHiddenState] = useState(roleplay.isRoleplayHidden);
405
- const navigate = useNavigate();
406
- const ref = useRef(null);
407
- const [{
408
- handlerId
409
- }, drop] = useDrop({
410
- accept: "roleplay",
411
- hover(item, monitor) {
412
- if (!ref.current) return;
413
- const dragIndex = item.index;
414
- const hoverIndex = roleplayIndex;
415
- if (dragIndex === hoverIndex) return;
416
- const hoverBoundingRect = ref.current.getBoundingClientRect();
417
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
418
- const clientOffset = monitor.getClientOffset();
419
- const hoverClientY = clientOffset.y - hoverBoundingRect.top;
420
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) return;
421
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) return;
422
- moveRoleplay(dragIndex, hoverIndex);
423
- item.index = hoverIndex;
424
- }
425
- });
426
- const [{
427
- isDragging
428
- }, drag] = useDrag({
429
- type: "roleplay",
430
- canDrag: isCreator && isLargeScreen,
431
- item: {
432
- index: roleplayIndex,
433
- primary: roleplay,
434
- secondary: roleplay.description,
435
- image: roleplay.picture
436
- },
437
- collect: monitor => ({
438
- isDragging: monitor.isDragging()
439
- }),
440
- end: () => onDropRoleplay()
441
- });
442
- drag(drop(ref));
443
- useEffect(() => {
444
- setIsRoleplayHiddenState(roleplay.isRoleplayHidden);
445
- }, [roleplay]);
446
- const [isSelectClassroomDialogOpen, setIsSelectClassroomDialogOpen] = useState(false);
447
- const handleClickMenu = e => setAnchorEl(e.currentTarget);
448
- const handleCloseMenu = () => setAnchorEl(null);
449
- const roleplayProgress = getRoleplayProgress(topicProgress, roleplay.roleplayId);
450
- const {
451
- existingMessages
452
- } = roleplayProgress;
453
- const {
454
- isRoleplayHidden
455
- } = roleplay;
456
- const opacity = isDragging ? 0 : 1;
457
- const updateRoleplayVisibility = async () => {
458
- setIsRoleplayHiddenState(!isRoleplayHidden);
459
- await handleUpdateRoleplay(roleplay, {
460
- isRoleplayHidden: !isRoleplayHidden
461
- });
462
- };
463
- const roleplayCompletions = numberOfRoleplayCompletions(completions, roleplay.roleplayId);
464
- return /*#__PURE__*/_jsxs(_Fragment, {
465
- children: [(!isRoleplayHiddenState || isCreator) && /*#__PURE__*/_jsx(ListItem, {
466
- ref: ref,
467
- style: {
468
- opacity
469
- },
470
- disablePadding: true,
471
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
472
- children: [!isCreator && /*#__PURE__*/_jsxs(_Fragment, {
473
- children: [isLargeScreen && /*#__PURE__*/_jsx(InProgressBadge, {
474
- progressCount: existingMessages?.length || 0
475
- }), isLargeScreen && /*#__PURE__*/_jsx(ProgressBadge, {
476
- completions: roleplayCompletions
477
- })]
478
- }), isLargeScreen && !isCreator && roleplayCompletions > 0 && classroomId && /*#__PURE__*/_jsx(Tooltip, {
479
- title: t("view_activity"),
480
- children: /*#__PURE__*/_jsx(IconButton, {
481
- onClick: () => navigate(`/classrooms/${classroomId}?courseId=${courseId}&sectionId=${sectionId}&topicId=${topicId}&roleplayId=${roleplay.roleplayId || ""}#Progress`),
482
- children: /*#__PURE__*/_jsx(Timeline, {})
483
- })
484
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
485
- title: t("edit_roleplay"),
486
- children: /*#__PURE__*/_jsx(IconButton, {
487
- "data-cy": "edit-roleplay",
488
- onClick: () => handleEditRoleplay(roleplay),
489
- children: /*#__PURE__*/_jsx(Create, {})
490
- })
491
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
492
- title: isRoleplayHiddenState ? t("show_roleplay") : t("hide_roleplay"),
493
- children: /*#__PURE__*/_jsx("span", {
494
- children: /*#__PURE__*/_jsx(IconButton, {
495
- onClick: updateRoleplayVisibility,
496
- children: isRoleplayHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
497
- })
498
- })
499
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
500
- title: t("move_roleplay"),
501
- children: /*#__PURE__*/_jsx(IconButton, {
502
- "data-handler-id": handlerId,
503
- style: {
504
- cursor: "move"
505
- },
506
- size: "large",
507
- children: /*#__PURE__*/_jsx(DragHandle, {})
508
- })
509
- }), isCreator && /*#__PURE__*/_jsx(Tooltip, {
510
- title: t("more_options"),
511
- children: /*#__PURE__*/_jsx("span", {
512
- children: /*#__PURE__*/_jsx(IconButton, {
513
- onClick: handleClickMenu,
514
- "aria-expanded": Boolean(anchorEl),
515
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
516
- })
517
- })
518
- })]
519
- }),
520
- children: /*#__PURE__*/_jsxs(ListItemButton, {
521
- id: roleplay.roleplayId,
522
- sx: sxNested,
523
- onClick: () => handlePlayRoleplay(roleplay),
524
- disabled: !(isMember || isCreator),
525
- children: [isLargeScreen && /*#__PURE__*/_jsx(ListItemAvatar, {
526
- children: /*#__PURE__*/_jsx(Avatar, {
527
- src: roleplay.picture || roleplay.actor1?.picture || roleplay.actor2?.picture || PlaceholderImages.roleplay,
528
- alt: ""
529
- })
530
- }), /*#__PURE__*/_jsx(ListItemText, {
531
- primary: isLargeScreen ? roleplay.roleplayName || "" : /*#__PURE__*/_jsxs(_Fragment, {
532
- children: [/*#__PURE__*/_jsx(Box, {
533
- sx: {
534
- mb: 1
535
- },
536
- children: /*#__PURE__*/_jsx(Avatar, {
537
- src: roleplay.picture || roleplay.actor1?.picture || roleplay.actor2?.picture || PlaceholderImages.roleplay,
538
- alt: ""
539
- })
540
- }), /*#__PURE__*/_jsx(Typography, {
541
- variant: "body1",
542
- children: roleplay.roleplayName || ""
543
- })]
544
- }),
545
- secondary: isLargeScreen ? /*#__PURE__*/_jsx(Box, {
546
- sx: isCreator ? sxDescriptionWrapper : null,
547
- children: /*#__PURE__*/_jsx(Typography, {
548
- variant: "body2",
549
- component: "p",
550
- color: "textSecondary",
551
- children: roleplay.description || ""
552
- })
553
- }) : !isCreator && /*#__PURE__*/_jsxs(_Fragment, {
554
- children: [/*#__PURE__*/_jsx(Typography, {
555
- variant: "body2",
556
- component: "p",
557
- color: "textSecondary",
558
- children: roleplay.description || ""
559
- }), /*#__PURE__*/_jsx(InProgressBadge, {
560
- progressCount: existingMessages?.length || 0
561
- }), /*#__PURE__*/_jsx(ProgressBadge, {
562
- completions: roleplayCompletions
563
- })]
564
- })
565
- })]
566
- })
567
- }), /*#__PURE__*/_jsxs(OverflowMenu, {
568
- anchorEl: anchorEl,
569
- handleClose: handleCloseMenu,
570
- children: [/*#__PURE__*/_jsxs(MenuItem, {
571
- onClick: () => setIsSelectClassroomDialogOpen(true),
572
- disabled: !isCreator && !(roleplayCompletions > 0),
573
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
574
- children: /*#__PURE__*/_jsx(Timeline, {})
575
- }), /*#__PURE__*/_jsx(ListItemText, {
576
- primary: t(isCreator ? "view_activity" : "show_progress")
577
- })]
578
- }), !isLargeScreen && /*#__PURE__*/_jsxs(_Fragment, {
579
- children: [/*#__PURE__*/_jsxs(MenuItem, {
580
- "data-cy": "menu-edit-roleplay",
581
- onClick: () => handleEditRoleplay(roleplay),
582
- disabled: !isCreator,
583
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
584
- children: /*#__PURE__*/_jsx(Create, {})
585
- }), /*#__PURE__*/_jsx(ListItemText, {
586
- primary: t("edit_roleplay")
587
- })]
588
- }), /*#__PURE__*/_jsxs(MenuItem, {
589
- onClick: updateRoleplayVisibility,
590
- disabled: !isCreator,
591
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
592
- children: isRoleplayHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
593
- }), /*#__PURE__*/_jsx(ListItemText, {
594
- primary: isRoleplayHiddenState ? t("show_roleplay") : t("hide_roleplay")
595
- })]
596
- })]
597
- }), isCreator && handleDuplicateRoleplay && /*#__PURE__*/_jsxs(MenuItem, {
598
- "data-cy": "duplicate-roleplay",
599
- onClick: () => handleDuplicateRoleplay(roleplay),
600
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
601
- children: /*#__PURE__*/_jsx(CopyIcon, {})
602
- }), /*#__PURE__*/_jsx(ListItemText, {
603
- primary: t("create_duplicate")
604
- })]
605
- }), /*#__PURE__*/_jsxs(MenuItem, {
606
- onClick: () => handleRemoveRoleplay(roleplay),
607
- disabled: !isCreator,
608
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
609
- children: /*#__PURE__*/_jsx(Delete, {})
610
- }), /*#__PURE__*/_jsx(ListItemText, {
611
- primary: t("remove_roleplay")
612
- })]
613
- })]
614
- }), /*#__PURE__*/_jsx(SelectClassroom, {
615
- t: t,
616
- open: isSelectClassroomDialogOpen,
617
- handleClose: () => setIsSelectClassroomDialogOpen(false),
618
- title: t("select_a_classroom"),
619
- teachClassrooms: teachClassrooms || [],
620
- type: "roleplay",
621
- courseId: courseId,
622
- sectionId: sectionId,
623
- topicId: topicId,
624
- roleplayId: roleplay.roleplayId
625
- })]
626
- });
627
- }
628
-
629
- // ─── BotListItem ──────────────────────────────────────────────────────────────
630
-
631
- function BotListItem({
632
- t,
633
- bot,
634
- completions,
635
- numberOfBotCompletions,
636
- handleRemoveBot,
637
- handleUpdateBot,
638
- isCreator,
639
- isMember,
640
- handleDuplicateBot,
641
- topicProgress,
642
- isLargeScreen,
643
- courseId,
644
- sectionId,
645
- topicId,
646
- handleEditBot,
647
- handlePlayBot,
648
- teachClassrooms,
649
- botIndex,
650
- moveBot,
651
- onDropBot,
652
- parentClassroom,
653
- ...otherProps
654
- }) {
655
- const params = useParams();
656
- const {
657
- classroomId
658
- } = params;
659
- const [anchorEl, setAnchorEl] = useState(null);
660
- const [isBotHiddenState, setIsBotHiddenState] = useState(bot.isBotHidden);
661
- const [isBotChallenge, setIsBotChallenge] = useState(bot.isChallengeBot || false);
662
- const [isSelectClassroomDialogOpen, setIsSelectClassroomDialogOpen] = useState(false);
663
- const navigate = useNavigate();
664
- useEffect(() => {
665
- setIsBotChallenge(bot.isChallengeBot);
666
- }, [bot.isChallengeBot]);
667
- const ref = useRef(null);
668
- const [{
669
- handlerId
670
- }, drop] = useDrop({
671
- accept: "bot",
672
- hover(item, monitor) {
673
- if (!ref.current) return;
674
- const dragIndex = item.index;
675
- const hoverIndex = botIndex;
676
- if (dragIndex === hoverIndex) return;
677
- const hoverBoundingRect = ref.current.getBoundingClientRect();
678
- const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;
679
- const clientOffset = monitor.getClientOffset();
680
- const hoverClientY = clientOffset.y - hoverBoundingRect.top;
681
- if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) return;
682
- if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) return;
683
- moveBot(dragIndex, hoverIndex);
684
- item.index = hoverIndex;
685
- }
686
- });
687
- const [{
688
- isDragging
689
- }, drag] = useDrag({
690
- type: "bot",
691
- canDrag: isCreator && isLargeScreen,
692
- item: {
693
- index: botIndex,
694
- primary: bot,
695
- secondary: bot.description,
696
- image: bot.picture
697
- },
698
- collect: monitor => ({
699
- isDragging: monitor.isDragging()
700
- }),
701
- end: () => onDropBot()
702
- });
703
- drag(drop(ref));
704
- const handleClickMenu = e => setAnchorEl(e.currentTarget);
705
- const handleCloseMenu = () => setAnchorEl(null);
706
- const botProgress = getBotProgress(topicProgress, bot.botId);
707
- const {
708
- existingMessages
709
- } = botProgress;
710
- const {
711
- isBotHidden
712
- } = bot;
713
- const opacity = isDragging ? 0 : 1;
714
- const updateBotVisibility = async () => {
715
- setIsBotHiddenState(!isBotHiddenState);
716
- await handleUpdateBot(bot, {
717
- isBotHidden: !isBotHidden
718
- });
719
- };
720
- const markBotAsChallenge = async () => {
721
- await handleUpdateBot(bot, {
722
- isChallengeBot: !isBotChallenge
723
- });
724
- setIsBotChallenge(!isBotChallenge);
725
- };
726
- const botCompletions = numberOfBotCompletions(completions, bot.botId);
727
- return /*#__PURE__*/_jsxs(_Fragment, {
728
- children: [(!isBotHiddenState || isCreator) && /*#__PURE__*/_jsx(ListItem, {
729
- ref: ref,
730
- style: {
731
- opacity
732
- },
733
- disablePadding: true,
734
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
735
- children: [!isCreator && /*#__PURE__*/_jsxs(_Fragment, {
736
- children: [isLargeScreen && /*#__PURE__*/_jsx(InProgressBadge, {
737
- progressCount: existingMessages?.length || 0
738
- }), isLargeScreen && /*#__PURE__*/_jsx(ProgressBadge, {
739
- completions: botCompletions
740
- })]
741
- }), isLargeScreen && !isCreator && botCompletions > 0 && classroomId && /*#__PURE__*/_jsx(Tooltip, {
742
- title: t("view_activity"),
743
- children: /*#__PURE__*/_jsx(IconButton, {
744
- onClick: () => navigate(`/classrooms/${classroomId}?courseId=${courseId}&sectionId=${sectionId}&topicId=${topicId}#Progress`),
745
- children: /*#__PURE__*/_jsx(Timeline, {})
746
- })
747
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
748
- title: t("edit_bot"),
749
- children: /*#__PURE__*/_jsx(IconButton, {
750
- "data-cy": "edit-bot",
751
- onClick: () => handleEditBot(bot),
752
- children: /*#__PURE__*/_jsx(Create, {})
753
- })
754
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
755
- title: isBotHiddenState ? t("show_bot") : t("hide_bot"),
756
- children: /*#__PURE__*/_jsx("span", {
757
- children: /*#__PURE__*/_jsx(IconButton, {
758
- onClick: updateBotVisibility,
759
- children: isBotHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
760
- })
761
- })
762
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
763
- title: isBotChallenge ? t("unmark_as_challenge_bot") : t("mark_as_challenge_bot"),
764
- children: /*#__PURE__*/_jsx(IconButton, {
765
- "data-cy": "mark_challenge_bot",
766
- onClick: markBotAsChallenge,
767
- children: isBotChallenge ? /*#__PURE__*/_jsx(FlashOnIcon, {}) : /*#__PURE__*/_jsx(FlashOffIcon, {})
768
- })
769
- }), isCreator && isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
770
- title: t("move_bot"),
771
- children: /*#__PURE__*/_jsx(IconButton, {
772
- "data-handler-id": handlerId,
773
- style: {
774
- cursor: "move"
775
- },
776
- size: "large",
777
- children: /*#__PURE__*/_jsx(DragHandle, {})
778
- })
779
- }), isCreator && /*#__PURE__*/_jsx(Tooltip, {
780
- title: t("more_options"),
781
- children: /*#__PURE__*/_jsx("span", {
782
- children: /*#__PURE__*/_jsx(IconButton, {
783
- onClick: handleClickMenu,
784
- "aria-expanded": Boolean(anchorEl),
785
- "data-cy": `${bot.botName}-more-options`,
786
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
787
- })
788
- })
789
- })]
790
- }),
791
- children: /*#__PURE__*/_jsxs(ListItemButton, {
792
- id: bot.botId,
793
- sx: sxNested,
794
- onClick: () => handlePlayBot(bot),
795
- disabled: !(isMember || isCreator),
796
- children: [isLargeScreen && /*#__PURE__*/_jsx(ListItemAvatar, {
797
- children: /*#__PURE__*/_jsx(Avatar, {
798
- src: bot.picture || bot.botAvatar || PlaceholderImages.bot,
799
- alt: ""
800
- })
801
- }), /*#__PURE__*/_jsx(ListItemText, {
802
- primary: isLargeScreen ? !isBotChallenge ? bot.botName || "" : /*#__PURE__*/_jsxs(Box, {
803
- sx: {
804
- display: "flex",
805
- alignItems: "center",
806
- gap: "8px"
807
- },
808
- children: [bot.botName || "", isCreator || parentClassroom?.isCreator ? /*#__PURE__*/_jsx(HtmlTooltipComponent, {
809
- titleBold: t("challenge_mode"),
810
- titleDesc: t("challenge_bot_desc"),
811
- placement: "right",
812
- children: /*#__PURE__*/_jsx(Chip, {
813
- label: t("challenge_mode"),
814
- size: "small",
815
- variant: "outlined",
816
- color: "primary"
817
- })
818
- }) : /*#__PURE__*/_jsx(Chip, {
819
- label: t("challenge_mode"),
820
- size: "small",
821
- variant: "outlined",
822
- color: "primary"
823
- })]
824
- }) : /*#__PURE__*/_jsxs(_Fragment, {
825
- children: [/*#__PURE__*/_jsx(Box, {
826
- sx: {
827
- mb: 1
828
- },
829
- children: /*#__PURE__*/_jsx(Avatar, {
830
- src: bot.picture || bot.botAvatar || PlaceholderImages.bot,
831
- alt: ""
832
- })
833
- }), /*#__PURE__*/_jsx(Typography, {
834
- variant: "body1",
835
- children: bot.botName || ""
836
- }), isBotChallenge && (isCreator || parentClassroom?.isCreator ? /*#__PURE__*/_jsx(HtmlTooltipComponent, {
837
- titleBold: t("challenge_mode"),
838
- titleDesc: t("challenge_bot_desc"),
839
- placement: "right",
840
- children: /*#__PURE__*/_jsx(Chip, {
841
- label: t("challenge_mode"),
842
- size: "small",
843
- variant: "outlined",
844
- color: "primary"
845
- })
846
- }) : /*#__PURE__*/_jsx(Chip, {
847
- label: t("challenge_mode"),
848
- size: "small",
849
- variant: "outlined",
850
- color: "primary"
851
- }))]
852
- }),
853
- secondary: isLargeScreen ? /*#__PURE__*/_jsx(Box, {
854
- sx: isCreator ? sxDescriptionWrapper : null,
855
- children: /*#__PURE__*/_jsx(Typography, {
856
- variant: "body2",
857
- component: "p",
858
- color: "textSecondary",
859
- children: bot.description || ""
860
- })
861
- }) : !isCreator && /*#__PURE__*/_jsxs(_Fragment, {
862
- children: [/*#__PURE__*/_jsx(Typography, {
863
- variant: "body2",
864
- component: "p",
865
- color: "textSecondary",
866
- children: bot.description || ""
867
- }), /*#__PURE__*/_jsx(InProgressBadge, {
868
- progressCount: existingMessages?.length || 0
869
- }), /*#__PURE__*/_jsx(ProgressBadge, {
870
- completions: botCompletions
871
- })]
872
- })
873
- })]
874
- })
875
- }), /*#__PURE__*/_jsxs(OverflowMenu, {
876
- anchorEl: anchorEl,
877
- handleClose: handleCloseMenu,
878
- children: [/*#__PURE__*/_jsxs(MenuItem, {
879
- onClick: () => setIsSelectClassroomDialogOpen(true),
880
- disabled: !isCreator && !(botCompletions > 0),
881
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
882
- children: /*#__PURE__*/_jsx(Timeline, {})
883
- }), /*#__PURE__*/_jsx(ListItemText, {
884
- primary: t(isCreator ? "view_activity" : "show_progress")
885
- })]
886
- }), !isLargeScreen && /*#__PURE__*/_jsxs(_Fragment, {
887
- children: [/*#__PURE__*/_jsxs(MenuItem, {
888
- "data-cy": "edit-bot",
889
- onClick: () => handleEditBot(bot),
890
- disabled: !isCreator,
891
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
892
- children: /*#__PURE__*/_jsx(Create, {})
893
- }), /*#__PURE__*/_jsx(ListItemText, {
894
- primary: t("edit_bot")
895
- })]
896
- }), /*#__PURE__*/_jsxs(MenuItem, {
897
- onClick: updateBotVisibility,
898
- disabled: !isCreator,
899
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
900
- children: isBotHiddenState ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
901
- }), /*#__PURE__*/_jsx(ListItemText, {
902
- primary: isBotHiddenState ? t("show_bot") : t("hide_bot")
903
- })]
904
- })]
905
- }), isCreator && handleDuplicateBot && /*#__PURE__*/_jsxs(MenuItem, {
906
- "data-cy": "duplicate-bot",
907
- onClick: () => handleDuplicateBot(bot),
908
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
909
- children: /*#__PURE__*/_jsx(CopyIcon, {})
910
- }), /*#__PURE__*/_jsx(ListItemText, {
911
- primary: t("create_duplicate")
912
- })]
913
- }), /*#__PURE__*/_jsxs(MenuItem, {
914
- onClick: () => handleRemoveBot(bot),
915
- disabled: !isCreator,
916
- "data-cy": `${bot.botName}-remove-bot`,
917
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
918
- children: /*#__PURE__*/_jsx(Delete, {})
919
- }), /*#__PURE__*/_jsx(ListItemText, {
920
- primary: t("remove_bot")
921
- })]
922
- })]
923
- }), /*#__PURE__*/_jsx(SelectClassroom, {
924
- t: t,
925
- open: isSelectClassroomDialogOpen,
926
- handleClose: () => setIsSelectClassroomDialogOpen(false),
927
- title: t("select_a_classroom"),
928
- teachClassrooms: teachClassrooms || [],
929
- type: "bot",
930
- courseId: courseId,
931
- sectionId: sectionId,
932
- topicId: topicId,
933
- botId: bot.botId
934
- })]
935
- });
936
- }
937
-
938
- // ─── Exercises ────────────────────────────────────────────────────────────────
939
-
940
- function Exercises(props) {
941
- const {
942
- t = text => text,
943
- isLoading,
944
- phrases = [],
945
- completions = [],
946
- roleplays = [],
947
- bots = [],
948
- voices = [],
949
- avatars = [],
950
- hiddenExercises = [],
951
- isMember,
952
- isCreator,
953
- courseId,
954
- sectionId,
955
- topicId,
956
- handleCreateRoleplay,
957
- handleCreateBot,
958
- handleCreatePhraseList,
959
- handleOpenPhraseList,
960
- handleEditPhraseList,
961
- handleUpdatePhraseList,
962
- handleDeletePhraseList,
963
- handleDuplicatePhraseList,
964
- isBotHidden,
965
- disablePadding,
966
- topicProgress = [],
967
- handleDuplicateBot,
968
- handleToggleExerciseVisibility,
969
- handleDuplicateRoleplay,
970
- handleEditBot,
971
- handlePlayBot,
972
- handleShareRoleplay,
973
- handleShareBot,
974
- handleEditRoleplay,
975
- handleUploadBotExerciseImage,
976
- handleReportProblem,
977
- teachClassrooms,
978
- updateRoleplays,
979
- handleUpdateRoleplay,
980
- updateBots,
981
- updatePhraseLists,
982
- courseSettings,
983
- parentClassroom,
984
- isChallengeModeStudent,
985
- topicInfo
986
- } = props;
987
- const params = useParams();
988
- const {
989
- classroomId
990
- } = params;
991
- const navigate = useNavigate();
992
- const location = useLocation();
993
- const searchParams = searchStringToObj(location.search);
994
- const assignmentId = searchParams.assignmentId;
995
- const theme = useTheme();
996
- const isLargeScreen = useMediaQuery(theme.breakpoints.up("sm"));
997
- const [showPhrasesOverflowMenu, setShowPhrasesOverflowMenu] = useState(null);
998
- const [showRoleplaysOverflowMenu, setShowRoleplaysOverflowMenu] = useState(null);
999
- const [showBotsOverflowMenu, setShowBotsOverflowMenu] = useState(null);
1000
- const [hiddenExercisesState, setHiddenExercisesState] = useState(hiddenExercises);
1001
- const [isCreatePhraseListOpen, setIsCreatePhraseListOpen] = useState(false);
1002
- // Opens the editor immediately after a phrase list is created (standalone mode only)
1003
- const [newlyCreatedPhraseList, setNewlyCreatedPhraseList] = useState(null);
1004
- const [isPhrasesDropdownOpen, setIsPhrasesDropdownOpen] = useState(true);
1005
- const [isRoleplayDropdownOpen, setIsRoleplayDropdownOpen] = useState(true);
1006
- const [isChatbotDropdownOpen, setIsChatbotDropdownOpen] = useState(true);
1007
- const [isSelectClassroomDialogOpen, setIsSelectClassroomDialogOpen] = useState(false);
1008
- const [type, setType] = useState("");
1009
- const addSearchParams = newParams => {
1010
- navigate({
1011
- ...location,
1012
- search: objToSearchString({
1013
- ...searchParams,
1014
- ...newParams
1015
- })
1016
- });
1017
- };
1018
- const removeSearchParams = (keys = []) => {
1019
- for (const key of keys) {
1020
- key in searchParams && delete searchParams[key];
1021
- }
1022
- navigate({
1023
- ...location,
1024
- search: objToSearchString(searchParams)
1025
- });
1026
- };
1027
- const isEmptyArray = arr => !Array.isArray(arr) || !arr.length;
1028
- const numberOfRoleplayCompletions = (completions, roleplayId) => {
1029
- if (isEmptyArray(completions)) return 0;
1030
- return completions.filter(c => c.exercise.startsWith("roleplay") && c.roleplayId === roleplayId).length;
1031
- };
1032
- const numberOfBotCompletions = (completions, botId) => {
1033
- if (isEmptyArray(completions)) return 0;
1034
- return completions.filter(c => c.exercise === "bot" && c.botId === botId).length;
1035
- };
1036
- const numberOfPhraseListCompletions = (completions, phraseListId) => {
1037
- if (isEmptyArray(completions)) return 0;
1038
- return completions.filter(c => ["translation", "listening", "pronunciation"].includes(c.exercise) && (c.phraseListId === phraseListId || !c.phraseListId && phraseListId?.startsWith('leg-'))).length;
1039
- };
1040
-
1041
- // ── phraseLists drag state ──
1042
- const [phraseListsArray, setPhraseListsArray] = useState([]);
1043
- useEffect(() => {
1044
- if (topicInfo?.phraseLists && Array.isArray(topicInfo.phraseLists)) {
1045
- setPhraseListsArray([...topicInfo.phraseLists].sort((a, b) => (a.idx || 0) - (b.idx || 0)));
1046
- }
1047
- }, [JSON.stringify(topicInfo?.phraseLists)]);
1048
- const onDropPhraseList = () => {
1049
- if (updatePhraseLists) updatePhraseLists(phraseListsArray);
1050
- };
1051
- const movePhraseList = useCallback((dragIndex, hoverIndex) => {
1052
- const dragItem = phraseListsArray[dragIndex];
1053
- setPhraseListsArray(update(phraseListsArray, {
1054
- $splice: [[dragIndex, 1], [hoverIndex, 0, {
1055
- ...dragItem,
1056
- idx: hoverIndex
1057
- }]]
1058
- }));
1059
- }, [phraseListsArray]);
1060
-
1061
- // ── roleplays drag state ──
1062
- const [roleplaysArray, setRoleplaysArray] = useState([]);
1063
- useEffect(() => {
1064
- if (roleplays && Array.isArray(roleplays)) {
1065
- setRoleplaysArray([...roleplays].sort((a, b) => a.idx - b.idx));
1066
- }
1067
- }, [JSON.stringify(roleplays)]);
1068
- const onDropRoleplay = () => updateRoleplays(roleplaysArray);
1069
- const moveRoleplay = useCallback((dragIndex, hoverIndex) => {
1070
- const dragRoleplay = roleplaysArray[dragIndex];
1071
- setRoleplaysArray(update(roleplaysArray, {
1072
- $splice: [[dragIndex, 1], [hoverIndex, 0, {
1073
- ...dragRoleplay,
1074
- idx: hoverIndex
1075
- }]]
1076
- }));
1077
- }, [roleplaysArray]);
1078
-
1079
- // ── bots drag state ──
1080
- const [botsArray, setBotsArray] = useState([]);
1081
- useEffect(() => {
1082
- if (bots && Array.isArray(bots)) {
1083
- let sorted = [...bots].sort((a, b) => a.idx - b.idx);
1084
- if (!isChallengeModeStudent && !isCreator && !parentClassroom?.isCreator) {
1085
- sorted = sorted.filter(bot => !bot.isChallengeBot);
1086
- }
1087
- setBotsArray(sorted);
1088
- }
1089
- }, [JSON.stringify(bots), isChallengeModeStudent, isCreator, parentClassroom?.isCreator]);
1090
- const onDropBot = () => updateBots(botsArray);
1091
- const moveBot = useCallback((dragIndex, hoverIndex) => {
1092
- const dragBot = botsArray[dragIndex];
1093
- setBotsArray(update(botsArray, {
1094
- $splice: [[dragIndex, 1], [hoverIndex, 0, {
1095
- ...dragBot,
1096
- idx: hoverIndex
1097
- }]]
1098
- }));
1099
- }, [botsArray]);
1100
- const handleSetHiddenExercisesState = (exercise, action) => {
1101
- const next = action === "hide" ? [...hiddenExercisesState, exercise] : hiddenExercisesState.filter(e => e !== exercise);
1102
- setHiddenExercisesState(next);
1103
- };
1104
- const renderExerciseButtons = (exercise, tooltipShowText, tooltipHideText, iconLabel) => {
1105
- if (!isCreator) return null;
1106
- const exerciseIsHidden = hiddenExercisesState?.includes(exercise);
1107
- const action = exerciseIsHidden ? "show" : "hide";
1108
- return /*#__PURE__*/_jsx(Tooltip, {
1109
- title: exerciseIsHidden ? t(tooltipShowText) : t(tooltipHideText),
1110
- children: /*#__PURE__*/_jsx("span", {
1111
- children: /*#__PURE__*/_jsx(IconButton, {
1112
- onClick: () => {
1113
- handleSetHiddenExercisesState(exercise, action);
1114
- handleToggleExerciseVisibility(exercise, action);
1115
- },
1116
- "aria-label": iconLabel,
1117
- disabled: !isCreator,
1118
- children: exerciseIsHidden ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
1119
- })
1120
- })
1121
- });
1122
- };
1123
- const renderMenuButton = (exercise, tooltipShowText, tooltipHideText, iconLabel) => {
1124
- if (!isCreator || isLargeScreen) return null;
1125
- const exerciseIsHidden = hiddenExercisesState.includes(exercise);
1126
- const action = exerciseIsHidden ? "show" : "hide";
1127
- return /*#__PURE__*/_jsxs(MenuItem, {
1128
- onClick: () => {
1129
- handleSetHiddenExercisesState(exercise, action);
1130
- handleToggleExerciseVisibility(exercise, action);
1131
- },
1132
- "aria-label": iconLabel,
1133
- disabled: !isCreator,
1134
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1135
- children: exerciseIsHidden ? /*#__PURE__*/_jsx(VisibilityOff, {}) : /*#__PURE__*/_jsx(Visibility, {})
1136
- }), /*#__PURE__*/_jsx(ListItemText, {
1137
- children: exerciseIsHidden ? t(tooltipShowText) : t(tooltipHideText)
1138
- })]
1139
- });
1140
- };
1141
- const renderCollapseButton = (open, loading, onToggle, label) => /*#__PURE__*/_jsx(Tooltip, {
1142
- title: open ? t("hide") : t("expand"),
1143
- children: /*#__PURE__*/_jsx(IconButton, {
1144
- disabled: loading,
1145
- onClick: onToggle,
1146
- "aria-expanded": open,
1147
- "aria-label": `${label} Dropdown Button`,
1148
- children: open ? /*#__PURE__*/_jsx(ExpandLess, {
1149
- sx: {
1150
- fontSize: "larger"
1151
- }
1152
- }) : /*#__PURE__*/_jsx(ExpandMore, {
1153
- sx: {
1154
- fontSize: "larger"
1155
- }
1156
- })
1157
- })
1158
- });
1159
- const hasPhrasesContent = phraseListsArray.length > 0;
1160
- const renderPhrasesExerciseItem = () => {
1161
- if (!isCreator && hiddenExercisesState.includes("phrases")) return null;
1162
- return /*#__PURE__*/_jsxs(_Fragment, {
1163
- children: [/*#__PURE__*/_jsx(ListItem, {
1164
- disablePadding: true,
1165
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
1166
- children: [isLargeScreen && renderExerciseButtons("phrases", "show_phrases_exercise", "hide_phrases_exercise", "Toggle Phrases Exercise Visibility"), isCreator && !isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
1167
- title: t("more_options"),
1168
- children: /*#__PURE__*/_jsx("span", {
1169
- children: /*#__PURE__*/_jsx(IconButton, {
1170
- onClick: e => setShowPhrasesOverflowMenu(e.currentTarget),
1171
- "aria-expanded": Boolean(showPhrasesOverflowMenu),
1172
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
1173
- })
1174
- })
1175
- }), (isCreator || hasPhrasesContent) && renderCollapseButton(isPhrasesDropdownOpen, isLoading, () => setIsPhrasesDropdownOpen(v => !v), "Phrases")]
1176
- }),
1177
- children: /*#__PURE__*/_jsxs(ListItemButton, {
1178
- "data-cy": "phrases-exercise",
1179
- "aria-expanded": isPhrasesDropdownOpen,
1180
- disabled: !isCreator && !hasPhrasesContent,
1181
- onClick: () => {
1182
- if (!isCreator && !hasPhrasesContent) return;
1183
- setIsPhrasesDropdownOpen(v => !v);
1184
- },
1185
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1186
- children: /*#__PURE__*/_jsx(MenuBookIcon, {})
1187
- }), /*#__PURE__*/_jsx(ListItemText, {
1188
- primary: t("phrases") || "Phrases",
1189
- secondary: /*#__PURE__*/_jsxs(_Fragment, {
1190
- children: [/*#__PURE__*/_jsx(Typography, {
1191
- variant: "body2",
1192
- gutterBottom: !isPhrasesDropdownOpen && hasPhrasesContent,
1193
- children: t("phrases_exercise_desc") || "Practice key phrases you'll use in conversations."
1194
- }), !isPhrasesDropdownOpen && hasPhrasesContent && /*#__PURE__*/_jsx(Collapse, {
1195
- in: true,
1196
- children: /*#__PURE__*/_jsx(ExerciseAvatarGroup, {
1197
- max: 3,
1198
- children: phraseListsArray.filter(pl => !pl.isPhraseListHidden).map((pl, idx) => /*#__PURE__*/_jsx(Avatar, {
1199
- alt: "",
1200
- src: pl.picture || PlaceholderImages.roleplay
1201
- }, idx))
1202
- })
1203
- })]
1204
- })
1205
- })]
1206
- })
1207
- }), /*#__PURE__*/_jsx(OverflowMenu, {
1208
- anchorEl: showPhrasesOverflowMenu,
1209
- handleClose: () => setShowPhrasesOverflowMenu(null),
1210
- children: renderMenuButton("phrases", "show_phrases_exercise", "hide_phrases_exercise", "Toggle Phrases Exercise Visibility")
1211
- }), /*#__PURE__*/_jsx(Collapse, {
1212
- component: "li",
1213
- in: isPhrasesDropdownOpen,
1214
- timeout: "auto",
1215
- unmountOnExit: true,
1216
- children: /*#__PURE__*/_jsxs(List, {
1217
- disablePadding: true,
1218
- children: [phraseListsArray.map((phraseList, idx) => /*#__PURE__*/_jsx(PhraseListRow, {
1219
- phraseList: phraseList,
1220
- completions: completions,
1221
- numberOfPhraseListCompletions: numberOfPhraseListCompletions,
1222
- handleDeletePhraseList: handleDeletePhraseList,
1223
- handleUpdatePhraseList: handleUpdatePhraseList,
1224
- handleDuplicatePhraseList: handleDuplicatePhraseList,
1225
- handleOpenPhraseList: handleOpenPhraseList,
1226
- handleEditPhraseList: handleEditPhraseList,
1227
- isCreator: isCreator,
1228
- isMember: isMember,
1229
- topicProgress: topicProgress,
1230
- isLargeScreen: isLargeScreen,
1231
- courseId: courseId,
1232
- sectionId: sectionId,
1233
- topicId: topicId,
1234
- teachClassrooms: teachClassrooms,
1235
- phraseListIndex: idx,
1236
- movePhraseList: movePhraseList,
1237
- onDropPhraseList: onDropPhraseList,
1238
- t: t
1239
- }, phraseList.phraseListId || idx)), isCreator && /*#__PURE__*/_jsxs(ListItemButton, {
1240
- "data-cy": "add-phrase-list",
1241
- id: "create-phrase-list",
1242
- sx: sxNested,
1243
- onClick: () => setIsCreatePhraseListOpen(true),
1244
- role: "link",
1245
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1246
- children: /*#__PURE__*/_jsx(Add, {
1247
- sx: sxGreenColor
1248
- })
1249
- }), /*#__PURE__*/_jsx(ListItemText, {
1250
- primary: t("add_new")
1251
- })]
1252
- })]
1253
- })
1254
- }), /*#__PURE__*/_jsx(CreatePhraseGroupDialog, {
1255
- open: isCreatePhraseListOpen,
1256
- handleClose: () => setIsCreatePhraseListOpen(false),
1257
- handleCreate: async ({
1258
- phraseGroupName,
1259
- description
1260
- }) => await handleCreatePhraseList({
1261
- phraseListName: phraseGroupName,
1262
- description
1263
- }),
1264
- onCreated: async (phraseList, picture) => {
1265
- setIsCreatePhraseListOpen(false);
1266
- if (!phraseList) return;
1267
- if (picture && handleUpdatePhraseList) {
1268
- await handleUpdatePhraseList(phraseList.phraseListId, {
1269
- picture
1270
- });
1271
- }
1272
- if (handleEditPhraseList) {
1273
- handleEditPhraseList({
1274
- ...phraseList,
1275
- picture
1276
- });
1277
- } else {
1278
- setNewlyCreatedPhraseList({
1279
- ...phraseList,
1280
- picture
1281
- });
1282
- }
1283
- },
1284
- t: t,
1285
- fileSizeLimit: props.fileSizeLimit,
1286
- verificationStatus: props.verificationStatus
1287
- }), !handleOpenPhraseList && /*#__PURE__*/_jsx(PhraseListEditorDialog, {
1288
- open: Boolean(newlyCreatedPhraseList),
1289
- handleClose: () => setNewlyCreatedPhraseList(null),
1290
- initialValues: newlyCreatedPhraseList || {},
1291
- t: t,
1292
- phrases: phrases,
1293
- isCreator: isCreator,
1294
- isMember: isMember,
1295
- courseId: courseId,
1296
- sectionId: sectionId,
1297
- topicId: topicId,
1298
- learnLang: props.learnLang,
1299
- forLang: props.forLang,
1300
- voices: voices,
1301
- handleSpeak: props.handleSpeak,
1302
- handleTranslate: props.handleTranslate,
1303
- userAttributes: props.userAttributes,
1304
- learnLangCharacters: props.learnLangCharacters,
1305
- forLangCharacters: props.forLangCharacters,
1306
- fileSizeLimit: props.fileSizeLimit,
1307
- subscription: props.subscription,
1308
- makeChatGptApiRequest: props.makeChatGptApiRequest,
1309
- siteLanguage: props.siteLanguage,
1310
- isUserInternal: props.isUserInternal,
1311
- verificationStatus: props.verificationStatus,
1312
- uploadAudio: props.uploadAudio,
1313
- handleSpreadsheetSaveChanges: props.handleSpreadsheetSaveChanges,
1314
- topicName: props.topicName,
1315
- validatePhraseRecognition: props.validatePhraseRecognition,
1316
- difficulty: props.difficulty,
1317
- topicGoal: props.topicGoal,
1318
- handleUpdatePhrases: props.handleUpdatePhrases,
1319
- onSubmit: (values, helpers) => handleUpdatePhraseList && handleUpdatePhraseList(newlyCreatedPhraseList?.phraseListId, values, helpers)
1320
- })]
1321
- });
1322
- };
1323
- const renderRoleplaysExerciseItem = () => {
1324
- if (!isCreator && hiddenExercisesState.includes("roleplays")) return null;
1325
- return /*#__PURE__*/_jsxs(_Fragment, {
1326
- children: [/*#__PURE__*/_jsx(ListItem, {
1327
- disablePadding: true,
1328
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
1329
- children: [isLargeScreen && renderExerciseButtons("roleplays", "show_roleplays_exercise", "hide_roleplays_exercise", "Toggle Roleplays"), isCreator && !isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
1330
- title: t("more_options"),
1331
- children: /*#__PURE__*/_jsx("span", {
1332
- children: /*#__PURE__*/_jsx(IconButton, {
1333
- onClick: e => setShowRoleplaysOverflowMenu(e.currentTarget),
1334
- "aria-expanded": Boolean(showRoleplaysOverflowMenu),
1335
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
1336
- })
1337
- })
1338
- }), (isCreator || roleplays.length > 0) && renderCollapseButton(isRoleplayDropdownOpen, isLoading, () => setIsRoleplayDropdownOpen(v => !v), "Roleplays")]
1339
- }),
1340
- children: /*#__PURE__*/_jsxs(ListItemButton, {
1341
- "data-cy": "roleplay-exercise",
1342
- "aria-expanded": isRoleplayDropdownOpen,
1343
- disabled: !isCreator && roleplays.length === 0,
1344
- onClick: () => {
1345
- if (!isCreator && roleplays.length === 0) return;
1346
- setIsRoleplayDropdownOpen(v => !v);
1347
- },
1348
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1349
- children: /*#__PURE__*/_jsx(ForumIcon, {})
1350
- }), /*#__PURE__*/_jsx(ListItemText, {
1351
- primary: t("roleplays"),
1352
- secondary: /*#__PURE__*/_jsxs(_Fragment, {
1353
- children: [/*#__PURE__*/_jsx(Typography, {
1354
- variant: "body2",
1355
- gutterBottom: !isRoleplayDropdownOpen && roleplays.length > 0,
1356
- children: t("roleplay_exercise_desc")
1357
- }), !isRoleplayDropdownOpen && roleplays.length > 0 && /*#__PURE__*/_jsx(Collapse, {
1358
- in: true,
1359
- children: /*#__PURE__*/_jsx(ExerciseAvatarGroup, {
1360
- max: 3,
1361
- children: roleplays.filter(r => !r.isRoleplayHidden).map((roleplay, idx) => /*#__PURE__*/_jsx(Avatar, {
1362
- alt: "",
1363
- src: roleplay.picture || roleplay.actor1?.picture || roleplay.actor2?.picture || PlaceholderImages.roleplay
1364
- }, idx))
1365
- })
1366
- })]
1367
- })
1368
- })]
1369
- })
1370
- }), /*#__PURE__*/_jsx(OverflowMenu, {
1371
- anchorEl: showRoleplaysOverflowMenu,
1372
- handleClose: () => setShowRoleplaysOverflowMenu(null),
1373
- children: renderMenuButton("roleplays", "show_roleplays_exercise", "hide_roleplays_exercise", "Toggle Roleplays")
1374
- }), /*#__PURE__*/_jsx(Collapse, {
1375
- component: "li",
1376
- in: isRoleplayDropdownOpen,
1377
- timeout: "auto",
1378
- unmountOnExit: true,
1379
- children: /*#__PURE__*/_jsxs(List, {
1380
- disablePadding: true,
1381
- children: [roleplaysArray.map((roleplay, idx) => /*#__PURE__*/_jsx(RoleplayListItem, {
1382
- handleDuplicateRoleplay: handleDuplicateRoleplay,
1383
- roleplay: roleplay,
1384
- numberOfRoleplayCompletions: numberOfRoleplayCompletions,
1385
- voices: voices,
1386
- avatars: avatars,
1387
- addSearchParams: addSearchParams,
1388
- removeSearchParams: removeSearchParams,
1389
- searchParams: searchParams,
1390
- isLargeScreen: isLargeScreen,
1391
- handleShareRoleplay: handleShareRoleplay,
1392
- handleEditRoleplay: handleEditRoleplay,
1393
- handleReportProblem: handleReportProblem,
1394
- roleplayIndex: idx,
1395
- moveRoleplay: moveRoleplay,
1396
- onDropRoleplay: onDropRoleplay,
1397
- handleUpdateRoleplay: handleUpdateRoleplay,
1398
- classroomId: classroomId,
1399
- assignment: assignmentId,
1400
- parentClassroom: parentClassroom,
1401
- ...props
1402
- }, roleplay.roleplayId)), isCreator && /*#__PURE__*/_jsxs(ListItemButton, {
1403
- "data-cy": "add-roleplay-exercise",
1404
- id: "create-roleplay",
1405
- sx: sxNested,
1406
- onClick: handleCreateRoleplay,
1407
- role: "link",
1408
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1409
- children: /*#__PURE__*/_jsx(Add, {
1410
- sx: sxGreenColor
1411
- })
1412
- }), /*#__PURE__*/_jsx(ListItemText, {
1413
- primary: t("add_new")
1414
- })]
1415
- })]
1416
- })
1417
- })]
1418
- });
1419
- };
1420
- const renderChatbotsExerciseItem = () => {
1421
- if (!isCreator && hiddenExercisesState.includes("chatbots")) return null;
1422
- return /*#__PURE__*/_jsxs(_Fragment, {
1423
- children: [/*#__PURE__*/_jsx(ListItem, {
1424
- disablePadding: true,
1425
- secondaryAction: /*#__PURE__*/_jsxs(_Fragment, {
1426
- children: [isLargeScreen && renderExerciseButtons("chatbots", "show_chatbots_exercise", "hide_chatbots_exercise", "Toggle Chatbots"), isCreator && !isLargeScreen && /*#__PURE__*/_jsx(Tooltip, {
1427
- title: t("more_options"),
1428
- children: /*#__PURE__*/_jsx("span", {
1429
- children: /*#__PURE__*/_jsx(IconButton, {
1430
- onClick: e => setShowBotsOverflowMenu(e.currentTarget),
1431
- "aria-expanded": Boolean(showBotsOverflowMenu),
1432
- children: /*#__PURE__*/_jsx(MoreVertIcon, {})
1433
- })
1434
- })
1435
- }), (isCreator || bots.length > 0) && renderCollapseButton(isChatbotDropdownOpen, isLoading, () => setIsChatbotDropdownOpen(v => !v), "Chatbots")]
1436
- }),
1437
- children: /*#__PURE__*/_jsxs(ListItemButton, {
1438
- "data-cy": "bot-exercise",
1439
- "aria-expanded": isChatbotDropdownOpen,
1440
- disabled: !isCreator && bots.length === 0,
1441
- onClick: () => {
1442
- if (!isCreator && bots.length === 0) return;
1443
- setIsChatbotDropdownOpen(v => !v);
1444
- },
1445
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1446
- children: /*#__PURE__*/_jsx(Face, {})
1447
- }), /*#__PURE__*/_jsx(ListItemText, {
1448
- primary: t("chatbots"),
1449
- secondary: /*#__PURE__*/_jsxs(_Fragment, {
1450
- children: [/*#__PURE__*/_jsx(Typography, {
1451
- variant: "body2",
1452
- gutterBottom: !isChatbotDropdownOpen && bots.length > 0,
1453
- children: t("chatbot_exercise_desc")
1454
- }), !isChatbotDropdownOpen && bots.length > 0 && /*#__PURE__*/_jsx(Collapse, {
1455
- in: true,
1456
- children: /*#__PURE__*/_jsx(ExerciseAvatarGroup, {
1457
- max: 3,
1458
- children: botsArray.filter(b => !b.isBotHidden).map((bot, idx) => /*#__PURE__*/_jsx(Avatar, {
1459
- src: bot.picture || bot.botAvatar || PlaceholderImages.bot,
1460
- alt: "",
1461
- "aria-label": bot.botName
1462
- }, idx))
1463
- })
1464
- })]
1465
- })
1466
- })]
1467
- })
1468
- }), /*#__PURE__*/_jsx(OverflowMenu, {
1469
- anchorEl: showBotsOverflowMenu,
1470
- handleClose: () => setShowBotsOverflowMenu(null),
1471
- children: renderMenuButton("chatbots", "show_chatbots_exercise", "hide_chatbots_exercise", "Toggle Chatbots")
1472
- }), /*#__PURE__*/_jsx(Collapse, {
1473
- component: "li",
1474
- in: isChatbotDropdownOpen,
1475
- timeout: "auto",
1476
- unmountOnExit: true,
1477
- children: /*#__PURE__*/_jsxs(List, {
1478
- disablePadding: true,
1479
- children: [botsArray.map((bot, idx) => /*#__PURE__*/_jsx(BotListItem, {
1480
- bot: bot,
1481
- handleDuplicateBot: handleDuplicateBot,
1482
- isBotHidden: isBotHidden,
1483
- numberOfBotCompletions: numberOfBotCompletions,
1484
- voices: voices,
1485
- avatars: avatars,
1486
- addSearchParams: addSearchParams,
1487
- removeSearchParams: removeSearchParams,
1488
- searchParams: searchParams,
1489
- isLargeScreen: isLargeScreen,
1490
- handleEditBot: handleEditBot,
1491
- handlePlayBot: handlePlayBot,
1492
- handleUploadBotExerciseImage: handleUploadBotExerciseImage,
1493
- handleReportProblem: handleReportProblem,
1494
- teachClassrooms: teachClassrooms,
1495
- botIndex: idx,
1496
- moveBot: moveBot,
1497
- onDropBot: onDropBot,
1498
- parentClassroom: parentClassroom,
1499
- ...props
1500
- }, bot.botId)), isCreator && /*#__PURE__*/_jsxs(ListItemButton, {
1501
- "data-cy": "add-bot-exercise",
1502
- id: "create-bot",
1503
- sx: sxNested,
1504
- onClick: handleCreateBot,
1505
- role: "link",
1506
- children: [/*#__PURE__*/_jsx(ListItemIcon, {
1507
- children: /*#__PURE__*/_jsx(Add, {
1508
- sx: sxGreenColor
1509
- })
1510
- }), /*#__PURE__*/_jsx(ListItemText, {
1511
- primary: t("add_new")
1512
- })]
1513
- })]
1514
- })
1515
- })]
1516
- });
1517
- };
1518
- return /*#__PURE__*/_jsxs(_Fragment, {
1519
- children: [/*#__PURE__*/_jsxs(List, {
1520
- component: "ul",
1521
- sx: sxRoot,
1522
- disablePadding: disablePadding,
1523
- children: [renderPhrasesExerciseItem(), renderRoleplaysExerciseItem(), renderChatbotsExerciseItem()]
1524
- }), /*#__PURE__*/_jsx(SelectClassroom, {
1525
- t: t,
1526
- open: isSelectClassroomDialogOpen,
1527
- handleClose: () => setIsSelectClassroomDialogOpen(false),
1528
- title: t("select_a_classroom"),
1529
- teachClassrooms: props.teachClassrooms || [],
1530
- type: type,
1531
- courseId: courseId,
1532
- sectionId: sectionId,
1533
- topicId: topicId
1534
- })]
1535
- });
1536
- }
1537
- Exercises.propTypes = {};
1538
- export const UnStyledComponent = Exercises;
1539
- export default Exercises;