singularity-forge/docs/dev/pi-ui-tui/03-entry-points-how-ui-gets-on-screen.md
Jeremy 872b0adb48 docs: reorganize into user-docs/ and dev/ subdirectories
Split flat docs/ into user-docs/ (guides, config, troubleshooting) and
dev/ (ADRs, architecture, extension guides, proposals). Updated
docs/README.md index to reflect new paths.
2026-04-10 09:25:31 -05:00

19 lines
1 KiB
Markdown

# Entry Points — How UI Gets on Screen
There are **six different ways** to put custom UI on screen, each for a different purpose:
| Method | Purpose | Blocks? | Replaces editor? |
|--------|---------|---------|-------------------|
| `ctx.ui.select/confirm/input/editor` | Quick dialogs | Yes | Temporarily |
| `ctx.ui.notify` | Toast notifications | No | No |
| `ctx.ui.setStatus` | Footer status text | No | No |
| `ctx.ui.setWidget` | Persistent widget above/below editor | No | No |
| `ctx.ui.setFooter` | Replace entire footer | No | No (replaces footer) |
| `ctx.ui.custom()` | Full custom component | Yes | Temporarily |
| `ctx.ui.custom({overlay})` | Floating overlay | Yes | No (renders on top) |
| `ctx.ui.setEditorComponent` | Replace editor permanently | No | Yes (permanently) |
| `ctx.ui.setHeader` | Custom startup header | No | No (replaces header) |
| `renderCall/renderResult` | Tool display | No | No (inline in messages) |
| `registerMessageRenderer` | Custom message display | No | No (inline in messages) |
---