@magmamath/students-features 1.2.2-rc.5 → 1.3.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/.editorconfig +15 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc +22 -0
  4. package/.gitattributes +3 -0
  5. package/.github/actions/setup/action.yml +37 -0
  6. package/.github/workflows/ci.yml +73 -0
  7. package/.gitignore +84 -0
  8. package/.nvmrc +1 -0
  9. package/.prettierrc +11 -0
  10. package/.release-it.json +17 -0
  11. package/.watchmanconfig +1 -0
  12. package/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs +541 -0
  13. package/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs +28 -0
  14. package/.yarn/releases/yarn-3.6.1.cjs +874 -0
  15. package/babel.config.js +5 -0
  16. package/bob.config.js +25 -0
  17. package/dist/commonjs/features/chatbot/components/Chat/Chat.js +0 -2
  18. package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
  19. package/dist/commonjs/features/chatbot/components/Chat/ChatIcon.js +0 -2
  20. package/dist/commonjs/features/chatbot/components/Chat/ChatIcon.js.map +1 -1
  21. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js +0 -2
  22. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js.map +1 -1
  23. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +0 -2
  24. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  25. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +1 -3
  26. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  27. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js +0 -2
  28. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js.map +1 -1
  29. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +0 -2
  30. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js.map +1 -1
  31. package/dist/commonjs/features/chatbot/components/ChatInput/RequestHintButton.js +0 -2
  32. package/dist/commonjs/features/chatbot/components/ChatInput/RequestHintButton.js.map +1 -1
  33. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js +0 -2
  34. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  35. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +1 -3
  36. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  37. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +0 -2
  38. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  39. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +0 -2
  40. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  41. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -2
  42. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -1
  43. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js +1 -0
  44. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +1 -1
  45. package/dist/commonjs/features/chatbot/helpers.js +3 -0
  46. package/dist/commonjs/features/chatbot/helpers.js.map +1 -1
  47. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js +40 -8
  48. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
  49. package/dist/commonjs/features/chatbot/model/ThreadItem.js +51 -13
  50. package/dist/commonjs/features/chatbot/model/ThreadItem.js.map +1 -1
  51. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  52. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js +0 -3
  53. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -1
  54. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +0 -2
  55. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -1
  56. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js +0 -3
  57. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -1
  58. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js +0 -3
  59. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -1
  60. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +0 -3
  61. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -1
  62. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js +1 -4
  63. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js.map +1 -1
  64. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +3 -9
  65. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
  66. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js +0 -2
  67. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js.map +1 -1
  68. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +0 -2
  69. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  70. package/dist/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.js +0 -2
  71. package/dist/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.js.map +1 -1
  72. package/dist/commonjs/features/exampleSolution/components/QuestionSection.js +0 -2
  73. package/dist/commonjs/features/exampleSolution/components/QuestionSection.js.map +1 -1
  74. package/dist/commonjs/features/exampleSolution/components/SolutionSection.js +0 -2
  75. package/dist/commonjs/features/exampleSolution/components/SolutionSection.js.map +1 -1
  76. package/dist/commonjs/features/feedback/components/EmptyComment.js +0 -2
  77. package/dist/commonjs/features/feedback/components/EmptyComment.js.map +1 -1
  78. package/dist/commonjs/features/feedback/components/ListCardCommentsCount.js +0 -2
  79. package/dist/commonjs/features/feedback/components/ListCardCommentsCount.js.map +1 -1
  80. package/dist/commonjs/features/feedback/components/TeacherFeedbackButton.js +0 -3
  81. package/dist/commonjs/features/feedback/components/TeacherFeedbackButton.js.map +1 -1
  82. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +0 -2
  83. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  84. package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js +0 -2
  85. package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
  86. package/dist/commonjs/features/formulaSheet/components/FormulaSheet.js +0 -2
  87. package/dist/commonjs/features/formulaSheet/components/FormulaSheet.js.map +1 -1
  88. package/dist/commonjs/features/formulaSheet/components/FormulaSheetModal.js +0 -2
  89. package/dist/commonjs/features/formulaSheet/components/FormulaSheetModal.js.map +1 -1
  90. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +0 -2
  91. package/dist/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  92. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js +0 -2
  93. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  94. package/dist/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js +4 -9
  95. package/dist/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js.map +1 -1
  96. package/dist/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.js +11 -15
  97. package/dist/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.js.map +1 -1
  98. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js +0 -2
  99. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js.map +1 -1
  100. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +0 -2
  101. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  102. package/dist/commonjs/features/keyboard/components/Keyboard.js +0 -2
  103. package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
  104. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js +0 -2
  105. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  106. package/dist/commonjs/features/keyboard/components/Numpad/Numpad.js +0 -2
  107. package/dist/commonjs/features/keyboard/components/Numpad/Numpad.js.map +1 -1
  108. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +4 -9
  109. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  110. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js +0 -2
  111. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  112. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -2
  113. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -1
  114. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +3 -3
  115. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -1
  116. package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js +0 -2
  117. package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js.map +1 -1
  118. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +0 -2
  119. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  120. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +0 -2
  121. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js.map +1 -1
  122. package/dist/commonjs/features/voice/recording/components/VoiceRecordTimer.js +0 -2
  123. package/dist/commonjs/features/voice/recording/components/VoiceRecordTimer.js.map +1 -1
  124. package/dist/commonjs/features/voice/recording/modal/ModalFooterButtons.js +1 -5
  125. package/dist/commonjs/features/voice/recording/modal/ModalFooterButtons.js.map +1 -1
  126. package/dist/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.js +0 -4
  127. package/dist/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.js.map +1 -1
  128. package/dist/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.js +0 -4
  129. package/dist/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.js.map +1 -1
  130. package/dist/commonjs/index.js +0 -8
  131. package/dist/commonjs/index.js.map +1 -1
  132. package/dist/commonjs/shared/components/PlayButton.js.map +1 -1
  133. package/dist/module/features/chatbot/components/Chat/Chat.js +0 -2
  134. package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
  135. package/dist/module/features/chatbot/components/Chat/ChatIcon.js +0 -2
  136. package/dist/module/features/chatbot/components/Chat/ChatIcon.js.map +1 -1
  137. package/dist/module/features/chatbot/components/Chat/CloseButton.js +0 -2
  138. package/dist/module/features/chatbot/components/Chat/CloseButton.js.map +1 -1
  139. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +0 -2
  140. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  141. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +1 -3
  142. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  143. package/dist/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js +0 -2
  144. package/dist/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js.map +1 -1
  145. package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +0 -2
  146. package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js.map +1 -1
  147. package/dist/module/features/chatbot/components/ChatInput/RequestHintButton.js +0 -2
  148. package/dist/module/features/chatbot/components/ChatInput/RequestHintButton.js.map +1 -1
  149. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js +0 -2
  150. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  151. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +1 -3
  152. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  153. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +0 -2
  154. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  155. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +0 -2
  156. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  157. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -2
  158. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -1
  159. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js +1 -0
  160. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +1 -1
  161. package/dist/module/features/chatbot/helpers.js +3 -0
  162. package/dist/module/features/chatbot/helpers.js.map +1 -1
  163. package/dist/module/features/chatbot/model/ChatBotThreadManager.js +40 -8
  164. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +1 -1
  165. package/dist/module/features/chatbot/model/ThreadItem.js +51 -13
  166. package/dist/module/features/chatbot/model/ThreadItem.js.map +1 -1
  167. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  168. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js +0 -3
  169. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -1
  170. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +0 -2
  171. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -1
  172. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js +0 -3
  173. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -1
  174. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js +0 -3
  175. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -1
  176. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +0 -3
  177. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -1
  178. package/dist/module/features/endOfAssignment/components/Modal/Modal.js +1 -4
  179. package/dist/module/features/endOfAssignment/components/Modal/Modal.js.map +1 -1
  180. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +3 -9
  181. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
  182. package/dist/module/features/endOfAssignment/ui/PracticeButton.js +0 -2
  183. package/dist/module/features/endOfAssignment/ui/PracticeButton.js.map +1 -1
  184. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +0 -2
  185. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  186. package/dist/module/features/exampleSolution/components/ExampleSolutionModalContent.js +0 -2
  187. package/dist/module/features/exampleSolution/components/ExampleSolutionModalContent.js.map +1 -1
  188. package/dist/module/features/exampleSolution/components/QuestionSection.js +0 -2
  189. package/dist/module/features/exampleSolution/components/QuestionSection.js.map +1 -1
  190. package/dist/module/features/exampleSolution/components/SolutionSection.js +0 -2
  191. package/dist/module/features/exampleSolution/components/SolutionSection.js.map +1 -1
  192. package/dist/module/features/feedback/components/EmptyComment.js +0 -2
  193. package/dist/module/features/feedback/components/EmptyComment.js.map +1 -1
  194. package/dist/module/features/feedback/components/ListCardCommentsCount.js +0 -2
  195. package/dist/module/features/feedback/components/ListCardCommentsCount.js.map +1 -1
  196. package/dist/module/features/feedback/components/TeacherFeedbackButton.js +0 -3
  197. package/dist/module/features/feedback/components/TeacherFeedbackButton.js.map +1 -1
  198. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +0 -2
  199. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  200. package/dist/module/features/feedback/components/UnreadMessagesBadge.js +0 -2
  201. package/dist/module/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
  202. package/dist/module/features/formulaSheet/components/FormulaSheet.js +0 -2
  203. package/dist/module/features/formulaSheet/components/FormulaSheet.js.map +1 -1
  204. package/dist/module/features/formulaSheet/components/FormulaSheetModal.js +0 -2
  205. package/dist/module/features/formulaSheet/components/FormulaSheetModal.js.map +1 -1
  206. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js +0 -2
  207. package/dist/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.js.map +1 -1
  208. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js +0 -2
  209. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  210. package/dist/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js +4 -9
  211. package/dist/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js.map +1 -1
  212. package/dist/module/features/keyboard/components/BasicLayout/TimeBasicLayout.js +12 -16
  213. package/dist/module/features/keyboard/components/BasicLayout/TimeBasicLayout.js.map +1 -1
  214. package/dist/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js +0 -2
  215. package/dist/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js.map +1 -1
  216. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +0 -2
  217. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  218. package/dist/module/features/keyboard/components/Keyboard.js +0 -2
  219. package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
  220. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js +0 -2
  221. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  222. package/dist/module/features/keyboard/components/Numpad/Numpad.js +0 -2
  223. package/dist/module/features/keyboard/components/Numpad/Numpad.js.map +1 -1
  224. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +4 -9
  225. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  226. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js +0 -2
  227. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  228. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +0 -2
  229. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -1
  230. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +3 -3
  231. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -1
  232. package/dist/module/features/problemSelector/components/ProblemSelectorButton.js +0 -2
  233. package/dist/module/features/problemSelector/components/ProblemSelectorButton.js.map +1 -1
  234. package/dist/module/features/voice/recording/components/VoiceRecordButton.js +0 -2
  235. package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  236. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +0 -2
  237. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js.map +1 -1
  238. package/dist/module/features/voice/recording/components/VoiceRecordTimer.js +0 -2
  239. package/dist/module/features/voice/recording/components/VoiceRecordTimer.js.map +1 -1
  240. package/dist/module/features/voice/recording/modal/ModalFooterButtons.js +1 -5
  241. package/dist/module/features/voice/recording/modal/ModalFooterButtons.js.map +1 -1
  242. package/dist/module/features/voice/recording/modal/VoiceRecordDeleteModal.js +0 -4
  243. package/dist/module/features/voice/recording/modal/VoiceRecordDeleteModal.js.map +1 -1
  244. package/dist/module/features/voice/recording/modal/VoiceRecordUndoModal.js +0 -4
  245. package/dist/module/features/voice/recording/modal/VoiceRecordUndoModal.js.map +1 -1
  246. package/dist/module/index.js +0 -1
  247. package/dist/module/index.js.map +1 -1
  248. package/dist/module/shared/components/PlayButton.js.map +1 -1
  249. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  250. package/dist/typescript/commonjs/features/chatbot/components/Chat/ChatIcon.d.ts.map +1 -1
  251. package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -1
  252. package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  253. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
  254. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.d.ts.map +1 -1
  256. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/RequestHintButton.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  258. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  260. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -1
  262. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +2 -1
  263. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +1 -1
  264. package/dist/typescript/commonjs/features/chatbot/helpers.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts +1 -0
  266. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts +50 -12
  268. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +10 -2
  270. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  271. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +5 -2
  272. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +22 -0
  274. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -1
  276. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -1
  278. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -1
  280. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
  282. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  284. package/dist/typescript/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/features/exampleSolution/components/QuestionSection.d.ts.map +1 -1
  286. package/dist/typescript/commonjs/features/exampleSolution/components/SolutionSection.d.ts.map +1 -1
  287. package/dist/typescript/commonjs/features/feedback/components/EmptyComment.d.ts.map +1 -1
  288. package/dist/typescript/commonjs/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton.d.ts.map +1 -1
  290. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  291. package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
  292. package/dist/typescript/commonjs/features/formulaSheet/components/FormulaSheet.d.ts.map +1 -1
  293. package/dist/typescript/commonjs/features/formulaSheet/components/FormulaSheetModal.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  295. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/BasicLayout.d.ts.map +1 -1
  296. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.d.ts.map +1 -1
  297. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.d.ts.map +1 -1
  298. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.d.ts.map +1 -1
  299. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  300. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
  301. package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  302. package/dist/typescript/commonjs/features/keyboard/components/Numpad/Numpad.d.ts.map +1 -1
  303. package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  304. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.d.ts.map +1 -1
  305. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -1
  306. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts +2 -1
  307. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -1
  308. package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -1
  309. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  310. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordTimer.d.ts.map +1 -1
  312. package/dist/typescript/commonjs/features/voice/recording/modal/ModalFooterButtons.d.ts +1 -3
  313. package/dist/typescript/commonjs/features/voice/recording/modal/ModalFooterButtons.d.ts.map +1 -1
  314. package/dist/typescript/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  315. package/dist/typescript/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.d.ts.map +1 -1
  316. package/dist/typescript/commonjs/index.d.ts +0 -1
  317. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  318. package/dist/typescript/commonjs/shared/components/PlayButton.d.ts +0 -1
  319. package/dist/typescript/commonjs/shared/components/PlayButton.d.ts.map +1 -1
  320. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  321. package/dist/typescript/module/features/chatbot/components/Chat/ChatIcon.d.ts.map +1 -1
  322. package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -1
  323. package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  324. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
  325. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.d.ts.map +1 -1
  326. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.d.ts.map +1 -1
  327. package/dist/typescript/module/features/chatbot/components/ChatInput/RequestHintButton.d.ts.map +1 -1
  328. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  329. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  330. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  331. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  332. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -1
  333. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +2 -1
  334. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +1 -1
  335. package/dist/typescript/module/features/chatbot/helpers.d.ts.map +1 -1
  336. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts +1 -0
  337. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +1 -1
  338. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts +50 -12
  339. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  340. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +10 -2
  341. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  342. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +5 -2
  343. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  344. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +22 -0
  345. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +1 -1
  346. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -1
  347. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -1
  348. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -1
  349. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -1
  350. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -1
  351. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -1
  352. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
  353. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -1
  354. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  355. package/dist/typescript/module/features/exampleSolution/components/ExampleSolutionModalContent.d.ts.map +1 -1
  356. package/dist/typescript/module/features/exampleSolution/components/QuestionSection.d.ts.map +1 -1
  357. package/dist/typescript/module/features/exampleSolution/components/SolutionSection.d.ts.map +1 -1
  358. package/dist/typescript/module/features/feedback/components/EmptyComment.d.ts.map +1 -1
  359. package/dist/typescript/module/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -1
  360. package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton.d.ts.map +1 -1
  361. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  362. package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
  363. package/dist/typescript/module/features/formulaSheet/components/FormulaSheet.d.ts.map +1 -1
  364. package/dist/typescript/module/features/formulaSheet/components/FormulaSheetModal.d.ts.map +1 -1
  365. package/dist/typescript/module/features/keyboard/components/AlgebraLayout/AlgebraLayout.d.ts.map +1 -1
  366. package/dist/typescript/module/features/keyboard/components/BasicLayout/BasicLayout.d.ts.map +1 -1
  367. package/dist/typescript/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.d.ts.map +1 -1
  368. package/dist/typescript/module/features/keyboard/components/BasicLayout/TimeBasicLayout.d.ts.map +1 -1
  369. package/dist/typescript/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.d.ts.map +1 -1
  370. package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  371. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
  372. package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  373. package/dist/typescript/module/features/keyboard/components/Numpad/Numpad.d.ts.map +1 -1
  374. package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  375. package/dist/typescript/module/features/keyboard/components/UnitsLayout/UnitsLayout.d.ts.map +1 -1
  376. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -1
  377. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts +2 -1
  378. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -1
  379. package/dist/typescript/module/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -1
  380. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  381. package/dist/typescript/module/features/voice/recording/components/VoiceRecordDeleteButton.d.ts.map +1 -1
  382. package/dist/typescript/module/features/voice/recording/components/VoiceRecordTimer.d.ts.map +1 -1
  383. package/dist/typescript/module/features/voice/recording/modal/ModalFooterButtons.d.ts +1 -3
  384. package/dist/typescript/module/features/voice/recording/modal/ModalFooterButtons.d.ts.map +1 -1
  385. package/dist/typescript/module/features/voice/recording/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  386. package/dist/typescript/module/features/voice/recording/modal/VoiceRecordUndoModal.d.ts.map +1 -1
  387. package/dist/typescript/module/index.d.ts +0 -1
  388. package/dist/typescript/module/index.d.ts.map +1 -1
  389. package/dist/typescript/module/shared/components/PlayButton.d.ts +0 -1
  390. package/dist/typescript/module/shared/components/PlayButton.d.ts.map +1 -1
  391. package/example/app.json +30 -0
  392. package/example/assets/adaptive-icon.png +0 -0
  393. package/example/assets/favicon.png +0 -0
  394. package/example/assets/icon.png +0 -0
  395. package/example/assets/splash-icon.png +0 -0
  396. package/example/babel.config.js +28 -0
  397. package/example/index.js +8 -0
  398. package/example/metro.config.js +18 -0
  399. package/example/package.json +25 -0
  400. package/example/src/App.tsx +8 -0
  401. package/example/tsconfig.json +6 -0
  402. package/package.json +2 -2
  403. package/src/features/chatbot/components/Chat/Chat.tsx +1 -2
  404. package/src/features/chatbot/components/Chat/ChatIcon.tsx +1 -2
  405. package/src/features/chatbot/components/Chat/CloseButton.tsx +0 -2
  406. package/src/features/chatbot/components/ChatControls/ChatControls.tsx +0 -2
  407. package/src/features/chatbot/components/ChatInput/FreeText/ChatTextInput.tsx +0 -2
  408. package/src/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.tsx +1 -2
  409. package/src/features/chatbot/components/ChatInput/FreeText/SendMessageButton.tsx +0 -2
  410. package/src/features/chatbot/components/ChatInput/RequestHintButton.tsx +0 -2
  411. package/src/features/chatbot/components/ChatMessage/MessageLoader.tsx +2 -3
  412. package/src/features/chatbot/components/ChatMessage/MessageTextToSpeech.tsx +0 -2
  413. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +1 -2
  414. package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +0 -2
  415. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +0 -2
  416. package/src/features/chatbot/errorSpotting/ErrorSpottingModel.ts +3 -1
  417. package/src/features/chatbot/helpers.ts +1 -0
  418. package/src/features/chatbot/model/ChatBotThreadManager.ts +44 -9
  419. package/src/features/chatbot/model/ThreadItem.ts +68 -19
  420. package/src/features/chatbot/types/api.types.ts +17 -2
  421. package/src/features/chatbot/types/model.types.ts +12 -2
  422. package/src/features/chatbot/types/units.types.ts +26 -0
  423. package/src/features/endOfAssignment/components/CheatDetected/CheatDetected.tsx +1 -3
  424. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.tsx +0 -2
  425. package/src/features/endOfAssignment/components/ExamLeave/ExamLeave.tsx +1 -3
  426. package/src/features/endOfAssignment/components/ExamPaused/ExamPaused.tsx +1 -3
  427. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmit.tsx +1 -3
  428. package/src/features/endOfAssignment/components/Modal/Modal.tsx +1 -6
  429. package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +1 -6
  430. package/src/features/endOfAssignment/ui/PracticeButton.tsx +0 -2
  431. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +0 -2
  432. package/src/features/exampleSolution/components/ExampleSolutionModalContent.tsx +0 -2
  433. package/src/features/exampleSolution/components/QuestionSection.tsx +1 -2
  434. package/src/features/exampleSolution/components/SolutionSection.tsx +1 -5
  435. package/src/features/feedback/components/EmptyComment.tsx +1 -2
  436. package/src/features/feedback/components/ListCardCommentsCount.tsx +1 -2
  437. package/src/features/feedback/components/TeacherFeedbackButton.tsx +0 -3
  438. package/src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx +1 -2
  439. package/src/features/feedback/components/UnreadMessagesBadge.tsx +0 -2
  440. package/src/features/formulaSheet/components/FormulaSheet.tsx +0 -2
  441. package/src/features/formulaSheet/components/FormulaSheetModal.tsx +1 -2
  442. package/src/features/keyboard/components/AlgebraLayout/AlgebraLayout.tsx +1 -2
  443. package/src/features/keyboard/components/BasicLayout/BasicLayout.tsx +1 -2
  444. package/src/features/keyboard/components/BasicLayout/CurrencyBasicLayout.tsx +1 -5
  445. package/src/features/keyboard/components/BasicLayout/TimeBasicLayout.tsx +13 -16
  446. package/src/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.tsx +1 -2
  447. package/src/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.tsx +1 -2
  448. package/src/features/keyboard/components/Keyboard.tsx +0 -2
  449. package/src/features/keyboard/components/MainLayout/MainLayout.tsx +1 -5
  450. package/src/features/keyboard/components/Numpad/Numpad.tsx +1 -2
  451. package/src/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.tsx +1 -9
  452. package/src/features/keyboard/components/UnitsLayout/UnitsLayout.tsx +1 -2
  453. package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +1 -2
  454. package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +4 -2
  455. package/src/features/problemSelector/components/ProblemSelectorButton.tsx +0 -2
  456. package/src/features/voice/recording/components/VoiceRecordButton.tsx +0 -2
  457. package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +1 -2
  458. package/src/features/voice/recording/components/VoiceRecordTimer.tsx +1 -2
  459. package/src/features/voice/recording/modal/ModalFooterButtons.tsx +0 -6
  460. package/src/features/voice/recording/modal/VoiceRecordDeleteModal.tsx +0 -4
  461. package/src/features/voice/recording/modal/VoiceRecordUndoModal.tsx +0 -4
  462. package/src/index.ts +0 -1
  463. package/src/shared/components/PlayButton.tsx +0 -1
  464. package/tsconfig.build.json +4 -0
  465. package/tsconfig.json +34 -0
  466. package/yarn.lock +10957 -0
  467. package/dist/commonjs/config/dataTestIDs.js +0 -66
  468. package/dist/commonjs/config/dataTestIDs.js.map +0 -1
  469. package/dist/module/config/dataTestIDs.js +0 -63
  470. package/dist/module/config/dataTestIDs.js.map +0 -1
  471. package/dist/typescript/commonjs/config/dataTestIDs.d.ts +0 -61
  472. package/dist/typescript/commonjs/config/dataTestIDs.d.ts.map +0 -1
  473. package/dist/typescript/module/config/dataTestIDs.d.ts +0 -61
  474. package/dist/typescript/module/config/dataTestIDs.d.ts.map +0 -1
  475. package/src/config/dataTestIDs.ts +0 -66
