@nualang/nualang-ui-components 0.1.1182 → 0.1.1184

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 (378) 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/config.js +11 -3
  28. package/dist/hooks/useClassroomState.js +9 -1
  29. package/package.json +8 -4
  30. package/dist/Cards/Avatar/Avatar.stories.js +0 -35
  31. package/dist/Cards/Bot/Bot.stories.js +0 -87
  32. package/dist/Cards/Bot/Bot.test.js +0 -21
  33. package/dist/Cards/CardElements/CardTitle/CardTitle.stories.js +0 -29
  34. package/dist/Cards/Classroom/Classroom.stories.js +0 -118
  35. package/dist/Cards/Classroom/Classroom.test.js +0 -29
  36. package/dist/Cards/Course/Course.stories.js +0 -309
  37. package/dist/Cards/Course/Course.test.js +0 -29
  38. package/dist/Cards/LoadingCard/LoadingCard.stories.js +0 -23
  39. package/dist/Cards/PreviewCard/PreviewCard.stories.js +0 -25
  40. package/dist/Cards/PreviewCard/PreviewCard.test.js +0 -20
  41. package/dist/Cards/RecordingCard/RecordingCard.stories.js +0 -74
  42. package/dist/Cards/Roleplay/Roleplay.stories.js +0 -148
  43. package/dist/Cards/Roleplay/Roleplay.test.js +0 -21
  44. package/dist/Cards/ScheduleCard/ScheduleCard.stories.js +0 -60
  45. package/dist/Cards/SubmissionsCard/SubmissionsCard.stories.js +0 -61
  46. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.stories.js +0 -311
  47. package/dist/Cards/SubscriptionPlan/SubscriptionPlan.test.js +0 -20
  48. package/dist/Cards/Topic/Topic.stories.js +0 -311
  49. package/dist/Cards/Topic/Topic.test.js +0 -21
  50. package/dist/Charts/Bar/Exercises/Exercises.stories.js +0 -25
  51. package/dist/Charts/Bar/TotalGrades/TotalGrades.stories.js +0 -116
  52. package/dist/Charts/Doughnut/AnswerMethod/AnswerMethod.stories.js +0 -54
  53. package/dist/Charts/Doughnut/AnswersBreakdown/AnswersBreakdown.stories.js +0 -54
  54. package/dist/Charts/Doughnut/RecordingAttendance/RecordingAttendance.stories.js +0 -56
  55. package/dist/Charts/Doughnut/SubmittedRecordings/SubmittedRecordings.stories.js +0 -54
  56. package/dist/Chat/BottomBar/BottomBar.stories.js +0 -22
  57. package/dist/Chat/Chat.stories.js +0 -34
  58. package/dist/Chat/Messages/Message/Message.stories.js +0 -67
  59. package/dist/Chat/Messages/Messages.stories.js +0 -96
  60. package/dist/Chat/Messages/Question/Question.stories.js +0 -87
  61. package/dist/Chat/TopBar/TopBar.stories.js +0 -29
  62. package/dist/Chat/VoiceMessage/VoiceMessage.stories.js +0 -43
  63. package/dist/Containers/App/App.stories.js +0 -200
  64. package/dist/Dialogs/AddToClassroom/AddToClassroom.stories.js +0 -39
  65. package/dist/Dialogs/AddToClassroom/AddToClassroom.test.js +0 -16
  66. package/dist/Dialogs/AddToCourse/AddToCourse.stories.js +0 -32
  67. package/dist/Dialogs/Alternatives/Alternatives.stories.js +0 -31
  68. package/dist/Dialogs/BotPreview/BotPreview.stories.js +0 -90
  69. package/dist/Dialogs/Code/Code.stories.js +0 -27
  70. package/dist/Dialogs/Code/Code.test.js +0 -20
  71. package/dist/Dialogs/ConfirmDeleteDiscussion/ConfirmDeleteDiscussion.stories.js +0 -27
  72. package/dist/Dialogs/ConfirmDialog/ConfirmDialog.stories.js +0 -42
  73. package/dist/Dialogs/CourseOutline/CourseOutline.stories.js +0 -32
  74. package/dist/Dialogs/CourseOutline/CourseOutline.test.js +0 -25
  75. package/dist/Dialogs/CreatePhrase/CreatePhrase.stories.js +0 -42
  76. package/dist/Dialogs/CreatePhrase/CreatePhrase.test.js +0 -20
  77. package/dist/Dialogs/CreateQuestion/CreateQuestion.stories.js +0 -41
  78. package/dist/Dialogs/CreateQuestion/CreateQuestion.test.js +0 -16
  79. package/dist/Dialogs/CreateReview/CreateReview.stories.js +0 -43
  80. package/dist/Dialogs/CreateReview/CreateReview.test.js +0 -16
  81. package/dist/Dialogs/CreateSection/CreateSection.stories.js +0 -31
  82. package/dist/Dialogs/CreateSection/CreateSection.test.js +0 -16
  83. package/dist/Dialogs/CreateTopic/CreateTopic.stories.js +0 -35
  84. package/dist/Dialogs/CreateTopic/CreateTopic.test.js +0 -16
  85. package/dist/Dialogs/DeleteReview/DeleteReview.stories.js +0 -30
  86. package/dist/Dialogs/EnrollmentKeyDialog/EnrollmentKeyDialog.stories.js +0 -28
  87. package/dist/Dialogs/ExerciseMenu/ExerciseMenu.stories.js +0 -50
  88. package/dist/Dialogs/ExerciseMenu/Menus/CloseBotPreview/CloseBotPreview.stories.js +0 -43
  89. package/dist/Dialogs/ExerciseMenu/Menus/CloseExercise/CloseExercise.stories.js +0 -43
  90. package/dist/Dialogs/ExerciseMenu/Menus/CompletedExcercise/CompletedExcercise.stories.js +0 -48
  91. package/dist/Dialogs/ExerciseMenu/Menus/InProgressExercise/InProgressExercise.stories.js +0 -43
  92. package/dist/Dialogs/Feedback/FeedbackDialog.stories.js +0 -33
  93. package/dist/Dialogs/FeedbackDialog/FeedbackDialog.stories.js +0 -46
  94. package/dist/Dialogs/FeedbackInfoDialog/FeedbackInfoDialog.stories.js +0 -34
  95. package/dist/Dialogs/GenerateBot/GenerateBot.stories.js +0 -68
  96. package/dist/Dialogs/GenerateRoleplay/GenerateRoleplay.stories.js +0 -88
  97. package/dist/Dialogs/Icons/Icons.stories.js +0 -25
  98. package/dist/Dialogs/ImageLibrary/ImageLibrary.stories.js +0 -25
  99. package/dist/Dialogs/ImageLibrary/ImageLibrary.test.js +0 -20
  100. package/dist/Dialogs/ImageLibraryDialog/ImageLibraryDialog.stories.js +0 -25
  101. package/dist/Dialogs/InactivePopover/InactivePopover.stories.js +0 -27
  102. package/dist/Dialogs/InviteDialog/InviteDialog.stories.js +0 -60
  103. package/dist/Dialogs/Listener/Listener.stories.js +0 -44
  104. package/dist/Dialogs/Listener/Listener.test.js +0 -25
  105. package/dist/Dialogs/LiveGameTutorial/LiveGameTutorial.stories.js +0 -54
  106. package/dist/Dialogs/Members/Members.stories.js +0 -34
  107. package/dist/Dialogs/Members/Members.test.js +0 -20
  108. package/dist/Dialogs/ModeratedDialog/ModeratedDialog.stories.js +0 -25
  109. package/dist/Dialogs/PDFViewer/PDFViewer.stories.js +0 -29
  110. package/dist/Dialogs/PhraseNameDialog/PhraseNameDialog.stories.js +0 -40
  111. package/dist/Dialogs/RecordingDialog/RecordingDialog.stories.js +0 -52
  112. package/dist/Dialogs/ReportProblem/ReportProblem.stories.js +0 -27
  113. package/dist/Dialogs/ReportProblem/ReportProblem.test.js +0 -16
  114. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.stories.js +0 -26
  115. package/dist/Dialogs/ResponsiveDialog/ResponsiveDialog.test.js +0 -16
  116. package/dist/Dialogs/Reviews/Reviews.stories.js +0 -34
  117. package/dist/Dialogs/Reviews/Reviews.test.js +0 -20
  118. package/dist/Dialogs/RewardEarned/RewardEarned.stories.js +0 -27
  119. package/dist/Dialogs/RoleplayPreview/RoleplayPreview.stories.js +0 -102
  120. package/dist/Dialogs/SearchTopic/SearchTopic.stories.js +0 -33
  121. package/dist/Dialogs/SelectActor/SelectActor.stories.js +0 -30
  122. package/dist/Dialogs/SelectClassroom/SelectClassroom.stories.js +0 -38
  123. package/dist/Dialogs/SelectCourses/SelectCourses.stories.js +0 -33
  124. package/dist/Dialogs/SelectCourses/SelectCourses.test.js +0 -29
  125. package/dist/Dialogs/SelectExercise/SelectExercise.stories.js +0 -247
  126. package/dist/Dialogs/Substitution/Substitution.stories.js +0 -31
  127. package/dist/Dialogs/Topic/Topic.stories.js +0 -31
  128. package/dist/Dialogs/TopicPreview/TopicPreview.stories.js +0 -32
  129. package/dist/Dialogs/Trigger/Trigger.stories.js +0 -31
  130. package/dist/Dialogs/UpgradeSubscription/UpgradeSubscription.stories.js +0 -30
  131. package/dist/Dialogs/UploadBotVars/UploadBotVars.stories.js +0 -33
  132. package/dist/Dialogs/UploadBotVars/UploadBotVars.test.js +0 -20
  133. package/dist/Dialogs/UploadPhrases/UploadPhrases.stories.js +0 -38
  134. package/dist/Dialogs/UploadPhrases/UploadPhrases.test.js +0 -20
  135. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.stories.js +0 -33
  136. package/dist/Dialogs/UploadRoleplayScript/UploadRoleplayScript.test.js +0 -20
  137. package/dist/Dialogs/UploadVideo/UploadVideo.stories.js +0 -28
  138. package/dist/Dialogs/UploadVideo/UploadVideo.test.js +0 -20
  139. package/dist/Dialogs/Variable/Variable.stories.js +0 -31
  140. package/dist/Dialogs/VideoViewer/VideoViewer.stories.js +0 -27
  141. package/dist/Dialogs/ViewImageDialog/ViewImageDialog.stories.js +0 -26
  142. package/dist/Dialogs/WaveformDialog/WaveformDialog.stories.js +0 -32
  143. package/dist/Editors/Bot/Bot.stories.js +0 -185
  144. package/dist/Editors/Bot/Editor/BotDesigner/AddImageModal/AddImageModal.test.js +0 -15
  145. package/dist/Editors/Bot/Editor/BotDesigner/AddLinkModal/AddLinkModal.test.js +0 -15
  146. package/dist/Editors/Bot/Editor/BotDesigner/AddSubstitutionModal/AddSubstitutionModal.test.js +0 -15
  147. package/dist/Editors/Bot/Editor/BotDesigner/AddTopicModal/AddTopicModal.test.js +0 -19
  148. package/dist/Editors/Bot/Editor/BotDesigner/AddTriggerModal/AddTriggerModal.test.js +0 -15
  149. package/dist/Editors/Bot/Editor/BotDesigner/AddVariableModal/AddVariableModal.test.js +0 -15
  150. package/dist/Editors/Bot/Editor/BotDesigner/BotDesigner.test.js +0 -27
  151. package/dist/Editors/Phrases/Phrases.stories.js +0 -31
  152. package/dist/Editors/Roleplay/Roleplay.stories.js +0 -120
  153. package/dist/Exercises/Bot/Bot.stories.js +0 -99
  154. package/dist/Exercises/Bot/Bot.test.js +0 -37
  155. package/dist/Exercises/Listener/Listener.stories.js +0 -91
  156. package/dist/Exercises/Listener/Listener.test.js +0 -37
  157. package/dist/Exercises/Pronouncer/Pronouncer.stories.js +0 -89
  158. package/dist/Exercises/Pronouncer/Pronouncer.test.js +0 -35
  159. package/dist/Exercises/Roleplay/Games/ActItOutGame/ActItOutGame.stories.js +0 -42
  160. package/dist/Exercises/Roleplay/Games/ActItOutGameListening/ActItOutGameListening.stories.js +0 -42
  161. package/dist/Exercises/Roleplay/Games/ActItOutGameListeningAndSpeaking/ActItOutGame.stories.js +0 -42
  162. package/dist/Exercises/Roleplay/Games/ActItOutGameSpeaking/ActItOutGame.stories.js +0 -42
  163. package/dist/Exercises/Roleplay/Games/FillInTheBlanksGame/FillInTheBlanksGame.stories.js +0 -49
  164. package/dist/Exercises/Roleplay/Games/StoryGame/StoryGame.stories.js +0 -49
  165. package/dist/Exercises/Roleplay/Roleplay.stories.js +0 -352
  166. package/dist/Exercises/Roleplay/Roleplay.test.js +0 -41
  167. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.stories.js +0 -26
  168. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGame/RoleplayGame.test.js +0 -21
  169. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.stories.js +0 -82
  170. package/dist/Exercises/Roleplay/RoleplayGameOptions/RoleplayGames.test.js +0 -21
  171. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.stories.js +0 -25
  172. package/dist/Exercises/Roleplay/RoleplayInfo/RoleplayInfo.test.js +0 -21
  173. package/dist/Exercises/Translator/Translator.stories.js +0 -77
  174. package/dist/Exercises/Translator/Translator.test.js +0 -41
  175. package/dist/Forms/AppContact/AppContact.stories.js +0 -47
  176. package/dist/Forms/ChipInput/ChipInput.stories.js +0 -34
  177. package/dist/Forms/Contact/Contact.stories.js +0 -56
  178. package/dist/Forms/CreateBot/CreateBot.stories.js +0 -64
  179. package/dist/Forms/CreateBot/CreateBot.test.js +0 -20
  180. package/dist/Forms/CreateClassroom/CreateClassroom.stories.js +0 -56
  181. package/dist/Forms/CreateClassroom/CreateClassroom.test.js +0 -20
  182. package/dist/Forms/CreateCourse/CreateCourse.stories.js +0 -48
  183. package/dist/Forms/CreateCourse/CreateCourse.test.js +0 -20
  184. package/dist/Forms/CreateCourse/Steps/Customization/Customization.stories.js +0 -35
  185. package/dist/Forms/CreateGroup/CreateGroup.stories.js +0 -49
  186. package/dist/Forms/CreateGroup/CreateGroup.test.js +0 -20
  187. package/dist/Forms/CreateMeetingMultiStepForm/CreateMeetingMultiStepForm.stories.js +0 -80
  188. package/dist/Forms/CreateRoleplay/CreateRoleplay.stories.js +0 -71
  189. package/dist/Forms/CreateRoleplay/CreateRoleplay.test.js +0 -20
  190. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.stories.js +0 -68
  191. package/dist/Forms/CreateRoleplayHook/CreateRoleplayHook.test.js +0 -20
  192. package/dist/Forms/CreateTopic/CreateTopic.stories.js +0 -64
  193. package/dist/Forms/CreateTopic/CreateTopic.test.js +0 -20
  194. package/dist/Forms/CreateTopic/Steps/Customization/Customization.stories.js +0 -35
  195. package/dist/Forms/CreateUser/CreateUser.stories.js +0 -32
  196. package/dist/Forms/DiscussImageSelector/ImageSelector.stories.js +0 -24
  197. package/dist/Forms/DiscussMultiStepFormDialog/MultiStepFormDialog.stories.js +0 -28
  198. package/dist/Forms/FeedbackForm/FeedbackForm.stories.js +0 -47
  199. package/dist/Forms/FeedbackInfo/FeedbackInfo.stories.js +0 -35
  200. package/dist/Forms/ImageSelector/ImageSelector.stories.js +0 -25
  201. package/dist/Forms/InputHelper/InputHelper.stories.js +0 -40
  202. package/dist/Forms/LanguageSelector/LanguageSelector.stories.js +0 -35
  203. package/dist/Forms/LanguageSelector/LanguageSelector.test.js +0 -16
  204. package/dist/Forms/MarkdownEditor/MarkdownEditor.stories.js +0 -35
  205. package/dist/Forms/MarkdownEditor/MarkdownEditor.test.js +0 -35
  206. package/dist/Forms/MultiStepForm/MultiStepForm.stories.js +0 -113
  207. package/dist/Forms/MultiStepForm/MultiStepForm.test.js +0 -20
  208. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.stories.js +0 -27
  209. package/dist/Forms/MultiStepFormDialog/MultiStepFormDialog.test.js +0 -20
  210. package/dist/Forms/MultiStepFormHook/MultiStepFormHook.stories.js +0 -171
  211. package/dist/Forms/PdfUploader/PdfUploader.stories.js +0 -29
  212. package/dist/Forms/RecordingInfo/RecordingInfo.stories.js +0 -83
  213. package/dist/Forms/Settings/Settings.stories.js +0 -300
  214. package/dist/Forms/Settings/Tabs/Display/Display.stories.js +0 -24
  215. package/dist/Forms/Settings/Tabs/EmailNotifications/EmailNotifications.stories.js +0 -27
  216. package/dist/Forms/Settings/Tabs/General/General.stories.js +0 -41
  217. package/dist/Forms/Settings/Tabs/Subscription/Subscription.stories.js +0 -24
  218. package/dist/Forms/UpdateBot/UpdateBot.stories.js +0 -58
  219. package/dist/Forms/UpdateBot/UpdateBot.test.js +0 -23
  220. package/dist/Forms/UpdateClassroom/UpdateClassroom.stories.js +0 -39
  221. package/dist/Forms/UpdateClassroom/UpdateClassroom.test.js +0 -20
  222. package/dist/Forms/UpdateCourse/UpdateCourse.stories.js +0 -60
  223. package/dist/Forms/UpdateCourse/UpdateCourse.test.js +0 -20
  224. package/dist/Forms/UpdateGroup/UpdateGroup.stories.js +0 -54
  225. package/dist/Forms/UpdateGroup/UpdateGroup.test.js +0 -24
  226. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.stories.js +0 -42
  227. package/dist/Forms/UpdateRoleplay/UpdateRoleplay.test.js +0 -20
  228. package/dist/Forms/UpdateTopic/UpdateTopic.stories.js +0 -36
  229. package/dist/Forms/UpdateTopic/UpdateTopic.test.js +0 -20
  230. package/dist/Forms/VideoUploader/VideoUploader.stories.js +0 -29
  231. package/dist/Forms/VoiceSelector/VoiceSelector.stories.js +0 -37
  232. package/dist/Forms/VoiceSelector/VoiceSelector.test.js +0 -16
  233. package/dist/Lists/Avatars/Avatars.stories.js +0 -28
  234. package/dist/Lists/Bots/Bots.stories.js +0 -83
  235. package/dist/Lists/Bots/Bots.test.js +0 -22
  236. package/dist/Lists/Classrooms/Classrooms.stories.js +0 -82
  237. package/dist/Lists/Classrooms/Classrooms.test.js +0 -29
  238. package/dist/Lists/CourseOutline/CourseOutline.stories.js +0 -114
  239. package/dist/Lists/CourseOutline/CourseOutline.test.js +0 -21
  240. package/dist/Lists/CourseSelection/CourseSelection.stories.js +0 -241
  241. package/dist/Lists/Courses/Courses.stories.js +0 -98
  242. package/dist/Lists/Courses/Courses.test.js +0 -29
  243. package/dist/Lists/ExerciseSelection/ExerciseSelection.stories.js +0 -43
  244. package/dist/Lists/Exercises/Exercises.stories.js +0 -90
  245. package/dist/Lists/Exercises/Exercises.test.js +0 -41
  246. package/dist/Lists/Leaderboard/Leaderboard.stories.js +0 -227
  247. package/dist/Lists/Members/Members.stories.js +0 -78
  248. package/dist/Lists/Members/Members.test.js +0 -20
  249. package/dist/Lists/ParseScriptErrors/ParseScriptErrors.stories.js +0 -33
  250. package/dist/Lists/Phrases/Phrases.stories.js +0 -77
  251. package/dist/Lists/Phrases/Phrases.test.js +0 -25
  252. package/dist/Lists/Reviews/Reviews.stories.js +0 -114
  253. package/dist/Lists/Reviews/Reviews.test.js +0 -20
  254. package/dist/Lists/RoleplaySelection/RoleplaySelection.stories.js +0 -34
  255. package/dist/Lists/Roleplays/Roleplays.stories.js +0 -80
  256. package/dist/Lists/Roleplays/Roleplays.test.js +0 -22
  257. package/dist/Lists/Sections/Sections.stories.js +0 -40
  258. package/dist/Lists/Sections/Sections.test.js +0 -20
  259. package/dist/Lists/SpreadsheetGrid/SpreadsheetGrid.stories.js +0 -22
  260. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.stories.js +0 -47
  261. package/dist/Lists/SubscriptionPlans/SubscriptionPlans.test.js +0 -20
  262. package/dist/Lists/Timeline/TimelineLoaded.stories.js +0 -383
  263. package/dist/Lists/TopicPreview/TopicPreview.stories.js +0 -42
  264. package/dist/Lists/Topics/Topics.stories.js +0 -80
  265. package/dist/Lists/Topics/Topics.test.js +0 -21
  266. package/dist/Lists/Voices/Voices.stories.js +0 -69
  267. package/dist/Lists/Voices/Voices.test.js +0 -16
  268. package/dist/Live/Game/Game.stories.js +0 -120
  269. package/dist/Live/GameControls/GameControls.stories.js +0 -24
  270. package/dist/Live/GameQuestionResults/GameQuestionResults.stories.js +0 -26
  271. package/dist/Live/GameSettings/GameSettings.stories.js +0 -57
  272. package/dist/Live/HowToJoin/HowToJoin.stories.js +0 -28
  273. package/dist/Live/LiveListener/LiveListener.stories.js +0 -76
  274. package/dist/Live/LiveRoleplay/LiveStory/LiveStory.stories.js +0 -56
  275. package/dist/Live/LiveTranslator/LiveTranslator.stories.js +0 -78
  276. package/dist/Live/Misc/FinalScoreDrawer/FinalScoreDrawer.stories.js +0 -93
  277. package/dist/Live/Misc/StudentAnswerDrawer/StudentAnswerDrawer.stories.js +0 -38
  278. package/dist/Live/WaitingRoom/WaitingRoom.stories.js +0 -133
  279. package/dist/Misc/AnswerResult/AnswerResult.stories.js +0 -151
  280. package/dist/Misc/AvatarSelector/AvatarSelector.stories.js +0 -40
  281. package/dist/Misc/AvatarSwitcher/AvatarSwitcher.stories.js +0 -22
  282. package/dist/Misc/AxiosRestExample/AxiosRestExample.stories.js +0 -16
  283. package/dist/Misc/AxiosRestExample/AxiosRestPostExample.stories.js +0 -20
  284. package/dist/Misc/CSVUploader/CSVUploader.stories.js +0 -28
  285. package/dist/Misc/ChatBubble/ChatBubble.stories.js +0 -30
  286. package/dist/Misc/CustomChipInput/CustomChipInput.stories.js +0 -28
  287. package/dist/Misc/DefaultColourButton/DefaultColourButton.stories.js +0 -56
  288. package/dist/Misc/DragAndDropPreview/DragAndDropPreview.stories.js +0 -28
  289. package/dist/Misc/EmojiInput/EmojiInput.stories.js +0 -28
  290. package/dist/Misc/ExerciseBottomBar/ExerciseBottomBar.stories.js +0 -22
  291. package/dist/Misc/ExerciseProgressBar/ExerciseProgressBar.stories.js +0 -22
  292. package/dist/Misc/HoverText/HoverText.stories.js +0 -30
  293. package/dist/Misc/ImageLibrary/ImageLibrary.stories.js +0 -22
  294. package/dist/Misc/LanguageSelector/LanguageSelector.stories.js +0 -26
  295. package/dist/Misc/MedalSelector/MedalSelector.stories.js +0 -33
  296. package/dist/Misc/Notes/Notes.stories.js +0 -42
  297. package/dist/Misc/Notes/Notes.test.js +0 -20
  298. package/dist/Misc/NualaCreating/NualaCreating.stories.js +0 -16
  299. package/dist/Misc/NualangVerifiedIcon/NualangVerifiedIcon.stories.js +0 -24
  300. package/dist/Misc/Overlay/Overlay.stories.js +0 -24
  301. package/dist/Misc/PronunciationScore/PronunciationScore.stories.js +0 -34
  302. package/dist/Misc/Recorder/Recorder.stories.js +0 -22
  303. package/dist/Misc/ReportProblem/ReportProblem.stories.js +0 -25
  304. package/dist/Misc/RoleplayChatWaveForm/RoleplayChatWaveForm.stories.js +0 -54
  305. package/dist/Misc/RoleplayWaveform/RoleplayWaveform.stories.js +0 -47
  306. package/dist/Misc/ShareButton/ShareButton.stories.js +0 -32
  307. package/dist/Misc/ShareButton/ShareDrawer.stories.js +0 -39
  308. package/dist/Misc/SiteLanguageSelector/SiteLanguageSelector.stories.js +0 -26
  309. package/dist/Misc/SubmitTextField/SubmitTextField.stories.js +0 -40
  310. package/dist/Misc/Testimonials/Testimonials.stories.js +0 -40
  311. package/dist/Misc/VoiceSpeed/VoiceSpeed.stories.js +0 -25
  312. package/dist/Misc/WaveFormLite/WaveFormLite.stories.js +0 -59
  313. package/dist/Misc/Waveform/Waveform.stories.js +0 -54
  314. package/dist/Misc/WhatsNew/WhatsNew.stories.js +0 -26
  315. package/dist/Navigation/BottomBar/BottomBar.stories.js +0 -22
  316. package/dist/Navigation/Breadcrumbs/Breadcrumbs.stories.js +0 -53
  317. package/dist/Navigation/Breadcrumbs/Breadcrumbs.test.js +0 -22
  318. package/dist/Navigation/Header/Header.stories.js +0 -32
  319. package/dist/Navigation/Header/Header.test.js +0 -20
  320. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.stories.js +0 -46
  321. package/dist/Navigation/ResponsiveDrawer/ResponsiveDrawer.test.js +0 -21
  322. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.stories.js +0 -46
  323. package/dist/Navigation/ResponsiveStepper/ResponsiveStepper.test.js +0 -20
  324. package/dist/Navigation/ResponsiveTabs/ResponsiveTabs.stories.js +0 -86
  325. package/dist/Payments/BillingInfo/BillingInfo.stories.js +0 -31
  326. package/dist/Payments/BillingInfo/BillingInfo.test.js +0 -16
  327. package/dist/Payments/CardDetails/CardDetails.stories.js +0 -30
  328. package/dist/Payments/CardDetails/CardDetails.test.js +0 -22
  329. package/dist/Payments/FreeTrial/FreeTrial.stories.js +0 -22
  330. package/dist/Payments/Payment/Payment.stories.js +0 -28
  331. package/dist/Payments/Subscription/Subscription.stories.js +0 -54
  332. package/dist/Payments/SubscriptionPayment/Subscription.stories.js +0 -29
  333. package/dist/Screens/Activity/Activity.stories.js +0 -135
  334. package/dist/Screens/Activity/Exercise/Attempt/Attempt.stories.js +0 -364
  335. package/dist/Screens/Activity/Exercise/Exercise.stories.js +0 -73
  336. package/dist/Screens/Bots/Bots.stories.js +0 -93
  337. package/dist/Screens/Bots/SearchBots/SearchBots.stories.js +0 -125
  338. package/dist/Screens/Classrooms/Classrooms.stories.js +0 -76
  339. package/dist/Screens/Classrooms/SearchClassrooms/SearchClassrooms.stories.js +0 -58
  340. package/dist/Screens/Classrooms/ViewClassroom/ViewClassroom.stories.js +0 -953
  341. package/dist/Screens/Courses/Courses.stories.js +0 -88
  342. package/dist/Screens/Courses/SearchCourses/SearchCourses.stories.js +0 -165
  343. package/dist/Screens/Courses/SearchTopic/SearchTopic.stories.js +0 -141
  344. package/dist/Screens/Courses/ViewCourse/ViewCourse.stories.js +0 -276
  345. package/dist/Screens/Courses/ViewCourse/ViewTopic/ViewTopic.stories.js +0 -411
  346. package/dist/Screens/Dashboard/Dashboard.stories.js +0 -88
  347. package/dist/Screens/GenerateAudio/GnerateAudio.stories.js +0 -82
  348. package/dist/Screens/Library/Library.stories.js +0 -22
  349. package/dist/Screens/Onboard/Onboard.stories.js +0 -81
  350. package/dist/Screens/Pricing/Pricing.stories.js +0 -431
  351. package/dist/Screens/Profile/Profile.stories.js +0 -114
  352. package/dist/Screens/Roleplays/Roleplays.stories.js +0 -94
  353. package/dist/Screens/Roleplays/SearchRoleplays/SearchRoleplays.stories.js +0 -123
  354. package/dist/Screens/Roleplays/ViewRoleplay/ViewRoleplay.stories.js +0 -131
  355. package/dist/Screens/Search/Search.stories.js +0 -165
  356. package/dist/Tables/Attempt/Attempt.stories.js +0 -226
  357. package/dist/Tables/BotRows/BotRows.stories.js +0 -47
  358. package/dist/Tables/Bots/Bots.stories.js +0 -52
  359. package/dist/Tables/Chart/Chart.stories.js +0 -27
  360. package/dist/Tables/ClassroomRows/ClassroomRows.stories.js +0 -71
  361. package/dist/Tables/Classrooms/Classrooms.stories.js +0 -69
  362. package/dist/Tables/CourseRows/CourseRows.stories.js +0 -77
  363. package/dist/Tables/Courses/Courses.stories.js +0 -75
  364. package/dist/Tables/Courses/Courses.test.js +0 -28
  365. package/dist/Tables/CreatedDiscussionsTable/CreatedDiscussionsTable.stories.js +0 -507
  366. package/dist/Tables/MeetingPrompstList/MeetingPromptsList.stories.js +0 -568
  367. package/dist/Tables/Phrases/Phrases.stories.js +0 -79
  368. package/dist/Tables/Phrases/Phrases.test.js +0 -34
  369. package/dist/Tables/Plans/Plans.stories.js +0 -18
  370. package/dist/Tables/Progress/Progress.stories.js +0 -66
  371. package/dist/Tables/RecordingListCards/RecordingListCards.stories.js +0 -176
  372. package/dist/Tables/RoleplayRows/RoleplayRows.stories.js +0 -47
  373. package/dist/Tables/Roleplays/Roleplays.stories.js +0 -52
  374. package/dist/Tables/ScheduleListCards/ScheduleListCards.stories.js +0 -123
  375. package/dist/Tables/SubmissionsTableCards/SubmissionsTableCards.stories.js +0 -133
  376. package/dist/Tables/Unanswered/Unaswered.stories.js +0 -118
  377. package/dist/Tables/User/UserTable.stories.js +0 -100
  378. 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,