Skip to content

Layout builder wizard: next steps — sample-powered starts, a bigger template shelf, component-carrying templates #183

Description

@samyost

Parking the rest of the owner's 2026-07-04 brief so it doesn't evaporate. PR #182 shipped the first item (the builder works for tiles — same zone model, a target on the config); these are the follow-on directions, roughly in the owner's words:

  1. Concise, polished, clear of purpose. Keep tightening the wizard itself: fewer words, clearer stages, every control obviously about layout. Candidate polish: name the two stages explicitly ("Pick a starting layout" → "Shape it"), and keep auditing copy that still says "row" where it means "row or tile".

  2. Work with samples one day. Let the gallery be fed by real formatter samples, not only the built-in wireframes — the pnp/List-Formatting live sample browser is already a parked note (Components pane: browse pnp/List-Formatting samples live from the repo #155), and the builder's round-trip parser (configFromView + the rebuild-verify gate) is the natural admission test: a sample that parses into zones becomes an editable starting layout; one that doesn't can still apply as-is with the honest foreign-layout note.

  3. More templates to start from. The wireframe shelf is deliberately small (6 row + 4 tile). Grow it — more row shapes, more tile shapes (image-led tiles once filepreview/image slots have a good story), maybe density/style presets baked into a template pick.

  4. Templates that can include components. WireframeZoneSpec.want currently seeds fields by type. Let a wireframe slot also want a component (e.g. "Deadline chip here, best-guess mapped"), and let a maker's saved ⬡ components appear as personal templates. The plumbing exists — zones already hold ComponentZoneItems and drops best-guess-map via bestGuessMapping; this is about letting the SEED carry them.

Constraints that stay non-negotiable per HANDOFF/CLAUDE.md: generated layouts must be schema-valid and definitely-work-on-real-SP, refuse-and-teach over guessing, Apply stays exactly one undoable mutation, and the round trip keeps its rebuild-verify gate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions