@magmamath/students-features 1.3.16 → 1.3.17

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 (459) hide show
  1. package/dist/commonjs/config/dataTestIDs.js +80 -0
  2. package/dist/commonjs/config/dataTestIDs.js.map +1 -0
  3. package/dist/commonjs/features/chatbot/components/Chat/Chat.js +2 -0
  4. package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
  5. package/dist/commonjs/features/chatbot/components/Chat/ChatIcon.js +2 -0
  6. package/dist/commonjs/features/chatbot/components/Chat/ChatIcon.js.map +1 -1
  7. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js +2 -0
  8. package/dist/commonjs/features/chatbot/components/Chat/CloseButton.js.map +1 -1
  9. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +2 -0
  10. package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  11. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +3 -1
  12. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  13. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js +2 -0
  14. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js.map +1 -1
  15. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +2 -0
  16. package/dist/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js.map +1 -1
  17. package/dist/commonjs/features/chatbot/components/ChatInput/RequestHintButton.js +2 -0
  18. package/dist/commonjs/features/chatbot/components/ChatInput/RequestHintButton.js.map +1 -1
  19. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js +2 -0
  20. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  21. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +3 -1
  22. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  23. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +2 -0
  24. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  25. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +2 -0
  26. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  27. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +2 -0
  28. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -1
  29. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js +3 -0
  30. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -1
  31. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +2 -0
  32. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -1
  33. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js +4 -0
  34. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -1
  35. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js +3 -0
  36. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -1
  37. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +3 -0
  38. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -1
  39. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js +4 -1
  40. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js.map +1 -1
  41. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +9 -3
  42. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
  43. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js +2 -0
  44. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js.map +1 -1
  45. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +2 -0
  46. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  47. package/dist/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.js +2 -0
  48. package/dist/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.js.map +1 -1
  49. package/dist/commonjs/features/exampleSolution/components/QuestionSection.js +2 -0
  50. package/dist/commonjs/features/exampleSolution/components/QuestionSection.js.map +1 -1
  51. package/dist/commonjs/features/exampleSolution/components/SolutionSection.js +2 -0
  52. package/dist/commonjs/features/exampleSolution/components/SolutionSection.js.map +1 -1
  53. package/dist/commonjs/features/feedback/components/EmptyComment.js +2 -0
  54. package/dist/commonjs/features/feedback/components/EmptyComment.js.map +1 -1
  55. package/dist/commonjs/features/feedback/components/ListCardCommentsCount.js +2 -0
  56. package/dist/commonjs/features/feedback/components/ListCardCommentsCount.js.map +1 -1
  57. package/dist/commonjs/features/feedback/components/TeacherFeedbackButton.js +3 -0
  58. package/dist/commonjs/features/feedback/components/TeacherFeedbackButton.js.map +1 -1
  59. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +2 -0
  60. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  61. package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js +2 -0
  62. package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
  63. package/dist/commonjs/features/formulaSheet/components/FormulaSheet.js +2 -0
  64. package/dist/commonjs/features/formulaSheet/components/FormulaSheet.js.map +1 -1
  65. package/dist/commonjs/features/formulaSheet/components/FormulaSheetModal.js +2 -0
  66. package/dist/commonjs/features/formulaSheet/components/FormulaSheetModal.js.map +1 -1
  67. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js +2 -0
  68. package/dist/commonjs/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  69. package/dist/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js +9 -4
  70. package/dist/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js.map +1 -1
  71. package/dist/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.js +15 -11
  72. package/dist/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.js.map +1 -1
  73. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js +2 -0
  74. package/dist/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js.map +1 -1
  75. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -0
  76. package/dist/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  77. package/dist/commonjs/features/keyboard/components/Keyboard.js +2 -0
  78. package/dist/commonjs/features/keyboard/components/Keyboard.js.map +1 -1
  79. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js +2 -0
  80. package/dist/commonjs/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  81. package/dist/commonjs/features/keyboard/components/Numpad/Numpad.js +2 -0
  82. package/dist/commonjs/features/keyboard/components/Numpad/Numpad.js.map +1 -1
  83. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +9 -4
  84. package/dist/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  85. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -0
  86. package/dist/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  87. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js +2 -0
  88. package/dist/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -1
  89. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js +2 -0
  90. package/dist/commonjs/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -1
  91. package/dist/commonjs/features/pmProgress/components/header/NextUp.js +2 -0
  92. package/dist/commonjs/features/pmProgress/components/header/NextUp.js.map +1 -1
  93. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +5 -1
  94. package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
  95. package/dist/commonjs/features/pmProgress/components/header/StartButton.js +2 -0
  96. package/dist/commonjs/features/pmProgress/components/header/StartButton.js.map +1 -1
  97. package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js +11 -5
  98. package/dist/commonjs/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -1
  99. package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js +3 -1
  100. package/dist/commonjs/features/pmProgress/components/insights/StatsCard.js.map +1 -1
  101. package/dist/commonjs/features/pmProgress/components/list/ListCard.js +4 -1
  102. package/dist/commonjs/features/pmProgress/components/list/ListCard.js.map +1 -1
  103. package/dist/commonjs/features/pmProgress/components/list/ListItem.js +3 -1
  104. package/dist/commonjs/features/pmProgress/components/list/ListItem.js.map +1 -1
  105. package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js +4 -1
  106. package/dist/commonjs/features/pmProgress/components/list/PmDomainList.js.map +1 -1
  107. package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js +5 -1
  108. package/dist/commonjs/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -1
  109. package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js +2 -0
  110. package/dist/commonjs/features/problemSelector/components/ProblemSelectorButton.js.map +1 -1
  111. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js +2 -0
  112. package/dist/commonjs/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  113. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -0
  114. package/dist/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.js.map +1 -1
  115. package/dist/commonjs/features/voice/recording/components/VoiceRecordTimer.js +2 -0
  116. package/dist/commonjs/features/voice/recording/components/VoiceRecordTimer.js.map +1 -1
  117. package/dist/commonjs/features/voice/recording/modal/ModalFooterButtons.js +5 -1
  118. package/dist/commonjs/features/voice/recording/modal/ModalFooterButtons.js.map +1 -1
  119. package/dist/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.js +4 -0
  120. package/dist/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.js.map +1 -1
  121. package/dist/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.js +4 -0
  122. package/dist/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.js.map +1 -1
  123. package/dist/commonjs/index.js +8 -0
  124. package/dist/commonjs/index.js.map +1 -1
  125. package/dist/commonjs/shared/components/PlayButton.js.map +1 -1
  126. package/dist/module/config/dataTestIDs.js +77 -0
  127. package/dist/module/config/dataTestIDs.js.map +1 -0
  128. package/dist/module/features/chatbot/components/Chat/Chat.js +2 -0
  129. package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
  130. package/dist/module/features/chatbot/components/Chat/ChatIcon.js +2 -0
  131. package/dist/module/features/chatbot/components/Chat/ChatIcon.js.map +1 -1
  132. package/dist/module/features/chatbot/components/Chat/CloseButton.js +2 -0
  133. package/dist/module/features/chatbot/components/Chat/CloseButton.js.map +1 -1
  134. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +2 -0
  135. package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
  136. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js +3 -1
  137. package/dist/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.js.map +1 -1
  138. package/dist/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js +2 -0
  139. package/dist/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.js.map +1 -1
  140. package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js +2 -0
  141. package/dist/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.js.map +1 -1
  142. package/dist/module/features/chatbot/components/ChatInput/RequestHintButton.js +2 -0
  143. package/dist/module/features/chatbot/components/ChatInput/RequestHintButton.js.map +1 -1
  144. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js +2 -0
  145. package/dist/module/features/chatbot/components/ChatMessage/MessageLoader.js.map +1 -1
  146. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +3 -1
  147. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  148. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +2 -0
  149. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  150. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +2 -0
  151. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  152. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +2 -0
  153. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +1 -1
  154. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js +3 -0
  155. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -1
  156. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +2 -0
  157. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -1
  158. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js +4 -0
  159. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -1
  160. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js +3 -0
  161. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -1
  162. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +3 -0
  163. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -1
  164. package/dist/module/features/endOfAssignment/components/Modal/Modal.js +4 -1
  165. package/dist/module/features/endOfAssignment/components/Modal/Modal.js.map +1 -1
  166. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +9 -3
  167. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -1
  168. package/dist/module/features/endOfAssignment/ui/PracticeButton.js +2 -0
  169. package/dist/module/features/endOfAssignment/ui/PracticeButton.js.map +1 -1
  170. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +2 -0
  171. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  172. package/dist/module/features/exampleSolution/components/ExampleSolutionModalContent.js +2 -0
  173. package/dist/module/features/exampleSolution/components/ExampleSolutionModalContent.js.map +1 -1
  174. package/dist/module/features/exampleSolution/components/QuestionSection.js +2 -0
  175. package/dist/module/features/exampleSolution/components/QuestionSection.js.map +1 -1
  176. package/dist/module/features/exampleSolution/components/SolutionSection.js +2 -0
  177. package/dist/module/features/exampleSolution/components/SolutionSection.js.map +1 -1
  178. package/dist/module/features/feedback/components/EmptyComment.js +2 -0
  179. package/dist/module/features/feedback/components/EmptyComment.js.map +1 -1
  180. package/dist/module/features/feedback/components/ListCardCommentsCount.js +2 -0
  181. package/dist/module/features/feedback/components/ListCardCommentsCount.js.map +1 -1
  182. package/dist/module/features/feedback/components/TeacherFeedbackButton.js +3 -0
  183. package/dist/module/features/feedback/components/TeacherFeedbackButton.js.map +1 -1
  184. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +2 -0
  185. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  186. package/dist/module/features/feedback/components/UnreadMessagesBadge.js +2 -0
  187. package/dist/module/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
  188. package/dist/module/features/formulaSheet/components/FormulaSheet.js +2 -0
  189. package/dist/module/features/formulaSheet/components/FormulaSheet.js.map +1 -1
  190. package/dist/module/features/formulaSheet/components/FormulaSheetModal.js +2 -0
  191. package/dist/module/features/formulaSheet/components/FormulaSheetModal.js.map +1 -1
  192. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js +2 -0
  193. package/dist/module/features/keyboard/components/BasicLayout/BasicLayout.js.map +1 -1
  194. package/dist/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js +9 -4
  195. package/dist/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.js.map +1 -1
  196. package/dist/module/features/keyboard/components/BasicLayout/TimeBasicLayout.js +16 -12
  197. package/dist/module/features/keyboard/components/BasicLayout/TimeBasicLayout.js.map +1 -1
  198. package/dist/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js +2 -0
  199. package/dist/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.js.map +1 -1
  200. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js +2 -0
  201. package/dist/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.js.map +1 -1
  202. package/dist/module/features/keyboard/components/Keyboard.js +2 -0
  203. package/dist/module/features/keyboard/components/Keyboard.js.map +1 -1
  204. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js +2 -0
  205. package/dist/module/features/keyboard/components/MainLayout/MainLayout.js.map +1 -1
  206. package/dist/module/features/keyboard/components/Numpad/Numpad.js +2 -0
  207. package/dist/module/features/keyboard/components/Numpad/Numpad.js.map +1 -1
  208. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js +9 -4
  209. package/dist/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.js.map +1 -1
  210. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js +2 -0
  211. package/dist/module/features/keyboard/components/UnitsLayout/UnitsLayout.js.map +1 -1
  212. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js +2 -0
  213. package/dist/module/features/openEnded/components/OpenEndedAttemptsLimit.js.map +1 -1
  214. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js +2 -0
  215. package/dist/module/features/openEnded/components/OpenEndedScoreLabel.js.map +1 -1
  216. package/dist/module/features/pmProgress/components/header/NextUp.js +2 -0
  217. package/dist/module/features/pmProgress/components/header/NextUp.js.map +1 -1
  218. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +5 -1
  219. package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
  220. package/dist/module/features/pmProgress/components/header/StartButton.js +2 -0
  221. package/dist/module/features/pmProgress/components/header/StartButton.js.map +1 -1
  222. package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js +11 -5
  223. package/dist/module/features/pmProgress/components/insights/PmTimeframeStats.js.map +1 -1
  224. package/dist/module/features/pmProgress/components/insights/StatsCard.js +3 -1
  225. package/dist/module/features/pmProgress/components/insights/StatsCard.js.map +1 -1
  226. package/dist/module/features/pmProgress/components/list/ListCard.js +4 -1
  227. package/dist/module/features/pmProgress/components/list/ListCard.js.map +1 -1
  228. package/dist/module/features/pmProgress/components/list/ListItem.js +3 -1
  229. package/dist/module/features/pmProgress/components/list/ListItem.js.map +1 -1
  230. package/dist/module/features/pmProgress/components/list/PmDomainList.js +4 -1
  231. package/dist/module/features/pmProgress/components/list/PmDomainList.js.map +1 -1
  232. package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js +5 -1
  233. package/dist/module/features/pmProgress/components/recs/PmTeacherRecs.js.map +1 -1
  234. package/dist/module/features/problemSelector/components/ProblemSelectorButton.js +2 -0
  235. package/dist/module/features/problemSelector/components/ProblemSelectorButton.js.map +1 -1
  236. package/dist/module/features/voice/recording/components/VoiceRecordButton.js +2 -0
  237. package/dist/module/features/voice/recording/components/VoiceRecordButton.js.map +1 -1
  238. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js +2 -0
  239. package/dist/module/features/voice/recording/components/VoiceRecordDeleteButton.js.map +1 -1
  240. package/dist/module/features/voice/recording/components/VoiceRecordTimer.js +2 -0
  241. package/dist/module/features/voice/recording/components/VoiceRecordTimer.js.map +1 -1
  242. package/dist/module/features/voice/recording/modal/ModalFooterButtons.js +5 -1
  243. package/dist/module/features/voice/recording/modal/ModalFooterButtons.js.map +1 -1
  244. package/dist/module/features/voice/recording/modal/VoiceRecordDeleteModal.js +4 -0
  245. package/dist/module/features/voice/recording/modal/VoiceRecordDeleteModal.js.map +1 -1
  246. package/dist/module/features/voice/recording/modal/VoiceRecordUndoModal.js +4 -0
  247. package/dist/module/features/voice/recording/modal/VoiceRecordUndoModal.js.map +1 -1
  248. package/dist/module/index.js +1 -0
  249. package/dist/module/index.js.map +1 -1
  250. package/dist/module/shared/components/PlayButton.js.map +1 -1
  251. package/dist/typescript/commonjs/config/dataTestIDs.d.ts +75 -0
  252. package/dist/typescript/commonjs/config/dataTestIDs.d.ts.map +1 -0
  253. package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  254. package/dist/typescript/commonjs/features/chatbot/components/Chat/ChatIcon.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -1
  256. package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
  258. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/FreeText/SendMessageButton.d.ts.map +1 -1
  260. package/dist/typescript/commonjs/features/chatbot/components/ChatInput/RequestHintButton.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  262. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  263. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  264. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -1
  266. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -1
  268. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -1
  270. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -1
  271. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -1
  272. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -1
  274. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/features/exampleSolution/components/ExampleSolutionModalContent.d.ts.map +1 -1
  276. package/dist/typescript/commonjs/features/exampleSolution/components/QuestionSection.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/features/exampleSolution/components/SolutionSection.d.ts.map +1 -1
  278. package/dist/typescript/commonjs/features/feedback/components/EmptyComment.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -1
  280. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  282. package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/features/formulaSheet/components/FormulaSheet.d.ts.map +1 -1
  284. package/dist/typescript/commonjs/features/formulaSheet/components/FormulaSheetModal.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/BasicLayout.d.ts.map +1 -1
  286. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/CurrencyBasicLayout.d.ts.map +1 -1
  287. package/dist/typescript/commonjs/features/keyboard/components/BasicLayout/TimeBasicLayout.d.ts.map +1 -1
  288. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.d.ts.map +1 -1
  289. package/dist/typescript/commonjs/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  290. package/dist/typescript/commonjs/features/keyboard/components/Keyboard.d.ts.map +1 -1
  291. package/dist/typescript/commonjs/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  292. package/dist/typescript/commonjs/features/keyboard/components/Numpad/Numpad.d.ts.map +1 -1
  293. package/dist/typescript/commonjs/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  294. package/dist/typescript/commonjs/features/keyboard/components/UnitsLayout/UnitsLayout.d.ts.map +1 -1
  295. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -1
  296. package/dist/typescript/commonjs/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -1
  297. package/dist/typescript/commonjs/features/pmProgress/components/header/NextUp.d.ts.map +1 -1
  298. package/dist/typescript/commonjs/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -1
  299. package/dist/typescript/commonjs/features/pmProgress/components/header/StartButton.d.ts.map +1 -1
  300. package/dist/typescript/commonjs/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -1
  301. package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts +2 -1
  302. package/dist/typescript/commonjs/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -1
  303. package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts +3 -1
  304. package/dist/typescript/commonjs/features/pmProgress/components/list/ListCard.d.ts.map +1 -1
  305. package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts +2 -1
  306. package/dist/typescript/commonjs/features/pmProgress/components/list/ListItem.d.ts.map +1 -1
  307. package/dist/typescript/commonjs/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -1
  308. package/dist/typescript/commonjs/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -1
  309. package/dist/typescript/commonjs/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -1
  310. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  311. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordDeleteButton.d.ts.map +1 -1
  312. package/dist/typescript/commonjs/features/voice/recording/components/VoiceRecordTimer.d.ts.map +1 -1
  313. package/dist/typescript/commonjs/features/voice/recording/modal/ModalFooterButtons.d.ts +3 -1
  314. package/dist/typescript/commonjs/features/voice/recording/modal/ModalFooterButtons.d.ts.map +1 -1
  315. package/dist/typescript/commonjs/features/voice/recording/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  316. package/dist/typescript/commonjs/features/voice/recording/modal/VoiceRecordUndoModal.d.ts.map +1 -1
  317. package/dist/typescript/commonjs/index.d.ts +1 -0
  318. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  319. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts +1 -1
  320. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts.map +1 -1
  321. package/dist/typescript/commonjs/shared/components/PlayButton.d.ts +1 -0
  322. package/dist/typescript/commonjs/shared/components/PlayButton.d.ts.map +1 -1
  323. package/dist/typescript/module/config/dataTestIDs.d.ts +75 -0
  324. package/dist/typescript/module/config/dataTestIDs.d.ts.map +1 -0
  325. package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
  326. package/dist/typescript/module/features/chatbot/components/Chat/ChatIcon.d.ts.map +1 -1
  327. package/dist/typescript/module/features/chatbot/components/Chat/CloseButton.d.ts.map +1 -1
  328. package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
  329. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/ChatTextInput.d.ts.map +1 -1
  330. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.d.ts.map +1 -1
  331. package/dist/typescript/module/features/chatbot/components/ChatInput/FreeText/SendMessageButton.d.ts.map +1 -1
  332. package/dist/typescript/module/features/chatbot/components/ChatInput/RequestHintButton.d.ts.map +1 -1
  333. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageLoader.d.ts.map +1 -1
  334. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  335. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  336. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  337. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +1 -1
  338. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -1
  339. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -1
  340. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -1
  341. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -1
  342. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -1
  343. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -1
  344. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -1
  345. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -1
  346. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  347. package/dist/typescript/module/features/exampleSolution/components/ExampleSolutionModalContent.d.ts.map +1 -1
  348. package/dist/typescript/module/features/exampleSolution/components/QuestionSection.d.ts.map +1 -1
  349. package/dist/typescript/module/features/exampleSolution/components/SolutionSection.d.ts.map +1 -1
  350. package/dist/typescript/module/features/feedback/components/EmptyComment.d.ts.map +1 -1
  351. package/dist/typescript/module/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -1
  352. package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton.d.ts.map +1 -1
  353. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  354. package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
  355. package/dist/typescript/module/features/formulaSheet/components/FormulaSheet.d.ts.map +1 -1
  356. package/dist/typescript/module/features/formulaSheet/components/FormulaSheetModal.d.ts.map +1 -1
  357. package/dist/typescript/module/features/keyboard/components/BasicLayout/BasicLayout.d.ts.map +1 -1
  358. package/dist/typescript/module/features/keyboard/components/BasicLayout/CurrencyBasicLayout.d.ts.map +1 -1
  359. package/dist/typescript/module/features/keyboard/components/BasicLayout/TimeBasicLayout.d.ts.map +1 -1
  360. package/dist/typescript/module/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.d.ts.map +1 -1
  361. package/dist/typescript/module/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.d.ts.map +1 -1
  362. package/dist/typescript/module/features/keyboard/components/Keyboard.d.ts.map +1 -1
  363. package/dist/typescript/module/features/keyboard/components/MainLayout/MainLayout.d.ts.map +1 -1
  364. package/dist/typescript/module/features/keyboard/components/Numpad/Numpad.d.ts.map +1 -1
  365. package/dist/typescript/module/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.d.ts.map +1 -1
  366. package/dist/typescript/module/features/keyboard/components/UnitsLayout/UnitsLayout.d.ts.map +1 -1
  367. package/dist/typescript/module/features/openEnded/components/OpenEndedAttemptsLimit.d.ts.map +1 -1
  368. package/dist/typescript/module/features/openEnded/components/OpenEndedScoreLabel.d.ts.map +1 -1
  369. package/dist/typescript/module/features/pmProgress/components/header/NextUp.d.ts.map +1 -1
  370. package/dist/typescript/module/features/pmProgress/components/header/PmProgressHeader.d.ts.map +1 -1
  371. package/dist/typescript/module/features/pmProgress/components/header/StartButton.d.ts.map +1 -1
  372. package/dist/typescript/module/features/pmProgress/components/insights/PmTimeframeStats.d.ts.map +1 -1
  373. package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts +2 -1
  374. package/dist/typescript/module/features/pmProgress/components/insights/StatsCard.d.ts.map +1 -1
  375. package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts +3 -1
  376. package/dist/typescript/module/features/pmProgress/components/list/ListCard.d.ts.map +1 -1
  377. package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts +2 -1
  378. package/dist/typescript/module/features/pmProgress/components/list/ListItem.d.ts.map +1 -1
  379. package/dist/typescript/module/features/pmProgress/components/list/PmDomainList.d.ts.map +1 -1
  380. package/dist/typescript/module/features/pmProgress/components/recs/PmTeacherRecs.d.ts.map +1 -1
  381. package/dist/typescript/module/features/problemSelector/components/ProblemSelectorButton.d.ts.map +1 -1
  382. package/dist/typescript/module/features/voice/recording/components/VoiceRecordButton.d.ts.map +1 -1
  383. package/dist/typescript/module/features/voice/recording/components/VoiceRecordDeleteButton.d.ts.map +1 -1
  384. package/dist/typescript/module/features/voice/recording/components/VoiceRecordTimer.d.ts.map +1 -1
  385. package/dist/typescript/module/features/voice/recording/modal/ModalFooterButtons.d.ts +3 -1
  386. package/dist/typescript/module/features/voice/recording/modal/ModalFooterButtons.d.ts.map +1 -1
  387. package/dist/typescript/module/features/voice/recording/modal/VoiceRecordDeleteModal.d.ts.map +1 -1
  388. package/dist/typescript/module/features/voice/recording/modal/VoiceRecordUndoModal.d.ts.map +1 -1
  389. package/dist/typescript/module/index.d.ts +1 -0
  390. package/dist/typescript/module/index.d.ts.map +1 -1
  391. package/dist/typescript/module/lib/helpers/helpers.d.ts +1 -1
  392. package/dist/typescript/module/lib/helpers/helpers.d.ts.map +1 -1
  393. package/dist/typescript/module/shared/components/PlayButton.d.ts +1 -0
  394. package/dist/typescript/module/shared/components/PlayButton.d.ts.map +1 -1
  395. package/package.json +1 -1
  396. package/src/config/dataTestIDs.ts +81 -0
  397. package/src/features/chatbot/components/Chat/Chat.tsx +2 -1
  398. package/src/features/chatbot/components/Chat/ChatIcon.tsx +2 -1
  399. package/src/features/chatbot/components/Chat/CloseButton.tsx +2 -0
  400. package/src/features/chatbot/components/ChatControls/ChatControls.tsx +2 -0
  401. package/src/features/chatbot/components/ChatInput/FreeText/ChatTextInput.tsx +2 -0
  402. package/src/features/chatbot/components/ChatInput/FreeText/FreeTextInputBlock.tsx +2 -1
  403. package/src/features/chatbot/components/ChatInput/FreeText/SendMessageButton.tsx +2 -0
  404. package/src/features/chatbot/components/ChatInput/RequestHintButton.tsx +2 -0
  405. package/src/features/chatbot/components/ChatMessage/MessageLoader.tsx +3 -2
  406. package/src/features/chatbot/components/ChatMessage/MessageTextToSpeech.tsx +2 -0
  407. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +2 -1
  408. package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +2 -0
  409. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +2 -0
  410. package/src/features/endOfAssignment/components/CheatDetected/CheatDetected.tsx +3 -1
  411. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.tsx +2 -0
  412. package/src/features/endOfAssignment/components/ExamLeave/ExamLeave.tsx +4 -1
  413. package/src/features/endOfAssignment/components/ExamPaused/ExamPaused.tsx +3 -1
  414. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmit.tsx +3 -1
  415. package/src/features/endOfAssignment/components/Modal/Modal.tsx +6 -1
  416. package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +6 -1
  417. package/src/features/endOfAssignment/ui/PracticeButton.tsx +2 -0
  418. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +2 -0
  419. package/src/features/exampleSolution/components/ExampleSolutionModalContent.tsx +2 -0
  420. package/src/features/exampleSolution/components/QuestionSection.tsx +2 -1
  421. package/src/features/exampleSolution/components/SolutionSection.tsx +5 -1
  422. package/src/features/feedback/components/EmptyComment.tsx +2 -1
  423. package/src/features/feedback/components/ListCardCommentsCount.tsx +2 -1
  424. package/src/features/feedback/components/TeacherFeedbackButton.tsx +3 -0
  425. package/src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx +2 -1
  426. package/src/features/feedback/components/UnreadMessagesBadge.tsx +2 -0
  427. package/src/features/formulaSheet/components/FormulaSheet.tsx +2 -0
  428. package/src/features/formulaSheet/components/FormulaSheetModal.tsx +2 -1
  429. package/src/features/keyboard/components/BasicLayout/BasicLayout.tsx +2 -1
  430. package/src/features/keyboard/components/BasicLayout/CurrencyBasicLayout.tsx +5 -1
  431. package/src/features/keyboard/components/BasicLayout/TimeBasicLayout.tsx +16 -13
  432. package/src/features/keyboard/components/BasicPlusLayout/BasicPlusLayout.tsx +2 -1
  433. package/src/features/keyboard/components/BasicPlusPlusLayout/BasicPlusPlusLayout.tsx +2 -1
  434. package/src/features/keyboard/components/Keyboard.tsx +2 -0
  435. package/src/features/keyboard/components/MainLayout/MainLayout.tsx +5 -1
  436. package/src/features/keyboard/components/Numpad/Numpad.tsx +2 -1
  437. package/src/features/keyboard/components/UnderlinedLayout/UnderlinedLayout.tsx +9 -1
  438. package/src/features/keyboard/components/UnitsLayout/UnitsLayout.tsx +2 -1
  439. package/src/features/openEnded/components/OpenEndedAttemptsLimit.tsx +2 -1
  440. package/src/features/openEnded/components/OpenEndedScoreLabel.tsx +2 -1
  441. package/src/features/pmProgress/components/header/NextUp.tsx +2 -1
  442. package/src/features/pmProgress/components/header/PmProgressHeader.tsx +4 -0
  443. package/src/features/pmProgress/components/header/StartButton.tsx +2 -0
  444. package/src/features/pmProgress/components/insights/PmTimeframeStats.tsx +6 -3
  445. package/src/features/pmProgress/components/insights/StatsCard.tsx +3 -2
  446. package/src/features/pmProgress/components/list/ListCard.tsx +5 -0
  447. package/src/features/pmProgress/components/list/ListItem.tsx +3 -0
  448. package/src/features/pmProgress/components/list/PmDomainList.tsx +7 -1
  449. package/src/features/pmProgress/components/recs/PmTeacherRecs.tsx +4 -0
  450. package/src/features/problemSelector/components/ProblemSelectorButton.tsx +2 -0
  451. package/src/features/voice/recording/components/VoiceRecordButton.tsx +2 -0
  452. package/src/features/voice/recording/components/VoiceRecordDeleteButton.tsx +2 -1
  453. package/src/features/voice/recording/components/VoiceRecordTimer.tsx +2 -1
  454. package/src/features/voice/recording/modal/ModalFooterButtons.tsx +6 -0
  455. package/src/features/voice/recording/modal/VoiceRecordDeleteModal.tsx +4 -0
  456. package/src/features/voice/recording/modal/VoiceRecordUndoModal.tsx +4 -0
  457. package/src/index.ts +1 -0
  458. package/src/shared/components/PlayButton.tsx +1 -0
  459. package/src/i18n/.generated/schema.json +0 -90
