Parent: #129 . Final issue in the F14.1 foundation batch. Depends on the generator and guided-project creation service.
Scope
Add an accessible setup flow that previews the source and generated guide, exposes approachable presets, and creates a separate guided project.
Implementation
Add pf-paint-by-number-dialog.ts using the existing dialog vocabulary.
Select a local image and explain that processing stays on the device.
Show source and generated guide previews together.
Offer 16, 24, 32, and 48 long-side presets.
Put advanced settings behind an explicit disclosure:
exact long-side size, including 64;
generated maximum color count;
generated or supplied restricted palette;
color or luminance mapping.
Debounce preview generation and ignore stale async results.
Use persistent labels, native form controls, visible focus, and a concise error/status region.
Add a File menu entry. Project-browser placement remains in F14.3 — Finish guidance, resume, and entry points #131 .
Acceptance
Keyboard-only users can select a file, change presets/settings, inspect status, create, and cancel.
Preview changes reflect current settings without stale-result flashes.
Create is disabled until a valid guide exists.
The dialog closes only after successful project creation.
The current project remains intact on cancellation or errors.
Verification
Component and stale-preview Vitest coverage
npm run lint
npm run test:run
npm run build
git diff --check
Parent: #129. Final issue in the F14.1 foundation batch. Depends on the generator and guided-project creation service.
Scope
Add an accessible setup flow that previews the source and generated guide, exposes approachable presets, and creates a separate guided project.
Implementation
pf-paint-by-number-dialog.tsusing the existing dialog vocabulary.Acceptance
Verification
npm run lintnpm run test:runnpm run buildgit diff --check