@magmamath/students-features 1.3.26-rc.3 → 1.3.26-rc.4

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 (336) hide show
  1. package/dist/commonjs/features/fluency/components/Fluency.js +15 -32
  2. package/dist/commonjs/features/fluency/components/Fluency.js.map +1 -1
  3. package/dist/commonjs/features/fluency/components/FluencySolving.js +29 -9
  4. package/dist/commonjs/features/fluency/components/FluencySolving.js.map +1 -1
  5. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js +17 -18
  6. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -1
  7. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js +26 -24
  8. package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -1
  9. package/dist/commonjs/features/fluency/components/fluency-solving/{EquationContent.js → components/EquationContent.js} +5 -5
  10. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -0
  11. package/dist/commonjs/features/fluency/components/fluency-solving/{FluencyEquationCard.js → components/FluencyEquationCard.js} +16 -8
  12. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -0
  13. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js +62 -0
  14. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +1 -0
  15. package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingCard.js → components/FluencySolvingCard.js} +40 -22
  16. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +1 -0
  17. package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingHeader.js → components/FluencySolvingHeader.js} +6 -8
  18. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -0
  19. package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingProgress.js → components/FluencySolvingProgress.js} +32 -4
  20. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -0
  21. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js +29 -0
  22. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +1 -0
  23. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js +58 -0
  24. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +1 -0
  25. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js +2 -0
  26. package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js.map +1 -0
  27. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js +2 -2
  28. package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js.map +1 -1
  29. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js +41 -12
  30. package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
  31. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js +16 -26
  32. package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js.map +1 -1
  33. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js +4 -8
  34. package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -1
  35. package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js +38 -0
  36. package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js.map +1 -0
  37. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js +6 -3
  38. package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
  39. package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js +178 -0
  40. package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js.map +1 -0
  41. package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js +99 -0
  42. package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js.map +1 -0
  43. package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js +113 -0
  44. package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js.map +1 -0
  45. package/dist/commonjs/features/fluency/fluency.constants.js +14 -6
  46. package/dist/commonjs/features/fluency/fluency.constants.js.map +1 -1
  47. package/dist/commonjs/features/fluency/fluency.helpers.js +53 -25
  48. package/dist/commonjs/features/fluency/fluency.helpers.js.map +1 -1
  49. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js +16 -7
  50. package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js.map +1 -1
  51. package/dist/commonjs/features/fluency/{components/fluency-solving/FluencyNumpad.js → hooks/useFluencyNumpad.js} +58 -82
  52. package/dist/commonjs/features/fluency/hooks/useFluencyNumpad.js.map +1 -0
  53. package/dist/commonjs/features/fluency/hooks/useSuccessSound.js +0 -2
  54. package/dist/commonjs/features/fluency/hooks/useSuccessSound.js.map +1 -1
  55. package/dist/commonjs/features/fluency/model/FluencyApiModel.js +6 -1
  56. package/dist/commonjs/features/fluency/model/FluencyApiModel.js.map +1 -1
  57. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js +8 -1
  58. package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js.map +1 -1
  59. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js +16 -1
  60. package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js.map +1 -1
  61. package/dist/commonjs/features/fluency/model/FluencyModel.js +12 -28
  62. package/dist/commonjs/features/fluency/model/FluencyModel.js.map +1 -1
  63. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js +57 -5
  64. package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +1 -1
  65. package/dist/commonjs/lib/constants.js +1 -0
  66. package/dist/commonjs/lib/constants.js.map +1 -1
  67. package/dist/module/features/fluency/components/Fluency.js +17 -34
  68. package/dist/module/features/fluency/components/Fluency.js.map +1 -1
  69. package/dist/module/features/fluency/components/FluencySolving.js +29 -9
  70. package/dist/module/features/fluency/components/FluencySolving.js.map +1 -1
  71. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js +17 -18
  72. package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -1
  73. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js +26 -24
  74. package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -1
  75. package/dist/module/features/fluency/components/fluency-solving/{EquationContent.js → components/EquationContent.js} +5 -5
  76. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -0
  77. package/dist/module/features/fluency/components/fluency-solving/{FluencyEquationCard.js → components/FluencyEquationCard.js} +16 -8
  78. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -0
  79. package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js +56 -0
  80. package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +1 -0
  81. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js +84 -0
  82. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +1 -0
  83. package/dist/module/features/fluency/components/fluency-solving/{FluencySolvingHeader.js → components/FluencySolvingHeader.js} +6 -8
  84. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -0
  85. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +69 -0
  86. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -0
  87. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js +25 -0
  88. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +1 -0
  89. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js +52 -0
  90. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +1 -0
  91. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js +2 -0
  92. package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js.map +1 -0
  93. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js +2 -2
  94. package/dist/module/features/fluency/components/matrix/FluencyMatrix.js.map +1 -1
  95. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js +44 -15
  96. package/dist/module/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
  97. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js +16 -26
  98. package/dist/module/features/fluency/components/matrix/components/MatrixFill.js.map +1 -1
  99. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js +4 -8
  100. package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -1
  101. package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js +32 -0
  102. package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js.map +1 -0
  103. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js +6 -3
  104. package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
  105. package/dist/module/features/fluency/components/session-results/FluencySessionResults.js +172 -0
  106. package/dist/module/features/fluency/components/session-results/FluencySessionResults.js.map +1 -0
  107. package/dist/module/features/fluency/components/session-results/SessionStatCard.js +93 -0
  108. package/dist/module/features/fluency/components/session-results/SessionStatCard.js.map +1 -0
  109. package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js +107 -0
  110. package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js.map +1 -0
  111. package/dist/module/features/fluency/fluency.constants.js +13 -5
  112. package/dist/module/features/fluency/fluency.constants.js.map +1 -1
  113. package/dist/module/features/fluency/fluency.helpers.js +51 -21
  114. package/dist/module/features/fluency/fluency.helpers.js.map +1 -1
  115. package/dist/module/features/fluency/hooks/useFluencyModePreset.js +16 -7
  116. package/dist/module/features/fluency/hooks/useFluencyModePreset.js.map +1 -1
  117. package/dist/module/features/fluency/{components/fluency-solving/FluencyNumpad.js → hooks/useFluencyNumpad.js} +58 -82
  118. package/dist/module/features/fluency/hooks/useFluencyNumpad.js.map +1 -0
  119. package/dist/module/features/fluency/hooks/useSuccessSound.js +0 -1
  120. package/dist/module/features/fluency/hooks/useSuccessSound.js.map +1 -1
  121. package/dist/module/features/fluency/model/FluencyApiModel.js +6 -1
  122. package/dist/module/features/fluency/model/FluencyApiModel.js.map +1 -1
  123. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js +8 -1
  124. package/dist/module/features/fluency/model/FluencyDaysStreakModel.js.map +1 -1
  125. package/dist/module/features/fluency/model/FluencyMatrixModel.js +16 -1
  126. package/dist/module/features/fluency/model/FluencyMatrixModel.js.map +1 -1
  127. package/dist/module/features/fluency/model/FluencyModel.js +13 -29
  128. package/dist/module/features/fluency/model/FluencyModel.js.map +1 -1
  129. package/dist/module/features/fluency/model/FluencySolvingModel.js +58 -6
  130. package/dist/module/features/fluency/model/FluencySolvingModel.js.map +1 -1
  131. package/dist/module/lib/constants.js +1 -0
  132. package/dist/module/lib/constants.js.map +1 -1
  133. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts +2 -1
  134. package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts.map +1 -1
  135. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts +2 -1
  136. package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts.map +1 -1
  137. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts +5 -3
  138. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -1
  139. package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -1
  140. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -0
  141. package/dist/typescript/{module/features/fluency/components/fluency-solving → commonjs/features/fluency/components/fluency-solving/components}/FluencyEquationCard.d.ts +1 -1
  142. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -0
  143. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +1 -0
  144. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +1 -0
  145. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -0
  146. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +10 -0
  147. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +1 -0
  148. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +5 -0
  149. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +1 -0
  150. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +15 -0
  151. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +1 -0
  152. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +20 -0
  153. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +1 -0
  154. package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -1
  155. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts +5 -7
  156. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
  157. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts +1 -1
  158. package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -1
  159. package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts +7 -0
  160. package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +1 -0
  161. package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
  162. package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts +11 -0
  163. package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -0
  164. package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts +9 -0
  165. package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts.map +1 -0
  166. package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts +15 -0
  167. package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +1 -0
  168. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +12 -5
  169. package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +1 -1
  170. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts +3 -5
  171. package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts.map +1 -1
  172. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts +58 -8
  173. package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts.map +1 -1
  174. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts +22 -3
  175. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -1
  176. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts +53 -0
  177. package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts.map +1 -0
  178. package/dist/typescript/commonjs/features/fluency/hooks/useSuccessSound.d.ts.map +1 -1
  179. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts +6 -3
  180. package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts.map +1 -1
  181. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts +5 -0
  182. package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -1
  183. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts +9 -0
  184. package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -1
  185. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts +3 -15
  186. package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts.map +1 -1
  187. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts +20 -7
  188. package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
  189. package/dist/typescript/commonjs/lib/constants.d.ts +2 -1
  190. package/dist/typescript/commonjs/lib/constants.d.ts.map +1 -1
  191. package/dist/typescript/module/features/fluency/components/Fluency.d.ts +2 -1
  192. package/dist/typescript/module/features/fluency/components/Fluency.d.ts.map +1 -1
  193. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts +2 -1
  194. package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts.map +1 -1
  195. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts +5 -3
  196. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -1
  197. package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -1
  198. package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -0
  199. package/dist/typescript/{commonjs/features/fluency/components/fluency-solving → module/features/fluency/components/fluency-solving/components}/FluencyEquationCard.d.ts +1 -1
  200. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -0
  201. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +1 -0
  202. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +1 -0
  203. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -0
  204. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +10 -0
  205. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +1 -0
  206. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +5 -0
  207. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +1 -0
  208. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +15 -0
  209. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +1 -0
  210. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +20 -0
  211. package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +1 -0
  212. package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -1
  213. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts +5 -7
  214. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
  215. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts +1 -1
  216. package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -1
  217. package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts +7 -0
  218. package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +1 -0
  219. package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
  220. package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts +11 -0
  221. package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -0
  222. package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts +9 -0
  223. package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts.map +1 -0
  224. package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts +15 -0
  225. package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +1 -0
  226. package/dist/typescript/module/features/fluency/fluency.constants.d.ts +12 -5
  227. package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +1 -1
  228. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts +3 -5
  229. package/dist/typescript/module/features/fluency/fluency.helpers.d.ts.map +1 -1
  230. package/dist/typescript/module/features/fluency/fluency.types.d.ts +58 -8
  231. package/dist/typescript/module/features/fluency/fluency.types.d.ts.map +1 -1
  232. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts +22 -3
  233. package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -1
  234. package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts +53 -0
  235. package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts.map +1 -0
  236. package/dist/typescript/module/features/fluency/hooks/useSuccessSound.d.ts.map +1 -1
  237. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts +6 -3
  238. package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts.map +1 -1
  239. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts +5 -0
  240. package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -1
  241. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts +9 -0
  242. package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -1
  243. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts +3 -15
  244. package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts.map +1 -1
  245. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts +20 -7
  246. package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
  247. package/dist/typescript/module/lib/constants.d.ts +2 -1
  248. package/dist/typescript/module/lib/constants.d.ts.map +1 -1
  249. package/package.json +1 -1
  250. package/src/features/fluency/components/Fluency.tsx +17 -41
  251. package/src/features/fluency/components/FluencySolving.tsx +30 -5
  252. package/src/features/fluency/components/day-streak-counter/DayStreak.tsx +24 -20
  253. package/src/features/fluency/components/day-streak-counter/DayStreakCounter.tsx +41 -28
  254. package/src/features/fluency/components/fluency-solving/{EquationContent.tsx → components/EquationContent.tsx} +5 -5
  255. package/src/features/fluency/components/fluency-solving/{FluencyEquationCard.tsx → components/FluencyEquationCard.tsx} +12 -6
  256. package/src/features/fluency/components/fluency-solving/components/FluencyNumpad.tsx +54 -0
  257. package/src/features/fluency/components/fluency-solving/components/FluencySolvingCard.tsx +84 -0
  258. package/src/features/fluency/components/fluency-solving/{FluencySolvingHeader.tsx → components/FluencySolvingHeader.tsx} +6 -8
  259. package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx +68 -0
  260. package/src/features/fluency/components/fluency-solving/fluencySolving.constants.ts +25 -0
  261. package/src/features/fluency/components/fluency-solving/fluencySolving.helpers.ts +78 -0
  262. package/src/features/fluency/components/fluency-solving/fluencySolving.types.ts +21 -0
  263. package/src/features/fluency/components/matrix/FluencyMatrix.tsx +3 -2
  264. package/src/features/fluency/components/matrix/components/MatrixCell.tsx +46 -23
  265. package/src/features/fluency/components/matrix/components/MatrixFill.tsx +14 -24
  266. package/src/features/fluency/components/matrix/components/MatrixLegend.tsx +4 -4
  267. package/src/features/fluency/components/mobile-menu/MobileMenu.tsx +29 -0
  268. package/src/features/fluency/components/select-math-operator/SelectMathOperator.tsx +7 -3
  269. package/src/features/fluency/components/session-results/FluencySessionResults.tsx +204 -0
  270. package/src/features/fluency/components/session-results/SessionStatCard.tsx +100 -0
  271. package/src/features/fluency/components/session-results/SkillProgressionRow.tsx +100 -0
  272. package/src/features/fluency/fluency.constants.ts +13 -5
  273. package/src/features/fluency/fluency.helpers.ts +46 -27
  274. package/src/features/fluency/fluency.types.ts +70 -8
  275. package/src/features/fluency/hooks/useFluencyModePreset.ts +30 -20
  276. package/src/features/fluency/{components/fluency-solving/FluencyNumpad.tsx → hooks/useFluencyNumpad.tsx} +68 -94
  277. package/src/features/fluency/hooks/useSuccessSound.ts +0 -1
  278. package/src/features/fluency/model/FluencyApiModel.ts +18 -2
  279. package/src/features/fluency/model/FluencyDaysStreakModel.ts +11 -1
  280. package/src/features/fluency/model/FluencyMatrixModel.ts +20 -1
  281. package/src/features/fluency/model/FluencyModel.ts +15 -30
  282. package/src/features/fluency/model/FluencySolvingModel.ts +70 -8
  283. package/src/lib/constants.ts +3 -2
  284. package/src/types/types.d.ts +5 -0
  285. package/dist/commonjs/features/fluency/components/fluency-solving/EquationContent.js.map +0 -1
  286. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +0 -1
  287. package/dist/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.js.map +0 -1
  288. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +0 -1
  289. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +0 -1
  290. package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +0 -1
  291. package/dist/commonjs/features/fluency/model/FluencyInputModel.js +0 -20
  292. package/dist/commonjs/features/fluency/model/FluencyInputModel.js.map +0 -1
  293. package/dist/module/features/fluency/components/fluency-solving/EquationContent.js.map +0 -1
  294. package/dist/module/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +0 -1
  295. package/dist/module/features/fluency/components/fluency-solving/FluencyNumpad.js.map +0 -1
  296. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js +0 -66
  297. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +0 -1
  298. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +0 -1
  299. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js +0 -41
  300. package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +0 -1
  301. package/dist/module/features/fluency/model/FluencyInputModel.js +0 -15
  302. package/dist/module/features/fluency/model/FluencyInputModel.js.map +0 -1
  303. package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts +0 -2
  304. package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts.map +0 -1
  305. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/EquationContent.d.ts.map +0 -1
  306. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +0 -1
  307. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +0 -1
  308. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +0 -1
  309. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +0 -1
  310. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +0 -8
  311. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +0 -1
  312. package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts +0 -11
  313. package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts.map +0 -1
  314. package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts +0 -2
  315. package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts.map +0 -1
  316. package/dist/typescript/module/features/fluency/components/fluency-solving/EquationContent.d.ts.map +0 -1
  317. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +0 -1
  318. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +0 -1
  319. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +0 -1
  320. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +0 -1
  321. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +0 -8
  322. package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +0 -1
  323. package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts +0 -11
  324. package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts.map +0 -1
  325. package/src/features/fluency/__tests__/FluencyModel.test.ts +0 -28
  326. package/src/features/fluency/components/fluency-solving/FluencySolvingCard.tsx +0 -59
  327. package/src/features/fluency/components/fluency-solving/FluencySolvingProgress.tsx +0 -40
  328. package/src/features/fluency/model/FluencyInputModel.ts +0 -17
  329. /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{EquationContent.d.ts → components/EquationContent.d.ts} +0 -0
  330. /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencyNumpad.d.ts → components/FluencyNumpad.d.ts} +0 -0
  331. /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencySolvingCard.d.ts → components/FluencySolvingCard.d.ts} +0 -0
  332. /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencySolvingHeader.d.ts → components/FluencySolvingHeader.d.ts} +0 -0
  333. /package/dist/typescript/module/features/fluency/components/fluency-solving/{EquationContent.d.ts → components/EquationContent.d.ts} +0 -0
  334. /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencyNumpad.d.ts → components/FluencyNumpad.d.ts} +0 -0
  335. /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencySolvingCard.d.ts → components/FluencySolvingCard.d.ts} +0 -0
  336. /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencySolvingHeader.d.ts → components/FluencySolvingHeader.d.ts} +0 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useRef } from 'react';
