20 lines
751 B
Markdown
20 lines
751 B
Markdown
# ui-inbox
|
|
|
|
A native-rendered task inbox written entirely with the experimental `canvas.Ui` declarative builder. The whole app is one elm-style loop — `Model` → `Msg` → `update` → `view` — with no hand-assigned widget ids, no absolute frames, and no string command dispatch:
|
|
|
|
- Widget identity is structural (tree path + keys), so keyed rows keep their ids across rebuilds, reorders, and filtering.
|
|
- Layout is flex (`gap`, `padding`, `grow`, alignment) resolved by the canvas engine.
|
|
- Pointer and keyboard events resolve to typed `Msg` values through the tree's handler table (`tree.msgForPointer` / `tree.msgForKeyboard`).
|
|
|
|
Run it (macOS):
|
|
|
|
```bash
|
|
zig build run
|
|
```
|
|
|
|
Run the model/view tests on any platform:
|
|
|
|
```bash
|
|
zig build test
|
|
```
|