@@ -0,0 +1,30 @@
1
+ {
2
+ "expo": {
3
+ "name": "example",
4
+ "slug": "example",
5
+ "version": "1.0.0",
6
+ "orientation": "portrait",
7
+ "icon": "./assets/icon.png",
8
+ "userInterfaceStyle": "light",
9
+ "newArchEnabled": true,
10
+ "splash": {
11
+ "image": "./assets/splash-icon.png",
12
+ "resizeMode": "contain",
13
+ "backgroundColor": "#ffffff"
14
+ },
15
+ "ios": {
16
+ "supportsTablet": true,
17
+ "bundleIdentifier": "magmamath.features.example"
18
+ },
19
+ "android": {
20
+ "adaptiveIcon": {
21
+ "foregroundImage": "./assets/adaptive-icon.png",
22
+ "backgroundColor": "#ffffff"
23
+ },
24
+ "package": "magmamath.features.example"
25
+ },
26
+ "web": {
27
+ "favicon": "./assets/favicon.png"
28
+ }
29
+ }
30
+ }
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,28 @@
1
+ const path = require('path')
2
+ const { getConfig } = require('react-native-builder-bob/babel-config')
3
+ const pkg = require('../package.json')
4
+
5
+ const root = path.resolve(__dirname, '..')
6
+
7
+ module.exports = function (api) {
8
+ api.cache(true)
9
+
10
+ return getConfig(
11
+ {
12
+ presets: ['babel-preset-expo'],
13
+ plugins: [
14
+ [
15
+ 'module-resolver',
16
+ {
17
+ extensions: ['.tsx', '.ts', '.js', '.json'],
18
+ alias: {
19
+ [pkg.name]: path.join(__dirname, '../', pkg.source),
20
+ },
21
+ },
22
+ ],
23
+ ['@babel/plugin-transform-private-methods', { loose: true }],
24
+ ],
25
+ },
26
+ { root, pkg },
27
+ )
28
+ }
@@ -0,0 +1,8 @@
1
+ import { registerRootComponent } from 'expo';
2
+
3
+ import App from './src/App';
4
+
5
+ // registerRootComponent calls AppRegistry.registerComponent('main', () => App);
6
+ // It also ensures that whether you load the app in Expo Go or in a native build,
7
+ // the environment is set up appropriately
8
+ registerRootComponent(App);
@@ -0,0 +1,18 @@
1
+ const path = require('path');
2
+ const { getDefaultConfig } = require('@expo/metro-config');
3
+ const { getConfig } = require('react-native-builder-bob/metro-config');
4
+ const pkg = require('../package.json');
5
+
6
+ const root = path.resolve(__dirname, '..');
7
+
8
+ /**
9
+ * Metro configuration
10
+ * https://facebook.github.io/metro/docs/configuration
11
+ *
12
+ * @type {import('metro-config').MetroConfig}
13
+ */
14
+ module.exports = getConfig(getDefaultConfig(__dirname), {
15
+ root,
16
+ pkg,
17
+ project: __dirname,
18
+ });
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "@magmamath/students-features-example",
3
+ "version": "1.0.0",
4
+ "main": "index.js",
5
+ "scripts": {
6
+ "start": "expo start",
7
+ "android": "expo start --android",
8
+ "ios": "expo start --ios",
9
+ "web": "expo start --web"
10
+ },
11
+ "dependencies": {
12
+ "@expo/metro-runtime": "~4.0.0",
13
+ "expo": "~52.0.11",
14
+ "expo-status-bar": "~2.0.0",
15
+ "react": "18.3.1",
16
+ "react-dom": "18.3.1",
17
+ "react-native": "0.76.3",
18
+ "react-native-web": "~0.19.13"
19
+ },
20
+ "devDependencies": {
21
+ "@babel/core": "^7.20.0",
22
+ "react-native-builder-bob": "^0.33.3"
23
+ },
24
+ "private": true
25
+ }
@@ -0,0 +1,8 @@
1
+ import React from 'react'
2
+ import { Text } from 'react-native'
3
+
4
+ const App = () => {
5
+ return <Text>Hello</Text>
6
+ }
7
+
8
+ export default App
@@ -0,0 +1,6 @@
1
+ {
2
+ "extends": "../tsconfig",
3
+ "compilerOptions": {
4
+ // Avoid expo-cli auto-generating a tsconfig
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "1.2.2-rc.5",
3
+ "version": "1.3.1-rc.0",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "src/index.ts",
@@ -90,4 +90,4 @@
90
90
  "type": "library",
91
91
  "version": "0.44.3"
92
92
  }
93
- }
93
+ }
@@ -21,7 +21,6 @@ import { MessageItem } from './MessageItem'
21
21
  import { CHAT_CONTAINER_WIDTH } from '../../constants'
