A small multi-screen team invite application demonstrating routing, resources, diagnostics, feedback, and keyboard navigation.
- Semantic screens defined without components or JSX
- Typed router navigation with route context
- Runtime-scoped resources with autoLoad and reload
- Ask validation with blocked action reasons
- Feedback output during action execution
- Keyboard Enter default action with accessible hint
- Opt-in screen-name headings
- Graph diagnostics via
inspectScreen()
pnpm install
pnpm dev:web-basicOpen the local URL printed by Vite.
- Pick a team on the home screen.
- View team details — resource loads team data from route params.
- Click Refresh team — version increments as the resource reloads.
- Click Invite member — navigate to the invite form.
- The Send invite button is disabled until a valid email is typed.
- Press Enter to submit — the accessible hint appears when the default action is unambiguous.
- After success, the member count updates automatically.
- Scroll to the diagnostics panel —
inspectScreen()output for each screen.
For a guided 5-minute demo script, see docs/Demo.md.
For a deep dive into resource semantics, see docs/Resources.md.
| Route | Screen | Purpose |
|---|---|---|
/ |
Home | Team selection |
/teams/:teamId |
Team Details | Resource-driven team view |
/teams/:teamId/invite |
Invite | Email ask with validation |
* |
Not Found | Fallback |