# Slice 1: Remaining MVP GUI Components ## Status Not started ## Objective Implement every GUI component required by the MVP so each schema-supported component can be added, configured, rendered, used in Preview, and tested. ## Dependencies - Existing canonical schema, component model, palette, canvas, property editor, and Preview patterns - Slice 7 is required only if the AI decision changes component-generation scope ## In Scope - Text Area, Checkbox, Radio Group, Status/Message Panel, and Container/Card - Defaults, property controls, runtime behavior, bindings, diagnostics, examples, and tests ## Out of Scope - Post-MVP widgets such as tabs, modals, charts, and file upload - Visual action and binding authoring, which belongs to Slice 2 ## Tasks - [ ] Define shared acceptance criteria and test patterns for component implementation. - [ ] Implement Text Area end-to-end. - [ ] Implement Checkbox end-to-end. - [ ] Implement Radio Group end-to-end. - [ ] Implement Status/Message Panel end-to-end. - [ ] Define and implement the minimum MVP Container/Card behavior and nesting rules. - [ ] Add component-specific binding support and diagnostics. - [ ] Add or update example projects for all five components. - [ ] Remove the schema/runtime mismatch for supported component types. - [ ] Update `TASKS.md`, `CODEX.md`, and relevant documentation. ## Acceptance Criteria - [ ] All eleven MVP types can be added through the palette and render on the canvas and in Preview. - [ ] Properties survive JSON editing and save/load round trips. - [ ] Interactive values remain in runtime state, not canonical JSON. - [ ] Invalid configurations produce useful diagnostics. - [ ] Existing components and bindings continue to work. ## Validation - [ ] Frontend TypeScript check and production build pass. - [ ] Component and renderer tests pass. - [ ] Schema examples validate as expected. - [ ] Manual canvas, Preview, and save/load checks pass for each component. ## Risks and Open Questions - Container/Card needs a deliberately small nesting contract. - Checkbox and Radio Group values must stay consistent across properties, runtime, templates, and bindings. - Status/Message Panel needs a distinct contract from Label and JSON Viewer. ## Progress Log No work recorded yet. ## Handoff - Last completed: Slice plan created. - Next action: Define component contracts and implement Text Area as the reference pattern. - Known blockers: Container/Card nesting behavior requires a scoped decision.