@magmamath/students-features 1.8.0 → 1.8.1-rc.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 (428) 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/DebugBoxIndicator.js +48 -0
  4. package/dist/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js.map +1 -0
  5. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js +9 -8
  6. package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -1
  7. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +3 -1
  8. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +1 -1
  9. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +63 -10
  10. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -1
  11. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +10 -0
  12. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -1
  13. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +0 -2
  14. package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -1
  15. package/dist/commonjs/features/fluency/index.js +12 -0
  16. package/dist/commonjs/features/fluency/index.js.map +1 -1
  17. package/dist/commonjs/features/fluency/visual-scaffolding/adapter.js +36 -0
  18. package/dist/commonjs/features/fluency/visual-scaffolding/adapter.js.map +1 -0
  19. package/dist/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js +232 -0
  20. package/dist/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js.map +1 -0
  21. package/dist/commonjs/features/fluency/visual-scaffolding/components/Dot.js +51 -0
  22. package/dist/commonjs/features/fluency/visual-scaffolding/components/Dot.js.map +1 -0
  23. package/dist/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.js +104 -0
  24. package/dist/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.js.map +1 -0
  25. package/dist/commonjs/features/fluency/visual-scaffolding/components/FactVisual.js +75 -0
  26. package/dist/commonjs/features/fluency/visual-scaffolding/components/FactVisual.js.map +1 -0
  27. package/dist/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.js +91 -0
  28. package/dist/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.js.map +1 -0
  29. package/dist/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.js +279 -0
  30. package/dist/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.js.map +1 -0
  31. package/dist/commonjs/features/fluency/visual-scaffolding/components/visualColors.js +44 -0
  32. package/dist/commonjs/features/fluency/visual-scaffolding/components/visualColors.js.map +1 -0
  33. package/dist/commonjs/features/fluency/visual-scaffolding/index.js +73 -0
  34. package/dist/commonjs/features/fluency/visual-scaffolding/index.js.map +1 -0
  35. package/dist/commonjs/features/fluency/visual-scaffolding/renderFact.js +276 -0
  36. package/dist/commonjs/features/fluency/visual-scaffolding/renderFact.js.map +1 -0
  37. package/dist/commonjs/features/fluency/visual-scaffolding/types.js +2 -0
  38. package/dist/commonjs/features/fluency/visual-scaffolding/types.js.map +1 -0
  39. package/dist/commonjs/features/fluency-teacher/assets/{DivisionIcon.js → SortDefaultIcon.js} +8 -11
  40. package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
  41. package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js +3 -4
  42. package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js.map +1 -1
  43. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js +43 -48
  44. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -1
  45. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +80 -0
  46. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
  47. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js +28 -11
  48. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -1
  49. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +44 -27
  50. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -1
  51. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +40 -47
  52. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -1
  53. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js +24 -14
  54. package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -1
  55. package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +6 -6
  56. package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -1
  57. package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -1
  58. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js +16 -2
  59. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -1
  60. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js +2 -1
  61. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -1
  62. package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js +41 -15
  63. package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -1
  64. package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js +62 -6
  65. package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -1
  66. package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +40 -42
  67. package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -1
  68. package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js +16 -25
  69. package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -1
  70. package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js +40 -30
  71. package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -1
  72. package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js +72 -59
  73. package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js.map +1 -1
  74. package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js +71 -0
  75. package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
  76. package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -1
  77. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js +38 -103
  78. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -1
  79. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js +10 -52
  80. package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -1
  81. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js +2 -3
  82. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -1
  83. package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -1
  84. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +1 -2
  85. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -1
  86. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js +0 -9
  87. package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -1
  88. package/dist/module/features/fluency/components/FluencySolving.js +2 -2
  89. package/dist/module/features/fluency/components/FluencySolving.js.map +1 -1
  90. package/dist/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js +43 -0
  91. package/dist/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.js.map +1 -0
  92. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js +9 -8
  93. package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -1
  94. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js +3 -1
  95. package/dist/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.js.map +1 -1
  96. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js +64 -11
  97. package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -1
  98. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js +10 -0
  99. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -1
  100. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +0 -2
  101. package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -1
  102. package/dist/module/features/fluency/index.js +1 -0
  103. package/dist/module/features/fluency/index.js.map +1 -1
  104. package/dist/module/features/fluency/visual-scaffolding/adapter.js +31 -0
  105. package/dist/module/features/fluency/visual-scaffolding/adapter.js.map +1 -0
  106. package/dist/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js +225 -0
  107. package/dist/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.js.map +1 -0
  108. package/dist/module/features/fluency/visual-scaffolding/components/Dot.js +45 -0
  109. package/dist/module/features/fluency/visual-scaffolding/components/Dot.js.map +1 -0
  110. package/dist/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.js +96 -0
  111. package/dist/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.js.map +1 -0
  112. package/dist/module/features/fluency/visual-scaffolding/components/FactVisual.js +69 -0
  113. package/dist/module/features/fluency/visual-scaffolding/components/FactVisual.js.map +1 -0
  114. package/dist/module/features/fluency/visual-scaffolding/components/QuotativeBars.js +83 -0
  115. package/dist/module/features/fluency/visual-scaffolding/components/QuotativeBars.js.map +1 -0
  116. package/dist/module/features/fluency/visual-scaffolding/components/RelationalBlock.js +272 -0
  117. package/dist/module/features/fluency/visual-scaffolding/components/RelationalBlock.js.map +1 -0
  118. package/dist/module/features/fluency/visual-scaffolding/components/visualColors.js +41 -0
  119. package/dist/module/features/fluency/visual-scaffolding/components/visualColors.js.map +1 -0
  120. package/dist/module/features/fluency/visual-scaffolding/index.js +8 -0
  121. package/dist/module/features/fluency/visual-scaffolding/index.js.map +1 -0
  122. package/dist/module/features/fluency/visual-scaffolding/renderFact.js +269 -0
  123. package/dist/module/features/fluency/visual-scaffolding/renderFact.js.map +1 -0
  124. package/dist/module/features/fluency/visual-scaffolding/types.js +2 -0
  125. package/dist/module/features/fluency/visual-scaffolding/types.js.map +1 -0
  126. package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js +23 -0
  127. package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
  128. package/dist/module/features/fluency-teacher/components/FluencyTeacher.js +3 -4
  129. package/dist/module/features/fluency-teacher/components/FluencyTeacher.js.map +1 -1
  130. package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js +44 -49
  131. package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -1
  132. package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +74 -0
  133. package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
  134. package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js +31 -14
  135. package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -1
  136. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +45 -28
  137. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -1
  138. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +41 -48
  139. package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -1
  140. package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js +27 -17
  141. package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -1
  142. package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +6 -6
  143. package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -1
  144. package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -1
  145. package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js +17 -3
  146. package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -1
  147. package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js +2 -1
  148. package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -1
  149. package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js +42 -16
  150. package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -1
  151. package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js +63 -7
  152. package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -1
  153. package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +42 -44
  154. package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -1
  155. package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js +16 -25
  156. package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -1
  157. package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js +42 -32
  158. package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -1
  159. package/dist/module/features/fluency-teacher/components/table/TableRow.js +75 -62
  160. package/dist/module/features/fluency-teacher/components/table/TableRow.js.map +1 -1
  161. package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js +65 -0
  162. package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
  163. package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -1
  164. package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js +37 -102
  165. package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -1
  166. package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js +8 -43
  167. package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -1
  168. package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js +2 -3
  169. package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -1
  170. package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -1
  171. package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +1 -2
  172. package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -1
  173. package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js +0 -9
  174. package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -1
  175. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts +3 -0
  176. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts.map +1 -0
  177. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -1
  178. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +1 -1
  179. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +2 -1
  180. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -1
  181. package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -1
  182. package/dist/typescript/commonjs/features/fluency/index.d.ts +1 -0
  183. package/dist/typescript/commonjs/features/fluency/index.d.ts.map +1 -1
  184. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts +2 -0
  185. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts.map +1 -0
  186. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/adapter.d.ts +4 -0
  187. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/adapter.d.ts.map +1 -0
  188. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts +10 -0
  189. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts.map +1 -0
  190. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/Dot.d.ts +10 -0
  191. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/Dot.d.ts.map +1 -0
  192. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts +10 -0
  193. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts.map +1 -0
  194. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/FactVisual.d.ts +10 -0
  195. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/FactVisual.d.ts.map +1 -0
  196. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts +10 -0
  197. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts.map +1 -0
  198. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts +10 -0
  199. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts.map +1 -0
  200. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/visualColors.d.ts +16 -0
  201. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/components/visualColors.d.ts.map +1 -0
  202. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/index.d.ts +6 -0
  203. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/index.d.ts.map +1 -0
  204. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/renderFact.d.ts +23 -0
  205. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/renderFact.d.ts.map +1 -0
  206. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/types.d.ts +103 -0
  207. package/dist/typescript/commonjs/features/fluency/visual-scaffolding/types.d.ts.map +1 -0
  208. package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
  209. package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
  210. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -1
  211. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
  212. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
  213. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -1
  214. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +4 -1
  215. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -1
  216. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +4 -6
  217. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -1
  218. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -1
  219. package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -1
  220. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +2 -3
  221. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -1
  222. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts +5 -6
  223. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -1
  224. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +1 -2
  225. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -1
  226. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts +3 -5
  227. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -1
  228. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -1
  229. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts +1 -2
  230. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -1
  231. package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -1
  232. package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts +4 -5
  233. package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -1
  234. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +6 -7
  235. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -1
  236. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts +3 -4
  237. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -1
  238. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
  239. package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
  240. package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts +0 -1
  241. package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -1
  242. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts +3 -16
  243. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -1
  244. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts +4 -11
  245. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -1
  246. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts +6 -35
  247. package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -1
  248. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts +12 -1
  249. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -1
  250. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +3 -3
  251. package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -1
  252. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +0 -1
  253. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -1
  254. package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -1
  255. package/dist/typescript/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts +3 -0
  256. package/dist/typescript/module/features/fluency/components/fluency-solving/components/DebugBoxIndicator.d.ts.map +1 -0
  257. package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -1
  258. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyCardDeck.d.ts.map +1 -1
  259. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts +2 -1
  260. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -1
  261. package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -1
  262. package/dist/typescript/module/features/fluency/index.d.ts +1 -0
  263. package/dist/typescript/module/features/fluency/index.d.ts.map +1 -1
  264. package/dist/typescript/module/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts +2 -0
  265. package/dist/typescript/module/features/fluency/visual-scaffolding/__tests__/renderFact.test.d.ts.map +1 -0
  266. package/dist/typescript/module/features/fluency/visual-scaffolding/adapter.d.ts +4 -0
  267. package/dist/typescript/module/features/fluency/visual-scaffolding/adapter.d.ts.map +1 -0
  268. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts +10 -0
  269. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.d.ts.map +1 -0
  270. package/dist/typescript/module/features/fluency/visual-scaffolding/components/Dot.d.ts +10 -0
  271. package/dist/typescript/module/features/fluency/visual-scaffolding/components/Dot.d.ts.map +1 -0
  272. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts +10 -0
  273. package/dist/typescript/module/features/fluency/visual-scaffolding/components/DynamicNumberLine.d.ts.map +1 -0
  274. package/dist/typescript/module/features/fluency/visual-scaffolding/components/FactVisual.d.ts +10 -0
  275. package/dist/typescript/module/features/fluency/visual-scaffolding/components/FactVisual.d.ts.map +1 -0
  276. package/dist/typescript/module/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts +10 -0
  277. package/dist/typescript/module/features/fluency/visual-scaffolding/components/QuotativeBars.d.ts.map +1 -0
  278. package/dist/typescript/module/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts +10 -0
  279. package/dist/typescript/module/features/fluency/visual-scaffolding/components/RelationalBlock.d.ts.map +1 -0
  280. package/dist/typescript/module/features/fluency/visual-scaffolding/components/visualColors.d.ts +16 -0
  281. package/dist/typescript/module/features/fluency/visual-scaffolding/components/visualColors.d.ts.map +1 -0
  282. package/dist/typescript/module/features/fluency/visual-scaffolding/index.d.ts +6 -0
  283. package/dist/typescript/module/features/fluency/visual-scaffolding/index.d.ts.map +1 -0
  284. package/dist/typescript/module/features/fluency/visual-scaffolding/renderFact.d.ts +23 -0
  285. package/dist/typescript/module/features/fluency/visual-scaffolding/renderFact.d.ts.map +1 -0
  286. package/dist/typescript/module/features/fluency/visual-scaffolding/types.d.ts +103 -0
  287. package/dist/typescript/module/features/fluency/visual-scaffolding/types.d.ts.map +1 -0
  288. package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
  289. package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
  290. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -1
  291. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
  292. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
  293. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -1
  294. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +4 -1
  295. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -1
  296. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +4 -6
  297. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -1
  298. package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -1
  299. package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -1
  300. package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +2 -3
  301. package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -1
  302. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts +5 -6
  303. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -1
  304. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +1 -2
  305. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -1
  306. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts +3 -5
  307. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -1
  308. package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -1
  309. package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts +1 -2
  310. package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -1
  311. package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -1
  312. package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts +4 -5
  313. package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -1
  314. package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +6 -7
  315. package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -1
  316. package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts +3 -4
  317. package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -1
  318. package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
  319. package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
  320. package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts +0 -1
  321. package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -1
  322. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts +3 -16
  323. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -1
  324. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts +4 -11
  325. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -1
  326. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts +6 -35
  327. package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -1
  328. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts +12 -1
  329. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -1
  330. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +3 -3
  331. package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -1
  332. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +0 -1
  333. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -1
  334. package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -1
  335. package/package.json +1 -1
  336. package/src/features/fluency/components/FluencySolving.tsx +2 -2
  337. package/src/features/fluency/components/fluency-solving/components/DebugBoxIndicator.tsx +40 -0
  338. package/src/features/fluency/components/fluency-solving/components/EquationContent.tsx +12 -8
  339. package/src/features/fluency/components/fluency-solving/components/FluencyCardDeck.tsx +6 -1
  340. package/src/features/fluency/components/fluency-solving/components/FluencyEquationCard.tsx +63 -11
  341. package/src/features/fluency/components/fluency-solving/components/FluencySolvingHeader.tsx +9 -0
  342. package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx +0 -2
  343. package/src/features/fluency/index.ts +1 -0
  344. package/src/features/fluency/visual-scaffolding/__tests__/__snapshots__/renderFact.test.ts.snap +64 -0
  345. package/src/features/fluency/visual-scaffolding/__tests__/renderFact.test.ts +192 -0
  346. package/src/features/fluency/visual-scaffolding/adapter.ts +33 -0
  347. package/src/features/fluency/visual-scaffolding/components/DiscreteCounterGrid.tsx +222 -0
  348. package/src/features/fluency/visual-scaffolding/components/Dot.tsx +36 -0
  349. package/src/features/fluency/visual-scaffolding/components/DynamicNumberLine.tsx +98 -0
  350. package/src/features/fluency/visual-scaffolding/components/FactVisual.tsx +61 -0
  351. package/src/features/fluency/visual-scaffolding/components/QuotativeBars.tsx +92 -0
  352. package/src/features/fluency/visual-scaffolding/components/RelationalBlock.tsx +225 -0
  353. package/src/features/fluency/visual-scaffolding/components/visualColors.ts +45 -0
  354. package/src/features/fluency/visual-scaffolding/index.ts +5 -0
  355. package/src/features/fluency/visual-scaffolding/renderFact.ts +219 -0
  356. package/src/features/fluency/visual-scaffolding/types.ts +108 -0
  357. package/src/features/fluency-teacher/assets/SortDefaultIcon.tsx +10 -0
  358. package/src/features/fluency-teacher/components/FluencyTeacher.tsx +3 -3
  359. package/src/features/fluency-teacher/components/drawer/DrawerHeader.tsx +35 -37
  360. package/src/features/fluency-teacher/components/drawer/DrawerMasteryLegend.tsx +63 -0
  361. package/src/features/fluency-teacher/components/drawer/DrawerMatrixes.tsx +32 -13
  362. package/src/features/fluency-teacher/components/drawer/DrawerOperatorBox.tsx +40 -20
  363. package/src/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.tsx +35 -35
  364. package/src/features/fluency-teacher/components/drawer/DrawerStats.tsx +28 -16
  365. package/src/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.tsx +5 -4
  366. package/src/features/fluency-teacher/components/matrix/DrawerMatrix.tsx +2 -3
  367. package/src/features/fluency-teacher/components/matrix/MatrixCell.tsx +16 -7
  368. package/src/features/fluency-teacher/components/matrix/MatrixHeaderRow.tsx +1 -1
  369. package/src/features/fluency-teacher/components/matrix/MatrixRow.tsx +4 -4
  370. package/src/features/fluency-teacher/components/table/AllPupilsTableRow.tsx +40 -13
  371. package/src/features/fluency-teacher/components/table/AverageSortButton.tsx +62 -8
  372. package/src/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.tsx +35 -49
  373. package/src/features/fluency-teacher/components/table/OperatorBadge.tsx +11 -18
  374. package/src/features/fluency-teacher/components/table/TableColumnSortButton.tsx +49 -28
  375. package/src/features/fluency-teacher/components/table/TableRow.tsx +64 -65
  376. package/src/features/fluency-teacher/components/table/TableRowAverageProgress.tsx +65 -0
  377. package/src/features/fluency-teacher/context/TeacherFluencyContext.ts +0 -1
  378. package/src/features/fluency-teacher/fluencyTeacher.constants.ts +40 -138
  379. package/src/features/fluency-teacher/fluencyTeacher.helpers.ts +10 -82
  380. package/src/features/fluency-teacher/fluencyTeacher.types.ts +6 -39
  381. package/src/features/fluency-teacher/hooks/useDrawerGrid.ts +7 -4
  382. package/src/features/fluency-teacher/hooks/useDrawerMatrix.ts +3 -4
  383. package/src/features/fluency-teacher/model/TeacherFluencyFiltersModel.ts +5 -8
  384. package/src/features/fluency-teacher/model/TeacherFluencyModel.ts +0 -8
  385. package/dist/commonjs/features/fluency-teacher/assets/DivisionIcon.js.map +0 -1
  386. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.js +0 -83
  387. package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.js.map +0 -1
  388. package/dist/commonjs/features/fluency-teacher/components/table/AverageCell.js +0 -55
  389. package/dist/commonjs/features/fluency-teacher/components/table/AverageCell.js.map +0 -1
  390. package/dist/commonjs/features/fluency-teacher/components/table/SortOrderCarets.js +0 -40
  391. package/dist/commonjs/features/fluency-teacher/components/table/SortOrderCarets.js.map +0 -1
  392. package/dist/commonjs/features/fluency-teacher/components/table/tableCell.styles.js +0 -45
  393. package/dist/commonjs/features/fluency-teacher/components/table/tableCell.styles.js.map +0 -1
  394. package/dist/module/features/fluency-teacher/assets/DivisionIcon.js +0 -26
  395. package/dist/module/features/fluency-teacher/assets/DivisionIcon.js.map +0 -1
  396. package/dist/module/features/fluency-teacher/components/matrix/MatrixLegend.js +0 -77
  397. package/dist/module/features/fluency-teacher/components/matrix/MatrixLegend.js.map +0 -1
  398. package/dist/module/features/fluency-teacher/components/table/AverageCell.js +0 -49
  399. package/dist/module/features/fluency-teacher/components/table/AverageCell.js.map +0 -1
  400. package/dist/module/features/fluency-teacher/components/table/SortOrderCarets.js +0 -34
  401. package/dist/module/features/fluency-teacher/components/table/SortOrderCarets.js.map +0 -1
  402. package/dist/module/features/fluency-teacher/components/table/tableCell.styles.js +0 -42
  403. package/dist/module/features/fluency-teacher/components/table/tableCell.styles.js.map +0 -1
  404. package/dist/typescript/commonjs/features/fluency-teacher/assets/DivisionIcon.d.ts +0 -4
  405. package/dist/typescript/commonjs/features/fluency-teacher/assets/DivisionIcon.d.ts.map +0 -1
  406. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.d.ts +0 -10
  407. package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixLegend.d.ts.map +0 -1
  408. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageCell.d.ts +0 -9
  409. package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageCell.d.ts.map +0 -1
  410. package/dist/typescript/commonjs/features/fluency-teacher/components/table/SortOrderCarets.d.ts +0 -9
  411. package/dist/typescript/commonjs/features/fluency-teacher/components/table/SortOrderCarets.d.ts.map +0 -1
  412. package/dist/typescript/commonjs/features/fluency-teacher/components/table/tableCell.styles.d.ts +0 -35
  413. package/dist/typescript/commonjs/features/fluency-teacher/components/table/tableCell.styles.d.ts.map +0 -1
  414. package/dist/typescript/module/features/fluency-teacher/assets/DivisionIcon.d.ts +0 -4
  415. package/dist/typescript/module/features/fluency-teacher/assets/DivisionIcon.d.ts.map +0 -1
  416. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixLegend.d.ts +0 -10
  417. package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixLegend.d.ts.map +0 -1
  418. package/dist/typescript/module/features/fluency-teacher/components/table/AverageCell.d.ts +0 -9
  419. package/dist/typescript/module/features/fluency-teacher/components/table/AverageCell.d.ts.map +0 -1
  420. package/dist/typescript/module/features/fluency-teacher/components/table/SortOrderCarets.d.ts +0 -9
  421. package/dist/typescript/module/features/fluency-teacher/components/table/SortOrderCarets.d.ts.map +0 -1
  422. package/dist/typescript/module/features/fluency-teacher/components/table/tableCell.styles.d.ts +0 -35
  423. package/dist/typescript/module/features/fluency-teacher/components/table/tableCell.styles.d.ts.map +0 -1
  424. package/src/features/fluency-teacher/assets/DivisionIcon.tsx +0 -20
  425. package/src/features/fluency-teacher/components/matrix/MatrixLegend.tsx +0 -81
  426. package/src/features/fluency-teacher/components/table/AverageCell.tsx +0 -45
  427. package/src/features/fluency-teacher/components/table/SortOrderCarets.tsx +0 -37
  428. package/src/features/fluency-teacher/components/table/tableCell.styles.ts +0 -39
