feat: launch local-first Sudoku workbench

This commit is contained in:
2026-08-30 14:14:11 +02:00
commit 659640b231
97 changed files with 19111 additions and 0 deletions
+75
View File
@@ -0,0 +1,75 @@
import { Modal } from "./Modal";
export function HelpDialog({
open,
onClose,
}: {
open: boolean;
onClose: () => void;
}) {
return (
<Modal open={open} title="Sudoku Tools help" onClose={onClose} wide>
<div className="help-grid">
<section>
<h3>Four complementary workspaces</h3>
<p>
<strong>Play</strong> keeps values, two kinds of notes, colours,
history and elapsed time. <strong>Set</strong> edits clues and
constraints. <strong>Solve</strong> explains logical steps and can
verify uniqueness. <strong>Helpers</strong> answers focused
questions without changing the board.
</p>
</section>
<section>
<h3>Keyboard</h3>
<dl className="shortcut-list">
<div>
<dt>Arrow keys</dt>
<dd>Move the active cell</dd>
</div>
<div>
<dt>Shift + arrows</dt>
<dd>Extend the selection</dd>
</div>
<div>
<dt>19 / AG</dt>
<dd>Enter the selected symbol</dd>
</div>
<div>
<dt>Z / X / C / V</dt>
<dd>Value, corner, centre or colour mode</dd>
</div>
<div>
<dt>Backspace</dt>
<dd>Erase in the current mode</dd>
</div>
<div>
<dt>Ctrl/ + Z/Y</dt>
<dd>Undo or redo</dd>
</div>
</dl>
</section>
<section>
<h3>Hints and solutions</h3>
<p>
Candidate legality is computed independently from handwritten notes.
Logical deductions report their premises, affected houses,
placements and eliminations. Exact search is separately labelled; it
proves feasibility or uniqueness but is not presented as a human
explanation.
</p>
</section>
<section>
<h3>Import and privacy</h3>
<p>
Files, text, solving and generation stay in this browser. Compact
grids, project JSON, share fragments and supported f-puzzles data
are decoded locally. SudokuPad short IDs need its server and are
intentionally rejected. Review an export before sharing: titles,
authors, rules, solutions and progress may be included.
</p>
</section>
</div>
</Modal>
);
}