feat: add status dot component

This commit is contained in:
2026-11-03 19:44:54 +07:00
parent 0c8d7f05d4
commit 7d1bceefd5
6 changed files with 255 additions and 11 deletions
+13 -11
View File
@@ -3,13 +3,13 @@
The living queue. Every element lands through the review gate: API sketch →
implementation → tests → gallery panel → review. Conventions and rules live in
[AGENTS.md](../AGENTS.md); the gpui pin lives in the workspace `Cargo.toml`
(zed @ `ec86047d67acd6fddd81392f44ed6ebcc6e7f531`). [signed](https://git.reya.info/reya/signed)
(resolved in `Cargo.lock`, zed @ `504a7f2cf25b817cda3998cab93473adef15f93c`).
[signed](https://git.reya.info/reya/signed)
is the first downstream consumer; its screens drive the order.
## Next
- [ ] **Field wrapper** (M9) — label / description / error around any control;
the settings dialog.
- [ ] **Status dot** (M10) — sync-drift beads on rows.
- [x] API sketch
- [x] Implementation (theme-baked, motion inline per AGENTS.md)
- [x] Tests
@@ -18,17 +18,15 @@ is the first downstream consumer; its screens drive the order.
## Queue — to follow
- [ ] **Tag** (M10) — removable server and relay entries.
- [ ] **Status dot** (M11) — sync-drift beads on rows.
- [ ] **Combobox** (M12) — type-to-filter pickers; adopt gpuikit's
- [ ] **Combobox** (M11) — type-to-filter pickers; adopt gpuikit's
`on_create` / `keep_unmatched` blur modes.
- [ ] **Command palette** (M13) — filtered actions; the matcher stays
- [ ] **Command palette** (M12) — filtered actions; the matcher stays
caller-owned.
- [ ] **VirtualList** (M14, `data`) — thin `uniform_list` binding for commit
- [ ] **VirtualList** (M13, `data`) — thin `uniform_list` binding for commit
histories and the inbox.
- [ ] **Code view** (M15, opens `crates/editor`) — tree-sitter highlighting.
- [ ] **Diff view** (M16, `editor`).
- [ ] **Markdown view** (M17, `editor`) — only if a consumer confirms.
- [ ] **Code view** (M14, opens `crates/editor`) — tree-sitter highlighting.
- [ ] **Diff view** (M15, `editor`).
- [ ] **Markdown view** (M16, `editor`) — only if a consumer confirms.
- [ ] **Pickers** — Calendar / DatePicker, TimeField, ColorPicker (decide at
unit time).
- [ ] **Layout follow-ups** — persistence, pane zoom, bottom dock,
@@ -62,6 +60,10 @@ is the first downstream consumer; its screens drive the order.
- [x] ScrollArea, Popover, Menu, Tooltip, Dialog / AlertDialog, Toast,
Alert + alerts stack
- [x] Select, Segmented, ContextMenu, EmptyState, Badge
- [x] Field — label / description / error around any control, block and
settings-row variants
- [x] Status dot — colored state bead, Badge's variant vocabulary, optional
screen-reader label
### data (`crates/data`)