4
+ import { View, StyleSheet } from 'react-native';
5
+ import { SPACING } from '@magmamath/react-native-ui';
6
+ import { useUnit } from 'effector-react/effector-react.mjs';
7
+ import { FluencyNumpad } from "./FluencyNumpad.js";
8
+ import { FluencyEquationCard } from "./FluencyEquationCard.js";
9
+ import { useFluency } from "../../../context/FluencyContext.js";
10
+ import { useCardSnapAnimation } from "../../../hooks/useCardSnapAnimation.js";
11
+ import { useSuccessSound } from "../../../hooks/useSuccessSound.js";
12
+ import { isWeb } from "../../../../../shared/common.constants.js";
13
+ import { KeyboardKeys } from "../../../../../lib/constants.js";
14
+ import { MAX_INPUT_LENGTH } from "../../../fluency.constants.js";
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ export const FluencySolvingCard = () => {
17
+ const {
18
+ model
19
+ } = useFluency();
20
+ const {
21
+ answer,
22
+ fact
23
+ } = useUnit({
24
+ answer: model.solving.$answer,
25
+ fact: model.solving.$current
26
+ });
27
+ const animation = useCardSnapAnimation();
28
+ const successSound = useSuccessSound();
29
+ const answerRef = useRef(answer);
30
+ const submitRef = useRef(() => {});
31
+ answerRef.current = answer;
32
+ const submit = () => {
33
+ if (!fact) return;
34
+ const isCorrect = answerRef.current !== null && answerRef.current === fact.answer;
35
+ if (isCorrect) {
36
+ successSound.play();
37
+ animation.trigger('right');
38
+ } else {
39
+ animation.trigger('left');
40
+ }
41
+ model.solving.submit();
42
+ };
43
+ submitRef.current = submit;
44
+ useEffect(() => {
45
+ if (!isWeb) return;
46
+ const handleKeyDown = event => {
47
+ const isDigit = /^\d$/.test(event.key);
48
+ if (isDigit) {
49
+ const currentStr = answerRef.current !== null ? answerRef.current.toString() : '';
50
+ if (currentStr.length >= MAX_INPUT_LENGTH) return;
51
+ model.solving.setAnswer(parseInt(currentStr + event.key, 10));
52
+ return;
53
+ }
54
+ if (event.key === KeyboardKeys.BACKSPACE) {
55
+ const currentStr = answerRef.current !== null ? answerRef.current.toString() : '';
56
+ const newStr = currentStr.slice(0, -1);
57
+ model.solving.setAnswer(newStr ? parseInt(newStr, 10) : null);
58
+ return;
59
+ }
60
+ if (event.key === KeyboardKeys.ENTER) submitRef.current();
61
+ };
62
+ window.addEventListener('keydown', handleKeyDown);
63
+ return () => window.removeEventListener('keydown', handleKeyDown);
64
+ }, []);
65
+ return /*#__PURE__*/_jsxs(View, {
66
+ children: [/*#__PURE__*/_jsx(View, {
67
+ style: styles.wrapper,
68
+ children: /*#__PURE__*/_jsx(FluencyEquationCard, {
69
+ animationStyles: animation.snapStyles
70
+ })
71
+ }), /*#__PURE__*/_jsx(FluencyNumpad, {
72
+ onEnterPress: submit
73
+ })]
74
+ });
75
+ };
76
+ const styles = StyleSheet.create({
77
+ wrapper: {
78
+ alignItems: 'center',
79
+ paddingVertical: SPACING[400],
80
+ paddingHorizontal: SPACING[600],
81
+ marginTop: SPACING[300]
82
+ }
83
+ });
84
+ //# sourceMappingURL=FluencySolvingCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","View","StyleSheet","SPACING","useUnit","FluencyNumpad","FluencyEquationCard","useFluency","useCardSnapAnimation","useSuccessSound","isWeb","KeyboardKeys","MAX_INPUT_LENGTH","jsx","_jsx","jsxs","_jsxs","FluencySolvingCard","model","answer","fact","solving","$answer","$current","animation","successSound","answerRef","submitRef","current","submit","isCorrect","play","trigger","handleKeyDown","event","isDigit","test","key","currentStr","toString","length","setAnswer","parseInt","BACKSPACE","newStr","slice","ENTER","window","addEventListener","removeEventListener","children","style","styles","wrapper","animationStyles","snapStyles","onEnterPress","create","alignItems","paddingVertical","paddingHorizontal","marginTop"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/FluencySolvingCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,16 +3,14 @@
3
3
  import React from 'react';
