@magmamath/students-features 1.8.0-rc.0-fluency-visuals → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/dist/commonjs/features/fluency/components/FluencySolving.js +2 -2
  2. package/dist/commonjs/features/fluency/components/FluencySolving.js.map +1 -1
  3. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js +8 -9
  4. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -1
  5. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +1 -3
  6. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +1 -1
  7. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +10 -63
  8. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -1
  9. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +0 -10
  10. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -1
  11. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +2 -0
  12. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -1
  13. package/dist/commonjs/features/fluency/index.js +0 -20
  14. package/dist/commonjs/features/fluency/index.js.map +1 -1
  15. package/dist/commonjs/features/fluency-teacher/assets/{SortDefaultIcon.js → DivisionIcon.js} +11 -8
  16. package/dist/commonjs/features/fluency-teacher/assets/DivisionIcon.js.map +1 -0
  17. package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js +4 -3
  18. package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js.map +1 -1
  19. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js +48 -43
  20. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -1
  21. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js +11 -28
  22. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -1
  23. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +27 -44
  24. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -1
  25. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +47 -40
  26. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -1
  27. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js +14 -24
  28. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -1
  29. package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +6 -6
  30. package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -1
  31. package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -1
  32. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js +2 -16
  33. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -1
  34. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.js +83 -0
  35. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.js.map +1 -0
  36. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js +1 -2
  37. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -1
  38. package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js +15 -41
  39. package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -1
  40. package/dist/commonjs/features/fluency-teacher/components/table/AverageCell.js +55 -0
  41. package/dist/commonjs/features/fluency-teacher/components/table/AverageCell.js.map +1 -0
  42. package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js +6 -62
  43. package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -1
  44. package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +42 -40
  45. package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -1
  46. package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js +25 -16
  47. package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -1
  48. package/dist/commonjs/features/fluency-teacher/components/table/SortOrderCarets.js +40 -0
  49. package/dist/commonjs/features/fluency-teacher/components/table/SortOrderCarets.js.map +1 -0
  50. package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js +30 -40
  51. package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -1
  52. package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js +59 -72
  53. package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js.map +1 -1
  54. package/dist/commonjs/features/fluency-teacher/components/table/tableCell.styles.js +45 -0
  55. package/dist/commonjs/features/fluency-teacher/components/table/tableCell.styles.js.map +1 -0
  56. package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -1
  57. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js +103 -38
  58. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -1
  59. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js +52 -10
  60. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -1
  61. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js +3 -2
  62. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -1
  63. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -1
  64. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +2 -1
  65. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -1
  66. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js +9 -0
  67. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -1
  68. package/dist/module/features/fluency/components/FluencySolving.js +2 -2
  69. package/dist/module/features/fluency/components/FluencySolving.js.map +1 -1
  70. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js +8 -9
  71. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -1
  72. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +1 -3
  73. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +1 -1
  74. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +11 -64
  75. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -1
  76. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +0 -10
  77. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -1
  78. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +2 -0
  79. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -1
  80. package/dist/module/features/fluency/index.js +0 -2
  81. package/dist/module/features/fluency/index.js.map +1 -1
  82. package/dist/module/features/fluency-teacher/assets/DivisionIcon.js +26 -0
  83. package/dist/module/features/fluency-teacher/assets/DivisionIcon.js.map +1 -0
  84. package/dist/module/features/fluency-teacher/components/FluencyTeacher.js +4 -3
  85. package/dist/module/features/fluency-teacher/components/FluencyTeacher.js.map +1 -1
  86. package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js +49 -44
  87. package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -1
  88. package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js +14 -31
  89. package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -1
  90. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +28 -45
  91. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -1
  92. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +48 -41
  93. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -1
  94. package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js +17 -27
  95. package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -1
  96. package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +6 -6
  97. package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -1
  98. package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -1
  99. package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js +3 -17
  100. package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -1
  101. package/dist/module/features/fluency-teacher/components/matrix/MatrixLegend.js +77 -0
  102. package/dist/module/features/fluency-teacher/components/matrix/MatrixLegend.js.map +1 -0
  103. package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js +1 -2
  104. package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -1
  105. package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js +16 -42
  106. package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -1
  107. package/dist/module/features/fluency-teacher/components/table/AverageCell.js +49 -0
  108. package/dist/module/features/fluency-teacher/components/table/AverageCell.js.map +1 -0
  109. package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js +7 -63
  110. package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -1
  111. package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +44 -42
  112. package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -1
  113. package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js +25 -16
  114. package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -1
  115. package/dist/module/features/fluency-teacher/components/table/SortOrderCarets.js +34 -0
  116. package/dist/module/features/fluency-teacher/components/table/SortOrderCarets.js.map +1 -0
  117. package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js +32 -42
  118. package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -1
  119. package/dist/module/features/fluency-teacher/components/table/TableRow.js +62 -75
  120. package/dist/module/features/fluency-teacher/components/table/TableRow.js.map +1 -1
  121. package/dist/module/features/fluency-teacher/components/table/tableCell.styles.js +42 -0
  122. package/dist/module/features/fluency-teacher/components/table/tableCell.styles.js.map +1 -0
  123. package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -1
  124. package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js +102 -37
  125. package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -1
  126. package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js +43 -8
  127. package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -1
  128. package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js +3 -2
  129. package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -1
  130. package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -1
  131. package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +2 -1
  132. package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -1
  133. package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js +9 -0
  134. package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -1
  135. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -1
  136. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +1 -1
  137. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +1 -2
  138. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -1
  139. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -1
  140. package/dist/typescript/commonjs/features/fluency/index.d.ts +0 -2
  141. package/dist/typescript/commonjs/features/fluency/index.d.ts.map +1 -1
  142. package/dist/typescript/commonjs/features/fluency-teacher/assets/DivisionIcon.d.ts +4 -0
  143. package/dist/typescript/commonjs/features/fluency-teacher/assets/DivisionIcon.d.ts.map +1 -0
  144. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -1
  145. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -1
  146. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +1 -4
  147. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -1
  148. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +6 -4
  149. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -1
  150. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -1
  151. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -1
  152. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +3 -2
  153. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -1
  154. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts +6 -5
  155. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -1
  156. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +2 -1
  157. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -1
  158. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.d.ts +10 -0
  159. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.d.ts.map +1 -0
  160. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts +5 -3
  161. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -1
  162. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -1
  163. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageCell.d.ts +9 -0
  164. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageCell.d.ts.map +1 -0
  165. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts +2 -1
  166. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -1
  167. package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -1
  168. package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts +5 -4
  169. package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -1
  170. package/dist/typescript/commonjs/features/fluency-teacher/components/table/SortOrderCarets.d.ts +9 -0
  171. package/dist/typescript/commonjs/features/fluency-teacher/components/table/SortOrderCarets.d.ts.map +1 -0
  172. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +7 -6
  173. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -1
  174. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts +4 -3
  175. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -1
  176. package/dist/typescript/commonjs/features/fluency-teacher/components/table/tableCell.styles.d.ts +35 -0
  177. package/dist/typescript/commonjs/features/fluency-teacher/components/table/tableCell.styles.d.ts.map +1 -0
  178. package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts +1 -0
  179. package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -1
  180. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts +16 -3
  181. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -1
  182. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts +11 -4
  183. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -1
  184. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts +35 -6
  185. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -1
  186. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts +1 -12
  187. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -1
  188. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +3 -3
  189. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -1
  190. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +1 -0
  191. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -1
  192. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -1
  193. package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -1
  194. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +1 -1
  195. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +1 -2
  196. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -1
  197. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -1
  198. package/dist/typescript/module/features/fluency/index.d.ts +0 -2
  199. package/dist/typescript/module/features/fluency/index.d.ts.map +1 -1
  200. package/dist/typescript/module/features/fluency-teacher/assets/DivisionIcon.d.ts +4 -0
  201. package/dist/typescript/module/features/fluency-teacher/assets/DivisionIcon.d.ts.map +1 -0
  202. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -1
  203. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -1
  204. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +1 -4
  205. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -1
  206. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +6 -4
  207. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -1
  208. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -1
  209. package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -1
  210. package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +3 -2
  211. package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -1
  212. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts +6 -5
  213. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -1
  214. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +2 -1
  215. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -1
  216. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixLegend.d.ts +10 -0
  217. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixLegend.d.ts.map +1 -0
  218. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts +5 -3
  219. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -1
  220. package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -1
  221. package/dist/typescript/module/features/fluency-teacher/components/table/AverageCell.d.ts +9 -0
  222. package/dist/typescript/module/features/fluency-teacher/components/table/AverageCell.d.ts.map +1 -0
  223. package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts +2 -1
  224. package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -1
  225. package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -1
  226. package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts +5 -4
  227. package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -1
  228. package/dist/typescript/module/features/fluency-teacher/components/table/SortOrderCarets.d.ts +9 -0
  229. package/dist/typescript/module/features/fluency-teacher/components/table/SortOrderCarets.d.ts.map +1 -0
  230. package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +7 -6
  231. package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -1
  232. package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts +4 -3
  233. package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -1
  234. package/dist/typescript/module/features/fluency-teacher/components/table/tableCell.styles.d.ts +35 -0
  235. package/dist/typescript/module/features/fluency-teacher/components/table/tableCell.styles.d.ts.map +1 -0
  236. package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts +1 -0
  237. package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -1
  238. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts +16 -3
  239. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -1
  240. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts +11 -4
  241. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -1
  242. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts +35 -6
  243. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -1
  244. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts +1 -12
  245. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -1
  246. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +3 -3
  247. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -1
  248. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +1 -0
  249. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -1
  250. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -1
  251. package/package.json +1 -1
  252. package/src/features/fluency/components/FluencySolving.tsx +2 -2
  253. package/src/features/fluency/components/fluency-solving/components/EquationContent.tsx +8 -12
  254. package/src/features/fluency/components/fluency-solving/components/FluencyCardDeck.tsx +1 -6
  255. package/src/features/fluency/components/fluency-solving/components/FluencyEquationCard.tsx +11 -63
  256. package/src/features/fluency/components/fluency-solving/components/FluencySolvingHeader.tsx +0 -9
  257. package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx +2 -0
  258. package/src/features/fluency/index.ts +0 -2
  259. package/src/features/fluency-teacher/assets/DivisionIcon.tsx +20 -0
  260. package/src/features/fluency-teacher/components/FluencyTeacher.tsx +3 -3
  261. package/src/features/fluency-teacher/components/drawer/DrawerHeader.tsx +37 -35
  262. package/src/features/fluency-teacher/components/drawer/DrawerMatrixes.tsx +13 -32
  263. package/src/features/fluency-teacher/components/drawer/DrawerOperatorBox.tsx +20 -40
  264. package/src/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.tsx +35 -35
  265. package/src/features/fluency-teacher/components/drawer/DrawerStats.tsx +16 -28
  266. package/src/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.tsx +4 -5
  267. package/src/features/fluency-teacher/components/matrix/DrawerMatrix.tsx +3 -2
  268. package/src/features/fluency-teacher/components/matrix/MatrixCell.tsx +7 -16
  269. package/src/features/fluency-teacher/components/matrix/MatrixHeaderRow.tsx +1 -1
  270. package/src/features/fluency-teacher/components/matrix/MatrixLegend.tsx +81 -0
  271. package/src/features/fluency-teacher/components/matrix/MatrixRow.tsx +4 -4
  272. package/src/features/fluency-teacher/components/table/AllPupilsTableRow.tsx +13 -40
  273. package/src/features/fluency-teacher/components/table/AverageCell.tsx +45 -0
  274. package/src/features/fluency-teacher/components/table/AverageSortButton.tsx +8 -62
  275. package/src/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.tsx +49 -35
  276. package/src/features/fluency-teacher/components/table/OperatorBadge.tsx +18 -11
  277. package/src/features/fluency-teacher/components/table/SortOrderCarets.tsx +37 -0
  278. package/src/features/fluency-teacher/components/table/TableColumnSortButton.tsx +28 -49
  279. package/src/features/fluency-teacher/components/table/TableRow.tsx +65 -64
  280. package/src/features/fluency-teacher/components/table/tableCell.styles.ts +39 -0
  281. package/src/features/fluency-teacher/context/TeacherFluencyContext.ts +1 -0
  282. package/src/features/fluency-teacher/fluencyTeacher.constants.ts +138 -40
  283. package/src/features/fluency-teacher/fluencyTeacher.helpers.ts +82 -10
  284. package/src/features/fluency-teacher/fluencyTeacher.types.ts +39 -6
  285. package/src/features/fluency-teacher/hooks/useDrawerGrid.ts +4 -7
  286. package/src/features/fluency-teacher/hooks/useDrawerMatrix.ts +4 -3
  287. package/src/features/fluency-teacher/model/TeacherFluencyFiltersModel.ts +8 -5
  288. package/src/features/fluency-teacher/model/TeacherFluencyModel.ts +8 -0
  289. package/dist/commonjs/features/fluency/components/FluencyVisualPlayground.js +0 -386
  290. package/dist/commonjs/features/fluency/components/FluencyVisualPlayground.js.map +0 -1
  291. package/dist/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js +0 -48
  292. package/dist/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js.map +0 -1
  293. package/dist/commonjs/features/fluency/visual-scaffolding/adapter.js +0 -36
  294. package/dist/commonjs/features/fluency/visual-scaffolding/adapter.js.map +0 -1
  295. package/dist/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js +0 -232
  296. package/dist/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js.map +0 -1
  297. package/dist/commonjs/features/fluency/visual-scaffolding/components/Dot.js +0 -51
  298. package/dist/commonjs/features/fluency/visual-scaffolding/components/Dot.js.map +0 -1
  299. package/dist/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.js +0 -104
  300. package/dist/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.js.map +0 -1
  301. package/dist/commonjs/features/fluency/visual-scaffolding/components/FactVisual.js +0 -75
  302. package/dist/commonjs/features/fluency/visual-scaffolding/components/FactVisual.js.map +0 -1
  303. package/dist/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.js +0 -91
  304. package/dist/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.js.map +0 -1
  305. package/dist/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.js +0 -279
  306. package/dist/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.js.map +0 -1
  307. package/dist/commonjs/features/fluency/visual-scaffolding/components/visualColors.js +0 -44
  308. package/dist/commonjs/features/fluency/visual-scaffolding/components/visualColors.js.map +0 -1
  309. package/dist/commonjs/features/fluency/visual-scaffolding/index.js +0 -73
  310. package/dist/commonjs/features/fluency/visual-scaffolding/index.js.map +0 -1
  311. package/dist/commonjs/features/fluency/visual-scaffolding/renderFact.js +0 -276
  312. package/dist/commonjs/features/fluency/visual-scaffolding/renderFact.js.map +0 -1
  313. package/dist/commonjs/features/fluency/visual-scaffolding/types.js +0 -2
  314. package/dist/commonjs/features/fluency/visual-scaffolding/types.js.map +0 -1
  315. package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js.map +0 -1
  316. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +0 -80
  317. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +0 -1
  318. package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js +0 -71
  319. package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +0 -1
  320. package/dist/module/features/fluency/components/FluencyVisualPlayground.js +0 -379
  321. package/dist/module/features/fluency/components/FluencyVisualPlayground.js.map +0 -1
  322. package/dist/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js +0 -43
  323. package/dist/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js.map +0 -1
  324. package/dist/module/features/fluency/visual-scaffolding/adapter.js +0 -31
  325. package/dist/module/features/fluency/visual-scaffolding/adapter.js.map +0 -1
  326. package/dist/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js +0 -225
  327. package/dist/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js.map +0 -1
  328. package/dist/module/features/fluency/visual-scaffolding/components/Dot.js +0 -45
  329. package/dist/module/features/fluency/visual-scaffolding/components/Dot.js.map +0 -1
  330. package/dist/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.js +0 -96
  331. package/dist/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.js.map +0 -1
  332. package/dist/module/features/fluency/visual-scaffolding/components/FactVisual.js +0 -69
  333. package/dist/module/features/fluency/visual-scaffolding/components/FactVisual.js.map +0 -1
  334. package/dist/module/features/fluency/visual-scaffolding/components/QuotativeBars.js +0 -83
  335. package/dist/module/features/fluency/visual-scaffolding/components/QuotativeBars.js.map +0 -1
  336. package/dist/module/features/fluency/visual-scaffolding/components/RelationalBlock.js +0 -272
  337. package/dist/module/features/fluency/visual-scaffolding/components/RelationalBlock.js.map +0 -1
  338. package/dist/module/features/fluency/visual-scaffolding/components/visualColors.js +0 -41
  339. package/dist/module/features/fluency/visual-scaffolding/components/visualColors.js.map +0 -1
  340. package/dist/module/features/fluency/visual-scaffolding/index.js +0 -8
  341. package/dist/module/features/fluency/visual-scaffolding/index.js.map +0 -1
  342. package/dist/module/features/fluency/visual-scaffolding/renderFact.js +0 -269
  343. package/dist/module/features/fluency/visual-scaffolding/renderFact.js.map +0 -1
  344. package/dist/module/features/fluency/visual-scaffolding/types.js +0 -2
  345. package/dist/module/features/fluency/visual-scaffolding/types.js.map +0 -1
  346. package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js +0 -23
  347. package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js.map +0 -1
  348. package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +0 -74
  349. package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +0 -1
  350. package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js +0 -65
  351. package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +0 -1
  352. package/dist/typescript/commonjs/features/fluency/components/FluencyVisualPlayground.d.ts +0 -8
  353. package/dist/typescript/commonjs/features/fluency/components/FluencyVisualPlayground.d.ts.map +0 -1
  354. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts +0 -3
  355. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts.map +0 -1
  356. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts +0 -2
  357. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts.map +0 -1
  358. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/adapter.d.ts +0 -4
  359. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/adapter.d.ts.map +0 -1
  360. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts +0 -10
  361. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts.map +0 -1
  362. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/Dot.d.ts +0 -10
  363. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/Dot.d.ts.map +0 -1
  364. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts +0 -10
  365. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts.map +0 -1
  366. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/FactVisual.d.ts +0 -10
  367. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/FactVisual.d.ts.map +0 -1
  368. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts +0 -10
  369. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts.map +0 -1
  370. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts +0 -10
  371. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts.map +0 -1
  372. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/visualColors.d.ts +0 -16
  373. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/visualColors.d.ts.map +0 -1
  374. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/index.d.ts +0 -6
  375. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/index.d.ts.map +0 -1
  376. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/renderFact.d.ts +0 -23
  377. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/renderFact.d.ts.map +0 -1
  378. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/types.d.ts +0 -103
  379. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/types.d.ts.map +0 -1
  380. package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts +0 -4
  381. package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +0 -1
  382. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +0 -3
  383. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +0 -1
  384. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +0 -7
  385. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +0 -1
  386. package/dist/typescript/module/features/fluency/components/FluencyVisualPlayground.d.ts +0 -8
  387. package/dist/typescript/module/features/fluency/components/FluencyVisualPlayground.d.ts.map +0 -1
  388. package/dist/typescript/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts +0 -3
  389. package/dist/typescript/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts.map +0 -1
  390. package/dist/typescript/module/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts +0 -2
  391. package/dist/typescript/module/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts.map +0 -1
  392. package/dist/typescript/module/features/fluency/visual-scaffolding/adapter.d.ts +0 -4
  393. package/dist/typescript/module/features/fluency/visual-scaffolding/adapter.d.ts.map +0 -1
  394. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts +0 -10
  395. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts.map +0 -1
  396. package/dist/typescript/module/features/fluency/visual-scaffolding/components/Dot.d.ts +0 -10
  397. package/dist/typescript/module/features/fluency/visual-scaffolding/components/Dot.d.ts.map +0 -1
  398. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts +0 -10
  399. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts.map +0 -1
  400. package/dist/typescript/module/features/fluency/visual-scaffolding/components/FactVisual.d.ts +0 -10
  401. package/dist/typescript/module/features/fluency/visual-scaffolding/components/FactVisual.d.ts.map +0 -1
  402. package/dist/typescript/module/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts +0 -10
  403. package/dist/typescript/module/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts.map +0 -1
  404. package/dist/typescript/module/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts +0 -10
  405. package/dist/typescript/module/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts.map +0 -1
  406. package/dist/typescript/module/features/fluency/visual-scaffolding/components/visualColors.d.ts +0 -16
  407. package/dist/typescript/module/features/fluency/visual-scaffolding/components/visualColors.d.ts.map +0 -1
  408. package/dist/typescript/module/features/fluency/visual-scaffolding/index.d.ts +0 -6
  409. package/dist/typescript/module/features/fluency/visual-scaffolding/index.d.ts.map +0 -1
  410. package/dist/typescript/module/features/fluency/visual-scaffolding/renderFact.d.ts +0 -23
  411. package/dist/typescript/module/features/fluency/visual-scaffolding/renderFact.d.ts.map +0 -1
  412. package/dist/typescript/module/features/fluency/visual-scaffolding/types.d.ts +0 -103
  413. package/dist/typescript/module/features/fluency/visual-scaffolding/types.d.ts.map +0 -1
  414. package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts +0 -4
  415. package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +0 -1
  416. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +0 -3
  417. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +0 -1
  418. package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +0 -7
  419. package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +0 -1
  420. package/src/features/fluency/components/FluencyVisualPlayground.tsx +0 -272
  421. package/src/features/fluency/components/fluency-solving/components/DebugBoxIndicator.tsx +0 -40
  422. package/src/features/fluency/visual-scaffolding/__tests__/__snapshots__/renderFact.test.ts.snap +0 -64
  423. package/src/features/fluency/visual-scaffolding/__tests__/renderFact.test.ts +0 -192
  424. package/src/features/fluency/visual-scaffolding/adapter.ts +0 -33
  425. package/src/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.tsx +0 -222
  426. package/src/features/fluency/visual-scaffolding/components/Dot.tsx +0 -36
  427. package/src/features/fluency/visual-scaffolding/components/DynamicNumberLine.tsx +0 -98
  428. package/src/features/fluency/visual-scaffolding/components/FactVisual.tsx +0 -61
  429. package/src/features/fluency/visual-scaffolding/components/QuotativeBars.tsx +0 -92
  430. package/src/features/fluency/visual-scaffolding/components/RelationalBlock.tsx +0 -225
  431. package/src/features/fluency/visual-scaffolding/components/visualColors.ts +0 -45
  432. package/src/features/fluency/visual-scaffolding/index.ts +0 -5
  433. package/src/features/fluency/visual-scaffolding/renderFact.ts +0 -219
  434. package/src/features/fluency/visual-scaffolding/types.ts +0 -108
  435. package/src/features/fluency-teacher/assets/SortDefaultIcon.tsx +0 -10
  436. package/src/features/fluency-teacher/components/drawer/DrawerMasteryLegend.tsx +0 -63
  437. package/src/features/fluency-teacher/components/table/TableRowAverageProgress.tsx +0 -65
