feat(worksheets): integrate subtraction scaffolding into smart difficulty mode
Previously, smart mode hardcoded showBorrowNotation and showBorrowingHints to false. Now these fields are properly integrated into the display rules system and scaffolding progression. Changes: - Extended DisplayRules interface with borrowNotation and borrowingHints fields - Added fields to all 13 scaffolding levels and 5 difficulty profiles - Updated config schemas (V2, V3, V4) with backward-compatible migrations - Removed hardcoded false values in typstGenerator.ts - Updated getScaffoldingSummary() to show new scaffolding aids - Fixed typstGenerator subtraction parameter ordering (showCarryBoxes → showBorrowNotation) - Fixed borrow hint text rendering (removed extra box wrapper) Subtraction worksheets now receive the same conditional scaffolding treatment as addition, with hints appearing at appropriate difficulty levels and fading as students progress. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -71,6 +71,18 @@ function getScaffoldingSummary(displayRules: any): React.ReactNode {
|
||||
conditionalItems.push('ten-frames')
|
||||
}
|
||||
|
||||
if (displayRules.borrowNotation === 'always') {
|
||||
alwaysItems.push('borrow notation')
|
||||
} else if (displayRules.borrowNotation !== 'never') {
|
||||
conditionalItems.push('borrow notation')
|
||||
}
|
||||
|
||||
if (displayRules.borrowingHints === 'always') {
|
||||
alwaysItems.push('borrowing hints')
|
||||
} else if (displayRules.borrowingHints !== 'never') {
|
||||
conditionalItems.push('borrowing hints')
|
||||
}
|
||||
|
||||
if (alwaysItems.length === 0 && conditionalItems.length === 0) {
|
||||
console.log('[getScaffoldingSummary] Final summary: no scaffolding')
|
||||
return <span className={css({ color: 'gray.500', fontStyle: 'italic' })}>no scaffolding</span>
|
||||
|
||||
@@ -217,13 +217,13 @@ ${generateSubtractionProblemStackFunction(cellSize, maxDigits)}
|
||||
} else {
|
||||
subtraction-problem-stack(
|
||||
problem.minuend, problem.subtrahend, index,
|
||||
problem.showCarryBoxes,
|
||||
problem.showBorrowNotation, // show-borrows (whether to show borrow boxes)
|
||||
problem.showAnswerBoxes,
|
||||
problem.showPlaceValueColors,
|
||||
problem.showTenFrames,
|
||||
problem.showProblemNumbers,
|
||||
problem.showBorrowNotation,
|
||||
problem.showBorrowingHints
|
||||
problem.showBorrowNotation, // show-borrow-notation (scratch work boxes in minuend)
|
||||
problem.showBorrowingHints // show-borrowing-hints (hints with arrows)
|
||||
)
|
||||
}
|
||||
]
|
||||
|
||||
@@ -64,9 +64,8 @@ export function generateBorrowBoxesRow(cellDimensions: CellDimensions): string {
|
||||
#place(
|
||||
top + center,
|
||||
dy: 2pt,
|
||||
box[
|
||||
#text(size: ${hintTextSize}pt, fill: gray.darken(30%), weight: "bold")[#str(display-value) − ]
|
||||
#text(size: ${hintTextSize}pt, fill: gray.darken(30%), weight: "bold")[1]
|
||||
text(size: ${hintTextSize}pt, fill: gray.darken(30%), weight: "bold")[
|
||||
#display-value#h(0.1em)−#h(0.1em)1
|
||||
]
|
||||
)
|
||||
// Draw curved line using Typst bezier with control point
|
||||
|
||||
Reference in New Issue
Block a user