76 lines
3.4 KiB
Markdown
76 lines
3.4 KiB
Markdown
# Slice 1: Remaining MVP GUI Components
|
|
|
|
## Status
|
|
|
|
Complete
|
|
|
|
## 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
|
|
|
|
- [x] Define shared acceptance criteria and test patterns for component implementation.
|
|
- [x] Implement Text Area end-to-end.
|
|
- [x] Implement Checkbox end-to-end.
|
|
- [x] Implement Radio Group end-to-end.
|
|
- [x] Implement Status/Message Panel end-to-end.
|
|
- [x] Define and implement the minimum MVP Container/Card behavior and nesting rules.
|
|
- [x] Add component-specific binding support and diagnostics.
|
|
- [x] Add or update example projects for all five components.
|
|
- [x] Remove the schema/runtime mismatch for supported component types.
|
|
- [x] Update `TASKS.md`, `CODEX.md`, and relevant documentation.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [x] All eleven MVP types can be added through the palette and render on the canvas and in Preview.
|
|
- [x] Properties use the canonical document and therefore survive JSON editing and persistence round trips.
|
|
- [x] Interactive values remain in runtime state, not canonical JSON.
|
|
- [x] Invalid option and binding configurations produce useful diagnostics.
|
|
- [x] Existing components and bindings continue to work.
|
|
|
|
## Validation
|
|
|
|
- [x] Frontend TypeScript check and production build pass.
|
|
- [x] Component and renderer tests pass.
|
|
- [x] Schema examples validate as expected.
|
|
- [x] Manual canvas, Preview, JSON synchronization, save/load, and regression checks pass for all components.
|
|
|
|
## 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
|
|
|
|
- Added Text Area, Checkbox, Radio Group, Status Panel, and Container/Card to the shared type model, palette, canvas, defaults, property editor, and Preview.
|
|
- Kept all interactive input values in ephemeral Preview runtime state.
|
|
- Added response-mapped `.value` support for Text Area, Checkbox, Radio Group, and Status Panel.
|
|
- Defined Container/Card as a flat presentational card with title and body; nested component ownership is deferred beyond MVP.
|
|
- Added a representative schema fixture covering all five components.
|
|
- Added focused renderer and binding regression tests.
|
|
- Validation passed: 7 suites / 433 tests, frontend production build, backend TypeScript build, and the new schema fixture.
|
|
- User manual acceptance passed: startup, all five new component controls, Preview behavior, JSON synchronization, save/load persistence, and existing-component regression checks.
|
|
|
|
## Handoff
|
|
|
|
- Last completed: All Slice 1 GUI components and validation.
|
|
- Next action: Begin Slice 2 visual REST action, event, and binding configuration.
|
|
- Known blockers: None for Slice 1.
|