@magmamath/students-features 1.3.26-rc.12 → 1.3.26-rc.13
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.
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js +2 -0
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js.map +1 -1
- package/dist/commonjs/features/fluency/fluency.constants.js +1 -2
- package/dist/commonjs/features/fluency/fluency.constants.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/commonjs/features/fluency-teacher/assets/PersonIcon.js +32 -0
- package/dist/commonjs/features/fluency-teacher/assets/PersonIcon.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js +31 -0
- package/dist/commonjs/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js +45 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacher.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.js +43 -0
- package/dist/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js +95 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +73 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js +52 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +118 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +77 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js +48 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +114 -0
- package/dist/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.js +135 -0
- package/dist/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.js +35 -0
- package/dist/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/HardestFact.js +102 -0
- package/dist/commonjs/features/fluency-teacher/components/header/HardestFact.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/header/TopHardestFacts.js +99 -0
- package/dist/commonjs/features/fluency-teacher/components/header/TopHardestFacts.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js +50 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js +48 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.js +53 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js +59 -0
- package/dist/commonjs/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js +110 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js +78 -0
- package/dist/commonjs/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.js +35 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +149 -0
- package/dist/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js +40 -0
- package/dist/commonjs/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js +84 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js +128 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRow.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js +71 -0
- package/dist/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js +16 -0
- package/dist/commonjs/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js +61 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js +75 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.types.js +21 -0
- package/dist/commonjs/features/fluency-teacher/fluencyTeacher.types.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js +60 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js +37 -0
- package/dist/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/index.js +20 -0
- package/dist/commonjs/features/fluency-teacher/index.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.js +15 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +28 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js +40 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.js +49 -0
- package/dist/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.js.map +1 -0
- package/dist/commonjs/features/pmProgress/components/content/PmContent.js.map +1 -1
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js +3 -3
- package/dist/commonjs/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/commonjs/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -1
- package/dist/commonjs/index.js +12 -0
- package/dist/commonjs/index.js.map +1 -1
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js +1 -1
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js.map +1 -1
- package/dist/module/features/fluency/fluency.constants.js +0 -1
- package/dist/module/features/fluency/fluency.constants.js.map +1 -1
- package/dist/module/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/module/features/fluency-teacher/assets/PersonIcon.js +24 -0
- package/dist/module/features/fluency-teacher/assets/PersonIcon.js.map +1 -0
- package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js +23 -0
- package/dist/module/features/fluency-teacher/assets/SortDefaultIcon.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacher.js +39 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacher.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacherFooter.js +37 -0
- package/dist/module/features/fluency-teacher/components/FluencyTeacherFooter.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js +89 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerHeader.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js +67 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js +46 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerMatrixes.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js +112 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js +71 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js +42 -0
- package/dist/module/features/fluency-teacher/components/drawer/DrawerStats.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js +107 -0
- package/dist/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/AverageTimePerStudent.js +129 -0
- package/dist/module/features/fluency-teacher/components/header/AverageTimePerStudent.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/FluencyTeacherHeader.js +29 -0
- package/dist/module/features/fluency-teacher/components/header/FluencyTeacherHeader.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/HardestFact.js +96 -0
- package/dist/module/features/fluency-teacher/components/header/HardestFact.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/header/TopHardestFacts.js +93 -0
- package/dist/module/features/fluency-teacher/components/header/TopHardestFacts.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js +44 -0
- package/dist/module/features/fluency-teacher/components/matrix/DrawerMatrix.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js +42 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixCell.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.js +47 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js +53 -0
- package/dist/module/features/fluency-teacher/components/matrix/MatrixRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js +104 -0
- package/dist/module/features/fluency-teacher/components/table/AllPupilsTableRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js +72 -0
- package/dist/module/features/fluency-teacher/components/table/AverageSortButton.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherFilters.js +29 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherFilters.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js +143 -0
- package/dist/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js +34 -0
- package/dist/module/features/fluency-teacher/components/table/OperatorBadge.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js +78 -0
- package/dist/module/features/fluency-teacher/components/table/TableColumnSortButton.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableRow.js +121 -0
- package/dist/module/features/fluency-teacher/components/table/TableRow.js.map +1 -0
- package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js +65 -0
- package/dist/module/features/fluency-teacher/components/table/TableRowAverageProgress.js.map +1 -0
- package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js +11 -0
- package/dist/module/features/fluency-teacher/context/TeacherFluencyContext.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js +57 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.constants.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js +67 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.helpers.js.map +1 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.types.js +17 -0
- package/dist/module/features/fluency-teacher/fluencyTeacher.types.js.map +1 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js +55 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerGrid.js.map +1 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js +32 -0
- package/dist/module/features/fluency-teacher/hooks/useDrawerMatrix.js.map +1 -0
- package/dist/module/features/fluency-teacher/index.js +5 -0
- package/dist/module/features/fluency-teacher/index.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyApiModel.js +10 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyApiModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js +23 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js +35 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyModel.js.map +1 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyTableModel.js +44 -0
- package/dist/module/features/fluency-teacher/model/TeacherFluencyTableModel.js.map +1 -0
- package/dist/module/features/pmProgress/components/content/PmContent.js.map +1 -1
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js +1 -1
- package/dist/module/features/pmProgress/components/header/PmProgressHeader.js.map +1 -1
- package/dist/module/features/pmProgress/components/locked/PmStatusOverlay.js.map +1 -1
- package/dist/module/index.js +1 -0
- package/dist/module/index.js.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +0 -1
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency-teacher/assets/PersonIcon.d.ts +4 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/PersonIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
- package/dist/typescript/commonjs/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacher.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacher.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/FluencyTeacherFooter.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +12 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/HardestFact.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/HardestFact.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/TopHardestFacts.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/header/TopHardestFacts.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +14 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts +12 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +13 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
- package/dist/typescript/commonjs/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts +5 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts +22 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts +115 -0
- package/dist/typescript/commonjs/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts +15 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +14 -0
- package/dist/typescript/commonjs/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/index.d.ts +3 -0
- package/dist/typescript/commonjs/features/fluency-teacher/index.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +8 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts +13 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts +27 -0
- package/dist/typescript/commonjs/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/pmProgress/components/content/PmContent.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts +1 -1
- package/dist/typescript/commonjs/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts +1 -1
- package/dist/typescript/commonjs/features/pmProgress/context/PmProgressContext.d.ts.map +1 -1
- package/dist/typescript/commonjs/index.d.ts +1 -0
- package/dist/typescript/commonjs/index.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts +0 -1
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency-teacher/assets/PersonIcon.d.ts +4 -0
- package/dist/typescript/module/features/fluency-teacher/assets/PersonIcon.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts +4 -0
- package/dist/typescript/module/features/fluency-teacher/assets/SortDefaultIcon.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacher.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacher.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacherFooter.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/FluencyTeacherFooter.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts +9 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMasteryLegend.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerMatrixes.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts +12 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorBox.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts +9 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/DrawerStats.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/AverageTimePerStudent.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/FluencyTeacherHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/HardestFact.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/HardestFact.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/TopHardestFacts.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/header/TopHardestFacts.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts +14 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/DrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixCell.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixHeaderRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts +12 -0
- package/dist/typescript/module/features/fluency-teacher/components/matrix/MatrixRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AllPupilsTableRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/AverageSortButton.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherFilters.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/OperatorBadge.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts +13 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableColumnSortButton.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts +11 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts +7 -0
- package/dist/typescript/module/features/fluency-teacher/components/table/TableRowAverageProgress.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/context/TeacherFluencyContext.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts +5 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.constants.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts +22 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts +115 -0
- package/dist/typescript/module/features/fluency-teacher/fluencyTeacher.types.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts +15 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerGrid.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts +14 -0
- package/dist/typescript/module/features/fluency-teacher/hooks/useDrawerMatrix.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/index.d.ts +3 -0
- package/dist/typescript/module/features/fluency-teacher/index.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyApiModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts +8 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyFiltersModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts +13 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyModel.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts +27 -0
- package/dist/typescript/module/features/fluency-teacher/model/TeacherFluencyTableModel.d.ts.map +1 -0
- package/dist/typescript/module/features/pmProgress/components/content/PmContent.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/locked/PmStatusOverlay.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts +1 -1
- package/dist/typescript/module/features/pmProgress/components/standard/StandardTag.d.ts.map +1 -1
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts +1 -1
- package/dist/typescript/module/features/pmProgress/context/PmProgressContext.d.ts.map +1 -1
- package/dist/typescript/module/index.d.ts +1 -0
- package/dist/typescript/module/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/fluency/components/session-results/FluencySessionResults.tsx +1 -1
- package/src/features/fluency/fluency.constants.ts +0 -1
- package/src/features/fluency/model/FluencySolvingModel.ts +1 -2
- package/src/features/fluency-teacher/assets/PersonIcon.tsx +16 -0
- package/src/features/fluency-teacher/assets/SortDefaultIcon.tsx +10 -0
- package/src/features/fluency-teacher/components/FluencyTeacher.tsx +41 -0
- package/src/features/fluency-teacher/components/FluencyTeacherFooter.tsx +38 -0
- package/src/features/fluency-teacher/components/drawer/DrawerHeader.tsx +87 -0
- package/src/features/fluency-teacher/components/drawer/DrawerMasteryLegend.tsx +53 -0
- package/src/features/fluency-teacher/components/drawer/DrawerMatrixes.tsx +48 -0
- package/src/features/fluency-teacher/components/drawer/DrawerOperatorBox.tsx +99 -0
- package/src/features/fluency-teacher/components/drawer/DrawerOperatorStatCard.tsx +65 -0
- package/src/features/fluency-teacher/components/drawer/DrawerStats.tsx +47 -0
- package/src/features/fluency-teacher/components/drawer/FluencyTeacherDrawer.tsx +89 -0
- package/src/features/fluency-teacher/components/header/AverageTimePerStudent.tsx +120 -0
- package/src/features/fluency-teacher/components/header/FluencyTeacherHeader.tsx +28 -0
- package/src/features/fluency-teacher/components/header/HardestFact.tsx +98 -0
- package/src/features/fluency-teacher/components/header/TopHardestFacts.tsx +98 -0
- package/src/features/fluency-teacher/components/matrix/DrawerMatrix.tsx +54 -0
- package/src/features/fluency-teacher/components/matrix/MatrixCell.tsx +38 -0
- package/src/features/fluency-teacher/components/matrix/MatrixHeaderRow.tsx +37 -0
- package/src/features/fluency-teacher/components/matrix/MatrixRow.tsx +57 -0
- package/src/features/fluency-teacher/components/table/AllPupilsTableRow.tsx +96 -0
- package/src/features/fluency-teacher/components/table/AverageSortButton.tsx +72 -0
- package/src/features/fluency-teacher/components/table/FluencyTeacherFilters.tsx +23 -0
- package/src/features/fluency-teacher/components/table/FluencyTeacherStudentsTable.tsx +134 -0
- package/src/features/fluency-teacher/components/table/OperatorBadge.tsx +29 -0
- package/src/features/fluency-teacher/components/table/TableColumnSortButton.tsx +87 -0
- package/src/features/fluency-teacher/components/table/TableRow.tsx +114 -0
- package/src/features/fluency-teacher/components/table/TableRowAverageProgress.tsx +65 -0
- package/src/features/fluency-teacher/context/TeacherFluencyContext.ts +16 -0
- package/src/features/fluency-teacher/fluencyTeacher.constants.ts +62 -0
- package/src/features/fluency-teacher/fluencyTeacher.helpers.ts +72 -0
- package/src/features/fluency-teacher/fluencyTeacher.types.ts +135 -0
- package/src/features/fluency-teacher/hooks/useDrawerGrid.ts +58 -0
- package/src/features/fluency-teacher/hooks/useDrawerMatrix.ts +45 -0
- package/src/features/fluency-teacher/index.ts +2 -0
- package/src/features/fluency-teacher/model/TeacherFluencyApiModel.ts +18 -0
- package/src/features/fluency-teacher/model/TeacherFluencyFiltersModel.ts +17 -0
- package/src/features/fluency-teacher/model/TeacherFluencyModel.ts +36 -0
- package/src/features/fluency-teacher/model/TeacherFluencyTableModel.ts +46 -0
- package/src/features/pmProgress/components/content/PmContent.tsx +0 -1
- package/src/features/pmProgress/components/header/PmProgressHeader.tsx +1 -1
- package/src/features/pmProgress/components/locked/PmStatusOverlay.tsx +8 -1
- package/src/features/pmProgress/components/standard/StandardTag.tsx +1 -1
- package/src/features/pmProgress/context/PmProgressContext.tsx +1 -1
- package/src/index.ts +1 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import React, { useEffect } from 'react'
|
|
2
|
+
import { Animated, Modal, Pressable, ScrollView, StyleSheet, View } from 'react-native'
|
|
3
|
+
import { useUnit } from 'effector-react'
|
|
4
|
+
import { COLORS, SHADOWS, SPACING } from '@magmamath/react-native-ui'
|
|
5
|
+
|
|
6
|
+
import { DrawerHeader } from './DrawerHeader'
|
|
7
|
+
import { DrawerStats } from './DrawerStats'
|
|
8
|
+
import { DrawerMatrixes } from './DrawerMatrixes'
|
|
9
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
10
|
+
import { DrawerMasteryLegend } from './DrawerMasteryLegend'
|
|
11
|
+
|
|
12
|
+
const DRAWER_WIDTH = 700
|
|
13
|
+
const BACKDROP_COLOR = 'rgba(0, 0, 0, 0.2)'
|
|
14
|
+
|
|
15
|
+
const backdropOpacity = new Animated.Value(0)
|
|
16
|
+
const drawerTranslateX = new Animated.Value(DRAWER_WIDTH)
|
|
17
|
+
|
|
18
|
+
export const FluencyTeacherDrawer = () => {
|
|
19
|
+
const { model } = useTeacherFluency()
|
|
20
|
+
const student = useUnit(model.table.$studentInfoDrawer)
|
|
21
|
+
const isVisible = student !== null
|
|
22
|
+
|
|
23
|
+
useEffect(() => {
|
|
24
|
+
if (!isVisible) return
|
|
25
|
+
Animated.parallel([
|
|
26
|
+
Animated.timing(backdropOpacity, { toValue: 1, duration: 200, useNativeDriver: true }),
|
|
27
|
+
Animated.timing(drawerTranslateX, { toValue: 0, duration: 250, useNativeDriver: true }),
|
|
28
|
+
]).start()
|
|
29
|
+
}, [isVisible])
|
|
30
|
+
|
|
31
|
+
if (!isVisible) return null
|
|
32
|
+
|
|
33
|
+
const closeDrawer = () => {
|
|
34
|
+
Animated.parallel([
|
|
35
|
+
Animated.timing(backdropOpacity, { toValue: 0, duration: 200, useNativeDriver: true }),
|
|
36
|
+
Animated.timing(drawerTranslateX, {
|
|
37
|
+
toValue: DRAWER_WIDTH,
|
|
38
|
+
duration: 250,
|
|
39
|
+
useNativeDriver: true,
|
|
40
|
+
}),
|
|
41
|
+
]).start(() => model.table.setStudentInfoDrawer(null))
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return (
|
|
45
|
+
<Modal visible={isVisible} transparent animationType="none" onRequestClose={closeDrawer}>
|
|
46
|
+
<View style={styles.root}>
|
|
47
|
+
<Animated.View style={[styles.backdrop, { opacity: backdropOpacity }]}>
|
|
48
|
+
<Pressable style={StyleSheet.absoluteFill} onPress={closeDrawer} />
|
|
49
|
+
</Animated.View>
|
|
50
|
+
|
|
51
|
+
<Animated.View style={[styles.drawer, { transform: [{ translateX: drawerTranslateX }] }]}>
|
|
52
|
+
<DrawerHeader student={student} onClose={closeDrawer} />
|
|
53
|
+
|
|
54
|
+
<View style={styles.content}>
|
|
55
|
+
<DrawerStats scores={student.scores} />
|
|
56
|
+
<ScrollView showsVerticalScrollIndicator={false}>
|
|
57
|
+
<DrawerMatrixes />
|
|
58
|
+
<DrawerMasteryLegend />
|
|
59
|
+
</ScrollView>
|
|
60
|
+
</View>
|
|
61
|
+
</Animated.View>
|
|
62
|
+
</View>
|
|
63
|
+
</Modal>
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const styles = StyleSheet.create({
|
|
68
|
+
root: {
|
|
69
|
+
flex: 1,
|
|
70
|
+
},
|
|
71
|
+
backdrop: {
|
|
72
|
+
...StyleSheet.absoluteFillObject,
|
|
73
|
+
backgroundColor: BACKDROP_COLOR,
|
|
74
|
+
},
|
|
75
|
+
drawer: {
|
|
76
|
+
position: 'absolute',
|
|
77
|
+
top: 0,
|
|
78
|
+
right: 0,
|
|
79
|
+
bottom: 0,
|
|
80
|
+
width: DRAWER_WIDTH,
|
|
81
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
82
|
+
...SHADOWS[3],
|
|
83
|
+
},
|
|
84
|
+
content: {
|
|
85
|
+
flex: 1,
|
|
86
|
+
paddingVertical: SPACING[500],
|
|
87
|
+
paddingHorizontal: SPACING[700],
|
|
88
|
+
},
|
|
89
|
+
})
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
BORDER_RADIUS,
|
|
5
|
+
COLORS,
|
|
6
|
+
FONT_FAMILY,
|
|
7
|
+
HeadingVariants,
|
|
8
|
+
SHADOWS,
|
|
9
|
+
SPACING,
|
|
10
|
+
TimerIcon,
|
|
11
|
+
Typography,
|
|
12
|
+
} from '@magmamath/react-native-ui'
|
|
13
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
14
|
+
import { useUnit } from 'effector-react'
|
|
15
|
+
import { TEACHER_FLUENCY_GOAL_MINUTES } from '../../fluencyTeacher.constants'
|
|
16
|
+
|
|
17
|
+
export const AverageTimePerStudent = () => {
|
|
18
|
+
const { model } = useTeacherFluency()
|
|
19
|
+
const data = useUnit(model.table.$stats)
|
|
20
|
+
|
|
21
|
+
const students = data?.students ?? []
|
|
22
|
+
const totalWeeklyMs = students.reduce((sum, { weeklyTimeMs }) => sum + weeklyTimeMs, 0)
|
|
23
|
+
const currentMinutes = students.length > 0 ? Math.round(totalWeeklyMs / students.length / 60000) : 0
|
|
24
|
+
const fillPercent = Math.min(currentMinutes / TEACHER_FLUENCY_GOAL_MINUTES, 1)
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<View style={styles.container} testID="average-time-per-student">
|
|
28
|
+
<View style={styles.accentBar} />
|
|
29
|
+
|
|
30
|
+
<View style={styles.content}>
|
|
31
|
+
<View style={styles.header}>
|
|
32
|
+
<TimerIcon size={16} color={COLORS.PRIMARY_PURPLE} />
|
|
33
|
+
<Typography variant={HeadingVariants.H9} style={styles.title}>
|
|
34
|
+
Avg Time / Student
|
|
35
|
+
</Typography>
|
|
36
|
+
</View>
|
|
37
|
+
|
|
38
|
+
<View style={styles.divider} />
|
|
39
|
+
|
|
40
|
+
<View style={styles.data}>
|
|
41
|
+
<View style={styles.time}>
|
|
42
|
+
<Text style={styles.bigNumber}>{currentMinutes}</Text>
|
|
43
|
+
<Typography variant={HeadingVariants.H2} style={styles.goalText}>
|
|
44
|
+
/ {TEACHER_FLUENCY_GOAL_MINUTES} min goal
|
|
45
|
+
</Typography>
|
|
46
|
+
</View>
|
|
47
|
+
<View style={styles.progressTrack}>
|
|
48
|
+
<View style={[styles.progressFill, { width: `${fillPercent * 100}%` }]} />
|
|
49
|
+
</View>
|
|
50
|
+
</View>
|
|
51
|
+
</View>
|
|
52
|
+
</View>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const styles = StyleSheet.create({
|
|
57
|
+
container: {
|
|
58
|
+
width: 282,
|
|
59
|
+
height: 170,
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
borderRadius: BORDER_RADIUS[300],
|
|
62
|
+
overflow: 'hidden',
|
|
63
|
+
...SHADOWS[1],
|
|
64
|
+
},
|
|
65
|
+
accentBar: {
|
|
66
|
+
width: 6,
|
|
67
|
+
backgroundColor: COLORS.PRIMARY_PURPLE,
|
|
68
|
+
},
|
|
69
|
+
content: {
|
|
70
|
+
flex: 1,
|
|
71
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
72
|
+
padding: SPACING[200],
|
|
73
|
+
gap: SPACING[100],
|
|
74
|
+
},
|
|
75
|
+
header: {
|
|
76
|
+
flexDirection: 'row',
|
|
77
|
+
alignItems: 'center',
|
|
78
|
+
gap: SPACING[200],
|
|
79
|
+
padding: SPACING[100],
|
|
80
|
+
},
|
|
81
|
+
title: {
|
|
82
|
+
flex: 1,
|
|
83
|
+
color: COLORS.NEUTRAL_6,
|
|
84
|
+
},
|
|
85
|
+
divider: {
|
|
86
|
+
height: 1,
|
|
87
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
88
|
+
},
|
|
89
|
+
data: {
|
|
90
|
+
flex: 1,
|
|
91
|
+
justifyContent: 'flex-end',
|
|
92
|
+
gap: SPACING[200],
|
|
93
|
+
},
|
|
94
|
+
time: {
|
|
95
|
+
flexDirection: 'row',
|
|
96
|
+
alignItems: 'flex-end',
|
|
97
|
+
gap: SPACING[200],
|
|
98
|
+
padding: SPACING[100],
|
|
99
|
+
},
|
|
100
|
+
bigNumber: {
|
|
101
|
+
fontFamily: FONT_FAMILY.buenosAiresBold,
|
|
102
|
+
fontSize: 64,
|
|
103
|
+
lineHeight: 64,
|
|
104
|
+
color: COLORS.PRIMARY_PURPLE,
|
|
105
|
+
},
|
|
106
|
+
goalText: {
|
|
107
|
+
color: COLORS.NEUTRAL_6,
|
|
108
|
+
},
|
|
109
|
+
progressTrack: {
|
|
110
|
+
height: 26,
|
|
111
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
112
|
+
borderRadius: 36,
|
|
113
|
+
overflow: 'hidden',
|
|
114
|
+
},
|
|
115
|
+
progressFill: {
|
|
116
|
+
height: '100%',
|
|
117
|
+
backgroundColor: COLORS.PRIMARY_PURPLE,
|
|
118
|
+
borderRadius: 36,
|
|
119
|
+
},
|
|
120
|
+
})
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import { COLORS, HeadingVariants, SPACING, Typography } from '@magmamath/react-native-ui'
|
|
4
|
+
import { AverageTimePerStudent } from './AverageTimePerStudent'
|
|
5
|
+
import { TopHardestFacts } from './TopHardestFacts'
|
|
6
|
+
|
|
7
|
+
export const FluencyTeacherHeader = () => (
|
|
8
|
+
<View style={styles.container} testID="teacher-fluency-header">
|
|
9
|
+
<Typography variant={HeadingVariants.H2} style={styles.title}>
|
|
10
|
+
Fact Fluency
|
|
11
|
+
</Typography>
|
|
12
|
+
|
|
13
|
+
<TopHardestFacts />
|
|
14
|
+
<AverageTimePerStudent />
|
|
15
|
+
</View>
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
const styles = StyleSheet.create({
|
|
19
|
+
container: {
|
|
20
|
+
flexDirection: 'row',
|
|
21
|
+
alignItems: 'flex-start',
|
|
22
|
+
gap: SPACING[400],
|
|
23
|
+
},
|
|
24
|
+
title: {
|
|
25
|
+
flex: 1,
|
|
26
|
+
color: COLORS.NEUTRAL_9,
|
|
27
|
+
},
|
|
28
|
+
})
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import {
|
|
4
|
+
BORDER_RADIUS,
|
|
5
|
+
COLORS,
|
|
6
|
+
HeadingVariants,
|
|
7
|
+
SPACING,
|
|
8
|
+
Typography,
|
|
9
|
+
} from '@magmamath/react-native-ui'
|
|
10
|
+
import { PersonIcon } from '../../assets/PersonIcon'
|
|
11
|
+
import { FluencyMathOperatorSymbol, FluencyOperator } from '../../fluencyTeacher.types'
|
|
12
|
+
|
|
13
|
+
type Operator = { symbol: FluencyMathOperatorSymbol; color: string }
|
|
14
|
+
|
|
15
|
+
const OPERATOR_CONFIG: Record<FluencyOperator, Operator> = {
|
|
16
|
+
[FluencyOperator.ADDITION]: {
|
|
17
|
+
symbol: FluencyMathOperatorSymbol.ADDITION,
|
|
18
|
+
color: COLORS.PRIMARY_GREEN,
|
|
19
|
+
},
|
|
20
|
+
[FluencyOperator.SUBTRACTION]: {
|
|
21
|
+
symbol: FluencyMathOperatorSymbol.SUBTRACTION,
|
|
22
|
+
color: COLORS.PRIMARY_ORANGE,
|
|
23
|
+
},
|
|
24
|
+
[FluencyOperator.MULTIPLICATION]: {
|
|
25
|
+
symbol: FluencyMathOperatorSymbol.MULTIPLICATION,
|
|
26
|
+
color: COLORS.PRIMARY_BLUE,
|
|
27
|
+
},
|
|
28
|
+
[FluencyOperator.DIVISION]: {
|
|
29
|
+
symbol: FluencyMathOperatorSymbol.DIVISION,
|
|
30
|
+
color: COLORS.PRIMARY_PURPLE,
|
|
31
|
+
},
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
type HardestFactProps = {
|
|
35
|
+
symbol: FluencyOperator
|
|
36
|
+
leftOperand: number
|
|
37
|
+
rightOperand: number
|
|
38
|
+
studentsCount: number
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export const HardestFact = ({
|
|
42
|
+
symbol,
|
|
43
|
+
leftOperand,
|
|
44
|
+
rightOperand,
|
|
45
|
+
studentsCount,
|
|
46
|
+
}: HardestFactProps) => {
|
|
47
|
+
const { symbol: mathOperatorSymbol, color } = OPERATOR_CONFIG[symbol]
|
|
48
|
+
return (
|
|
49
|
+
<View style={styles.container}>
|
|
50
|
+
<View style={styles.equation}>
|
|
51
|
+
<Typography variant={HeadingVariants.H3} style={styles.operand}>
|
|
52
|
+
{leftOperand}
|
|
53
|
+
</Typography>
|
|
54
|
+
<Typography variant={HeadingVariants.H3} style={[styles.operator, { color }]}>
|
|
55
|
+
{mathOperatorSymbol}
|
|
56
|
+
</Typography>
|
|
57
|
+
<Typography variant={HeadingVariants.H3} style={styles.operand}>
|
|
58
|
+
{rightOperand}
|
|
59
|
+
</Typography>
|
|
60
|
+
</View>
|
|
61
|
+
|
|
62
|
+
<View style={styles.studentCount}>
|
|
63
|
+
<Typography variant={HeadingVariants.H3} style={styles.count}>
|
|
64
|
+
{studentsCount}
|
|
65
|
+
</Typography>
|
|
66
|
+
<PersonIcon size={16} color={COLORS.PRIMARY_RED} />
|
|
67
|
+
</View>
|
|
68
|
+
</View>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const styles = StyleSheet.create({
|
|
73
|
+
container: {
|
|
74
|
+
flexDirection: 'row',
|
|
75
|
+
alignItems: 'center',
|
|
76
|
+
justifyContent: 'space-between',
|
|
77
|
+
padding: SPACING[100],
|
|
78
|
+
borderRadius: BORDER_RADIUS[200],
|
|
79
|
+
},
|
|
80
|
+
equation: {
|
|
81
|
+
flexDirection: 'row',
|
|
82
|
+
alignItems: 'center',
|
|
83
|
+
flex: 1,
|
|
84
|
+
gap: SPACING[100],
|
|
85
|
+
},
|
|
86
|
+
operand: {
|
|
87
|
+
color: COLORS.NEUTRAL_9,
|
|
88
|
+
},
|
|
89
|
+
operator: {},
|
|
90
|
+
studentCount: {
|
|
91
|
+
flexDirection: 'row',
|
|
92
|
+
alignItems: 'center',
|
|
93
|
+
gap: SPACING[100],
|
|
94
|
+
},
|
|
95
|
+
count: {
|
|
96
|
+
color: COLORS.PRIMARY_RED,
|
|
97
|
+
},
|
|
98
|
+
})
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import { useUnit } from 'effector-react'
|
|
4
|
+
import {
|
|
5
|
+
BORDER_RADIUS,
|
|
6
|
+
COLORS,
|
|
7
|
+
HeadingVariants,
|
|
8
|
+
InfoIcon,
|
|
9
|
+
SHADOWS,
|
|
10
|
+
SPACING,
|
|
11
|
+
Typography,
|
|
12
|
+
} from '@magmamath/react-native-ui'
|
|
13
|
+
import { useTeacherFluency } from '../../context/TeacherFluencyContext'
|
|
14
|
+
import { HardestFact } from './HardestFact'
|
|
15
|
+
|
|
16
|
+
export const TopHardestFacts = () => {
|
|
17
|
+
const { model } = useTeacherFluency()
|
|
18
|
+
const stats = useUnit(model.table.$stats)
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<View style={styles.container} testID="top-hardest-facts">
|
|
22
|
+
<View style={styles.accentBar} />
|
|
23
|
+
|
|
24
|
+
<View style={styles.content}>
|
|
25
|
+
<View style={styles.header}>
|
|
26
|
+
<InfoIcon size={16} color={COLORS.PRIMARY_RED} />
|
|
27
|
+
<Typography variant={HeadingVariants.H9} style={styles.title}>
|
|
28
|
+
Top 3 Hardest Facts
|
|
29
|
+
</Typography>
|
|
30
|
+
</View>
|
|
31
|
+
|
|
32
|
+
<View style={styles.divider} />
|
|
33
|
+
|
|
34
|
+
{stats?.hardestFacts?.length ? (
|
|
35
|
+
stats.hardestFacts.map((fact) => (
|
|
36
|
+
<HardestFact
|
|
37
|
+
key={fact.factId}
|
|
38
|
+
symbol={fact.operator}
|
|
39
|
+
leftOperand={fact.numbers[0]}
|
|
40
|
+
rightOperand={fact.numbers[1]}
|
|
41
|
+
studentsCount={fact.strugglingStudentIds.length}
|
|
42
|
+
/>
|
|
43
|
+
))
|
|
44
|
+
) : (
|
|
45
|
+
<View style={styles.empty}>
|
|
46
|
+
<Typography variant={HeadingVariants.H9} style={styles.emptyText}>
|
|
47
|
+
No hardest facts yet
|
|
48
|
+
</Typography>
|
|
49
|
+
</View>
|
|
50
|
+
)}
|
|
51
|
+
</View>
|
|
52
|
+
</View>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const styles = StyleSheet.create({
|
|
57
|
+
container: {
|
|
58
|
+
width: 282,
|
|
59
|
+
height: 170,
|
|
60
|
+
flexDirection: 'row',
|
|
61
|
+
borderRadius: BORDER_RADIUS[300],
|
|
62
|
+
overflow: 'hidden',
|
|
63
|
+
...SHADOWS[1],
|
|
64
|
+
},
|
|
65
|
+
accentBar: {
|
|
66
|
+
width: 6,
|
|
67
|
+
backgroundColor: COLORS.PRIMARY_RED,
|
|
68
|
+
},
|
|
69
|
+
content: {
|
|
70
|
+
flex: 1,
|
|
71
|
+
backgroundColor: COLORS.NEUTRAL_1,
|
|
72
|
+
padding: SPACING[200],
|
|
73
|
+
gap: SPACING[100],
|
|
74
|
+
},
|
|
75
|
+
header: {
|
|
76
|
+
flexDirection: 'row',
|
|
77
|
+
alignItems: 'center',
|
|
78
|
+
gap: SPACING[200],
|
|
79
|
+
padding: SPACING[100],
|
|
80
|
+
},
|
|
81
|
+
title: {
|
|
82
|
+
flex: 1,
|
|
83
|
+
color: COLORS.NEUTRAL_6,
|
|
84
|
+
},
|
|
85
|
+
divider: {
|
|
86
|
+
height: 1,
|
|
87
|
+
backgroundColor: COLORS.NEUTRAL_3,
|
|
88
|
+
},
|
|
89
|
+
empty: {
|
|
90
|
+
flex: 1,
|
|
91
|
+
alignItems: 'center',
|
|
92
|
+
justifyContent: 'center',
|
|
93
|
+
},
|
|
94
|
+
emptyText: {
|
|
95
|
+
color: COLORS.NEUTRAL_6,
|
|
96
|
+
textAlign: 'center',
|
|
97
|
+
},
|
|
98
|
+
})
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, View } from 'react-native'
|
|
3
|
+
import type { LayoutChangeEvent } from 'react-native'
|
|
4
|
+
import { MatrixHeaderRow } from './MatrixHeaderRow'
|
|
5
|
+
import { MatrixRow } from './MatrixRow'
|
|
6
|
+
import type { DrawerGrid } from '../../hooks/useDrawerGrid'
|
|
7
|
+
|
|
8
|
+
type DrawerMatrixProps = {
|
|
9
|
+
grid: DrawerGrid | null
|
|
10
|
+
cellSize: number
|
|
11
|
+
fontSize: number
|
|
12
|
+
borderRadius: number
|
|
13
|
+
cellColorMap: Record<number, string>
|
|
14
|
+
onLayout: (e: LayoutChangeEvent) => void
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const DrawerMatrix = ({
|
|
18
|
+
grid,
|
|
19
|
+
cellSize,
|
|
20
|
+
fontSize,
|
|
21
|
+
borderRadius,
|
|
22
|
+
cellColorMap,
|
|
23
|
+
onLayout,
|
|
24
|
+
}: DrawerMatrixProps) => (
|
|
25
|
+
<View style={styles.container} onLayout={onLayout}>
|
|
26
|
+
{grid && cellSize > 0 && (
|
|
27
|
+
<View style={styles.grid}>
|
|
28
|
+
<MatrixHeaderRow colLabels={grid.colLabels} cellSize={cellSize} fontSize={fontSize} />
|
|
29
|
+
{grid.rows.map((row) => (
|
|
30
|
+
<MatrixRow
|
|
31
|
+
key={row.label}
|
|
32
|
+
label={row.label}
|
|
33
|
+
cells={row.cells}
|
|
34
|
+
cellSize={cellSize}
|
|
35
|
+
borderRadius={borderRadius}
|
|
36
|
+
colorMap={cellColorMap}
|
|
37
|
+
fontSize={fontSize}
|
|
38
|
+
/>
|
|
39
|
+
))}
|
|
40
|
+
</View>
|
|
41
|
+
)}
|
|
42
|
+
</View>
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
const styles = StyleSheet.create({
|
|
46
|
+
container: {
|
|
47
|
+
flex: 1,
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
},
|
|
51
|
+
grid: {
|
|
52
|
+
gap: 2,
|
|
53
|
+
},
|
|
54
|
+
})
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import { COLORS, FONT_FAMILY } from '@magmamath/react-native-ui'
|
|
4
|
+
import { getCellColor } from '../../fluencyTeacher.helpers'
|
|
5
|
+
|
|
6
|
+
export type MatrixCellProps = {
|
|
7
|
+
box: number | null
|
|
8
|
+
isEmpty: boolean
|
|
9
|
+
cellSize: number
|
|
10
|
+
borderRadius: number
|
|
11
|
+
colorMap: Record<number, string>
|
|
12
|
+
fontSize: number
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const MatrixCell = ({ box, isEmpty, cellSize, borderRadius, colorMap, fontSize }: MatrixCellProps) => (
|
|
16
|
+
<View
|
|
17
|
+
style={[
|
|
18
|
+
styles.cell,
|
|
19
|
+
{ width: cellSize, height: cellSize, borderRadius },
|
|
20
|
+
{ backgroundColor: isEmpty ? 'transparent' : getCellColor(box, colorMap) },
|
|
21
|
+
]}
|
|
22
|
+
>
|
|
23
|
+
{isEmpty && <Text style={[styles.label, { fontSize }]}>-</Text>}
|
|
24
|
+
</View>
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
const styles = StyleSheet.create({
|
|
28
|
+
cell: {
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
justifyContent: 'center',
|
|
31
|
+
},
|
|
32
|
+
label: {
|
|
33
|
+
color: COLORS.NEUTRAL_7,
|
|
34
|
+
fontFamily: FONT_FAMILY.buenosAires,
|
|
35
|
+
fontWeight: '600',
|
|
36
|
+
textAlign: 'center',
|
|
37
|
+
},
|
|
38
|
+
})
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import { COLORS, FONT_FAMILY } from '@magmamath/react-native-ui'
|
|
4
|
+
|
|
5
|
+
export type MatrixHeaderRowProps = {
|
|
6
|
+
colLabels: number[]
|
|
7
|
+
cellSize: number
|
|
8
|
+
fontSize: number
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const MatrixHeaderRow = ({ colLabels, cellSize, fontSize }: MatrixHeaderRowProps) => (
|
|
12
|
+
<View style={styles.row}>
|
|
13
|
+
<View style={{ width: cellSize, height: cellSize }} />
|
|
14
|
+
{colLabels.map((col) => (
|
|
15
|
+
<View key={col} style={[styles.labelCell, { width: cellSize, height: cellSize }]}>
|
|
16
|
+
<Text style={[styles.label, { fontSize }]}>{col}</Text>
|
|
17
|
+
</View>
|
|
18
|
+
))}
|
|
19
|
+
</View>
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const styles = StyleSheet.create({
|
|
23
|
+
row: {
|
|
24
|
+
flexDirection: 'row',
|
|
25
|
+
gap: 2,
|
|
26
|
+
},
|
|
27
|
+
labelCell: {
|
|
28
|
+
alignItems: 'center',
|
|
29
|
+
justifyContent: 'center',
|
|
30
|
+
},
|
|
31
|
+
label: {
|
|
32
|
+
color: COLORS.NEUTRAL_7,
|
|
33
|
+
fontFamily: FONT_FAMILY.buenosAires,
|
|
34
|
+
fontWeight: '600',
|
|
35
|
+
textAlign: 'center',
|
|
36
|
+
},
|
|
37
|
+
})
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { StyleSheet, Text, View } from 'react-native'
|
|
3
|
+
import { COLORS, FONT_FAMILY } from '@magmamath/react-native-ui'
|
|
4
|
+
import { MatrixCell } from './MatrixCell'
|
|
5
|
+
import type { DrawerGridCell } from '../../hooks/useDrawerGrid'
|
|
6
|
+
|
|
7
|
+
export type MatrixRowProps = {
|
|
8
|
+
label: number
|
|
9
|
+
cells: DrawerGridCell[]
|
|
10
|
+
cellSize: number
|
|
11
|
+
borderRadius: number
|
|
12
|
+
colorMap: Record<number, string>
|
|
13
|
+
fontSize: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const MatrixRow = ({
|
|
17
|
+
label,
|
|
18
|
+
cells,
|
|
19
|
+
cellSize,
|
|
20
|
+
borderRadius,
|
|
21
|
+
colorMap,
|
|
22
|
+
fontSize,
|
|
23
|
+
}: MatrixRowProps) => (
|
|
24
|
+
<View style={styles.row}>
|
|
25
|
+
<View style={[styles.labelCell, { width: cellSize, height: cellSize }]}>
|
|
26
|
+
<Text style={[styles.label, { fontSize }]}>{label}</Text>
|
|
27
|
+
</View>
|
|
28
|
+
{cells.map((cell, i) => (
|
|
29
|
+
<MatrixCell
|
|
30
|
+
key={i}
|
|
31
|
+
box={cell.box}
|
|
32
|
+
isEmpty={cell.isEmpty}
|
|
33
|
+
cellSize={cellSize}
|
|
34
|
+
borderRadius={borderRadius}
|
|
35
|
+
colorMap={colorMap}
|
|
36
|
+
fontSize={fontSize}
|
|
37
|
+
/>
|
|
38
|
+
))}
|
|
39
|
+
</View>
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
const styles = StyleSheet.create({
|
|
43
|
+
row: {
|
|
44
|
+
flexDirection: 'row',
|
|
45
|
+
gap: 2,
|
|
46
|
+
},
|
|
47
|
+
labelCell: {
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
},
|
|
51
|
+
label: {
|
|
52
|
+
color: COLORS.NEUTRAL_7,
|
|
53
|
+
fontFamily: FONT_FAMILY.buenosAires,
|
|
54
|
+
fontWeight: '600',
|
|
55
|
+
textAlign: 'center',
|
|
56
|
+
},
|
|
57
|
+
})
|