@nualang/nualang-ui-components 0.1.1182 → 0.1.1183

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 (377) hide show
  1. package/dist/Containers/App/App.js +4 -4
  2. package/dist/Dialogs/ReportProblem/ReportProblem.js +112 -18
  3. package/dist/Exercises/Bot/Bot.js +2 -1
  4. package/dist/Exercises/Listener/Listener.js +1 -0
  5. package/dist/Exercises/Pronouncer/Pronouncer.js +2 -1
  6. package/dist/Exercises/Translator/Translator.js +2 -1
  7. package/dist/Forms/CreateBot/Steps/BotInformation/BotInformation.js +58 -0
  8. package/dist/Forms/CreateClassroom/Steps/ClassroomSettings/ClassroomSettings.js +11 -0
  9. package/dist/Forms/CreateCourse/Steps/CourseSettings/CourseSettings.js +13 -2
  10. package/dist/Forms/CreateRoleplay/Steps/RoleplayInformation/RoleplayInformation.js +58 -0
  11. package/dist/Forms/CreateTopic/Steps/TopicSettings/TopicSettings.js +45 -3
  12. package/dist/Forms/DiscussMultiStepFormDialog/MultiStepFormDialog.js +1 -1
  13. package/dist/Forms/FeedbackForm/FeedbackForm.js +86 -38
  14. package/dist/Forms/InputHelper/InputHelper.js +6 -6
  15. package/dist/Forms/UpdateClassroom/UpdateClassroom.js +1 -3
  16. package/dist/Forms/UpdateCourse/UpdateCourse.js +1 -3
  17. package/dist/Forms/VoiceSelector/VoiceSelector.js +1 -2
  18. package/dist/Misc/NotFound/Course.js +2 -2
  19. package/dist/Misc/NotFound/Courses.js +3 -3
  20. package/dist/Misc/NotFound/Script.js +1 -1
  21. package/dist/Misc/ReportProblem/ReportProblem.js +4 -2
  22. package/dist/Screens/Courses/Courses.js +3 -3
  23. package/dist/Screens/Courses/ViewCourse/ViewCourse.js +2 -2
  24. package/dist/Screens/Dashboard/Dashboard.js +6 -79
  25. package/dist/Screens/GenerateAudio/GenerateAudio.js +191 -36
  26. package/dist/Screens/Profile/Profile.js +3 -3
  27. package/dist/hooks/useClassroomState.js +5 -1
  28. package/package.json +8 -4
  29. package/dist/Cards/Avatar/Avatar.stories.js +0 -35
  30. package/dist/Cards/Bot/Bot.stories.js +0 -87
  31. package/dist/Cards/Bot/Bot.test.js +0 -21
  32. package/dist/Cards/CardElements/CardTitle/CardTitle.stories.js +0 -29
  33. package/dist/Cards/Classroom/Classroom.stories.js +0 -118
  34. package/dist/Cards/Classroom/Classroom.test.js +0 -29
  35. package/dist/Cards/Course/Course.stories.js +0 -309
  36. package/dist/Cards/Course/Course.test.js +0 -29
  37. package/dist/Cards/LoadingCard/LoadingCard.stories.js +0 -23
  38. package/dist/Cards/PreviewCard/PreviewCard.stories.js +0 -25
  39. package/dist/Cards/PreviewCard/PreviewCard.test.js +0 -20
  40. package/dist/Cards/RecordingCard/RecordingCard.stories.js +0 -74
  41. package/dist/Cards/Roleplay/Roleplay.stories.js +0 -148
  42. package/dist/Cards/Roleplay/Roleplay.test.js +0 -21
  43. package/dist/Cards/ScheduleCard/ScheduleCard.stories.js +0 -60
  44. package/dist/Cards/SubmissionsCard/SubmissionsCard.stories.js +0 -61
  45. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.stories.js +0 -311
  46. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.test.js +0 -20
  47. package/dist/Cards/Topic/Topic.stories.js +0 -311
  48. package/dist/Cards/Topic/Topic.test.js +0 -21
  49. package/dist/Charts/Bar/Exercises/Exercises.stories.js +0 -25
  50. package/dist/Charts/Bar/TotalGrades/TotalGrades.stories.js +0 -116
  51. package/dist/Charts/Doughnut/AnswerMethod/AnswerMethod.stories.js +0 -54
  52. package/dist/Charts/Doughnut/AnswersBreakdown/AnswersBreakdown.stories.js +0 -54
  53. package/dist/Charts/Doughnut/RecordingAttendance/RecordingAttendance.stories.js +0 -56
  54. package/dist/Charts/Doughnut/SubmittedRecordings/SubmittedRecordings.stories.js +0 -54
  55. package/dist/Chat/BottomBar/BottomBar.stories.js +0 -22
  56. package/dist/Chat/Chat.stories.js +0 -34
  57. package/dist/Chat/Messages/Message/Message.stories.js +0 -67
  58. package/dist/Chat/Messages/Messages.stories.js +0 -96
  59. package/dist/Chat/Messages/Question/Question.stories.js +0 -87
  60. package/dist/Chat/TopBar/TopBar.stories.js +0 -29
  61. package/dist/Chat/VoiceMessage/VoiceMessage.stories.js +0 -43
  62. package/dist/Containers/App/App.stories.js +0 -200
  63. package/dist/Dialogs/AddToClassroom/AddToClassroom.stories.js +0 -39
  64. package/dist/Dialogs/AddToClassroom/AddToClassroom.test.js +0 -16
  65. package/dist/Dialogs/AddToCourse/AddToCourse.stories.js +0 -32
  66. package/dist/Dialogs/Alternatives/Alternatives.stories.js +0 -31
  67. package/dist/Dialogs/BotPreview/BotPreview.stories.js +0 -90
  68. package/dist/Dialogs/Code/Code.stories.js +0 -27
  69. package/dist/Dialogs/Code/Code.test.js +0 -20
  70. package/dist/Dialogs/ConfirmDeleteDiscussion/ConfirmDeleteDiscussion.stories.js +0 -27
  71. package/dist/Dialogs/ConfirmDialog/ConfirmDialog.stories.js +0 -42
  72. package/dist/Dialogs/CourseOutline/CourseOutline.stories.js +0 -32
  73. package/dist/Dialogs/CourseOutline/CourseOutline.test.js +0 -25
  74. package/dist/Dialogs/CreatePhrase/CreatePhrase.stories.js +0 -42
  75. package/dist/Dialogs/CreatePhrase/CreatePhrase.test.js +0 -20
  76. package/dist/Dialogs/CreateQuestion/CreateQuestion.stories.js +0 -41
  77. package/dist/Dialogs/CreateQuestion/CreateQuestion.test.js +0 -16
  78. package/dist/Dialogs/CreateReview/CreateReview.stories.js +0 -43
  79. package/dist/Dialogs/CreateReview/CreateReview.test.js +0 -16
  80. package/dist/Dialogs/CreateSection/CreateSection.stories.js +0 -31
  81. package/dist/Dialogs/CreateSection/CreateSection.test.js +0 -16
  82. package/dist/Dialogs/CreateTopic/CreateTopic.stories.js +0 -35
  83. package/dist/Dialogs/CreateTopic/CreateTopic.test.js +0 -16
  84. package/dist/Dialogs/DeleteReview/DeleteReview.stories.js +0 -30
  85. package/dist/Dialogs/EnrollmentKeyDialog/EnrollmentKeyDialog.stories.js +0 -28
  86. package/dist/Dialogs/ExerciseMenu/ExerciseMenu.stories.js +0 -50
  87. package/dist/Dialogs/ExerciseMenu/Menus/CloseBotPreview/CloseBotPreview.stories.js +0 -43
  88. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/CloseExercise.stories.js +0 -43
  89. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/CompletedExcercise.stories.js +0 -48
  90. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/InProgressExercise.stories.js +0 -43
  91. package/dist/Dialogs/Feedback/FeedbackDialog.stories.js +0 -33
  92. package/dist/Dialogs/FeedbackDialog/FeedbackDialog.stories.js +0 -46
  93. package/dist/Dialogs/FeedbackInfoDialog/FeedbackInfoDialog.stories.js +0 -34
  94. package/dist/Dialogs/GenerateBot/GenerateBot.stories.js +0 -68
  95. package/dist/Dialogs/GenerateRoleplay/GenerateRoleplay.stories.js +0 -88
  96. package/dist/Dialogs/Icons/Icons.stories.js +0 -25
  97. package/dist/Dialogs/ImageLibrary/ImageLibrary.stories.js +0 -25
  98. package/dist/Dialogs/ImageLibrary/ImageLibrary.test.js +0 -20
  99. package/dist/Dialogs/ImageLibraryDialog/ImageLibraryDialog.stories.js +0 -25
  100. package/dist/Dialogs/InactivePopover/InactivePopover.stories.js +0 -27
  101. package/dist/Dialogs/InviteDialog/InviteDialog.stories.js +0 -60
  102. package/dist/Dialogs/Listener/Listener.stories.js +0 -44
  103. package/dist/Dialogs/Listener/Listener.test.js +0 -25
  104. package/dist/Dialogs/LiveGameTutorial/LiveGameTutorial.stories.js +0 -54
  105. package/dist/Dialogs/Members/Members.stories.js +0 -34
  106. package/dist/Dialogs/Members/Members.test.js +0 -20
  107. package/dist/Dialogs/ModeratedDialog/ModeratedDialog.stories.js +0 -25
  108. package/dist/Dialogs/PDFViewer/PDFViewer.stories.js +0 -29
  109. package/dist/Dialogs/PhraseNameDialog/PhraseNameDialog.stories.js +0 -40
  110. package/dist/Dialogs/RecordingDialog/RecordingDialog.stories.js +0 -52
  111. package/dist/Dialogs/ReportProblem/ReportProblem.stories.js +0 -27
  112. package/dist/Dialogs/ReportProblem/ReportProblem.test.js +0 -16
  113. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.stories.js +0 -26
  114. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.test.js +0 -16
  115. package/dist/Dialogs/Reviews/Reviews.stories.js +0 -34
  116. package/dist/Dialogs/Reviews/Reviews.test.js +0 -20
  117. package/dist/Dialogs/RewardEarned/RewardEarned.stories.js +0 -27
  118. package/dist/Dialogs/RoleplayPreview/RoleplayPreview.stories.js +0 -102
  119. package/dist/Dialogs/SearchTopic/SearchTopic.stories.js +0 -33
  120. package/dist/Dialogs/SelectActor/SelectActor.stories.js +0 -30
  121. package/dist/Dialogs/SelectClassroom/SelectClassroom.stories.js +0 -38
  122. package/dist/Dialogs/SelectCourses/SelectCourses.stories.js +0 -33
  123. package/dist/Dialogs/SelectCourses/SelectCourses.test.js +0 -29
  124. package/dist/Dialogs/SelectExercise/SelectExercise.stories.js +0 -247
  125. package/dist/Dialogs/Substitution/Substitution.stories.js +0 -31
  126. package/dist/Dialogs/Topic/Topic.stories.js +0 -31
  127. package/dist/Dialogs/TopicPreview/TopicPreview.stories.js +0 -32
  128. package/dist/Dialogs/Trigger/Trigger.stories.js +0 -31
  129. package/dist/Dialogs/UpgradeSubscription/UpgradeSubscription.stories.js +0 -30
  130. package/dist/Dialogs/UploadBotVars/UploadBotVars.stories.js +0 -33
  131. package/dist/Dialogs/UploadBotVars/UploadBotVars.test.js +0 -20
  132. package/dist/Dialogs/UploadPhrases/UploadPhrases.stories.js +0 -38
  133. package/dist/Dialogs/UploadPhrases/UploadPhrases.test.js +0 -20
  134. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.stories.js +0 -33
  135. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.test.js +0 -20
  136. package/dist/Dialogs/UploadVideo/UploadVideo.stories.js +0 -28
  137. package/dist/Dialogs/UploadVideo/UploadVideo.test.js +0 -20
  138. package/dist/Dialogs/Variable/Variable.stories.js +0 -31
  139. package/dist/Dialogs/VideoViewer/VideoViewer.stories.js +0 -27
  140. package/dist/Dialogs/ViewImageDialog/ViewImageDialog.stories.js +0 -26
  141. package/dist/Dialogs/WaveformDialog/WaveformDialog.stories.js +0 -32
  142. package/dist/Editors/Bot/Bot.stories.js +0 -185
  143. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.test.js +0 -15
  144. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.test.js +0 -15
  145. package/dist/Editors/Bot/Editor/BotDesigner/AddSubstitutionModal/AddSubstitutionModal.test.js +0 -15
  146. package/dist/Editors/Bot/Editor/BotDesigner/AddTopicModal/AddTopicModal.test.js +0 -19
  147. package/dist/Editors/Bot/Editor/BotDesigner/AddTriggerModal/AddTriggerModal.test.js +0 -15
  148. package/dist/Editors/Bot/Editor/BotDesigner/AddVariableModal/AddVariableModal.test.js +0 -15
  149. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.test.js +0 -27
  150. package/dist/Editors/Phrases/Phrases.stories.js +0 -31
  151. package/dist/Editors/Roleplay/Roleplay.stories.js +0 -120
  152. package/dist/Exercises/Bot/Bot.stories.js +0 -99
  153. package/dist/Exercises/Bot/Bot.test.js +0 -37
  154. package/dist/Exercises/Listener/Listener.stories.js +0 -91
  155. package/dist/Exercises/Listener/Listener.test.js +0 -37
  156. package/dist/Exercises/Pronouncer/Pronouncer.stories.js +0 -89
  157. package/dist/Exercises/Pronouncer/Pronouncer.test.js +0 -35
  158. package/dist/Exercises/Roleplay/Games/ActItOutGame/ActItOutGame.stories.js +0 -42
  159. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/ActItOutGameListening.stories.js +0 -42
  160. package/dist/Exercises/Roleplay/Games/ActItOutGameListeningAndSpeaking/ActItOutGame.stories.js +0 -42
  161. package/dist/Exercises/Roleplay/Games/ActItOutGameSpeaking/ActItOutGame.stories.js +0 -42
  162. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInTheBlanksGame.stories.js +0 -49
  163. package/dist/Exercises/Roleplay/Games/StoryGame/StoryGame.stories.js +0 -49
  164. package/dist/Exercises/Roleplay/Roleplay.stories.js +0 -352
  165. package/dist/Exercises/Roleplay/Roleplay.test.js +0 -41
  166. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.stories.js +0 -26
  167. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.test.js +0 -21
  168. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.stories.js +0 -82
  169. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.test.js +0 -21
  170. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.stories.js +0 -25
  171. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.test.js +0 -21
  172. package/dist/Exercises/Translator/Translator.stories.js +0 -77
  173. package/dist/Exercises/Translator/Translator.test.js +0 -41
  174. package/dist/Forms/AppContact/AppContact.stories.js +0 -47
  175. package/dist/Forms/ChipInput/ChipInput.stories.js +0 -34
  176. package/dist/Forms/Contact/Contact.stories.js +0 -56
  177. package/dist/Forms/CreateBot/CreateBot.stories.js +0 -64
  178. package/dist/Forms/CreateBot/CreateBot.test.js +0 -20
  179. package/dist/Forms/CreateClassroom/CreateClassroom.stories.js +0 -56
  180. package/dist/Forms/CreateClassroom/CreateClassroom.test.js +0 -20
  181. package/dist/Forms/CreateCourse/CreateCourse.stories.js +0 -48
  182. package/dist/Forms/CreateCourse/CreateCourse.test.js +0 -20
  183. package/dist/Forms/CreateCourse/Steps/Customization/Customization.stories.js +0 -35
  184. package/dist/Forms/CreateGroup/CreateGroup.stories.js +0 -49
  185. package/dist/Forms/CreateGroup/CreateGroup.test.js +0 -20
  186. package/dist/Forms/CreateMeetingMultiStepForm/CreateMeetingMultiStepForm.stories.js +0 -80
  187. package/dist/Forms/CreateRoleplay/CreateRoleplay.stories.js +0 -71
  188. package/dist/Forms/CreateRoleplay/CreateRoleplay.test.js +0 -20
  189. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.stories.js +0 -68
  190. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.test.js +0 -20
  191. package/dist/Forms/CreateTopic/CreateTopic.stories.js +0 -64
  192. package/dist/Forms/CreateTopic/CreateTopic.test.js +0 -20
  193. package/dist/Forms/CreateTopic/Steps/Customization/Customization.stories.js +0 -35
  194. package/dist/Forms/CreateUser/CreateUser.stories.js +0 -32
  195. package/dist/Forms/DiscussImageSelector/ImageSelector.stories.js +0 -24
  196. package/dist/Forms/DiscussMultiStepFormDialog/MultiStepFormDialog.stories.js +0 -28
  197. package/dist/Forms/FeedbackForm/FeedbackForm.stories.js +0 -47
  198. package/dist/Forms/FeedbackInfo/FeedbackInfo.stories.js +0 -35
  199. package/dist/Forms/ImageSelector/ImageSelector.stories.js +0 -25
  200. package/dist/Forms/InputHelper/InputHelper.stories.js +0 -40
  201. package/dist/Forms/LanguageSelector/LanguageSelector.stories.js +0 -35
  202. package/dist/Forms/LanguageSelector/LanguageSelector.test.js +0 -16
  203. package/dist/Forms/MarkdownEditor/MarkdownEditor.stories.js +0 -35
  204. package/dist/Forms/MarkdownEditor/MarkdownEditor.test.js +0 -35
  205. package/dist/Forms/MultiStepForm/MultiStepForm.stories.js +0 -113
  206. package/dist/Forms/MultiStepForm/MultiStepForm.test.js +0 -20
  207. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.stories.js +0 -27
  208. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.test.js +0 -20
  209. package/dist/Forms/MultiStepFormHook/MultiStepFormHook.stories.js +0 -171
  210. package/dist/Forms/PdfUploader/PdfUploader.stories.js +0 -29
  211. package/dist/Forms/RecordingInfo/RecordingInfo.stories.js +0 -83
  212. package/dist/Forms/Settings/Settings.stories.js +0 -300
  213. package/dist/Forms/Settings/Tabs/Display/Display.stories.js +0 -24
  214. package/dist/Forms/Settings/Tabs/EmailNotifications/EmailNotifications.stories.js +0 -27
  215. package/dist/Forms/Settings/Tabs/General/General.stories.js +0 -41
  216. package/dist/Forms/Settings/Tabs/Subscription/Subscription.stories.js +0 -24
  217. package/dist/Forms/UpdateBot/UpdateBot.stories.js +0 -58
  218. package/dist/Forms/UpdateBot/UpdateBot.test.js +0 -23
  219. package/dist/Forms/UpdateClassroom/UpdateClassroom.stories.js +0 -39
  220. package/dist/Forms/UpdateClassroom/UpdateClassroom.test.js +0 -20
  221. package/dist/Forms/UpdateCourse/UpdateCourse.stories.js +0 -60
  222. package/dist/Forms/UpdateCourse/UpdateCourse.test.js +0 -20
  223. package/dist/Forms/UpdateGroup/UpdateGroup.stories.js +0 -54
  224. package/dist/Forms/UpdateGroup/UpdateGroup.test.js +0 -24
  225. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.stories.js +0 -42
  226. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.test.js +0 -20
  227. package/dist/Forms/UpdateTopic/UpdateTopic.stories.js +0 -36
  228. package/dist/Forms/UpdateTopic/UpdateTopic.test.js +0 -20
  229. package/dist/Forms/VideoUploader/VideoUploader.stories.js +0 -29
  230. package/dist/Forms/VoiceSelector/VoiceSelector.stories.js +0 -37
  231. package/dist/Forms/VoiceSelector/VoiceSelector.test.js +0 -16
  232. package/dist/Lists/Avatars/Avatars.stories.js +0 -28
  233. package/dist/Lists/Bots/Bots.stories.js +0 -83
  234. package/dist/Lists/Bots/Bots.test.js +0 -22
  235. package/dist/Lists/Classrooms/Classrooms.stories.js +0 -82
  236. package/dist/Lists/Classrooms/Classrooms.test.js +0 -29
  237. package/dist/Lists/CourseOutline/CourseOutline.stories.js +0 -114
  238. package/dist/Lists/CourseOutline/CourseOutline.test.js +0 -21
  239. package/dist/Lists/CourseSelection/CourseSelection.stories.js +0 -241
  240. package/dist/Lists/Courses/Courses.stories.js +0 -98
  241. package/dist/Lists/Courses/Courses.test.js +0 -29
  242. package/dist/Lists/ExerciseSelection/ExerciseSelection.stories.js +0 -43
  243. package/dist/Lists/Exercises/Exercises.stories.js +0 -90
  244. package/dist/Lists/Exercises/Exercises.test.js +0 -41
  245. package/dist/Lists/Leaderboard/Leaderboard.stories.js +0 -227
  246. package/dist/Lists/Members/Members.stories.js +0 -78
  247. package/dist/Lists/Members/Members.test.js +0 -20
  248. package/dist/Lists/ParseScriptErrors/ParseScriptErrors.stories.js +0 -33
  249. package/dist/Lists/Phrases/Phrases.stories.js +0 -77
  250. package/dist/Lists/Phrases/Phrases.test.js +0 -25
  251. package/dist/Lists/Reviews/Reviews.stories.js +0 -114
  252. package/dist/Lists/Reviews/Reviews.test.js +0 -20
  253. package/dist/Lists/RoleplaySelection/RoleplaySelection.stories.js +0 -34
  254. package/dist/Lists/Roleplays/Roleplays.stories.js +0 -80
  255. package/dist/Lists/Roleplays/Roleplays.test.js +0 -22
  256. package/dist/Lists/Sections/Sections.stories.js +0 -40
  257. package/dist/Lists/Sections/Sections.test.js +0 -20
  258. package/dist/Lists/SpreadsheetGrid/SpreadsheetGrid.stories.js +0 -22
  259. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.stories.js +0 -47
  260. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.test.js +0 -20
  261. package/dist/Lists/Timeline/TimelineLoaded.stories.js +0 -383
  262. package/dist/Lists/TopicPreview/TopicPreview.stories.js +0 -42
  263. package/dist/Lists/Topics/Topics.stories.js +0 -80
  264. package/dist/Lists/Topics/Topics.test.js +0 -21
  265. package/dist/Lists/Voices/Voices.stories.js +0 -69
  266. package/dist/Lists/Voices/Voices.test.js +0 -16
  267. package/dist/Live/Game/Game.stories.js +0 -120
  268. package/dist/Live/GameControls/GameControls.stories.js +0 -24
  269. package/dist/Live/GameQuestionResults/GameQuestionResults.stories.js +0 -26
  270. package/dist/Live/GameSettings/GameSettings.stories.js +0 -57
  271. package/dist/Live/HowToJoin/HowToJoin.stories.js +0 -28
  272. package/dist/Live/LiveListener/LiveListener.stories.js +0 -76
  273. package/dist/Live/LiveRoleplay/LiveStory/LiveStory.stories.js +0 -56
  274. package/dist/Live/LiveTranslator/LiveTranslator.stories.js +0 -78
  275. package/dist/Live/Misc/FinalScoreDrawer/FinalScoreDrawer.stories.js +0 -93
  276. package/dist/Live/Misc/StudentAnswerDrawer/StudentAnswerDrawer.stories.js +0 -38
  277. package/dist/Live/WaitingRoom/WaitingRoom.stories.js +0 -133
  278. package/dist/Misc/AnswerResult/AnswerResult.stories.js +0 -151
  279. package/dist/Misc/AvatarSelector/AvatarSelector.stories.js +0 -40
  280. package/dist/Misc/AvatarSwitcher/AvatarSwitcher.stories.js +0 -22
  281. package/dist/Misc/AxiosRestExample/AxiosRestExample.stories.js +0 -16
  282. package/dist/Misc/AxiosRestExample/AxiosRestPostExample.stories.js +0 -20
  283. package/dist/Misc/CSVUploader/CSVUploader.stories.js +0 -28
  284. package/dist/Misc/ChatBubble/ChatBubble.stories.js +0 -30
  285. package/dist/Misc/CustomChipInput/CustomChipInput.stories.js +0 -28
  286. package/dist/Misc/DefaultColourButton/DefaultColourButton.stories.js +0 -56
  287. package/dist/Misc/DragAndDropPreview/DragAndDropPreview.stories.js +0 -28
  288. package/dist/Misc/EmojiInput/EmojiInput.stories.js +0 -28
  289. package/dist/Misc/ExerciseBottomBar/ExerciseBottomBar.stories.js +0 -22
  290. package/dist/Misc/ExerciseProgressBar/ExerciseProgressBar.stories.js +0 -22
  291. package/dist/Misc/HoverText/HoverText.stories.js +0 -30
  292. package/dist/Misc/ImageLibrary/ImageLibrary.stories.js +0 -22
  293. package/dist/Misc/LanguageSelector/LanguageSelector.stories.js +0 -26
  294. package/dist/Misc/MedalSelector/MedalSelector.stories.js +0 -33
  295. package/dist/Misc/Notes/Notes.stories.js +0 -42
  296. package/dist/Misc/Notes/Notes.test.js +0 -20
  297. package/dist/Misc/NualaCreating/NualaCreating.stories.js +0 -16
  298. package/dist/Misc/NualangVerifiedIcon/NualangVerifiedIcon.stories.js +0 -24
  299. package/dist/Misc/Overlay/Overlay.stories.js +0 -24
  300. package/dist/Misc/PronunciationScore/PronunciationScore.stories.js +0 -34
  301. package/dist/Misc/Recorder/Recorder.stories.js +0 -22
  302. package/dist/Misc/ReportProblem/ReportProblem.stories.js +0 -25
  303. package/dist/Misc/RoleplayChatWaveForm/RoleplayChatWaveForm.stories.js +0 -54
  304. package/dist/Misc/RoleplayWaveform/RoleplayWaveform.stories.js +0 -47
  305. package/dist/Misc/ShareButton/ShareButton.stories.js +0 -32
  306. package/dist/Misc/ShareButton/ShareDrawer.stories.js +0 -39
  307. package/dist/Misc/SiteLanguageSelector/SiteLanguageSelector.stories.js +0 -26
  308. package/dist/Misc/SubmitTextField/SubmitTextField.stories.js +0 -40
  309. package/dist/Misc/Testimonials/Testimonials.stories.js +0 -40
  310. package/dist/Misc/VoiceSpeed/VoiceSpeed.stories.js +0 -25
  311. package/dist/Misc/WaveFormLite/WaveFormLite.stories.js +0 -59
  312. package/dist/Misc/Waveform/Waveform.stories.js +0 -54
  313. package/dist/Misc/WhatsNew/WhatsNew.stories.js +0 -26
  314. package/dist/Navigation/BottomBar/BottomBar.stories.js +0 -22
  315. package/dist/Navigation/Breadcrumbs/Breadcrumbs.stories.js +0 -53
  316. package/dist/Navigation/Breadcrumbs/Breadcrumbs.test.js +0 -22
  317. package/dist/Navigation/Header/Header.stories.js +0 -32
  318. package/dist/Navigation/Header/Header.test.js +0 -20
  319. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.stories.js +0 -46
  320. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.test.js +0 -21
  321. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.stories.js +0 -46
  322. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.test.js +0 -20
  323. package/dist/Navigation/ResponsiveTabs/ResponsiveTabs.stories.js +0 -86
  324. package/dist/Payments/BillingInfo/BillingInfo.stories.js +0 -31
  325. package/dist/Payments/BillingInfo/BillingInfo.test.js +0 -16
  326. package/dist/Payments/CardDetails/CardDetails.stories.js +0 -30
  327. package/dist/Payments/CardDetails/CardDetails.test.js +0 -22
  328. package/dist/Payments/FreeTrial/FreeTrial.stories.js +0 -22
  329. package/dist/Payments/Payment/Payment.stories.js +0 -28
  330. package/dist/Payments/Subscription/Subscription.stories.js +0 -54
  331. package/dist/Payments/SubscriptionPayment/Subscription.stories.js +0 -29
  332. package/dist/Screens/Activity/Activity.stories.js +0 -135
  333. package/dist/Screens/Activity/Exercise/Attempt/Attempt.stories.js +0 -364
  334. package/dist/Screens/Activity/Exercise/Exercise.stories.js +0 -73
  335. package/dist/Screens/Bots/Bots.stories.js +0 -93
  336. package/dist/Screens/Bots/SearchBots/SearchBots.stories.js +0 -125
  337. package/dist/Screens/Classrooms/Classrooms.stories.js +0 -76
  338. package/dist/Screens/Classrooms/SearchClassrooms/SearchClassrooms.stories.js +0 -58
  339. package/dist/Screens/Classrooms/ViewClassroom/ViewClassroom.stories.js +0 -953
  340. package/dist/Screens/Courses/Courses.stories.js +0 -88
  341. package/dist/Screens/Courses/SearchCourses/SearchCourses.stories.js +0 -165
  342. package/dist/Screens/Courses/SearchTopic/SearchTopic.stories.js +0 -141
  343. package/dist/Screens/Courses/ViewCourse/ViewCourse.stories.js +0 -276
  344. package/dist/Screens/Courses/ViewCourse/ViewTopic/ViewTopic.stories.js +0 -411
  345. package/dist/Screens/Dashboard/Dashboard.stories.js +0 -88
  346. package/dist/Screens/GenerateAudio/GnerateAudio.stories.js +0 -82
  347. package/dist/Screens/Library/Library.stories.js +0 -22
  348. package/dist/Screens/Onboard/Onboard.stories.js +0 -81
  349. package/dist/Screens/Pricing/Pricing.stories.js +0 -431
  350. package/dist/Screens/Profile/Profile.stories.js +0 -114
  351. package/dist/Screens/Roleplays/Roleplays.stories.js +0 -94
  352. package/dist/Screens/Roleplays/SearchRoleplays/SearchRoleplays.stories.js +0 -123
  353. package/dist/Screens/Roleplays/ViewRoleplay/ViewRoleplay.stories.js +0 -131
  354. package/dist/Screens/Search/Search.stories.js +0 -165
  355. package/dist/Tables/Attempt/Attempt.stories.js +0 -226
  356. package/dist/Tables/BotRows/BotRows.stories.js +0 -47
  357. package/dist/Tables/Bots/Bots.stories.js +0 -52
  358. package/dist/Tables/Chart/Chart.stories.js +0 -27
  359. package/dist/Tables/ClassroomRows/ClassroomRows.stories.js +0 -71
  360. package/dist/Tables/Classrooms/Classrooms.stories.js +0 -69
  361. package/dist/Tables/CourseRows/CourseRows.stories.js +0 -77
  362. package/dist/Tables/Courses/Courses.stories.js +0 -75
  363. package/dist/Tables/Courses/Courses.test.js +0 -28
  364. package/dist/Tables/CreatedDiscussionsTable/CreatedDiscussionsTable.stories.js +0 -507
  365. package/dist/Tables/MeetingPrompstList/MeetingPromptsList.stories.js +0 -568
  366. package/dist/Tables/Phrases/Phrases.stories.js +0 -79
  367. package/dist/Tables/Phrases/Phrases.test.js +0 -34
  368. package/dist/Tables/Plans/Plans.stories.js +0 -18
  369. package/dist/Tables/Progress/Progress.stories.js +0 -66
  370. package/dist/Tables/RecordingListCards/RecordingListCards.stories.js +0 -176
  371. package/dist/Tables/RoleplayRows/RoleplayRows.stories.js +0 -47
  372. package/dist/Tables/Roleplays/Roleplays.stories.js +0 -52
  373. package/dist/Tables/ScheduleListCards/ScheduleListCards.stories.js +0 -123
  374. package/dist/Tables/SubmissionsTableCards/SubmissionsTableCards.stories.js +0 -133
  375. package/dist/Tables/Unanswered/Unaswered.stories.js +0 -118
  376. package/dist/Tables/User/UserTable.stories.js +0 -100
  377. package/dist/Tables/Users/UsersTable.stories.js +0 -73
