diff --git a/apps/web/src/app/create/worksheets/addition/components/AdditionWorksheetClient.tsx b/apps/web/src/app/create/worksheets/addition/components/AdditionWorksheetClient.tsx index 89a3dee3..1f942a58 100644 --- a/apps/web/src/app/create/worksheets/addition/components/AdditionWorksheetClient.tsx +++ b/apps/web/src/app/create/worksheets/addition/components/AdditionWorksheetClient.tsx @@ -13,12 +13,15 @@ import { WorksheetPreview } from './WorksheetPreview' import { OrientationPanel } from './OrientationPanel' import { GenerateButton } from './GenerateButton' import { GenerationErrorDisplay } from './GenerationErrorDisplay' +import { RuleThermometer } from './config-panel/RuleThermometer' import { useWorksheetState } from '../hooks/useWorksheetState' import { useWorksheetGeneration } from '../hooks/useWorksheetGeneration' import { useWorksheetAutoSave } from '../hooks/useWorksheetAutoSave' import { getDefaultDate } from '../utils/dateFormatting' import { calculateDerivedState } from '../utils/layoutCalculations' import type { WorksheetFormState } from '../types' +import type { DisplayRules } from '../displayRules' +import { defaultAdditionConfig } from '@/app/create/worksheets/config-schemas' interface AdditionWorksheetClientProps { initialSettings: Omit @@ -201,6 +204,32 @@ export function AdditionWorksheetClient({ onProblemsPerPageChange={handleProblemsPerPageChange} onPagesChange={handlePagesChange} isDark={isDark} + problemNumbers={ + (formState.displayRules ?? defaultAdditionConfig.displayRules).problemNumbers + } + cellBorders={ + (formState.displayRules ?? defaultAdditionConfig.displayRules).cellBorders + } + onProblemNumbersChange={(value) => { + const displayRules: DisplayRules = + formState.displayRules ?? defaultAdditionConfig.displayRules + updateFormState({ + displayRules: { + ...displayRules, + problemNumbers: value, + }, + }) + }} + onCellBordersChange={(value) => { + const displayRules: DisplayRules = + formState.displayRules ?? defaultAdditionConfig.displayRules + updateFormState({ + displayRules: { + ...displayRules, + cellBorders: value, + }, + }) + }} /> diff --git a/apps/web/src/app/create/worksheets/addition/components/OrientationPanel.tsx b/apps/web/src/app/create/worksheets/addition/components/OrientationPanel.tsx index 4327e481..0e4f1fb0 100644 --- a/apps/web/src/app/create/worksheets/addition/components/OrientationPanel.tsx +++ b/apps/web/src/app/create/worksheets/addition/components/OrientationPanel.tsx @@ -17,6 +17,11 @@ interface OrientationPanelProps { onProblemsPerPageChange: (problemsPerPage: number, cols: number) => void onPagesChange: (pages: number) => void isDark?: boolean + // Layout options + problemNumbers?: 'always' | 'never' + cellBorders?: 'always' | 'never' + onProblemNumbersChange?: (value: 'always' | 'never') => void + onCellBordersChange?: (value: 'always' | 'never') => void } /** @@ -32,6 +37,10 @@ export function OrientationPanel({ onProblemsPerPageChange, onPagesChange, isDark = false, + problemNumbers = 'always', + cellBorders = 'always', + onProblemNumbersChange, + onCellBordersChange, }: OrientationPanelProps) { const handleOrientationChange = (newOrientation: 'portrait' | 'landscape') => { const newProblemsPerPage = newOrientation === 'portrait' ? 15 : 20 @@ -425,6 +434,108 @@ export function OrientationPanel({ + + {/* Row 3: Layout Options */} +
+
+ Layout Options +
+ +
+ {/* Problem Numbers Toggle */} + + + {/* Cell Borders Toggle */} + +
+
)