@@ -0,0 +1,232 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DiscreteCounterGrid = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeUi = require("@magmamath/react-native-ui");
10
+ var _Dot = require("./Dot.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ const CELL_SIZE = 24;
15
+ const CELL_GAP = 4;
16
+ const FRAME_COLUMNS = 5;
17
+ const TOKEN_SIZE = 14;
18
+ const GROUP_COLUMNS = 5;
19
+ const GROUP_PADDING = _reactNativeUi.SPACING[200];
20
+ const GROUP_BORDER = 2;
21
+ // Wide enough to fit GROUP_COLUMNS dots per row (incl. padding + border, border-box),
22
+ // so a group of five fills one row like the ten-frame instead of wrapping at four.
23
+ const GROUP_MAX_WIDTH = GROUP_COLUMNS * (TOKEN_SIZE + CELL_GAP) + 2 * GROUP_PADDING + 2 * GROUP_BORDER;
24
+ // Max groups per row; groups are split into balanced rows (10 → 5+5, 20 → 5×4).
25
+ const GROUPS_PER_ROW_MAX = 5;
26
+
27
+ // Budget the grid is allowed to occupy in the visual zone; bigger facts (e.g.
28
+ // 9 × 9 → many groups) are scaled down uniformly to fit rather than overflowing.
29
+ const FIT_W = 500;
30
+ const FIT_H = 92;
31
+ // L1 — renders absolute, discrete quantities to build a conceptual baseline.
32
+ const DiscreteCounterGrid = ({
33
+ spec,
34
+ colors
35
+ }) => {
36
+ const {
37
+ layout
38
+ } = spec;
39
+ const [size, setSize] = (0, _react.useState)(null);
40
+ const measure = event => {
41
+ const {
42
+ width,
43
+ height
44
+ } = event.nativeEvent.layout;
45
+ setSize(prev => prev?.width === width && prev?.height === height ? prev : {
46
+ width,
47
+ height
48
+ });
49
+ };
50
+
51
+ // Shrink only when the natural size exceeds the budget; otherwise render 1:1.
52
+ const scale = size && size.width > 0 && size.height > 0 ? Math.min(1, FIT_W / size.width, FIT_H / size.height) : 1;
53
+ const content = (() => {
54
+ switch (layout.type) {
55
+ case 'tenframes':
56
+ {
57
+ // Pour `a` tone-A tokens then `b` tone-B tokens into the frame, filling it
58
+ // up; a second frame appears only once the sum spills past ten.
59
+ const total = layout.a + layout.b;
60
+ const frameCount = total > layout.capacity ? 2 : 1;
61
+ const cells = Array.from({
62
+ length: layout.capacity * frameCount
63
+ }, (_, i) => {
64
+ if (i < layout.a) return 'a';
65
+ if (i < total) return 'b';
66
+ return null;
67
+ });
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
69
+ style: styles.frameRow,
70
+ children: Array.from({
71
+ length: frameCount
72
+ }, (_, f) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TenFrame, {
73
+ tones: cells.slice(f * layout.capacity, (f + 1) * layout.capacity),
74
+ colors: colors
75
+ }, f))
76
+ });
77
+ }
78
+ case 'tenframes_takeaway':
79
+ {
80
+ // Fill `total` tokens (striking the last `removed`); a second frame shows
81
+ // only when the minuend spills past ten, matching the addition frames.
82
+ const frameCount = layout.total > layout.capacity ? 2 : 1;
83
+ const cells = Array.from({
84
+ length: layout.capacity * frameCount
85
+ }, (_, i) => {
86
+ if (i >= layout.total) return null;
87
+ return i >= layout.total - layout.removed ? 'gone' : 'a';
88
+ });
89
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
90
+ style: styles.frameRow,
91
+ children: Array.from({
92
+ length: frameCount
93
+ }, (_, f) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TenFrame, {
94
+ tones: cells.slice(f * layout.capacity, (f + 1) * layout.capacity),
95
+ colors: colors
96
+ }, f))
97
+ });
98
+ }
99
+ case 'array':
100
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
101
+ style: styles.array,
102
+ children: Array.from({
103
+ length: layout.rows
104
+ }, (_, r) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
105
+ style: styles.arrayRow,
106
+ children: Array.from({
107
+ length: layout.cols
108
+ }, (_, c) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dot.Dot, {
109
+ color: colors.accent,
110
+ size: TOKEN_SIZE
111
+ }, c))
112
+ }, r))
113
+ });
114
+ case 'groups':
115
+ {
116
+ const rowCount = Math.max(1, Math.ceil(layout.groupCount / GROUPS_PER_ROW_MAX));
117
+ const perRow = Math.ceil(layout.groupCount / rowCount);
118
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
119
+ style: styles.groupGrid,
120
+ children: Array.from({
121
+ length: rowCount
122
+ }, (_, r) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
123
+ style: styles.groupRow,
124
+ children: Array.from({
125
+ length: Math.min(perRow, layout.groupCount - r * perRow)
126
+ }, (_, g) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
127
+ style: [styles.group, {
128
+ borderColor: colors.mid
129
+ }],
130
+ children: Array.from({
131
+ length: layout.perGroup
132
+ }, (_, d) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dot.Dot, {
133
+ color: colors.accent,
134
+ size: TOKEN_SIZE
135
+ }, d))
136
+ }, g))
137
+ }, r))
138
+ });
139
+ }
140
+ }
141
+ })();
142
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
143
+ onLayout: measure,
144
+ style: [styles.fit, {
145
+ transform: [{
146
+ scale
147
+ }]
148
+ }],
149
+ children: content
150
+ });
151
+ };
152
+ exports.DiscreteCounterGrid = DiscreteCounterGrid;
153
+ const TONE_COLOR = (tone, colors) => tone === 'a' ? colors.accent : colors.mid;
154
+ const TenFrame = ({
155
+ tones,
156
+ colors
157
+ }) => {
158
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
159
+ style: styles.frame,
160
+ children: tones.map((tone, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
161
+ style: styles.cell,
162
+ children: [tone === 'gone' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dot.Dot, {
163
+ color: colors.accent,
164
+ strike: true,
165
+ size: TOKEN_SIZE
166
+ }), (tone === 'a' || tone === 'b') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Dot.Dot, {
167
+ color: TONE_COLOR(tone, colors),
168
+ size: TOKEN_SIZE
169
+ })]
170
+ }, i))
171
+ });
172
+ };
173
+ const styles = _reactNative.StyleSheet.create({
174
+ // Measures its natural size; transform-scales down to the budget if it overflows.
175
+ fit: {
176
+ alignItems: 'center'
177
+ },
178
+ groupGrid: {
179
+ gap: _reactNativeUi.SPACING[200],
180
+ alignItems: 'center'
181
+ },
182
+ frameRow: {
183
+ flexDirection: 'row',
184
+ gap: _reactNativeUi.SPACING[300],
185
+ alignItems: 'center',
186
+ flexWrap: 'wrap',
187
+ justifyContent: 'center'
188
+ },
189
+ frame: {
190
+ width: FRAME_COLUMNS * CELL_SIZE + (FRAME_COLUMNS - 1) * CELL_GAP,
191
+ flexDirection: 'row',
192
+ flexWrap: 'wrap',
193
+ gap: CELL_GAP
194
+ },
195
+ cell: {
196
+ width: CELL_SIZE,
197
+ height: CELL_SIZE,
198
+ borderRadius: 4,
199
+ borderWidth: 1.5,
200
+ borderColor: _reactNativeUi.COLORS.NEUTRAL_5,
201
+ alignItems: 'center',
202
+ justifyContent: 'center'
203
+ },
204
+ array: {
205
+ gap: CELL_GAP + 2,
206
+ alignItems: 'center'
207
+ },
208
+ arrayRow: {
209
+ flexDirection: 'row',
210
+ gap: CELL_GAP + 2
211
+ },
212
+ groupRow: {
213
+ flexDirection: 'row',
214
+ flexWrap: 'wrap',
215
+ gap: _reactNativeUi.SPACING[200],
216
+ justifyContent: 'center',
217
+ alignItems: 'center'
218
+ },
219
+ group: {
220
+ flexDirection: 'row',
221
+ flexWrap: 'wrap',
222
+ // Shrink to fit the dots it holds (a single dot gets a small box); cap at
223
+ // five columns so larger groups wrap instead of stretching.
224
+ maxWidth: GROUP_MAX_WIDTH,
225
+ gap: CELL_GAP,
226
+ padding: GROUP_PADDING,
227
+ borderWidth: GROUP_BORDER,
228
+ borderRadius: _reactNativeUi.BORDER_RADIUS[200],
229
+ backgroundColor: _reactNativeUi.COLORS.NEUTRAL_2
230
+ }
231
+ });
232
+ //# sourceMappingURL=DiscreteCounterGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_Dot","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","CELL_SIZE","CELL_GAP","FRAME_COLUMNS","TOKEN_SIZE","GROUP_COLUMNS","GROUP_PADDING","SPACING","GROUP_BORDER","GROUP_MAX_WIDTH","GROUPS_PER_ROW_MAX","FIT_W","FIT_H","DiscreteCounterGrid","spec","colors","layout","size","setSize","useState","measure","event","width","height","nativeEvent","prev","scale","Math","min","content","type","total","b","frameCount","capacity","cells","Array","from","length","_","jsx","View","style","styles","frameRow","children","f","TenFrame","tones","slice","removed","array","rows","arrayRow","cols","c","Dot","color","accent","rowCount","max","ceil","groupCount","perRow","groupGrid","groupRow","g","group","borderColor","mid","perGroup","d","onLayout","fit","transform","exports","TONE_COLOR","tone","frame","map","jsxs","cell","strike","StyleSheet","create","alignItems","gap","flexDirection","flexWrap","justifyContent","borderRadius","borderWidth","COLORS","NEUTRAL_5","maxWidth","padding","BORDER_RADIUS","backgroundColor","NEUTRAL_2"],"sourceRoot":"../../../../../../src","sources":["features/fluency/visual-scaffolding/components/DiscreteCounterGrid.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Dot = exports.DOT_SIZE = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeUi = require("@magmamath/react-native-ui");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const DOT_SIZE = exports.DOT_SIZE = 12;
13
+ // Shared quantity primitive: a filled circle.
14
+ const Dot = ({
15
+ color,
16
+ strike = false,
17
+ size = DOT_SIZE
18
+ }) => {
19
+ const circle = {
20
+ width: size,
21
+ height: size,
22
+ borderRadius: size / 2
23
+ };
24
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
25
+ style: [circle, {
26
+ backgroundColor: color
27
+ }],
28
+ children: strike && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
29
+ style: styles.strike
30
+ })
31
+ });
32
+ };
33
+ exports.Dot = Dot;
34
+ const styles = _reactNative.StyleSheet.create({
35
+ strike: {
36
+ position: 'absolute',
37
+ top: '50%',
38
+ left: '-15%',
39
+ width: '130%',
40
+ height: 2,
41
+ marginTop: -1,
42
+ // pull up half the height so the bar is centered, not top-aligned
43
+ borderRadius: 1,
44
+ // round the stroke ends
45
+ backgroundColor: _reactNativeUi.COLORS.NEUTRAL_10,
46
+ transform: [{
47
+ rotate: '-45deg'
48
+ }]
49
+ }
50
+ });
51
+ //# sourceMappingURL=Dot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_jsxRuntime","e","__esModule","default","DOT_SIZE","exports","Dot","color","strike","size","circle","width","height","borderRadius","jsx","View","style","backgroundColor","children","styles","StyleSheet","create","position","top","left","marginTop","COLORS","NEUTRAL_10","transform","rotate"],"sourceRoot":"../../../../../../src","sources":["features/fluency/visual-scaffolding/components/Dot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAAmD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5C,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAG,EAAE;AAS1B;AACO,MAAME,GAAG,GAAGA,CAAC;EAAEC,KAAK;EAAEC,MAAM,GAAG,KAAK;EAAEC,IAAI,GAAGL;AAAmB,CAAC,KAAK;EAC3E,MAAMM,MAAM,GAAG;IAAEC,KAAK,EAAEF,IAAI;IAAEG,MAAM,EAAEH,IAAI;IAAEI,YAAY,EAAEJ,IAAI,GAAG;EAAE,CAAC;EACpE,oBACE,IAAAT,WAAA,CAAAc,GAAA,EAAChB,YAAA,CAAAiB,IAAI;IAACC,KAAK,EAAE,CAACN,MAAM,EAAE;MAAEO,eAAe,EAAEV;IAAM,CAAC,CAAE;IAAAW,QAAA,EAC/CV,MAAM,iBAAI,IAAAR,WAAA,CAAAc,GAAA,EAAChB,YAAA,CAAAiB,IAAI;MAACC,KAAK,EAAEG,MAAM,CAACX;IAAO,CAAE;EAAC,CACrC,CAAC;AAEX,CAAC;AAAAH,OAAA,CAAAC,GAAA,GAAAA,GAAA;AAED,MAAMa,MAAM,GAAGC,uBAAU,CAACC,MAAM,CAAC;EAC/Bb,MAAM,EAAE;IACNc,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,KAAK;IACVC,IAAI,EAAE,MAAM;IACZb,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,CAAC;IACTa,SAAS,EAAE,CAAC,CAAC;IAAE;IACfZ,YAAY,EAAE,CAAC;IAAE;IACjBI,eAAe,EAAES,qBAAM,CAACC,UAAU;IAClCC,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAS,CAAC;EAClC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DynamicNumberLine = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
10
+ var _reactNativeUi = require("@magmamath/react-native-ui");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const VB_W = 560;
16
+ const VB_H = 110;
17
+ const PAD_X = 22;
18
+ const BASE_Y = 74;
19
+ const ARC_H = 56;
20
+ // L3 — addition jumps forward, subtraction backward; both bridge through every
21
+ // ten (jumps land on each multiple of 10 crossed). Multiplication skip-counts.
22
+ const DynamicNumberLine = ({
23
+ spec,
24
+ colors
25
+ }) => {
26
+ const span = spec.hi - spec.lo;
27
+ const denom = span === 0 ? 1 : span;
28
+ const x = v => PAD_X + (v - spec.lo) / denom * (VB_W - 2 * PAD_X);
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
30
+ style: styles.wrapper,
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.default, {
32
+ width: "100%",
33
+ height: "100%",
34
+ viewBox: `0 0 ${VB_W} ${VB_H}`,
35
+ preserveAspectRatio: "xMidYMid meet",
36
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Line, {
37
+ x1: PAD_X - 14,
38
+ y1: BASE_Y,
39
+ x2: VB_W - PAD_X + 14,
40
+ y2: BASE_Y,
41
+ stroke: _reactNativeUi.COLORS.NEUTRAL_5,
42
+ strokeWidth: 3,
43
+ strokeLinecap: "round"
44
+ }), spec.ticks.map(value => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
45
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Line, {
46
+ x1: x(value),
47
+ y1: BASE_Y - 6,
48
+ x2: x(value),
49
+ y2: BASE_Y + 6,
50
+ stroke: _reactNativeUi.COLORS.NEUTRAL_6,
51
+ strokeWidth: 3
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
53
+ x: x(value),
54
+ y: BASE_Y + 25,
55
+ fontSize: 20,
56
+ fontWeight: "700",
57
+ fontFamily: _reactNativeUi.FONT_FAMILY.buenosAires,
58
+ fill: _reactNativeUi.COLORS.NEUTRAL_8,
59
+ textAnchor: "middle",
60
+ children: value === spec.hiddenTick ? '?' : value
61
+ })]
62
+ }, `t${value}`)), spec.jumps.map((jump, i) => {
63
+ const midX = (x(jump.from) + x(jump.to)) / 2;
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
65
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
66
+ d: `M ${x(jump.from)} ${BASE_Y - 4} Q ${midX} ${BASE_Y - ARC_H - 12} ${x(jump.to)} ${BASE_Y - 4}`,
67
+ stroke: colors.accent,
68
+ strokeWidth: 4,
69
+ fill: "none"
70
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Circle, {
71
+ cx: x(jump.to),
72
+ cy: BASE_Y,
73
+ r: 6.5,
74
+ fill: colors.accent
75
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
76
+ x: midX,
77
+ y: BASE_Y - ARC_H - 1,
78
+ fontSize: 20,
79
+ fontWeight: "800",
80
+ fontFamily: _reactNativeUi.FONT_FAMILY.buenosAires,
81
+ fill: colors.dark,
82
+ textAnchor: "middle",
83
+ children: jump.label
84
+ })]
85
+ }, `j${i}`);
86
+ }), spec.jumps.length > 0 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Circle, {
87
+ cx: x(spec.jumps[0].from),
88
+ cy: BASE_Y,
89
+ r: 6.5,
90
+ fill: colors.accent
91
+ })]
92
+ })
93
+ });
94
+ };
95
+ exports.DynamicNumberLine = DynamicNumberLine;
96
+ const styles = _reactNative.StyleSheet.create({
97
+ wrapper: {
98
+ width: '100%',
99
+ maxWidth: VB_W,
100
+ aspectRatio: VB_W / VB_H,
101
+ alignSelf: 'center'
102
+ }
103
+ });
104
+ //# sourceMappingURL=DynamicNumberLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSvg","_interopRequireWildcard","_reactNativeUi","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VB_W","VB_H","PAD_X","BASE_Y","ARC_H","DynamicNumberLine","spec","colors","span","hi","lo","denom","x","v","jsx","View","style","styles","wrapper","children","jsxs","width","height","viewBox","preserveAspectRatio","Line","x1","y1","x2","y2","stroke","COLORS","NEUTRAL_5","strokeWidth","strokeLinecap","ticks","map","value","Fragment","NEUTRAL_6","Text","y","fontSize","fontWeight","fontFamily","FONT_FAMILY","buenosAires","fill","NEUTRAL_8","textAnchor","hiddenTick","jumps","jump","midX","from","to","Path","d","accent","Circle","cx","cy","dark","label","length","exports","StyleSheet","create","maxWidth","aspectRatio","alignSelf"],"sourceRoot":"../../../../../../src","sources":["features/fluency/visual-scaffolding/components/DynamicNumberLine.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FactVisual = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _DiscreteCounterGrid = require("./DiscreteCounterGrid.js");
10
+ var _RelationalBlock = require("./RelationalBlock.js");
11
+ var _DynamicNumberLine = require("./DynamicNumberLine.js");
12
+ var _QuotativeBars = require("./QuotativeBars.js");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ // Text alternative for the decorative-supportive visual.
16
+ const labelFor = spec => {
17
+ switch (spec.kind) {
18
+ case 'grid':
19
+ case 'relational':
20
+ case 'line':
21
+ case 'bars':
22
+ return `${spec.left} ${spec.operation} ${spec.right}`;
23
+ case 'none':
24
+ return '';
25
+ }
26
+ };
27
+ const renderVisual = (spec, colors) => {
28
+ switch (spec.kind) {
29
+ case 'grid':
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DiscreteCounterGrid.DiscreteCounterGrid, {
31
+ spec: spec,
32
+ colors: colors
33
+ });
34
+ case 'relational':
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_RelationalBlock.RelationalBlock, {
36
+ spec: spec,
37
+ colors: colors
38
+ });
39
+ case 'line':
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_DynamicNumberLine.DynamicNumberLine, {
41
+ spec: spec,
42
+ colors: colors
43
+ });
44
+ case 'bars':
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_QuotativeBars.QuotativeBars, {
46
+ spec: spec,
47
+ colors: colors
48
+ });
49
+ case 'none':
50
+ return null;
51
+ }
52
+ };
53
+
54
+ // Renders the scaffold for the current spec. Whether a visual shows at all is
55
+ // decided by the card (none at L4/L5); this component just draws it.
56
+ const FactVisual = ({
57
+ spec,
58
+ colors
59
+ }) => {
60
+ if (spec.kind === 'none') return null;
61
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
62
+ style: styles.container,
63
+ accessible: true,
64
+ accessibilityLabel: labelFor(spec),
65
+ children: renderVisual(spec, colors)
66
+ });
67
+ };
68
+ exports.FactVisual = FactVisual;
69
+ const styles = _reactNative.StyleSheet.create({
70
+ container: {
71
+ alignItems: 'center',
72
+ justifyContent: 'center'
73
+ }
74
+ });
75
+ //# sourceMappingURL=FactVisual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DiscreteCounterGrid","_RelationalBlock","_DynamicNumberLine","_QuotativeBars","_jsxRuntime","e","__esModule","default","labelFor","spec","kind","left","operation","right","renderVisual","colors","jsx","DiscreteCounterGrid","RelationalBlock","DynamicNumberLine","QuotativeBars","FactVisual","View","style","styles","container","accessible","accessibilityLabel","children","exports","StyleSheet","create","alignItems","justifyContent"],"sourceRoot":"../../../../../../src","sources":["features/fluency/visual-scaffolding/components/FactVisual.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAGA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAA+C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQ/C;AACA,MAAMG,QAAQ,GAAIC,IAAgB,IAAa;EAC7C,QAAQA,IAAI,CAACC,IAAI;IACf,KAAK,MAAM;IACX,KAAK,YAAY;IACjB,KAAK,MAAM;IACX,KAAK,MAAM;MACT,OAAO,GAAGD,IAAI,CAACE,IAAI,IAAIF,IAAI,CAACG,SAAS,IAAIH,IAAI,CAACI,KAAK,EAAE;IACvD,KAAK,MAAM;MACT,OAAO,EAAE;EACb;AACF,CAAC;AAED,MAAMC,YAAY,GAAGA,CAACL,IAAgB,EAAEM,MAAoB,KAAK;EAC/D,QAAQN,IAAI,CAACC,IAAI;IACf,KAAK,MAAM;MACT,oBAAO,IAAAN,WAAA,CAAAY,GAAA,EAAChB,oBAAA,CAAAiB,mBAAmB;QAACR,IAAI,EAAEA,IAAK;QAACM,MAAM,EAAEA;MAAO,CAAE,CAAC;IAC5D,KAAK,YAAY;MACf,oBAAO,IAAAX,WAAA,CAAAY,GAAA,EAACf,gBAAA,CAAAiB,eAAe;QAACT,IAAI,EAAEA,IAAK;QAACM,MAAM,EAAEA;MAAO,CAAE,CAAC;IACxD,KAAK,MAAM;MACT,oBAAO,IAAAX,WAAA,CAAAY,GAAA,EAACd,kBAAA,CAAAiB,iBAAiB;QAACV,IAAI,EAAEA,IAAK;QAACM,MAAM,EAAEA;MAAO,CAAE,CAAC;IAC1D,KAAK,MAAM;MACT,oBAAO,IAAAX,WAAA,CAAAY,GAAA,EAACb,cAAA,CAAAiB,aAAa;QAACX,IAAI,EAAEA,IAAK;QAACM,MAAM,EAAEA;MAAO,CAAE,CAAC;IACtD,KAAK,MAAM;MACT,OAAO,IAAI;EACf;AACF,CAAC;;AAED;AACA;AACO,MAAMM,UAAU,GAAGA,CAAC;EAAEZ,IAAI;EAAEM;AAAwB,CAAC,KAAK;EAC/D,IAAIN,IAAI,CAACC,IAAI,KAAK,MAAM,EAAE,OAAO,IAAI;EAErC,oBACE,IAAAN,WAAA,CAAAY,GAAA,EAACjB,YAAA,CAAAuB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,UAAU;IAACC,kBAAkB,EAAEnB,QAAQ,CAACC,IAAI,CAAE;IAAAmB,QAAA,EAC1Ed,YAAY,CAACL,IAAI,EAAEM,MAAM;EAAC,CACvB,CAAC;AAEX,CAAC;AAAAc,OAAA,CAAAR,UAAA,GAAAA,UAAA;AAED,MAAMG,MAAM,GAAGM,uBAAU,CAACC,MAAM,CAAC;EAC/BN,SAAS,EAAE;IACTO,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.QuotativeBars = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeSvg = _interopRequireWildcard(require("react-native-svg"));
10
+ var _reactNativeUi = require("@magmamath/react-native-ui");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ const VB_W = 480;
16
+ const VB_H = 98;
17
+ const PAD_X = 24;
18
+ const BAR_Y = 12;
19
+ const BAR_H = 46;
20
+ const BRACKET_Y = BAR_Y + BAR_H + 8;
21
+ // L2 (division) — quotative model: the dividend bar is cut into equal groups of
22
+ // the divisor; counting the groups gives the quotient (the answer).
23
+ const QuotativeBars = ({
24
+ spec,
25
+ colors
26
+ }) => {
27
+ const segments = Math.max(1, spec.segmentCount);
28
+ const barW = VB_W - 2 * PAD_X;
29
+ const segW = barW / segments;
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
31
+ style: styles.wrapper,
32
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSvg.default, {
33
+ width: "100%",
34
+ height: "100%",
35
+ viewBox: `0 0 ${VB_W} ${VB_H}`,
36
+ preserveAspectRatio: "xMidYMid meet",
37
+ children: [Array.from({
38
+ length: segments
39
+ }, (_, i) => {
40
+ const x = PAD_X + i * segW;
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.default.Fragment, {
42
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Rect, {
43
+ x: x,
44
+ y: BAR_Y,
45
+ width: segW,
46
+ height: BAR_H,
47
+ rx: 6,
48
+ fill: i % 2 === 0 ? colors.bg : colors.mid,
49
+ stroke: colors.accent,
50
+ strokeWidth: 2.5
51
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
52
+ x: x + segW / 2,
53
+ y: BAR_Y + BAR_H / 2 + 7,
54
+ fontSize: 20,
55
+ fontWeight: "700",
56
+ fontFamily: _reactNativeUi.FONT_FAMILY.buenosAires,
57
+ fill: colors.dark,
58
+ textAnchor: "middle",
59
+ children: spec.segment
60
+ })]
61
+ }, i);
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Path, {
63
+ d: `M ${PAD_X} ${BRACKET_Y} L ${PAD_X} ${BRACKET_Y + 6} L ${VB_W - PAD_X} ${BRACKET_Y + 6} L ${VB_W - PAD_X} ${BRACKET_Y}`,
64
+ fill: "none",
65
+ stroke: _reactNativeUi.COLORS.NEUTRAL_6,
66
+ strokeWidth: 2.5,
67
+ strokeLinecap: "round",
68
+ strokeLinejoin: "round"
69
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSvg.Text, {
70
+ x: VB_W / 2,
71
+ y: BRACKET_Y + 20,
72
+ fontSize: 15,
73
+ fontWeight: "700",
74
+ fontFamily: _reactNativeUi.FONT_FAMILY.buenosAires,
75
+ fill: _reactNativeUi.COLORS.NEUTRAL_8,
76
+ textAnchor: "middle",
77
+ children: spec.total
78
+ })]
79
+ })
80
+ });
81
+ };
82
+ exports.QuotativeBars = QuotativeBars;
83
+ const styles = _reactNative.StyleSheet.create({
84
+ wrapper: {
85
+ width: '100%',
86
+ maxWidth: VB_W,
87
+ aspectRatio: VB_W / VB_H,
88
+ alignSelf: 'center'
89
+ }
90
+ });
91
+ //# sourceMappingURL=QuotativeBars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSvg","_interopRequireWildcard","_reactNativeUi","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","VB_W","VB_H","PAD_X","BAR_Y","BAR_H","BRACKET_Y","QuotativeBars","spec","colors","segments","Math","max","segmentCount","barW","segW","jsx","View","style","styles","wrapper","children","jsxs","width","height","viewBox","preserveAspectRatio","Array","from","length","_","x","Fragment","Rect","y","rx","fill","bg","mid","stroke","accent","strokeWidth","Text","fontSize","fontWeight","fontFamily","FONT_FAMILY","buenosAires","dark","textAnchor","segment","Path","d","COLORS","NEUTRAL_6","strokeLinecap","strokeLinejoin","NEUTRAL_8","total","exports","StyleSheet","create","maxWidth","aspectRatio","alignSelf"],"sourceRoot":"../../../../../../src","sources":["features/fluency/visual-scaffolding/components/QuotativeBars.tsx"],"mappings":"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","ignoreList":[]}