@@ -129,6 +129,7 @@ function AppSearch({
129
129
  if (location !== "/search") {
130
130
  setSearchText("");
131
131
  setDebouncedSearchText("");
132
+ setPrevDebouncedSearchText("");
132
133
  }
133
134
  }, [location, setSearchText, setDebouncedSearchText]);
134
135
  (0, _react.useEffect)(() => {
@@ -150,7 +151,7 @@ function AppSearch({
150
151
  onKeyPress: event => {
151
152
  if (event.key === "Enter") {
152
153
  handleSearchContent(searchText);
153
- setPrevDebouncedSearchText("");
154
+ setPrevDebouncedSearchText(searchText);
154
155
  }
155
156
  }
156
157
  },
@@ -269,7 +270,6 @@ function App({
269
270
  };
270
271
  const isSearchActive = searchText || isMobileSearchExpanded;
271
272
  const isTeacher = user && user["custom:role"] === "teach";
272
- const isNewSearchVisible = localStorage.getItem(`new-search-enabled`) === "true";
273
273
  return /*#__PURE__*/_react.default.createElement("div", {
274
274
  className: classes.root
275
275
  }, /*#__PURE__*/_react.default.createElement(_Header.default, {
@@ -293,14 +293,14 @@ function App({
293
293
  navigate: navigate,
294
294
  searchText: searchText,
295
295
  setSearchText: setSearchText
296
- })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLgScreen ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isTeacher && isNewSearchVisible && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(AppSearch, {
296
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLgScreen ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isTeacher && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(AppSearch, {
297
297
  t: t,
298
298
  navigate: navigate,
299
299
  searchText: searchText,
300
300
  setSearchText: setSearchText
301
301
  }), /*#__PURE__*/_react.default.createElement(_material.Box, {
302
302
  flexGrow: 1
303
- }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isTeacher && isNewSearchVisible && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
303
+ }))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isTeacher && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
304
304
  title: t("search"),
305
305
  enterDelay: 300
306
306
  }, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
@@ -25,6 +25,7 @@ function ReportProblem({
25
25
  open,
26
26
  handleClose,
27
27
  handleReportProblem,
28
+ openSnackbar,
28
29
  currentPhrase,
29
30
  isQuestion,
30
31
  parentClassroom,
@@ -34,21 +35,23 @@ function ReportProblem({
34
35
  const [problem, setProblem] = (0, _react.useState)(initialProblem);
35
36
  const [enableButton, setEnableButton] = (0, _react.useState)(false);
36
37
  const [shareAudioChecked, setShareAudioChecked] = (0, _react.useState)(true);
38
+ const [isDialogTemporarilyClosed, setIsDialogTemporarilyClosed] = (0, _react.useState)(false);
39
+ const [shareScreenshotChecked, setShareScreenshotChecked] = (0, _react.useState)(false);
40
+ const [screenshot, setScreenshot] = (0, _react.useState)(null);
37
41
  const {
38
42
  description,
39
43
  type
40
44
  } = problem;
41
- const isShareAudioAvailable = (exercise === "pronunciation" || exercise === "bot" || exercise.includes("speaking")) && type === "technical_problem" && audioBlob;
42
- const onSubmit = () => {
43
- try {
44
- isShareAudioAvailable ? handleReportProblem(problem, shareAudioChecked, audioBlob) : handleReportProblem(problem);
45
- handleClose();
46
- setProblem(initialProblem);
47
- shareAudioChecked(true);
48
- } catch (error) {
49
- console.error(error);
45
+ const isPronunciationRelatedExercise = (exercise === "pronunciation" || exercise === "bot" || exercise?.includes("speaking")) && type === "technical_problem";
46
+ const isShareAudioAvailable = isPronunciationRelatedExercise && audioBlob;
47
+ const isScreenshotAvailable = isPronunciationRelatedExercise && screenshot;
48
+ (0, _react.useEffect)(() => {
49
+ if (type && description.trim().length > 0) {
50
+ setEnableButton(true);
51
+ } else {
52
+ setEnableButton(false);
50
53
  }
51
- };
54
+ }, [description, type]);
52
55
  const handleInputChange = event => {
53
56
  const {
54
57
  name,
@@ -97,23 +100,77 @@ function ReportProblem({
97
100
  ml: 0.5
98
101
  }, t(pType.example)));
99
102
  });
100
- (0, _react.useEffect)(() => {
101
- if (type && description.trim().length > 0) {
102
- setEnableButton(true);
103
+ const captureScreenshot = (0, _react.useCallback)(async () => {
104
+ try {
105
+ setIsDialogTemporarilyClosed(true);
106
+ const captureStream = await navigator.mediaDevices.getDisplayMedia({
107
+ video: true,
108
+ preferCurrentTab: true
109
+ });
110
+ const video = document.createElement("video");
111
+ video.srcObject = captureStream;
112
+ await new Promise(resolve => {
113
+ video.onloadedmetadata = () => resolve();
114
+ });
115
+ const canvas = document.createElement("canvas");
116
+ const context = canvas.getContext("2d");
117
+ canvas.width = video.videoWidth;
118
+ canvas.height = video.videoHeight;
119
+ video.play();
120
+ context.drawImage(video, 0, 0, canvas.width, canvas.height);
121
+ captureStream.getTracks().forEach(track => track.stop());
122
+ const screenshotData = canvas.toDataURL("image/png");
123
+ setScreenshot(screenshotData);
124
+ video.srcObject = null;
125
+ video.remove();
126
+ setIsDialogTemporarilyClosed(false);
127
+ } catch (err) {
128
+ console.error("Error capturing screenshot:", err);
129
+ openSnackbar("Failed to capture screenshot. Please check your browser permissions.", "error");
130
+ setIsDialogTemporarilyClosed(false);
131
+ setShareScreenshotChecked(false);
132
+ }
133
+ }, []);
134
+ const handleClickShareScreenshotCheckbox = (0, _react.useCallback)(event => {
135
+ const isChecked = event.target.checked;
136
+ setShareScreenshotChecked(isChecked);
137
+ if (isChecked) {
138
+ captureScreenshot();
103
139
  } else {
104
- setEnableButton(false);
140
+ setScreenshot(null);
105
141
  }
106
- }, [description, type]);
142
+ }, [captureScreenshot]);
143
+ const removeScreenshot = () => {
144
+ setScreenshot(null);
145
+ setShareScreenshotChecked(false);
146
+ };
107
147
  const handleClickShareAudioCheckbox = (0, _react.useCallback)(event => {
108
148
  setShareAudioChecked(event.target.checked);
109
149
  }, []);
150
+ const onSubmit = () => {
151
+ try {
152
+ const audioToSend = isShareAudioAvailable && shareAudioChecked ? audioBlob : null;
153
+ const screenshotToSend = isScreenshotAvailable && shareScreenshotChecked ? screenshot : null;
154
+
155
+ // Call handleReportProblem, passing audio, screenshot, and their corresponding check states
156
+ handleReportProblem(problem, shareAudioChecked, audioToSend, shareScreenshotChecked, screenshotToSend);
157
+ setShareScreenshotChecked(false);
158
+ handleClose();
159
+ setProblem(initialProblem);
160
+ setScreenshot(null);
161
+ setShareAudioChecked(true);
162
+ } catch (error) {
163
+ console.error(error);
164
+ }
165
+ };
110
166
  return /*#__PURE__*/_react.default.createElement(_ResponsiveDialog.default, {
111
- open: open,
167
+ open: open && !isDialogTemporarilyClosed,
112
168
  handleClose: handleClose,
113
169
  handleSubmit: onSubmit,
114
170
  dialogTitle: t("report_problem"),
115
171
  submitText: t("report_problem"),
116
- isSubmitDisabled: !enableButton
172
+ isSubmitDisabled: !enableButton,
173
+ openSnackbar: openSnackbar
117
174
  }, /*#__PURE__*/_react.default.createElement(_Grid.default, {
118
175
  container: true,
119
176
  spacing: 1
@@ -169,6 +226,43 @@ function ReportProblem({
169
226
  label: /*#__PURE__*/_react.default.createElement(_Typography.default, {
170
227
  fontSize: 14
171
228
  }, t("share_audio"))
172
- })))));
229
+ }))), isPronunciationRelatedExercise && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.default, {
230
+ item: true,
231
+ xs: 12
232
+ }, /*#__PURE__*/_react.default.createElement(_material.FormGroup, null, /*#__PURE__*/_react.default.createElement(_material.FormControlLabel, {
233
+ control: /*#__PURE__*/_react.default.createElement(_material.Checkbox, {
234
+ checked: shareScreenshotChecked,
235
+ onChange: handleClickShareScreenshotCheckbox,
236
+ name: "shareScreenshot",
237
+ size: "small",
238
+ inputProps: {
239
+ "aria-label": t("share_screenshot")
240
+ }
241
+ }),
242
+ label: /*#__PURE__*/_react.default.createElement(_Typography.default, {
243
+ fontSize: 14
244
+ }, t("share_screenshot"))
245
+ }))), screenshot && /*#__PURE__*/_react.default.createElement(_Grid.default, {
246
+ item: true,
247
+ xs: 12
248
+ }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
249
+ fontSize: 14,
250
+ sx: {
251
+ marginBottom: 1
252
+ }
253
+ }, t("screenshot_captured")), /*#__PURE__*/_react.default.createElement("img", {
254
+ src: screenshot,
255
+ alt: "Captured Screenshot",
256
+ style: {
257
+ width: "100%",
258
+ height: "auto",
259
+ marginBottom: "1em"
260
+ }
261
+ }), /*#__PURE__*/_react.default.createElement(_material.Button, {
262
+ variant: "outlined",
263
+ color: "primary",
264
+ onClick: removeScreenshot,
265
+ size: "small"
266
+ }, t("remove"))))));
173
267
  }