22
22
  import { useChatScroll } from '../../hooks/useChatScroll'
23
23
  import { useChatFade, FadeOverlays } from '../../hooks/useChatFade'
24
- import { TEST_IDS } from '../../../../config/dataTestIDs'
25
24
 
26
25
  const Separator = () => <View style={styles.separator} />
27
26
  const keyExtractor = (item: ConversationMessage, index: number) => `${item.id}-${index}`
@@ -116,7 +115,7 @@ export const Chat = ({
116
115
  if (!isOpen) return null
117
116
 
118
117
  return (
119
- <View testID={TEST_IDS.CHAT_AREA} style={[styles.container, { maxHeight }]}>
118
+ <View style={[styles.container, { maxHeight }]}>
120
119
  <View style={styles.listWrapper}>
121
120
  <FlatList
122
121
  ref={listRef}
@@ -5,14 +5,13 @@ import { IS_WEB } from '@magmamath/react-native-ui'
5
5
  import { ChatbotIcon } from '../../../../shared/icons/ChatbotIcon'
6
6
  import { LavaIconInGlasses } from '../../../../shared/icons/LavaIconInGlasses'
7
7
  import { CHATBOT_ICON_SIZE } from '../../constants'
8
- import { TEST_IDS } from '../../../../config/dataTestIDs'
9
8
 
10
9
  type ChatIconProps = {
11
10
  isLoading: boolean
12
11
  }
13
12
 
14
13
  export const ChatIcon = ({ isLoading }: ChatIconProps) => (
15
- <View style={styles.container} testID={TEST_IDS.CHAT_ICON}>
14
+ <View style={styles.container}>
16
15
  {isLoading ? (
17
16
  <LavaIconInGlasses width={CHATBOT_ICON_SIZE.width} height={CHATBOT_ICON_SIZE.height} />
18
17
  ) : (
@@ -2,7 +2,6 @@ import React from 'react'
2
2
  import { StyleSheet } from 'react-native'
3
3
  import { Button, ButtonColor, ButtonSize, ButtonVariant, COLORS } from '@magmamath/react-native-ui'
4
4
  import { CloseIcon } from '../../../../shared/icons/CloseIcon'
5
- import { TEST_IDS } from '../../../../config/dataTestIDs'
6
5
 
7
6
  type CloseButtonProps = {
8
7
  onPress?: () => void
@@ -16,7 +15,6 @@ export const CloseButton = ({ onPress }: CloseButtonProps) => (
16
15
  size={ButtonSize.MEDIUM}
17
16
  colorScheme={ButtonColor.WHITE}
18
17
  raiseLevel={5}
19
- testID={TEST_IDS.CHAT_CLOSE_BUTTON}
20
18
  >
21
19
  <CloseIcon width={18} height={18} />
22
20
  </Button>
@@ -5,7 +5,6 @@ import { Button, ButtonColor, ButtonSize, ButtonVariant } from '@magmamath/react
5
5
  import { useUnit } from 'effector-react'
6
6
  import { ChatbotModel } from '../../model/ChatBotModel'
7
7
  import { ChatbotIcon } from '../../../../shared/icons/ChatbotIcon'
8
- import { TEST_IDS } from '../../../../config/dataTestIDs'
9
8
 
10
9
  type ChatControlsProps = {
11
10
  model: ChatbotModel
@@ -44,7 +43,6 @@ export const ChatControls = ({
44
43
  raiseLevel={3}
45
44
  onPress={onPressHelpButton}
46
45
  style={{ text: styles.helpButtonText }}
47
- testID={TEST_IDS.CHAT_GET_A_HINT_BUTTON}
48
46
  >
49
47
  {(isTranslated && getHint.translatedText) || getHint.text}
50
48
  </Button>
@@ -14,7 +14,6 @@ import { useKeyBoard } from '../../../../../shared/hooks/useKeyboard'
14
14
  import { KeyboardKeys } from '../../../../../lib/constants'
15
15
 
16
16
  import { SendMessageButton } from './SendMessageButton'
17
- import { TEST_IDS } from '../../../../../config/dataTestIDs'
18
17
 
19
18
  const MAX_AVAILABLE_MESSAGE_LENGTH = 500
20
19
  const COMPACT_WIDTH = 134
@@ -111,7 +110,6 @@ export const ChatTextInput = ({
111
110
  placeholder={placeholder}
112
111
  placeholderTextColor={COLORS.NEUTRAL_5}
113
112
  style={styles.input}
114
- testID={TEST_IDS.OPEN_CHAT_TEXT_INPUT}
115
113
  />
116
114
  <SendMessageButton
117
115
  onPress={handleSendMessage}
@@ -6,7 +6,6 @@ import { HintButtonVariant, RequestHintButton } from '../RequestHintButton'
6
6
  import { useChatModel } from '../../../context/ChatBotModelContext'
7
7
  import { t } from '../../../../../shared/translation'
8
8
  import { ChatTextInput } from './ChatTextInput'
9
- import { TEST_IDS } from '../../../../../config/dataTestIDs'
10
9
 
11
10
  type FreeTextInputBlockProps = {
12
11
  optionLabel: string
@@ -39,7 +38,7 @@ export const FreeTextInputBlock = ({
39
38
  const handleOnChangeText = (text: string) => model.textInput.setValue(text)
40
39
 
41
40
  return (
42
- <View style={styles.container} testID={TEST_IDS.OPEN_CHAT_INPUT_FIELD}>
41
+ <View style={styles.container}>
43
42
  <ChatTextInput
44
43
  value={inputValue}
45
44
  onSubmit={handleOnSubmit}
@@ -9,7 +9,6 @@ import Animated, {
9
9
  import { ArrowUpIcon, COLORS, IS_MOBILE } from '@magmamath/react-native-ui'
10
10
  import { ColorScheme } from '@magmamath/students-features'
11
11
  import { MESSAGE_COLORS_MAP } from '../../../constants'
12
- import { TEST_IDS } from '../../../../../config/dataTestIDs'
13
12
 
14
13
  type SendMessageButtonProps = {
15
14
  onPress: () => void
@@ -55,7 +54,6 @@ export const SendMessageButton = ({
55
54
  disabled={disabled}
56
55
  accessibilityState={{ disabled }}
57
56
  accessibilityRole="button"
58
- testID={TEST_IDS.OPEN_CHAT_SEND_MESSAGE_BUTTON}
59
57
  >
60
58
  {IS_MOBILE ? (
61
59
  <Animated.View
@@ -14,7 +14,6 @@ import {
14
14
  SPACING,
15
15
  } from '@magmamath/react-native-ui'
16
16
  import { ColorScheme } from '@magmamath/students-features'
17
- import { TEST_IDS } from '../../../../config/dataTestIDs'
18
17
  import { INPUT_WIDTH, MESSAGE_COLORS_MAP } from '../../constants'
19
18
 
20
19
  export enum HintButtonVariant {
@@ -104,7 +103,6 @@ export const RequestHintButton = memo(
104
103
  disabled={disabled}
105
104
  accessibilityState={{ disabled }}
106
105
  accessibilityRole="button"
107
- testID={TEST_IDS.CHAT_NEED_A_HINT_BUTTON}
108
106
  >
109
107
  <Animated.View style={[styles.content, animatedTextContainerStyle]}>
110
108
  <Animated.Text numberOfLines={1} style={[styles.text, animatedTextStyle, { fontSize }]}>
@@ -1,8 +1,7 @@
1
- import React from 'react'
1
+ import React, { PropsWithChildren } from 'react'
2
2
  import { StyleSheet, View } from 'react-native'
3
3
  import { BORDER_RADIUS, COLORS, Loader, LoaderColor } from '@magmamath/react-native-ui'
4
4
  import { SPACING } from '@magmamath/react-native-ui'
5
- import { TEST_IDS } from '../../../../config/dataTestIDs'
6
5
 
7
6
  type MessageLoaderProps = {
8
7
  isLoading?: boolean
@@ -12,7 +11,7 @@ export const MessageLoader = ({ isLoading }: MessageLoaderProps) => {
12
11
  if (!isLoading) return null
13
12
 
14
13
  return (
15
- <View style={styles.loader} testID={TEST_IDS.CHAT_MESSAGE_LOADER}>
14
+ <View style={styles.loader}>
16
15
  <Loader color={LoaderColor.GRAY} />
17
16
  </View>
18
17
  )
@@ -6,7 +6,6 @@ import { ConversationMessage } from '../../types/units.types'
6
6
  import { MessageVariant } from '../../types/model.types'
7
7
  import { ColorScheme } from '../../types/style.types'
8
8
  import { MESSAGE_COLORS_MAP } from '../../constants'
9
- import { TEST_IDS } from '../../../../config/dataTestIDs'
10
9
 
11
10
  type MessageTextToSpeechProps = {
12
11
  state: T2SState
@@ -35,7 +34,6 @@ export const MessageTextToSpeech = ({
35
34
  colorScheme={MESSAGE_COLORS_MAP[colorScheme][variant].icon}
36
35
  state={state}
37
36
  onPress={play}
38
- testID={TEST_IDS.CHAT_TTS_BUTTON}
39
37
  />
40
38
  )
41
39
  }
@@ -7,7 +7,6 @@ import { ColorScheme } from '../../types/style.types'
7
7
  import { MessageVariant } from '../../types/model.types'
8
8
  import { VariantProps } from './ChatMessage'
9
9
  import { MessageContent } from './MessageContent'
10
- import { TEST_IDS } from '../../../../config/dataTestIDs'
11
10
 
12
11
  export const ReceivedMessage = ({
13
12
  message,
@@ -22,7 +21,7 @@ export const ReceivedMessage = ({
22
21
  const text = isTranslated ? message.translatedMessage : message.message
23
22
 
24
23
  return (
25
- <View style={styles.container} testID={TEST_IDS.CHAT_MESSAGE_RECEIVED}>
24
+ <View style={styles.container}>
26
25
  <View style={[styles.iconWrapper, { opacity: withIcon ? 1 : 0 }]}>
27
26
  <ChatbotIcon width={CHATBOT_ICON_SIZE.width} height={CHATBOT_ICON_SIZE.height} />
28
27
  </View>
@@ -7,7 +7,6 @@ import { VariantProps } from './ChatMessage'
7
7
  import { MESSAGE_COLORS_MAP } from '../../constants'
8
8
  import { ColorScheme } from '../../types/style.types'
9
9
  import { MessageVariant } from '../../types/model.types'
10
- import { TEST_IDS } from '../../../../config/dataTestIDs'
11
10
 
12
11
  export const SentMessage = React.memo(
13
12
  ({ message, isTranslated, colorScheme = ColorScheme.Blue }: VariantProps) => {
@@ -15,7 +14,6 @@ export const SentMessage = React.memo(
15
14
 
16
15
  return (
17
16
  <View
18
- testID={TEST_IDS.CHAT_MESSAGE_SENT}
19
17
  style={[
20
18
  styles.container,
21
19
  { backgroundColor: MESSAGE_COLORS_MAP[colorScheme][MessageVariant.SENT].background },
@@ -6,7 +6,6 @@ import { StyleSheet } from 'react-native'
6
6
  import { HighlighterIcon } from '../../../shared/icons/HighlighterIcon'
7
7
  import { ConversationMessage } from '../types/units.types'
8
8
  import { useText } from '../../../shared/translation'
9
- import { TEST_IDS } from '../../../config/dataTestIDs'
10
9
 
11
10
  type ErrorSpottingButtonProps = {
12
11
  contextMessage: ConversationMessage
@@ -33,7 +32,6 @@ export const ErrorSpottingButton = ({ contextMessage }: ErrorSpottingButtonProps
33
32
  variant={'secondary'}
34
33
  colorScheme={'blue'}
35
34
  size={'small'}
36
- testID={TEST_IDS.CHAT_ERROR_SPOTTING_BUTTON}
37
35
  onPress={() => {
38
36
  model.errorSpotting.errorSpottingPressed({ message: contextMessage })
39
37
  }}
@@ -1,5 +1,5 @@
1
1
  import { createEvent, createStore, sample, Store, restore } from 'effector'
2
- import { ChatItem, ConversationMessage } from '../types/units.types'
2
+ import { ChatItem, ConversationMessage, ErrorChar } from '../types/units.types'
3
3
 
4
4
  type ErrorSpottingProps = {
5
5
  $currentChatData: Store<ChatItem>
@@ -10,6 +10,7 @@ type ActiveErrorSpottingData = {
10
10
  isDisabled: boolean
11
11
  strokesIds: string[]
12
12
  validationKey: null | string
13
+ errorChars: ErrorChar[] | null
13
14
  }
14
15
 
15
16
  const AUTO_CLOSE_TIMEOUT = 5000
@@ -62,6 +63,7 @@ export class ErrorSpottingModel {
62
63
  return {
63
64
  validationKey: key,
64
65
  strokesIds: chatData.currentThread.errorStrokesIds,
66
+ errorChars: chatData.currentThread.errorChars,
65
67
  isActive: source.isEnabled && !isDisabled && isKeyChanged,
66
68
  isDisabled,
67
69
  }
@@ -103,6 +103,7 @@ export function prepareChatRequestPayload(
103
103
  ...(imageCdnId && { imageCdnId }),
104
104
  ...(imageAltText && { altText: imageAltText }),
105
105
  ...(!!problemStandards?.length && { problemStandards }),
106
+ ...(!!answerOptions?.length && { answerOptions }),
106
107
  },
107
108
  }
108
109
  }
@@ -56,24 +56,44 @@ export class ChatBotThreadManager {
56
56
  const key = this.currentKey
57
57
  const existingThreadItem = this.threads.get(key)
58
58
  if (existingThreadItem) return existingThreadItem
59
+
59
60
  const threadItem = new ThreadItem()
60
61
  this.threads.set(key, threadItem)
61
- if (!this.drawBoardAdapter) return threadItem
62
+ await this.setDrawBoardContent(threadItem)
63
+ return threadItem
64
+ }
65
+
66
+ private async setDrawBoardContent(threadItem: ThreadItem) {
67
+ if (!this.drawBoardAdapter) return
62
68
  try {
63
69
  const content = await this.drawBoardAdapter.getContent()
64
- if (!content) return threadItem
65
- threadItem.setValidationKey(content.validationKey)
66
- if (content.text) return threadItem.setText(content.text)
67
- if (content.strokes?.length) return threadItem.setStrokes(content.strokes)
68
- } catch {}
70
+ if (!content) return
69
71
 
70
- return threadItem
72
+ threadItem.setValidationKey(content.validationKey)
73
+ threadItem.setStudentInput(content.studentInput)
74
+
75
+ if (content.strokes?.length) {
76
+ threadItem.setStrokes(content.strokes)
77
+ }
78
+ if (content.spreadSheetContent?.length) {
79
+ threadItem.setSpreadSheetContent(content.spreadSheetContent)
80
+ }
81
+ if (content.equationContent?.length) {
82
+ threadItem.setEquationContent(content.equationContent)
83
+ }
84
+ if (content.drawBoardImage) {
85
+ threadItem.setDrawBoardImage(content.drawBoardImage)
86
+ }
87
+ } catch (e) {
88
+ console.error('Failed to load draw board content', e)
89
+ }
71
90
  }
72
91
 
73
92
  public setDrawBoardAdapter(adapter: IChatDrawBoardAdapter) {
74
93
  this.drawBoardAdapter = adapter
75
94
  }
76
95
 
96
+ // TODO: simplify this method, split it into smaller methods
77
97
  public readonly postMessage = async (
78
98
  payload: PostMessagePayload,
79
99
  requestConfig?: RequestOptionalConfig,
@@ -91,10 +111,25 @@ export class ChatBotThreadManager {
91
111
  ? await this.api.sendMessage(data, requestConfig)
92
112
  : await this.api.getHint(data, requestConfig)
93
113
 
114
+ const isFirstHint = threadItem.hintsHistory.length === 0
94
115
  threadItem.history.push(result.message)
95
116
 
96
- if ('errorStrokeIds' in result && result?.errorStrokeIds) {
97
- threadItem.setErrorStrokesIds(result.errorStrokeIds)
117
+ if (type === ChatRequestType.HINT) {
118
+ threadItem.hintsHistory.push(result.message)
119
+ }
120
+
121
+ if (isFirstHint) {
122
+ if ('errorChars' in result && result.errorChars?.length) {
123
+ const errorStrokeIds = result.errorChars.map((c) => c.id)
124
+ threadItem.setErrorStrokesIds(errorStrokeIds)
125
+ threadItem.setErrorChars(result.errorChars)
126
+ }
127
+ if ('errorCellIds' in result && result.errorCellIds?.length) {
128
+ threadItem.setErrorStrokesIds(result.errorCellIds)
129
+ }
130
+ if ('errorStrokeIds' in result && result?.errorStrokeIds) {
131
+ threadItem.setErrorStrokesIds(result.errorStrokeIds)
132
+ }
98
133
  }
99
134
 
100
135
  const nextOptions =
@@ -1,24 +1,44 @@
1
- import { FullStrokeData, IThreadItem } from '../types/units.types'
1
+ import {
2
+ ErrorChar,
3
+ EquationItem,
4
+ FullStrokeData,
5
+ IThreadItem,
6
+ SpreadsheetItem,
7
+ } from '../types/units.types'
2
8
  import { generateRandomId } from '../../../lib/helpers/helpers'
3
9
 
4
10
  type ThreadItemProps = {
5
11
  strokes?: FullStrokeData[]
6
- text?: string
7
12
  key: string
13
+ spreadSheetContent?: SpreadsheetItem[]
14
+ equationContent?: EquationItem[]
15
+ drawBoardImage?: string
16
+ studentInput?: string
8
17
  }
9
18
 
19
+ const DEFAULT_STUDENT_INPUT = 'none'
20
+
21
+ // TODO: move drawboard content to separate class and make ThreadItem responsible only for history and hints
10
22
  export class ThreadItem implements IThreadItem {
11
23
  public readonly id = generateRandomId()
12
24
  public readonly history: string[] = []
25
+ public readonly hintsHistory: string[] = []
13
26
  public strokesValidationKey: string | null = null
14
27
  public strokes: FullStrokeData[] | null
15
- public text: string | null = null
16
28
  public errorStrokesIds: string[] | null = null
29
+ public errorChars: ErrorChar[] | null = null
30
+ public spreadSheetContent?: SpreadsheetItem[]
31
+ public equationContent?: EquationItem[]
32
+ public drawBoardImage?: string
33
+ public studentInput: string
17
34
 
18
35
  public constructor(props?: ThreadItemProps | null) {
19
36
  this.strokes = props?.strokes ?? null
20
- this.text = props?.text ?? null
21
37
  this.strokesValidationKey = props?.key ?? null
38
+ this.spreadSheetContent = props?.spreadSheetContent
39
+ this.equationContent = props?.equationContent
40
+ this.drawBoardImage = props?.drawBoardImage
41
+ this.studentInput = props?.studentInput ?? DEFAULT_STUDENT_INPUT
22
42
  }
23
43
 
24
44
  public setStrokes(strokes: FullStrokeData[]) {
@@ -26,11 +46,6 @@ export class ThreadItem implements IThreadItem {
26
46
  return this
27
47
  }
28
48
 
29
- public setText(text: string) {
30
- this.text = text
31
- return this
32
- }
33
-
34
49
  public setValidationKey(key: string) {
35
50
  this.strokesValidationKey = key
36
51
  return this
@@ -41,19 +56,53 @@ export class ThreadItem implements IThreadItem {
41
56
  return this
42
57
  }
43
58
 
44
- public getNextHintProps() {
45
- if (this.history.length) {
46
- return {
47
- previousHint: this.history[this.history.length - 1],
48
- }
49
- }
59
+ public setErrorChars(chars: ErrorChar[]) {
60
+ this.errorChars = chars
61
+ return this
62
+ }
50
63
 
51
- if (this.text) {
52
- return { drawBoardText: this.text }
53
- }
64
+ public setSpreadSheetContent(content: SpreadsheetItem[]) {
65
+ this.spreadSheetContent = content
66
+ return this
67
+ }
68
+
69
+ public setEquationContent(content: EquationItem[]) {
70
+ this.equationContent = content
71
+ return this
72
+ }
54
73
 
55
- if (this.strokes && this.strokes.length > 0) {
74
+ public setDrawBoardImage(image: string) {
75
+ this.drawBoardImage = image
76
+ return this
77
+ }
78
+
79
+ public setStudentInput(studentInput: string) {
80
+ this.studentInput = studentInput
81
+ return this
82
+ }
83
+
84
+ private getContentProps() {
85
+ if (this.strokes?.length) {
56
86
  return { stroke: this.strokes }
57
87
  }
88
+ if (this.spreadSheetContent?.length) {
89
+ return { spreadSheetContent: this.spreadSheetContent }
90
+ }
91
+ if (this.equationContent?.length) {
92
+ return { equationContent: this.equationContent }
93
+ }
94
+ return {}
95
+ }
96
+
97
+ public getNextHintProps() {
98
+ const hintNumber = this.hintsHistory.length
99
+
100
+ return {
101
+ hintNumber,
102
+ studentInput: this.studentInput,
103
+ ...(this.drawBoardImage && { drawBoardImage: this.drawBoardImage }),
104
+ ...(hintNumber === 0 && this.getContentProps()),
105
+ ...(this.hintsHistory.length && { previousHints: [...this.hintsHistory] }),
106
+ }
58
107
  }
59
108
  }
@@ -1,4 +1,11 @@
1
- import { ChatAnswer, FullStrokeData, Stroke } from './units.types'
1
+ import {
2
+ ChatAnswer,
3
+ FullStrokeData,
4
+ Stroke,
5
+ EquationItem,
6
+ SpreadsheetItem,
7
+ ErrorChar,
8
+ } from './units.types'
2
9
  import { ProblemStandard } from './model.types'
3
10
 
4
11
  export type GetAlternativesPayload = {
@@ -107,17 +114,25 @@ export type ChatHintPayload = {
107
114
  correctAnswer: string[]
108
115
  userAnswer?: string | string[]
109
116
  stroke?: Stroke[]
110
- previousHint?: string
117
+ previousHints?: string[]
111
118
  language: string
112
119
  imageAltText?: string
113
120
  imageCdnId?: string
114
121
  drawBoardText?: string
122
+ spreadSheetContent?: SpreadsheetItem[]
123
+ equationContent?: EquationItem[]
124
+ drawBoardImage?: string
125
+ hintNumber: number
126
+ studentInput: string
127
+ answerOptions?: string[]
115
128
  }
116
129
 
117
130
  export type ChatHintResponse = {
118
131
  message: string
119
132
  conversationId?: string | null
120
133
  errorStrokeIds?: string[]
134
+ errorCellIds?: string[]
135
+ errorChars?: ErrorChar[]
121
136
  }
122
137
  export type ErrorSpottingPayload = {
123
138
  strokes: FullStrokeData[]