@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, { useEffect } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { useUnit } from 'effector-react';
6
+ import { FluencyNumpad } from "./FluencyNumpad.js";
7
+ import { FluencyEquationCard } from "./FluencyEquationCard.js";
8
+ import { SPACING } from '@magmamath/react-native-ui';
9
+ import { useFluencyModePreset } from "../../hooks/useFluencyModePreset.js";
10
+ import { useFluency } from "../../context/FluencyContext.js";
11
+ import { isWeb } from "../../../../shared/common.constants.js";
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ export const FluencySolvingCard = () => {
14
+ const {
15
+ model
16
+ } = useFluency();
17
+ const {
18
+ header,
19
+ icon: OperatorIcon
20
+ } = useFluencyModePreset();
21
+ const accentColor = header.streakColor.todayBorder; // TODO: add accentColor in mode preset.
22
+ const input = useUnit(model.input.$state);
23
+ useEffect(() => {
24
+ if (!isWeb) return;
25
+ const handleKeyDown = event => {
26
+ const isDigit = /^\d$/.test(event.key);
27
+ if (isDigit) return model.input.set({
28
+ value: Number(event.key)
29
+ });
30
+ if (event.key === 'Backspace') return model.input.set({
31
+ erase: 'latest'
32
+ });
33
+ if (event.key === 'Enter') return model.input.submitFx();
34
+ };
35
+ window.addEventListener('keydown', handleKeyDown);
36
+ return () => window.removeEventListener('keydown', handleKeyDown);
37
+ }, []);
38
+ return /*#__PURE__*/_jsxs(View, {
39
+ children: [/*#__PURE__*/_jsx(View, {
40
+ style: styles.wrapper,
41
+ children: /*#__PURE__*/_jsx(FluencyEquationCard, {
42
+ accentColor: accentColor,
43
+ OperatorIcon: OperatorIcon,
44
+ input: input
45
+ })
46
+ }), /*#__PURE__*/_jsx(FluencyNumpad, {})]
47
+ });
48
+ };
49
+ const styles = StyleSheet.create({
50
+ wrapper: {
51
+ alignItems: 'center',
52
+ paddingVertical: SPACING[400],
53
+ paddingHorizontal: SPACING[600],
54
+ marginTop: SPACING[300]
55
+ }
56
+ });
57
+ //# sourceMappingURL=FluencySolvingCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","View","StyleSheet","useUnit","FluencyNumpad","FluencyEquationCard","SPACING","useFluencyModePreset","useFluency","isWeb","jsx","_jsx","jsxs","_jsxs","FluencySolvingCard","model","header","icon","OperatorIcon","accentColor","streakColor","todayBorder","input","$state","handleKeyDown","event","isDigit","test","key","set","value","Number","erase","submitFx","window","addEventListener","removeEventListener","children","style","styles","wrapper","create","alignItems","paddingVertical","paddingHorizontal","marginTop"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/FluencySolvingCard.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,mBAAmB,QAAQ,0BAAuB;AAC3D,SAASC,OAAO,QAAQ,4BAA4B;AACpD,SAASC,oBAAoB,QAAQ,qCAAkC;AACvE,SAASC,UAAU,QAAQ,iCAA8B;AACzD,SAASC,KAAK,QAAQ,wCAAqC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE3D,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAM;IAAEC;EAAM,CAAC,GAAGP,UAAU,CAAC,CAAC;EAC9B,MAAM;IAAEQ,MAAM;IAAEC,IAAI,EAAEC;EAAa,CAAC,GAAGX,oBAAoB,CAAC,CAAC;EAC7D,MAAMY,WAAW,GAAGH,MAAM,CAACI,WAAW,CAACC,WAAW,EAAC;EACnD,MAAMC,KAAK,GAAGnB,OAAO,CAACY,KAAK,CAACO,KAAK,CAACC,MAAM,CAAC;EAEzCvB,SAAS,CAAC,MAAM;IACd,IAAI,CAACS,KAAK,EAAE;IAEZ,MAAMe,aAAa,GAAIC,KAAoB,IAAK;MAC9C,MAAMC,OAAO,GAAG,MAAM,CAACC,IAAI,CAACF,KAAK,CAACG,GAAG,CAAC;MACtC,IAAIF,OAAO,EAAE,OAAOX,KAAK,CAACO,KAAK,CAACO,GAAG,CAAC;QAAEC,KAAK,EAAEC,MAAM,CAACN,KAAK,CAACG,GAAG;MAAE,CAAC,CAAC;MACjE,IAAIH,KAAK,CAACG,GAAG,KAAK,WAAW,EAAE,OAAOb,KAAK,CAACO,KAAK,CAACO,GAAG,CAAC;QAAEG,KAAK,EAAE;MAAS,CAAC,CAAC;MAC1E,IAAIP,KAAK,CAACG,GAAG,KAAK,OAAO,EAAE,OAAOb,KAAK,CAACO,KAAK,CAACW,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEDC,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEX,aAAa,CAAC;IACjD,OAAO,MAAMU,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAEZ,aAAa,CAAC;EACnE,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEX,KAAA,CAACZ,IAAI;IAAAoC,QAAA,gBACH1B,IAAA,CAACV,IAAI;MAACqC,KAAK,EAAEC,MAAM,CAACC,OAAQ;MAAAH,QAAA,eAC1B1B,IAAA,CAACN,mBAAmB;QAACc,WAAW,EAAEA,WAAY;QAACD,YAAY,EAAEA,YAAa;QAACI,KAAK,EAAEA;MAAM,CAAE;IAAC,CACvF,CAAC,eAEPX,IAAA,CAACP,aAAa,IAAE,CAAC;EAAA,CACb,CAAC;AAEX,CAAC;AAED,MAAMmC,MAAM,GAAGrC,UAAU,CAACuC,MAAM,CAAC;EAC/BD,OAAO,EAAE;IACPE,UAAU,EAAE,QAAQ;IACpBC,eAAe,EAAErC,OAAO,CAAC,GAAG,CAAC;IAC7BsC,iBAAiB,EAAEtC,OAAO,CAAC,GAAG,CAAC;IAC/BuC,SAAS,EAAEvC,OAAO,CAAC,GAAG;EACxB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { BORDER_RADIUS, Button, ButtonSize, ButtonVariant, COLORS, HeadingVariants, SHADOWS, SPACING, Typography } from '@magmamath/react-native-ui';
6
+ import { useText } from "../../../../i18n/i18n.js";
7
+ import { useFluencyModePreset } from "../../hooks/useFluencyModePreset.js";
8
+ import { XCloseIcon } from "../../../../shared/icons/XCloseIcon.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ export const FluencySolvingHeader = ({
11
+ onClosePress
12
+ }) => {
13
+ const t = useText();
14
+ const {
15
+ matrix,
16
+ header,
17
+ icon: OperatorIcon
18
+ } = useFluencyModePreset();
19
+ const accentColor = header.streakColor.todayBorder;
20
+ return /*#__PURE__*/_jsxs(View, {
21
+ style: styles.container,
22
+ children: [/*#__PURE__*/_jsx(Button, {
23
+ variant: ButtonVariant.SECONDARY,
24
+ size: ButtonSize.LARGE,
25
+ icon: /*#__PURE__*/_jsx(XCloseIcon, {}),
26
+ onPress: onClosePress
27
+ }), /*#__PURE__*/_jsx(View, {
28
+ style: [styles.operatorBadge, {
29
+ backgroundColor: accentColor
30
+ }],
31
+ children: /*#__PURE__*/_jsx(OperatorIcon, {
32
+ color: COLORS.NEUTRAL_1,
33
+ size: 16
34
+ })
35
+ }), /*#__PURE__*/_jsx(Typography, {
36
+ variant: HeadingVariants.H4,
37
+ style: styles.title,
38
+ children: t(matrix.operatorName)
39
+ })]
40
+ });
41
+ };
42
+ const styles = StyleSheet.create({
43
+ container: {
44
+ height: 76,
45
+ flexDirection: 'row',
46
+ alignItems: 'center',
47
+ gap: 14,
48
+ paddingVertical: SPACING[400],
49
+ paddingHorizontal: SPACING[600],
50
+ ...SHADOWS[1]
51
+ },
52
+ operatorBadge: {
53
+ width: 32,
54
+ height: 32,
55
+ borderRadius: BORDER_RADIUS[200],
56
+ alignItems: 'center',
57
+ justifyContent: 'center',
58
+ ...SHADOWS[1]
59
+ },
60
+ title: {
61
+ color: COLORS.NEUTRAL_10,
62
+ fontWeight: '700'
63
+ }
64
+ });
65
+ //# sourceMappingURL=FluencySolvingHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","BORDER_RADIUS","Button","ButtonSize","ButtonVariant","COLORS","HeadingVariants","SHADOWS","SPACING","Typography","useText","useFluencyModePreset","XCloseIcon","jsx","_jsx","jsxs","_jsxs","FluencySolvingHeader","onClosePress","t","matrix","header","icon","OperatorIcon","accentColor","streakColor","todayBorder","style","styles","container","children","variant","SECONDARY","size","LARGE","onPress","operatorBadge","backgroundColor","color","NEUTRAL_1","H4","title","operatorName","create","height","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","width","borderRadius","justifyContent","NEUTRAL_10","fontWeight"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/FluencySolvingHeader.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SACEC,aAAa,EACbC,MAAM,EACNC,UAAU,EACVC,aAAa,EACbC,MAAM,EACNC,eAAe,EACfC,OAAO,EACPC,OAAO,EACPC,UAAU,QACL,4BAA4B;AACnC,SAASC,OAAO,QAAQ,0BAAuB;AAC/C,SAASC,oBAAoB,QAAQ,qCAAkC;AACvE,SAASC,UAAU,QAAQ,wCAAqC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMhE,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC;AAAwC,CAAC,KAAK;EACnF,MAAMC,CAAC,GAAGT,OAAO,CAAC,CAAC;EACnB,MAAM;IAAEU,MAAM;IAAEC,MAAM;IAAEC,IAAI,EAAEC;EAAa,CAAC,GAAGZ,oBAAoB,CAAC,CAAC;EACrE,MAAMa,WAAW,GAAGH,MAAM,CAACI,WAAW,CAACC,WAAW;EAElD,oBACEV,KAAA,CAACjB,IAAI;IAAC4B,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BhB,IAAA,CAACZ,MAAM;MACL6B,OAAO,EAAE3B,aAAa,CAAC4B,SAAU;MACjCC,IAAI,EAAE9B,UAAU,CAAC+B,KAAM;MACvBZ,IAAI,eAAER,IAAA,CAACF,UAAU,IAAE,CAAE;MACrBuB,OAAO,EAAEjB;IAAa,CACvB,CAAC,eACFJ,IAAA,CAACf,IAAI;MAAC4B,KAAK,EAAE,CAACC,MAAM,CAACQ,aAAa,EAAE;QAAEC,eAAe,EAAEb;MAAY,CAAC,CAAE;MAAAM,QAAA,eACpEhB,IAAA,CAACS,YAAY;QAACe,KAAK,EAAEjC,MAAM,CAACkC,SAAU;QAACN,IAAI,EAAE;MAAG,CAAE;IAAC,CAC/C,CAAC,eACPnB,IAAA,CAACL,UAAU;MAACsB,OAAO,EAAEzB,eAAe,CAACkC,EAAG;MAACb,KAAK,EAAEC,MAAM,CAACa,KAAM;MAAAX,QAAA,EAC1DX,CAAC,CAACC,MAAM,CAACsB,YAAY;IAAC,CACb,CAAC;EAAA,CACT,CAAC;AAEX,CAAC;AAED,MAAMd,MAAM,GAAG5B,UAAU,CAAC2C,MAAM,CAAC;EAC/Bd,SAAS,EAAE;IACTe,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,EAAE;IACPC,eAAe,EAAExC,OAAO,CAAC,GAAG,CAAC;IAC7ByC,iBAAiB,EAAEzC,OAAO,CAAC,GAAG,CAAC;IAC/B,GAAGD,OAAO,CAAC,CAAC;EACd,CAAC;EACD6B,aAAa,EAAE;IACbc,KAAK,EAAE,EAAE;IACTN,MAAM,EAAE,EAAE;IACVO,YAAY,EAAElD,aAAa,CAAC,GAAG,CAAC;IAChC6C,UAAU,EAAE,QAAQ;IACpBM,cAAc,EAAE,QAAQ;IACxB,GAAG7C,OAAO,CAAC,CAAC;EACd,CAAC;EACDkC,KAAK,EAAE;IACLH,KAAK,EAAEjC,MAAM,CAACgD,UAAU;IACxBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { COLORS, SPACING } from '@magmamath/react-native-ui';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export const FluencySolvingProgress = ({
8
+ total,
9
+ activeIndex
10
+ }) => {
11
+ return /*#__PURE__*/_jsx(View, {
12
+ style: styles.container,
13
+ children: Array.from({
14
+ length: total
15
+ }).map((_, index) => /*#__PURE__*/_jsx(View, {
16
+ style: index === activeIndex ? styles.dotActive : styles.dot
17
+ }, index))
18
+ });
19
+ };
20
+ const styles = StyleSheet.create({
21
+ container: {
22
+ flexDirection: 'row',
23
+ gap: SPACING[200],
24
+ paddingHorizontal: SPACING[600],
25
+ paddingVertical: 14,
26
+ justifyContent: 'center'
27
+ },
28
+ dot: {
29
+ width: 12,
30
+ height: 12,
31
+ borderRadius: 6,
32
+ backgroundColor: COLORS.NEUTRAL_4
33
+ },
34
+ dotActive: {
35
+ width: 34,
36
+ height: 12,
37
+ backgroundColor: COLORS.NEUTRAL_10,
38
+ borderRadius: 9999
39
+ }
40
+ });
41
+ //# sourceMappingURL=FluencySolvingProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","COLORS","SPACING","jsx","_jsx","FluencySolvingProgress","total","activeIndex","style","styles","container","children","Array","from","length","map","_","index","dotActive","dot","create","flexDirection","gap","paddingHorizontal","paddingVertical","justifyContent","width","height","borderRadius","backgroundColor","NEUTRAL_4","NEUTRAL_10"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/FluencySolvingProgress.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,MAAM,EAAEC,OAAO,QAAQ,4BAA4B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAO5D,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EAAEC,KAAK;EAAEC;AAAyC,CAAC,KAAK;EAC7F,oBACEH,IAAA,CAACL,IAAI;IAACS,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,EAC3BC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAER;IAAM,CAAC,CAAC,CAACS,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,kBAC1Cb,IAAA,CAACL,IAAI;MAAaS,KAAK,EAAES,KAAK,KAAKV,WAAW,GAAGE,MAAM,CAACS,SAAS,GAAGT,MAAM,CAACU;IAAI,GAApEF,KAAsE,CAClF;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMR,MAAM,GAAGT,UAAU,CAACoB,MAAM,CAAC;EAC/BV,SAAS,EAAE;IACTW,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAEpB,OAAO,CAAC,GAAG,CAAC;IACjBqB,iBAAiB,EAAErB,OAAO,CAAC,GAAG,CAAC;IAC/BsB,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE;EAClB,CAAC;EACDN,GAAG,EAAE;IACHO,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE5B,MAAM,CAAC6B;EAC1B,CAAC;EACDZ,SAAS,EAAE;IACTQ,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVE,eAAe,EAAE5B,MAAM,CAAC8B,UAAU;IAClCH,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { BORDER_RADIUS, COLORS, SHADOWS, SPACING } from '@magmamath/react-native-ui';
6
+ import { MatrixLegend } from "./components/MatrixLegend.js";
7
+ import { MatrixFill } from "./components/MatrixFill.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const FluencyMatrix = () => /*#__PURE__*/_jsxs(View, {
10
+ style: styles.container,
11
+ children: [/*#__PURE__*/_jsx(View, {
12
+ style: styles.body,
13
+ children: /*#__PURE__*/_jsx(MatrixFill, {})
14
+ }), /*#__PURE__*/_jsx(MatrixLegend, {})]
15
+ });
16
+ const styles = StyleSheet.create({
17
+ container: {
18
+ flex: 1,
19
+ backgroundColor: COLORS.NEUTRAL_1,
20
+ borderRadius: BORDER_RADIUS[400],
21
+ overflow: 'hidden',
22
+ ...SHADOWS[1]
23
+ },
24
+ body: {
25
+ flex: 1,
26
+ padding: SPACING[300],
27
+ minHeight: 354
28
+ }
29
+ });
30
+ //# sourceMappingURL=FluencyMatrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","BORDER_RADIUS","COLORS","SHADOWS","SPACING","MatrixLegend","MatrixFill","jsx","_jsx","jsxs","_jsxs","FluencyMatrix","style","styles","container","children","body","create","flex","backgroundColor","NEUTRAL_1","borderRadius","overflow","padding","minHeight"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/matrix/FluencyMatrix.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,aAAa,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,QAAQ,4BAA4B;AACpF,SAASC,YAAY,QAAQ,8BAA2B;AACxD,SAASC,UAAU,QAAQ,4BAAyB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpD,OAAO,MAAMC,aAAa,GAAGA,CAAA,kBAC3BD,KAAA,CAACX,IAAI;EAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;EAAAC,QAAA,gBAC5BP,IAAA,CAACT,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACG,IAAK;IAAAD,QAAA,eACvBP,IAAA,CAACF,UAAU,IAAE;EAAC,CACV,CAAC,eACPE,IAAA,CAACH,YAAY,IAAE,CAAC;AAAA,CACZ,CACP;AAED,MAAMQ,MAAM,GAAGb,UAAU,CAACiB,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEjB,MAAM,CAACkB,SAAS;IACjCC,YAAY,EAAEpB,aAAa,CAAC,GAAG,CAAC;IAChCqB,QAAQ,EAAE,QAAQ;IAClB,GAAGnB,OAAO,CAAC,CAAC;EACd,CAAC;EACDa,IAAI,EAAE;IACJE,IAAI,EAAE,CAAC;IACPK,OAAO,EAAEnB,OAAO,CAAC,GAAG,CAAC;IACrBoB,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
+ import { BORDER_RADIUS, COLORS } from '@magmamath/react-native-ui';
6
+ import { getCellBackground, getCellColorByScore, getCellLabel, getMasteryLevel } from "../../../fluency.helpers.js";
7
+ import { FluencyMasteryLevel } from "../../../fluency.constants.js";
8
+ import { StarFillIcon } from "../../../assets/StarFillIcon.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ export const MatrixCell = ({
11
+ row,
12
+ col,
13
+ score,
14
+ mastery
15
+ }) => {
16
+ const label = getCellLabel(row, col);
17
+ const isMastered = score !== null && getMasteryLevel(score) === FluencyMasteryLevel.MASTERED;
18
+ const background = score !== null ? getCellColorByScore(score, mastery) : getCellBackground(row, col);
19
+ return /*#__PURE__*/_jsxs(View, {
20
+ style: [styles.cell, {
21
+ backgroundColor: background
22
+ }],
23
+ children: [isMastered && /*#__PURE__*/_jsx(StarFillIcon, {}), label !== null && /*#__PURE__*/_jsx(Text, {
24
+ style: styles.headerText,
25
+ children: label
26
+ })]
27
+ });
28
+ };
29
+ const styles = StyleSheet.create({
30
+ cell: {
31
+ flex: 1,
32
+ borderRadius: BORDER_RADIUS[100],
33
+ alignItems: 'center',
34
+ justifyContent: 'center'
35
+ },
36
+ headerText: {
37
+ fontSize: 13,
38
+ color: COLORS.NEUTRAL_2
39
+ }
40
+ });
41
+ //# sourceMappingURL=MatrixCell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","BORDER_RADIUS","COLORS","getCellBackground","getCellColorByScore","getCellLabel","getMasteryLevel","FluencyMasteryLevel","StarFillIcon","jsx","_jsx","jsxs","_jsxs","MatrixCell","row","col","score","mastery","label","isMastered","MASTERED","background","style","styles","cell","backgroundColor","children","headerText","create","flex","borderRadius","alignItems","justifyContent","fontSize","color","NEUTRAL_2"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixCell.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SAASC,aAAa,EAAEC,MAAM,QAAQ,4BAA4B;AAClE,SACEC,iBAAiB,EACjBC,mBAAmB,EACnBC,YAAY,EACZC,eAAe,QACV,6BAA0B;AACjC,SAASC,mBAAmB,QAAQ,+BAA4B;AAChE,SAASC,YAAY,QAAQ,iCAA8B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAU3D,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,GAAG;EAAEC,GAAG;EAAEC,KAAK;EAAEC;AAAyB,CAAC,KAAK;EAC3E,MAAMC,KAAK,GAAGb,YAAY,CAACS,GAAG,EAAEC,GAAG,CAAC;EACpC,MAAMI,UAAU,GAAGH,KAAK,KAAK,IAAI,IAAIV,eAAe,CAACU,KAAK,CAAC,KAAKT,mBAAmB,CAACa,QAAQ;EAC5F,MAAMC,UAAU,GACdL,KAAK,KAAK,IAAI,GAAGZ,mBAAmB,CAACY,KAAK,EAAEC,OAAO,CAAC,GAAGd,iBAAiB,CAACW,GAAG,EAAEC,GAAG,CAAC;EAEpF,oBACEH,KAAA,CAACd,IAAI;IAACwB,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;MAAEC,eAAe,EAAEJ;IAAW,CAAC,CAAE;IAAAK,QAAA,GACzDP,UAAU,iBAAIT,IAAA,CAACF,YAAY,IAAE,CAAC,EAC9BU,KAAK,KAAK,IAAI,iBAAIR,IAAA,CAACX,IAAI;MAACuB,KAAK,EAAEC,MAAM,CAACI,UAAW;MAAAD,QAAA,EAAER;IAAK,CAAO,CAAC;EAAA,CAC7D,CAAC;AAEX,CAAC;AAED,MAAMK,MAAM,GAAGvB,UAAU,CAAC4B,MAAM,CAAC;EAC/BJ,IAAI,EAAE;IACJK,IAAI,EAAE,CAAC;IACPC,YAAY,EAAE7B,aAAa,CAAC,GAAG,CAAC;IAChC8B,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDL,UAAU,EAAE;IACVM,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAEhC,MAAM,CAACiC;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { SPACING } from '@magmamath/react-native-ui';
6
+ import { MatrixCell } from "./MatrixCell.js";
7
+ import { MATRIX_SIZE } from "../../../fluency.constants.js";
8
+ import { useFluencyModePreset } from "../../../hooks/useFluencyModePreset.js";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const MOCK_SCORES = {
11
+ '1-1': 90,
12
+ '2-3': 70,
13
+ '3-5': 50,
14
+ '5-2': 30,
15
+ '4-4': 10,
16
+ '1-5': 85,
17
+ '3-3': 45
18
+ };
19
+ export const MatrixFill = () => {
20
+ const {
21
+ matrix
22
+ } = useFluencyModePreset();
23
+ return /*#__PURE__*/_jsx(View, {
24
+ style: styles.grid,
25
+ children: Array.from({
26
+ length: MATRIX_SIZE
27
+ }, (_, row) => /*#__PURE__*/_jsx(View, {
28
+ style: styles.row,
29
+ children: Array.from({
30
+ length: MATRIX_SIZE
31
+ }, (_, col) => /*#__PURE__*/_jsx(MatrixCell, {
32
+ row: row,
33
+ col: col,
34
+ score: MOCK_SCORES[`${row}-${col}`] ?? null,
35
+ mastery: matrix.mastery
36
+ }, col))
37
+ }, row))
38
+ });
39
+ };
40
+ const styles = StyleSheet.create({
41
+ grid: {
42
+ flex: 1,
43
+ gap: SPACING[50]
44
+ },
45
+ row: {
46
+ flex: 1,
47
+ flexDirection: 'row',
48
+ gap: SPACING[50]
49
+ }
50
+ });
51
+ //# sourceMappingURL=MatrixFill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","SPACING","MatrixCell","MATRIX_SIZE","useFluencyModePreset","jsx","_jsx","MOCK_SCORES","MatrixFill","matrix","style","styles","grid","children","Array","from","length","_","row","col","score","mastery","create","flex","gap","flexDirection"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixFill.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,OAAO,QAAQ,4BAA4B;AACpD,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,WAAW,QAAQ,+BAA4B;AACxD,SAASC,oBAAoB,QAAQ,wCAAqC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE1E,MAAMC,WAAmC,GAAG;EAC1C,KAAK,EAAE,EAAE;EACT,KAAK,EAAE,EAAE;EACT,KAAK,EAAE,EAAE;EACT,KAAK,EAAE,EAAE;EACT,KAAK,EAAE,EAAE;EACT,KAAK,EAAE,EAAE;EACT,KAAK,EAAE;AACT,CAAC;AAED,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAO,CAAC,GAAGL,oBAAoB,CAAC,CAAC;EAEzC,oBACEE,IAAA,CAACP,IAAI;IAACW,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,EACtBC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEb;IAAY,CAAC,EAAE,CAACc,CAAC,EAAEC,GAAG,kBAC1CZ,IAAA,CAACP,IAAI;MAAWW,KAAK,EAAEC,MAAM,CAACO,GAAI;MAAAL,QAAA,EAC/BC,KAAK,CAACC,IAAI,CAAC;QAAEC,MAAM,EAAEb;MAAY,CAAC,EAAE,CAACc,CAAC,EAAEE,GAAG,kBAC1Cb,IAAA,CAACJ,UAAU;QAETgB,GAAG,EAAEA,GAAI;QACTC,GAAG,EAAEA,GAAI;QACTC,KAAK,EAAEb,WAAW,CAAC,GAAGW,GAAG,IAAIC,GAAG,EAAE,CAAC,IAAI,IAAK;QAC5CE,OAAO,EAAEZ,MAAM,CAACY;MAAQ,GAJnBF,GAKN,CACF;IAAC,GATOD,GAUL,CACP;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMP,MAAM,GAAGX,UAAU,CAACsB,MAAM,CAAC;EAC/BV,IAAI,EAAE;IACJW,IAAI,EAAE,CAAC;IACPC,GAAG,EAAEvB,OAAO,CAAC,EAAE;EACjB,CAAC;EACDiB,GAAG,EAAE;IACHK,IAAI,EAAE,CAAC;IACPE,aAAa,EAAE,KAAK;IACpBD,GAAG,EAAEvB,OAAO,CAAC,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, Text, StyleSheet } from 'react-native';
5
+ import { BORDER_RADIUS, Button, ButtonSize, ButtonVariant, COLORS, PlayIcon, SHADOWS, SPACING } from '@magmamath/react-native-ui';
6
+ import { useFluencyModePreset } from "../../../hooks/useFluencyModePreset.js";
7
+ import { useFluency } from "../../../context/FluencyContext.js";
8
+ import { useText } from "../../../../../i18n/i18n.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const LEGEND_DOT_SIZE = 14;
11
+ const LEGEND_DOT_BORDER_RADIUS = 3;
12
+ const LEGEND_LABEL_FONT_SIZE = 12;
13
+ export const MatrixLegend = ({}) => {
14
+ const t = useText();
15
+ const {
16
+ matrix,
17
+ buttonColor,
18
+ legendItems
19
+ } = useFluencyModePreset();
20
+ const {
21
+ onPracticePress
22
+ } = useFluency();
23
+ return /*#__PURE__*/_jsxs(View, {
24
+ style: styles.container,
25
+ children: [/*#__PURE__*/_jsx(View, {
26
+ style: styles.legendItems,
27
+ children: legendItems.map(item => /*#__PURE__*/_jsxs(View, {
28
+ style: styles.legendItem,
29
+ children: [/*#__PURE__*/_jsx(View, {
30
+ style: [styles.legendDot, {
31
+ backgroundColor: item.color
32
+ }, item.withBorder && styles.legendDotBorder]
33
+ }), /*#__PURE__*/_jsx(Text, {
34
+ style: styles.legendLabel,
35
+ children: item.label
36
+ })]
37
+ }, item.label))
38
+ }), /*#__PURE__*/_jsx(Button, {
39
+ onPress: onPracticePress,
40
+ variant: ButtonVariant.PRIMARY,
41
+ size: ButtonSize.MEDIUM,
42
+ colorScheme: buttonColor,
43
+ icon: /*#__PURE__*/_jsx(PlayIcon, {
44
+ color: COLORS.NEUTRAL_1
45
+ }),
46
+ raiseLevel: 3,
47
+ style: {
48
+ container: styles.practiceButton,
49
+ text: styles.practiceButtonText
50
+ },
51
+ children: `${t('student.fluency.practice')} ${t(matrix.operatorName)}`
52
+ })]
53
+ });
54
+ };
55
+ const styles = StyleSheet.create({
56
+ container: {
57
+ height: 65,
58
+ flexDirection: 'row',
59
+ alignItems: 'flex-end',
60
+ justifyContent: 'space-between',
61
+ backgroundColor: COLORS.NEUTRAL_2,
62
+ borderBottomColor: COLORS.NEUTRAL_5,
63
+ paddingHorizontal: SPACING[300],
64
+ paddingVertical: SPACING[300],
65
+ borderTopLeftRadius: BORDER_RADIUS[400],
66
+ borderTopRightRadius: BORDER_RADIUS[400],
67
+ ...SHADOWS[1]
68
+ },
69
+ legendItems: {
70
+ flexDirection: 'row',
71
+ alignItems: 'center',
72
+ gap: SPACING[400]
73
+ },
74
+ legendItem: {
75
+ flexDirection: 'row',
76
+ alignItems: 'center',
77
+ gap: SPACING[150]
78
+ },
79
+ legendDot: {
80
+ width: LEGEND_DOT_SIZE,
81
+ height: LEGEND_DOT_SIZE,
82
+ borderRadius: LEGEND_DOT_BORDER_RADIUS
83
+ },
84
+ legendDotBorder: {
85
+ borderWidth: 0.5,
86
+ borderColor: COLORS.NEUTRAL_5
87
+ },
88
+ legendLabel: {
89
+ fontSize: LEGEND_LABEL_FONT_SIZE,
90
+ color: COLORS.NEUTRAL_7
91
+ },
92
+ practiceButton: {
93
+ alignSelf: 'center'
94
+ },
95
+ practiceButtonText: {
96
+ textTransform: 'uppercase'
97
+ }
98
+ });
99
+ //# sourceMappingURL=MatrixLegend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","BORDER_RADIUS","Button","ButtonSize","ButtonVariant","COLORS","PlayIcon","SHADOWS","SPACING","useFluencyModePreset","useFluency","useText","jsx","_jsx","jsxs","_jsxs","LEGEND_DOT_SIZE","LEGEND_DOT_BORDER_RADIUS","LEGEND_LABEL_FONT_SIZE","MatrixLegend","t","matrix","buttonColor","legendItems","onPracticePress","style","styles","container","children","map","item","legendItem","legendDot","backgroundColor","color","withBorder","legendDotBorder","legendLabel","label","onPress","variant","PRIMARY","size","MEDIUM","colorScheme","icon","NEUTRAL_1","raiseLevel","practiceButton","text","practiceButtonText","operatorName","create","height","flexDirection","alignItems","justifyContent","NEUTRAL_2","borderBottomColor","NEUTRAL_5","paddingHorizontal","paddingVertical","borderTopLeftRadius","borderTopRightRadius","gap","width","borderRadius","borderWidth","borderColor","fontSize","NEUTRAL_7","alignSelf","textTransform"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixLegend.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { COLORS, SelectOption, SPACING } from '@magmamath/react-native-ui';
6
+ import { ProgressBar } from "./ProgressBar.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export const MathOperatorRow = ({
9
+ title,
10
+ icon,
11
+ progress,
12
+ color,
13
+ selected,
14
+ onSelect,
15
+ showDivider = true
16
+ }) => /*#__PURE__*/_jsxs(View, {
17
+ children: [/*#__PURE__*/_jsx(SelectOption, {
18
+ title: title,
19
+ icon: icon,
20
+ color: color,
21
+ selected: selected,
22
+ onPress: onSelect
23
+ }), /*#__PURE__*/_jsx(ProgressBar, {
24
+ progress: progress,
25
+ color: color
26
+ }), showDivider && /*#__PURE__*/_jsx(View, {
27
+ style: styles.divider
28
+ })]
29
+ });
30
+ const styles = StyleSheet.create({
31
+ divider: {
32
+ height: 1,
33
+ backgroundColor: COLORS.NEUTRAL_3,
34
+ marginVertical: SPACING[600]
35
+ }
36
+ });
37
+ //# sourceMappingURL=MathOperatorRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","COLORS","SelectOption","SPACING","ProgressBar","jsx","_jsx","jsxs","_jsxs","MathOperatorRow","title","icon","progress","color","selected","onSelect","showDivider","children","onPress","style","styles","divider","create","height","backgroundColor","NEUTRAL_3","marginVertical"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/select-math-operator/MathOperatorRow.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,MAAM,EAAEC,YAAY,EAAqBC,OAAO,QAAQ,4BAA4B;AAC7F,SAASC,WAAW,QAAQ,kBAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAY3C,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACRC,QAAQ;EACRC,WAAW,GAAG;AACM,CAAC,kBACrBR,KAAA,CAACR,IAAI;EAAAiB,QAAA,gBACHX,IAAA,CAACJ,YAAY;IAACQ,KAAK,EAAEA,KAAM;IAACC,IAAI,EAAEA,IAAK;IAACE,KAAK,EAAEA,KAAM;IAACC,QAAQ,EAAEA,QAAS;IAACI,OAAO,EAAEH;EAAS,CAAE,CAAC,eAC/FT,IAAA,CAACF,WAAW;IAACQ,QAAQ,EAAEA,QAAS;IAACC,KAAK,EAAEA;EAAM,CAAE,CAAC,EAChDG,WAAW,iBAAIV,IAAA,CAACN,IAAI;IAACmB,KAAK,EAAEC,MAAM,CAACC;EAAQ,CAAE,CAAC;AAAA,CAC3C,CACP;AAED,MAAMD,MAAM,GAAGrB,UAAU,CAACuB,MAAM,CAAC;EAC/BD,OAAO,EAAE;IACPE,MAAM,EAAE,CAAC;IACTC,eAAe,EAAEvB,MAAM,CAACwB,SAAS;IACjCC,cAAc,EAAEvB,OAAO,CAAC,GAAG;EAC7B;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { BORDER_RADIUS, COLORS, HeadingVariants, SelectOptionColor, SPACING, Typography } from '@magmamath/react-native-ui';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const PROGRESS_COLOR_SHADES = {
8
+ [SelectOptionColor.GREEN]: {
9
+ low: COLORS.GREEN_2,
10
+ medium: COLORS.GREEN_3,
11
+ high: COLORS.GREEN_6,
12
+ max: COLORS.GREEN_7
13
+ },
14
+ [SelectOptionColor.ORANGE]: {
15
+ low: COLORS.ORANGE_2,
16
+ medium: COLORS.ORANGE_3,
17
+ high: COLORS.ORANGE_6,
18
+ max: COLORS.ORANGE_7
19
+ },
20
+ [SelectOptionColor.BLUE]: {
21
+ low: COLORS.BLUE_2,
22
+ medium: COLORS.BLUE_3,
23
+ high: COLORS.BLUE_6,
24
+ max: COLORS.BLUE_7
25
+ },
26
+ [SelectOptionColor.RED]: {
27
+ low: COLORS.RED_2,
28
+ medium: COLORS.RED_3,
29
+ high: COLORS.RED_6,
30
+ max: COLORS.RED_7
31
+ },
32
+ [SelectOptionColor.YELLOW]: {
33
+ low: COLORS.YELLOW_2,
34
+ medium: COLORS.YELLOW_3,
35
+ high: COLORS.YELLOW_6,
36
+ max: COLORS.YELLOW_7
37
+ },
38
+ [SelectOptionColor.PURPLE]: {
39
+ low: COLORS.PURPLE_2,
40
+ medium: COLORS.PURPLE_3,
41
+ high: COLORS.PURPLE_6,
42
+ max: COLORS.PURPLE_7
43
+ },
44
+ [SelectOptionColor.GREY]: {
45
+ low: COLORS.NEUTRAL_2,
46
+ medium: COLORS.NEUTRAL_3,
47
+ high: COLORS.NEUTRAL_6,
48
+ max: COLORS.NEUTRAL_7
49
+ },
50
+ [SelectOptionColor.SUNSET]: {
51
+ low: COLORS.RED_2,
52
+ medium: COLORS.RED_3,
53
+ high: COLORS.RED_6,
54
+ max: COLORS.RED_7
55
+ }
56
+ };
57
+ const PRIMARY_COLOR_MAP = {
58
+ [SelectOptionColor.GREEN]: COLORS.PRIMARY_GREEN,
59
+ [SelectOptionColor.ORANGE]: COLORS.PRIMARY_ORANGE,
60
+ [SelectOptionColor.BLUE]: COLORS.PRIMARY_BLUE,
61
+ [SelectOptionColor.RED]: COLORS.PRIMARY_RED,
62
+ [SelectOptionColor.YELLOW]: COLORS.PRIMARY_YELLOW,
63
+ [SelectOptionColor.PURPLE]: COLORS.PRIMARY_PURPLE,
64
+ [SelectOptionColor.GREY]: COLORS.NEUTRAL_6,
65
+ [SelectOptionColor.SUNSET]: COLORS.PRIMARY_RED
66
+ };
67
+ const getFillColor = (shades, progress) => {
68
+ if (progress <= 10) return shades.low;
69
+ if (progress <= 20) return shades.medium;
70
+ if (progress <= 80) return shades.high;
71
+ return shades.max;
72
+ };
73
+ export const ProgressBar = ({
74
+ progress,
75
+ color = SelectOptionColor.GREEN
76
+ }) => {
77
+ const normalized = Math.round(Math.min(100, Math.max(0, progress)));
78
+ const fillColor = getFillColor(PROGRESS_COLOR_SHADES[color], normalized);
79
+ const textColor = PRIMARY_COLOR_MAP[color];
80
+ return /*#__PURE__*/_jsxs(View, {
81
+ style: styles.container,
82
+ children: [/*#__PURE__*/_jsx(View, {
83
+ style: styles.track,
84
+ children: /*#__PURE__*/_jsx(View, {
85
+ style: [styles.fill, {
86
+ backgroundColor: fillColor,
87
+ width: `${normalized}%`
88
+ }]
89
+ })
90
+ }), /*#__PURE__*/_jsxs(Typography, {
91
+ variant: HeadingVariants.H10,
92
+ style: {
93
+ color: textColor
94
+ },
95
+ children: [normalized, "%"]
96
+ })]
97
+ });
98
+ };
99
+ const styles = StyleSheet.create({
100
+ container: {
101
+ flexDirection: 'row',
102
+ marginTop: SPACING[200],
103
+ gap: SPACING[200],
104
+ alignItems: 'center'
105
+ },
106
+ track: {
107
+ flex: 1,
108
+ height: 18,
109
+ backgroundColor: COLORS.NEUTRAL_3,
110
+ borderRadius: BORDER_RADIUS[450],
111
+ overflow: 'hidden'
112
+ },
113
+ fill: {
114
+ height: '100%',
115
+ borderRadius: BORDER_RADIUS[450]
116
+ }
117
+ });
118
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","BORDER_RADIUS","COLORS","HeadingVariants","SelectOptionColor","SPACING","Typography","jsx","_jsx","jsxs","_jsxs","PROGRESS_COLOR_SHADES","GREEN","low","GREEN_2","medium","GREEN_3","high","GREEN_6","max","GREEN_7","ORANGE","ORANGE_2","ORANGE_3","ORANGE_6","ORANGE_7","BLUE","BLUE_2","BLUE_3","BLUE_6","BLUE_7","RED","RED_2","RED_3","RED_6","RED_7","YELLOW","YELLOW_2","YELLOW_3","YELLOW_6","YELLOW_7","PURPLE","PURPLE_2","PURPLE_3","PURPLE_6","PURPLE_7","GREY","NEUTRAL_2","NEUTRAL_3","NEUTRAL_6","NEUTRAL_7","SUNSET","PRIMARY_COLOR_MAP","PRIMARY_GREEN","PRIMARY_ORANGE","PRIMARY_BLUE","PRIMARY_RED","PRIMARY_YELLOW","PRIMARY_PURPLE","getFillColor","shades","progress","ProgressBar","color","normalized","Math","round","min","fillColor","textColor","style","styles","container","children","track","fill","backgroundColor","width","variant","H10","create","flexDirection","marginTop","gap","alignItems","flex","height","borderRadius","overflow"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/select-math-operator/ProgressBar.tsx"],"mappings":"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","ignoreList":[]}