@@ -4,6 +4,7 @@ import { IS_MOBILE, IS_WEB, SelectOptionColor } from '@magmamath/react-native-ui
4
4
  import { getLayoutByCharType, isBasicPlusPlusLayout } from '../../constants/keyboardLayouts'
5
5
  import { UnderlinedLayout } from '../UnderlinedLayout/UnderlinedLayout'
6
6
  import { KeyboardKey, KeyboardKeyValue, ResolvedKeyboard } from '../../types/types'
7
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
7
8
 
8
9
  type LayoutProps = {
9
10
  keys: ResolvedKeyboard
@@ -57,7 +58,10 @@ export const MainLayout = ({
57
58
  }, [showUnderlinedKeys, animateFade])
58
59
 
59
60
  return (
60
- <View style={[styles.container, IS_MOBILE && { flex: 1 }]}>
61
+ <View
62
+ style={[styles.container, IS_MOBILE && { flex: 1 }]}
63
+ testID={TEST_IDS.KEYBOARD_MAIN_LAYOUT}
64
+ >
61
65
  <Layout {...props} onLayoutChange={setIsSecondaryLayoutSelected} />
62
66
  {isUnderlinedLayoutVisible && (
63
67
  <Animated.View style={{ opacity: fadeAnim }}>
@@ -5,6 +5,7 @@ import { SPACING } from '@magmamath/react-native-ui'
5
5
  import { KeyboardLayoutProps, KeyboardType } from '../../types/types'
6
6
  import { useText } from '../../../../i18n/i18n'
7
7
  import { getMainKeyboardGroup } from '../../helpers'
8
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
8
9
 
9
10
  type NumpadProps = {
10
11
  style?: StyleProp<ViewStyle>
@@ -15,7 +16,7 @@ export const Numpad = ({ style, keys, ...props }: NumpadProps) => {
15
16
  const keyboardGroup = getMainKeyboardGroup(keys, KeyboardType.Numpad)
16
17
 
17
18
  return (
18
- <View style={[styles.container, style]}>
19
+ <View style={[styles.container, style]} testID={TEST_IDS.KEYBOARD_NUMPAD}>
19
20
  <KeysList keys={keyboardGroup.keys} numOfRows={3} {...props} />
20
21
  </View>
21
22
  )
@@ -1,7 +1,9 @@
1
1
  import React from 'react'
2
+ import { View } from 'react-native'
2
3
  import { KeysList } from '../KeysList/KeysList'
3
4
  import { KeyboardLayoutProps, KeyboardType, ResolvedKeyboard } from '../../types/types'
4
5
  import { getMainKeyboardGroup } from '../../helpers'
6
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
5
7
 
6
8
  type UnderlinedLayoutProps = {
7
9
  keys: ResolvedKeyboard
@@ -13,6 +15,12 @@ export const UnderlinedLayout = ({ keys, ...props }: UnderlinedLayoutProps) => {
13
15
  const keysToShow = props.showSlashKey ? keysGroup.keys : keysGroup.keys.slice(0, -1)
14
16
 
15
17
  return (
16
- <KeysList keys={keysToShow} numOfRows={props.showSlashKey ? 2 : keysToShow.length} {...props} />
18
+ <View testID={TEST_IDS.KEYBOARD_UNDERLINED_LAYOUT}>
19
+ <KeysList
20
+ keys={keysToShow}
21
+ numOfRows={props.showSlashKey ? 2 : keysToShow.length}
22
+ {...props}
23
+ />
24
+ </View>
17
25
  )
18
26
  }
@@ -9,6 +9,7 @@ import { useUnitTabs } from './hooks/useUnitTabs'
9
9
  import { getMainKeyboardGroup } from '../../helpers'
10
10
  import { KeyboardUnitsGroupType, SelectedLayout } from './types'
11
11
  import { getSelectOptions } from './helpers'
12
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
12
13
 
13
14
  export const UnitsLayout = ({ onLayoutChange, keys, ...props }: KeyboardLayoutProps) => {
14
15
  const { width } = useWindowDimensions()
@@ -42,7 +43,7 @@ export const UnitsLayout = ({ onLayoutChange, keys, ...props }: KeyboardLayoutPr
42
43
  )
43
44
 
44
45
  return (
45
- <View style={styles.container}>
46
+ <View style={styles.container} testID={TEST_IDS.KEYBOARD_UNITS_LAYOUT}>
46
47
  {isDesktop && (
47
48
  <SelectGroup
48
49
  numOfRows={2}
@@ -1,13 +1,14 @@
1
1
  import React from 'react'
2
2
  import { View, StyleSheet, Text } from 'react-native'
3
3
  import { SPACING, BORDER_RADIUS, COLORS } from '@magmamath/react-native-ui'
4
+ import { TEST_IDS } from '../../../config/dataTestIDs'
4
5
 
5
6
  type OEAttemptsLimitProps = {
6
7
  text: string
7
8
  }
8
9
 
9
10
  export const OpenEndedAttemptsLimit = ({ text }: OEAttemptsLimitProps) => (
10
- <View style={styles.container}>
11
+ <View testID={TEST_IDS.OPEN_ENDED_ATTEMPTS_LIMIT} style={styles.container}>
11
12
  <Text style={styles.text}>{text}</Text>
12
13
  </View>
13
14
  )
@@ -10,6 +10,7 @@ import {
10
10
  import { getScoreLabelColor } from '../oe.helpers'
11
11
  import { OpenEndedScoreLabelVariant } from '../oe.types'
12
12
  import { isWeb } from '../../../shared/common.constants'
13
+ import { TEST_IDS } from '../../../config/dataTestIDs'
13
14
 
14
15
  type OpenEndedScoreLabelProps = {
15
16
  label: string
@@ -38,7 +39,7 @@ export const OpenEndedScoreLabel = ({
38
39
  score !== null && score >= 10 ? SCORE_WIDTH.LARGE : SCORE_WIDTH.DEFAULT
39
40
 
40
41
  return (
41
- <View style={styles.container}>
42
+ <View testID={TEST_IDS.OPEN_ENDED_SCORE_LABEL} style={styles.container}>
42
43
  <View style={[styles.score, { width: scoreContainerWidth }]}>
43
44
  <Typography
44
45
  variant={HeadingVariants.H3}
@@ -3,6 +3,7 @@ import { StyleSheet, View } from 'react-native'
3
3
  import { COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui'
4
4
  import { SketchArrowRight } from '../../../../shared/icons/SketchArrowRight'
5
5
  import { SliceDiamondIcon } from '../../../../shared/icons/SliceDiamondIcon'
6
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
6
7
  import { useUnit } from 'effector-react'
7
8
  import { usePmProgress } from '../../context/PmProgressContext'
8
9
  import { OpeningLoaderId, SolvingFlow } from '../../shared/pmProgress.constants'
@@ -32,7 +33,7 @@ export const NextUp = () => {
32
33
  </Typography>
33
34
  </View>
34
35
  <View style={[styles.row, styles.tilted]}>
35
- <Typography variant={HeadingVariants.H7} style={styles.muted}>
36
+ <Typography variant={HeadingVariants.H7} style={styles.muted} testID={TEST_IDS.PM_PROGRESS_NEXT_UP_DOMAIN_NAME}>
36
37
  {nextUp.domain.title}
37
38
  </Typography>
38
39
  <View style={styles.diamond}>
@@ -18,6 +18,7 @@ import { useStoreMap, useUnit } from 'effector-react'
18
18
  import { usePmProgress } from '../../context/PmProgressContext'
19
19
  import { formatGradeLabel } from '../../shared/pmProgress.helpers'
20
20
  import { MenuIcon } from '../../../../shared/icons/MenuIcon'
21
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
21
22
  import { NextUp } from './NextUp'
22
23
  import { BURGER_MENU_BREAKPOINT, MENU_MAX_HEIGHT } from '@magmamath/students-features'
23
24
  import { useText } from '../../../../i18n/i18n'
@@ -44,6 +45,7 @@ export const PmProgressHeader = () => {
44
45
  key: grade.value,
45
46
  title: formatGradeLabel(grade.value, customGradeLabels),
46
47
  disabled: grade.isLocked,
48
+ testID: TEST_IDS.PM_PROGRESS_GRADE_ITEM(grade.value),
47
49
  ...menuItemProps,
48
50
  })),
49
51
  })
@@ -57,6 +59,7 @@ export const PmProgressHeader = () => {
57
59
  onPress={onMenuPress}
58
60
  variant={ButtonVariant.TERTIARY}
59
61
  icon={<MenuIcon size={24} />}
62
+ testID={TEST_IDS.PM_PROGRESS_BURGER_MENU_BUTTON}
60
63
  />
61
64
  </View>
62
65
  )}
@@ -71,6 +74,7 @@ export const PmProgressHeader = () => {
71
74
  <Button
72
75
  variant={ButtonVariant.TERTIARY}
73
76
  onPress={() => setIsDropdownOpen((prev) => !prev)}
77
+ testID={TEST_IDS.PM_PROGRESS_GRADE_DROPDOWN_BUTTON}
74
78
  >
75
79
  <Typography variant={HeadingVariants.H8} style={styles.dark}>
76
80
  {grade !== null
@@ -11,6 +11,7 @@ import {
11
11
  SPACING,
12
12
  Typography,
13
13
  } from '@magmamath/react-native-ui'
14
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
14
15
  import { useText } from '../../../../i18n/i18n'
15
16
 
16
17
  const PULSATION_COLOR = '#FFBE4E66'
@@ -131,6 +132,7 @@ export const StartButton = ({
131
132
  colorScheme={ButtonColor.YELLOW}
132
133
  raiseLevel={6}
133
134
  style={{ container: styles.startButton }}
135
+ testID={TEST_IDS.PM_PROGRESS_START_BUTTON}
134
136
  >
135
137
  <Typography variant={HeadingVariants.H6} style={styles.startButtonText}>
136
138
  {t('pmProgress.startButton')}
@@ -17,6 +17,7 @@ import { useUnit } from 'effector-react'
17
17
  import { formatTime } from '../../shared/pmProgress.helpers'
18
18
  import { InsightsTimeframe, STATS_MAX_HEIGHT } from '../../shared/pmProgress.constants'
19
19
  import { usePmProgress } from '../../context/PmProgressContext'
20
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
20
21
  import { useText } from '../../../../i18n/i18n'
21
22
 
22
23
  const optionStyle: SelectOptionProps['style'] = {
@@ -34,9 +35,9 @@ export const PmTimeframeStats = () => {
34
35
  const insights = useUnit(model.insights.$insights)
35
36
 
36
37
  const OPTIONS: SelectOptionProps[] = [
37
- { key: InsightsTimeframe.WEEK, title: t('pmProgress.thisWeek'), style: optionStyle },
38
- { key: InsightsTimeframe.LAST_WEEK, title: t('pmProgress.lastWeek'), style: optionStyle },
39
- { key: InsightsTimeframe.ALL, title: t('pmProgress.allTime'), style: optionStyle },
38
+ { key: InsightsTimeframe.WEEK, title: t('pmProgress.thisWeek'), style: optionStyle, testID: TEST_IDS.PM_PROGRESS_TIMEFRAME_TAB(InsightsTimeframe.WEEK) },
39
+ { key: InsightsTimeframe.LAST_WEEK, title: t('pmProgress.lastWeek'), style: optionStyle, testID: TEST_IDS.PM_PROGRESS_TIMEFRAME_TAB(InsightsTimeframe.LAST_WEEK) },
40
+ { key: InsightsTimeframe.ALL, title: t('pmProgress.allTime'), style: optionStyle, testID: TEST_IDS.PM_PROGRESS_TIMEFRAME_TAB(InsightsTimeframe.ALL) },
40
41
  ]
41
42
 
42
43
  return (
@@ -48,6 +49,7 @@ export const PmTimeframeStats = () => {
48
49
  label={t('pmProgress.stars')}
49
50
  color={COLORS.PRIMARY_YELLOW}
50
51
  icon={<StarIcon />}
52
+ testID={TEST_IDS.PM_PROGRESS_STARS_CARD}
51
53
  />
52
54
  <StatsCard
53
55
  value={formatTime(insights?.timeInPracticeMs ?? 0)}
@@ -55,6 +57,7 @@ export const PmTimeframeStats = () => {
55
57
  color={COLORS.PRIMARY_PURPLE}
56
58
  iconStyle={styles.timeIcon}
57
59
  icon={<TimerIcon />}
60
+ testID={TEST_IDS.PM_PROGRESS_TIME_CARD}
58
61
  />
59
62
  </View>
60
63
 
@@ -8,11 +8,12 @@ type StatsCardProps = {
8
8
  color: string
9
9
  icon: ReactNode
10
10
  iconStyle?: ViewStyle
11
+ testID?: string
11
12
  }
12
13
 
13
- export const StatsCard = ({ value, label, color, icon, iconStyle }: StatsCardProps) => {
14
+ export const StatsCard = ({ value, label, color, icon, iconStyle, testID }: StatsCardProps) => {
14
15
  return (
15
- <View style={[styles.card, { borderColor: color }]}>
16
+ <View style={[styles.card, { borderColor: color }]} testID={testID}>
16
17
  <View style={[styles.iconContainer, { backgroundColor: color }, iconStyle]}>{icon}</View>
17
18
  <View>
18
19
  <Text style={[styles.value, { color }]}>{value}</Text>
@@ -22,6 +22,7 @@ export type ListCardItem = {
22
22
  subtitle: string
23
23
  isCompleted: boolean
24
24
  skillsLeft: number
25
+ testID?: string
25
26
  }
26
27
 
27
28
  function getVisibleItems<T>(items: T[], maxItems?: number) {
@@ -49,6 +50,7 @@ type ListCardProps<T extends ListCardItem> = {
49
50
  isSkillsLeftHidden?: boolean
50
51
  isHighlighted?: boolean
51
52
  loadingItemId?: string | null
53
+ testID?: string
52
54
  }
53
55
 
54
56
  export const ListCard = <T extends ListCardItem>({
@@ -70,6 +72,7 @@ export const ListCard = <T extends ListCardItem>({
70
72
  expandedColor = COLORS.NEUTRAL_3,
71
73
  isSkillsLeftHidden = false,
72
74
  loadingItemId = null,
75
+ testID,
73
76
  }: ListCardProps<T>) => {
74
77
  const t = useText()
75
78
  const [isHovered, setIsHovered] = useState(false)
@@ -96,6 +99,7 @@ export const ListCard = <T extends ListCardItem>({
96
99
  isLast && !isExpanded && styles.headerLast,
97
100
  withHighlight && { backgroundColor: expandedColor },
98
101
  ]}
102
+ testID={testID}
99
103
  onPress={onPress}
100
104
  onHoverIn={() => {
101
105
  setIsHovered(true)
@@ -138,6 +142,7 @@ export const ListCard = <T extends ListCardItem>({
138
142
  isFinished={standard.isCompleted}
139
143
  isLoading={loadingItemId === standard.id}
140
144
  isSkillsLeftHidden={isSkillsLeftHidden}
145
+ testID={standard.testID}
141
146
  onPress={() => onItemPress?.(standard)}
142
147
  />
143
148
  ))}
@@ -26,6 +26,7 @@ export type ListItemProps = {
26
26
  isLoading?: boolean
27
27
  onPress?: () => void
28
28
  isSkillsLeftHidden?: boolean
29
+ testID?: string
29
30
  }
30
31
 
31
32
  export const ListItem = ({
@@ -36,6 +37,7 @@ export const ListItem = ({
36
37
  isLoading = false,
37
38
  onPress,
38
39
  isSkillsLeftHidden = false,
40
+ testID,
39
41
  }: ListItemProps) => {
40
42
  const t = useText()
41
43
  const [isHovered, setIsHovered] = useState(false)
@@ -46,6 +48,7 @@ export const ListItem = ({
46
48
  <Pressable
47
49
  onPress={onPress}
48
50
  disabled={isLoading}
51
+ testID={testID}
49
52
  style={[
50
53
  styles.card,
51
54
  isFinished && styles.finished,
@@ -8,6 +8,7 @@ import { SliceDiamondIcon } from '../../../../shared/icons/SliceDiamondIcon'
8
8
  import { usePmProgress } from '../../context/PmProgressContext'
9
9
  import { isFluencyDomain } from '../../shared/pmProgress.helpers'
10
10
  import { SolvingFlow } from '../../shared/pmProgress.constants'
11
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
11
12
 
12
13
  export const PmDomainList = () => {
13
14
  const { model, onStandardPress } = usePmProgress()
@@ -31,7 +32,12 @@ export const PmDomainList = () => {
31
32
  renderItem={({ item, index }) => (
32
33
  <ListCard
33
34
  title={item.title}
34
- items={item.standards.map((standard) => ({ ...standard, id: standard.standardId }))}
35
+ testID={TEST_IDS.PM_PROGRESS_DOMAIN_CARD(item.domainId)}
36
+ items={item.standards.map((standard) => ({
37
+ ...standard,
38
+ id: standard.standardId,
39
+ testID: TEST_IDS.PM_PROGRESS_STANDARD_ITEM(standard.standardId),
40
+ }))}
35
41
  progress={item.scorePercentage}
36
42
  color={item.color}
37
43
  onPress={() => model.highlight.expand(item.domainId)}
@@ -14,6 +14,7 @@ import {
14
14
  import { useStoreMap, useUnit } from 'effector-react'
15
15
  import { CustomDomain, OpeningLoaderId, SolvingFlow } from '../../shared/pmProgress.constants'
16
16
  import { usePmProgress } from '../../context/PmProgressContext'
17
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
17
18
  import { useText } from '../../../../i18n/i18n'
18
19
 
19
20
  export const PmTeacherRecs = () => {
@@ -33,6 +34,7 @@ export const PmTeacherRecs = () => {
33
34
  subtitle: skill.shortDescriptionTranslations,
34
35
  isCompleted: false,
35
36
  skillsLeft: 0,
37
+ testID: TEST_IDS.PM_PROGRESS_TEACHER_REC_ITEM(skill._id),
36
38
  })),
37
39
  }),
38
40
  )
@@ -48,6 +50,7 @@ export const PmTeacherRecs = () => {
48
50
  maxItems={3}
49
51
  color={COLORS.PRIMARY_YELLOW}
50
52
  expandedColor={COLORS.YELLOW_1}
53
+ testID={TEST_IDS.PM_PROGRESS_TEACHER_RECS_CARD}
51
54
  onPress={() => model.highlight.expand(CustomDomain.TEACHER)}
52
55
  onItemPress={async (item) => {
53
56
  try {
@@ -83,6 +86,7 @@ export const PmTeacherRecs = () => {
83
86
  isLoading={loaderOpeningId === OpeningLoaderId.PRACTICE_BUTTON}
84
87
  size={ButtonSize.SMALL}
85
88
  variant={ButtonVariant.SECONDARY}
89
+ testID={TEST_IDS.PM_PROGRESS_TEACHER_REC_PRACTICE_BUTTON}
86
90
  >
87
91
  {t('pmProgress.practiceButton')}
88
92
  </Button>
@@ -13,6 +13,7 @@ import {
13
13
  } from '@magmamath/react-native-ui'
14
14
 
15
15
  import { BADGE_COORDINATES, BUTTON_BORDER_WIDTH, BUTTON_SIZE, COLOR_SCHEME_MAP } from '../constants'
16
+ import { TEST_IDS } from '../../../config/dataTestIDs'
16
17
 
17
18
  import { ProblemSelectorButtonProps } from '../types'
18
19
 
@@ -28,6 +29,7 @@ export const ProblemSelectorButton = ({
28
29
  return (
29
30
  <View style={styles.wrapper}>
30
31
  <Button
32
+ testID={TEST_IDS.PROBLEM_SELECTOR_BUTTON(text)}
31
33
  variant={ButtonVariant.PRIMARY}
32
34
  size={ButtonSize.MEDIUM}
33
35
  customColorScheme={customColorScheme}
@@ -15,6 +15,7 @@ import {
15
15
  import { Pressable, StyleSheet } from 'react-native'
16
16
  import { VoiceRecordModel } from '../model/VoiceRecord.model'
17
17
  import { useUnit } from 'effector-react'
18
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
18
19
  import { VOICE_RECORD_SHADOWS, VoiceRecorderState } from '../../constants'
19
20
  import { RecordButtonVariant } from '../../types'
20
21
  import { useText } from '../../../../i18n/i18n'
@@ -105,6 +106,7 @@ export const VoiceRecordButton = ({ model, buttonVariant }: VoiceRecordButtonPro
105
106
  />
106
107
  ) : (
107
108
  <Button
109
+ testID={TEST_IDS.VOICE_RECORD_BUTTON}
108
110
  disabled={isButtonDisabled}
109
111
  onPressIn={() => model.recorderButtonHandler()}
110
112
  style={defaultButtonStyles}
@@ -1,6 +1,7 @@
1
1
  import { StyleSheet, TouchableOpacity } from 'react-native'
2
2
  import { COLORS, TrashcanIcon } from '@magmamath/react-native-ui'
3
3
  import React from 'react'
4
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
4
5
 
5
6
  type VoiceRecordDeleteProps = {
6
7
  onPress?: () => void
@@ -9,7 +10,7 @@ type VoiceRecordDeleteProps = {
9
10
 
10
11
  export const VoiceRecordDeleteButton = ({ onPress, isDisabled }: VoiceRecordDeleteProps) => {
11
12
  return (
12
- <TouchableOpacity style={styles.container} onPress={onPress} disabled={isDisabled}>
13
+ <TouchableOpacity testID={TEST_IDS.VOICE_RECORD_DELETE_BUTTON} style={styles.container} onPress={onPress} disabled={isDisabled}>
13
14
  <TrashcanIcon size={20} color={isDisabled ? COLORS.NEUTRAL_5 : COLORS.NEUTRAL_9} />
14
15
  </TouchableOpacity>
15
16
  )
@@ -4,6 +4,7 @@ import React from 'react'
4
4
  import { VoiceRecordModel } from '../model/VoiceRecord.model'
5
5
  import { useUnit } from 'effector-react'
6
6
  import { formatDuration } from '../../helpers'
7
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
7
8
 
8
9
  type VoiceRecordTimerProps = {
9
10
  style?: StyleProp<ViewStyle>
@@ -20,7 +21,7 @@ export const VoiceRecordTimer = ({
20
21
  const displayDurationMs = recordingFileDurationMs || savedAudioFileDurationMs
21
22
 
22
23
  return (
23
- <View style={[styles.container, style]}>
24
+ <View testID={TEST_IDS.VOICE_RECORD_TIMER} style={[styles.container, style]}>
24
25
  <Typography variant="h9" style={styles.text}>
25
26
  {displayDurationMs ? formatDuration(displayDurationMs) : '0:00'}
26
27
  </Typography>
@@ -8,6 +8,8 @@ type ModalFooterButtonsProps = {
8
8
  onConfirm: () => void
9
9
  confirmLabel: TranslationKey
10
10
  confirmColor?: ButtonColor
11
+ cancelTestID?: string
12
+ confirmTestID?: string
11
13
  }
12
14
 
13
15
  export const ModalFooterButtons = ({
@@ -15,12 +17,15 @@ export const ModalFooterButtons = ({
15
17
  onConfirm,
16
18
  confirmLabel,
17
19
  confirmColor = ButtonColor.BLUE,
20
+ cancelTestID,
21
+ confirmTestID,
18
22
  }: ModalFooterButtonsProps) => {
19
23
  const t = useText()
20
24
 
21
25
  return (
22
26
  <View style={styles.container}>
23
27
  <Button
28
+ testID={cancelTestID}
24
29
  style={{ text: styles.buttonLabel }}
25
30
  variant={ButtonVariant.TERTIARY}
26
31
  size={ButtonSize.LARGE}
@@ -29,6 +34,7 @@ export const ModalFooterButtons = ({
29
34
  {t('voice.cancel')}
30
35
  </Button>
31
36
  <Button
37
+ testID={confirmTestID}
32
38
  colorScheme={confirmColor}
33
39
  variant={ButtonVariant.PRIMARY}
34
40
  size={ButtonSize.LARGE}
@@ -6,6 +6,7 @@ import { VoiceRecorderState } from '../../constants'
6
6
  import { useText } from '../../../../i18n/i18n'
7
7
  import { ModalFooterButtons } from './ModalFooterButtons'
8
8
  import { VoiceRecordModalParams } from '../../types'
9
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
9
10
 
10
11
  type VoiceRecordDeleteModalComponentProps = {
11
12
  modal: {
@@ -57,6 +58,7 @@ export const VoiceRecordDeleteModal = ({
57
58
 
58
59
  return (
59
60
  <BaseModal
61
+ testID={TEST_IDS.VOICE_RECORD_DELETE_MODAL}
60
62
  style={{
61
63
  container: styles.modalContainer,
62
64
  }}
@@ -64,6 +66,8 @@ export const VoiceRecordDeleteModal = ({
64
66
  content={t('voice.youWontBeAbleToRecover')}
65
67
  footer={
66
68
  <ModalFooterButtons
69
+ cancelTestID={TEST_IDS.VOICE_RECORD_DELETE_CANCEL_BUTTON}
70
+ confirmTestID={TEST_IDS.VOICE_RECORD_DELETE_CONFIRM_BUTTON}
67
71
  onCancel={closeModal}
68
72
  onConfirm={handleDelete}
69
73
  confirmLabel="voice.delete"
@@ -4,6 +4,7 @@ import { StyleSheet } from 'react-native'
4
4
  import { useText } from '../../../../i18n/i18n'
5
5
  import { ModalFooterButtons } from './ModalFooterButtons'
6
6
  import { VoiceRecordModalParams } from '../../types'
7
+ import { TEST_IDS } from '../../../../config/dataTestIDs'
7
8
 
8
9
  type VoiceRecordUndoModalProps = {
9
10
  modal: {
@@ -26,6 +27,7 @@ export const VoiceRecordUndoModal = ({
26
27
 
27
28
  return (
28
29
  <BaseModal
30
+ testID={TEST_IDS.VOICE_RECORD_UNDO_MODAL}
29
31
  style={{
30
32
  container: styles.modalStyle,
31
33
  }}
@@ -33,6 +35,8 @@ export const VoiceRecordUndoModal = ({
33
35
  content={t('voice.thisWillRemoveRecording')}
34
36
  footer={
35
37
  <ModalFooterButtons
38
+ cancelTestID={TEST_IDS.VOICE_RECORD_UNDO_CANCEL_BUTTON}
39
+ confirmTestID={TEST_IDS.VOICE_RECORD_UNDO_CONFIRM_BUTTON}
36
40
  onCancel={closeModal}
37
41
  onConfirm={redoRecording}
38
42
  confirmLabel="voice.redo"
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { TEST_IDS as FEATURES_TEST_IDS } from './config/dataTestIDs'
1
2
  export { generateRandomId } from './lib/helpers/helpers'
2
3
  export * from './features/chatbot'
3
4
  export * from './features/feedback'
@@ -52,6 +52,7 @@ type MessageTextToSpeechProps = {
52
52
  activityIndicatorColor?: string
53
53
  colorScheme?: ColorScheme
54
54
  onPress?: () => void
55
+ testID?: string
55
56
  }
56
57
 
57
58
  export const PlayButton = ({
@@ -1,90 +0,0 @@
1
- {
2
- "chat": {
3
- "anotherHint": "Give me another hint",
4
- "answerAgain": "Answer again to get another hint!",
5
- "errorMessage": "Something went wrong! Try again",
6
- "getHint": "Get a hint",
7
- "giveHint": "I need a hint",
8
- "giveHintOpenChat": "I need a hint",
9
- "howCanIHelp": "Hi! Do you want help?",
10
- "inputPlaceholder": "Type...",
11
- "needHint": "I need a hint",
12
- "showError": "Show error"
13
- },
14
- "exampleSolution": {
15
- "aha": "Aha!",
16
- "errorMessage": "Something went wrong with generating an example solution",
17
- "exampleSolution": "Example solution",
18
- "letMeThink": "Let me think..."
19
- },
20
- "gifCelebrations": {
21
- "almostThere": "Almost there",
22
- "greatStart": "Great start!",
23
- "onTheWay": "On the way!"
24
- },
25
- "keyboard": {
26
- "area": "Area",
27
- "length": "Length",
28
- "time": "Time",
29
- "volume": "Volume",
30
- "weight": "Weight"
31
- },
32
- "locale": "en-SE",
33
- "pmProgress": {
34
- "allLockedSubtitle": "Your teacher has locked all grades.\nAsk them to unlock grades so you can start practicing.",
35
- "allLockedTitle": "All grades are locked",
36
- "allTime": "All time",
37
- "andMore": "and '{{'count'}}' more...",
38
- "fluency": "Fluency",
39
- "grade": "Grade",
40
- "gradeK": "K",
41
- "gradeOther": "Other",
42
- "initErrorSubtitle": "We couldn't load your progress.\nPlease try again later.",
43
- "initErrorTitle": "Something went wrong",
44
- "lastWeek": "Last week",
45
- "loading": "Loading...",
46
- "nextUp": "Next up!",
47
- "practiceButton": "PRACTICE",
48
- "skillLeft": "skill left",
49
- "skillsLeft": "skills left",
50
- "stars": "Practice stars",
51
- "startButton": "START",
52
- "teacherRecs": "Teacher recommendations",
53
- "thisWeek": "This week",
54
- "time": "Practice time",
55
- "title": "Practice & Progress"
56
- },
57
- "teacherFeedback": {
58
- "noComments": "No comments yet"
59
- },
60
- "time": {
61
- "dayAgo": "day ago",
62
- "daysAgo": "{{count}} days ago",
63
- "hourAgo": "hour ago",
64
- "hoursAgo": "{{count}} hours ago",
65
- "justNow": "just now",
66
- "minuteAgo": "minute ago",
67
- "minutesAgo": "{{count}} minutes ago",
68
- "monthAgo": "month ago",
69
- "monthsAgo": "{{count}} months ago",
70
- "yearAgo": "year ago",
71
- "yearsAgo": "{{count}} years ago"
72
- },
73
- "voice": {
74
- "attempt": "Attempt {{ number }}",
75
- "cancel": "Cancel",
76
- "delete": "Delete",
77
- "deleteRecording": "Delete recording?",
78
- "noMicrophoneAccess": "No microphone access.",
79
- "noMicrophoneAccessBySystem": "Microphone access denied by system settings.",
80
- "noMicrophoneFound": "No microphone found.",
81
- "recordingDeleted": "Recording successfully deleted.",
82
- "redo": "Redo",
83
- "redoRecording": "Redo recording?",
84
- "thisWillRemoveRecording": "This will remove your previous recording.",
85
- "transcriptions": "Transcriptions",
86
- "transcriptNotAvailable": "Transcript not available",
87
- "uploadFailed": "Upload failed. Please try again.",
88
- "youWontBeAbleToRecover": "You won't be able to recover this file once it's gone."
89
- }
90
- }