@magmamath/students-features 1.3.26-rc.9 → 1.3.26

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 (544) hide show
  1. package/dist/commonjs/features/chatbot/helpers.js +3 -0
  2. package/dist/commonjs/features/chatbot/helpers.js.map +1 -1
  3. package/dist/commonjs/index.js +0 -12
  4. package/dist/commonjs/index.js.map +1 -1
  5. package/dist/commonjs/lib/constants.js +0 -1
  6. package/dist/commonjs/lib/constants.js.map +1 -1
  7. package/dist/module/features/chatbot/helpers.js +3 -0
  8. package/dist/module/features/chatbot/helpers.js.map +1 -1
  9. package/dist/module/index.js +0 -1
  10. package/dist/module/index.js.map +1 -1
  11. package/dist/module/lib/constants.js +0 -1
  12. package/dist/module/lib/constants.js.map +1 -1
  13. package/dist/typescript/commonjs/features/chatbot/helpers.d.ts.map +1 -1
  14. package/dist/typescript/commonjs/index.d.ts +0 -1
  15. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  16. package/dist/typescript/commonjs/lib/constants.d.ts +1 -2
  17. package/dist/typescript/commonjs/lib/constants.d.ts.map +1 -1
  18. package/dist/typescript/module/features/chatbot/helpers.d.ts.map +1 -1
  19. package/dist/typescript/module/index.d.ts +0 -1
  20. package/dist/typescript/module/index.d.ts.map +1 -1
  21. package/dist/typescript/module/lib/constants.d.ts +1 -2
  22. package/dist/typescript/module/lib/constants.d.ts.map +1 -1
  23. package/package.json +1 -3
  24. package/src/features/chatbot/helpers.ts +1 -0
  25. package/src/i18n/.generated/schema.json +2 -10
  26. package/src/index.ts +0 -1
  27. package/src/lib/constants.ts +2 -3
  28. package/src/types/types.d.ts +0 -5
  29. package/dist/commonjs/features/fluency/assets/DivideIcon.js +0 -32
  30. package/dist/commonjs/features/fluency/assets/DivideIcon.js.map +0 -1
  31. package/dist/commonjs/features/fluency/assets/FlameIcon.js +0 -30
  32. package/dist/commonjs/features/fluency/assets/FlameIcon.js.map +0 -1
  33. package/dist/commonjs/features/fluency/assets/FlashIcon.js +0 -30
  34. package/dist/commonjs/features/fluency/assets/FlashIcon.js.map +0 -1
  35. package/dist/commonjs/features/fluency/assets/SnurrisnurrBg.js +0 -231
  36. package/dist/commonjs/features/fluency/assets/SnurrisnurrBg.js.map +0 -1
  37. package/dist/commonjs/features/fluency/assets/SparkleIcon.js +0 -30
  38. package/dist/commonjs/features/fluency/assets/SparkleIcon.js.map +0 -1
  39. package/dist/commonjs/features/fluency/assets/StarFillIcon.js +0 -31
  40. package/dist/commonjs/features/fluency/assets/StarFillIcon.js.map +0 -1
  41. package/dist/commonjs/features/fluency/assets/TrophyBg.js +0 -41
  42. package/dist/commonjs/features/fluency/assets/TrophyBg.js.map +0 -1
  43. package/dist/commonjs/features/fluency/assets/success.mp3 +0 -0
  44. package/dist/commonjs/features/fluency/components/Fluency.js +0 -81
  45. package/dist/commonjs/features/fluency/components/Fluency.js.map +0 -1
  46. package/dist/commonjs/features/fluency/components/FluencySolving.js +0 -46
  47. package/dist/commonjs/features/fluency/components/FluencySolving.js.map +0 -1
  48. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js +0 -96
  49. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js.map +0 -1
  50. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js +0 -76
  51. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +0 -1
  52. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js +0 -153
  53. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js.map +0 -1
  54. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +0 -113
  55. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +0 -1
  56. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +0 -39
  57. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +0 -1
  58. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js +0 -62
  59. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +0 -1
  60. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.js +0 -79
  61. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +0 -1
  62. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +0 -72
  63. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +0 -1
  64. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +0 -93
  65. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +0 -1
  66. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.js +0 -69
  67. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.js.map +0 -1
  68. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js +0 -29
  69. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +0 -1
  70. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js +0 -86
  71. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +0 -1
  72. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js +0 -6
  73. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js.map +0 -1
  74. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js +0 -36
  75. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js.map +0 -1
  76. package/dist/commonjs/features/fluency/components/matrix/components/CellTooltip.js +0 -56
  77. package/dist/commonjs/features/fluency/components/matrix/components/CellTooltip.js.map +0 -1
  78. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js +0 -98
  79. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js.map +0 -1
  80. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js +0 -53
  81. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js.map +0 -1
  82. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js +0 -104
  83. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js.map +0 -1
  84. package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js +0 -38
  85. package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js.map +0 -1
  86. package/dist/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.js +0 -43
  87. package/dist/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.js.map +0 -1
  88. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBar.js +0 -86
  89. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBar.js.map +0 -1
  90. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBarSparkles.js +0 -127
  91. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBarSparkles.js.map +0 -1
  92. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js +0 -73
  93. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map +0 -1
  94. package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js +0 -202
  95. package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js.map +0 -1
  96. package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js +0 -77
  97. package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js.map +0 -1
  98. package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js +0 -113
  99. package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js.map +0 -1
  100. package/dist/commonjs/features/fluency/components/start-banner/BannerFlashcards.js +0 -80
  101. package/dist/commonjs/features/fluency/components/start-banner/BannerFlashcards.js.map +0 -1
  102. package/dist/commonjs/features/fluency/components/start-banner/MathFlashcard.js +0 -74
  103. package/dist/commonjs/features/fluency/components/start-banner/MathFlashcard.js.map +0 -1
  104. package/dist/commonjs/features/fluency/components/start-banner/StartBanner.js +0 -134
  105. package/dist/commonjs/features/fluency/components/start-banner/StartBanner.js.map +0 -1
  106. package/dist/commonjs/features/fluency/context/FluencyContext.js +0 -16
  107. package/dist/commonjs/features/fluency/context/FluencyContext.js.map +0 -1
  108. package/dist/commonjs/features/fluency/fluency.constants.js +0 -99
  109. package/dist/commonjs/features/fluency/fluency.constants.js.map +0 -1
  110. package/dist/commonjs/features/fluency/fluency.helpers.js +0 -103
  111. package/dist/commonjs/features/fluency/fluency.helpers.js.map +0 -1
  112. package/dist/commonjs/features/fluency/fluency.types.js +0 -6
  113. package/dist/commonjs/features/fluency/fluency.types.js.map +0 -1
  114. package/dist/commonjs/features/fluency/hooks/useCardSnapAnimation.js +0 -157
  115. package/dist/commonjs/features/fluency/hooks/useCardSnapAnimation.js.map +0 -1
  116. package/dist/commonjs/features/fluency/hooks/useFluencyCardDeckAnimation.js +0 -44
  117. package/dist/commonjs/features/fluency/hooks/useFluencyCardDeckAnimation.js.map +0 -1
  118. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js +0 -51
  119. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js.map +0 -1
  120. package/dist/commonjs/features/fluency/hooks/useFluencyNumpad.js +0 -168
  121. package/dist/commonjs/features/fluency/hooks/useFluencyNumpad.js.map +0 -1
  122. package/dist/commonjs/features/fluency/hooks/useFluencySolvingPreset.js +0 -57
  123. package/dist/commonjs/features/fluency/hooks/useFluencySolvingPreset.js.map +0 -1
  124. package/dist/commonjs/features/fluency/hooks/usePreventPageLeave.js +0 -18
  125. package/dist/commonjs/features/fluency/hooks/usePreventPageLeave.js.map +0 -1
  126. package/dist/commonjs/features/fluency/hooks/usePreventWebKeys.js +0 -26
  127. package/dist/commonjs/features/fluency/hooks/usePreventWebKeys.js.map +0 -1
  128. package/dist/commonjs/features/fluency/hooks/useSuccessSound.js +0 -27
  129. package/dist/commonjs/features/fluency/hooks/useSuccessSound.js.map +0 -1
  130. package/dist/commonjs/features/fluency/index.js +0 -68
  131. package/dist/commonjs/features/fluency/index.js.map +0 -1
  132. package/dist/commonjs/features/fluency/model/FluencyApiModel.js +0 -16
  133. package/dist/commonjs/features/fluency/model/FluencyApiModel.js.map +0 -1
  134. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js +0 -16
  135. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js.map +0 -1
  136. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js +0 -23
  137. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js.map +0 -1
  138. package/dist/commonjs/features/fluency/model/FluencyModel.js +0 -64
  139. package/dist/commonjs/features/fluency/model/FluencyModel.js.map +0 -1
  140. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js +0 -151
  141. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +0 -1
  142. package/dist/commonjs/lib/components/GradientView.js +0 -57
  143. package/dist/commonjs/lib/components/GradientView.js.map +0 -1
  144. package/dist/module/features/fluency/assets/DivideIcon.js +0 -24
  145. package/dist/module/features/fluency/assets/DivideIcon.js.map +0 -1
  146. package/dist/module/features/fluency/assets/FlameIcon.js +0 -22
  147. package/dist/module/features/fluency/assets/FlameIcon.js.map +0 -1
  148. package/dist/module/features/fluency/assets/FlashIcon.js +0 -22
  149. package/dist/module/features/fluency/assets/FlashIcon.js.map +0 -1
  150. package/dist/module/features/fluency/assets/SnurrisnurrBg.js +0 -224
  151. package/dist/module/features/fluency/assets/SnurrisnurrBg.js.map +0 -1
  152. package/dist/module/features/fluency/assets/SparkleIcon.js +0 -22
  153. package/dist/module/features/fluency/assets/SparkleIcon.js.map +0 -1
  154. package/dist/module/features/fluency/assets/StarFillIcon.js +0 -23
  155. package/dist/module/features/fluency/assets/StarFillIcon.js.map +0 -1
  156. package/dist/module/features/fluency/assets/TrophyBg.js +0 -33
  157. package/dist/module/features/fluency/assets/TrophyBg.js.map +0 -1
  158. package/dist/module/features/fluency/assets/success.mp3 +0 -0
  159. package/dist/module/features/fluency/components/Fluency.js +0 -75
  160. package/dist/module/features/fluency/components/Fluency.js.map +0 -1
  161. package/dist/module/features/fluency/components/FluencySolving.js +0 -40
  162. package/dist/module/features/fluency/components/FluencySolving.js.map +0 -1
  163. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js +0 -90
  164. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js.map +0 -1
  165. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js +0 -70
  166. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +0 -1
  167. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js +0 -146
  168. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js.map +0 -1
  169. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +0 -107
  170. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +0 -1
  171. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +0 -33
  172. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +0 -1
  173. package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js +0 -56
  174. package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +0 -1
  175. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js +0 -73
  176. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +0 -1
  177. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +0 -66
  178. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +0 -1
  179. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +0 -87
  180. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +0 -1
  181. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.js +0 -62
  182. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.js.map +0 -1
  183. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js +0 -25
  184. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +0 -1
  185. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js +0 -76
  186. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +0 -1
  187. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js +0 -4
  188. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js.map +0 -1
  189. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js +0 -30
  190. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js.map +0 -1
  191. package/dist/module/features/fluency/components/matrix/components/CellTooltip.js +0 -50
  192. package/dist/module/features/fluency/components/matrix/components/CellTooltip.js.map +0 -1
  193. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js +0 -91
  194. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js.map +0 -1
  195. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js +0 -47
  196. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js.map +0 -1
  197. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js +0 -98
  198. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js.map +0 -1
  199. package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js +0 -32
  200. package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js.map +0 -1
  201. package/dist/module/features/fluency/components/select-math-operator/MathOperatorRow.js +0 -37
  202. package/dist/module/features/fluency/components/select-math-operator/MathOperatorRow.js.map +0 -1
  203. package/dist/module/features/fluency/components/select-math-operator/ProgressBar.js +0 -80
  204. package/dist/module/features/fluency/components/select-math-operator/ProgressBar.js.map +0 -1
  205. package/dist/module/features/fluency/components/select-math-operator/ProgressBarSparkles.js +0 -121
  206. package/dist/module/features/fluency/components/select-math-operator/ProgressBarSparkles.js.map +0 -1
  207. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js +0 -67
  208. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js.map +0 -1
  209. package/dist/module/features/fluency/components/session-results/FluencySessionResults.js +0 -195
  210. package/dist/module/features/fluency/components/session-results/FluencySessionResults.js.map +0 -1
  211. package/dist/module/features/fluency/components/session-results/SessionStatCard.js +0 -71
  212. package/dist/module/features/fluency/components/session-results/SessionStatCard.js.map +0 -1
  213. package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js +0 -107
  214. package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js.map +0 -1
  215. package/dist/module/features/fluency/components/start-banner/BannerFlashcards.js +0 -74
  216. package/dist/module/features/fluency/components/start-banner/BannerFlashcards.js.map +0 -1
  217. package/dist/module/features/fluency/components/start-banner/MathFlashcard.js +0 -68
  218. package/dist/module/features/fluency/components/start-banner/MathFlashcard.js.map +0 -1
  219. package/dist/module/features/fluency/components/start-banner/StartBanner.js +0 -128
  220. package/dist/module/features/fluency/components/start-banner/StartBanner.js.map +0 -1
  221. package/dist/module/features/fluency/context/FluencyContext.js +0 -11
  222. package/dist/module/features/fluency/context/FluencyContext.js.map +0 -1
  223. package/dist/module/features/fluency/fluency.constants.js +0 -95
  224. package/dist/module/features/fluency/fluency.constants.js.map +0 -1
  225. package/dist/module/features/fluency/fluency.helpers.js +0 -96
  226. package/dist/module/features/fluency/fluency.helpers.js.map +0 -1
  227. package/dist/module/features/fluency/fluency.types.js +0 -4
  228. package/dist/module/features/fluency/fluency.types.js.map +0 -1
  229. package/dist/module/features/fluency/hooks/useCardSnapAnimation.js +0 -152
  230. package/dist/module/features/fluency/hooks/useCardSnapAnimation.js.map +0 -1
  231. package/dist/module/features/fluency/hooks/useFluencyCardDeckAnimation.js +0 -39
  232. package/dist/module/features/fluency/hooks/useFluencyCardDeckAnimation.js.map +0 -1
  233. package/dist/module/features/fluency/hooks/useFluencyModePreset.js +0 -46
  234. package/dist/module/features/fluency/hooks/useFluencyModePreset.js.map +0 -1
  235. package/dist/module/features/fluency/hooks/useFluencyNumpad.js +0 -162
  236. package/dist/module/features/fluency/hooks/useFluencyNumpad.js.map +0 -1
  237. package/dist/module/features/fluency/hooks/useFluencySolvingPreset.js +0 -52
  238. package/dist/module/features/fluency/hooks/useFluencySolvingPreset.js.map +0 -1
  239. package/dist/module/features/fluency/hooks/usePreventPageLeave.js +0 -13
  240. package/dist/module/features/fluency/hooks/usePreventPageLeave.js.map +0 -1
  241. package/dist/module/features/fluency/hooks/usePreventWebKeys.js +0 -21
  242. package/dist/module/features/fluency/hooks/usePreventWebKeys.js.map +0 -1
  243. package/dist/module/features/fluency/hooks/useSuccessSound.js +0 -21
  244. package/dist/module/features/fluency/hooks/useSuccessSound.js.map +0 -1
  245. package/dist/module/features/fluency/index.js +0 -9
  246. package/dist/module/features/fluency/index.js.map +0 -1
  247. package/dist/module/features/fluency/model/FluencyApiModel.js +0 -11
  248. package/dist/module/features/fluency/model/FluencyApiModel.js.map +0 -1
  249. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js +0 -11
  250. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js.map +0 -1
  251. package/dist/module/features/fluency/model/FluencyMatrixModel.js +0 -18
  252. package/dist/module/features/fluency/model/FluencyMatrixModel.js.map +0 -1
  253. package/dist/module/features/fluency/model/FluencyModel.js +0 -59
  254. package/dist/module/features/fluency/model/FluencyModel.js.map +0 -1
  255. package/dist/module/features/fluency/model/FluencySolvingModel.js +0 -146
  256. package/dist/module/features/fluency/model/FluencySolvingModel.js.map +0 -1
  257. package/dist/module/lib/components/GradientView.js +0 -51
  258. package/dist/module/lib/components/GradientView.js.map +0 -1
  259. package/dist/typescript/commonjs/features/fluency/assets/DivideIcon.d.ts +0 -8
  260. package/dist/typescript/commonjs/features/fluency/assets/DivideIcon.d.ts.map +0 -1
  261. package/dist/typescript/commonjs/features/fluency/assets/FlameIcon.d.ts +0 -4
  262. package/dist/typescript/commonjs/features/fluency/assets/FlameIcon.d.ts.map +0 -1
  263. package/dist/typescript/commonjs/features/fluency/assets/FlashIcon.d.ts +0 -4
  264. package/dist/typescript/commonjs/features/fluency/assets/FlashIcon.d.ts.map +0 -1
  265. package/dist/typescript/commonjs/features/fluency/assets/SnurrisnurrBg.d.ts +0 -3
  266. package/dist/typescript/commonjs/features/fluency/assets/SnurrisnurrBg.d.ts.map +0 -1
  267. package/dist/typescript/commonjs/features/fluency/assets/SparkleIcon.d.ts +0 -4
  268. package/dist/typescript/commonjs/features/fluency/assets/SparkleIcon.d.ts.map +0 -1
  269. package/dist/typescript/commonjs/features/fluency/assets/StarFillIcon.d.ts +0 -7
  270. package/dist/typescript/commonjs/features/fluency/assets/StarFillIcon.d.ts.map +0 -1
  271. package/dist/typescript/commonjs/features/fluency/assets/TrophyBg.d.ts +0 -3
  272. package/dist/typescript/commonjs/features/fluency/assets/TrophyBg.d.ts.map +0 -1
  273. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts +0 -15
  274. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts.map +0 -1
  275. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts +0 -10
  276. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts.map +0 -1
  277. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts +0 -9
  278. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +0 -1
  279. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts +0 -3
  280. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +0 -1
  281. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts +0 -15
  282. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +0 -1
  283. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts +0 -14
  284. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +0 -1
  285. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +0 -12
  286. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +0 -1
  287. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts +0 -7
  288. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +0 -1
  289. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts +0 -3
  290. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +0 -1
  291. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts +0 -7
  292. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +0 -1
  293. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +0 -3
  294. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +0 -1
  295. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.d.ts +0 -3
  296. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.d.ts.map +0 -1
  297. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +0 -5
  298. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +0 -1
  299. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +0 -17
  300. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +0 -1
  301. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +0 -34
  302. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +0 -1
  303. package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts +0 -3
  304. package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts.map +0 -1
  305. package/dist/typescript/commonjs/features/fluency/components/matrix/components/CellTooltip.d.ts +0 -7
  306. package/dist/typescript/commonjs/features/fluency/components/matrix/components/CellTooltip.d.ts.map +0 -1
  307. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts +0 -11
  308. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts.map +0 -1
  309. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts +0 -3
  310. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts.map +0 -1
  311. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixLegend.d.ts +0 -3
  312. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixLegend.d.ts.map +0 -1
  313. package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts +0 -7
  314. package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +0 -1
  315. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.d.ts +0 -13
  316. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.d.ts.map +0 -1
  317. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBar.d.ts +0 -8
  318. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBar.d.ts.map +0 -1
  319. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBarSparkles.d.ts +0 -6
  320. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBarSparkles.d.ts.map +0 -1
  321. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts +0 -3
  322. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +0 -1
  323. package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts +0 -8
  324. package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts.map +0 -1
  325. package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts +0 -10
  326. package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts.map +0 -1
  327. package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts +0 -15
  328. package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +0 -1
  329. package/dist/typescript/commonjs/features/fluency/components/start-banner/BannerFlashcards.d.ts +0 -11
  330. package/dist/typescript/commonjs/features/fluency/components/start-banner/BannerFlashcards.d.ts.map +0 -1
  331. package/dist/typescript/commonjs/features/fluency/components/start-banner/MathFlashcard.d.ts +0 -28
  332. package/dist/typescript/commonjs/features/fluency/components/start-banner/MathFlashcard.d.ts.map +0 -1
  333. package/dist/typescript/commonjs/features/fluency/components/start-banner/StartBanner.d.ts +0 -3
  334. package/dist/typescript/commonjs/features/fluency/components/start-banner/StartBanner.d.ts.map +0 -1
  335. package/dist/typescript/commonjs/features/fluency/context/FluencyContext.d.ts +0 -11
  336. package/dist/typescript/commonjs/features/fluency/context/FluencyContext.d.ts.map +0 -1
  337. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +0 -42
  338. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +0 -1
  339. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts +0 -14
  340. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts.map +0 -1
  341. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts +0 -106
  342. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts.map +0 -1
  343. package/dist/typescript/commonjs/features/fluency/hooks/useCardSnapAnimation.d.ts +0 -19
  344. package/dist/typescript/commonjs/features/fluency/hooks/useCardSnapAnimation.d.ts.map +0 -1
  345. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyCardDeckAnimation.d.ts +0 -16
  346. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyCardDeckAnimation.d.ts.map +0 -1
  347. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts +0 -22
  348. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts.map +0 -1
  349. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts +0 -53
  350. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts.map +0 -1
  351. package/dist/typescript/commonjs/features/fluency/hooks/useFluencySolvingPreset.d.ts +0 -25
  352. package/dist/typescript/commonjs/features/fluency/hooks/useFluencySolvingPreset.d.ts.map +0 -1
  353. package/dist/typescript/commonjs/features/fluency/hooks/usePreventPageLeave.d.ts +0 -2
  354. package/dist/typescript/commonjs/features/fluency/hooks/usePreventPageLeave.d.ts.map +0 -1
  355. package/dist/typescript/commonjs/features/fluency/hooks/usePreventWebKeys.d.ts +0 -9
  356. package/dist/typescript/commonjs/features/fluency/hooks/usePreventWebKeys.d.ts.map +0 -1
  357. package/dist/typescript/commonjs/features/fluency/hooks/useSuccessSound.d.ts +0 -4
  358. package/dist/typescript/commonjs/features/fluency/hooks/useSuccessSound.d.ts.map +0 -1
  359. package/dist/typescript/commonjs/features/fluency/index.d.ts +0 -7
  360. package/dist/typescript/commonjs/features/fluency/index.d.ts.map +0 -1
  361. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts +0 -9
  362. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts.map +0 -1
  363. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts +0 -8
  364. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts.map +0 -1
  365. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts +0 -11
  366. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts.map +0 -1
  367. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts +0 -16
  368. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts.map +0 -1
  369. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts +0 -29
  370. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +0 -1
  371. package/dist/typescript/commonjs/lib/components/GradientView.d.ts +0 -18
  372. package/dist/typescript/commonjs/lib/components/GradientView.d.ts.map +0 -1
  373. package/dist/typescript/module/features/fluency/assets/DivideIcon.d.ts +0 -8
  374. package/dist/typescript/module/features/fluency/assets/DivideIcon.d.ts.map +0 -1
  375. package/dist/typescript/module/features/fluency/assets/FlameIcon.d.ts +0 -4
  376. package/dist/typescript/module/features/fluency/assets/FlameIcon.d.ts.map +0 -1
  377. package/dist/typescript/module/features/fluency/assets/FlashIcon.d.ts +0 -4
  378. package/dist/typescript/module/features/fluency/assets/FlashIcon.d.ts.map +0 -1
  379. package/dist/typescript/module/features/fluency/assets/SnurrisnurrBg.d.ts +0 -3
  380. package/dist/typescript/module/features/fluency/assets/SnurrisnurrBg.d.ts.map +0 -1
  381. package/dist/typescript/module/features/fluency/assets/SparkleIcon.d.ts +0 -4
  382. package/dist/typescript/module/features/fluency/assets/SparkleIcon.d.ts.map +0 -1
  383. package/dist/typescript/module/features/fluency/assets/StarFillIcon.d.ts +0 -7
  384. package/dist/typescript/module/features/fluency/assets/StarFillIcon.d.ts.map +0 -1
  385. package/dist/typescript/module/features/fluency/assets/TrophyBg.d.ts +0 -3
  386. package/dist/typescript/module/features/fluency/assets/TrophyBg.d.ts.map +0 -1
  387. package/dist/typescript/module/features/fluency/components/Fluency.d.ts +0 -15
  388. package/dist/typescript/module/features/fluency/components/Fluency.d.ts.map +0 -1
  389. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts +0 -10
  390. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts.map +0 -1
  391. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts +0 -9
  392. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +0 -1
  393. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts +0 -3
  394. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +0 -1
  395. package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts +0 -15
  396. package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +0 -1
  397. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts +0 -14
  398. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +0 -1
  399. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +0 -12
  400. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +0 -1
  401. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts +0 -7
  402. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +0 -1
  403. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts +0 -3
  404. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +0 -1
  405. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts +0 -7
  406. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +0 -1
  407. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +0 -3
  408. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +0 -1
  409. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.d.ts +0 -3
  410. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.d.ts.map +0 -1
  411. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +0 -5
  412. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +0 -1
  413. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +0 -17
  414. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +0 -1
  415. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +0 -34
  416. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +0 -1
  417. package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts +0 -3
  418. package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts.map +0 -1
  419. package/dist/typescript/module/features/fluency/components/matrix/components/CellTooltip.d.ts +0 -7
  420. package/dist/typescript/module/features/fluency/components/matrix/components/CellTooltip.d.ts.map +0 -1
  421. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts +0 -11
  422. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts.map +0 -1
  423. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts +0 -3
  424. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts.map +0 -1
  425. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixLegend.d.ts +0 -3
  426. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixLegend.d.ts.map +0 -1
  427. package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts +0 -7
  428. package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +0 -1
  429. package/dist/typescript/module/features/fluency/components/select-math-operator/MathOperatorRow.d.ts +0 -13
  430. package/dist/typescript/module/features/fluency/components/select-math-operator/MathOperatorRow.d.ts.map +0 -1
  431. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBar.d.ts +0 -8
  432. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBar.d.ts.map +0 -1
  433. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBarSparkles.d.ts +0 -6
  434. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBarSparkles.d.ts.map +0 -1
  435. package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts +0 -3
  436. package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +0 -1
  437. package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts +0 -8
  438. package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts.map +0 -1
  439. package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts +0 -10
  440. package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts.map +0 -1
  441. package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts +0 -15
  442. package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +0 -1
  443. package/dist/typescript/module/features/fluency/components/start-banner/BannerFlashcards.d.ts +0 -11
  444. package/dist/typescript/module/features/fluency/components/start-banner/BannerFlashcards.d.ts.map +0 -1
  445. package/dist/typescript/module/features/fluency/components/start-banner/MathFlashcard.d.ts +0 -28
  446. package/dist/typescript/module/features/fluency/components/start-banner/MathFlashcard.d.ts.map +0 -1
  447. package/dist/typescript/module/features/fluency/components/start-banner/StartBanner.d.ts +0 -3
  448. package/dist/typescript/module/features/fluency/components/start-banner/StartBanner.d.ts.map +0 -1
  449. package/dist/typescript/module/features/fluency/context/FluencyContext.d.ts +0 -11
  450. package/dist/typescript/module/features/fluency/context/FluencyContext.d.ts.map +0 -1
  451. package/dist/typescript/module/features/fluency/fluency.constants.d.ts +0 -42
  452. package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +0 -1
  453. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts +0 -14
  454. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts.map +0 -1
  455. package/dist/typescript/module/features/fluency/fluency.types.d.ts +0 -106
  456. package/dist/typescript/module/features/fluency/fluency.types.d.ts.map +0 -1
  457. package/dist/typescript/module/features/fluency/hooks/useCardSnapAnimation.d.ts +0 -19
  458. package/dist/typescript/module/features/fluency/hooks/useCardSnapAnimation.d.ts.map +0 -1
  459. package/dist/typescript/module/features/fluency/hooks/useFluencyCardDeckAnimation.d.ts +0 -16
  460. package/dist/typescript/module/features/fluency/hooks/useFluencyCardDeckAnimation.d.ts.map +0 -1
  461. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts +0 -22
  462. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts.map +0 -1
  463. package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts +0 -53
  464. package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts.map +0 -1
  465. package/dist/typescript/module/features/fluency/hooks/useFluencySolvingPreset.d.ts +0 -25
  466. package/dist/typescript/module/features/fluency/hooks/useFluencySolvingPreset.d.ts.map +0 -1
  467. package/dist/typescript/module/features/fluency/hooks/usePreventPageLeave.d.ts +0 -2
  468. package/dist/typescript/module/features/fluency/hooks/usePreventPageLeave.d.ts.map +0 -1
  469. package/dist/typescript/module/features/fluency/hooks/usePreventWebKeys.d.ts +0 -9
  470. package/dist/typescript/module/features/fluency/hooks/usePreventWebKeys.d.ts.map +0 -1
  471. package/dist/typescript/module/features/fluency/hooks/useSuccessSound.d.ts +0 -4
  472. package/dist/typescript/module/features/fluency/hooks/useSuccessSound.d.ts.map +0 -1
  473. package/dist/typescript/module/features/fluency/index.d.ts +0 -7
  474. package/dist/typescript/module/features/fluency/index.d.ts.map +0 -1
  475. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts +0 -9
  476. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts.map +0 -1
  477. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts +0 -8
  478. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts.map +0 -1
  479. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts +0 -11
  480. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts.map +0 -1
  481. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts +0 -16
  482. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts.map +0 -1
  483. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts +0 -29
  484. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +0 -1
  485. package/dist/typescript/module/lib/components/GradientView.d.ts +0 -18
  486. package/dist/typescript/module/lib/components/GradientView.d.ts.map +0 -1
  487. package/src/features/fluency/assets/DivideIcon.tsx +0 -21
  488. package/src/features/fluency/assets/FlameIcon.tsx +0 -14
  489. package/src/features/fluency/assets/FlashIcon.tsx +0 -14
  490. package/src/features/fluency/assets/SnurrisnurrBg.tsx +0 -193
  491. package/src/features/fluency/assets/SparkleIcon.tsx +0 -14
  492. package/src/features/fluency/assets/StarFillIcon.tsx +0 -20
  493. package/src/features/fluency/assets/TrophyBg.tsx +0 -32
  494. package/src/features/fluency/assets/success.mp3 +0 -0
  495. package/src/features/fluency/components/Fluency.tsx +0 -78
  496. package/src/features/fluency/components/FluencySolving.tsx +0 -39
  497. package/src/features/fluency/components/day-streak-counter/DayStreak.tsx +0 -86
  498. package/src/features/fluency/components/day-streak-counter/DayStreakCounter.tsx +0 -84
  499. package/src/features/fluency/components/fluency-solving/components/EquationContent.tsx +0 -140
  500. package/src/features/fluency/components/fluency-solving/components/FluencyCardDeck.tsx +0 -128
  501. package/src/features/fluency/components/fluency-solving/components/FluencyEquationCard.tsx +0 -51
  502. package/src/features/fluency/components/fluency-solving/components/FluencyNumpad.tsx +0 -54
  503. package/src/features/fluency/components/fluency-solving/components/FluencySolvingCard.tsx +0 -70
  504. package/src/features/fluency/components/fluency-solving/components/FluencySolvingHeader.tsx +0 -74
  505. package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx +0 -87
  506. package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgressDot.tsx +0 -71
  507. package/src/features/fluency/components/fluency-solving/fluencySolving.constants.ts +0 -25
  508. package/src/features/fluency/components/fluency-solving/fluencySolving.helpers.ts +0 -102
  509. package/src/features/fluency/components/fluency-solving/fluencySolving.types.ts +0 -37
  510. package/src/features/fluency/components/matrix/FluencyMatrix.tsx +0 -30
  511. package/src/features/fluency/components/matrix/components/CellTooltip.tsx +0 -46
  512. package/src/features/fluency/components/matrix/components/MatrixCell.tsx +0 -101
  513. package/src/features/fluency/components/matrix/components/MatrixFill.tsx +0 -53
  514. package/src/features/fluency/components/matrix/components/MatrixLegend.tsx +0 -101
  515. package/src/features/fluency/components/mobile-menu/MobileMenu.tsx +0 -29
  516. package/src/features/fluency/components/select-math-operator/MathOperatorRow.tsx +0 -38
  517. package/src/features/fluency/components/select-math-operator/ProgressBar.tsx +0 -81
  518. package/src/features/fluency/components/select-math-operator/ProgressBarSparkles.tsx +0 -114
  519. package/src/features/fluency/components/select-math-operator/SelectMathOperator.tsx +0 -73
  520. package/src/features/fluency/components/session-results/FluencySessionResults.tsx +0 -190
  521. package/src/features/fluency/components/session-results/SessionStatCard.tsx +0 -58
  522. package/src/features/fluency/components/session-results/SkillProgressionRow.tsx +0 -100
  523. package/src/features/fluency/components/start-banner/BannerFlashcards.tsx +0 -45
  524. package/src/features/fluency/components/start-banner/MathFlashcard.tsx +0 -70
  525. package/src/features/fluency/components/start-banner/StartBanner.tsx +0 -124
  526. package/src/features/fluency/context/FluencyContext.ts +0 -20
  527. package/src/features/fluency/fluency.constants.ts +0 -101
  528. package/src/features/fluency/fluency.helpers.ts +0 -100
  529. package/src/features/fluency/fluency.types.ts +0 -125
  530. package/src/features/fluency/hooks/useCardSnapAnimation.ts +0 -170
  531. package/src/features/fluency/hooks/useFluencyCardDeckAnimation.ts +0 -49
  532. package/src/features/fluency/hooks/useFluencyModePreset.ts +0 -46
  533. package/src/features/fluency/hooks/useFluencyNumpad.tsx +0 -139
  534. package/src/features/fluency/hooks/useFluencySolvingPreset.ts +0 -67
  535. package/src/features/fluency/hooks/usePreventPageLeave.ts +0 -11
  536. package/src/features/fluency/hooks/usePreventWebKeys.ts +0 -24
  537. package/src/features/fluency/hooks/useSuccessSound.ts +0 -20
  538. package/src/features/fluency/index.ts +0 -6
  539. package/src/features/fluency/model/FluencyApiModel.ts +0 -21
  540. package/src/features/fluency/model/FluencyDaysStreakModel.ts +0 -11
  541. package/src/features/fluency/model/FluencyMatrixModel.ts +0 -20
  542. package/src/features/fluency/model/FluencyModel.ts +0 -66
  543. package/src/features/fluency/model/FluencySolvingModel.ts +0 -186
  544. package/src/lib/components/GradientView.tsx +0 -63
