@magmamath/students-features 1.3.25 → 1.3.26-rc.1

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 (322) hide show
  1. package/dist/commonjs/features/fluency/assets/DivideIcon.js +32 -0
  2. package/dist/commonjs/features/fluency/assets/DivideIcon.js.map +1 -0
  3. package/dist/commonjs/features/fluency/assets/SpringIcon.js +29 -0
  4. package/dist/commonjs/features/fluency/assets/SpringIcon.js.map +1 -0
  5. package/dist/commonjs/features/fluency/assets/StarFillIcon.js +29 -0
  6. package/dist/commonjs/features/fluency/assets/StarFillIcon.js.map +1 -0
  7. package/dist/commonjs/features/fluency/components/Fluency.js +98 -0
  8. package/dist/commonjs/features/fluency/components/Fluency.js.map +1 -0
  9. package/dist/commonjs/features/fluency/components/FluencySolving.js +42 -0
  10. package/dist/commonjs/features/fluency/components/FluencySolving.js.map +1 -0
  11. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js +91 -0
  12. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -0
  13. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js +73 -0
  14. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -0
  15. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.js +123 -0
  16. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +1 -0
  17. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.js +183 -0
  18. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.js.map +1 -0
  19. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.js +64 -0
  20. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +1 -0
  21. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.js +71 -0
  22. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +1 -0
  23. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.js +47 -0
  24. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +1 -0
  25. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js +36 -0
  26. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js.map +1 -0
  27. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js +47 -0
  28. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js.map +1 -0
  29. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js +57 -0
  30. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js.map +1 -0
  31. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js +105 -0
  32. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -0
  33. package/dist/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.js +43 -0
  34. package/dist/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.js.map +1 -0
  35. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBar.js +124 -0
  36. package/dist/commonjs/features/fluency/components/select-math-operator/ProgressBar.js.map +1 -0
  37. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js +63 -0
  38. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -0
  39. package/dist/commonjs/features/fluency/components/start-banner/BannerFlashcards.js +80 -0
  40. package/dist/commonjs/features/fluency/components/start-banner/BannerFlashcards.js.map +1 -0
  41. package/dist/commonjs/features/fluency/components/start-banner/MathFlashcard.js +73 -0
  42. package/dist/commonjs/features/fluency/components/start-banner/MathFlashcard.js.map +1 -0
  43. package/dist/commonjs/features/fluency/components/start-banner/StartBanner.js +111 -0
  44. package/dist/commonjs/features/fluency/components/start-banner/StartBanner.js.map +1 -0
  45. package/dist/commonjs/features/fluency/context/FluencyContext.js +16 -0
  46. package/dist/commonjs/features/fluency/context/FluencyContext.js.map +1 -0
  47. package/dist/commonjs/features/fluency/fluency.constants.js +80 -0
  48. package/dist/commonjs/features/fluency/fluency.constants.js.map +1 -0
  49. package/dist/commonjs/features/fluency/fluency.helpers.js +67 -0
  50. package/dist/commonjs/features/fluency/fluency.helpers.js.map +1 -0
  51. package/dist/commonjs/features/fluency/fluency.types.js +6 -0
  52. package/dist/commonjs/features/fluency/fluency.types.js.map +1 -0
  53. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js +39 -0
  54. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js.map +1 -0
  55. package/dist/commonjs/features/fluency/index.js +68 -0
  56. package/dist/commonjs/features/fluency/index.js.map +1 -0
  57. package/dist/commonjs/features/fluency/model/FluencyApiModel.js +11 -0
  58. package/dist/commonjs/features/fluency/model/FluencyApiModel.js.map +1 -0
  59. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js +9 -0
  60. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js.map +1 -0
  61. package/dist/commonjs/features/fluency/model/FluencyInputModel.js +23 -0
  62. package/dist/commonjs/features/fluency/model/FluencyInputModel.js.map +1 -0
  63. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js +9 -0
  64. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js.map +1 -0
  65. package/dist/commonjs/features/fluency/model/FluencyModel.js +28 -0
  66. package/dist/commonjs/features/fluency/model/FluencyModel.js.map +1 -0
  67. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js +9 -0
  68. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +1 -0
  69. package/dist/commonjs/index.js +12 -0
  70. package/dist/commonjs/index.js.map +1 -1
  71. package/dist/module/features/fluency/assets/DivideIcon.js +24 -0
  72. package/dist/module/features/fluency/assets/DivideIcon.js.map +1 -0
  73. package/dist/module/features/fluency/assets/SpringIcon.js +22 -0
  74. package/dist/module/features/fluency/assets/SpringIcon.js.map +1 -0
  75. package/dist/module/features/fluency/assets/StarFillIcon.js +21 -0
  76. package/dist/module/features/fluency/assets/StarFillIcon.js.map +1 -0
  77. package/dist/module/features/fluency/components/Fluency.js +92 -0
  78. package/dist/module/features/fluency/components/Fluency.js.map +1 -0
  79. package/dist/module/features/fluency/components/FluencySolving.js +36 -0
  80. package/dist/module/features/fluency/components/FluencySolving.js.map +1 -0
  81. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js +85 -0
  82. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -0
  83. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js +67 -0
  84. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -0
  85. package/dist/module/features/fluency/components/fluency-solving/FluencyEquationCard.js +117 -0
  86. package/dist/module/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +1 -0
  87. package/dist/module/features/fluency/components/fluency-solving/FluencyNumpad.js +177 -0
  88. package/dist/module/features/fluency/components/fluency-solving/FluencyNumpad.js.map +1 -0
  89. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js +57 -0
  90. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +1 -0
  91. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingHeader.js +65 -0
  92. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +1 -0
  93. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js +41 -0
  94. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +1 -0
  95. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js +30 -0
  96. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js.map +1 -0
  97. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js +41 -0
  98. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js.map +1 -0
  99. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js +51 -0
  100. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js.map +1 -0
  101. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js +99 -0
  102. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -0
  103. package/dist/module/features/fluency/components/select-math-operator/MathOperatorRow.js +37 -0
  104. package/dist/module/features/fluency/components/select-math-operator/MathOperatorRow.js.map +1 -0
  105. package/dist/module/features/fluency/components/select-math-operator/ProgressBar.js +118 -0
  106. package/dist/module/features/fluency/components/select-math-operator/ProgressBar.js.map +1 -0
  107. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js +57 -0
  108. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -0
  109. package/dist/module/features/fluency/components/start-banner/BannerFlashcards.js +74 -0
  110. package/dist/module/features/fluency/components/start-banner/BannerFlashcards.js.map +1 -0
  111. package/dist/module/features/fluency/components/start-banner/MathFlashcard.js +67 -0
  112. package/dist/module/features/fluency/components/start-banner/MathFlashcard.js.map +1 -0
  113. package/dist/module/features/fluency/components/start-banner/StartBanner.js +105 -0
  114. package/dist/module/features/fluency/components/start-banner/StartBanner.js.map +1 -0
  115. package/dist/module/features/fluency/context/FluencyContext.js +11 -0
  116. package/dist/module/features/fluency/context/FluencyContext.js.map +1 -0
  117. package/dist/module/features/fluency/fluency.constants.js +77 -0
  118. package/dist/module/features/fluency/fluency.constants.js.map +1 -0
  119. package/dist/module/features/fluency/fluency.helpers.js +58 -0
  120. package/dist/module/features/fluency/fluency.helpers.js.map +1 -0
  121. package/dist/module/features/fluency/fluency.types.js +4 -0
  122. package/dist/module/features/fluency/fluency.types.js.map +1 -0
  123. package/dist/module/features/fluency/hooks/useFluencyModePreset.js +34 -0
  124. package/dist/module/features/fluency/hooks/useFluencyModePreset.js.map +1 -0
  125. package/dist/module/features/fluency/index.js +9 -0
  126. package/dist/module/features/fluency/index.js.map +1 -0
  127. package/dist/module/features/fluency/model/FluencyApiModel.js +6 -0
  128. package/dist/module/features/fluency/model/FluencyApiModel.js.map +1 -0
  129. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js +4 -0
  130. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js.map +1 -0
  131. package/dist/module/features/fluency/model/FluencyInputModel.js +18 -0
  132. package/dist/module/features/fluency/model/FluencyInputModel.js.map +1 -0
  133. package/dist/module/features/fluency/model/FluencyMatrixModel.js +4 -0
  134. package/dist/module/features/fluency/model/FluencyMatrixModel.js.map +1 -0
  135. package/dist/module/features/fluency/model/FluencyModel.js +23 -0
  136. package/dist/module/features/fluency/model/FluencyModel.js.map +1 -0
  137. package/dist/module/features/fluency/model/FluencySolvingModel.js +4 -0
  138. package/dist/module/features/fluency/model/FluencySolvingModel.js.map +1 -0
  139. package/dist/module/index.js +1 -0
  140. package/dist/module/index.js.map +1 -1
  141. package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts +2 -0
  142. package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts.map +1 -0
  143. package/dist/typescript/commonjs/features/fluency/assets/DivideIcon.d.ts +8 -0
  144. package/dist/typescript/commonjs/features/fluency/assets/DivideIcon.d.ts.map +1 -0
  145. package/dist/typescript/commonjs/features/fluency/assets/SpringIcon.d.ts +3 -0
  146. package/dist/typescript/commonjs/features/fluency/assets/SpringIcon.d.ts.map +1 -0
  147. package/dist/typescript/commonjs/features/fluency/assets/StarFillIcon.d.ts +3 -0
  148. package/dist/typescript/commonjs/features/fluency/assets/StarFillIcon.d.ts.map +1 -0
  149. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts +13 -0
  150. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts.map +1 -0
  151. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts +9 -0
  152. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts.map +1 -0
  153. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts +11 -0
  154. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -0
  155. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts +3 -0
  156. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -0
  157. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts +12 -0
  158. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +1 -0
  159. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.d.ts +3 -0
  160. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +1 -0
  161. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts +3 -0
  162. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +1 -0
  163. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts +7 -0
  164. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +1 -0
  165. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +8 -0
  166. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +1 -0
  167. package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts +3 -0
  168. package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -0
  169. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts +11 -0
  170. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -0
  171. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts +3 -0
  172. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -0
  173. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixLegend.d.ts +5 -0
  174. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixLegend.d.ts.map +1 -0
  175. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.d.ts +13 -0
  176. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/MathOperatorRow.d.ts.map +1 -0
  177. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBar.d.ts +8 -0
  178. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/ProgressBar.d.ts.map +1 -0
  179. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts +3 -0
  180. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -0
  181. package/dist/typescript/commonjs/features/fluency/components/start-banner/BannerFlashcards.d.ts +11 -0
  182. package/dist/typescript/commonjs/features/fluency/components/start-banner/BannerFlashcards.d.ts.map +1 -0
  183. package/dist/typescript/commonjs/features/fluency/components/start-banner/MathFlashcard.d.ts +28 -0
  184. package/dist/typescript/commonjs/features/fluency/components/start-banner/MathFlashcard.d.ts.map +1 -0
  185. package/dist/typescript/commonjs/features/fluency/components/start-banner/StartBanner.d.ts +3 -0
  186. package/dist/typescript/commonjs/features/fluency/components/start-banner/StartBanner.d.ts.map +1 -0
  187. package/dist/typescript/commonjs/features/fluency/context/FluencyContext.d.ts +11 -0
  188. package/dist/typescript/commonjs/features/fluency/context/FluencyContext.d.ts.map +1 -0
  189. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +25 -0
  190. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +1 -0
  191. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts +19 -0
  192. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts.map +1 -0
  193. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts +46 -0
  194. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts.map +1 -0
  195. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts +7 -0
  196. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -0
  197. package/dist/typescript/commonjs/features/fluency/index.d.ts +7 -0
  198. package/dist/typescript/commonjs/features/fluency/index.d.ts.map +1 -0
  199. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts +6 -0
  200. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts.map +1 -0
  201. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts +3 -0
  202. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -0
  203. package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts +12 -0
  204. package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts.map +1 -0
  205. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts +3 -0
  206. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -0
  207. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts +21 -0
  208. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts.map +1 -0
  209. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts +3 -0
  210. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +1 -0
  211. package/dist/typescript/commonjs/index.d.ts +1 -0
  212. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  213. package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts +2 -0
  214. package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts.map +1 -0
  215. package/dist/typescript/module/features/fluency/assets/DivideIcon.d.ts +8 -0
  216. package/dist/typescript/module/features/fluency/assets/DivideIcon.d.ts.map +1 -0
  217. package/dist/typescript/module/features/fluency/assets/SpringIcon.d.ts +3 -0
  218. package/dist/typescript/module/features/fluency/assets/SpringIcon.d.ts.map +1 -0
  219. package/dist/typescript/module/features/fluency/assets/StarFillIcon.d.ts +3 -0
  220. package/dist/typescript/module/features/fluency/assets/StarFillIcon.d.ts.map +1 -0
  221. package/dist/typescript/module/features/fluency/components/Fluency.d.ts +13 -0
  222. package/dist/typescript/module/features/fluency/components/Fluency.d.ts.map +1 -0
  223. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts +9 -0
  224. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts.map +1 -0
  225. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts +11 -0
  226. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -0
  227. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts +3 -0
  228. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -0
  229. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts +12 -0
  230. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +1 -0
  231. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyNumpad.d.ts +3 -0
  232. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +1 -0
  233. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts +3 -0
  234. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +1 -0
  235. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts +7 -0
  236. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +1 -0
  237. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +8 -0
  238. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +1 -0
  239. package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts +3 -0
  240. package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -0
  241. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts +11 -0
  242. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -0
  243. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts +3 -0
  244. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -0
  245. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixLegend.d.ts +5 -0
  246. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixLegend.d.ts.map +1 -0
  247. package/dist/typescript/module/features/fluency/components/select-math-operator/MathOperatorRow.d.ts +13 -0
  248. package/dist/typescript/module/features/fluency/components/select-math-operator/MathOperatorRow.d.ts.map +1 -0
  249. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBar.d.ts +8 -0
  250. package/dist/typescript/module/features/fluency/components/select-math-operator/ProgressBar.d.ts.map +1 -0
  251. package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts +3 -0
  252. package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -0
  253. package/dist/typescript/module/features/fluency/components/start-banner/BannerFlashcards.d.ts +11 -0
  254. package/dist/typescript/module/features/fluency/components/start-banner/BannerFlashcards.d.ts.map +1 -0
  255. package/dist/typescript/module/features/fluency/components/start-banner/MathFlashcard.d.ts +28 -0
  256. package/dist/typescript/module/features/fluency/components/start-banner/MathFlashcard.d.ts.map +1 -0
  257. package/dist/typescript/module/features/fluency/components/start-banner/StartBanner.d.ts +3 -0
  258. package/dist/typescript/module/features/fluency/components/start-banner/StartBanner.d.ts.map +1 -0
  259. package/dist/typescript/module/features/fluency/context/FluencyContext.d.ts +11 -0
  260. package/dist/typescript/module/features/fluency/context/FluencyContext.d.ts.map +1 -0
  261. package/dist/typescript/module/features/fluency/fluency.constants.d.ts +25 -0
  262. package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +1 -0
  263. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts +19 -0
  264. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts.map +1 -0
  265. package/dist/typescript/module/features/fluency/fluency.types.d.ts +46 -0
  266. package/dist/typescript/module/features/fluency/fluency.types.d.ts.map +1 -0
  267. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts +7 -0
  268. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -0
  269. package/dist/typescript/module/features/fluency/index.d.ts +7 -0
  270. package/dist/typescript/module/features/fluency/index.d.ts.map +1 -0
  271. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts +6 -0
  272. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts.map +1 -0
  273. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts +3 -0
  274. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -0
  275. package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts +12 -0
  276. package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts.map +1 -0
  277. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts +3 -0
  278. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -0
  279. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts +21 -0
  280. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts.map +1 -0
  281. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts +3 -0
  282. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +1 -0
  283. package/dist/typescript/module/index.d.ts +1 -0
  284. package/dist/typescript/module/index.d.ts.map +1 -1
  285. package/package.json +1 -1
  286. package/src/features/fluency/__tests__/FluencyModel.test.ts +28 -0
  287. package/src/features/fluency/assets/DivideIcon.tsx +21 -0
  288. package/src/features/fluency/assets/SpringIcon.tsx +17 -0
  289. package/src/features/fluency/assets/StarFillIcon.tsx +16 -0
  290. package/src/features/fluency/components/Fluency.tsx +101 -0
  291. package/src/features/fluency/components/FluencySolving.tsx +32 -0
  292. package/src/features/fluency/components/day-streak-counter/DayStreak.tsx +82 -0
  293. package/src/features/fluency/components/day-streak-counter/DayStreakCounter.tsx +68 -0
  294. package/src/features/fluency/components/fluency-solving/FluencyEquationCard.tsx +115 -0
  295. package/src/features/fluency/components/fluency-solving/FluencyNumpad.tsx +150 -0
  296. package/src/features/fluency/components/fluency-solving/FluencySolvingCard.tsx +49 -0
  297. package/src/features/fluency/components/fluency-solving/FluencySolvingHeader.tsx +67 -0
  298. package/src/features/fluency/components/fluency-solving/FluencySolvingProgress.tsx +40 -0
  299. package/src/features/fluency/components/matrix/FluencyMatrix.tsx +29 -0
  300. package/src/features/fluency/components/matrix/components/MatrixCell.tsx +46 -0
  301. package/src/features/fluency/components/matrix/components/MatrixFill.tsx +50 -0
  302. package/src/features/fluency/components/matrix/components/MatrixLegend.tsx +102 -0
  303. package/src/features/fluency/components/select-math-operator/MathOperatorRow.tsx +38 -0
  304. package/src/features/fluency/components/select-math-operator/ProgressBar.tsx +127 -0
  305. package/src/features/fluency/components/select-math-operator/SelectMathOperator.tsx +49 -0
  306. package/src/features/fluency/components/start-banner/BannerFlashcards.tsx +45 -0
  307. package/src/features/fluency/components/start-banner/MathFlashcard.tsx +69 -0
  308. package/src/features/fluency/components/start-banner/StartBanner.tsx +105 -0
  309. package/src/features/fluency/context/FluencyContext.ts +20 -0
  310. package/src/features/fluency/fluency.constants.ts +83 -0
  311. package/src/features/fluency/fluency.helpers.ts +71 -0
  312. package/src/features/fluency/fluency.types.ts +41 -0
  313. package/src/features/fluency/hooks/useFluencyModePreset.ts +24 -0
  314. package/src/features/fluency/index.ts +6 -0
  315. package/src/features/fluency/model/FluencyApiModel.ts +5 -0
  316. package/src/features/fluency/model/FluencyDaysStreakModel.ts +1 -0
  317. package/src/features/fluency/model/FluencyInputModel.ts +21 -0
  318. package/src/features/fluency/model/FluencyMatrixModel.ts +1 -0
  319. package/src/features/fluency/model/FluencyModel.ts +30 -0
  320. package/src/features/fluency/model/FluencySolvingModel.ts +1 -0
  321. package/src/i18n/.generated/schema.json +23 -0
  322. package/src/index.ts +1 -0
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { BORDER_RADIUS, COLORS, SHADOWS, SPACING } from '@magmamath/react-native-ui';
6
+ import { useUnit } from 'effector-react';
7
+ import { FLUENCY_MODES } from "../../fluency.constants.js";
8
+ import { MathOperatorRow } from "./MathOperatorRow.js";
9
+ import { useFluency } from "../../context/FluencyContext.js";
10
+ import { useText } from "../../../../i18n/i18n.js";
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ export const SelectMathOperator = () => {
13
+ const t = useText();
14
+ const {
15
+ model,
16
+ onModeSelectPress
17
+ } = useFluency();
18
+ const fluencyMode = useUnit(model.$mode);
19
+ return /*#__PURE__*/_jsx(View, {
20
+ style: styles.container,
21
+ children: FLUENCY_MODES.map(({
22
+ mode,
23
+ label,
24
+ icon: Icon,
25
+ select
26
+ }, index) => {
27
+ const isSelectedMode = mode === fluencyMode;
28
+ return /*#__PURE__*/_jsx(MathOperatorRow, {
29
+ title: t(label),
30
+ icon: /*#__PURE__*/_jsx(Icon, {
31
+ color: isSelectedMode ? COLORS.NEUTRAL_1 : undefined
32
+ })
33
+ // progress={0}
34
+ ,
35
+ progress: Math.random() * 100,
36
+ color: select,
37
+ selected: isSelectedMode,
38
+ onSelect: () => {
39
+ model.setMode(mode);
40
+ onModeSelectPress?.(mode);
41
+ },
42
+ showDivider: index < FLUENCY_MODES.length - 1
43
+ }, mode);
44
+ })
45
+ });
46
+ };
47
+ const styles = StyleSheet.create({
48
+ container: {
49
+ width: 270,
50
+ paddingVertical: SPACING[400],
51
+ paddingHorizontal: SPACING[200],
52
+ borderRadius: BORDER_RADIUS[400],
53
+ backgroundColor: COLORS.NEUTRAL_1,
54
+ ...SHADOWS[1]
55
+ }
56
+ });
57
+ //# sourceMappingURL=SelectMathOperator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","BORDER_RADIUS","COLORS","SHADOWS","SPACING","useUnit","FLUENCY_MODES","MathOperatorRow","useFluency","useText","jsx","_jsx","SelectMathOperator","t","model","onModeSelectPress","fluencyMode","$mode","style","styles","container","children","map","mode","label","icon","Icon","select","index","isSelectedMode","title","color","NEUTRAL_1","undefined","progress","Math","random","selected","onSelect","setMode","showDivider","length","create","width","paddingVertical","paddingHorizontal","borderRadius","backgroundColor"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/select-math-operator/SelectMathOperator.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,QAAQ,4BAA4B;AACpF,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,aAAa,QAAQ,4BAAyB;AACvD,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,OAAO,QAAQ,0BAAuB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/C,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,CAAC,GAAGJ,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEK,KAAK;IAAEC;EAAkB,CAAC,GAAGP,UAAU,CAAC,CAAC;EACjD,MAAMQ,WAAW,GAAGX,OAAO,CAACS,KAAK,CAACG,KAAK,CAAC;EAExC,oBACEN,IAAA,CAACX,IAAI;IAACkB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,EAC3Bf,aAAa,CAACgB,GAAG,CAAC,CAAC;MAAEC,IAAI;MAAEC,KAAK;MAAEC,IAAI,EAAEC,IAAI;MAAEC;IAAO,CAAC,EAAEC,KAAK,KAAK;MACjE,MAAMC,cAAc,GAAGN,IAAI,KAAKP,WAAW;MAC3C,oBACEL,IAAA,CAACJ,eAAe;QAEduB,KAAK,EAAEjB,CAAC,CAACW,KAAK,CAAE;QAChBC,IAAI,eAAEd,IAAA,CAACe,IAAI;UAACK,KAAK,EAAEF,cAAc,GAAG3B,MAAM,CAAC8B,SAAS,GAAGC;QAAU,CAAE;QACnE;QAAA;QACAC,QAAQ,EAAEC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,GAAI;QAC9BL,KAAK,EAAEJ,MAAO;QACdU,QAAQ,EAAER,cAAe;QACzBS,QAAQ,EAAEA,CAAA,KAAM;UACdxB,KAAK,CAACyB,OAAO,CAAChB,IAAI,CAAC;UACnBR,iBAAiB,GAAGQ,IAAI,CAAC;QAC3B,CAAE;QACFiB,WAAW,EAAEZ,KAAK,GAAGtB,aAAa,CAACmC,MAAM,GAAG;MAAE,GAXzClB,IAYN,CAAC;IAEN,CAAC;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMJ,MAAM,GAAGpB,UAAU,CAAC2C,MAAM,CAAC;EAC/BtB,SAAS,EAAE;IACTuB,KAAK,EAAE,GAAG;IACVC,eAAe,EAAExC,OAAO,CAAC,GAAG,CAAC;IAC7ByC,iBAAiB,EAAEzC,OAAO,CAAC,GAAG,CAAC;IAC/B0C,YAAY,EAAE7C,aAAa,CAAC,GAAG,CAAC;IAChC8C,eAAe,EAAE7C,MAAM,CAAC8B,SAAS;IACjC,GAAG7B,OAAO,CAAC,CAAC;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { MathFlashcard } from "./MathFlashcard.js";
5
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
6
+ const CARD_LAYOUTS = [{
7
+ card: {
8
+ width: 146,
9
+ height: 88,
10
+ radius: 6
11
+ },
12
+ answer: {
13
+ width: 20,
14
+ height: 29,
15
+ radius: 4
16
+ },
17
+ fontSize: 26,
18
+ position: {
19
+ right: 283,
20
+ top: 31,
21
+ zIndex: 1
22
+ },
23
+ rotation: '21.3deg'
24
+ }, {
25
+ card: {
26
+ width: 195,
27
+ height: 118,
28
+ radius: 9
29
+ },
30
+ answer: {
31
+ width: 27,
32
+ height: 38,
33
+ radius: 6
34
+ },
35
+ fontSize: 35,
36
+ position: {
37
+ right: 148,
38
+ top: -6,
39
+ zIndex: 2
40
+ },
41
+ rotation: '-15.43deg'
42
+ }, {
43
+ card: {
44
+ width: 260,
45
+ height: 157,
46
+ radius: 12
47
+ },
48
+ answer: {
49
+ width: 36,
50
+ height: 51,
51
+ radius: 8
52
+ },
53
+ fontSize: 46,
54
+ position: {
55
+ right: 0,
56
+ top: -11,
57
+ zIndex: 3
58
+ },
59
+ rotation: '8.83deg'
60
+ }];
61
+ export const BannerFlashcards = ({
62
+ examples
63
+ }) => /*#__PURE__*/_jsx(_Fragment, {
64
+ children: CARD_LAYOUTS.map((layout, index) => {
65
+ const example = examples[index];
66
+ if (!example) return null;
67
+ return /*#__PURE__*/_jsx(MathFlashcard, {
68
+ left: example.left,
69
+ right: example.right,
70
+ layout: layout
71
+ }, index);
72
+ })
73
+ });
74
+ //# sourceMappingURL=BannerFlashcards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","MathFlashcard","jsx","_jsx","Fragment","_Fragment","CARD_LAYOUTS","card","width","height","radius","answer","fontSize","position","right","top","zIndex","rotation","BannerFlashcards","examples","children","map","layout","index","example","left"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/start-banner/BannerFlashcards.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAyB,oBAAiB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA;AAOhE,MAAMC,YAA+B,GAAG,CACtC;EACEC,IAAI,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC3CC,MAAM,EAAE;IAAEH,KAAK,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CE,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,GAAG,EAAE,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEV,IAAI,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CC,MAAM,EAAE;IAAEH,KAAK,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CE,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,GAAG,EAAE,CAAC,CAAC;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEV,IAAI,EAAE;IAAEC,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAG,CAAC;EAC7CC,MAAM,EAAE;IAAEH,KAAK,EAAE,EAAE;IAAEC,MAAM,EAAE,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC5CE,QAAQ,EAAE,EAAE;EACZC,QAAQ,EAAE;IAAEC,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC,EAAE;IAAEC,MAAM,EAAE;EAAE,CAAC;EAC3CC,QAAQ,EAAE;AACZ,CAAC,CACF;AAMD,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC;AAAgC,CAAC,kBAClEhB,IAAA,CAAAE,SAAA;EAAAe,QAAA,EACGd,YAAY,CAACe,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IACnC,MAAMC,OAAO,GAAGL,QAAQ,CAACI,KAAK,CAAC;IAC/B,IAAI,CAACC,OAAO,EAAE,OAAO,IAAI;IACzB,oBAAOrB,IAAA,CAACF,aAAa;MAAawB,IAAI,EAAED,OAAO,CAACC,IAAK;MAACX,KAAK,EAAEU,OAAO,CAACV,KAAM;MAACQ,MAAM,EAAEA;IAAO,GAAhEC,KAAkE,CAAC;EAChG,CAAC;AAAC,CACF,CACH","ignoreList":[]}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
+ import { COLORS, SHADOWS } from '@magmamath/react-native-ui';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ export const MathFlashcard = ({
8
+ left,
9
+ right,
10
+ layout
11
+ }) => /*#__PURE__*/_jsx(View, {
12
+ style: [styles.card, {
13
+ width: layout.card.width,
14
+ height: layout.card.height,
15
+ borderRadius: layout.card.radius,
16
+ right: layout.position.right,
17
+ top: layout.position.top,
18
+ zIndex: layout.position.zIndex,
19
+ transform: [{
20
+ rotate: layout.rotation
21
+ }]
22
+ }],
23
+ children: /*#__PURE__*/_jsxs(View, {
24
+ style: styles.row,
25
+ children: [/*#__PURE__*/_jsx(Text, {
26
+ style: [styles.text, {
27
+ fontSize: layout.fontSize
28
+ }],
29
+ children: left
30
+ }), /*#__PURE__*/_jsx(View, {
31
+ style: [styles.answerBox, {
32
+ width: layout.answer.width,
33
+ height: layout.answer.height,
34
+ borderRadius: layout.answer.radius
35
+ }]
36
+ }), /*#__PURE__*/_jsx(Text, {
37
+ style: [styles.text, {
38
+ fontSize: layout.fontSize
39
+ }],
40
+ children: right
41
+ })]
42
+ })
43
+ });
44
+ const styles = StyleSheet.create({
45
+ card: {
46
+ position: 'absolute',
47
+ backgroundColor: COLORS.NEUTRAL_1,
48
+ alignItems: 'center',
49
+ justifyContent: 'center',
50
+ ...SHADOWS[1]
51
+ },
52
+ row: {
53
+ flexDirection: 'row',
54
+ alignItems: 'center',
55
+ gap: 1
56
+ },
57
+ text: {
58
+ fontWeight: 'bold',
59
+ color: COLORS.BLACK
60
+ },
61
+ answerBox: {
62
+ backgroundColor: COLORS.NEUTRAL_2,
63
+ borderWidth: 1,
64
+ borderColor: COLORS.NEUTRAL_5
65
+ }
66
+ });
67
+ //# sourceMappingURL=MathFlashcard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","COLORS","SHADOWS","jsx","_jsx","jsxs","_jsxs","MathFlashcard","left","right","layout","style","styles","card","width","height","borderRadius","radius","position","top","zIndex","transform","rotate","rotation","children","row","text","fontSize","answerBox","answer","create","backgroundColor","NEUTRAL_1","alignItems","justifyContent","flexDirection","gap","fontWeight","color","BLACK","NEUTRAL_2","borderWidth","borderColor","NEUTRAL_5"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/start-banner/MathFlashcard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,MAAM,EAAEC,OAAO,QAAQ,4BAA4B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgB5D,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAA2B,CAAC,kBACvEN,IAAA,CAACN,IAAI;EACHa,KAAK,EAAE,CACLC,MAAM,CAACC,IAAI,EACX;IACEC,KAAK,EAAEJ,MAAM,CAACG,IAAI,CAACC,KAAK;IACxBC,MAAM,EAAEL,MAAM,CAACG,IAAI,CAACE,MAAM;IAC1BC,YAAY,EAAEN,MAAM,CAACG,IAAI,CAACI,MAAM;IAChCR,KAAK,EAAEC,MAAM,CAACQ,QAAQ,CAACT,KAAK;IAC5BU,GAAG,EAAET,MAAM,CAACQ,QAAQ,CAACC,GAAG;IACxBC,MAAM,EAAEV,MAAM,CAACQ,QAAQ,CAACE,MAAM;IAC9BC,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAEZ,MAAM,CAACa;IAAS,CAAC;EACzC,CAAC,CACD;EAAAC,QAAA,eAEFlB,KAAA,CAACR,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACa,GAAI;IAAAD,QAAA,gBACtBpB,IAAA,CAACL,IAAI;MAACY,KAAK,EAAE,CAACC,MAAM,CAACc,IAAI,EAAE;QAAEC,QAAQ,EAAEjB,MAAM,CAACiB;MAAS,CAAC,CAAE;MAAAH,QAAA,EAAEhB;IAAI,CAAO,CAAC,eACxEJ,IAAA,CAACN,IAAI;MACHa,KAAK,EAAE,CACLC,MAAM,CAACgB,SAAS,EAChB;QAAEd,KAAK,EAAEJ,MAAM,CAACmB,MAAM,CAACf,KAAK;QAAEC,MAAM,EAAEL,MAAM,CAACmB,MAAM,CAACd,MAAM;QAAEC,YAAY,EAAEN,MAAM,CAACmB,MAAM,CAACZ;MAAO,CAAC;IAChG,CACH,CAAC,eACFb,IAAA,CAACL,IAAI;MAACY,KAAK,EAAE,CAACC,MAAM,CAACc,IAAI,EAAE;QAAEC,QAAQ,EAAEjB,MAAM,CAACiB;MAAS,CAAC,CAAE;MAAAH,QAAA,EAAEf;IAAK,CAAO,CAAC;EAAA,CACrE;AAAC,CACH,CACP;AAED,MAAMG,MAAM,GAAGZ,UAAU,CAAC8B,MAAM,CAAC;EAC/BjB,IAAI,EAAE;IACJK,QAAQ,EAAE,UAAU;IACpBa,eAAe,EAAE9B,MAAM,CAAC+B,SAAS;IACjCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxB,GAAGhC,OAAO,CAAC,CAAC;EACd,CAAC;EACDuB,GAAG,EAAE;IACHU,aAAa,EAAE,KAAK;IACpBF,UAAU,EAAE,QAAQ;IACpBG,GAAG,EAAE;EACP,CAAC;EACDV,IAAI,EAAE;IACJW,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAErC,MAAM,CAACsC;EAChB,CAAC;EACDX,SAAS,EAAE;IACTG,eAAe,EAAE9B,MAAM,CAACuC,SAAS;IACjCC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEzC,MAAM,CAAC0C;EACtB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { Button, ButtonColor, ButtonSize, ButtonVariant, Typography, PlayIcon, COLORS, SHADOWS, SPACING, FONT_FAMILY, BORDER_RADIUS } from '@magmamath/react-native-ui';
6
+ import { BannerFlashcards } from "./BannerFlashcards.js";
7
+ import { useFluency } from "../../context/FluencyContext.js";
8
+ import { useText } from "../../../../i18n/i18n.js";
9
+ import { SpringIcon } from "../../assets/SpringIcon.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ export const StartBanner = () => {
12
+ const t = useText();
13
+ const {
14
+ onStartPress
15
+ } = useFluency();
16
+ return /*#__PURE__*/_jsxs(View, {
17
+ style: styles.container,
18
+ children: [/*#__PURE__*/_jsx(View, {
19
+ style: styles.buttonContainer,
20
+ children: /*#__PURE__*/_jsxs(View, {
21
+ style: styles.buttonGroup,
22
+ children: [/*#__PURE__*/_jsx(Button, {
23
+ onPress: onStartPress,
24
+ disabled: false,
25
+ isLoading: false,
26
+ isActive: false,
27
+ icon: /*#__PURE__*/_jsx(PlayIcon, {
28
+ color: COLORS.NEUTRAL_1
29
+ }),
30
+ variant: ButtonVariant.PRIMARY,
31
+ size: ButtonSize.LARGE,
32
+ colorScheme: ButtonColor.YELLOW,
33
+ raiseLevel: 6,
34
+ style: {
35
+ container: styles.button
36
+ },
37
+ children: t('student.fluency.startPractice')
38
+ }), /*#__PURE__*/_jsxs(Typography, {
39
+ style: styles.buttonSubtitle,
40
+ children: ["0 ", t('student.fluency.cardsReady')]
41
+ }), /*#__PURE__*/_jsx(View, {
42
+ style: styles.springIcon,
43
+ children: /*#__PURE__*/_jsx(SpringIcon, {})
44
+ })]
45
+ })
46
+ }), /*#__PURE__*/_jsx(BannerFlashcards, {
47
+ examples: [{
48
+ left: '15*',
49
+ right: '=30'
50
+ }, {
51
+ left: '10-',
52
+ right: '=25'
53
+ }, {
54
+ left: '5+',
55
+ right: '=19'
56
+ }]
57
+ })]
58
+ });
59
+ };
60
+ const styles = StyleSheet.create({
61
+ container: {
62
+ flex: 1,
63
+ height: '100%',
64
+ justifyContent: 'center',
65
+ paddingVertical: SPACING[400],
66
+ paddingHorizontal: SPACING[800],
67
+ borderRadius: BORDER_RADIUS[400],
68
+ backgroundColor: COLORS.NEUTRAL_1,
69
+ ...SHADOWS[1]
70
+ },
71
+ buttonContainer: {
72
+ alignItems: 'flex-start',
73
+ zIndex: 4
74
+ },
75
+ buttonGroup: {
76
+ alignItems: 'center',
77
+ gap: SPACING[200]
78
+ },
79
+ button: {
80
+ minWidth: 220,
81
+ maxWidth: 315,
82
+ textTransform: 'uppercase'
83
+ },
84
+ buttonSubtitle: {
85
+ fontSize: 13,
86
+ fontWeight: '400',
87
+ color: COLORS.BLACK,
88
+ fontFamily: FONT_FAMILY.buenosAires
89
+ },
90
+ flashcard: {
91
+ position: 'absolute',
92
+ backgroundColor: COLORS.NEUTRAL_1,
93
+ alignItems: 'center',
94
+ justifyContent: 'center',
95
+ ...SHADOWS[1]
96
+ },
97
+ springIcon: {
98
+ position: 'absolute',
99
+ bottom: -28,
100
+ right: 0,
101
+ marginTop: 6,
102
+ alignSelf: 'flex-end'
103
+ }
104
+ });
105
+ //# sourceMappingURL=StartBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","Button","ButtonColor","ButtonSize","ButtonVariant","Typography","PlayIcon","COLORS","SHADOWS","SPACING","FONT_FAMILY","BORDER_RADIUS","BannerFlashcards","useFluency","useText","SpringIcon","jsx","_jsx","jsxs","_jsxs","StartBanner","t","onStartPress","style","styles","container","children","buttonContainer","buttonGroup","onPress","disabled","isLoading","isActive","icon","color","NEUTRAL_1","variant","PRIMARY","size","LARGE","colorScheme","YELLOW","raiseLevel","button","buttonSubtitle","springIcon","examples","left","right","create","flex","height","justifyContent","paddingVertical","paddingHorizontal","borderRadius","backgroundColor","alignItems","zIndex","gap","minWidth","maxWidth","textTransform","fontSize","fontWeight","BLACK","fontFamily","buenosAires","flashcard","position","bottom","marginTop","alignSelf"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/start-banner/StartBanner.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SACEC,MAAM,EACNC,WAAW,EACXC,UAAU,EACVC,aAAa,EACbC,UAAU,EACVC,QAAQ,EACRC,MAAM,EACNC,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,aAAa,QACR,4BAA4B;AACnC,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,UAAU,QAAQ,4BAAyB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpD,OAAO,MAAMC,WAAW,GAAGA,CAAA,KAAM;EAC/B,MAAMC,CAAC,GAAGP,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEQ;EAAa,CAAC,GAAGT,UAAU,CAAC,CAAC;EAErC,oBACEM,KAAA,CAACpB,IAAI;IAACwB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BT,IAAA,CAAClB,IAAI;MAACwB,KAAK,EAAEC,MAAM,CAACG,eAAgB;MAAAD,QAAA,eAClCP,KAAA,CAACpB,IAAI;QAACwB,KAAK,EAAEC,MAAM,CAACI,WAAY;QAAAF,QAAA,gBAC9BT,IAAA,CAAChB,MAAM;UACL4B,OAAO,EAAEP,YAAa;UACtBQ,QAAQ,EAAE,KAAM;UAChBC,SAAS,EAAE,KAAM;UACjBC,QAAQ,EAAE,KAAM;UAChBC,IAAI,eAAEhB,IAAA,CAACX,QAAQ;YAAC4B,KAAK,EAAE3B,MAAM,CAAC4B;UAAU,CAAE,CAAE;UAC5CC,OAAO,EAAEhC,aAAa,CAACiC,OAAQ;UAC/BC,IAAI,EAAEnC,UAAU,CAACoC,KAAM;UACvBC,WAAW,EAAEtC,WAAW,CAACuC,MAAO;UAChCC,UAAU,EAAE,CAAE;UACdnB,KAAK,EAAE;YAAEE,SAAS,EAAED,MAAM,CAACmB;UAAO,CAAE;UAAAjB,QAAA,EAEnCL,CAAC,CAAC,+BAA+B;QAAC,CAC7B,CAAC,eACTF,KAAA,CAACd,UAAU;UAACkB,KAAK,EAAEC,MAAM,CAACoB,cAAe;UAAAlB,QAAA,GAAC,IAAE,EAACL,CAAC,CAAC,4BAA4B,CAAC;QAAA,CAAa,CAAC,eAC1FJ,IAAA,CAAClB,IAAI;UAACwB,KAAK,EAAEC,MAAM,CAACqB,UAAW;UAAAnB,QAAA,eAC7BT,IAAA,CAACF,UAAU,IAAE;QAAC,CACV,CAAC;MAAA,CACH;IAAC,CACH,CAAC,eAEPE,IAAA,CAACL,gBAAgB;MACfkC,QAAQ,EAAE,CACR;QAAEC,IAAI,EAAE,KAAK;QAAEC,KAAK,EAAE;MAAM,CAAC,EAC7B;QAAED,IAAI,EAAE,KAAK;QAAEC,KAAK,EAAE;MAAM,CAAC,EAC7B;QAAED,IAAI,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAM,CAAC;IAC5B,CACH,CAAC;EAAA,CACE,CAAC;AAEX,CAAC;AAED,MAAMxB,MAAM,GAAGxB,UAAU,CAACiD,MAAM,CAAC;EAC/BxB,SAAS,EAAE;IACTyB,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,MAAM;IACdC,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAE5C,OAAO,CAAC,GAAG,CAAC;IAC7B6C,iBAAiB,EAAE7C,OAAO,CAAC,GAAG,CAAC;IAC/B8C,YAAY,EAAE5C,aAAa,CAAC,GAAG,CAAC;IAChC6C,eAAe,EAAEjD,MAAM,CAAC4B,SAAS;IACjC,GAAG3B,OAAO,CAAC,CAAC;EACd,CAAC;EACDmB,eAAe,EAAE;IACf8B,UAAU,EAAE,YAAY;IACxBC,MAAM,EAAE;EACV,CAAC;EACD9B,WAAW,EAAE;IACX6B,UAAU,EAAE,QAAQ;IACpBE,GAAG,EAAElD,OAAO,CAAC,GAAG;EAClB,CAAC;EACDkC,MAAM,EAAE;IACNiB,QAAQ,EAAE,GAAG;IACbC,QAAQ,EAAE,GAAG;IACbC,aAAa,EAAE;EACjB,CAAC;EACDlB,cAAc,EAAE;IACdmB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjB9B,KAAK,EAAE3B,MAAM,CAAC0D,KAAK;IACnBC,UAAU,EAAExD,WAAW,CAACyD;EAC1B,CAAC;EACDC,SAAS,EAAE;IACTC,QAAQ,EAAE,UAAU;IACpBb,eAAe,EAAEjD,MAAM,CAAC4B,SAAS;IACjCsB,UAAU,EAAE,QAAQ;IACpBL,cAAc,EAAE,QAAQ;IACxB,GAAG5C,OAAO,CAAC,CAAC;EACd,CAAC;EACDqC,UAAU,EAAE;IACVwB,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC,EAAE;IACXtB,KAAK,EAAE,CAAC;IACRuB,SAAS,EAAE,CAAC;IACZC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ import { createContext, useContext } from 'react';
4
+ const FluencyContext = /*#__PURE__*/createContext(null);
5
+ export const useFluency = () => {
6
+ const value = useContext(FluencyContext);
7
+ if (!value) throw new Error('useFluency must be used within FluencyProvider');
8
+ return value;
9
+ };
10
+ export const FluencyProvider = FluencyContext.Provider;
11
+ //# sourceMappingURL=FluencyContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useContext","FluencyContext","useFluency","value","Error","FluencyProvider","Provider"],"sourceRoot":"../../../../../src","sources":["features/fluency/context/FluencyContext.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAWjD,MAAMC,cAAc,gBAAGF,aAAa,CAA6B,IAAI,CAAC;AAEtE,OAAO,MAAMG,UAAU,GAAGA,CAAA,KAA2B;EACnD,MAAMC,KAAK,GAAGH,UAAU,CAACC,cAAc,CAAC;EACxC,IAAI,CAACE,KAAK,EAAE,MAAM,IAAIC,KAAK,CAAC,gDAAgD,CAAC;EAC7E,OAAOD,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAGJ,cAAc,CAACK,QAAQ","ignoreList":[]}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ import { CrossIcon, MinusIcon, PlusIcon } from '@magmamath/react-native-ui';
4
+ import { ButtonColor, COLORS, SelectOptionColor } from '@magmamath/react-native-ui';
5
+ import { createFluencyMode } from "./fluency.helpers.js";
6
+ import { DivideIcon } from "./assets/DivideIcon.js";
7
+ export const MATRIX_SIZE = 21;
8
+ export const MAX_INPUT_LENGTH = 3;
9
+ export let FluencyMode = /*#__PURE__*/function (FluencyMode) {
10
+ FluencyMode["ADDITION"] = "ADDITION";
11
+ FluencyMode["SUBTRACTION"] = "SUBTRACTION";
12
+ FluencyMode["MULTIPLICATION"] = "MULTIPLICATION";
13
+ FluencyMode["DIVISION"] = "DIVISION";
14
+ return FluencyMode;
15
+ }({});
16
+ export let FluencyMasteryLevel = /*#__PURE__*/function (FluencyMasteryLevel) {
17
+ FluencyMasteryLevel["LEARNING"] = "learning";
18
+ FluencyMasteryLevel["GROWING"] = "growing";
19
+ FluencyMasteryLevel["STRONG"] = "strong";
20
+ FluencyMasteryLevel["MASTERED"] = "mastered";
21
+ return FluencyMasteryLevel;
22
+ }({});
23
+ export let FluencyColorFamily = /*#__PURE__*/function (FluencyColorFamily) {
24
+ FluencyColorFamily["GREEN"] = "GREEN";
25
+ FluencyColorFamily["ORANGE"] = "ORANGE";
26
+ FluencyColorFamily["BLUE"] = "BLUE";
27
+ FluencyColorFamily["PURPLE"] = "PURPLE";
28
+ return FluencyColorFamily;
29
+ }({});
30
+ export const COLOR_FAMILY_PALETTES = {
31
+ [FluencyColorFamily.GREEN]: {
32
+ shades: [COLORS.GREEN_2, COLORS.GREEN_3, COLORS.PRIMARY_GREEN, COLORS.GREEN_6],
33
+ button: ButtonColor.GREEN,
34
+ select: SelectOptionColor.GREEN
35
+ },
36
+ [FluencyColorFamily.ORANGE]: {
37
+ shades: [COLORS.ORANGE_2, COLORS.ORANGE_3, COLORS.PRIMARY_ORANGE, COLORS.ORANGE_6],
38
+ button: ButtonColor.ORANGE,
39
+ select: SelectOptionColor.ORANGE
40
+ },
41
+ [FluencyColorFamily.BLUE]: {
42
+ shades: [COLORS.BLUE_2, COLORS.BLUE_3, COLORS.PRIMARY_BLUE, COLORS.BLUE_6],
43
+ button: ButtonColor.BLUE,
44
+ select: SelectOptionColor.BLUE
45
+ },
46
+ [FluencyColorFamily.PURPLE]: {
47
+ shades: [COLORS.PURPLE_2, COLORS.PURPLE_3, COLORS.PRIMARY_PURPLE, COLORS.PURPLE_6],
48
+ button: ButtonColor.PURPLE,
49
+ select: SelectOptionColor.PURPLE
50
+ }
51
+ };
52
+ export const FLUENCY_MODES = [createFluencyMode({
53
+ mode: FluencyMode.ADDITION,
54
+ label: 'student.fluency.addition',
55
+ icon: PlusIcon,
56
+ colorFamily: FluencyColorFamily.GREEN
57
+ }), createFluencyMode({
58
+ mode: FluencyMode.SUBTRACTION,
59
+ label: 'student.fluency.subtraction',
60
+ icon: MinusIcon,
61
+ colorFamily: FluencyColorFamily.ORANGE
62
+ }), createFluencyMode({
63
+ mode: FluencyMode.MULTIPLICATION,
64
+ label: 'student.fluency.multiplication',
65
+ icon: CrossIcon,
66
+ colorFamily: FluencyColorFamily.BLUE
67
+ }), createFluencyMode({
68
+ mode: FluencyMode.DIVISION,
69
+ label: 'student.fluency.division',
70
+ icon: DivideIcon,
71
+ colorFamily: FluencyColorFamily.PURPLE
72
+ })];
73
+ export const FLUENCY_MODE_PRESETS = Object.fromEntries(FLUENCY_MODES.map(({
74
+ mode,
75
+ preset
76
+ }) => [mode, preset]));
77
+ //# sourceMappingURL=fluency.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CrossIcon","MinusIcon","PlusIcon","ButtonColor","COLORS","SelectOptionColor","createFluencyMode","DivideIcon","MATRIX_SIZE","MAX_INPUT_LENGTH","FluencyMode","FluencyMasteryLevel","FluencyColorFamily","COLOR_FAMILY_PALETTES","GREEN","shades","GREEN_2","GREEN_3","PRIMARY_GREEN","GREEN_6","button","select","ORANGE","ORANGE_2","ORANGE_3","PRIMARY_ORANGE","ORANGE_6","BLUE","BLUE_2","BLUE_3","PRIMARY_BLUE","BLUE_6","PURPLE","PURPLE_2","PURPLE_3","PRIMARY_PURPLE","PURPLE_6","FLUENCY_MODES","mode","ADDITION","label","icon","colorFamily","SUBTRACTION","MULTIPLICATION","DIVISION","FLUENCY_MODE_PRESETS","Object","fromEntries","map","preset"],"sourceRoot":"../../../../src","sources":["features/fluency/fluency.constants.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ import { COLORS } from '@magmamath/react-native-ui';
4
+ import { FluencyMasteryLevel, COLOR_FAMILY_PALETTES } from "./fluency.constants.js";
5
+ // TODO: Threshold values to be aligned with BE response schema.
6
+ export const getMasteryLevel = score => {
7
+ if (score >= 80) return FluencyMasteryLevel.MASTERED;
8
+ if (score >= 60) return FluencyMasteryLevel.STRONG;
9
+ if (score >= 40) return FluencyMasteryLevel.GROWING;
10
+ return FluencyMasteryLevel.LEARNING;
11
+ };
12
+ export const getCellColorByScore = (score, mastery) => mastery[getMasteryLevel(score)];
13
+ export const getCellBackground = (row, col) => {
14
+ if (row === 0 && col === 0) return COLORS.NEUTRAL_2;
15
+ if (row === 0 || col === 0) return COLORS.NEUTRAL_5;
16
+ return COLORS.NEUTRAL_2;
17
+ };
18
+ export const getCellLabel = (row, col) => {
19
+ if (row === 0 && col === 0) return null;
20
+ if (row === 0) return col;
21
+ if (col === 0) return row;
22
+ return null;
23
+ };
24
+ export const createFluencyMode = ({
25
+ mode,
26
+ label,
27
+ icon,
28
+ colorFamily
29
+ }) => {
30
+ const palette = COLOR_FAMILY_PALETTES[colorFamily];
31
+ const [learning, growing, strong, mastered] = palette.shades;
32
+ return {
33
+ mode,
34
+ label,
35
+ icon,
36
+ select: palette.select,
37
+ preset: {
38
+ buttonColor: palette.button,
39
+ icon,
40
+ header: {
41
+ streakColor: {
42
+ gained: growing,
43
+ todayBorder: strong
44
+ }
45
+ },
46
+ matrix: {
47
+ operatorName: label,
48
+ mastery: {
49
+ learning,
50
+ growing,
51
+ strong,
52
+ mastered
53
+ }
54
+ }
55
+ }
56
+ };
57
+ };
58
+ //# sourceMappingURL=fluency.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["COLORS","FluencyMasteryLevel","COLOR_FAMILY_PALETTES","getMasteryLevel","score","MASTERED","STRONG","GROWING","LEARNING","getCellColorByScore","mastery","getCellBackground","row","col","NEUTRAL_2","NEUTRAL_5","getCellLabel","createFluencyMode","mode","label","icon","colorFamily","palette","learning","growing","strong","mastered","shades","select","preset","buttonColor","button","header","streakColor","gained","todayBorder","matrix","operatorName"],"sourceRoot":"../../../../src","sources":["features/fluency/fluency.helpers.ts"],"mappings":";;AACA,SAASA,MAAM,QAAQ,4BAA4B;AACnD,SAEEC,mBAAmB,EAEnBC,qBAAqB,QAChB,wBAAqB;AAI5B;AACA,OAAO,MAAMC,eAAe,GAAIC,KAAa,IAA0B;EACrE,IAAIA,KAAK,IAAI,EAAE,EAAE,OAAOH,mBAAmB,CAACI,QAAQ;EACpD,IAAID,KAAK,IAAI,EAAE,EAAE,OAAOH,mBAAmB,CAACK,MAAM;EAClD,IAAIF,KAAK,IAAI,EAAE,EAAE,OAAOH,mBAAmB,CAACM,OAAO;EACnD,OAAON,mBAAmB,CAACO,QAAQ;AACrC,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGA,CACjCL,KAAa,EACbM,OAA+C,KACpCA,OAAO,CAACP,eAAe,CAACC,KAAK,CAAC,CAAC;AAE5C,OAAO,MAAMO,iBAAiB,GAAGA,CAACC,GAAW,EAAEC,GAAW,KAAa;EACrE,IAAID,GAAG,KAAK,CAAC,IAAIC,GAAG,KAAK,CAAC,EAAE,OAAOb,MAAM,CAACc,SAAS;EACnD,IAAIF,GAAG,KAAK,CAAC,IAAIC,GAAG,KAAK,CAAC,EAAE,OAAOb,MAAM,CAACe,SAAS;EACnD,OAAOf,MAAM,CAACc,SAAS;AACzB,CAAC;AAED,OAAO,MAAME,YAAY,GAAGA,CAACJ,GAAW,EAAEC,GAAW,KAAoB;EACvE,IAAID,GAAG,KAAK,CAAC,IAAIC,GAAG,KAAK,CAAC,EAAE,OAAO,IAAI;EACvC,IAAID,GAAG,KAAK,CAAC,EAAE,OAAOC,GAAG;EACzB,IAAIA,GAAG,KAAK,CAAC,EAAE,OAAOD,GAAG;EACzB,OAAO,IAAI;AACb,CAAC;AASD,OAAO,MAAMK,iBAAiB,GAAGA,CAAC;EAChCC,IAAI;EACJC,KAAK;EACLC,IAAI;EACJC;AACuB,CAAC,KAAwB;EAChD,MAAMC,OAAO,GAAGpB,qBAAqB,CAACmB,WAAW,CAAC;EAClD,MAAM,CAACE,QAAQ,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,CAAC,GAAGJ,OAAO,CAACK,MAAM;EAE5D,OAAO;IACLT,IAAI;IACJC,KAAK;IACLC,IAAI;IACJQ,MAAM,EAAEN,OAAO,CAACM,MAAM;IACtBC,MAAM,EAAE;MACNC,WAAW,EAAER,OAAO,CAACS,MAAM;MAC3BX,IAAI;MACJY,MAAM,EAAE;QACNC,WAAW,EAAE;UAAEC,MAAM,EAAEV,OAAO;UAAEW,WAAW,EAAEV;QAAO;MACtD,CAAC;MACDW,MAAM,EAAE;QACNC,YAAY,EAAElB,KAAK;QACnBT,OAAO,EAAE;UAAEa,QAAQ;UAAEC,OAAO;UAAEC,MAAM;UAAEC;QAAS;MACjD;IACF;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=fluency.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["features/fluency/fluency.types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import { useUnit } from 'effector-react';
4
+ import { COLORS } from '@magmamath/react-native-ui';
5
+ import { FLUENCY_MODE_PRESETS, FluencyMasteryLevel } from "../fluency.constants.js";
6
+ import { useFluency } from "../context/FluencyContext.js";
7
+ import { useText } from "../../../i18n/i18n.js";
8
+ export const useFluencyModePreset = () => {
9
+ const t = useText();
10
+ const mode = useUnit(useFluency().model.$mode);
11
+ const preset = FLUENCY_MODE_PRESETS[mode];
12
+ const legendItems = [{
13
+ label: t('student.fluency.notStarted'),
14
+ color: COLORS.NEUTRAL_2,
15
+ withBorder: true
16
+ }, {
17
+ label: t('student.fluency.masteryLearning'),
18
+ color: preset.matrix.mastery[FluencyMasteryLevel.LEARNING]
19
+ }, {
20
+ label: t('student.fluency.masteryGrowing'),
21
+ color: preset.matrix.mastery[FluencyMasteryLevel.GROWING]
22
+ }, {
23
+ label: t('student.fluency.masteryStrong'),
24
+ color: preset.matrix.mastery[FluencyMasteryLevel.STRONG]
25
+ }, {
26
+ label: t('student.fluency.masteryMastered'),
27
+ color: preset.matrix.mastery[FluencyMasteryLevel.MASTERED]
28
+ }];
29
+ return {
30
+ ...preset,
31
+ legendItems
32
+ };
33
+ };
34
+ //# sourceMappingURL=useFluencyModePreset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useUnit","COLORS","FLUENCY_MODE_PRESETS","FluencyMasteryLevel","useFluency","useText","useFluencyModePreset","t","mode","model","$mode","preset","legendItems","label","color","NEUTRAL_2","withBorder","matrix","mastery","LEARNING","GROWING","STRONG","MASTERED"],"sourceRoot":"../../../../../src","sources":["features/fluency/hooks/useFluencyModePreset.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,gBAAgB;AACxC,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,oBAAoB,EAAEC,mBAAmB,QAAQ,yBAAsB;AAEhF,SAASC,UAAU,QAAQ,8BAA2B;AACtD,SAASC,OAAO,QAAQ,uBAAoB;AAI5C,OAAO,MAAMC,oBAAoB,GAAGA,CAAA,KAAkC;EACpE,MAAMC,CAAC,GAAGF,OAAO,CAAC,CAAC;EACnB,MAAMG,IAAI,GAAGR,OAAO,CAACI,UAAU,CAAC,CAAC,CAACK,KAAK,CAACC,KAAK,CAAC;EAC9C,MAAMC,MAAM,GAAGT,oBAAoB,CAACM,IAAI,CAAC;EAEzC,MAAMI,WAAyB,GAAG,CAChC;IAAEC,KAAK,EAAEN,CAAC,CAAC,4BAA4B,CAAC;IAAEO,KAAK,EAAEb,MAAM,CAACc,SAAS;IAAEC,UAAU,EAAE;EAAK,CAAC,EACrF;IAAEH,KAAK,EAAEN,CAAC,CAAC,iCAAiC,CAAC;IAAEO,KAAK,EAAEH,MAAM,CAACM,MAAM,CAACC,OAAO,CAACf,mBAAmB,CAACgB,QAAQ;EAAE,CAAC,EAC3G;IAAEN,KAAK,EAAEN,CAAC,CAAC,gCAAgC,CAAC;IAAEO,KAAK,EAAEH,MAAM,CAACM,MAAM,CAACC,OAAO,CAACf,mBAAmB,CAACiB,OAAO;EAAE,CAAC,EACzG;IAAEP,KAAK,EAAEN,CAAC,CAAC,+BAA+B,CAAC;IAAEO,KAAK,EAAEH,MAAM,CAACM,MAAM,CAACC,OAAO,CAACf,mBAAmB,CAACkB,MAAM;EAAE,CAAC,EACvG;IAAER,KAAK,EAAEN,CAAC,CAAC,iCAAiC,CAAC;IAAEO,KAAK,EAAEH,MAAM,CAACM,MAAM,CAACC,OAAO,CAACf,mBAAmB,CAACmB,QAAQ;EAAE,CAAC,CAC5G;EAED,OAAO;IAAE,GAAGX,MAAM;IAAEC;EAAY,CAAC;AACnC,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ export * from "./fluency.constants.js";
4
+ export * from "./fluency.types.js";
5
+ export * from "./fluency.helpers.js";
6
+ export { Fluency } from "./components/Fluency.js";
7
+ export { FluencySolving } from "./components/FluencySolving.js";
8
+ export { FluencyModel } from "./model/FluencyModel.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Fluency","FluencySolving","FluencyModel"],"sourceRoot":"../../../../src","sources":["features/fluency/index.ts"],"mappings":";;AAAA,cAAc,wBAAqB;AACnC,cAAc,oBAAiB;AAC/B,cAAc,sBAAmB;AACjC,SAASA,OAAO,QAAQ,yBAAsB;AAC9C,SAASC,cAAc,QAAQ,gCAA6B;AAC5D,SAASC,YAAY,QAAQ,yBAAsB","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export class FluencyApiModel {
4
+ constructor({}) {}
5
+ }
6
+ //# sourceMappingURL=FluencyApiModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluencyApiModel","constructor"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyApiModel.ts"],"mappings":";;AAEA,OAAO,MAAMA,eAAe,CAAC;EAC3BC,WAAWA,CAAC,CAAkB,CAAC,EAAE,CAAC;AACpC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export class FluencyDaysStreakModel {}
4
+ //# sourceMappingURL=FluencyDaysStreakModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluencyDaysStreakModel"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyDaysStreakModel.ts"],"mappings":";;AAAA,OAAO,MAAMA,sBAAsB,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ import { createEffect, createEvent, createStore } from 'effector';
4
+ import { MAX_INPUT_LENGTH } from "../fluency.constants.js";
5
+ export class FluencyInputModel {
6
+ set = createEvent();
7
+ $state = createStore('').on(this.set, (input, payload) => {
8
+ const isEraseAction = 'erase' in payload;
9
+ if (isEraseAction) return payload.erase === 'all' ? '' : input.slice(0, -1);
10
+ const isDisabled = input.length >= MAX_INPUT_LENGTH || input === '0';
11
+ if (isDisabled) return input;
12
+ return input + payload.value;
13
+ });
14
+ submitFx = createEffect(() => {
15
+ console.log('submit');
16
+ });
17
+ }
18
+ //# sourceMappingURL=FluencyInputModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEffect","createEvent","createStore","MAX_INPUT_LENGTH","FluencyInputModel","set","$state","on","input","payload","isEraseAction","erase","slice","isDisabled","length","value","submitFx","console","log"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyInputModel.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,EAAEC,WAAW,QAAQ,UAAU;AACjE,SAASC,gBAAgB,QAAQ,yBAAsB;AAIvD,OAAO,MAAMC,iBAAiB,CAAC;EACbC,GAAG,GAAGJ,WAAW,CAAa,CAAC;EAC/BK,MAAM,GAAGJ,WAAW,CAAC,EAAE,CAAC,CAACK,EAAE,CAAC,IAAI,CAACF,GAAG,EAAE,CAACG,KAAK,EAAEC,OAAO,KAAK;IACxE,MAAMC,aAAa,GAAG,OAAO,IAAID,OAAO;IACxC,IAAIC,aAAa,EAAE,OAAOD,OAAO,CAACE,KAAK,KAAK,KAAK,GAAG,EAAE,GAAGH,KAAK,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3E,MAAMC,UAAU,GAAGL,KAAK,CAACM,MAAM,IAAIX,gBAAgB,IAAIK,KAAK,KAAK,GAAG;IACpE,IAAIK,UAAU,EAAE,OAAOL,KAAK;IAE5B,OAAOA,KAAK,GAAGC,OAAO,CAACM,KAAK;EAC9B,CAAC,CAAC;EAEcC,QAAQ,GAAGhB,YAAY,CAAC,MAAM;IAC5CiB,OAAO,CAACC,GAAG,CAAC,QAAQ,CAAC;EACvB,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export class FluencyMatrixModel {}
4
+ //# sourceMappingURL=FluencyMatrixModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluencyMatrixModel"],"sourceRoot":"../../../../../src","sources":["features/fluency/model/FluencyMatrixModel.ts"],"mappings":";;AAAA,OAAO,MAAMA,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ import { createEvent, restore } from 'effector';
4
+ import { FluencyMode } from "../fluency.constants.js";
5
+ import { FluencyDaysStreakModel } from "./FluencyDaysStreakModel.js";
6
+ import { FluencyMatrixModel } from "./FluencyMatrixModel.js";
7
+ import { FluencyApiModel } from "./FluencyApiModel.js";
8
+ import { FluencySolvingModel } from "./FluencySolvingModel.js";
9
+ import { FluencyInputModel } from "./FluencyInputModel.js";
10
+ export class FluencyModel {
11
+ setMode = createEvent();
12
+ $mode = restore(this.setMode, FluencyMode.ADDITION);
13
+ constructor({
14
+ api
15
+ }) {
16
+ this.api = new FluencyApiModel(api);
17
+ this.streak = new FluencyDaysStreakModel();
18
+ this.matrix = new FluencyMatrixModel();
19
+ this.solving = new FluencySolvingModel();
20
+ this.input = new FluencyInputModel();
21
+ }
22
+ }
23
+ //# sourceMappingURL=FluencyModel.js.map