4
4
  import { View, StyleSheet } from 'react-native';
5
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";
6
+ import { useFluencyModePreset } from "../../../hooks/useFluencyModePreset.js";
7
+ import { XCloseIcon } from "../../../../../shared/icons/XCloseIcon.js";
9
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
9
  export const FluencySolvingHeader = ({
11
10
  onClosePress
12
11
  }) => {
13
- const t = useText();
14
- const uiMode = useFluencyModePreset();
15
- const OperatorIcon = uiMode.operatorIcon;
12
+ const modePreset = useFluencyModePreset();
13
+ const OperatorIcon = modePreset.icon;
16
14
  return /*#__PURE__*/_jsxs(View, {
17
15
  style: styles.container,
18
16
  children: [/*#__PURE__*/_jsx(Button, {
@@ -22,7 +20,7 @@ export const FluencySolvingHeader = ({
22
20
  onPress: onClosePress
23
21
  }), /*#__PURE__*/_jsx(View, {
24
22
  style: [styles.operatorBadge, {
25
- backgroundColor: uiMode.accentColor
23
+ backgroundColor: modePreset.colors.accent
26
24
  }],
27
25
  children: /*#__PURE__*/_jsx(OperatorIcon, {
28
26
  color: COLORS.NEUTRAL_1,
@@ -31,7 +29,7 @@ export const FluencySolvingHeader = ({
31
29
  }), /*#__PURE__*/_jsx(Typography, {
32
30
  variant: HeadingVariants.H4,
33
31
  style: styles.title,
34
- children: t(uiMode.matrix.operatorName)
32
+ children: modePreset.label
35
33
  })]
36
34
  });
37
35
  };
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","BORDER_RADIUS","Button","ButtonSize","ButtonVariant","COLORS","HeadingVariants","SHADOWS","SPACING","Typography","useFluencyModePreset","XCloseIcon","jsx","_jsx","jsxs","_jsxs","FluencySolvingHeader","onClosePress","modePreset","OperatorIcon","icon","style","styles","container","children","variant","SECONDARY","size","LARGE","onPress","operatorBadge","backgroundColor","colors","accent","color","NEUTRAL_1","H4","title","label","create","height","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","width","borderRadius","justifyContent","NEUTRAL_10","fontWeight"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/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,oBAAoB,QAAQ,wCAAqC;AAC1E,SAASC,UAAU,QAAQ,2CAAwC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMnE,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EAAEC;AAAwC,CAAC,KAAK;EACnF,MAAMC,UAAU,GAAGR,oBAAoB,CAAC,CAAC;EACzC,MAAMS,YAAY,GAAGD,UAAU,CAACE,IAAI;EAEpC,oBACEL,KAAA,CAAChB,IAAI;IAACsB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BX,IAAA,CAACX,MAAM;MACLuB,OAAO,EAAErB,aAAa,CAACsB,SAAU;MACjCC,IAAI,EAAExB,UAAU,CAACyB,KAAM;MACvBR,IAAI,eAAEP,IAAA,CAACF,UAAU,IAAE,CAAE;MACrBkB,OAAO,EAAEZ;IAAa,CACvB,CAAC,eACFJ,IAAA,CAACd,IAAI;MAACsB,KAAK,EAAE,CAACC,MAAM,CAACQ,aAAa,EAAE;QAAEC,eAAe,EAAEb,UAAU,CAACc,MAAM,CAACC;MAAO,CAAC,CAAE;MAAAT,QAAA,eACjFX,IAAA,CAACM,YAAY;QAACe,KAAK,EAAE7B,MAAM,CAAC8B,SAAU;QAACR,IAAI,EAAE;MAAG,CAAE;IAAC,CAC/C,CAAC,eACPd,IAAA,CAACJ,UAAU;MAACgB,OAAO,EAAEnB,eAAe,CAAC8B,EAAG;MAACf,KAAK,EAAEC,MAAM,CAACe,KAAM;MAAAb,QAAA,EAC1DN,UAAU,CAACoB;IAAK,CACP,CAAC;EAAA,CACT,CAAC;AAEX,CAAC;AAED,MAAMhB,MAAM,GAAGtB,UAAU,CAACuC,MAAM,CAAC;EAC/BhB,SAAS,EAAE;IACTiB,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,EAAE;IACPC,eAAe,EAAEpC,OAAO,CAAC,GAAG,CAAC;IAC7BqC,iBAAiB,EAAErC,OAAO,CAAC,GAAG,CAAC;IAC/B,GAAGD,OAAO,CAAC,CAAC;EACd,CAAC;EACDuB,aAAa,EAAE;IACbgB,KAAK,EAAE,EAAE;IACTN,MAAM,EAAE,EAAE;IACVO,YAAY,EAAE9C,aAAa,CAAC,GAAG,CAAC;IAChCyC,UAAU,EAAE,QAAQ;IACpBM,cAAc,EAAE,QAAQ;IACxB,GAAGzC,OAAO,CAAC,CAAC;EACd,CAAC;EACD8B,KAAK,EAAE;IACLH,KAAK,EAAE7B,MAAM,CAAC4C,UAAU;IACxBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,69 @@
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
+ outcomes
11
+ }) => {
12
+ return /*#__PURE__*/_jsx(View, {
13
+ style: styles.container,
14
+ children: Array.from({
15
+ length: total
16
+ }).map((_, index) => {
17
+ if (index === activeIndex) return /*#__PURE__*/_jsx(View, {
18
+ style: styles.dotActive
19
+ }, index);
20
+ if (index < activeIndex) {
21
+ const outcome = outcomes[index];
22
+ return /*#__PURE__*/_jsx(View, {
23
+ style: outcome ? DOT_STYLE_BY_OUTCOME[outcome] : styles.dot
24
+ }, index);
25
+ }
26
+ return /*#__PURE__*/_jsx(View, {
27
+ style: styles.dot
28
+ }, index);
29
+ })
30
+ });
31
+ };
32
+ const styles = StyleSheet.create({
33
+ container: {
34
+ flexDirection: 'row',
35
+ gap: SPACING[200],
36
+ paddingHorizontal: SPACING[600],
37
+ paddingVertical: 14,
38
+ justifyContent: 'center'
39
+ },
40
+ dot: {
41
+ width: 12,
42
+ height: 12,
43
+ borderRadius: 6,
44
+ backgroundColor: COLORS.NEUTRAL_4
45
+ },
46
+ dotActive: {
47
+ width: 34,
48
+ height: 12,
49
+ backgroundColor: COLORS.NEUTRAL_10,
50
+ borderRadius: 9999
51
+ },
52
+ dotCorrect: {
53
+ width: 12,
54
+ height: 12,
55
+ borderRadius: 6,
56
+ backgroundColor: COLORS.PRIMARY_GREEN
57
+ },
58
+ dotWrong: {
59
+ width: 12,
60
+ height: 12,
61
+ borderRadius: 6,
62
+ backgroundColor: COLORS.PRIMARY_RED
63
+ }
64
+ });
65
+ const DOT_STYLE_BY_OUTCOME = {
66
+ correct: styles.dotCorrect,
67
+ wrong: styles.dotWrong
68
+ };
69
+ //# sourceMappingURL=FluencySolvingProgress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","StyleSheet","COLORS","SPACING","jsx","_jsx","FluencySolvingProgress","total","activeIndex","outcomes","style","styles","container","children","Array","from","length","map","_","index","dotActive","outcome","DOT_STYLE_BY_OUTCOME","dot","create","flexDirection","gap","paddingHorizontal","paddingVertical","justifyContent","width","height","borderRadius","backgroundColor","NEUTRAL_4","NEUTRAL_10","dotCorrect","PRIMARY_GREEN","dotWrong","PRIMARY_RED","correct","wrong"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/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;AAS5D,OAAO,MAAMC,sBAAsB,GAAGA,CAAC;EACrCC,KAAK;EACLC,WAAW;EACXC;AAC2B,CAAC,KAAK;EACjC,oBACEJ,IAAA,CAACL,IAAI;IAACU,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,EAC3BC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAET;IAAM,CAAC,CAAC,CAACU,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;MAC/C,IAAIA,KAAK,KAAKX,WAAW,EAAE,oBAAOH,IAAA,CAACL,IAAI;QAAaU,KAAK,EAAEC,MAAM,CAACS;MAAU,GAA/BD,KAAiC,CAAC;MAC/E,IAAIA,KAAK,GAAGX,WAAW,EAAE;QACvB,MAAMa,OAAO,GAAGZ,QAAQ,CAACU,KAAK,CAAC;QAC/B,oBAAOd,IAAA,CAACL,IAAI;UAAaU,KAAK,EAAEW,OAAO,GAAGC,oBAAoB,CAACD,OAAO,CAAC,GAAGV,MAAM,CAACY;QAAI,GAAnEJ,KAAqE,CAAC;MAC1F;MACA,oBAAOd,IAAA,CAACL,IAAI;QAAaU,KAAK,EAAEC,MAAM,CAACY;MAAI,GAAzBJ,KAA2B,CAAC;IAChD,CAAC;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMR,MAAM,GAAGV,UAAU,CAACuB,MAAM,CAAC;EAC/BZ,SAAS,EAAE;IACTa,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAEvB,OAAO,CAAC,GAAG,CAAC;IACjBwB,iBAAiB,EAAExB,OAAO,CAAC,GAAG,CAAC;IAC/ByB,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,EAAE/B,MAAM,CAACgC;EAC1B,CAAC;EACDd,SAAS,EAAE;IACTU,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVE,eAAe,EAAE/B,MAAM,CAACiC,UAAU;IAClCH,YAAY,EAAE;EAChB,CAAC;EACDI,UAAU,EAAE;IACVN,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE/B,MAAM,CAACmC;EAC1B,CAAC;EACDC,QAAQ,EAAE;IACRR,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE/B,MAAM,CAACqC;EAC1B;AACF,CAAC,CAAC;AAEF,MAAMjB,oBAAqD,GAAG;EAC5DkB,OAAO,EAAE7B,MAAM,CAACyB,UAAU;EAC1BK,KAAK,EAAE9B,MAAM,CAAC2B;AAChB,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ import { FluencyMode } from "../../fluency.constants.js";
4
+ const HOUR_MS = 60 * 60 * 1000;
5
+ const BOX_1_INTERVAL = 4 * HOUR_MS;
6
+ const BOX_2_INTERVAL = 36 * HOUR_MS; // 1.5 days
7
+ const BOX_3_INTERVAL = 144 * HOUR_MS; // 6 days
8
+ const BOX_4_INTERVAL = 672 * HOUR_MS; // 4 weeks
9
+ const BOX_5_INTERVAL = 2016 * HOUR_MS; // 12 weeks
10
+
11
+ export const DEFAULT_PICKER_PARAMS = {
12
+ wDue: 0.05,
13
+ wWeak: 0.35,
14
+ wEase: 0.3,
15
+ wRand: 0.02,
16
+ numBoxes: 5,
17
+ boxIntervals: [0, BOX_1_INTERVAL, BOX_2_INTERVAL, BOX_3_INTERVAL, BOX_4_INTERVAL, BOX_5_INTERVAL]
18
+ };
19
+ export const MODE_ANSWER_EVAL_FORMULA = {
20
+ [FluencyMode.ADDITION]: (a, b) => a + b,
21
+ [FluencyMode.SUBTRACTION]: (a, b) => a - b,
22
+ [FluencyMode.MULTIPLICATION]: (a, b) => a * b,
23
+ [FluencyMode.DIVISION]: (a, b) => a / b
24
+ };
25
+ //# sourceMappingURL=fluencySolving.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FluencyMode","HOUR_MS","BOX_1_INTERVAL","BOX_2_INTERVAL","BOX_3_INTERVAL","BOX_4_INTERVAL","BOX_5_INTERVAL","DEFAULT_PICKER_PARAMS","wDue","wWeak","wEase","wRand","numBoxes","boxIntervals","MODE_ANSWER_EVAL_FORMULA","ADDITION","a","b","SUBTRACTION","MULTIPLICATION","DIVISION"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.constants.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,4BAAyB;AAGrD,MAAMC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC9B,MAAMC,cAAc,GAAG,CAAC,GAAGD,OAAO;AAClC,MAAME,cAAc,GAAG,EAAE,GAAGF,OAAO,EAAC;AACpC,MAAMG,cAAc,GAAG,GAAG,GAAGH,OAAO,EAAC;AACrC,MAAMI,cAAc,GAAG,GAAG,GAAGJ,OAAO,EAAC;AACrC,MAAMK,cAAc,GAAG,IAAI,GAAGL,OAAO,EAAC;;AAEtC,OAAO,MAAMM,qBAAmC,GAAG;EACjDC,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,IAAI;EACXC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE,CAAC,CAAC,EAAEX,cAAc,EAAEC,cAAc,EAAEC,cAAc,EAAEC,cAAc,EAAEC,cAAc;AAClG,CAAC;AAED,OAAO,MAAMQ,wBAA+E,GAAG;EAC7F,CAACd,WAAW,CAACe,QAAQ,GAAG,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACvC,CAACjB,WAAW,CAACkB,WAAW,GAAG,CAACF,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EAC1C,CAACjB,WAAW,CAACmB,cAAc,GAAG,CAACH,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EAC7C,CAACjB,WAAW,CAACoB,QAAQ,GAAG,CAACJ,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC;AACxC,CAAC","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import { DEFAULT_PICKER_PARAMS, MODE_ANSWER_EVAL_FORMULA } from "./fluencySolving.constants.js";
4
+ export function toSolvingFacts(factMap, mode) {
5
+ return Object.entries(factMap).map(([id, fact]) => {
6
+ const [a, b] = fact.numbers;
7
+ const answer = MODE_ANSWER_EVAL_FORMULA[mode](a, b);
8
+ const box = fact.box ?? 0;
9
+ return {
10
+ id,
11
+ numbers: fact.numbers,
12
+ answer,
13
+ difficulty: fact.difficulty,
14
+ box,
15
+ lastSeenMs: fact.lastAttemptedAt ? new Date(fact.lastAttemptedAt).getTime() : null,
16
+ sessionStartBox: box,
17
+ hasFailedThisSession: false
18
+ };
19
+ });
20
+ }
21
+ function calculateAttentionScore(fact, now, params, maxDifficulty) {
22
+ const interval = params.boxIntervals[fact.box] || params.boxIntervals[1];
23
+ const overdueness = fact.lastSeenMs === null ? 1 : Math.max(0, (now - fact.lastSeenMs) / interval);
24
+ const weakness = 1 - fact.box / params.numBoxes;
25
+ const ease = maxDifficulty > 0 ? fact.difficulty / maxDifficulty : 0;
26
+ const rand = Math.random();
27
+ return params.wDue * overdueness + params.wWeak * weakness + params.wEase * (ease * weakness) + params.wRand * rand;
28
+ }
29
+ export function selectNextFact(facts, now, params = DEFAULT_PICKER_PARAMS) {
30
+ if (facts.length === 0) return null;
31
+ const available = facts.filter(f => f.box < params.numBoxes);
32
+ const pool = available.length > 0 ? available : facts;
33
+ const maxDifficulty = Math.max(...pool.map(f => f.difficulty));
34
+ const scored = pool.map(fact => ({
35
+ fact,
36
+ score: calculateAttentionScore(fact, now, params, maxDifficulty)
37
+ }));
38
+ return scored.reduce((best, curr) => curr.score > best.score ? curr : best).fact;
39
+ }
40
+ export function calculateNextBox({
41
+ currentBox,
42
+ isCorrect,
43
+ isFast,
44
+ sessionStartBox,
45
+ hasFailedThisSession
46
+ }) {
47
+ if (!isCorrect) return Math.max(1, currentBox - 1);
48
+ if (!isFast) return currentBox;
49
+ if (hasFailedThisSession || currentBox >= sessionStartBox + 1) return currentBox;
50
+ return Math.min(currentBox + 1, 5);
51
+ }
52
+ //# sourceMappingURL=fluencySolving.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_PICKER_PARAMS","MODE_ANSWER_EVAL_FORMULA","toSolvingFacts","factMap","mode","Object","entries","map","id","fact","a","b","numbers","answer","box","difficulty","lastSeenMs","lastAttemptedAt","Date","getTime","sessionStartBox","hasFailedThisSession","calculateAttentionScore","now","params","maxDifficulty","interval","boxIntervals","overdueness","Math","max","weakness","numBoxes","ease","rand","random","wDue","wWeak","wEase","wRand","selectNextFact","facts","length","available","filter","f","pool","scored","score","reduce","best","curr","calculateNextBox","currentBox","isCorrect","isFast","min"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.helpers.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=fluencySolving.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.types.ts"],"mappings":"","ignoreList":[]}
@@ -9,7 +9,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const FluencyMatrix = () => /*#__PURE__*/_jsxs(View, {
10
10
  style: styles.container,
11
11
  children: [/*#__PURE__*/_jsx(View, {
12
- style: styles.body,
12
+ style: styles.matrixFillContainer,
13
13
  children: /*#__PURE__*/_jsx(MatrixFill, {})
14
14
  }), /*#__PURE__*/_jsx(MatrixLegend, {})]
15
15
  });
@@ -21,7 +21,7 @@ const styles = StyleSheet.create({
21
21
  overflow: 'hidden',
22
22
  ...SHADOWS[1]
23
23
  },
24
- body: {
24
+ matrixFillContainer: {
25
25
  flex: 1,
26
26
  padding: SPACING[300],
27
27
  minHeight: 354
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","BORDER_RADIUS","COLORS","SHADOWS","SPACING","MatrixLegend","MatrixFill","jsx","_jsx","jsxs","_jsxs","FluencyMatrix","style","styles","container","children","matrixFillContainer","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,mBAAoB;IAAAD,QAAA,eACtCP,IAAA,CAACF,UAAU,IAAE;EAAC,CACV,CAAC,eAEPE,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,mBAAmB,EAAE;IACnBE,IAAI,EAAE,CAAC;IACPK,OAAO,EAAEnB,OAAO,CAAC,GAAG,CAAC;IACrBoB,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -2,26 +2,37 @@
2
2
 
3
3
  import React from 'react';
4
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";
5
+ import { BORDER_RADIUS, COLORS, SPACING } from '@magmamath/react-native-ui';
6
+ import { getMasteryLevelByBox } from "../../../fluency.helpers.js";
7
7
  import { FluencyMasteryLevel } from "../../../fluency.constants.js";
8
8
  import { StarFillIcon } from "../../../assets/StarFillIcon.js";
9
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
10
10
  export const MatrixCell = ({
11
- row,
12
- col,
13
- score,
14
- mastery
11
+ label,
12
+ box,
13
+ isHeader,
14
+ levelColors,
15
+ divisor
15
16
  }) => {
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);
17
+ const masteryLevel = box ? getMasteryLevelByBox(box) : null;
18
+ const isMastered = masteryLevel === FluencyMasteryLevel.MASTERED;
19
+ const bgColor = (() => {
20
+ if (masteryLevel) return levelColors[masteryLevel];
21
+ if (isHeader) return COLORS.NEUTRAL_5;
22
+ return COLORS.NEUTRAL_2;
23
+ })();
19
24
  return /*#__PURE__*/_jsxs(View, {
20
25
  style: [styles.cell, {
21
- backgroundColor: background
26
+ backgroundColor: bgColor
22
27
  }],
23
- children: [isMastered && /*#__PURE__*/_jsx(StarFillIcon, {}), label !== null && /*#__PURE__*/_jsx(Text, {
24
- style: styles.headerText,
28
+ children: [divisor !== null ? /*#__PURE__*/_jsx(View, {
29
+ style: styles.starContainer,
30
+ children: /*#__PURE__*/_jsxs(Text, {
31
+ style: styles.divisorText,
32
+ children: ["\xF7", divisor]
33
+ })
34
+ }) : isMastered && /*#__PURE__*/_jsx(StarFillIcon, {}), label !== null && /*#__PURE__*/_jsx(Text, {
35
+ style: divisor ? styles.cellNumber : styles.headerText,
25
36
  children: label
26
37
  })]
27
38
  });
@@ -33,9 +44,27 @@ const styles = StyleSheet.create({
33
44
  alignItems: 'center',
34
45
  justifyContent: 'center'
35
46
  },
47
+ starContainer: {
48
+ position: 'absolute',
49
+ top: 3,
50
+ right: SPACING[100]
51
+ },
52
+ divisorText: {
53
+ fontSize: 10,
54
+ fontWeight: '500',
55
+ color: COLORS.NEUTRAL_1,
56
+ lineHeight: SPACING[300]
57
+ },
58
+ cellNumber: {
59
+ fontSize: 14,
60
+ fontWeight: '700',
61
+ color: COLORS.NEUTRAL_3,
62
+ lineHeight: SPACING[400]
63
+ },
36
64
  headerText: {
37
- fontSize: 13,
38
- color: COLORS.NEUTRAL_2
65
+ fontSize: 12,
66
+ fontWeight: '600',
67
+ color: COLORS.NEUTRAL_8
39
68
  }
40
69
  });
41
70
  //# sourceMappingURL=MatrixCell.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","BORDER_RADIUS","COLORS","SPACING","getMasteryLevelByBox","FluencyMasteryLevel","StarFillIcon","jsxs","_jsxs","jsx","_jsx","MatrixCell","label","box","isHeader","levelColors","divisor","masteryLevel","isMastered","MASTERED","bgColor","NEUTRAL_5","NEUTRAL_2","style","styles","cell","backgroundColor","children","starContainer","divisorText","cellNumber","headerText","create","flex","borderRadius","alignItems","justifyContent","position","top","right","fontSize","fontWeight","color","NEUTRAL_1","lineHeight","NEUTRAL_3","NEUTRAL_8"],"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,EAAEC,OAAO,QAAQ,4BAA4B;AAC3E,SAASC,oBAAoB,QAAQ,6BAA0B;AAC/D,SAASC,mBAAmB,QAAQ,+BAA4B;AAChE,SAASC,YAAY,QAAQ,iCAA8B;AAAA,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAO3D,OAAO,MAAMC,UAAU,GAAGA,CAAC;EAAEC,KAAK;EAAEC,GAAG;EAAEC,QAAQ;EAAEC,WAAW;EAAEC;AAAyB,CAAC,KAAK;EAC7F,MAAMC,YAAY,GAAGJ,GAAG,GAAGT,oBAAoB,CAACS,GAAG,CAAC,GAAG,IAAI;EAC3D,MAAMK,UAAU,GAAGD,YAAY,KAAKZ,mBAAmB,CAACc,QAAQ;EAEhE,MAAMC,OAAO,GAAG,CAAC,MAAM;IACrB,IAAIH,YAAY,EAAE,OAAOF,WAAW,CAACE,YAAY,CAAC;IAClD,IAAIH,QAAQ,EAAE,OAAOZ,MAAM,CAACmB,SAAS;IACrC,OAAOnB,MAAM,CAACoB,SAAS;EACzB,CAAC,EAAE,CAAC;EAEJ,oBACEd,KAAA,CAACV,IAAI;IAACyB,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;MAAEC,eAAe,EAAEN;IAAQ,CAAC,CAAE;IAAAO,QAAA,GACtDX,OAAO,KAAK,IAAI,gBACfN,IAAA,CAACZ,IAAI;MAACyB,KAAK,EAAEC,MAAM,CAACI,aAAc;MAAAD,QAAA,eAChCnB,KAAA,CAACT,IAAI;QAACwB,KAAK,EAAEC,MAAM,CAACK,WAAY;QAAAF,QAAA,GAAC,MAAC,EAACX,OAAO;MAAA,CAAO;IAAC,CAC9C,CAAC,GAEPE,UAAU,iBAAIR,IAAA,CAACJ,YAAY,IAAE,CAC9B,EAEAM,KAAK,KAAK,IAAI,iBACbF,IAAA,CAACX,IAAI;MAACwB,KAAK,EAAEP,OAAO,GAAGQ,MAAM,CAACM,UAAU,GAAGN,MAAM,CAACO,UAAW;MAAAJ,QAAA,EAAEf;IAAK,CAAO,CAC5E;EAAA,CACG,CAAC;AAEX,CAAC;AAED,MAAMY,MAAM,GAAGxB,UAAU,CAACgC,MAAM,CAAC;EAC/BP,IAAI,EAAE;IACJQ,IAAI,EAAE,CAAC;IACPC,YAAY,EAAEjC,aAAa,CAAC,GAAG,CAAC;IAChCkC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDR,aAAa,EAAE;IACbS,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,KAAK,EAAEpC,OAAO,CAAC,GAAG;EACpB,CAAC;EACD0B,WAAW,EAAE;IACXW,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAExC,MAAM,CAACyC,SAAS;IACvBC,UAAU,EAAEzC,OAAO,CAAC,GAAG;EACzB,CAAC;EACD2B,UAAU,EAAE;IACVU,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAExC,MAAM,CAAC2C,SAAS;IACvBD,UAAU,EAAEzC,OAAO,CAAC,GAAG;EACzB,CAAC;EACD4B,UAAU,EAAE;IACVS,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAExC,MAAM,CAAC4C;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -3,49 +3,39 @@
3
3
  import React from 'react';
4
4
  import { View, StyleSheet } from 'react-native';
5
5
  import { SPACING } from '@magmamath/react-native-ui';
6
+ import { useUnit } from 'effector-react';
6
7
  import { MatrixCell } from "./MatrixCell.js";
7
- import { MATRIX_SIZE } from "../../../fluency.constants.js";
8
+ import { useFluency } from "../../../context/FluencyContext.js";
8
9
  import { useFluencyModePreset } from "../../../hooks/useFluencyModePreset.js";
9
10
  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
11
  export const MatrixFill = () => {
20
12
  const {
21
- matrix
22
- } = useFluencyModePreset();
13
+ model
14
+ } = useFluency();
15
+ const modePreset = useFluencyModePreset();
16
+ const grid = useUnit(model.matrix.$matrix);
17
+ if (!grid) return null;
23
18
  return /*#__PURE__*/_jsx(View, {
24
19
  style: styles.grid,
25
- children: Array.from({
26
- length: MATRIX_SIZE
27
- }, (_, row) => /*#__PURE__*/_jsx(View, {
20
+ children: grid.map((row, rowIdx) => /*#__PURE__*/_jsx(View, {
28
21
  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))
22
+ children: row.map((cell, colIdx) => /*#__PURE__*/_jsx(MatrixCell, {
23
+ ...cell,
24
+ levelColors: modePreset.colors.level
25
+ }, colIdx))
26
+ }, rowIdx))
38
27
  });
39
28
  };
40
29
  const styles = StyleSheet.create({
41
30
  grid: {
42
31
  flex: 1,
43
- gap: SPACING[50]
32
+ gap: SPACING[100]
44
33
  },
45
34
  row: {
46
35
  flex: 1,
36
+ minHeight: SPACING[800],
47
37
  flexDirection: 'row',
48
- gap: SPACING[50]
38
+ gap: SPACING[100]
49
39
  }
50
40
  });
51
41
  //# sourceMappingURL=MatrixFill.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","SPACING","useUnit","MatrixCell","useFluency","useFluencyModePreset","jsx","_jsx","MatrixFill","model","modePreset","grid","matrix","$matrix","style","styles","children","map","row","rowIdx","cell","colIdx","levelColors","colors","level","create","flex","gap","minHeight","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,OAAO,QAAQ,gBAAgB;AACxC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,oBAAoB,QAAQ,wCAAqC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE1E,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAM,CAAC,GAAGL,UAAU,CAAC,CAAC;EAC9B,MAAMM,UAAU,GAAGL,oBAAoB,CAAC,CAAC;EACzC,MAAMM,IAAI,GAAGT,OAAO,CAACO,KAAK,CAACG,MAAM,CAACC,OAAO,CAAC;EAE1C,IAAI,CAACF,IAAI,EAAE,OAAO,IAAI;EAEtB,oBACEJ,IAAA,CAACR,IAAI;IAACe,KAAK,EAAEC,MAAM,CAACJ,IAAK;IAAAK,QAAA,EACtBL,IAAI,CAACM,GAAG,CAAC,CAACC,GAAG,EAAEC,MAAM,kBACpBZ,IAAA,CAACR,IAAI;MAAce,KAAK,EAAEC,MAAM,CAACG,GAAI;MAAAF,QAAA,EAClCE,GAAG,CAACD,GAAG,CAAC,CAACG,IAAI,EAAEC,MAAM,kBACpBd,IAAA,CAACJ,UAAU;QAAA,GAAkBiB,IAAI;QAAEE,WAAW,EAAEZ,UAAU,CAACa,MAAM,CAACC;MAAM,GAAvDH,MAAyD,CAC3E;IAAC,GAHOF,MAIL,CACP;EAAC,CACE,CAAC;AAEX,CAAC;AAED,MAAMJ,MAAM,GAAGf,UAAU,CAACyB,MAAM,CAAC;EAC/Bd,IAAI,EAAE;IACJe,IAAI,EAAE,CAAC;IACPC,GAAG,EAAE1B,OAAO,CAAC,GAAG;EAClB,CAAC;EACDiB,GAAG,EAAE;IACHQ,IAAI,EAAE,CAAC;IACPE,SAAS,EAAE3B,OAAO,CAAC,GAAG,CAAC;IACvB4B,aAAa,EAAE,KAAK;IACpBF,GAAG,EAAE1B,OAAO,CAAC,GAAG;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -9,11 +9,7 @@ import { useText } from "../../../../../i18n/i18n.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  export const MatrixLegend = () => {
11
11
  const t = useText();
12
- const {
13
- matrix,
14
- buttonColor,
15
- legendItems
16
- } = useFluencyModePreset();
12
+ const modePreset = useFluencyModePreset();
17
13
  const {
18
14
  onPracticePress
19
15
  } = useFluency();
@@ -21,7 +17,7 @@ export const MatrixLegend = () => {
21
17
  style: styles.container,
22
18
  children: [/*#__PURE__*/_jsx(View, {
23
19
  style: styles.legendItems,
24
- children: legendItems.map(item => /*#__PURE__*/_jsxs(View, {
20
+ children: modePreset.legend.items.map(item => /*#__PURE__*/_jsxs(View, {
25
21
  style: styles.legendItem,
26
22
  children: [/*#__PURE__*/_jsx(View, {
27
23
  style: [styles.legendDot, {
@@ -36,7 +32,7 @@ export const MatrixLegend = () => {
36
32
  onPress: onPracticePress,
37
33
  variant: ButtonVariant.PRIMARY,
38
34
  size: ButtonSize.MEDIUM,
39
- colorScheme: buttonColor,
35
+ colorScheme: modePreset.colors.button,
40
36
  icon: /*#__PURE__*/_jsx(PlayIcon, {
41
37
  color: COLORS.NEUTRAL_1
42
38
  }),
@@ -45,7 +41,7 @@ export const MatrixLegend = () => {
45
41
  container: styles.practiceButton,
46
42
  text: styles.practiceButtonText
47
43
  },
48
- children: `${t('student.fluency.practice')} ${t(matrix.operatorName)}`
44
+ children: `${t('student.fluency.practice')} ${modePreset.label}`
49
45
  })]
50
46
  });
51
47
  };
@@ -1 +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","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":[]}
1
+ {"version":3,"names":["React","View","Text","StyleSheet","BORDER_RADIUS","Button","ButtonSize","ButtonVariant","COLORS","PlayIcon","SHADOWS","SPACING","useFluencyModePreset","useFluency","useText","jsx","_jsx","jsxs","_jsxs","MatrixLegend","t","modePreset","onPracticePress","style","styles","container","children","legendItems","legend","items","map","item","legendItem","legendDot","backgroundColor","color","withBorder","legendDotBorder","legendLabel","label","onPress","variant","PRIMARY","size","MEDIUM","colorScheme","colors","button","icon","NEUTRAL_1","raiseLevel","practiceButton","text","practiceButtonText","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":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACrD,SACEC,aAAa,EACbC,MAAM,EACNC,UAAU,EACVC,aAAa,EACbC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,OAAO,QACF,4BAA4B;AACnC,SAASC,oBAAoB,QAAQ,wCAAqC;AAC1E,SAASC,UAAU,QAAQ,oCAAiC;AAC5D,SAASC,OAAO,QAAQ,6BAA0B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,OAAO,MAAMC,YAAY,GAAGA,CAAA,KAAM;EAChC,MAAMC,CAAC,GAAGN,OAAO,CAAC,CAAC;EACnB,MAAMO,UAAU,GAAGT,oBAAoB,CAAC,CAAC;EACzC,MAAM;IAAEU;EAAgB,CAAC,GAAGT,UAAU,CAAC,CAAC;EAExC,oBACEK,KAAA,CAACjB,IAAI;IAACsB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BV,IAAA,CAACf,IAAI;MAACsB,KAAK,EAAEC,MAAM,CAACG,WAAY;MAAAD,QAAA,EAC7BL,UAAU,CAACO,MAAM,CAACC,KAAK,CAACC,GAAG,CAAEC,IAAI,iBAChCb,KAAA,CAACjB,IAAI;QAAkBsB,KAAK,EAAEC,MAAM,CAACQ,UAAW;QAAAN,QAAA,gBAC9CV,IAAA,CAACf,IAAI;UACHsB,KAAK,EAAE,CACLC,MAAM,CAACS,SAAS,EAChB;YAAEC,eAAe,EAAEH,IAAI,CAACI;UAAM,CAAC,EAC/BJ,IAAI,CAACK,UAAU,IAAIZ,MAAM,CAACa,eAAe;QACzC,CACH,CAAC,eACFrB,IAAA,CAACd,IAAI;UAACqB,KAAK,EAAEC,MAAM,CAACc,WAAY;UAAAZ,QAAA,EAAEK,IAAI,CAACQ;QAAK,CAAO,CAAC;MAAA,GAR3CR,IAAI,CAACQ,KASV,CACP;IAAC,CACE,CAAC,eACPvB,IAAA,CAACX,MAAM;MACLmC,OAAO,EAAElB,eAAgB;MACzBmB,OAAO,EAAElC,aAAa,CAACmC,OAAQ;MAC/BC,IAAI,EAAErC,UAAU,CAACsC,MAAO;MACxBC,WAAW,EAAExB,UAAU,CAACyB,MAAM,CAACC,MAAO;MACtCC,IAAI,eAAEhC,IAAA,CAACP,QAAQ;QAAC0B,KAAK,EAAE3B,MAAM,CAACyC;MAAU,CAAE,CAAE;MAC5CC,UAAU,EAAE,CAAE;MACd3B,KAAK,EAAE;QAAEE,SAAS,EAAED,MAAM,CAAC2B,cAAc;QAAEC,IAAI,EAAE5B,MAAM,CAAC6B;MAAmB,CAAE;MAAA3B,QAAA,EAE5E,GAAGN,CAAC,CAAC,0BAA0B,CAAC,IAAIC,UAAU,CAACkB,KAAK;IAAE,CACjD,CAAC;EAAA,CACL,CAAC;AAEX,CAAC;AAED,MAAMf,MAAM,GAAGrB,UAAU,CAACmD,MAAM,CAAC;EAC/B7B,SAAS,EAAE;IACT8B,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE,eAAe;IAC/BxB,eAAe,EAAE1B,MAAM,CAACmD,SAAS;IACjCC,iBAAiB,EAAEpD,MAAM,CAACqD,SAAS;IACnCC,iBAAiB,EAAEnD,OAAO,CAAC,GAAG,CAAC;IAC/BoD,eAAe,EAAEpD,OAAO,CAAC,GAAG,CAAC;IAC7BqD,mBAAmB,EAAE5D,aAAa,CAAC,GAAG,CAAC;IACvC6D,oBAAoB,EAAE7D,aAAa,CAAC,GAAG,CAAC;IACxC,GAAGM,OAAO,CAAC,CAAC;EACd,CAAC;EACDiB,WAAW,EAAE;IACX6B,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBS,GAAG,EAAEvD,OAAO,CAAC,GAAG;EAClB,CAAC;EACDqB,UAAU,EAAE;IACVwB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBS,GAAG,EAAEvD,OAAO,CAAC,GAAG;EAClB,CAAC;EACDsB,SAAS,EAAE;IACTkC,KAAK,EAAE,EAAE;IACTZ,MAAM,EAAE,EAAE;IACVa,YAAY,EAAE;EAChB,CAAC;EACD/B,eAAe,EAAE;IACfgC,WAAW,EAAE,GAAG;IAChBC,WAAW,EAAE9D,MAAM,CAACqD;EACtB,CAAC;EACDvB,WAAW,EAAE;IACXiC,QAAQ,EAAE,EAAE;IACZpC,KAAK,EAAE3B,MAAM,CAACgE;EAChB,CAAC;EACDrB,cAAc,EAAE;IACdsB,SAAS,EAAE;EACb,CAAC;EACDpB,kBAAkB,EAAE;IAClBqB,aAAa,EAAE;EACjB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { View, StyleSheet, useWindowDimensions } from 'react-native';
5
+ import { Button, ButtonVariant, SPACING } from '@magmamath/react-native-ui';
6
+ import { MenuIcon } from "../../../../shared/icons/MenuIcon.js";
7
+ import { isWeb } from "../../../../shared/common.constants.js";
8
+ import { BURGER_MENU_BREAKPOINT } from '@magmamath/students-features';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export const MobileMenu = ({
11
+ onPress
12
+ }) => {
13
+ const dimensions = useWindowDimensions();
14
+ const isVisible = isWeb && dimensions.width <= BURGER_MENU_BREAKPOINT;
15
+ if (!isVisible) return null;
16
+ return /*#__PURE__*/_jsx(View, {
17
+ style: styles.container,
18
+ children: /*#__PURE__*/_jsx(Button, {
19
+ onPress: onPress,
20
+ variant: ButtonVariant.TERTIARY,
21
+ icon: /*#__PURE__*/_jsx(MenuIcon, {
22
+ size: 24
23
+ })
24
+ })
25
+ });
26
+ };
27
+ const styles = StyleSheet.create({
28
+ container: {
29
+ marginRight: SPACING[200]
30
+ }
31
+ });
32
+ //# sourceMappingURL=MobileMenu.js.map