@@ -1,46 +0,0 @@
1
- import { useUnit } from 'effector-react'
2
- import { COLORS } from '@magmamath/react-native-ui'
3
- import type { ButtonColor } from '@magmamath/react-native-ui'
4
- import { FLUENCY_MODE_PRESETS, FluencyMasteryLevel } from '../fluency.constants'
5
- import type { LegendItem } from '../fluency.types'
6
- import { useFluency } from '../context/FluencyContext'
7
- import { useText } from '../../../i18n/i18n'
8
-
9
- type UseFluencyModePresetResult = {
10
- symbol: string
11
- label: string
12
- colors: {
13
- level: Record<FluencyMasteryLevel, string>
14
- accent: string
15
- streak: { gained: string; todayBorder: string }
16
- button: ButtonColor
17
- }
18
- legend: { items: LegendItem[] }
19
- }
20
-
21
- export const useFluencyModePreset = (): UseFluencyModePresetResult => {
22
- const t = useText()
23
- const { model } = useFluency()
24
- const mode = useUnit(model.matrix.$mode)
25
- const preset = FLUENCY_MODE_PRESETS[mode]
26
-
27
- const legendItems: LegendItem[] = [
28
- { label: t('student.fluency.notStarted'), color: COLORS.NEUTRAL_2, withBorder: true },
29
- { label: t('student.fluency.masteryLearning'), color: preset.matrix.levelColors[FluencyMasteryLevel.LEARNING] },
30
- { label: t('student.fluency.masteryGrowing'), color: preset.matrix.levelColors[FluencyMasteryLevel.GROWING] },
31
- { label: t('student.fluency.masteryStrong'), color: preset.matrix.levelColors[FluencyMasteryLevel.STRONG] },
32
- { label: t('student.fluency.masteryMastered'), color: preset.matrix.levelColors[FluencyMasteryLevel.MASTERED] },
33
- ]
34
-
35
- return {
36
- symbol: preset.symbol,
37
- label: t(preset.matrix.operatorLabel),
38
- colors: {
39
- level: preset.matrix.levelColors,
40
- accent: preset.accentColor,
41
- streak: preset.header.streakColor,
42
- button: preset.buttonColor,
43
- },
44
- legend: { items: legendItems },
45
- }
46
- }
@@ -1,139 +0,0 @@
1
- import React, { useEffect, useRef, useState } from 'react'
2
- import { COLORS } from '@magmamath/react-native-ui'
3
- import { ButtonStates } from '@magmamath/react-native-ui'
4
- import { BackspaceIcon } from '../../../shared/icons/keyboard/BackspaceIcon'
5
- import { useUnit } from 'effector-react'
6
- import { isWeb } from '../../../shared/common.constants'
7
- import { KeyboardKeys } from '../../../lib/constants'
8
- import { useText } from '../../../i18n/i18n'
9
- import { useFluency } from '../context/FluencyContext'
10
- import { MAX_INPUT_LENGTH } from '../fluency.constants'
11
-
12
- type UseFluencyNumpadProps = {
13
- onSubmit: () => void
14
- }
15
-
16
- type NumpadKey = {
17
- key: string
18
- title: string | React.ReactNode
19
- value: number | KeyboardKeys.BACKSPACE | KeyboardKeys.ENTER
20
- customColorScheme?: typeof ACTION_KEY_COLOR_SCHEME
21
- }
22
-
23
- const ACTION_KEY_COLOR_SCHEME = {
24
- [ButtonStates.DEFAULT]: {
25
- backgroundColor: COLORS.NEUTRAL_3,
26
- borderColor: COLORS.NEUTRAL_5,
27
- raiseColor: COLORS.NEUTRAL_5,
28
- color: COLORS.NEUTRAL_9,
29
- },
30
- [ButtonStates.HOVER]: {
31
- backgroundColor: COLORS.NEUTRAL_2,
32
- borderColor: COLORS.NEUTRAL_4,
33
- raiseColor: COLORS.NEUTRAL_4,
34
- color: COLORS.NEUTRAL_9,
35
- },
36
- }
37
-
38
- const NUMPAD_KEYS: NumpadKey[] = [
39
- { key: '1', title: '1', value: 1 },
40
- { key: '2', title: '2', value: 2 },
41
- { key: '3', title: '3', value: 3 },
42
- { key: '4', title: '4', value: 4 },
43
- { key: '5', title: '5', value: 5 },
44
- { key: '6', title: '6', value: 6 },
45
- { key: '7', title: '7', value: 7 },
46
- { key: '8', title: '8', value: 8 },
47
- { key: '9', title: '9', value: 9 },
48
- {
49
- key: KeyboardKeys.BACKSPACE,
50
- title: <BackspaceIcon size={20} color={COLORS.NEUTRAL_9} />,
51
- value: KeyboardKeys.BACKSPACE,
52
- customColorScheme: ACTION_KEY_COLOR_SCHEME,
53
- },
54
- { key: '0', title: '0', value: 0 },
55
- {
56
- key: KeyboardKeys.ENTER,
57
- title: 'Enter',
58
- value: KeyboardKeys.ENTER,
59
- customColorScheme: ACTION_KEY_COLOR_SCHEME,
60
- },
61
- ]
62
-
63
- const ENTER_COLOR_SCHEME = {
64
- [ButtonStates.DEFAULT]: {
65
- backgroundColor: COLORS.PRIMARY_GREEN,
66
- borderColor: COLORS.GREEN_6,
67
- raiseColor: COLORS.GREEN_6,
68
- color: COLORS.NEUTRAL_1,
69
- },
70
- [ButtonStates.HOVER]: {
71
- backgroundColor: COLORS.PRIMARY_GREEN,
72
- borderColor: COLORS.GREEN_6,
73
- raiseColor: COLORS.GREEN_6,
74
- color: COLORS.NEUTRAL_1,
75
- },
76
- [ButtonStates.PRESSED]: {
77
- backgroundColor: COLORS.PRIMARY_GREEN,
78
- borderColor: COLORS.GREEN_6,
79
- raiseColor: COLORS.GREEN_6,
80
- color: COLORS.NEUTRAL_1,
81
- },
82
- [ButtonStates.ACTIVE]: {
83
- backgroundColor: COLORS.PRIMARY_GREEN,
84
- borderColor: COLORS.GREEN_6,
85
- raiseColor: COLORS.GREEN_6,
86
- color: COLORS.NEUTRAL_1,
87
- },
88
- }
89
-
90
- export const useFluencyNumpad = ({ onSubmit }: UseFluencyNumpadProps) => {
91
- const t = useText()
92
- const { model } = useFluency()
93
- const answer = useUnit(model.solving.$answer)
94
- const [pressedKey, setPressedKey] = useState<string | null>(null)
95
- const pressedKeyTimeoutRef = useRef<ReturnType<typeof setTimeout>>()
96
-
97
- const pressKey = (key: string) => {
98
- if (key === KeyboardKeys.ENTER) {
99
- onSubmit()
100
- return
101
- }
102
- if (key === KeyboardKeys.BACKSPACE) {
103
- model.solving.setAnswer(answer === null || answer.length <= 1 ? null : answer.slice(0, -1))
104
- return
105
- }
106
- if (answer !== null && answer.length >= MAX_INPUT_LENGTH) return
107
- model.solving.setAnswer(answer === null ? key : answer + key)
108
- }
109
-
110
- useEffect(() => {
111
- if (!isWeb) return
112
-
113
- const handleKeyDown = (event: KeyboardEvent) => {
114
- const { key } = event
115
- if (!/^\d$/.test(key) && key !== KeyboardKeys.ENTER && key !== KeyboardKeys.BACKSPACE) return
116
-
117
- clearTimeout(pressedKeyTimeoutRef.current)
118
- setPressedKey(key)
119
- pressedKeyTimeoutRef.current = setTimeout(() => setPressedKey(null), 175)
120
- pressKey(key)
121
- }
122
-
123
- window.addEventListener('keydown', handleKeyDown)
124
- return () => {
125
- window.removeEventListener('keydown', handleKeyDown)
126
- }
127
- }, [answer])
128
-
129
- const options = NUMPAD_KEYS.map(({ value, customColorScheme, ...props }) => ({
130
- ...props,
131
- title: props.key === KeyboardKeys.ENTER ? t('student.fluency.enter') : props.title,
132
- selected: pressedKey === props.key,
133
- customColorScheme:
134
- props.key === KeyboardKeys.ENTER && answer !== null ? ENTER_COLOR_SCHEME : customColorScheme,
135
- onPressIn: () => pressKey(props.key),
136
- }))
137
-
138
- return { options }
139
- }
@@ -1,67 +0,0 @@
1
- import { useUnit } from 'effector-react'
2
- import { COLORS } from '@magmamath/react-native-ui'
3
- import type { ButtonColor } from '@magmamath/react-native-ui'
4
- import { FLUENCY_MODE_PRESETS, FluencyMasteryLevel, type FluencyMode } from '../fluency.constants'
5
- import type { LegendItem } from '../fluency.types'
6
- import { useFluency } from '../context/FluencyContext'
7
- import { useText } from '../../../i18n/i18n'
8
-
9
- type UseFluencySolvingPresetParams = {
10
- mode?: FluencyMode
11
- }
12
-
13
- type UseFluencySolvingPresetResult = {
14
- symbol: string
15
- label: string
16
- colors: {
17
- level: Record<FluencyMasteryLevel, string>
18
- accent: string
19
- streak: { gained: string; todayBorder: string }
20
- button: ButtonColor
21
- }
22
- legend: { items: LegendItem[] }
23
- }
24
-
25
- export const useFluencySolvingPreset = (
26
- params?: UseFluencySolvingPresetParams,
27
- ): UseFluencySolvingPresetResult => {
28
- const t = useText()
29
- const { model } = useFluency()
30
- const { matrixMode, current } = useUnit({
31
- matrixMode: model.matrix.$mode,
32
- current: model.solving.$current,
33
- })
34
- const preset = FLUENCY_MODE_PRESETS[params?.mode ?? current?.mode ?? matrixMode]
35
-
36
- const legendItems: LegendItem[] = [
37
- { label: t('student.fluency.notStarted'), color: COLORS.NEUTRAL_2, withBorder: true },
38
- {
39
- label: t('student.fluency.masteryLearning'),
40
- color: preset.matrix.levelColors[FluencyMasteryLevel.LEARNING],
41
- },
42
- {
43
- label: t('student.fluency.masteryGrowing'),
44
- color: preset.matrix.levelColors[FluencyMasteryLevel.GROWING],
45
- },
46
- {
47
- label: t('student.fluency.masteryStrong'),
48
- color: preset.matrix.levelColors[FluencyMasteryLevel.STRONG],
49
- },
50
- {
51
- label: t('student.fluency.masteryMastered'),
52
- color: preset.matrix.levelColors[FluencyMasteryLevel.MASTERED],
53
- },
54
- ]
55
-
56
- return {
57
- symbol: preset.symbol,
58
- label: t(preset.matrix.operatorLabel),
59
- colors: {
60
- level: preset.matrix.levelColors,
61
- accent: preset.accentColor,
62
- streak: preset.header.streakColor,
63
- button: preset.buttonColor,
64
- },
65
- legend: { items: legendItems },
66
- }
67
- }
@@ -1,11 +0,0 @@
1
- import { useEffect } from 'react'
2
- import { Platform } from 'react-native'
3
-
4
- export const usePreventPageLeave = () => {
5
- useEffect(() => {
6
- if (Platform.OS !== 'web') return
7
- const handleBeforeUnload = (event: BeforeUnloadEvent) => event.preventDefault()
8
- window.addEventListener('beforeunload', handleBeforeUnload)
9
- return () => window.removeEventListener('beforeunload', handleBeforeUnload)
10
- }, [])
11
- }
@@ -1,24 +0,0 @@
1
- import { RefObject, useEffect } from 'react'
2
- import { Platform } from 'react-native'
3
-
4
- type UsePreventWebKeysProps = {
5
- ref: RefObject<unknown>
6
- keys: string[]
7
- enabled: boolean
8
- }
9
-
10
- export const usePreventWebKeys = ({ ref, keys, enabled }: UsePreventWebKeysProps) => {
11
- useEffect(() => {
12
- if (Platform.OS !== 'web' || !enabled) return
13
-
14
- const element = ref.current as unknown as HTMLInputElement
15
- if (!element) return
16
-
17
- const preventKeys = (event: KeyboardEvent) => {
18
- if (keys.includes(event.key)) event.preventDefault()
19
- }
20
-
21
- element.addEventListener('keydown', preventKeys)
22
- return () => element.removeEventListener('keydown', preventKeys)
23
- }, [ref, keys, enabled])
24
- }
@@ -1,20 +0,0 @@
1
- import { useEffect, useRef } from 'react'
2
- import { AudioPlayer, createAudioPlayer } from 'expo-audio'
3
- import SUCCESS_SOUND from '../assets/success.mp3'
4
-
5
- export const useSuccessSound = () => {
6
- const playerRef = useRef<AudioPlayer | null>(null)
7
-
8
- useEffect(() => {
9
- const player = createAudioPlayer(SUCCESS_SOUND)
10
- playerRef.current = player
11
- return () => player.remove()
12
- }, [])
13
-
14
- const play = () => {
15
- playerRef.current?.seekTo(0)
16
- playerRef.current?.play()
17
- }
18
-
19
- return { play }
20
- }
@@ -1,6 +0,0 @@
1
- export * from './fluency.constants'
2
- export * from './fluency.types'
3
- export * from './fluency.helpers'
4
- export { Fluency } from './components/Fluency'
5
- export { FluencySolving } from './components/FluencySolving'
6
- export { FluencyModel } from './model/FluencyModel'
@@ -1,21 +0,0 @@
1
- import { createEffect, Effect } from 'effector'
2
- import type {
3
- FluencyAttemptPayload,
4
- FluencyAttemptResponse,
5
- FluencyModelProps,
6
- GetMatrixPayload,
7
- GetMatrixResponse,
8
- GetWeeklyStatsResponse,
9
- } from '../fluency.types'
10
-
11
- export class FluencyApiModel {
12
- public readonly getMatrixFx: Effect<GetMatrixPayload, GetMatrixResponse>
13
- public readonly getWeeklyStatsFx: Effect<void, GetWeeklyStatsResponse>
14
- public readonly postAttemptFx: Effect<FluencyAttemptPayload, FluencyAttemptResponse>
15
-
16
- constructor(api: FluencyModelProps['api']) {
17
- this.getMatrixFx = createEffect(api.getMatrix)
18
- this.getWeeklyStatsFx = createEffect(() => api.getWeeklyStats())
19
- this.postAttemptFx = createEffect(api.postAttempt)
20
- }
21
- }
@@ -1,11 +0,0 @@
1
- import { createStore } from 'effector'
2
- import type { FluencyApiModel } from './FluencyApiModel'
3
- import type { GetWeeklyStatsResponse } from '../fluency.types'
4
-
5
- export class FluencyDaysStreakModel {
6
- public readonly $stats = createStore<GetWeeklyStatsResponse | null>(null)
7
-
8
- constructor(private readonly api: FluencyApiModel) {
9
- this.$stats.on(this.api.getWeeklyStatsFx.doneData, (_, data) => data)
10
- }
11
- }
@@ -1,20 +0,0 @@
1
- import { combine, createEvent, createStore, restore } from 'effector'
2
- import { FluencyMode } from '../fluency.constants'
3
- import { buildMatrixGrid } from '../fluency.helpers'
4
- import type { GetMatrixResponse, MatrixGrid } from '../fluency.types'
5
- import type { FluencyApiModel } from './FluencyApiModel'
6
-
7
- export class FluencyMatrixModel {
8
- public readonly setMode = createEvent<FluencyMode>()
9
- public readonly $mode = restore(this.setMode, FluencyMode.ADDITION)
10
-
11
- public readonly $data = createStore<GetMatrixResponse | null>(null)
12
- public readonly $matrix = combine(this.$data, this.$mode, (data, mode): MatrixGrid | null => {
13
- if (!data) return null
14
- return buildMatrixGrid(data, mode)
15
- })
16
-
17
- constructor(api: FluencyApiModel) {
18
- this.$data.on(api.getMatrixFx.doneData, (_, data) => data)
19
- }
20
- }
@@ -1,66 +0,0 @@
1
- import { createStore, sample } from 'effector'
2
- import { createGate } from 'effector-react'
3
- import { not } from 'patronum/not'
4
- import { FluencyDaysStreakModel } from './FluencyDaysStreakModel'
5
- import { FluencyMatrixModel } from './FluencyMatrixModel'
6
- import { FluencyApiModel } from './FluencyApiModel'
7
- import { FluencySolvingModel } from './FluencySolvingModel'
8
- import { MatrixConfig } from '../fluency.constants'
9
- import type {
10
- FluencyAttemptPayload,
11
- FluencyConfig,
12
- FluencyModelGateProps,
13
- FluencyModelProps,
14
- } from '../fluency.types'
15
-
16
- export class FluencyModel {
17
- public readonly gate = createGate<FluencyModelGateProps>()
18
- public readonly $config = createStore<FluencyConfig | null>(null)
19
-
20
- public readonly api: FluencyApiModel
21
- public readonly streak: FluencyDaysStreakModel
22
- public readonly matrix: FluencyMatrixModel
23
- public readonly solving: FluencySolvingModel
24
-
25
- constructor({ api }: FluencyModelProps) {
26
- this.api = new FluencyApiModel(api)
27
- this.streak = new FluencyDaysStreakModel(this.api)
28
- this.matrix = new FluencyMatrixModel(this.api)
29
- this.solving = new FluencySolvingModel(this.matrix)
30
-
31
- this.init()
32
- }
33
-
34
- private init() {
35
- sample({
36
- clock: this.gate.open,
37
- fn: ({ config }) => config,
38
- target: this.$config,
39
- })
40
-
41
- sample({
42
- clock: this.gate.open,
43
- filter: not(this.api.getMatrixFx.pending),
44
- fn: ({ config }) => ({ grade: config.grade }),
45
- target: this.api.getMatrixFx,
46
- })
47
-
48
- sample({
49
- clock: this.gate.open,
50
- filter: not(this.api.getWeeklyStatsFx.pending),
51
- target: this.api.getWeeklyStatsFx,
52
- })
53
-
54
- sample({
55
- clock: this.solving.flushAttempts,
56
- source: this.$config,
57
- filter: Boolean,
58
- fn: (config, attempts): FluencyAttemptPayload => ({
59
- grade: config.grade,
60
- attempts,
61
- matrixConfig: MatrixConfig.STANDARD,
62
- }),
63
- target: this.api.postAttemptFx,
64
- })
65
- }
66
- }
@@ -1,186 +0,0 @@
1
- import { createEvent, createStore, restore, sample } from 'effector'
2
- import {
3
- AttemptStatus,
4
- FLUSH_ATTEMPTS_COUNT,
5
- FluencyMode,
6
- SESSION_LENGTH,
7
- TIME_THRESHOLD_MS,
8
- } from '../fluency.constants'
9
- import {
10
- calculateNextBox,
11
- selectNextFact,
12
- toSolvingFacts,
13
- } from '../components/fluency-solving/fluencySolving.helpers'
14
- import type {
15
- QuestionOutcome,
16
- SolvingFact,
17
- } from '../components/fluency-solving/fluencySolving.types'
18
- import type { FluencyAttemptItem } from '../fluency.types'
19
- import type { FluencyMatrixModel } from './FluencyMatrixModel'
20
- import { createAction } from 'effector-action'
21
- import { GetMatrixResponse } from '@magmamath/students-features'
22
-
23
- export class FluencySolvingModel {
24
- public readonly reset = createEvent()
25
-
26
- public readonly start = createEvent<FluencyMode | void>()
27
- public readonly submit = createEvent()
28
- public readonly setAnswer = createEvent<string | null>()
29
- public readonly setSessionCompleted = createEvent<boolean>()
30
- public readonly updateFact = createEvent<SolvingFact>()
31
- public readonly flushAttempts = createEvent<FluencyAttemptItem[]>()
32
-
33
- public readonly $answer = restore(this.setAnswer, null).reset(this.reset)
34
- public readonly $current = createStore<SolvingFact | null>(null).reset(this.reset)
35
- public readonly $outcomes = createStore<QuestionOutcome[]>([]).reset(this.reset)
36
- public readonly $facts = createStore<SolvingFact[]>([])
37
- .on(this.updateFact, (facts, updatedFact) =>
38
- facts.map((fact) => (fact.id === updatedFact.id ? updatedFact : fact)),
39
- )
40
- .reset(this.reset)
41
-
42
- public readonly $sessionDurationMs = createStore(0).reset(this.reset)
43
- public readonly $completedDurationMs = createStore(0).reset(this.reset)
44
- public readonly $timeSpentInCurrentMs = createStore(0).reset(this.reset)
45
-
46
- public readonly $isSessionComplete = restore(this.setSessionCompleted, false).reset(this.reset)
47
- public readonly $pendingAttempts = createStore<FluencyAttemptItem[]>([])
48
- .reset(this.flushAttempts)
49
- .reset(this.reset)
50
-
51
- constructor(private readonly matrixModel: FluencyMatrixModel) {
52
- this.setupStartTrigger()
53
- this.setupSubmitTrigger()
54
- this.setupFlushTrigger()
55
- }
56
-
57
- private setupStartTrigger() {
58
- createAction(this.start, {
59
- source: { data: this.matrixModel.$data },
60
- target: {
61
- $facts: this.$facts,
62
- $current: this.$current,
63
- $answer: this.$answer,
64
- $outcomes: this.$outcomes,
65
- $isSessionComplete: this.$isSessionComplete,
66
- $pendingAttempts: this.$pendingAttempts,
67
- $sessionDurationMs: this.$sessionDurationMs,
68
- $completedDurationMs: this.$completedDurationMs,
69
- $timeSpentInCurrentMs: this.$timeSpentInCurrentMs,
70
- },
71
- fn: (target, source, mode) => {
72
- if (!source.data) return
73
-
74
- const facts = this.getFactsFromData(source.data, mode || undefined)
75
- target.$facts(facts)
76
- target.$current(selectNextFact(facts, Date.now()))
77
- target.$answer(null)
78
- target.$outcomes([])
79
- target.$isSessionComplete(false)
80
- target.$pendingAttempts([])
81
- target.$sessionDurationMs(Date.now())
82
- target.$completedDurationMs(0)
83
- target.$timeSpentInCurrentMs(Date.now())
84
- },
85
- })
86
- }
87
-
88
- private setupSubmitTrigger() {
89
- createAction(this.submit, {
90
- source: {
91
- answer: this.$answer,
92
- facts: this.$facts,
93
- current: this.$current,
94
- outcomes: this.$outcomes,
95
- timeSpentInCurrentMs: this.$timeSpentInCurrentMs,
96
- sessionDurationMs: this.$sessionDurationMs,
97
- pendingAttempts: this.$pendingAttempts,
98
- },
99
- target: {
100
- $current: this.$current,
101
- $outcomes: this.$outcomes,
102
- $answer: this.$answer,
103
- $sessionDurationMs: this.$sessionDurationMs,
104
- $completedDurationMs: this.$completedDurationMs,
105
- $timeSpentInCurrentMs: this.$timeSpentInCurrentMs,
106
- $pendingAttempts: this.$pendingAttempts,
107
- update: this.updateFact,
108
- setSessionCompleted: this.setSessionCompleted,
109
- },
110
- fn: (target, source) => {
111
- if (!source.facts || !source.current) return
112
-
113
- const timeTakenToSolveFactMs = Date.now() - source.timeSpentInCurrentMs
114
- const isCorrect = source.answer !== null && Number(source.answer) === source.current.answer
115
- const isFast = timeTakenToSolveFactMs <= TIME_THRESHOLD_MS
116
- const isLastQuestion = source.outcomes.length + 1 >= SESSION_LENGTH
117
-
118
- const nextBox = calculateNextBox({
119
- isFast,
120
- isCorrect,
121
- currentBox: source.current.box,
122
- sessionStartBox: source.current.sessionStartBox,
123
- hasFailedThisSession: source.current.hasFailedThisSession,
124
- })
125
-
126
- const updatedFact = {
127
- ...source.current,
128
- box: nextBox,
129
- lastSeenMs: Date.now(),
130
- hasFailedThisSession: source.current.hasFailedThisSession || !isCorrect,
131
- attemptsCount: source.current.attemptsCount + 1,
132
- correctCount: source.current.correctCount + (isCorrect ? 1 : 0),
133
- }
134
-
135
- const updatedFacts = source.facts.map((f) => (f.id === updatedFact.id ? updatedFact : f))
136
- target.update(updatedFact)
137
-
138
- const attemptItem: FluencyAttemptItem = {
139
- factId: source.current.id,
140
- status: isCorrect ? AttemptStatus.CORRECT : AttemptStatus.INCORRECT,
141
- startedAt: new Date(source.timeSpentInCurrentMs).toISOString(),
142
- timeToSolve: timeTakenToSolveFactMs,
143
- boxAfter: nextBox,
144
- }
145
- target.$pendingAttempts([...source.pendingAttempts, attemptItem])
146
- target.$outcomes([
147
- ...source.outcomes,
148
- {
149
- factId: source.current.id,
150
- status: isCorrect ? AttemptStatus.CORRECT : AttemptStatus.INCORRECT,
151
- answer: source.answer,
152
- numbers: source.current.numbers,
153
- mode: source.current.mode,
154
- },
155
- ])
156
-
157
- if (isLastQuestion) {
158
- target.$completedDurationMs(Date.now() - source.sessionDurationMs)
159
- target.$sessionDurationMs(0)
160
- target.setSessionCompleted(true)
161
- return
162
- }
163
-
164
- target.$current(selectNextFact(updatedFacts, Date.now()))
165
- target.$answer(null)
166
- target.$timeSpentInCurrentMs(Date.now())
167
- },
168
- })
169
- }
170
-
171
- private setupFlushTrigger() {
172
- sample({
173
- clock: this.$pendingAttempts,
174
- filter: (attempts) => attempts.length >= FLUSH_ATTEMPTS_COUNT,
175
- target: this.flushAttempts,
176
- })
177
- }
178
-
179
- private getFactsFromData(data: GetMatrixResponse, mode?: FluencyMode) {
180
- return mode
181
- ? toSolvingFacts(data.operations[mode].facts, mode)
182
- : Object.entries(data.operations).flatMap(([key, { facts }]) =>
183
- toSolvingFacts(facts, key as FluencyMode),
184
- )
185
- }
186
- }
@@ -1,63 +0,0 @@
1
- import React from 'react'
2
- import { View, Platform } from 'react-native'
3
- import type { StyleProp, ViewStyle } from 'react-native'
4
-
5
- type Point = { x: number; y: number }
6
-
7
- type GradientViewProps = {
8
- colors: string[]
9
- start?: Point
10
- end?: Point
11
- locations?: number[]
12
- style?: StyleProp<ViewStyle>
13
- pointerEvents?: 'none' | 'box-none' | 'box-only' | 'auto'
14
- children?: React.ReactNode
15
- }
16
-
17
- const buildCssGradient = (colors: string[], start: Point, end: Point, locations?: number[]): string => {
18
- const angle = Math.round(Math.atan2(end.x - start.x, -(end.y - start.y)) * (180 / Math.PI))
19
- const stops = colors
20
- .map((color, i) => {
21
- const pct = locations
22
- ? `${Math.round(locations[i] * 100)}%`
23
- : `${Math.round((i / (colors.length - 1)) * 100)}%`
24
- return `${color} ${pct}`
25
- })
26
- .join(', ')
27
- return `linear-gradient(${angle}deg, ${stops})`
28
- }
29
-
30
- export const GradientView = ({
31
- colors,
32
- start = { x: 0, y: 0 },
33
- end = { x: 0, y: 1 },
34
- locations,
35
- style,
36
- pointerEvents,
37
- children,
38
- }: GradientViewProps) => {
39
- if (Platform.OS === 'web') {
40
- return (
41
- <View
42
- pointerEvents={pointerEvents}
43
- style={[style, { backgroundImage: buildCssGradient(colors, start, end, locations) } as any]}
44
- >
45
- {children}
46
- </View>
47
- )
48
- }
49
-
50
- const { LinearGradient } = require('expo-linear-gradient')
51
- return (
52
- <LinearGradient
53
- colors={colors}
54
- start={start}
55
- end={end}
56
- locations={locations}
57
- style={style}
58
- pointerEvents={pointerEvents}
59
- >
60
- {children}
61
- </LinearGradient>
62
- )
63
- }