@magmamath/students-features 0.4.0-rc.0 → 0.4.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 (623) hide show
  1. package/dist/commonjs/features/celebrations/components/Celebrations.js +51 -0
  2. package/dist/commonjs/features/celebrations/components/Celebrations.js.map +1 -0
  3. package/dist/commonjs/features/celebrations/components/Particle.js +84 -0
  4. package/dist/commonjs/features/celebrations/components/Particle.js.map +1 -0
  5. package/dist/commonjs/features/celebrations/components/ParticleBatch.js +45 -0
  6. package/dist/commonjs/features/celebrations/components/ParticleBatch.js.map +1 -0
  7. package/dist/commonjs/features/celebrations/components/Spark.js +23 -0
  8. package/dist/commonjs/features/celebrations/components/Spark.js.map +1 -0
  9. package/dist/commonjs/features/celebrations/config.js +199 -0
  10. package/dist/commonjs/features/celebrations/config.js.map +1 -0
  11. package/dist/commonjs/features/celebrations/helpers.js +94 -0
  12. package/dist/commonjs/features/celebrations/helpers.js.map +1 -0
  13. package/dist/commonjs/features/celebrations/index.js +28 -0
  14. package/dist/commonjs/features/celebrations/index.js.map +1 -0
  15. package/dist/commonjs/features/celebrations/types.js +15 -0
  16. package/dist/commonjs/features/celebrations/types.js.map +1 -0
  17. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  18. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +4 -6
  19. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  20. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js +1 -12
  21. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  22. package/dist/commonjs/features/chatbot/components/Chatbot.js +1 -5
  23. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  24. package/dist/commonjs/features/chatbot/index.js +7 -0
  25. package/dist/commonjs/features/chatbot/index.js.map +1 -1
  26. package/dist/commonjs/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +17 -28
  27. package/dist/commonjs/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  28. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +117 -136
  29. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  30. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js +1 -0
  31. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  32. package/dist/commonjs/features/chatbot/model/ThreadItem.js +8 -21
  33. package/dist/commonjs/features/chatbot/model/ThreadItem.js.map +1 -1
  34. package/dist/commonjs/features/chatbot/model/{ChatbotApi.js → api.js} +1 -16
  35. package/dist/commonjs/features/chatbot/model/api.js.map +1 -0
  36. package/dist/commonjs/features/chatbot/model/messagesHelper.js +5 -1
  37. package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -1
  38. package/dist/commonjs/features/chatbot/model/t2s.js +6 -0
  39. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  40. package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -1
  41. package/dist/commonjs/features/chatbot/model/translation.js +45 -54
  42. package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
  43. package/dist/commonjs/features/chatbot/types/api.types.js +0 -4
  44. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  45. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js +58 -0
  46. package/dist/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -0
  47. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +247 -0
  48. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -0
  49. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +131 -0
  50. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -0
  51. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +56 -0
  52. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +1 -0
  53. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +68 -0
  54. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +1 -0
  55. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js +53 -0
  56. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +1 -0
  57. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js +47 -0
  58. package/dist/commonjs/features/endOfAssignment/components/EOAModal.js.map +1 -0
  59. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js +69 -0
  60. package/dist/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -0
  61. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js +55 -0
  62. package/dist/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -0
  63. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +102 -0
  64. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -0
  65. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +83 -0
  66. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +1 -0
  67. package/dist/commonjs/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  68. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js +96 -0
  69. package/dist/commonjs/features/endOfAssignment/components/Modal/Modal.js.map +1 -0
  70. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js +44 -0
  71. package/dist/commonjs/features/endOfAssignment/components/Modal/ModalBackground.js.map +1 -0
  72. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +233 -0
  73. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -0
  74. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +63 -0
  75. package/dist/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -0
  76. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js +34 -0
  77. package/dist/commonjs/features/endOfAssignment/components/Modal/model.js.map +1 -0
  78. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js +91 -0
  79. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -0
  80. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +107 -0
  81. package/dist/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +1 -0
  82. package/dist/commonjs/features/endOfAssignment/constants.js +55 -0
  83. package/dist/commonjs/features/endOfAssignment/constants.js.map +1 -0
  84. package/dist/commonjs/features/endOfAssignment/helpers.js +64 -0
  85. package/dist/commonjs/features/endOfAssignment/helpers.js.map +1 -0
  86. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js +51 -0
  87. package/dist/commonjs/features/endOfAssignment/hooks/useSparkAnimation.js.map +1 -0
  88. package/dist/commonjs/features/endOfAssignment/index.js +40 -0
  89. package/dist/commonjs/features/endOfAssignment/index.js.map +1 -0
  90. package/dist/commonjs/features/endOfAssignment/model/model.js +53 -0
  91. package/dist/commonjs/features/endOfAssignment/model/model.js.map +1 -0
  92. package/dist/commonjs/features/endOfAssignment/types.js +33 -0
  93. package/dist/commonjs/features/endOfAssignment/types.js.map +1 -0
  94. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js +43 -0
  95. package/dist/commonjs/features/endOfAssignment/ui/EOABadge.js.map +1 -0
  96. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js +30 -0
  97. package/dist/commonjs/features/endOfAssignment/ui/PracticeButton.js.map +1 -0
  98. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js +65 -0
  99. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -0
  100. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js +29 -0
  101. package/dist/commonjs/features/endOfAssignment/ui/SparkIcon.js.map +1 -0
  102. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js +32 -0
  103. package/dist/commonjs/features/endOfAssignment/ui/ThumbUpIcon.js.map +1 -0
  104. package/dist/commonjs/index.js +24 -0
  105. package/dist/commonjs/index.js.map +1 -1
  106. package/dist/commonjs/lib/effector/createEntityFieldStore.js +0 -4
  107. package/dist/commonjs/lib/effector/createEntityFieldStore.js.map +1 -1
  108. package/dist/commonjs/shared/icons/Halloween.js +54 -0
  109. package/dist/commonjs/shared/icons/Halloween.js.map +1 -0
  110. package/dist/commonjs/shared/icons/Pi.js +30 -0
  111. package/dist/commonjs/shared/icons/Pi.js.map +1 -0
  112. package/dist/commonjs/shared/icons/Star.js +30 -0
  113. package/dist/commonjs/shared/icons/Star.js.map +1 -0
  114. package/dist/commonjs/shared/icons/{StopIcon.js → Valentine.js} +9 -12
  115. package/dist/commonjs/shared/icons/Valentine.js.map +1 -0
  116. package/dist/commonjs/shared/icons/Winter.js +32 -0
  117. package/dist/commonjs/shared/icons/Winter.js.map +1 -0
  118. package/dist/commonjs/shared/icons/icon.types.js +0 -4
  119. package/dist/module/features/celebrations/components/Celebrations.js +45 -0
  120. package/dist/module/features/celebrations/components/Celebrations.js.map +1 -0
  121. package/dist/module/features/celebrations/components/Particle.js +76 -0
  122. package/dist/module/features/celebrations/components/Particle.js.map +1 -0
  123. package/dist/module/features/celebrations/components/ParticleBatch.js +38 -0
  124. package/dist/module/features/celebrations/components/ParticleBatch.js.map +1 -0
  125. package/dist/module/features/celebrations/components/Spark.js +17 -0
  126. package/dist/module/features/celebrations/components/Spark.js.map +1 -0
  127. package/dist/module/features/celebrations/config.js +194 -0
  128. package/dist/module/features/celebrations/config.js.map +1 -0
  129. package/dist/module/features/celebrations/helpers.js +87 -0
  130. package/dist/module/features/celebrations/helpers.js.map +1 -0
  131. package/dist/module/features/celebrations/index.js +5 -0
  132. package/dist/module/features/celebrations/index.js.map +1 -0
  133. package/dist/module/features/celebrations/types.js +11 -0
  134. package/dist/module/features/celebrations/types.js.map +1 -0
  135. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  136. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +4 -6
  137. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  138. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js +1 -12
  139. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  140. package/dist/module/features/chatbot/components/Chatbot.js +2 -6
  141. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  142. package/dist/module/features/chatbot/index.js +1 -0
  143. package/dist/module/features/chatbot/index.js.map +1 -1
  144. package/dist/module/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +15 -26
  145. package/dist/module/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  146. package/dist/module/features/chatbot/model/ChatBotModel.js +119 -138
  147. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  148. package/dist/module/features/chatbot/model/DefaultMessageCreator.js +1 -0
  149. package/dist/module/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  150. package/dist/module/features/chatbot/model/ThreadItem.js +8 -21
  151. package/dist/module/features/chatbot/model/ThreadItem.js.map +1 -1
  152. package/dist/module/features/chatbot/model/{ChatbotApi.js → api.js} +1 -16
  153. package/dist/module/features/chatbot/model/api.js.map +1 -0
  154. package/dist/module/features/chatbot/model/messagesHelper.js +5 -1
  155. package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -1
  156. package/dist/module/features/chatbot/model/t2s.js +7 -1
  157. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  158. package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -1
  159. package/dist/module/features/chatbot/model/translation.js +45 -54
  160. package/dist/module/features/chatbot/model/translation.js.map +1 -1
  161. package/dist/module/features/chatbot/types/api.types.js +0 -2
  162. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  163. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js +52 -0
  164. package/dist/module/features/endOfAssignment/components/CheatDetected/CheatDetected.js.map +1 -0
  165. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +241 -0
  166. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -0
  167. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js +124 -0
  168. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.js.map +1 -0
  169. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js +50 -0
  170. package/dist/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.js.map +1 -0
  171. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js +62 -0
  172. package/dist/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.js.map +1 -0
  173. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js +47 -0
  174. package/dist/module/features/endOfAssignment/components/CorrectAnswer/Spark.js.map +1 -0
  175. package/dist/module/features/endOfAssignment/components/EOAModal.js +41 -0
  176. package/dist/module/features/endOfAssignment/components/EOAModal.js.map +1 -0
  177. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js +63 -0
  178. package/dist/module/features/endOfAssignment/components/ExamLeave/ExamLeave.js.map +1 -0
  179. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js +49 -0
  180. package/dist/module/features/endOfAssignment/components/ExamPaused/ExamPaused.js.map +1 -0
  181. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js +96 -0
  182. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.js.map +1 -0
  183. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js +77 -0
  184. package/dist/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.js.map +1 -0
  185. package/dist/module/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  186. package/dist/module/features/endOfAssignment/components/Modal/Modal.js +89 -0
  187. package/dist/module/features/endOfAssignment/components/Modal/Modal.js.map +1 -0
  188. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js +38 -0
  189. package/dist/module/features/endOfAssignment/components/Modal/ModalBackground.js.map +1 -0
  190. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js +226 -0
  191. package/dist/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.js.map +1 -0
  192. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js +56 -0
  193. package/dist/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.js.map +1 -0
  194. package/dist/module/features/endOfAssignment/components/Modal/model.js +29 -0
  195. package/dist/module/features/endOfAssignment/components/Modal/model.js.map +1 -0
  196. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js +85 -0
  197. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswer.js.map +1 -0
  198. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js +100 -0
  199. package/dist/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.js.map +1 -0
  200. package/dist/module/features/endOfAssignment/constants.js +51 -0
  201. package/dist/module/features/endOfAssignment/constants.js.map +1 -0
  202. package/dist/module/features/endOfAssignment/helpers.js +58 -0
  203. package/dist/module/features/endOfAssignment/helpers.js.map +1 -0
  204. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js +46 -0
  205. package/dist/module/features/endOfAssignment/hooks/useSparkAnimation.js.map +1 -0
  206. package/dist/module/features/endOfAssignment/index.js +6 -0
  207. package/dist/module/features/endOfAssignment/index.js.map +1 -0
  208. package/dist/module/features/endOfAssignment/model/model.js +48 -0
  209. package/dist/module/features/endOfAssignment/model/model.js.map +1 -0
  210. package/dist/module/features/endOfAssignment/types.js +29 -0
  211. package/dist/module/features/endOfAssignment/types.js.map +1 -0
  212. package/dist/module/features/endOfAssignment/ui/EOABadge.js +37 -0
  213. package/dist/module/features/endOfAssignment/ui/EOABadge.js.map +1 -0
  214. package/dist/module/features/endOfAssignment/ui/PracticeButton.js +24 -0
  215. package/dist/module/features/endOfAssignment/ui/PracticeButton.js.map +1 -0
  216. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js +58 -0
  217. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -0
  218. package/dist/module/features/endOfAssignment/ui/SparkIcon.js +21 -0
  219. package/dist/module/features/endOfAssignment/ui/SparkIcon.js.map +1 -0
  220. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js +24 -0
  221. package/dist/module/features/endOfAssignment/ui/ThumbUpIcon.js.map +1 -0
  222. package/dist/module/index.js +2 -0
  223. package/dist/module/index.js.map +1 -1
  224. package/dist/module/lib/effector/createEntityFieldStore.js +0 -4
  225. package/dist/module/lib/effector/createEntityFieldStore.js.map +1 -1
  226. package/dist/module/shared/icons/Halloween.js +47 -0
  227. package/dist/module/shared/icons/Halloween.js.map +1 -0
  228. package/dist/module/shared/icons/Pi.js +23 -0
  229. package/dist/module/shared/icons/Pi.js.map +1 -0
  230. package/dist/module/shared/icons/Star.js +23 -0
  231. package/dist/module/shared/icons/Star.js.map +1 -0
  232. package/dist/module/shared/icons/Valentine.js +23 -0
  233. package/dist/module/shared/icons/Valentine.js.map +1 -0
  234. package/dist/module/shared/icons/Winter.js +25 -0
  235. package/dist/module/shared/icons/Winter.js.map +1 -0
  236. package/dist/module/shared/icons/icon.types.js +0 -2
  237. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts +10 -0
  238. package/dist/typescript/commonjs/features/celebrations/components/Celebrations.d.ts.map +1 -0
  239. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts +19 -0
  240. package/dist/typescript/commonjs/features/celebrations/components/Particle.d.ts.map +1 -0
  241. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts +26 -0
  242. package/dist/typescript/commonjs/features/celebrations/components/ParticleBatch.d.ts.map +1 -0
  243. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts +4 -0
  244. package/dist/typescript/commonjs/features/celebrations/components/Spark.d.ts.map +1 -0
  245. package/dist/typescript/commonjs/features/celebrations/config.d.ts +167 -0
  246. package/dist/typescript/commonjs/features/celebrations/config.d.ts.map +1 -0
  247. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts +6 -0
  248. package/dist/typescript/commonjs/features/celebrations/helpers.d.ts.map +1 -0
  249. package/dist/typescript/commonjs/features/celebrations/index.d.ts +3 -0
  250. package/dist/typescript/commonjs/features/celebrations/index.d.ts.map +1 -0
  251. package/dist/typescript/commonjs/features/celebrations/types.d.ts +11 -0
  252. package/dist/typescript/commonjs/features/celebrations/types.d.ts.map +1 -0
  253. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +0 -1
  254. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  255. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  256. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  257. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  258. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  259. package/dist/typescript/commonjs/features/chatbot/index.d.ts +3 -4
  260. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  261. package/dist/typescript/commonjs/features/chatbot/model/{ChatBotThreadManager.d.ts → ChatBotMessageHandler.d.ts} +8 -11
  262. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  263. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +14 -19
  264. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  265. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts +2 -3
  266. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  267. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts +6 -12
  268. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  269. package/dist/typescript/commonjs/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  270. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -0
  271. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +4 -3
  272. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  273. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +4 -2
  274. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  275. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +8 -7
  276. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
  277. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +1 -2
  278. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  279. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +11 -2
  280. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  281. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +19 -26
  282. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  283. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +1 -2
  284. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
  285. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +4 -0
  286. package/dist/typescript/commonjs/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -0
  287. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +15 -0
  288. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -0
  289. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +4 -0
  290. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -0
  291. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +8 -0
  292. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +1 -0
  293. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +8 -0
  294. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +1 -0
  295. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +12 -0
  296. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +1 -0
  297. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts +11 -0
  298. package/dist/typescript/commonjs/features/endOfAssignment/components/EOAModal.d.ts.map +1 -0
  299. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +4 -0
  300. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -0
  301. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +4 -0
  302. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -0
  303. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +4 -0
  304. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -0
  305. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +8 -0
  306. package/dist/typescript/commonjs/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +1 -0
  307. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts +20 -0
  308. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -0
  309. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts +3 -0
  310. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +1 -0
  311. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +4 -0
  312. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -0
  313. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +4 -0
  314. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -0
  315. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts +14 -0
  316. package/dist/typescript/commonjs/features/endOfAssignment/components/Modal/model.d.ts.map +1 -0
  317. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +4 -0
  318. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -0
  319. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +8 -0
  320. package/dist/typescript/commonjs/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +1 -0
  321. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts +41 -0
  322. package/dist/typescript/commonjs/features/endOfAssignment/constants.d.ts.map +1 -0
  323. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts +9 -0
  324. package/dist/typescript/commonjs/features/endOfAssignment/helpers.d.ts.map +1 -0
  325. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts +27 -0
  326. package/dist/typescript/commonjs/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +1 -0
  327. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts +4 -0
  328. package/dist/typescript/commonjs/features/endOfAssignment/index.d.ts.map +1 -0
  329. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts +14 -0
  330. package/dist/typescript/commonjs/features/endOfAssignment/model/model.d.ts.map +1 -0
  331. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts +60 -0
  332. package/dist/typescript/commonjs/features/endOfAssignment/types.d.ts.map +1 -0
  333. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts +11 -0
  334. package/dist/typescript/commonjs/features/endOfAssignment/ui/EOABadge.d.ts.map +1 -0
  335. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts +10 -0
  336. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -0
  337. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +14 -0
  338. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -0
  339. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts +4 -0
  340. package/dist/typescript/commonjs/features/endOfAssignment/ui/SparkIcon.d.ts.map +1 -0
  341. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts +4 -0
  342. package/dist/typescript/commonjs/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +1 -0
  343. package/dist/typescript/commonjs/index.d.ts +2 -0
  344. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  345. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts +0 -2
  346. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  347. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts +5 -0
  348. package/dist/typescript/commonjs/shared/icons/Halloween.d.ts.map +1 -0
  349. package/dist/typescript/commonjs/shared/icons/Pi.d.ts +5 -0
  350. package/dist/typescript/commonjs/shared/icons/Pi.d.ts.map +1 -0
  351. package/dist/typescript/commonjs/shared/icons/Star.d.ts +5 -0
  352. package/dist/typescript/commonjs/shared/icons/Star.d.ts.map +1 -0
  353. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts +5 -0
  354. package/dist/typescript/commonjs/shared/icons/Valentine.d.ts.map +1 -0
  355. package/dist/typescript/commonjs/shared/icons/Winter.d.ts +5 -0
  356. package/dist/typescript/commonjs/shared/icons/Winter.d.ts.map +1 -0
  357. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts +0 -2
  358. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts.map +1 -1
  359. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts +10 -0
  360. package/dist/typescript/module/features/celebrations/components/Celebrations.d.ts.map +1 -0
  361. package/dist/typescript/module/features/celebrations/components/Particle.d.ts +19 -0
  362. package/dist/typescript/module/features/celebrations/components/Particle.d.ts.map +1 -0
  363. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts +26 -0
  364. package/dist/typescript/module/features/celebrations/components/ParticleBatch.d.ts.map +1 -0
  365. package/dist/typescript/module/features/celebrations/components/Spark.d.ts +4 -0
  366. package/dist/typescript/module/features/celebrations/components/Spark.d.ts.map +1 -0
  367. package/dist/typescript/module/features/celebrations/config.d.ts +167 -0
  368. package/dist/typescript/module/features/celebrations/config.d.ts.map +1 -0
  369. package/dist/typescript/module/features/celebrations/helpers.d.ts +6 -0
  370. package/dist/typescript/module/features/celebrations/helpers.d.ts.map +1 -0
  371. package/dist/typescript/module/features/celebrations/index.d.ts +3 -0
  372. package/dist/typescript/module/features/celebrations/index.d.ts.map +1 -0
  373. package/dist/typescript/module/features/celebrations/types.d.ts +11 -0
  374. package/dist/typescript/module/features/celebrations/types.d.ts.map +1 -0
  375. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +0 -1
  376. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  377. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  378. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  379. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  380. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  381. package/dist/typescript/module/features/chatbot/index.d.ts +3 -4
  382. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  383. package/dist/typescript/module/features/chatbot/model/{ChatBotThreadManager.d.ts → ChatBotMessageHandler.d.ts} +8 -11
  384. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  385. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +14 -19
  386. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  387. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts +2 -3
  388. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  389. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts +6 -12
  390. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  391. package/dist/typescript/module/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  392. package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -0
  393. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +4 -3
  394. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  395. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +4 -2
  396. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  397. package/dist/typescript/module/features/chatbot/model/translation.d.ts +8 -7
  398. package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
  399. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +1 -2
  400. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  401. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +11 -2
  402. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  403. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +19 -26
  404. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  405. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +1 -2
  406. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
  407. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts +4 -0
  408. package/dist/typescript/module/features/endOfAssignment/components/CheatDetected/CheatDetected.d.ts.map +1 -0
  409. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts +15 -0
  410. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -0
  411. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts +4 -0
  412. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.d.ts.map +1 -0
  413. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts +8 -0
  414. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.d.ts.map +1 -0
  415. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts +8 -0
  416. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.d.ts.map +1 -0
  417. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts +12 -0
  418. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/Spark.d.ts.map +1 -0
  419. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts +11 -0
  420. package/dist/typescript/module/features/endOfAssignment/components/EOAModal.d.ts.map +1 -0
  421. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts +4 -0
  422. package/dist/typescript/module/features/endOfAssignment/components/ExamLeave/ExamLeave.d.ts.map +1 -0
  423. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts +4 -0
  424. package/dist/typescript/module/features/endOfAssignment/components/ExamPaused/ExamPaused.d.ts.map +1 -0
  425. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts +4 -0
  426. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmit.d.ts.map +1 -0
  427. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts +8 -0
  428. package/dist/typescript/module/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.d.ts.map +1 -0
  429. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts +20 -0
  430. package/dist/typescript/module/features/endOfAssignment/components/Modal/Modal.d.ts.map +1 -0
  431. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts +3 -0
  432. package/dist/typescript/module/features/endOfAssignment/components/Modal/ModalBackground.d.ts.map +1 -0
  433. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts +4 -0
  434. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/SunrisingIcon.d.ts.map +1 -0
  435. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts +4 -0
  436. package/dist/typescript/module/features/endOfAssignment/components/Modal/assets/TrophyIcon.d.ts.map +1 -0
  437. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts +14 -0
  438. package/dist/typescript/module/features/endOfAssignment/components/Modal/model.d.ts.map +1 -0
  439. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts +4 -0
  440. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswer.d.ts.map +1 -0
  441. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts +8 -0
  442. package/dist/typescript/module/features/endOfAssignment/components/NoAnswer/NoAnswerContent.d.ts.map +1 -0
  443. package/dist/typescript/module/features/endOfAssignment/constants.d.ts +41 -0
  444. package/dist/typescript/module/features/endOfAssignment/constants.d.ts.map +1 -0
  445. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts +9 -0
  446. package/dist/typescript/module/features/endOfAssignment/helpers.d.ts.map +1 -0
  447. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts +27 -0
  448. package/dist/typescript/module/features/endOfAssignment/hooks/useSparkAnimation.d.ts.map +1 -0
  449. package/dist/typescript/module/features/endOfAssignment/index.d.ts +4 -0
  450. package/dist/typescript/module/features/endOfAssignment/index.d.ts.map +1 -0
  451. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts +14 -0
  452. package/dist/typescript/module/features/endOfAssignment/model/model.d.ts.map +1 -0
  453. package/dist/typescript/module/features/endOfAssignment/types.d.ts +60 -0
  454. package/dist/typescript/module/features/endOfAssignment/types.d.ts.map +1 -0
  455. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts +11 -0
  456. package/dist/typescript/module/features/endOfAssignment/ui/EOABadge.d.ts.map +1 -0
  457. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts +10 -0
  458. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButton.d.ts.map +1 -0
  459. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts +14 -0
  460. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -0
  461. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts +4 -0
  462. package/dist/typescript/module/features/endOfAssignment/ui/SparkIcon.d.ts.map +1 -0
  463. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts +4 -0
  464. package/dist/typescript/module/features/endOfAssignment/ui/ThumbUpIcon.d.ts.map +1 -0
  465. package/dist/typescript/module/index.d.ts +2 -0
  466. package/dist/typescript/module/index.d.ts.map +1 -1
  467. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts +0 -2
  468. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  469. package/dist/typescript/module/shared/icons/Halloween.d.ts +5 -0
  470. package/dist/typescript/module/shared/icons/Halloween.d.ts.map +1 -0
  471. package/dist/typescript/module/shared/icons/Pi.d.ts +5 -0
  472. package/dist/typescript/module/shared/icons/Pi.d.ts.map +1 -0
  473. package/dist/typescript/module/shared/icons/Star.d.ts +5 -0
  474. package/dist/typescript/module/shared/icons/Star.d.ts.map +1 -0
  475. package/dist/typescript/module/shared/icons/Valentine.d.ts +5 -0
  476. package/dist/typescript/module/shared/icons/Valentine.d.ts.map +1 -0
  477. package/dist/typescript/module/shared/icons/Winter.d.ts +5 -0
  478. package/dist/typescript/module/shared/icons/Winter.d.ts.map +1 -0
  479. package/dist/typescript/module/shared/icons/icon.types.d.ts +0 -2
  480. package/dist/typescript/module/shared/icons/icon.types.d.ts.map +1 -1
  481. package/package.json +4 -2
  482. package/src/features/celebrations/components/Celebrations.tsx +62 -0
  483. package/src/features/celebrations/components/Particle.tsx +99 -0
  484. package/src/features/celebrations/components/ParticleBatch.tsx +56 -0
  485. package/src/features/celebrations/components/Spark.tsx +14 -0
  486. package/src/features/celebrations/config.ts +199 -0
  487. package/src/features/celebrations/helpers.ts +96 -0
  488. package/src/features/celebrations/index.ts +2 -0
  489. package/src/features/celebrations/types.ts +11 -0
  490. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +0 -1
  491. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +0 -3
  492. package/src/features/chatbot/components/ChatMessages/ChatbotMessages.tsx +0 -14
  493. package/src/features/chatbot/components/Chatbot.tsx +2 -3
  494. package/src/features/chatbot/index.ts +3 -3
  495. package/src/features/chatbot/model/{ChatBotThreadManager.ts → ChatBotMessageHandler.ts} +16 -28
  496. package/src/features/chatbot/model/ChatBotModel.ts +124 -123
  497. package/src/features/chatbot/model/DefaultMessageCreator.ts +3 -3
  498. package/src/features/chatbot/model/ThreadItem.ts +9 -20
  499. package/src/features/chatbot/model/{ChatbotApi.ts → api.ts} +2 -19
  500. package/src/features/chatbot/model/messagesHelper.ts +6 -2
  501. package/src/features/chatbot/model/t2s.ts +10 -3
  502. package/src/features/chatbot/model/translation.helpers.ts +1 -2
  503. package/src/features/chatbot/model/translation.ts +46 -52
  504. package/src/features/chatbot/types/api.types.ts +12 -2
  505. package/src/features/chatbot/types/model.types.ts +26 -38
  506. package/src/features/chatbot/types/translation.types.ts +1 -2
  507. package/src/features/endOfAssignment/components/CheatDetected/CheatDetected.tsx +48 -0
  508. package/src/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.tsx +293 -0
  509. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswer.tsx +128 -0
  510. package/src/features/endOfAssignment/components/CorrectAnswer/CorrectAnswerSparks.tsx +39 -0
  511. package/src/features/endOfAssignment/components/CorrectAnswer/GoodDrawingSparks.tsx +40 -0
  512. package/src/features/endOfAssignment/components/CorrectAnswer/Spark.tsx +45 -0
  513. package/src/features/endOfAssignment/components/EOAModal.tsx +64 -0
  514. package/src/features/endOfAssignment/components/ExamLeave/ExamLeave.tsx +56 -0
  515. package/src/features/endOfAssignment/components/ExamPaused/ExamPaused.tsx +46 -0
  516. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmit.tsx +102 -0
  517. package/src/features/endOfAssignment/components/ExamSubmit/ExamSubmitContent.tsx +69 -0
  518. package/src/features/endOfAssignment/components/ExamSubmit/blurred-card.png +0 -0
  519. package/src/features/endOfAssignment/components/Modal/Modal.tsx +105 -0
  520. package/src/features/endOfAssignment/components/Modal/ModalBackground.tsx +33 -0
  521. package/src/features/endOfAssignment/components/Modal/assets/SunrisingIcon.tsx +196 -0
  522. package/src/features/endOfAssignment/components/Modal/assets/TrophyIcon.tsx +62 -0
  523. package/src/features/endOfAssignment/components/Modal/model.ts +34 -0
  524. package/src/features/endOfAssignment/components/NoAnswer/NoAnswer.tsx +85 -0
  525. package/src/features/endOfAssignment/components/NoAnswer/NoAnswerContent.tsx +107 -0
  526. package/src/features/endOfAssignment/constants.ts +53 -0
  527. package/src/features/endOfAssignment/helpers.ts +28 -0
  528. package/src/features/endOfAssignment/hooks/useSparkAnimation.tsx +78 -0
  529. package/src/features/endOfAssignment/index.ts +3 -0
  530. package/src/features/endOfAssignment/model/model.ts +57 -0
  531. package/src/features/endOfAssignment/types.ts +65 -0
  532. package/src/features/endOfAssignment/ui/EOABadge.tsx +47 -0
  533. package/src/features/endOfAssignment/ui/PracticeButton.tsx +27 -0
  534. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +75 -0
  535. package/src/features/endOfAssignment/ui/SparkIcon.tsx +15 -0
  536. package/src/features/endOfAssignment/ui/ThumbUpIcon.tsx +17 -0
  537. package/src/index.ts +2 -0
  538. package/src/lib/effector/createEntityFieldStore.ts +1 -9
  539. package/src/shared/icons/Halloween.tsx +33 -0
  540. package/src/shared/icons/Pi.tsx +16 -0
  541. package/src/shared/icons/Star.tsx +16 -0
  542. package/src/shared/icons/Valentine.tsx +16 -0
  543. package/src/shared/icons/Winter.tsx +19 -0
  544. package/src/shared/icons/icon.types.ts +6 -9
  545. package/dist/commonjs/features/chatbot/context/ChatBotContext.js +0 -17
  546. package/dist/commonjs/features/chatbot/context/ChatBotContext.js.map +0 -1
  547. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -58
  548. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  549. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -99
  550. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  551. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  552. package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +0 -1
  553. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +0 -110
  554. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  555. package/dist/commonjs/features/chatbot/types/units.types.js +0 -2
  556. package/dist/commonjs/features/chatbot/types/units.types.js.map +0 -1
  557. package/dist/commonjs/lib/helpers/randomElements.js +0 -24
  558. package/dist/commonjs/lib/helpers/randomElements.js.map +0 -1
  559. package/dist/commonjs/shared/icons/HighlighterIcon.js +0 -36
  560. package/dist/commonjs/shared/icons/HighlighterIcon.js.map +0 -1
  561. package/dist/commonjs/shared/icons/StopIcon.js.map +0 -1
  562. package/dist/module/features/chatbot/context/ChatBotContext.js +0 -12
  563. package/dist/module/features/chatbot/context/ChatBotContext.js.map +0 -1
  564. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -52
  565. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  566. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -94
  567. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  568. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  569. package/dist/module/features/chatbot/model/ChatbotApi.js.map +0 -1
  570. package/dist/module/features/chatbot/model/ChatsCacheModel.js +0 -104
  571. package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  572. package/dist/module/features/chatbot/types/units.types.js +0 -2
  573. package/dist/module/features/chatbot/types/units.types.js.map +0 -1
  574. package/dist/module/lib/helpers/randomElements.js +0 -20
  575. package/dist/module/lib/helpers/randomElements.js.map +0 -1
  576. package/dist/module/shared/icons/HighlighterIcon.js +0 -29
  577. package/dist/module/shared/icons/HighlighterIcon.js.map +0 -1
  578. package/dist/module/shared/icons/StopIcon.js +0 -26
  579. package/dist/module/shared/icons/StopIcon.js.map +0 -1
  580. package/dist/typescript/commonjs/features/chatbot/context/ChatBotContext.d.ts +0 -8
  581. package/dist/typescript/commonjs/features/chatbot/context/ChatBotContext.d.ts.map +0 -1
  582. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -3
  583. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  584. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -28
  585. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  586. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  587. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  588. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +0 -26
  589. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  590. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +0 -31
  591. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +0 -1
  592. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts +0 -2
  593. package/dist/typescript/commonjs/lib/helpers/randomElements.d.ts.map +0 -1
  594. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts +0 -4
  595. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts.map +0 -1
  596. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts +0 -4
  597. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts.map +0 -1
  598. package/dist/typescript/module/features/chatbot/context/ChatBotContext.d.ts +0 -8
  599. package/dist/typescript/module/features/chatbot/context/ChatBotContext.d.ts.map +0 -1
  600. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -3
  601. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  602. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -28
  603. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  604. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  605. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  606. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +0 -26
  607. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  608. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +0 -31
  609. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +0 -1
  610. package/dist/typescript/module/lib/helpers/randomElements.d.ts +0 -2
  611. package/dist/typescript/module/lib/helpers/randomElements.d.ts.map +0 -1
  612. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts +0 -4
  613. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts.map +0 -1
  614. package/dist/typescript/module/shared/icons/StopIcon.d.ts +0 -4
  615. package/dist/typescript/module/shared/icons/StopIcon.d.ts.map +0 -1
  616. package/src/features/chatbot/context/ChatBotContext.ts +0 -18
  617. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +0 -53
  618. package/src/features/chatbot/errorSpotting/ErrorSpottingModel.ts +0 -116
  619. package/src/features/chatbot/model/ChatsCacheModel.ts +0 -94
  620. package/src/features/chatbot/types/units.types.ts +0 -34
  621. package/src/lib/helpers/randomElements.ts +0 -22
  622. package/src/shared/icons/HighlighterIcon.tsx +0 -21
  623. package/src/shared/icons/StopIcon.tsx +0 -17