@@ -1,5 +1,11 @@
1
1
  import { COLORS } from '@magmamath/react-native-ui'
2
- import { type OperatorColumnConfig } from './fluencyTeacher.types'
2
+ import type {
3
+ LegendItem,
4
+ OperatorCardConfig,
5
+ OperatorColumnConfig,
6
+ OperatorPalette,
7
+ FluencyOperatorColumn,
8
+ } from './fluencyTeacher.types'
3
9
 
4
10
  export const TEACHER_FLUENCY_GOAL_MINUTES = 25
5
11
 
@@ -10,33 +16,103 @@ export enum FluencyOperator {
10
16
  DIVISION = 'division',
11
17
  }
12
18
 
13
- export const MATRIX_CELL_COLORS: Record<FluencyOperator, Record<number, string>> = {
19
+ export enum MasteryLevel {
20
+ LEARNING = 1,
21
+ GROWING = 2,
22
+ STRONG = 3,
23
+ AUTOMATIC = 4,
24
+ }
25
+
26
+ export const OPERATOR_PALETTES: Record<FluencyOperator, OperatorPalette> = {
14
27
  [FluencyOperator.ADDITION]: {
15
- 1: COLORS.GREEN_2,
16
- 2: COLORS.GREEN_3,
17
- 3: COLORS.PRIMARY_GREEN,
18
- 4: COLORS.GREEN_6,
28
+ bands: [COLORS.GREEN_1, COLORS.GREEN_2, COLORS.GREEN_3, COLORS.GREEN_4, COLORS.PRIMARY_GREEN],
29
+ bandBorders: [
30
+ COLORS.GREEN_2,
31
+ COLORS.GREEN_3,
32
+ COLORS.GREEN_4,
33
+ COLORS.PRIMARY_GREEN,
34
+ COLORS.GREEN_6,
35
+ ],
36
+ darkText: COLORS.GREEN_8,
37
+ legendCount: COLORS.GREEN_7,
38
+ boxBorder: COLORS.GREEN_2,
19
39
  },
20
40
  [FluencyOperator.SUBTRACTION]: {
21
- 1: COLORS.ORANGE_2,
22
- 2: COLORS.ORANGE_3,
23
- 3: COLORS.PRIMARY_ORANGE,
24
- 4: COLORS.ORANGE_6,
41
+ bands: [
42
+ COLORS.ORANGE_1,
43
+ COLORS.ORANGE_2,
44
+ COLORS.ORANGE_3,
45
+ COLORS.ORANGE_4,
46
+ COLORS.PRIMARY_ORANGE,
47
+ ],
48
+ bandBorders: [
49
+ COLORS.ORANGE_2,
50
+ COLORS.ORANGE_3,
51
+ COLORS.ORANGE_4,
52
+ COLORS.PRIMARY_ORANGE,
53
+ COLORS.ORANGE_6,
54
+ ],
55
+ darkText: COLORS.ORANGE_8,
56
+ legendCount: COLORS.ORANGE_7,
57
+ boxBorder: COLORS.ORANGE_2,
25
58
  },
26
59
  [FluencyOperator.MULTIPLICATION]: {
27
- 1: COLORS.BLUE_2,
28
- 2: COLORS.BLUE_3,
29
- 3: COLORS.PRIMARY_BLUE,
30
- 4: COLORS.BLUE_6,
60
+ bands: [COLORS.BLUE_1, COLORS.BLUE_2, COLORS.BLUE_3, COLORS.BLUE_4, COLORS.PRIMARY_BLUE],
61
+ bandBorders: [COLORS.BLUE_2, COLORS.BLUE_3, COLORS.BLUE_4, COLORS.PRIMARY_BLUE, COLORS.BLUE_6],
62
+ darkText: COLORS.BLUE_8,
63
+ legendCount: COLORS.BLUE_7,
64
+ boxBorder: COLORS.BLUE_2,
31
65
  },
32
66
  [FluencyOperator.DIVISION]: {
33
- 1: COLORS.PURPLE_2,
34
- 2: COLORS.PURPLE_3,
35
- 3: COLORS.PRIMARY_PURPLE,
36
- 4: COLORS.PURPLE_6,
67
+ bands: [
68
+ COLORS.PURPLE_1,
69
+ COLORS.PURPLE_2,
70
+ COLORS.PURPLE_3,
71
+ COLORS.PURPLE_4,
72
+ COLORS.PRIMARY_PURPLE,
73
+ ],
74
+ bandBorders: [
75
+ COLORS.PURPLE_2,
76
+ COLORS.PURPLE_3,
77
+ COLORS.PURPLE_4,
78
+ COLORS.PRIMARY_PURPLE,
79
+ COLORS.PURPLE_6,
80
+ ],
81
+ darkText: COLORS.PURPLE_8,
82
+ legendCount: COLORS.PURPLE_7,
83
+ boxBorder: COLORS.PURPLE_2,
37
84
  },
38
85
  }
39
86
 
87
+ export const MATRIX_CELL_COLORS: Record<FluencyOperator, Record<MasteryLevel, string>> = {
88
+ [FluencyOperator.ADDITION]: {
89
+ [MasteryLevel.LEARNING]: COLORS.GREEN_1,
90
+ [MasteryLevel.GROWING]: COLORS.GREEN_2,
91
+ [MasteryLevel.STRONG]: COLORS.GREEN_4,
92
+ [MasteryLevel.AUTOMATIC]: COLORS.GREEN_7,
93
+ },
94
+ [FluencyOperator.SUBTRACTION]: {
95
+ [MasteryLevel.LEARNING]: COLORS.ORANGE_1,
96
+ [MasteryLevel.GROWING]: COLORS.ORANGE_2,
97
+ [MasteryLevel.STRONG]: COLORS.ORANGE_4,
98
+ [MasteryLevel.AUTOMATIC]: COLORS.ORANGE_7,
99
+ },
100
+ [FluencyOperator.MULTIPLICATION]: {
101
+ [MasteryLevel.LEARNING]: COLORS.BLUE_1,
102
+ [MasteryLevel.GROWING]: COLORS.BLUE_2,
103
+ [MasteryLevel.STRONG]: COLORS.BLUE_4,
104
+ [MasteryLevel.AUTOMATIC]: COLORS.BLUE_7,
105
+ },
106
+ [FluencyOperator.DIVISION]: {
107
+ [MasteryLevel.LEARNING]: COLORS.PURPLE_1,
108
+ [MasteryLevel.GROWING]: COLORS.PURPLE_2,
109
+ [MasteryLevel.STRONG]: COLORS.PURPLE_4,
110
+ [MasteryLevel.AUTOMATIC]: COLORS.PURPLE_7,
111
+ },
112
+ }
113
+
114
+ export const MATRIX_NOT_STARTED_COLOR = COLORS.NEUTRAL_3
115
+
40
116
  export enum FluencyTableColumn {
41
117
  AVERAGE = 'average',
42
118
  ADDITION = 'addition',
@@ -45,8 +121,6 @@ export enum FluencyTableColumn {
45
121
  DIVISION = 'division',
46
122
  }
47
123
 
48
- export type FluencyOperatorColumn = Exclude<FluencyTableColumn, FluencyTableColumn.AVERAGE>
49
-
50
124
  export enum FluencyMathOperatorSymbol {
51
125
  ADDITION = '+',
52
126
  SUBTRACTION = '−',
@@ -54,33 +128,57 @@ export enum FluencyMathOperatorSymbol {
54
128
  DIVISION = '÷',
55
129
  }
56
130
 
57
- export const TABLE_OPERATOR_COLUMNS: readonly OperatorColumnConfig[] = [
58
- {
59
- operator: FluencyTableColumn.ADDITION,
131
+ export const COLUMN_TO_OPERATOR: Record<FluencyOperatorColumn, FluencyOperator> = {
132
+ [FluencyTableColumn.ADDITION]: FluencyOperator.ADDITION,
133
+ [FluencyTableColumn.SUBTRACTION]: FluencyOperator.SUBTRACTION,
134
+ [FluencyTableColumn.MULTIPLICATION]: FluencyOperator.MULTIPLICATION,
135
+ [FluencyTableColumn.DIVISION]: FluencyOperator.DIVISION,
136
+ }
137
+
138
+ export const OPERATOR_TO_COLUMN: Record<FluencyOperator, FluencyOperatorColumn> = {
139
+ [FluencyOperator.ADDITION]: FluencyTableColumn.ADDITION,
140
+ [FluencyOperator.SUBTRACTION]: FluencyTableColumn.SUBTRACTION,
141
+ [FluencyOperator.MULTIPLICATION]: FluencyTableColumn.MULTIPLICATION,
142
+ [FluencyOperator.DIVISION]: FluencyTableColumn.DIVISION,
143
+ }
144
+
145
+ export const MAX_GRADE_WITH_TWO_OPERATORS = 2
146
+
147
+ export const TWO_OPERATOR_SET: readonly FluencyOperator[] = [
148
+ FluencyOperator.ADDITION,
149
+ FluencyOperator.SUBTRACTION,
150
+ ]
151
+
152
+ export const OPERATOR_CARD_CONFIG: Record<FluencyOperator, OperatorCardConfig> = {
153
+ [FluencyOperator.ADDITION]: {
60
154
  labelKey: 'student.fluency.addition',
61
155
  symbol: FluencyMathOperatorSymbol.ADDITION,
62
- badgeBg: COLORS.GREEN_3,
63
- badgeText: COLORS.GREEN_8,
64
156
  },
65
- {
66
- operator: FluencyTableColumn.SUBTRACTION,
157
+ [FluencyOperator.SUBTRACTION]: {
67
158
  labelKey: 'student.fluency.subtraction',
68
159
  symbol: FluencyMathOperatorSymbol.SUBTRACTION,
69
- badgeBg: COLORS.ORANGE_3,
70
- badgeText: COLORS.ORANGE_8,
71
- },
72
- {
73
- operator: FluencyTableColumn.DIVISION,
74
- labelKey: 'student.fluency.division',
75
- symbol: FluencyMathOperatorSymbol.DIVISION,
76
- badgeBg: COLORS.BLUE_3,
77
- badgeText: COLORS.BLUE_8,
78
160
  },
79
- {
80
- operator: FluencyTableColumn.MULTIPLICATION,
161
+ [FluencyOperator.MULTIPLICATION]: {
81
162
  labelKey: 'student.fluency.multiplication',
82
163
  symbol: FluencyMathOperatorSymbol.MULTIPLICATION,
83
- badgeBg: COLORS.PURPLE_2,
84
- badgeText: COLORS.PURPLE_8,
85
164
  },
165
+ [FluencyOperator.DIVISION]: {
166
+ labelKey: 'student.fluency.division',
167
+ symbol: FluencyMathOperatorSymbol.DIVISION,
168
+ },
169
+ }
170
+
171
+ export const TABLE_OPERATOR_COLUMNS: readonly OperatorColumnConfig[] = Object.values(
172
+ FluencyOperator,
173
+ ).map((operator) => ({
174
+ operator: OPERATOR_TO_COLUMN[operator],
175
+ labelKey: OPERATOR_CARD_CONFIG[operator].labelKey,
176
+ }))
177
+
178
+ export const LEGEND_LEVELS: readonly LegendItem[] = [
179
+ { box: MasteryLevel.AUTOMATIC, labelKey: 'student.fluency.masteryMastered' },
180
+ { box: MasteryLevel.STRONG, labelKey: 'student.fluency.masteryStrong' },
181
+ { box: MasteryLevel.GROWING, labelKey: 'student.fluency.masteryGrowing' },
182
+ { box: MasteryLevel.LEARNING, labelKey: 'student.fluency.masteryLearning' },
183
+ { box: null, labelKey: 'teacher.fluency.progressNotStarted' },
86
184
  ]
@@ -1,22 +1,95 @@
1
1
  import { COLORS } from '@magmamath/react-native-ui'
2
- import type { TranslationKey } from '../../i18n/i18n'
2
+ import {
3
+ COLUMN_TO_OPERATOR,
4
+ FluencyOperator,
5
+ FluencyTableColumn,
6
+ MasteryLevel,
7
+ MATRIX_NOT_STARTED_COLOR,
8
+ MAX_GRADE_WITH_TWO_OPERATORS,
9
+ OPERATOR_PALETTES,
10
+ TABLE_OPERATOR_COLUMNS,
11
+ TWO_OPERATOR_SET,
12
+ } from './fluencyTeacher.constants'
3
13
  import type {
4
14
  ClassFluencySummaryResponse,
5
15
  ClassFluencyStats,
6
16
  ClassOperatorAverages,
17
+ DrawerGrid,
7
18
  FluencyStudent,
19
+ OperatorBandColors,
20
+ OperatorColumnConfig,
8
21
  StudentResult,
9
22
  } from './fluencyTeacher.types'
10
23
 
11
- export const getCellColor = (box: number | null, colorMap: Record<number, string>): string =>
12
- box ? (colorMap[box] ?? COLORS.NEUTRAL_2) : COLORS.NEUTRAL_2
24
+ export const getCellColor = (
25
+ box: MasteryLevel | null,
26
+ colorMap: Record<MasteryLevel, string>,
27
+ ): string => (box ? (colorMap[box] ?? MATRIX_NOT_STARTED_COLOR) : MATRIX_NOT_STARTED_COLOR)
13
28
 
14
- export const toAverageLabel = (overallPercent: number): TranslationKey => {
15
- if (overallPercent >= 0.9) return 'teacher.fluency.progressFluent'
16
- if (overallPercent >= 0.65) return 'teacher.fluency.progressProficient'
17
- if (overallPercent >= 0.35) return 'teacher.fluency.progressDeveloping'
18
- if (overallPercent >= 0.05) return 'teacher.fluency.progressLearning'
19
- return 'teacher.fluency.progressNotStarted'
29
+ export const isTwoOperatorGrade = (grade: number) => grade <= MAX_GRADE_WITH_TWO_OPERATORS
30
+
31
+ export const getTableOperatorColumns = (grade: number): readonly OperatorColumnConfig[] =>
32
+ isTwoOperatorGrade(grade)
33
+ ? TABLE_OPERATOR_COLUMNS.filter(({ operator }) =>
34
+ TWO_OPERATOR_SET.includes(COLUMN_TO_OPERATOR[operator]),
35
+ )
36
+ : TABLE_OPERATOR_COLUMNS
37
+
38
+ export const getOperatorsForGrade = (grade: number): readonly FluencyOperator[] =>
39
+ isTwoOperatorGrade(grade) ? TWO_OPERATOR_SET : Object.values(FluencyOperator)
40
+
41
+ export const isColumnVisibleForGrade = (column: FluencyTableColumn, grade: number): boolean =>
42
+ column === FluencyTableColumn.AVERAGE ||
43
+ getTableOperatorColumns(grade).some(({ operator }) => operator === column)
44
+
45
+ export const isCommutativeOperator = (operator: FluencyOperator): boolean =>
46
+ operator === FluencyOperator.ADDITION || operator === FluencyOperator.MULTIPLICATION
47
+
48
+ export const getHigherMasteryLevel = (a: MasteryLevel, b: MasteryLevel): MasteryLevel =>
49
+ a > b ? a : b
50
+
51
+ const toValidMasteryLevel = (box: MasteryLevel | null): MasteryLevel | null =>
52
+ box !== null && box >= MasteryLevel.LEARNING && box <= MasteryLevel.AUTOMATIC ? box : null
53
+
54
+ export const countFactsByMasteryLevel = (
55
+ grid: DrawerGrid | null,
56
+ operator: FluencyOperator,
57
+ ): Map<MasteryLevel | null, number> => {
58
+ const counts = new Map<MasteryLevel | null, number>()
59
+ const commutative = isCommutativeOperator(operator)
60
+ grid?.rows.forEach((row) =>
61
+ row.cells.forEach((cell, columnIndex) => {
62
+ if (cell.isEmpty) return
63
+ // Commutative grids mirror each fact into (a,b) and (b,a) cells —
64
+ // count only the upper triangle so each fact is counted once.
65
+ if (commutative && grid.colLabels[columnIndex] < row.label) return
66
+ const box = toValidMasteryLevel(cell.box)
67
+ counts.set(box, (counts.get(box) ?? 0) + 1)
68
+ }),
69
+ )
70
+ return counts
71
+ }
72
+
73
+ const toBandIndex = (percent: number): number => {
74
+ if (percent <= 20) return 0
75
+ if (percent <= 40) return 1
76
+ if (percent <= 60) return 2
77
+ if (percent <= 80) return 3
78
+ return 4
79
+ }
80
+
81
+ // Dark shades (bands 4-5) need white text to stay readable
82
+ export const getOperatorBandColors = (
83
+ operator: FluencyOperator,
84
+ percent: number,
85
+ ): OperatorBandColors => {
86
+ const palette = OPERATOR_PALETTES[operator]
87
+ const band = toBandIndex(percent)
88
+ return {
89
+ background: palette.bands[band],
90
+ border: palette.bandBorders[band],
91
+ text: band >= 3 ? COLORS.NEUTRAL_1 : palette.darkText,
92
+ }
20
93
  }
21
94
 
22
95
  const toPercent = (decimal: number): number => Math.round(decimal * 100)
@@ -68,7 +141,6 @@ export const buildStudentsFluencyTable = ({
68
141
  id: row.studentId,
69
142
  name: student.name,
70
143
  averagePercent: toPercent(row.overallPercent),
71
- averageLabel: toAverageLabel(row.overallPercent),
72
144
  scores: {
73
145
  addition: toPercent(row.byOperator.addition),
74
146
  subtraction: toPercent(row.byOperator.subtraction),
@@ -1,5 +1,10 @@
1
1
  import type { TranslationKey } from '../../i18n/i18n'
2
- import { FluencyOperator, FluencyOperatorColumn, FluencyTableColumn } from './fluencyTeacher.constants'
2
+ import {
3
+ FluencyMathOperatorSymbol,
4
+ FluencyOperator,
5
+ FluencyTableColumn,
6
+ MasteryLevel,
7
+ } from './fluencyTeacher.constants'
3
8
  import { SortingDirection } from '../../shared/common.constants'
4
9
 
5
10
  type FactId = string
@@ -10,7 +15,7 @@ type FactPosition = {
10
15
  }
11
16
 
12
17
  type FactState = {
13
- box: number
18
+ box: MasteryLevel
14
19
  lastAttemptedAt: string | null
15
20
  lastSolvedAt: string | null
16
21
  attemptsCount: number
@@ -62,6 +67,8 @@ export type ClassFluencySummaryResponse = {
62
67
  hardestFacts: TeacherFluencyHardestFact[]
63
68
  }
64
69
 
70
+ export type FluencyOperatorColumn = Exclude<FluencyTableColumn, FluencyTableColumn.AVERAGE>
71
+
65
72
  export type ClassOperatorAverages = Record<FluencyOperatorColumn, number>
66
73
 
67
74
  export type ClassFluencyStats = ClassFluencySummaryResponse & {
@@ -88,7 +95,6 @@ export type StudentResult = {
88
95
  id: string
89
96
  name: string
90
97
  averagePercent: number
91
- averageLabel: TranslationKey
92
98
  scores: StudentOperatorScores
93
99
  }
94
100
 
@@ -99,11 +105,38 @@ export type StudentDrawerInfo = StudentResult & {
99
105
  export type OperatorColumnConfig = {
100
106
  operator: FluencyOperatorColumn
101
107
  labelKey: TranslationKey
102
- symbol: string
103
- badgeBg: string
104
- badgeText: string
105
108
  }
106
109
 
110
+ export type OperatorCardConfig = {
111
+ labelKey: TranslationKey
112
+ symbol: FluencyMathOperatorSymbol
113
+ }
114
+
115
+ export type OperatorPalette = {
116
+ bands: [string, string, string, string, string]
117
+ bandBorders: [string, string, string, string, string]
118
+ darkText: string
119
+ legendCount: string
120
+ boxBorder: string
121
+ }
122
+
123
+ export type OperatorBandColors = {
124
+ background: string
125
+ border: string
126
+ text: string
127
+ }
128
+
129
+ export type LegendItem = {
130
+ box: MasteryLevel | null
131
+ labelKey: TranslationKey
132
+ }
133
+
134
+ export type DrawerGridCell = { box: MasteryLevel | null; isEmpty: boolean }
135
+
136
+ export type DrawerGridRow = { label: number; cells: DrawerGridCell[] }
137
+
138
+ export type DrawerGrid = { colLabels: number[]; rows: DrawerGridRow[] }
139
+
107
140
  export type TeacherFluencyGateProps = {
108
141
  students: FluencyStudent[]
109
142
  grade: number
@@ -2,10 +2,8 @@ import { useMemo } from 'react'
2
2
  import { useUnit } from 'effector-react'
3
3
  import { useTeacherFluency } from '../context/TeacherFluencyContext'
4
4
  import { FluencyOperator } from '../fluencyTeacher.constants'
5
-
6
- export type DrawerGridCell = { box: number | null; isEmpty: boolean }
7
- export type DrawerGridRow = { label: number; cells: DrawerGridCell[] }
8
- export type DrawerGrid = { colLabels: number[]; rows: DrawerGridRow[] }
5
+ import { getHigherMasteryLevel, isCommutativeOperator } from '../fluencyTeacher.helpers'
6
+ import type { DrawerGrid } from '../fluencyTeacher.types'
9
7
 
10
8
  export const useDrawerGrid = (operator: FluencyOperator): DrawerGrid | null => {
11
9
  const { model } = useTeacherFluency()
@@ -19,8 +17,7 @@ export const useDrawerGrid = (operator: FluencyOperator): DrawerGrid | null => {
19
17
 
20
18
  const isDivision = operator === FluencyOperator.DIVISION
21
19
  const isSubtraction = operator === FluencyOperator.SUBTRACTION
22
- const isCommutative =
23
- operator === FluencyOperator.ADDITION || operator === FluencyOperator.MULTIPLICATION
20
+ const isCommutative = isCommutativeOperator(operator)
24
21
 
25
22
  const maxRow = Math.max(...factList.map((f) => f.position.row))
26
23
  const maxCol = Math.max(...factList.map((f) => f.position.column))
@@ -46,7 +43,7 @@ export const useDrawerGrid = (operator: FluencyOperator): DrawerGrid | null => {
46
43
  const mirrorBox = mirrorFact?.box ?? null
47
44
  const box =
48
45
  primaryBox !== null && mirrorBox !== null
49
- ? Math.max(primaryBox, mirrorBox)
46
+ ? getHigherMasteryLevel(primaryBox, mirrorBox)
50
47
  : (primaryBox ?? mirrorBox)
51
48
 
52
49
  return { box, isEmpty: false }
@@ -1,7 +1,8 @@
1
1
  import { useMemo, useState } from 'react'
2
2
  import type { LayoutChangeEvent } from 'react-native'
3
- import { FluencyOperator, MATRIX_CELL_COLORS } from '../fluencyTeacher.constants'
4
- import { useDrawerGrid, type DrawerGrid } from './useDrawerGrid'
3
+ import { FluencyOperator, MasteryLevel, MATRIX_CELL_COLORS } from '../fluencyTeacher.constants'
4
+ import type { DrawerGrid } from '../fluencyTeacher.types'
5
+ import { useDrawerGrid } from './useDrawerGrid'
5
6
 
6
7
  const MATRIX_CELL_GAP = 2
7
8
 
@@ -10,7 +11,7 @@ type DrawerMatrixLayout = {
10
11
  cellSize: number
11
12
  fontSize: number
12
13
  borderRadius: number
13
- cellColorMap: Record<number, string>
14
+ cellColorMap: Record<MasteryLevel, string>
14
15
  onLayout: (e: LayoutChangeEvent) => void
15
16
  }
16
17
 
@@ -8,13 +8,16 @@ export class TeacherFluencyFiltersModel {
8
8
  public readonly $search = restore(this.setSearch, '')
9
9
 
10
10
  public readonly toggleSort = createEvent<FluencyTableColumn>()
11
+ public readonly resetSort = createEvent()
11
12
  public readonly $sort = createStore<SortState>({
12
13
  column: FluencyTableColumn.AVERAGE,
13
14
  direction: SortingDirection.DESC,
14
- }).on(this.toggleSort, (state, column) => {
15
- if (state.column !== column) return { column, direction: SortingDirection.DESC }
16
- const direction =
17
- state.direction === SortingDirection.DESC ? SortingDirection.ASC : SortingDirection.DESC
18
- return { column, direction }
19
15
  })
16
+ .reset(this.resetSort)
17
+ .on(this.toggleSort, (state, column) => {
18
+ if (state.column !== column) return { column, direction: SortingDirection.DESC }
19
+ const direction =
20
+ state.direction === SortingDirection.DESC ? SortingDirection.ASC : SortingDirection.DESC
21
+ return { column, direction }
22
+ })
20
23
  }
@@ -3,6 +3,7 @@ import { createGate } from 'effector-react'
3
3
  import { TeacherFluencyApiModel } from './TeacherFluencyApiModel'
4
4
  import { TeacherFluencyFiltersModel } from './TeacherFluencyFiltersModel'
5
5
  import { TeacherFluencyTableModel } from './TeacherFluencyTableModel'
6
+ import { isColumnVisibleForGrade } from '../fluencyTeacher.helpers'
6
7
  import type { TeacherFluencyGateProps, TeacherFluencyModelProps } from '../fluencyTeacher.types'
7
8
 
8
9
  export class TeacherFluencyModel {
@@ -26,6 +27,13 @@ export class TeacherFluencyModel {
26
27
  target: this.table.reset,
27
28
  })
28
29
 
30
+ sample({
31
+ clock: this.gate.state,
32
+ source: this.filters.$sort,
33
+ filter: (sort, { grade }) => !isColumnVisibleForGrade(sort.column, grade),
34
+ target: this.filters.resetSort,
35
+ })
36
+
29
37
  sample({
30
38
  clock: this.gate.state,
31
39
  source: this.table.initFx.pending,