174
268
  var _default = exports.default = ReportProblem;
@@ -426,7 +426,8 @@ function Bot({
426
426
  currentPhrase: currentPhrase,
427
427
  parentClassroom: parentClassroom,
428
428
  exercise: exerciseName,
429
- audioBlob: audioBlob
429
+ audioBlob: audioBlob,
430
+ openSnackbar: openSnackbar
430
431
  }));
431
432
  const beforeElements = /*#__PURE__*/_react.default.createElement(_material.Box, {
432
433
  mb: 2
@@ -559,6 +559,7 @@ function Listener({
559
559
  handleReportProblem: handleReportProblem,
560
560
  currentPhrase: currentPhrase,
561
561
  parentClassroom: parentClassroom,
562
+ openSnackbar: openSnackbar,
562
563
  exercise: exerciseName
563
564
  })), /*#__PURE__*/_react.default.createElement(_material.Toolbar, {
564
565
  variant: "dense",
@@ -501,7 +501,8 @@ function Pronouncer({
501
501
  currentPhrase: currentPhrase,
502
502
  parentClassroom: parentClassroom,
503
503
  exercise: exerciseName,
504
- audioBlob: audioBlob
504
+ audioBlob: audioBlob,
505
+ openSnackbar: openSnackbar
505
506
  })), /*#__PURE__*/_react.default.createElement(_material.Toolbar, {
506
507
  variant: "dense",
507
508
  className: classes.mobileAdditionalToolbar
@@ -565,7 +565,8 @@ function Translator({
565
565
  handleReportProblem: handleReportProblem,
566
566
  currentPhrase: currentPhrase,
567
567
  exercise: exerciseName,
568
- parentClassroom: parentClassroom
568
+ parentClassroom: parentClassroom,
569
+ openSnackbar: openSnackbar
569
570
  })), /*#__PURE__*/_react.default.createElement(_material.Toolbar, {
570
571
  variant: "dense",
571
572
  className: classes.mobileAdditionalToolbar
@@ -129,6 +129,64 @@ function BotInformation({
129
129
  }
130
130
  });
131
131
  };
132
+ const voicesArray = (0, _react.useMemo)(() => {
133
+ return Object.entries(voiceOptions).flatMap(([key, dialect]) => {
134
+ if (!dialect?.voiceOptions || !Array.isArray(dialect.voiceOptions)) {
135
+ return [];
136
+ }
137
+ return dialect.voiceOptions.filter(voice => voice?.name) // Validate required properties
138
+ .map(voice => ({
139
+ voice,
140
+ dialect,
141
+ key
142
+ }));
143
+ });
144
+ }, [voiceOptions]);
145
+ (0, _react.useEffect)(() => {
146
+ if (!voicesArray.length) {
147
+ return;
148
+ }
149
+ const randomIndex = Math.floor(Math.random() * voicesArray.length);
150
+ const randomVoiceObj = voicesArray[randomIndex];
151
+ const {
152
+ voice: randomVoice,
153
+ languageCode
154
+ } = randomVoiceObj;
155
+ let mounted = true;
156
+ const updateFields = async () => {
157
+ if (!mounted) return;
158
+ handleChange({
159
+ target: {
160
+ name: 'voice',
161
+ value: randomVoice.name
162
+ }
163
+ });
164
+ handleChange({
165
+ target: {
166
+ name: 'voiceLanguageCode',
167
+ value: languageCode
168
+ }
169
+ });
170
+ handleChange({
171
+ target: {
172
+ name: 'name',
173
+ value: randomVoice.name
174
+ }
175
+ });
176
+ handleChange({
177
+ target: {
178
+ name: "botAvatar",
179
+ value: randomVoice.userImage
180
+ }
181
+ });
182
+ };
183
+ if (!voice) {
184
+ updateFields();
185
+ }
186
+ return () => {
187
+ mounted = false;
188
+ };
189
+ }, [voicesArray, handleChange, voice]);
132
190
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Typography, null, t("lets_start_with_some_information_about_your_bot")), /*#__PURE__*/_react.default.createElement(_material.Grid, {
133
191
  container: true,
134
192
  spacing: 1
@@ -36,6 +36,17 @@ function ClassroomSettings({
36
36
  vchatEnabled
37
37
  } = values;
38
38
  const vchatEnabledInSettingsRef = (0, _react.useRef)(null);
39
+ const generateRandomEnrolmentKey = () => {
40
+ return String(Math.floor(Math.random() * 90000) + 10000);
41
+ };
42
+ (0, _react.useEffect)(() => {
43
+ handleChange({
44
+ target: {
45
+ name: 'enrolmentKey',
46
+ value: enrolmentKey || generateRandomEnrolmentKey()
47
+ }
48
+ });
49
+ }, []);
39
50
  (0, _react.useEffect)(() => {
40
51
  if (scrollToDiscuss && vchatEnabledInSettingsRef.current) {
41
52
  vchatEnabledInSettingsRef.current.scrollIntoView({
@@ -4,15 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _material = require("@mui/material");
9
9
  var Yup = _interopRequireWildcard(require("yup"));
10
10
  var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
11
11
  var _ChipInput = _interopRequireDefault(require("../../../../Forms/ChipInput"));
12
12
  var _index = require("../../../../utils/index");
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
16
  function CourseSettings({
17
17
  t,
18
18
  values,
@@ -29,6 +29,17 @@ function CourseSettings({
29
29
  reviewsEnabled,
30
30
  collaborators
31
31
  } = values;
32
+ const generateRandomEnrolmentKey = _react.default.useCallback(() => {
33
+ return String(Math.floor(Math.random() * 90000) + 10000);
34
+ }, []);
35
+ (0, _react.useEffect)(() => {
36
+ handleChange({
37
+ target: {
38
+ name: 'enrolmentKey',
39
+ value: enrolmentKey || generateRandomEnrolmentKey()
40
+ }
41
+ });
42
+ }, [handleChange, enrolmentKey, generateRandomEnrolmentKey]);
32
43
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Typography, null, t("limit_access_course_setting_visibility_private_including_enrolment_key")), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_material.Typography, {
33
44
  fontSize: 14,
34
45
  sx: {
@@ -72,6 +72,64 @@ function ActorForm({
72
72
  });
73
73
  setAvatarSelector(false);
74
74
  };
75
+ const voicesArray = (0, _react.useMemo)(() => {
76
+ return Object.entries(voiceOptions).flatMap(([key, dialect]) => {
77
+ if (!dialect?.voiceOptions || !Array.isArray(dialect.voiceOptions)) {
78
+ return [];
79
+ }
80
+ return dialect.voiceOptions.filter(voice => voice?.name) // Validate required properties
81
+ .map(voice => ({
82
+ voice,
83
+ dialect,
84
+ key
85
+ }));
86
+ });
87
+ }, [voiceOptions]);
88
+ (0, _react.useEffect)(() => {
89
+ if (!voicesArray.length) {
90
+ return;
91
+ }
92
+ const randomIndex = Math.floor(Math.random() * voicesArray.length);
93
+ const randomVoiceObj = voicesArray[randomIndex];
94
+ const {
95
+ voice: randomVoice,
96
+ languageCode
97
+ } = randomVoiceObj;
98
+ let mounted = true;
99
+ const updateFields = async () => {
100
+ if (!mounted) return;
101
+ handleChange({
102
+ target: {
103
+ name: `actor${number}.voice`,
104
+ value: randomVoice.name
105
+ }
106
+ });
107
+ handleChange({
108
+ target: {
109
+ name: `actor${number}.voiceLanguageCode`,
110
+ value: languageCode
111
+ }
112
+ });
113
+ handleChange({
114
+ target: {
115
+ name: `actor${number}.name`,
116
+ value: randomVoice.name
117
+ }
118
+ });
119
+ handleChange({
120
+ target: {
121
+ name: `actor${number}.picture`,
122
+ value: randomVoice.userImage
123
+ }
124
+ });
125
+ };
126
+ if (!voice) {
127
+ updateFields();
128
+ }
129
+ return () => {
130
+ mounted = false;
131
+ };
132
+ }, [voicesArray, handleChange, number, voice]);
75
133
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Typography, null, t("actor", {
76
134
  number: number
77
135
  })), /*#__PURE__*/_react.default.createElement(_material.FormControl, {
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
8
  var _material = require("@mui/material");
9
9
  var _mui = require("tss-react/mui");
10
10
  var Yup = _interopRequireWildcard(require("yup"));
11
11
  var _VoiceSelector = _interopRequireDefault(require("../../../../Forms/VoiceSelector"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
15
  const useStyles = (0, _mui.makeStyles)()(theme => ({
16
16
  group: {
17
17
  flexDirection: "row"
@@ -26,10 +26,23 @@ function TopicSettings({
26
26
  handleBlur,
27
27
  subscription,
28
28
  learnLang,
29
- voiceOptions,
29
+ voiceOptions = {},
30
30
  handleSpeak,
31
31
  isUserInternal
32
32
  }) {
33
+ const voicesArray = (0, _react.useMemo)(() => {
34
+ return Object.entries(voiceOptions).flatMap(([key, dialect]) => {
35
+ if (!dialect?.voiceOptions || !Array.isArray(dialect.voiceOptions)) {
36
+ return [];
37
+ }
38
+ return dialect.voiceOptions.filter(voice => voice?.name) // Validate required properties
39
+ .map(voice => ({
40
+ voice,
41
+ dialect,
42
+ key
43
+ }));
44
+ });
45
+ }, [voiceOptions]);
33
46
  const {
34
47
  classes
35
48
  } = useStyles();
@@ -40,6 +53,35 @@ function TopicSettings({
40
53
  voicePitch,
41
54
  voiceLanguageCode
42
55
  } = values;
56
+ (0, _react.useEffect)(() => {
57
+ if (!voicesArray.length) {
58
+ return;
59
+ }
60
+ const randomIndex = Math.floor(Math.random() * voicesArray.length);
61
+ const randomVoiceObj = voicesArray[randomIndex];
62
+ const {
63
+ voice: randomVoice,
64
+ languageCode
65
+ } = randomVoiceObj;
66
+ let mounted = true;
67
+ if (mounted && !values.voice) {
68
+ handleChange({
69
+ target: {
70
+ name: "voice",
71
+ value: randomVoice.name
72
+ }
73
+ });
74
+ handleChange({
75
+ target: {
76
+ name: "voiceLanguageCode",
77
+ value: languageCode
78
+ }
79
+ });
80
+ }
81
+ return () => {
82
+ mounted = false;
83
+ };
84
+ }, [voicesArray, handleChange]);
43
85
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Grid, {
44
86
  container: true,
45
87
  spacing: 2
@@ -98,7 +98,7 @@ function NextButton({
98
98
  type: "submit",
99
99
  className: classes.button,
100
100
  disabled: imageLoading || loading || isSubmitting || (!values.groups || values?.groups?.length === 0) && (!values.initialGroups || values?.initialGroups?.length === 0) && isLastStep || loading
101
- }, isLastStep ? submitText ? t(submitText) : t("create") : t("next"));
101
+ }, isLastStep ? submitText ? t(submitText) : t("schedule") : t("next"));
102
102
  }
103
103
  function TopBar({
104
104
  classes,