@@ -5,29 +5,27 @@ import {
5
5
  TranslateMessageFxProps,
6
6
  TranslateRequestProps,
7
7
  } from '../types/translation.types'
8
- import { ChatbotContext, ChatbotMessages } from '../types/model.types'
8
+ import { ChatbotContext, ChatbotMessages, ConversationMessage } from '../types/model.types'
9
9
  import { GetAlternativesResponse } from '../types/api.types'
10
10
  import { decodeHTMLEntities } from '../helpers'
11
- import { ChatbotAPI } from './ChatbotApi'
11
+ import { ChatbotAPI } from './api'
12
+ import { EntityFieldStore } from '../../../lib/effector/createEntityFieldStore'
12
13
  import {
13
14
  addTranslationsToAlternative,
14
15
  addTranslationToOptions,
15
16
  getOptionsForTranslation,
16
17
  } from './translation.helpers'
17
18
 
18
- import { ChatsCacheModel } from './ChatsCacheModel'
19
- import { ConversationMessage } from '../types/units.types'
20
-
21
19
  type ChatbotTranslationProps = {
22
20
  api: ChatbotAPI
23
21
  $key: Store<string>
24
22
  defaultMessages: ChatbotMessages
23
+ messagesModel: EntityFieldStore<ConversationMessage[]>
25
24
  $context: Store<ChatbotContext | null>
26
25
  alternativesModel: {
27
26
  set: EventCallable<GetAlternativesResponse | null>
28
27
  $store: Store<GetAlternativesResponse | null>
29
28
  }
30
- chats: ChatsCacheModel
31
29
  }
