rtb-tui 0.6.4

Reusable TUI widgets: forms, wizards, prompts, tables. Part of the phpboyscout Rust toolkit.
Documentation
# rtb-tui

> Part of the [phpboyscout Rust toolkit]https://rust.phpboyscout.uk —
> small, framework-free crates extracted from
> [rust-tool-base]https://gitlab.com/phpboyscout/rust-tool-base.

Reusable TUI widgets for CLI tools: a multi-step interactive `Wizard`
with escape-to-back navigation (backed by `inquire`), uniform
structured-output helpers (`render_table` / `render_json`) for a
`--output text|json` flag, and a TTY-aware `Spinner` that no-ops when
stderr isn't a terminal.

```rust
use rtb_tui::{render_table, render_json};
use serde::Serialize;
use tabled::Tabled;

#[derive(Tabled, Serialize)]
struct Row { name: &'static str, count: u32 }

let rows = vec![Row { name: "alpha", count: 1 }];
print!("{}", render_table(&rows));          // psql-style text table
print!("{}", render_json(&rows).unwrap());  // pretty-printed JSON array
```

## Documentation

- [Build a three-step wizard]https://tui.rust.phpboyscout.uk/tutorials/01-build-a-three-step-wizard/
  — the tutorial, from an empty crate to a working program.
- [How-to guides]https://tui.rust.phpboyscout.uk/how-to/ — output
  flags, progress reporting, exit codes, testing without a terminal.
- [Reference]https://tui.rust.phpboyscout.uk/reference/ — every
  public item, its defaults and its failure modes.
- [What rtb-tui does not do]https://tui.rust.phpboyscout.uk/explanation/04-what-rtb-tui-does-not-do/
  — the limitations, before you plan around them.

This is not a full-screen terminal UI library. It draws no panels, has
no event loop, and there is no `ratatui` in its dependency graph — it
is three line-oriented widgets and nothing else.

- **Docs site:** <https://tui.rust.phpboyscout.uk>
- **Generated API docs:** <https://docs.rs/rtb-tui>
- **Crate:** <https://crates.io/crates/rtb-tui>

## Development

`just ci` runs the full local gate (fmt, clippy, nextest, doc, deny).
All tests run headless — no TTY required. Releases are cut by
release-plz from Conventional Commits — do not tag manually.

## License

MIT