@magmamath/students-features 1.3.26-rc.3 → 1.3.26-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/features/fluency/components/Fluency.js +15 -32
- package/dist/commonjs/features/fluency/components/Fluency.js.map +1 -1
- package/dist/commonjs/features/fluency/components/FluencySolving.js +29 -9
- package/dist/commonjs/features/fluency/components/FluencySolving.js.map +1 -1
- package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js +17 -18
- package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -1
- package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js +26 -24
- package/dist/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/{EquationContent.js → components/EquationContent.js} +5 -5
- package/dist/commonjs/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/{FluencyEquationCard.js → components/FluencyEquationCard.js} +16 -8
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js +62 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingCard.js → components/FluencySolvingCard.js} +40 -22
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingHeader.js → components/FluencySolvingHeader.js} +6 -8
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/{FluencySolvingProgress.js → components/FluencySolvingProgress.js} +32 -4
- package/dist/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js +29 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js +58 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +1 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js +2 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.js.map +1 -0
- package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js +2 -2
- package/dist/commonjs/features/fluency/components/matrix/FluencyMatrix.js.map +1 -1
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js +41 -12
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js +16 -26
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixFill.js.map +1 -1
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js +4 -8
- package/dist/commonjs/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -1
- package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js +38 -0
- package/dist/commonjs/features/fluency/components/mobile-menu/MobileMenu.js.map +1 -0
- package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js +6 -3
- package/dist/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js +178 -0
- package/dist/commonjs/features/fluency/components/session-results/FluencySessionResults.js.map +1 -0
- package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js +99 -0
- package/dist/commonjs/features/fluency/components/session-results/SessionStatCard.js.map +1 -0
- package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js +113 -0
- package/dist/commonjs/features/fluency/components/session-results/SkillProgressionRow.js.map +1 -0
- package/dist/commonjs/features/fluency/fluency.constants.js +14 -6
- package/dist/commonjs/features/fluency/fluency.constants.js.map +1 -1
- package/dist/commonjs/features/fluency/fluency.helpers.js +53 -25
- package/dist/commonjs/features/fluency/fluency.helpers.js.map +1 -1
- package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js +16 -7
- package/dist/commonjs/features/fluency/hooks/useFluencyModePreset.js.map +1 -1
- package/dist/commonjs/features/fluency/{components/fluency-solving/FluencyNumpad.js → hooks/useFluencyNumpad.js} +58 -82
- package/dist/commonjs/features/fluency/hooks/useFluencyNumpad.js.map +1 -0
- package/dist/commonjs/features/fluency/hooks/useSuccessSound.js +0 -2
- package/dist/commonjs/features/fluency/hooks/useSuccessSound.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencyApiModel.js +6 -1
- package/dist/commonjs/features/fluency/model/FluencyApiModel.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js +8 -1
- package/dist/commonjs/features/fluency/model/FluencyDaysStreakModel.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js +16 -1
- package/dist/commonjs/features/fluency/model/FluencyMatrixModel.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencyModel.js +12 -28
- package/dist/commonjs/features/fluency/model/FluencyModel.js.map +1 -1
- package/dist/commonjs/features/fluency/model/FluencySolvingModel.js +57 -5
- package/dist/commonjs/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/commonjs/lib/constants.js +1 -0
- package/dist/commonjs/lib/constants.js.map +1 -1
- package/dist/module/features/fluency/components/Fluency.js +17 -34
- package/dist/module/features/fluency/components/Fluency.js.map +1 -1
- package/dist/module/features/fluency/components/FluencySolving.js +29 -9
- package/dist/module/features/fluency/components/FluencySolving.js.map +1 -1
- package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js +17 -18
- package/dist/module/features/fluency/components/day-streak-counter/DayStreak.js.map +1 -1
- package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js +26 -24
- package/dist/module/features/fluency/components/day-streak-counter/DayStreakCounter.js.map +1 -1
- package/dist/module/features/fluency/components/fluency-solving/{EquationContent.js → components/EquationContent.js} +5 -5
- package/dist/module/features/fluency/components/fluency-solving/components/EquationContent.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/{FluencyEquationCard.js → components/FluencyEquationCard.js} +16 -8
- package/dist/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js +56 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencyNumpad.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js +84 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/{FluencySolvingHeader.js → components/FluencySolvingHeader.js} +6 -8
- package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js +69 -0
- package/dist/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js +25 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.constants.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js +52 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map +1 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js +2 -0
- package/dist/module/features/fluency/components/fluency-solving/fluencySolving.types.js.map +1 -0
- package/dist/module/features/fluency/components/matrix/FluencyMatrix.js +2 -2
- package/dist/module/features/fluency/components/matrix/FluencyMatrix.js.map +1 -1
- package/dist/module/features/fluency/components/matrix/components/MatrixCell.js +44 -15
- package/dist/module/features/fluency/components/matrix/components/MatrixCell.js.map +1 -1
- package/dist/module/features/fluency/components/matrix/components/MatrixFill.js +16 -26
- package/dist/module/features/fluency/components/matrix/components/MatrixFill.js.map +1 -1
- package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js +4 -8
- package/dist/module/features/fluency/components/matrix/components/MatrixLegend.js.map +1 -1
- package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js +32 -0
- package/dist/module/features/fluency/components/mobile-menu/MobileMenu.js.map +1 -0
- package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js +6 -3
- package/dist/module/features/fluency/components/select-math-operator/SelectMathOperator.js.map +1 -1
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js +172 -0
- package/dist/module/features/fluency/components/session-results/FluencySessionResults.js.map +1 -0
- package/dist/module/features/fluency/components/session-results/SessionStatCard.js +93 -0
- package/dist/module/features/fluency/components/session-results/SessionStatCard.js.map +1 -0
- package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js +107 -0
- package/dist/module/features/fluency/components/session-results/SkillProgressionRow.js.map +1 -0
- package/dist/module/features/fluency/fluency.constants.js +13 -5
- package/dist/module/features/fluency/fluency.constants.js.map +1 -1
- package/dist/module/features/fluency/fluency.helpers.js +51 -21
- package/dist/module/features/fluency/fluency.helpers.js.map +1 -1
- package/dist/module/features/fluency/hooks/useFluencyModePreset.js +16 -7
- package/dist/module/features/fluency/hooks/useFluencyModePreset.js.map +1 -1
- package/dist/module/features/fluency/{components/fluency-solving/FluencyNumpad.js → hooks/useFluencyNumpad.js} +58 -82
- package/dist/module/features/fluency/hooks/useFluencyNumpad.js.map +1 -0
- package/dist/module/features/fluency/hooks/useSuccessSound.js +0 -1
- package/dist/module/features/fluency/hooks/useSuccessSound.js.map +1 -1
- package/dist/module/features/fluency/model/FluencyApiModel.js +6 -1
- package/dist/module/features/fluency/model/FluencyApiModel.js.map +1 -1
- package/dist/module/features/fluency/model/FluencyDaysStreakModel.js +8 -1
- package/dist/module/features/fluency/model/FluencyDaysStreakModel.js.map +1 -1
- package/dist/module/features/fluency/model/FluencyMatrixModel.js +16 -1
- package/dist/module/features/fluency/model/FluencyMatrixModel.js.map +1 -1
- package/dist/module/features/fluency/model/FluencyModel.js +13 -29
- package/dist/module/features/fluency/model/FluencyModel.js.map +1 -1
- package/dist/module/features/fluency/model/FluencySolvingModel.js +58 -6
- package/dist/module/features/fluency/model/FluencySolvingModel.js.map +1 -1
- package/dist/module/lib/constants.js +1 -0
- package/dist/module/lib/constants.js.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts +2 -1
- package/dist/typescript/commonjs/features/fluency/components/Fluency.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts +2 -1
- package/dist/typescript/commonjs/features/fluency/components/FluencySolving.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts +5 -3
- package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -0
- package/dist/typescript/{module/features/fluency/components/fluency-solving → commonjs/features/fluency/components/fluency-solving/components}/FluencyEquationCard.d.ts +1 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +10 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +5 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +15 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +20 -0
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts +5 -7
- package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts +1 -1
- package/dist/typescript/commonjs/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts +7 -0
- package/dist/typescript/commonjs/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts +11 -0
- package/dist/typescript/commonjs/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency/components/session-results/SessionStatCard.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts +15 -0
- package/dist/typescript/commonjs/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts +12 -5
- package/dist/typescript/commonjs/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts +3 -5
- package/dist/typescript/commonjs/features/fluency/fluency.helpers.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts +58 -8
- package/dist/typescript/commonjs/features/fluency/fluency.types.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts +22 -3
- package/dist/typescript/commonjs/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts +53 -0
- package/dist/typescript/commonjs/features/fluency/hooks/useFluencyNumpad.d.ts.map +1 -0
- package/dist/typescript/commonjs/features/fluency/hooks/useSuccessSound.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts +6 -3
- package/dist/typescript/commonjs/features/fluency/model/FluencyApiModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts +5 -0
- package/dist/typescript/commonjs/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts +9 -0
- package/dist/typescript/commonjs/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts +3 -15
- package/dist/typescript/commonjs/features/fluency/model/FluencyModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts +20 -7
- package/dist/typescript/commonjs/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/constants.d.ts +2 -1
- package/dist/typescript/commonjs/lib/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/Fluency.d.ts +2 -1
- package/dist/typescript/module/features/fluency/components/Fluency.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts +2 -1
- package/dist/typescript/module/features/fluency/components/FluencySolving.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts +5 -3
- package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreak.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/day-streak-counter/DayStreakCounter.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/EquationContent.d.ts.map +1 -0
- package/dist/typescript/{commonjs/features/fluency/components/fluency-solving → module/features/fluency/components/fluency-solving/components}/FluencyEquationCard.d.ts +1 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyEquationCard.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencyNumpad.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingCard.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingHeader.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts +10 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/components/FluencySolvingProgress.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts +5 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.constants.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts +15 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.helpers.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts +20 -0
- package/dist/typescript/module/features/fluency/components/fluency-solving/fluencySolving.types.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/matrix/FluencyMatrix.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts +5 -7
- package/dist/typescript/module/features/fluency/components/matrix/components/MatrixCell.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts +1 -1
- package/dist/typescript/module/features/fluency/components/matrix/components/MatrixFill.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts +7 -0
- package/dist/typescript/module/features/fluency/components/mobile-menu/MobileMenu.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/select-math-operator/SelectMathOperator.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts +11 -0
- package/dist/typescript/module/features/fluency/components/session-results/FluencySessionResults.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts +9 -0
- package/dist/typescript/module/features/fluency/components/session-results/SessionStatCard.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts +15 -0
- package/dist/typescript/module/features/fluency/components/session-results/SkillProgressionRow.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts +12 -5
- package/dist/typescript/module/features/fluency/fluency.constants.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.helpers.d.ts +3 -5
- package/dist/typescript/module/features/fluency/fluency.helpers.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/fluency.types.d.ts +58 -8
- package/dist/typescript/module/features/fluency/fluency.types.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts +22 -3
- package/dist/typescript/module/features/fluency/hooks/useFluencyModePreset.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts +53 -0
- package/dist/typescript/module/features/fluency/hooks/useFluencyNumpad.d.ts.map +1 -0
- package/dist/typescript/module/features/fluency/hooks/useSuccessSound.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts +6 -3
- package/dist/typescript/module/features/fluency/model/FluencyApiModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts +5 -0
- package/dist/typescript/module/features/fluency/model/FluencyDaysStreakModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts +9 -0
- package/dist/typescript/module/features/fluency/model/FluencyMatrixModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts +3 -15
- package/dist/typescript/module/features/fluency/model/FluencyModel.d.ts.map +1 -1
- package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts +20 -7
- package/dist/typescript/module/features/fluency/model/FluencySolvingModel.d.ts.map +1 -1
- package/dist/typescript/module/lib/constants.d.ts +2 -1
- package/dist/typescript/module/lib/constants.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/fluency/components/Fluency.tsx +17 -41
- package/src/features/fluency/components/FluencySolving.tsx +30 -5
- package/src/features/fluency/components/day-streak-counter/DayStreak.tsx +24 -20
- package/src/features/fluency/components/day-streak-counter/DayStreakCounter.tsx +41 -28
- package/src/features/fluency/components/fluency-solving/{EquationContent.tsx → components/EquationContent.tsx} +5 -5
- package/src/features/fluency/components/fluency-solving/{FluencyEquationCard.tsx → components/FluencyEquationCard.tsx} +12 -6
- package/src/features/fluency/components/fluency-solving/components/FluencyNumpad.tsx +54 -0
- package/src/features/fluency/components/fluency-solving/components/FluencySolvingCard.tsx +84 -0
- package/src/features/fluency/components/fluency-solving/{FluencySolvingHeader.tsx → components/FluencySolvingHeader.tsx} +6 -8
- package/src/features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx +68 -0
- package/src/features/fluency/components/fluency-solving/fluencySolving.constants.ts +25 -0
- package/src/features/fluency/components/fluency-solving/fluencySolving.helpers.ts +78 -0
- package/src/features/fluency/components/fluency-solving/fluencySolving.types.ts +21 -0
- package/src/features/fluency/components/matrix/FluencyMatrix.tsx +3 -2
- package/src/features/fluency/components/matrix/components/MatrixCell.tsx +46 -23
- package/src/features/fluency/components/matrix/components/MatrixFill.tsx +14 -24
- package/src/features/fluency/components/matrix/components/MatrixLegend.tsx +4 -4
- package/src/features/fluency/components/mobile-menu/MobileMenu.tsx +29 -0
- package/src/features/fluency/components/select-math-operator/SelectMathOperator.tsx +7 -3
- package/src/features/fluency/components/session-results/FluencySessionResults.tsx +204 -0
- package/src/features/fluency/components/session-results/SessionStatCard.tsx +100 -0
- package/src/features/fluency/components/session-results/SkillProgressionRow.tsx +100 -0
- package/src/features/fluency/fluency.constants.ts +13 -5
- package/src/features/fluency/fluency.helpers.ts +46 -27
- package/src/features/fluency/fluency.types.ts +70 -8
- package/src/features/fluency/hooks/useFluencyModePreset.ts +30 -20
- package/src/features/fluency/{components/fluency-solving/FluencyNumpad.tsx → hooks/useFluencyNumpad.tsx} +68 -94
- package/src/features/fluency/hooks/useSuccessSound.ts +0 -1
- package/src/features/fluency/model/FluencyApiModel.ts +18 -2
- package/src/features/fluency/model/FluencyDaysStreakModel.ts +11 -1
- package/src/features/fluency/model/FluencyMatrixModel.ts +20 -1
- package/src/features/fluency/model/FluencyModel.ts +15 -30
- package/src/features/fluency/model/FluencySolvingModel.ts +70 -8
- package/src/lib/constants.ts +3 -2
- package/src/types/types.d.ts +5 -0
- package/dist/commonjs/features/fluency/components/fluency-solving/EquationContent.js.map +0 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +0 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.js.map +0 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +0 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +0 -1
- package/dist/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +0 -1
- package/dist/commonjs/features/fluency/model/FluencyInputModel.js +0 -20
- package/dist/commonjs/features/fluency/model/FluencyInputModel.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/EquationContent.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/FluencyEquationCard.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/FluencyNumpad.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js +0 -66
- package/dist/module/features/fluency/components/fluency-solving/FluencySolvingCard.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/FluencySolvingHeader.js.map +0 -1
- package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js +0 -41
- package/dist/module/features/fluency/components/fluency-solving/FluencySolvingProgress.js.map +0 -1
- package/dist/module/features/fluency/model/FluencyInputModel.js +0 -15
- package/dist/module/features/fluency/model/FluencyInputModel.js.map +0 -1
- package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts +0 -2
- package/dist/typescript/commonjs/features/fluency/__tests__/FluencyModel.test.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/EquationContent.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +0 -8
- package/dist/typescript/commonjs/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +0 -1
- package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts +0 -11
- package/dist/typescript/commonjs/features/fluency/model/FluencyInputModel.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts +0 -2
- package/dist/typescript/module/features/fluency/__tests__/FluencyModel.test.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/EquationContent.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyEquationCard.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencyNumpad.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingCard.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingHeader.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts +0 -8
- package/dist/typescript/module/features/fluency/components/fluency-solving/FluencySolvingProgress.d.ts.map +0 -1
- package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts +0 -11
- package/dist/typescript/module/features/fluency/model/FluencyInputModel.d.ts.map +0 -1
- package/src/features/fluency/__tests__/FluencyModel.test.ts +0 -28
- package/src/features/fluency/components/fluency-solving/FluencySolvingCard.tsx +0 -59
- package/src/features/fluency/components/fluency-solving/FluencySolvingProgress.tsx +0 -40
- package/src/features/fluency/model/FluencyInputModel.ts +0 -17
- /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{EquationContent.d.ts → components/EquationContent.d.ts} +0 -0
- /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencyNumpad.d.ts → components/FluencyNumpad.d.ts} +0 -0
- /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencySolvingCard.d.ts → components/FluencySolvingCard.d.ts} +0 -0
- /package/dist/typescript/commonjs/features/fluency/components/fluency-solving/{FluencySolvingHeader.d.ts → components/FluencySolvingHeader.d.ts} +0 -0
- /package/dist/typescript/module/features/fluency/components/fluency-solving/{EquationContent.d.ts → components/EquationContent.d.ts} +0 -0
- /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencyNumpad.d.ts → components/FluencyNumpad.d.ts} +0 -0
- /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencySolvingCard.d.ts → components/FluencySolvingCard.d.ts} +0 -0
- /package/dist/typescript/module/features/fluency/components/fluency-solving/{FluencySolvingHeader.d.ts → components/FluencySolvingHeader.d.ts} +0 -0
|
@@ -6,13 +6,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.FluencySolvingCard = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
|
+
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
10
|
+
var _effectorReact = require("effector-react/effector-react.mjs");
|
|
9
11
|
var _FluencyNumpad = require("./FluencyNumpad.js");
|
|
10
12
|
var _FluencyEquationCard = require("./FluencyEquationCard.js");
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
13
|
+
var _FluencyContext = require("../../../context/FluencyContext.js");
|
|
14
|
+
var _useCardSnapAnimation = require("../../../hooks/useCardSnapAnimation.js");
|
|
15
|
+
var _useSuccessSound = require("../../../hooks/useSuccessSound.js");
|
|
16
|
+
var _commonConstants = require("../../../../../shared/common.constants.js");
|
|
17
|
+
var _constants = require("../../../../../lib/constants.js");
|
|
18
|
+
var _fluencyConstants = require("../../../fluency.constants.js");
|
|
16
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
20
|
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); }
|
|
18
21
|
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; }
|
|
@@ -20,32 +23,47 @@ const FluencySolvingCard = () => {
|
|
|
20
23
|
const {
|
|
21
24
|
model
|
|
22
25
|
} = (0, _FluencyContext.useFluency)();
|
|
23
|
-
const animation = (0, _useCardSnapAnimation.useCardSnapAnimation)();
|
|
24
26
|
const {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
answer,
|
|
28
|
+
fact
|
|
29
|
+
} = (0, _effectorReact.useUnit)({
|
|
30
|
+
answer: model.solving.$answer,
|
|
31
|
+
fact: model.solving.$current
|
|
32
|
+
});
|
|
33
|
+
const animation = (0, _useCardSnapAnimation.useCardSnapAnimation)();
|
|
34
|
+
const successSound = (0, _useSuccessSound.useSuccessSound)();
|
|
35
|
+
const answerRef = (0, _react.useRef)(answer);
|
|
36
|
+
const submitRef = (0, _react.useRef)(() => {});
|
|
37
|
+
answerRef.current = answer;
|
|
27
38
|
const submit = () => {
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
39
|
+
if (!fact) return;
|
|
40
|
+
const isCorrect = answerRef.current !== null && answerRef.current === fact.answer;
|
|
41
|
+
if (isCorrect) {
|
|
42
|
+
successSound.play();
|
|
43
|
+
animation.trigger('right');
|
|
44
|
+
} else {
|
|
45
|
+
animation.trigger('left');
|
|
46
|
+
}
|
|
47
|
+
model.solving.submit();
|
|
34
48
|
};
|
|
49
|
+
submitRef.current = submit;
|
|
35
50
|
(0, _react.useEffect)(() => {
|
|
36
51
|
if (!_commonConstants.isWeb) return;
|
|
37
52
|
const handleKeyDown = event => {
|
|
38
53
|
const isDigit = /^\d$/.test(event.key);
|
|
39
|
-
if (isDigit)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
if (event.key ===
|
|
46
|
-
|
|
54
|
+
if (isDigit) {
|
|
55
|
+
const currentStr = answerRef.current !== null ? answerRef.current.toString() : '';
|
|
56
|
+
if (currentStr.length >= _fluencyConstants.MAX_INPUT_LENGTH) return;
|
|
57
|
+
model.solving.setAnswer(parseInt(currentStr + event.key, 10));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (event.key === _constants.KeyboardKeys.BACKSPACE) {
|
|
61
|
+
const currentStr = answerRef.current !== null ? answerRef.current.toString() : '';
|
|
62
|
+
const newStr = currentStr.slice(0, -1);
|
|
63
|
+
model.solving.setAnswer(newStr ? parseInt(newStr, 10) : null);
|
|
47
64
|
return;
|
|
48
65
|
}
|
|
66
|
+
if (event.key === _constants.KeyboardKeys.ENTER) submitRef.current();
|
|
49
67
|
};
|
|
50
68
|
window.addEventListener('keydown', handleKeyDown);
|
|
51
69
|
return () => window.removeEventListener('keydown', handleKeyDown);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeUi","_effectorReact","_FluencyNumpad","_FluencyEquationCard","_FluencyContext","_useCardSnapAnimation","_useSuccessSound","_commonConstants","_constants","_fluencyConstants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FluencySolvingCard","model","useFluency","answer","fact","useUnit","solving","$answer","$current","animation","useCardSnapAnimation","successSound","useSuccessSound","answerRef","useRef","submitRef","current","submit","isCorrect","play","trigger","useEffect","isWeb","handleKeyDown","event","isDigit","test","key","currentStr","toString","length","MAX_INPUT_LENGTH","setAnswer","parseInt","KeyboardKeys","BACKSPACE","newStr","slice","ENTER","window","addEventListener","removeEventListener","jsxs","View","children","jsx","style","styles","wrapper","FluencyEquationCard","animationStyles","snapStyles","FluencyNumpad","onEnterPress","exports","StyleSheet","create","alignItems","paddingVertical","SPACING","paddingHorizontal","marginTop"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/FluencySolvingCard.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,17 +7,15 @@ exports.FluencySolvingHeader = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var _XCloseIcon = require("../../../../shared/icons/XCloseIcon.js");
|
|
10
|
+
var _useFluencyModePreset = require("../../../hooks/useFluencyModePreset.js");
|
|
11
|
+
var _XCloseIcon = require("../../../../../shared/icons/XCloseIcon.js");
|
|
13
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
14
|
const FluencySolvingHeader = ({
|
|
16
15
|
onClosePress
|
|
17
16
|
}) => {
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const OperatorIcon = uiMode.operatorIcon;
|
|
17
|
+
const modePreset = (0, _useFluencyModePreset.useFluencyModePreset)();
|
|
18
|
+
const OperatorIcon = modePreset.icon;
|
|
21
19
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
22
20
|
style: styles.container,
|
|
23
21
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Button, {
|
|
@@ -27,7 +25,7 @@ const FluencySolvingHeader = ({
|
|
|
27
25
|
onPress: onClosePress
|
|
28
26
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
29
27
|
style: [styles.operatorBadge, {
|
|
30
|
-
backgroundColor:
|
|
28
|
+
backgroundColor: modePreset.colors.accent
|
|
31
29
|
}],
|
|
32
30
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OperatorIcon, {
|
|
33
31
|
color: _reactNativeUi.COLORS.NEUTRAL_1,
|
|
@@ -36,7 +34,7 @@ const FluencySolvingHeader = ({
|
|
|
36
34
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Typography, {
|
|
37
35
|
variant: _reactNativeUi.HeadingVariants.H4,
|
|
38
36
|
style: styles.title,
|
|
39
|
-
children:
|
|
37
|
+
children: modePreset.label
|
|
40
38
|
})]
|
|
41
39
|
});
|
|
42
40
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_useFluencyModePreset","_XCloseIcon","_jsxRuntime","e","__esModule","default","FluencySolvingHeader","onClosePress","modePreset","useFluencyModePreset","OperatorIcon","icon","jsxs","View","style","styles","container","children","jsx","Button","variant","ButtonVariant","SECONDARY","size","ButtonSize","LARGE","XCloseIcon","onPress","operatorBadge","backgroundColor","colors","accent","color","COLORS","NEUTRAL_1","Typography","HeadingVariants","H4","title","label","exports","StyleSheet","create","height","flexDirection","alignItems","gap","paddingVertical","SPACING","paddingHorizontal","SHADOWS","width","borderRadius","BORDER_RADIUS","justifyContent","NEUTRAL_10","fontWeight"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/FluencySolvingHeader.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAWA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAAmE,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAM5D,MAAMG,oBAAoB,GAAGA,CAAC;EAAEC;AAAwC,CAAC,KAAK;EACnF,MAAMC,UAAU,GAAG,IAAAC,0CAAoB,EAAC,CAAC;EACzC,MAAMC,YAAY,GAAGF,UAAU,CAACG,IAAI;EAEpC,oBACE,IAAAT,WAAA,CAAAU,IAAA,EAACd,YAAA,CAAAe,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5B,IAAAf,WAAA,CAAAgB,GAAA,EAACnB,cAAA,CAAAoB,MAAM;MACLC,OAAO,EAAEC,4BAAa,CAACC,SAAU;MACjCC,IAAI,EAAEC,yBAAU,CAACC,KAAM;MACvBd,IAAI,eAAE,IAAAT,WAAA,CAAAgB,GAAA,EAACjB,WAAA,CAAAyB,UAAU,IAAE,CAAE;MACrBC,OAAO,EAAEpB;IAAa,CACvB,CAAC,eACF,IAAAL,WAAA,CAAAgB,GAAA,EAACpB,YAAA,CAAAe,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACa,aAAa,EAAE;QAAEC,eAAe,EAAErB,UAAU,CAACsB,MAAM,CAACC;MAAO,CAAC,CAAE;MAAAd,QAAA,eACjF,IAAAf,WAAA,CAAAgB,GAAA,EAACR,YAAY;QAACsB,KAAK,EAAEC,qBAAM,CAACC,SAAU;QAACX,IAAI,EAAE;MAAG,CAAE;IAAC,CAC/C,CAAC,eACP,IAAArB,WAAA,CAAAgB,GAAA,EAACnB,cAAA,CAAAoC,UAAU;MAACf,OAAO,EAAEgB,8BAAe,CAACC,EAAG;MAACvB,KAAK,EAAEC,MAAM,CAACuB,KAAM;MAAArB,QAAA,EAC1DT,UAAU,CAAC+B;IAAK,CACP,CAAC;EAAA,CACT,CAAC;AAEX,CAAC;AAAAC,OAAA,CAAAlC,oBAAA,GAAAA,oBAAA;AAED,MAAMS,MAAM,GAAG0B,uBAAU,CAACC,MAAM,CAAC;EAC/B1B,SAAS,EAAE;IACT2B,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,EAAE;IACPC,eAAe,EAAEC,sBAAO,CAAC,GAAG,CAAC;IAC7BC,iBAAiB,EAAED,sBAAO,CAAC,GAAG,CAAC;IAC/B,GAAGE,sBAAO,CAAC,CAAC;EACd,CAAC;EACDtB,aAAa,EAAE;IACbuB,KAAK,EAAE,EAAE;IACTR,MAAM,EAAE,EAAE;IACVS,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCR,UAAU,EAAE,QAAQ;IACpBS,cAAc,EAAE,QAAQ;IACxB,GAAGJ,sBAAO,CAAC,CAAC;EACd,CAAC;EACDZ,KAAK,EAAE;IACLN,KAAK,EAAEC,qBAAM,CAACsB,UAAU;IACxBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -11,15 +11,27 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
const FluencySolvingProgress = ({
|
|
13
13
|
total,
|
|
14
|
-
activeIndex
|
|
14
|
+
activeIndex,
|
|
15
|
+
outcomes
|
|
15
16
|
}) => {
|
|
16
17
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
17
18
|
style: styles.container,
|
|
18
19
|
children: Array.from({
|
|
19
20
|
length: total
|
|
20
|
-
}).map((_, index) =>
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
}).map((_, index) => {
|
|
22
|
+
if (index === activeIndex) return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
23
|
+
style: styles.dotActive
|
|
24
|
+
}, index);
|
|
25
|
+
if (index < activeIndex) {
|
|
26
|
+
const outcome = outcomes[index];
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
28
|
+
style: outcome ? DOT_STYLE_BY_OUTCOME[outcome] : styles.dot
|
|
29
|
+
}, index);
|
|
30
|
+
}
|
|
31
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
32
|
+
style: styles.dot
|
|
33
|
+
}, index);
|
|
34
|
+
})
|
|
23
35
|
});
|
|
24
36
|
};
|
|
25
37
|
exports.FluencySolvingProgress = FluencySolvingProgress;
|
|
@@ -42,6 +54,22 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
42
54
|
height: 12,
|
|
43
55
|
backgroundColor: _reactNativeUi.COLORS.NEUTRAL_10,
|
|
44
56
|
borderRadius: 9999
|
|
57
|
+
},
|
|
58
|
+
dotCorrect: {
|
|
59
|
+
width: 12,
|
|
60
|
+
height: 12,
|
|
61
|
+
borderRadius: 6,
|
|
62
|
+
backgroundColor: _reactNativeUi.COLORS.PRIMARY_GREEN
|
|
63
|
+
},
|
|
64
|
+
dotWrong: {
|
|
65
|
+
width: 12,
|
|
66
|
+
height: 12,
|
|
67
|
+
borderRadius: 6,
|
|
68
|
+
backgroundColor: _reactNativeUi.COLORS.PRIMARY_RED
|
|
45
69
|
}
|
|
46
70
|
});
|
|
71
|
+
const DOT_STYLE_BY_OUTCOME = {
|
|
72
|
+
correct: styles.dotCorrect,
|
|
73
|
+
wrong: styles.dotWrong
|
|
74
|
+
};
|
|
47
75
|
//# sourceMappingURL=FluencySolvingProgress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_jsxRuntime","e","__esModule","default","FluencySolvingProgress","total","activeIndex","outcomes","jsx","View","style","styles","container","children","Array","from","length","map","_","index","dotActive","outcome","DOT_STYLE_BY_OUTCOME","dot","exports","StyleSheet","create","flexDirection","gap","SPACING","paddingHorizontal","paddingVertical","justifyContent","width","height","borderRadius","backgroundColor","COLORS","NEUTRAL_4","NEUTRAL_10","dotCorrect","PRIMARY_GREEN","dotWrong","PRIMARY_RED","correct","wrong"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/fluency-solving/components/FluencySolvingProgress.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAA4D,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AASrD,MAAMG,sBAAsB,GAAGA,CAAC;EACrCC,KAAK;EACLC,WAAW;EACXC;AAC2B,CAAC,KAAK;EACjC,oBACE,IAAAP,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,EAC3BC,KAAK,CAACC,IAAI,CAAC;MAAEC,MAAM,EAAEX;IAAM,CAAC,CAAC,CAACY,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,KAAK;MAC/C,IAAIA,KAAK,KAAKb,WAAW,EAAE,oBAAO,IAAAN,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,IAAI;QAAaC,KAAK,EAAEC,MAAM,CAACS;MAAU,GAA/BD,KAAiC,CAAC;MAC/E,IAAIA,KAAK,GAAGb,WAAW,EAAE;QACvB,MAAMe,OAAO,GAAGd,QAAQ,CAACY,KAAK,CAAC;QAC/B,oBAAO,IAAAnB,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,IAAI;UAAaC,KAAK,EAAEW,OAAO,GAAGC,oBAAoB,CAACD,OAAO,CAAC,GAAGV,MAAM,CAACY;QAAI,GAAnEJ,KAAqE,CAAC;MAC1F;MACA,oBAAO,IAAAnB,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,IAAI;QAAaC,KAAK,EAAEC,MAAM,CAACY;MAAI,GAAzBJ,KAA2B,CAAC;IAChD,CAAC;EAAC,CACE,CAAC;AAEX,CAAC;AAAAK,OAAA,CAAApB,sBAAA,GAAAA,sBAAA;AAED,MAAMO,MAAM,GAAGc,uBAAU,CAACC,MAAM,CAAC;EAC/Bd,SAAS,EAAE;IACTe,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAEC,sBAAO,CAAC,GAAG,CAAC;IACjBC,iBAAiB,EAAED,sBAAO,CAAC,GAAG,CAAC;IAC/BE,eAAe,EAAE,EAAE;IACnBC,cAAc,EAAE;EAClB,CAAC;EACDT,GAAG,EAAE;IACHU,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAEC,qBAAM,CAACC;EAC1B,CAAC;EACDlB,SAAS,EAAE;IACTa,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVE,eAAe,EAAEC,qBAAM,CAACE,UAAU;IAClCJ,YAAY,EAAE;EAChB,CAAC;EACDK,UAAU,EAAE;IACVP,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAEC,qBAAM,CAACI;EAC1B,CAAC;EACDC,QAAQ,EAAE;IACRT,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAEC,qBAAM,CAACM;EAC1B;AACF,CAAC,CAAC;AAEF,MAAMrB,oBAAqD,GAAG;EAC5DsB,OAAO,EAAEjC,MAAM,CAAC6B,UAAU;EAC1BK,KAAK,EAAElC,MAAM,CAAC+B;AAChB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.MODE_ANSWER_EVAL_FORMULA = exports.DEFAULT_PICKER_PARAMS = void 0;
|
|
7
|
+
var _fluencyConstants = require("../../fluency.constants.js");
|
|
8
|
+
const HOUR_MS = 60 * 60 * 1000;
|
|
9
|
+
const BOX_1_INTERVAL = 4 * HOUR_MS;
|
|
10
|
+
const BOX_2_INTERVAL = 36 * HOUR_MS; // 1.5 days
|
|
11
|
+
const BOX_3_INTERVAL = 144 * HOUR_MS; // 6 days
|
|
12
|
+
const BOX_4_INTERVAL = 672 * HOUR_MS; // 4 weeks
|
|
13
|
+
const BOX_5_INTERVAL = 2016 * HOUR_MS; // 12 weeks
|
|
14
|
+
|
|
15
|
+
const DEFAULT_PICKER_PARAMS = exports.DEFAULT_PICKER_PARAMS = {
|
|
16
|
+
wDue: 0.05,
|
|
17
|
+
wWeak: 0.35,
|
|
18
|
+
wEase: 0.3,
|
|
19
|
+
wRand: 0.02,
|
|
20
|
+
numBoxes: 5,
|
|
21
|
+
boxIntervals: [0, BOX_1_INTERVAL, BOX_2_INTERVAL, BOX_3_INTERVAL, BOX_4_INTERVAL, BOX_5_INTERVAL]
|
|
22
|
+
};
|
|
23
|
+
const MODE_ANSWER_EVAL_FORMULA = exports.MODE_ANSWER_EVAL_FORMULA = {
|
|
24
|
+
[_fluencyConstants.FluencyMode.ADDITION]: (a, b) => a + b,
|
|
25
|
+
[_fluencyConstants.FluencyMode.SUBTRACTION]: (a, b) => a - b,
|
|
26
|
+
[_fluencyConstants.FluencyMode.MULTIPLICATION]: (a, b) => a * b,
|
|
27
|
+
[_fluencyConstants.FluencyMode.DIVISION]: (a, b) => a / b
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=fluencySolving.constants.js.map
|
package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.constants.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_fluencyConstants","require","HOUR_MS","BOX_1_INTERVAL","BOX_2_INTERVAL","BOX_3_INTERVAL","BOX_4_INTERVAL","BOX_5_INTERVAL","DEFAULT_PICKER_PARAMS","exports","wDue","wWeak","wEase","wRand","numBoxes","boxIntervals","MODE_ANSWER_EVAL_FORMULA","FluencyMode","ADDITION","a","b","SUBTRACTION","MULTIPLICATION","DIVISION"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.constants.ts"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAGA,MAAMC,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;AAC9B,MAAMC,cAAc,GAAG,CAAC,GAAGD,OAAO;AAClC,MAAME,cAAc,GAAG,EAAE,GAAGF,OAAO,EAAC;AACpC,MAAMG,cAAc,GAAG,GAAG,GAAGH,OAAO,EAAC;AACrC,MAAMI,cAAc,GAAG,GAAG,GAAGJ,OAAO,EAAC;AACrC,MAAMK,cAAc,GAAG,IAAI,GAAGL,OAAO,EAAC;;AAE/B,MAAMM,qBAAmC,GAAAC,OAAA,CAAAD,qBAAA,GAAG;EACjDE,IAAI,EAAE,IAAI;EACVC,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE,GAAG;EACVC,KAAK,EAAE,IAAI;EACXC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE,CAAC,CAAC,EAAEZ,cAAc,EAAEC,cAAc,EAAEC,cAAc,EAAEC,cAAc,EAAEC,cAAc;AAClG,CAAC;AAEM,MAAMS,wBAA+E,GAAAP,OAAA,CAAAO,wBAAA,GAAG;EAC7F,CAACC,6BAAW,CAACC,QAAQ,GAAG,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EACvC,CAACH,6BAAW,CAACI,WAAW,GAAG,CAACF,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EAC1C,CAACH,6BAAW,CAACK,cAAc,GAAG,CAACH,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC;EAC7C,CAACH,6BAAW,CAACM,QAAQ,GAAG,CAACJ,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC;AACxC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.calculateNextBox = calculateNextBox;
|
|
7
|
+
exports.selectNextFact = selectNextFact;
|
|
8
|
+
exports.toSolvingFacts = toSolvingFacts;
|
|
9
|
+
var _fluencySolvingConstants = require("./fluencySolving.constants.js");
|
|
10
|
+
function toSolvingFacts(factMap, mode) {
|
|
11
|
+
return Object.entries(factMap).map(([id, fact]) => {
|
|
12
|
+
const [a, b] = fact.numbers;
|
|
13
|
+
const answer = _fluencySolvingConstants.MODE_ANSWER_EVAL_FORMULA[mode](a, b);
|
|
14
|
+
const box = fact.box ?? 0;
|
|
15
|
+
return {
|
|
16
|
+
id,
|
|
17
|
+
numbers: fact.numbers,
|
|
18
|
+
answer,
|
|
19
|
+
difficulty: fact.difficulty,
|
|
20
|
+
box,
|
|
21
|
+
lastSeenMs: fact.lastAttemptedAt ? new Date(fact.lastAttemptedAt).getTime() : null,
|
|
22
|
+
sessionStartBox: box,
|
|
23
|
+
hasFailedThisSession: false
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
function calculateAttentionScore(fact, now, params, maxDifficulty) {
|
|
28
|
+
const interval = params.boxIntervals[fact.box] || params.boxIntervals[1];
|
|
29
|
+
const overdueness = fact.lastSeenMs === null ? 1 : Math.max(0, (now - fact.lastSeenMs) / interval);
|
|
30
|
+
const weakness = 1 - fact.box / params.numBoxes;
|
|
31
|
+
const ease = maxDifficulty > 0 ? fact.difficulty / maxDifficulty : 0;
|
|
32
|
+
const rand = Math.random();
|
|
33
|
+
return params.wDue * overdueness + params.wWeak * weakness + params.wEase * (ease * weakness) + params.wRand * rand;
|
|
34
|
+
}
|
|
35
|
+
function selectNextFact(facts, now, params = _fluencySolvingConstants.DEFAULT_PICKER_PARAMS) {
|
|
36
|
+
if (facts.length === 0) return null;
|
|
37
|
+
const available = facts.filter(f => f.box < params.numBoxes);
|
|
38
|
+
const pool = available.length > 0 ? available : facts;
|
|
39
|
+
const maxDifficulty = Math.max(...pool.map(f => f.difficulty));
|
|
40
|
+
const scored = pool.map(fact => ({
|
|
41
|
+
fact,
|
|
42
|
+
score: calculateAttentionScore(fact, now, params, maxDifficulty)
|
|
43
|
+
}));
|
|
44
|
+
return scored.reduce((best, curr) => curr.score > best.score ? curr : best).fact;
|
|
45
|
+
}
|
|
46
|
+
function calculateNextBox({
|
|
47
|
+
currentBox,
|
|
48
|
+
isCorrect,
|
|
49
|
+
isFast,
|
|
50
|
+
sessionStartBox,
|
|
51
|
+
hasFailedThisSession
|
|
52
|
+
}) {
|
|
53
|
+
if (!isCorrect) return Math.max(1, currentBox - 1);
|
|
54
|
+
if (!isFast) return currentBox;
|
|
55
|
+
if (hasFailedThisSession || currentBox >= sessionStartBox + 1) return currentBox;
|
|
56
|
+
return Math.min(currentBox + 1, 5);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=fluencySolving.helpers.js.map
|
package/dist/commonjs/features/fluency/components/fluency-solving/fluencySolving.helpers.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_fluencySolvingConstants","require","toSolvingFacts","factMap","mode","Object","entries","map","id","fact","a","b","numbers","answer","MODE_ANSWER_EVAL_FORMULA","box","difficulty","lastSeenMs","lastAttemptedAt","Date","getTime","sessionStartBox","hasFailedThisSession","calculateAttentionScore","now","params","maxDifficulty","interval","boxIntervals","overdueness","Math","max","weakness","numBoxes","ease","rand","random","wDue","wWeak","wEase","wRand","selectNextFact","facts","DEFAULT_PICKER_PARAMS","length","available","filter","f","pool","scored","score","reduce","best","curr","calculateNextBox","currentBox","isCorrect","isFast","min"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/fluency-solving/fluencySolving.types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -14,7 +14,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
14
14
|
const FluencyMatrix = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
15
15
|
style: styles.container,
|
|
16
16
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
17
|
-
style: styles.
|
|
17
|
+
style: styles.matrixFillContainer,
|
|
18
18
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_MatrixFill.MatrixFill, {})
|
|
19
19
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MatrixLegend.MatrixLegend, {})]
|
|
20
20
|
});
|
|
@@ -27,7 +27,7 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
27
27
|
overflow: 'hidden',
|
|
28
28
|
..._reactNativeUi.SHADOWS[1]
|
|
29
29
|
},
|
|
30
|
-
|
|
30
|
+
matrixFillContainer: {
|
|
31
31
|
flex: 1,
|
|
32
32
|
padding: _reactNativeUi.SPACING[300],
|
|
33
33
|
minHeight: 354
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_MatrixLegend","_MatrixFill","_jsxRuntime","e","__esModule","default","FluencyMatrix","jsxs","View","style","styles","container","children","jsx","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_MatrixLegend","_MatrixFill","_jsxRuntime","e","__esModule","default","FluencyMatrix","jsxs","View","style","styles","container","children","jsx","matrixFillContainer","MatrixFill","MatrixLegend","exports","StyleSheet","create","flex","backgroundColor","COLORS","NEUTRAL_1","borderRadius","BORDER_RADIUS","overflow","SHADOWS","padding","SPACING","minHeight"],"sourceRoot":"../../../../../../src","sources":["features/fluency/components/matrix/FluencyMatrix.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAAoD,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7C,MAAMG,aAAa,GAAGA,CAAA,kBAC3B,IAAAJ,WAAA,CAAAK,IAAA,EAACT,YAAA,CAAAU,IAAI;EAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;EAAAC,QAAA,gBAC5B,IAAAV,WAAA,CAAAW,GAAA,EAACf,YAAA,CAAAU,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACI,mBAAoB;IAAAF,QAAA,eACtC,IAAAV,WAAA,CAAAW,GAAA,EAACZ,WAAA,CAAAc,UAAU,IAAE;EAAC,CACV,CAAC,eAEP,IAAAb,WAAA,CAAAW,GAAA,EAACb,aAAA,CAAAgB,YAAY,IAAE,CAAC;AAAA,CACZ,CACP;AAAAC,OAAA,CAAAX,aAAA,GAAAA,aAAA;AAED,MAAMI,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,IAAI,EAAE,CAAC;IACPC,eAAe,EAAEC,qBAAM,CAACC,SAAS;IACjCC,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCC,QAAQ,EAAE,QAAQ;IAClB,GAAGC,sBAAO,CAAC,CAAC;EACd,CAAC;EACDb,mBAAmB,EAAE;IACnBM,IAAI,EAAE,CAAC;IACPQ,OAAO,EAAEC,sBAAO,CAAC,GAAG,CAAC;IACrBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -13,20 +13,31 @@ var _StarFillIcon = require("../../../assets/StarFillIcon.js");
|
|
|
13
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
const MatrixCell = ({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
label,
|
|
17
|
+
box,
|
|
18
|
+
isHeader,
|
|
19
|
+
levelColors,
|
|
20
|
+
divisor
|
|
20
21
|
}) => {
|
|
21
|
-
const
|
|
22
|
-
const isMastered =
|
|
23
|
-
const
|
|
22
|
+
const masteryLevel = box ? (0, _fluencyHelpers.getMasteryLevelByBox)(box) : null;
|
|
23
|
+
const isMastered = masteryLevel === _fluencyConstants.FluencyMasteryLevel.MASTERED;
|
|
24
|
+
const bgColor = (() => {
|
|
25
|
+
if (masteryLevel) return levelColors[masteryLevel];
|
|
26
|
+
if (isHeader) return _reactNativeUi.COLORS.NEUTRAL_5;
|
|
27
|
+
return _reactNativeUi.COLORS.NEUTRAL_2;
|
|
28
|
+
})();
|
|
24
29
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
25
30
|
style: [styles.cell, {
|
|
26
|
-
backgroundColor:
|
|
31
|
+
backgroundColor: bgColor
|
|
27
32
|
}],
|
|
28
|
-
children: [
|
|
29
|
-
style: styles.
|
|
33
|
+
children: [divisor !== null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
34
|
+
style: styles.starContainer,
|
|
35
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
|
|
36
|
+
style: styles.divisorText,
|
|
37
|
+
children: ["\xF7", divisor]
|
|
38
|
+
})
|
|
39
|
+
}) : isMastered && /*#__PURE__*/(0, _jsxRuntime.jsx)(_StarFillIcon.StarFillIcon, {}), label !== null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
40
|
+
style: divisor ? styles.cellNumber : styles.headerText,
|
|
30
41
|
children: label
|
|
31
42
|
})]
|
|
32
43
|
});
|
|
@@ -39,9 +50,27 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
39
50
|
alignItems: 'center',
|
|
40
51
|
justifyContent: 'center'
|
|
41
52
|
},
|
|
53
|
+
starContainer: {
|
|
54
|
+
position: 'absolute',
|
|
55
|
+
top: 3,
|
|
56
|
+
right: _reactNativeUi.SPACING[100]
|
|
57
|
+
},
|
|
58
|
+
divisorText: {
|
|
59
|
+
fontSize: 10,
|
|
60
|
+
fontWeight: '500',
|
|
61
|
+
color: _reactNativeUi.COLORS.NEUTRAL_1,
|
|
62
|
+
lineHeight: _reactNativeUi.SPACING[300]
|
|
63
|
+
},
|
|
64
|
+
cellNumber: {
|
|
65
|
+
fontSize: 14,
|
|
66
|
+
fontWeight: '700',
|
|
67
|
+
color: _reactNativeUi.COLORS.NEUTRAL_3,
|
|
68
|
+
lineHeight: _reactNativeUi.SPACING[400]
|
|
69
|
+
},
|
|
42
70
|
headerText: {
|
|
43
|
-
fontSize:
|
|
44
|
-
|
|
71
|
+
fontSize: 12,
|
|
72
|
+
fontWeight: '600',
|
|
73
|
+
color: _reactNativeUi.COLORS.NEUTRAL_8
|
|
45
74
|
}
|
|
46
75
|
});
|
|
47
76
|
//# sourceMappingURL=MatrixCell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_fluencyHelpers","_fluencyConstants","_StarFillIcon","_jsxRuntime","e","__esModule","default","MatrixCell","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_fluencyHelpers","_fluencyConstants","_StarFillIcon","_jsxRuntime","e","__esModule","default","MatrixCell","label","box","isHeader","levelColors","divisor","masteryLevel","getMasteryLevelByBox","isMastered","FluencyMasteryLevel","MASTERED","bgColor","COLORS","NEUTRAL_5","NEUTRAL_2","jsxs","View","style","styles","cell","backgroundColor","children","jsx","starContainer","Text","divisorText","StarFillIcon","cellNumber","headerText","exports","StyleSheet","create","flex","borderRadius","BORDER_RADIUS","alignItems","justifyContent","position","top","right","SPACING","fontSize","fontWeight","color","NEUTRAL_1","lineHeight","NEUTRAL_3","NEUTRAL_8"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixCell.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAA2D,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAOpD,MAAMG,UAAU,GAAGA,CAAC;EAAEC,KAAK;EAAEC,GAAG;EAAEC,QAAQ;EAAEC,WAAW;EAAEC;AAAyB,CAAC,KAAK;EAC7F,MAAMC,YAAY,GAAGJ,GAAG,GAAG,IAAAK,oCAAoB,EAACL,GAAG,CAAC,GAAG,IAAI;EAC3D,MAAMM,UAAU,GAAGF,YAAY,KAAKG,qCAAmB,CAACC,QAAQ;EAEhE,MAAMC,OAAO,GAAG,CAAC,MAAM;IACrB,IAAIL,YAAY,EAAE,OAAOF,WAAW,CAACE,YAAY,CAAC;IAClD,IAAIH,QAAQ,EAAE,OAAOS,qBAAM,CAACC,SAAS;IACrC,OAAOD,qBAAM,CAACE,SAAS;EACzB,CAAC,EAAE,CAAC;EAEJ,oBACE,IAAAlB,WAAA,CAAAmB,IAAA,EAACxB,YAAA,CAAAyB,IAAI;IAACC,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAE;MAAEC,eAAe,EAAET;IAAQ,CAAC,CAAE;IAAAU,QAAA,GACtDhB,OAAO,KAAK,IAAI,gBACf,IAAAT,WAAA,CAAA0B,GAAA,EAAC/B,YAAA,CAAAyB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACK,aAAc;MAAAF,QAAA,eAChC,IAAAzB,WAAA,CAAAmB,IAAA,EAACxB,YAAA,CAAAiC,IAAI;QAACP,KAAK,EAAEC,MAAM,CAACO,WAAY;QAAAJ,QAAA,GAAC,MAAC,EAAChB,OAAO;MAAA,CAAO;IAAC,CAC9C,CAAC,GAEPG,UAAU,iBAAI,IAAAZ,WAAA,CAAA0B,GAAA,EAAC3B,aAAA,CAAA+B,YAAY,IAAE,CAC9B,EAEAzB,KAAK,KAAK,IAAI,iBACb,IAAAL,WAAA,CAAA0B,GAAA,EAAC/B,YAAA,CAAAiC,IAAI;MAACP,KAAK,EAAEZ,OAAO,GAAGa,MAAM,CAACS,UAAU,GAAGT,MAAM,CAACU,UAAW;MAAAP,QAAA,EAAEpB;IAAK,CAAO,CAC5E;EAAA,CACG,CAAC;AAEX,CAAC;AAAA4B,OAAA,CAAA7B,UAAA,GAAAA,UAAA;AAED,MAAMkB,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BZ,IAAI,EAAE;IACJa,IAAI,EAAE,CAAC;IACPC,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDb,aAAa,EAAE;IACbc,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,KAAK,EAAEC,sBAAO,CAAC,GAAG;EACpB,CAAC;EACDf,WAAW,EAAE;IACXgB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE/B,qBAAM,CAACgC,SAAS;IACvBC,UAAU,EAAEL,sBAAO,CAAC,GAAG;EACzB,CAAC;EACDb,UAAU,EAAE;IACVc,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE/B,qBAAM,CAACkC,SAAS;IACvBD,UAAU,EAAEL,sBAAO,CAAC,GAAG;EACzB,CAAC;EACDZ,UAAU,EAAE;IACVa,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAE/B,qBAAM,CAACmC;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -7,51 +7,41 @@ exports.MatrixFill = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
10
|
+
var _effectorReact = require("effector-react");
|
|
10
11
|
var _MatrixCell = require("./MatrixCell.js");
|
|
11
|
-
var
|
|
12
|
+
var _FluencyContext = require("../../../context/FluencyContext.js");
|
|
12
13
|
var _useFluencyModePreset = require("../../../hooks/useFluencyModePreset.js");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
-
const MOCK_SCORES = {
|
|
16
|
-
'1-1': 90,
|
|
17
|
-
'2-3': 70,
|
|
18
|
-
'3-5': 50,
|
|
19
|
-
'5-2': 30,
|
|
20
|
-
'4-4': 10,
|
|
21
|
-
'1-5': 85,
|
|
22
|
-
'3-3': 45
|
|
23
|
-
};
|
|
24
16
|
const MatrixFill = () => {
|
|
25
17
|
const {
|
|
26
|
-
|
|
27
|
-
} = (0,
|
|
18
|
+
model
|
|
19
|
+
} = (0, _FluencyContext.useFluency)();
|
|
20
|
+
const modePreset = (0, _useFluencyModePreset.useFluencyModePreset)();
|
|
21
|
+
const grid = (0, _effectorReact.useUnit)(model.matrix.$matrix);
|
|
22
|
+
if (!grid) return null;
|
|
28
23
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
29
24
|
style: styles.grid,
|
|
30
|
-
children:
|
|
31
|
-
length: _fluencyConstants.MATRIX_SIZE
|
|
32
|
-
}, (_, row) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
25
|
+
children: grid.map((row, rowIdx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
33
26
|
style: styles.row,
|
|
34
|
-
children:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
score: MOCK_SCORES[`${row}-${col}`] ?? null,
|
|
40
|
-
mastery: matrix.mastery
|
|
41
|
-
}, col))
|
|
42
|
-
}, row))
|
|
27
|
+
children: row.map((cell, colIdx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_MatrixCell.MatrixCell, {
|
|
28
|
+
...cell,
|
|
29
|
+
levelColors: modePreset.colors.level
|
|
30
|
+
}, colIdx))
|
|
31
|
+
}, rowIdx))
|
|
43
32
|
});
|
|
44
33
|
};
|
|
45
34
|
exports.MatrixFill = MatrixFill;
|
|
46
35
|
const styles = _reactNative.StyleSheet.create({
|
|
47
36
|
grid: {
|
|
48
37
|
flex: 1,
|
|
49
|
-
gap: _reactNativeUi.SPACING[
|
|
38
|
+
gap: _reactNativeUi.SPACING[100]
|
|
50
39
|
},
|
|
51
40
|
row: {
|
|
52
41
|
flex: 1,
|
|
42
|
+
minHeight: _reactNativeUi.SPACING[800],
|
|
53
43
|
flexDirection: 'row',
|
|
54
|
-
gap: _reactNativeUi.SPACING[
|
|
44
|
+
gap: _reactNativeUi.SPACING[100]
|
|
55
45
|
}
|
|
56
46
|
});
|
|
57
47
|
//# sourceMappingURL=MatrixFill.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_MatrixCell","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_effectorReact","_MatrixCell","_FluencyContext","_useFluencyModePreset","_jsxRuntime","e","__esModule","default","MatrixFill","model","useFluency","modePreset","useFluencyModePreset","grid","useUnit","matrix","$matrix","jsx","View","style","styles","children","map","row","rowIdx","cell","colIdx","MatrixCell","levelColors","colors","level","exports","StyleSheet","create","flex","gap","SPACING","minHeight","flexDirection"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixFill.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,eAAA,GAAAL,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AAA0E,IAAAO,WAAA,GAAAP,OAAA;AAAA,SAAAD,uBAAAS,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEnE,MAAMG,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,0BAAU,EAAC,CAAC;EAC9B,MAAMC,UAAU,GAAG,IAAAC,0CAAoB,EAAC,CAAC;EACzC,MAAMC,IAAI,GAAG,IAAAC,sBAAO,EAACL,KAAK,CAACM,MAAM,CAACC,OAAO,CAAC;EAE1C,IAAI,CAACH,IAAI,EAAE,OAAO,IAAI;EAEtB,oBACE,IAAAT,WAAA,CAAAa,GAAA,EAACnB,YAAA,CAAAoB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACP,IAAK;IAAAQ,QAAA,EACtBR,IAAI,CAACS,GAAG,CAAC,CAACC,GAAG,EAAEC,MAAM,kBACpB,IAAApB,WAAA,CAAAa,GAAA,EAACnB,YAAA,CAAAoB,IAAI;MAAcC,KAAK,EAAEC,MAAM,CAACG,GAAI;MAAAF,QAAA,EAClCE,GAAG,CAACD,GAAG,CAAC,CAACG,IAAI,EAAEC,MAAM,kBACpB,IAAAtB,WAAA,CAAAa,GAAA,EAAChB,WAAA,CAAA0B,UAAU;QAAA,GAAkBF,IAAI;QAAEG,WAAW,EAAEjB,UAAU,CAACkB,MAAM,CAACC;MAAM,GAAvDJ,MAAyD,CAC3E;IAAC,GAHOF,MAIL,CACP;EAAC,CACE,CAAC;AAEX,CAAC;AAAAO,OAAA,CAAAvB,UAAA,GAAAA,UAAA;AAED,MAAMY,MAAM,GAAGY,uBAAU,CAACC,MAAM,CAAC;EAC/BpB,IAAI,EAAE;IACJqB,IAAI,EAAE,CAAC;IACPC,GAAG,EAAEC,sBAAO,CAAC,GAAG;EAClB,CAAC;EACDb,GAAG,EAAE;IACHW,IAAI,EAAE,CAAC;IACPG,SAAS,EAAED,sBAAO,CAAC,GAAG,CAAC;IACvBE,aAAa,EAAE,KAAK;IACpBH,GAAG,EAAEC,sBAAO,CAAC,GAAG;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -14,11 +14,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
14
14
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
const MatrixLegend = () => {
|
|
16
16
|
const t = (0, _i18n.useText)();
|
|
17
|
-
const
|
|
18
|
-
matrix,
|
|
19
|
-
buttonColor,
|
|
20
|
-
legendItems
|
|
21
|
-
} = (0, _useFluencyModePreset.useFluencyModePreset)();
|
|
17
|
+
const modePreset = (0, _useFluencyModePreset.useFluencyModePreset)();
|
|
22
18
|
const {
|
|
23
19
|
onPracticePress
|
|
24
20
|
} = (0, _FluencyContext.useFluency)();
|
|
@@ -26,7 +22,7 @@ const MatrixLegend = () => {
|
|
|
26
22
|
style: styles.container,
|
|
27
23
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
28
24
|
style: styles.legendItems,
|
|
29
|
-
children:
|
|
25
|
+
children: modePreset.legend.items.map(item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
30
26
|
style: styles.legendItem,
|
|
31
27
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
32
28
|
style: [styles.legendDot, {
|
|
@@ -41,7 +37,7 @@ const MatrixLegend = () => {
|
|
|
41
37
|
onPress: onPracticePress,
|
|
42
38
|
variant: _reactNativeUi.ButtonVariant.PRIMARY,
|
|
43
39
|
size: _reactNativeUi.ButtonSize.MEDIUM,
|
|
44
|
-
colorScheme:
|
|
40
|
+
colorScheme: modePreset.colors.button,
|
|
45
41
|
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.PlayIcon, {
|
|
46
42
|
color: _reactNativeUi.COLORS.NEUTRAL_1
|
|
47
43
|
}),
|
|
@@ -50,7 +46,7 @@ const MatrixLegend = () => {
|
|
|
50
46
|
container: styles.practiceButton,
|
|
51
47
|
text: styles.practiceButtonText
|
|
52
48
|
},
|
|
53
|
-
children: `${t('student.fluency.practice')} ${
|
|
49
|
+
children: `${t('student.fluency.practice')} ${modePreset.label}`
|
|
54
50
|
})]
|
|
55
51
|
});
|
|
56
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_useFluencyModePreset","_FluencyContext","_i18n","_jsxRuntime","e","__esModule","default","MatrixLegend","t","useText","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_useFluencyModePreset","_FluencyContext","_i18n","_jsxRuntime","e","__esModule","default","MatrixLegend","t","useText","modePreset","useFluencyModePreset","onPracticePress","useFluency","jsxs","View","style","styles","container","children","jsx","legendItems","legend","items","map","item","legendItem","legendDot","backgroundColor","color","withBorder","legendDotBorder","Text","legendLabel","label","Button","onPress","variant","ButtonVariant","PRIMARY","size","ButtonSize","MEDIUM","colorScheme","colors","button","icon","PlayIcon","COLORS","NEUTRAL_1","raiseLevel","practiceButton","text","practiceButtonText","exports","StyleSheet","create","height","flexDirection","alignItems","justifyContent","NEUTRAL_2","borderBottomColor","NEUTRAL_5","paddingHorizontal","SPACING","paddingVertical","borderTopLeftRadius","BORDER_RADIUS","borderTopRightRadius","SHADOWS","gap","width","borderRadius","borderWidth","borderColor","fontSize","NEUTRAL_7","alignSelf","textTransform"],"sourceRoot":"../../../../../../../src","sources":["features/fluency/components/matrix/components/MatrixLegend.tsx"],"mappings":"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","ignoreList":[]}
|