32
30
 
33
31
  export class ChatbotTranslation {
@@ -35,6 +33,7 @@ export class ChatbotTranslation {
35
33
  private readonly $key
36
34
  private readonly $context
37
35
  private readonly defaultMessages
36
+ private readonly messagesModel
38
37
  private readonly alternativesModel
39
38
 
40
39
  readonly setIsTranslated = createEvent<boolean>()
@@ -46,32 +45,27 @@ export class ChatbotTranslation {
46
45
  api,
47
46
  $key,
48
47
  defaultMessages,
48
+ messagesModel,
49
49
  alternativesModel,
50
50
  $context,
51
- chats,
52
51
  }: ChatbotTranslationProps) {
53
52
  this.api = api
54
53
  this.$key = $key
55
54
  this.$context = $context
56
55
  this.defaultMessages = defaultMessages
56
+ this.messagesModel = messagesModel
57
57
  this.alternativesModel = alternativesModel
58
58
 
59
59
  this.translateAllMessagesFx = attach({
60
- source: [this.$key, chats.$data, this.alternativesModel.$store, this.$context],
61
- mapParams: (_: void, [key, chats, alternatives, context]) => ({
60
+ source: [this.$key, this.messagesModel.$state, this.alternativesModel.$store, this.$context],
61
+ mapParams: (_: void, [key, messages, alternatives, context]) => ({
62
62
  targetLanguage: context?.translationTargetLanguage ?? '',
63
- messages: chats[key]?.messages ?? [],
63
+ messages: messages[key] ?? [],
64
64
  alternatives,
65
65
  }),
66
66
  effect: this.translateBatchFx,
67
67
  })
68
-
69
- sample({
70
- clock: this.translateAllMessagesFx.doneData,
71
- source: [this.$key] as const,
72
- fn: ([key], translatedMessages) => ({ key, data: { messages: translatedMessages } }),
73
- target: chats.update,
74
- })
68
+ this.initTranslationSamples()
75
69
  }
76
70
 
77
71
  private shouldSkipTranslation(messages: ConversationMessage[]) {
@@ -89,6 +83,15 @@ export class ChatbotTranslation {
89
83
  return false
90
84
  }
91
85
 
86
+ private initTranslationSamples() {
87
+ sample({
88
+ clock: this.translateAllMessagesFx.doneData,
89
+ source: [this.$key] as const,
90
+ fn: ([key], translatedMessages) => ({ key, data: translatedMessages }),
91
+ target: this.messagesModel.setField,
92
+ })
93
+ }
94
+
92
95
  private async translateRequest<List extends Record<string, string[]>>({
93
96
  textList,
94
97
  targetLanguage,
@@ -164,42 +167,33 @@ export class ChatbotTranslation {
164
167
  },
165
168
  )
166
169
 
167
- public readonly applyTranslationFx = attach({
168
- source: { isTranslated: this.$isTranslated },
169
- mapParams: (props: Omit<TranslateMessageFxProps, 'isTranslated'>, source) => ({
170
- ...props,
171
- ...source,
172
- }),
173
- effect: createEffect(
174
- async ({
175
- messages,
176
- targetLanguage,
177
- preventTranslate,
178
- }: TranslateMessageFxProps): Promise<ConversationMessage[]> => {
179
- if (!preventTranslate) return messages
180
- const text = messages
181
- .map(({ options, message }) => {
182
- return [message, ...options.map(({ text }) => text)]
183
- })
184
- .flat()
185
-
186
- const response = await this.api.translateTextFx({ text, targetLanguage })
187
- const translatedTexts = response.data.translations.map(({ translatedText }) =>
188
- decodeHTMLEntities(translatedText),
189
- )
190
-
191
- return messages.map((message): ConversationMessage => {
192
- const options = message.options
193
- const translatedMessage = translatedTexts.shift()
194
- return {
195
- ...message,
196
- translatedMessage,
197
- options: addTranslationToOptions(options, translatedTexts.splice(0, options.length)),
198
- }
170
+ public readonly translateMessagesFx = createEffect(
171
+ async ({
172
+ messages,
173
+ targetLanguage,
174
+ }: TranslateMessageFxProps): Promise<ConversationMessage[]> => {
175
+ const text = messages
176
+ .map(({ options, message }) => {
177
+ return [message, ...options.map(({ text }) => text)]
199
178
  })
200
- },
201
- ),
202
- })
179
+ .flat()
180
+
181
+ const response = await this.api.translateTextFx({ text, targetLanguage })
182
+ const translatedTexts = response.data.translations.map(({ translatedText }) =>
183
+ decodeHTMLEntities(translatedText),
184
+ )
185
+
186
+ return messages.map((message): ConversationMessage => {
187
+ const options = message.options
188
+ const translatedMessage = translatedTexts.shift()
189
+ return {
190
+ ...message,
191
+ translatedMessage,
192
+ options: addTranslationToOptions(options, translatedTexts.splice(0, options.length)),
193
+ }
194
+ })
195
+ },
196
+ )
203
197
 
204
198
  public reset() {
205
199
  this.setIsTranslated(false)
@@ -1,4 +1,8 @@
1
- import { ChatAnswer, IThreadItem, Stroke } from './units.types'
1
+ export type ChatAnswer = {
2
+ text: string
3
+ promptKey: string
4
+ translatedText?: string
5
+ }
2
6
 
3
7
  export type GetAlternativesPayload = {
4
8
  municipalityId: string
@@ -17,15 +21,16 @@ export type PostMessagePayload = {
17
21
  language: string
18
22
  problemAnswer: string[]
19
23
  answer?: string | string[]
24
+ threadId?: string | null
20
25
  problem: string
21
26
  imageAltText?: string
22
27
  }
23
28
 
24
29
  export type PostMessageResponse = {
25
30
  message: string
31
+ threadId: string
26
32
  options: ChatAnswer[]
27
33
  endMessage?: boolean
28
- thread: IThreadItem
29
34
  }
30
35
 
31
36
  export type GoogleTranslatePayload = {
@@ -56,6 +61,11 @@ export type GoogleText2SpeechPayload = {
56
61
 
57
62
  export type GoogleText2SpeechResponse = string | undefined | { audioContent?: string }
58
63
 
64
+ export type Stroke = {
65
+ x: number[]
66
+ y: number[]
67
+ }
68
+
59
69
  export type ChatHintPayload = {
60
70
  problemDescription: string
61
71
  correctAnswer: string[]
@@ -1,18 +1,27 @@
1
1
  import type { Store } from 'effector'
2
2
  import {
3
- ChatHintPayload,
4
- ChatHintResponse,
5
- GetAlternativesPayload,
6
3
  GetAlternativesResponse,
7
- GoogleText2SpeechPayload,
8
- GoogleText2SpeechResponse,
9
- GoogleTranslatePayload,
10
- GoogleTranslateResponse,
11
4
  PostMessagePayload,
12
5
  PostMessageResponse,
6
+ GoogleTranslatePayload,
7
+ GoogleTranslateResponse,
8
+ GoogleText2SpeechPayload,
9
+ GoogleText2SpeechResponse,
10
+ ChatAnswer,
11
+ GetAlternativesPayload,
12
+ Stroke,
13
13
  } from './api.types'
14
14
  import { ExtendWithOptional } from '../../../lib/helpers/types'
15
- import { ChatAnswer, ConversationMessage, FullStrokeData } from './units.types'
15
+
16
+ export type ConversationMessage = {
17
+ id: string
18
+ message: string
19
+ threadId: string
20
+ options: ChatAnswer[]
21
+ isOwnMessage: boolean
22
+ translatedMessage?: string
23
+ endMessage?: boolean
24
+ }
16
25
 
17
26
  export type ChatbotMessages = {
18
27
  error: ConversationMessage
@@ -21,29 +30,15 @@ export type ChatbotMessages = {
21
30
  anotherHintOption: ChatAnswer
22
31
  }
23
32
 
24
- export type SpotErrorPayload = {
25
- strokes: FullStrokeData[]
26
- }
27
-
28
- export type SpotErrorResponse = {
29
- strokesIds: string[]
30
- }
31
-
32
- export type ChatbotApiRequests = {
33
- getAlternatives: (props: GetAlternativesPayload) => Promise<GetAlternativesResponse>
34
- postMessage: (props: PostMessagePayload) => Promise<PostMessageResponse>
35
- postTranslateText: (props: GoogleTranslatePayload) => Promise<GoogleTranslateResponse>
36
- postTextToSpeech: (props: GoogleText2SpeechPayload) => Promise<GoogleText2SpeechResponse>
37
- spotError: (props: SpotErrorPayload) => Promise<SpotErrorResponse>
38
- }
39
-
40
33
  export type ChatbotModelProps = {
41
34
  $key?: Store<string>
42
- api: Omit<ChatbotApiRequests, 'postMessage'> & {
43
- requestHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
35
+ api: {
36
+ getAlternatives: (props: GetAlternativesPayload) => Promise<GetAlternativesResponse>
37
+ postMessage: (props: PostMessagePayload) => Promise<PostMessageResponse>
38
+ postTranslateText: (props: GoogleTranslatePayload) => Promise<GoogleTranslateResponse>
39
+ postTextToSpeech: (props: GoogleText2SpeechPayload) => Promise<GoogleText2SpeechResponse>
44
40
  }
45
41
  messages: ChatbotMessages
46
- threadMessagesLimit?: number
47
42
  }
48
43
 
49
44
  export type SendHelpParams = {
@@ -53,6 +48,8 @@ export type SendHelpParams = {
53
48
 
54
49
  export type SendHelpProps = SendHelpParams & {
55
50
  key: string
51
+ isTranslated: boolean
52
+ threadId: string
56
53
  context: ChatbotContext | null
57
54
  }
58
55
 
@@ -80,19 +77,10 @@ export type ChatbotRenderer = {
80
77
  withTextToSpeech: boolean
81
78
  }
82
79
 
83
- export type CreateMessageResponse = ExtendWithOptional<
84
- Omit<PostMessageResponse, 'thread'>,
85
- ConversationMessage
86
- >
87
-
88
- type GetVisibleStrokesResponse = {
89
- strokes: FullStrokeData[]
90
- validationKey: string
91
- }
80
+ export type CreateMessageResponse = ExtendWithOptional<PostMessageResponse, ConversationMessage>
92
81
 
93
82
  export type IChatDrawBoardAdapter = {
94
- $strokesValidationKey: Store<string | null>
95
- getVisibleStrokes(): Promise<GetVisibleStrokesResponse | null>
83
+ getVisibleStrokes(): Promise<Stroke[] | null>
96
84
  }
97
85
 
98
86
  export type ChatbotContext = {
@@ -1,5 +1,5 @@
1
+ import { ConversationMessage } from './model.types'
1
2
  import { GetAlternativesResponse } from './api.types'
2
- import { ConversationMessage } from './units.types'
3
3
 
4
4
  export type TranslateBatchFxProps = {
5
5
  messages: ConversationMessage[]
@@ -8,7 +8,6 @@ export type TranslateBatchFxProps = {
8
8
  }
9
9
 
10
10
  export type TranslateMessageFxProps = {
11
- preventTranslate?: boolean
12
11
  messages: ConversationMessage[]
13
12
  targetLanguage: string
14
13
  }
@@ -0,0 +1,48 @@
1
+ import React from 'react'
2
+ import { View, StyleSheet } from 'react-native'
3
+ import { Button, SPACING, COLORS, Typography } from '@magmamath/react-native-ui'
4
+ import { EOAModalContentProps } from '../../types'
5
+
6
+ export const CheatDetected = ({ textContent, model }: EOAModalContentProps) => {
7
+ return (
8
+ <View style={styles.container}>
9
+ <Typography variant='h2' style={styles.title}>
10
+ {textContent.title}
11
+ </Typography>
12
+
13
+ <Typography variant='h1' style={styles.description}>
14
+ {textContent.description}
15
+ </Typography>
16
+
17
+ <Button
18
+ variant='primary'
19
+ colorScheme='red'
20
+ size='large'
21
+ style={{ text: styles.buttonText }}
22
+ onPress={model.hidePopUpAndLeave}
23
+ >
24
+ {textContent.leftButtonText}
25
+ </Button>
26
+ </View>
27
+ )
28
+ }
29
+
30
+ const styles = StyleSheet.create({
31
+ container: {
32
+ flex: 1,
33
+ gap: SPACING[800],
34
+ alignItems: 'center',
35
+ justifyContent: 'space-between',
36
+ },
37
+ title: {
38
+ color: COLORS.NEUTRAL_9,
39
+ },
40
+ description: {
41
+ color: COLORS.NEUTRAL_9,
42
+ textAlign: 'center',
43
+ fontWeight: '700',
44
+ },
45
+ buttonText: {
46
+ textTransform: 'uppercase',
47
+ },
48
+ })
@@ -0,0 +1,293 @@
1
+ import React, { memo, useEffect, useRef } from 'react'
2
+ import { View, StyleSheet } from 'react-native'
3
+
4
+ import Animated, {
5
+ useSharedValue,
6
+ useAnimatedStyle,
7
+ withSpring,
8
+ withTiming,
9
+ withDelay,
10
+ interpolate,
11
+ interpolateColor,
12
+ runOnUI,
13
+ runOnJS,
14
+ } from 'react-native-reanimated'
15
+ import { SPACING, Typography, COLORS, BORDER_RADIUS, IS_MOBILE } from '@magmamath/react-native-ui'
16
+
17
+ import { GoodDrawingSparks } from './GoodDrawingSparks'
18
+ import { CorrectAnswerSparks } from './CorrectAnswerSparks'
19
+ import { EOABadge } from '../../ui/EOABadge'
20
+ import { SparkIcon } from '../../ui/SparkIcon'
21
+
22
+ import { AnimatedCardVariant, EOAModalText } from '../../types'
23
+ import {
24
+ ANIMATION_DELAYS,
25
+ BADGE_PARAMS,
26
+ CARD_DIMENSIONS,
27
+ OPACITY,
28
+ SPRING_CONFIG,
29
+ SPRING_CONFIG_STEP_3,
30
+ VARIANT_COLORS,
31
+ } from '../../constants'
32
+ import { CelebrationsRef, CelebrationVariant } from '../../../celebrations/types'
33
+ import { Celebrations } from '../../../celebrations/components/Celebrations'
34
+
35
+ type AnimatedCardProps = {
36
+ variant: AnimatedCardVariant
37
+ textContent: EOAModalText
38
+ shouldTriggerSparkles: boolean
39
+ solvedAmount?: number
40
+ problemsAmount?: number
41
+ gbdAmount?: number
42
+ delay?: number
43
+ onAnimationEnd?: () => void
44
+ }
45
+
46
+ export const AnimatedCard = memo(
47
+ ({
48
+ variant,
49
+ textContent,
50
+ shouldTriggerSparkles,
51
+ solvedAmount = 0,
52
+ problemsAmount = 0,
53
+ gbdAmount = 0,
54
+ delay = 0,
55
+ onAnimationEnd,
56
+ }: AnimatedCardProps) => {
57
+ const celebrationsRef = useRef<CelebrationsRef>(null)
58
+
59
+ const cardOpacity = useSharedValue(OPACITY.initial)
60
+ const cardWidth = useSharedValue(CARD_DIMENSIONS.initialWidth)
61
+ const badgeTranslateX = useSharedValue(BADGE_PARAMS.initialTranslateX)
62
+ const badgeRotation = useSharedValue(BADGE_PARAMS.initialRotation)
63
+ const badgeScale = useSharedValue(BADGE_PARAMS.initialScale)
64
+ const statsOpacity = useSharedValue(OPACITY.initial)
65
+ const delaySv = useSharedValue(0)
66
+
67
+ const animatedCardStyle = useAnimatedStyle(() => {
68
+ const progress = interpolate(
69
+ statsOpacity.value,
70
+ [OPACITY.initial, OPACITY.final],
71
+ [OPACITY.initial, OPACITY.final],
72
+ )
73
+ const backgroundColor = interpolateColor(
74
+ progress,
75
+ [OPACITY.initial, OPACITY.final],
76
+ [VARIANT_COLORS[variant].initial, VARIANT_COLORS[variant].final],
77
+ )
78
+ const height = interpolate(
79
+ cardWidth.value,
80
+ [CARD_DIMENSIONS.initialWidth, CARD_DIMENSIONS.finalWidth],
81
+ [CARD_DIMENSIONS.initialHeight, CARD_DIMENSIONS.finalHeight],
82
+ )
83
+ return {
84
+ opacity: cardOpacity.value,
85
+ width: cardWidth.value,
86
+ height,
87
+ backgroundColor,
88
+ }
89
+ }, [statsOpacity, cardOpacity, cardWidth])
90
+
91
+ const animatedBadgeStyle = useAnimatedStyle(
92
+ () => ({
93
+ transform: [
94
+ { translateX: badgeTranslateX.value },
95
+ { rotate: `${badgeRotation.value}deg` },
96
+ { scale: badgeScale.value },
97
+ ],
98
+ }),
99
+ [badgeTranslateX, badgeRotation, badgeScale],
100
+ )
101
+
102
+ const animatedStatsStyle = useAnimatedStyle(() => {
103
+ return {
104
+ opacity: statsOpacity.value,
105
+ }
106
+ }, [statsOpacity])
107
+
108
+ const statsSubtitle = (() => {
109
+ if (variant === AnimatedCardVariant.CORRECT_ANSWER) {
110
+ if (solvedAmount > 1) {
111
+ return textContent.stats?.correctAnswersPlural
112
+ }
113
+ return textContent.stats?.correctAnswers
114
+ } else {
115
+ if (gbdAmount > 1) {
116
+ return textContent.stats?.goodCalculationsPlural
117
+ }
118
+ return textContent.stats?.goodCalculations
119
+ }
120
+ })()
121
+
122
+ const runCelebration = () => {
123
+ if (variant === AnimatedCardVariant.CORRECT_ANSWER) {
124
+ celebrationsRef.current?.play(CelebrationVariant.CORRECT_FINISH_ASSIGNMENT)
125
+ } else {
126
+ celebrationsRef.current?.play(CelebrationVariant.GBD_FINISH_ASSIGNMENT)
127
+ }
128
+
129
+ onAnimationEnd?.()
130
+ }
131
+
132
+ useEffect(() => {
133
+ runOnUI(() => {
134
+ 'worklet'
135
+ const step3 = () => {
136
+ badgeTranslateX.value = withSpring(BADGE_PARAMS.finalTranslateX, SPRING_CONFIG_STEP_3)
137
+ statsOpacity.value = withDelay(80, withSpring(OPACITY.final, SPRING_CONFIG_STEP_3))
138
+ }
139
+
140
+ const step2 = () => {
141
+ badgeTranslateX.value = withSpring(BADGE_PARAMS.intermediateTranslateX, SPRING_CONFIG)
142
+ cardWidth.value = withSpring(CARD_DIMENSIONS.finalWidth, SPRING_CONFIG)
143
+ badgeRotation.value = withSpring(0, SPRING_CONFIG)
144
+ badgeScale.value = withSpring(1, SPRING_CONFIG, () => {
145
+ delaySv.value = withTiming(1, { duration: ANIMATION_DELAYS.step3 }, () => {
146
+ step3()
147
+
148
+ delaySv.value = withTiming(0, { duration: 100 }, (finished) => {
149
+ if (finished) {
150
+ runOnJS(runCelebration)()
151
+ }
152
+ })
153
+ })
154
+ })
155
+ }
156
+
157
+ const step1 = () => {
158
+ cardOpacity.value = withDelay(
159
+ delay,
160
+ withSpring(OPACITY.final, SPRING_CONFIG, () => {
161
+ step2()
162
+ }),
163
+ )
164
+ }
165
+
166
+ step1()
167
+ })()
168
+ }, [])
169
+
170
+ return (
171
+ <Animated.View style={styles.cardContainer}>
172
+ {variant === AnimatedCardVariant.CORRECT_ANSWER ? (
173
+ <CorrectAnswerSparks
174
+ color={COLORS.GREEN_3}
175
+ shouldStartAnimation={shouldTriggerSparkles}
176
+ />
177
+ ) : (
178
+ <GoodDrawingSparks color={COLORS.ORANGE_3} shouldStartAnimation={shouldTriggerSparkles} />
179
+ )}
180
+ <Celebrations modelRef={celebrationsRef} style={styles.celebrations} />
181
+
182
+ <Animated.View style={[styles.card, animatedCardStyle]}>
183
+ <Animated.View style={styles.cardContent}>
184
+ <Animated.View style={[styles.badgeContainer, animatedBadgeStyle]}>
185
+ <EOABadge
186
+ variant={variant}
187
+ color={VARIANT_COLORS[variant].primary}
188
+ size={88}
189
+ iconSize={56}
190
+ />
191
+ </Animated.View>
192
+
193
+ <Animated.View style={[styles.statsWrapper, animatedStatsStyle]}>
194
+ {variant === AnimatedCardVariant.GOOD_DRAWING && (
195
+ <View style={styles.starContainer}>
196
+ <SparkIcon size={20} color={VARIANT_COLORS[variant].initial} />
197
+ <View style={styles.starCircle} />
198
+ <SparkIcon size={12} color={VARIANT_COLORS[variant].initial} />
199
+ </View>
200
+ )}
201
+
202
+ <View style={styles.statsValueContainer}>
203
+ <Typography
204
+ variant="h1"
205
+ style={[styles.largeText, { color: VARIANT_COLORS[variant].primary }]}
206
+ >
207
+ {variant === AnimatedCardVariant.CORRECT_ANSWER ? solvedAmount : gbdAmount}
208
+ </Typography>
209
+ {variant === AnimatedCardVariant.CORRECT_ANSWER && (
210
+ <Typography variant="h5" style={styles.smallText}>
211
+ /{problemsAmount}
212
+ </Typography>
213
+ )}
214
+ </View>
215
+
216
+ <Typography variant="h3" style={styles.cardTitle}>
217
+ {statsSubtitle}
218
+ </Typography>
219
+ </Animated.View>
220
+ </Animated.View>
221
+ </Animated.View>
222
+ </Animated.View>
223
+ )
224
+ },
225
+ )
226
+
227
+ const styles = StyleSheet.create({
228
+ cardContainer: {
229
+ height: CARD_DIMENSIONS.finalHeight,
230
+ width: CARD_DIMENSIONS.finalWidth,
231
+ justifyContent: 'center',
232
+ alignItems: 'center',
233
+ },
234
+ card: {
235
+ padding: SPACING[200],
236
+ borderRadius: SPACING[400],
237
+ },
238
+ cardContent: {
239
+ flex: 1,
240
+ gap: SPACING[100],
241
+ borderRadius: BORDER_RADIUS[200],
242
+ flexDirection: 'row',
243
+ alignItems: 'center',
244
+ backgroundColor: COLORS.NEUTRAL_1,
245
+ },
246
+ badgeContainer: {
247
+ borderRadius: BORDER_RADIUS[400],
248
+ marginRight: 50,
249
+ },
250
+ statsWrapper: {
251
+ padding: SPACING[100],
252
+ gap: SPACING[100],
253
+ },
254
+ statsValueContainer: {
255
+ flexDirection: 'row',
256
+ height: IS_MOBILE ? 42 : 'auto',
257
+ paddingHorizontal: SPACING[100],
258
+ marginVertical: SPACING[100],
259
+ },
260
+ largeText: {
261
+ textAlign: 'center',
262
+ textAlignVertical: 'bottom',
263
+ fontSize: IS_MOBILE ? 56 : 60,
264
+ fontWeight: '700',
265
+ lineHeight: IS_MOBILE ? 54 : 46,
266
+ },
267
+ smallText: {
268
+ fontSize: 16,
269
+ fontWeight: '700',
270
+ lineHeight: 16,
271
+ color: COLORS.NEUTRAL_6,
272
+ alignSelf: 'flex-end',
273
+ },
274
+ cardTitle: {
275
+ color: COLORS.NEUTRAL_7,
276
+ padding: SPACING[100],
277
+ },
278
+ starContainer: {
279
+ position: 'absolute',
280
+ left: 55,
281
+ top: 10,
282
+ },
283
+ starCircle: {
284
+ width: 4,
285
+ height: 4,
286
+ borderRadius: 5,
287
+ backgroundColor: COLORS.ORANGE_2,
288
+ },
289
+ celebrations: {
290
+ top: 0,
291
+ zIndex: 100000,
292
+ },
293
+ })