89 lines
3.6 KiB
Markdown
89 lines
3.6 KiB
Markdown
# gpui-native-kit — checklist
|
|
|
|
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)
|
|
is the first downstream consumer; its screens drive the order.
|
|
|
|
## Next
|
|
|
|
- [ ] **Spinner** (`core`) — the loading ring, indeterminate + determinate;
|
|
painted-ring and rotating-icon variants.
|
|
Replaces `Tab::busy`'s placeholder ring; land before signed wires repo
|
|
loading into dock tabs.
|
|
- [x] API sketch
|
|
- [x] Implementation (theme-baked, motion inline per AGENTS.md)
|
|
- [x] Tests
|
|
- [x] Gallery panel
|
|
- [ ] Review
|
|
|
|
## Queue — to follow
|
|
|
|
- [ ] **Field wrapper** (M9) — label / description / error around any control;
|
|
the settings dialog.
|
|
- [ ] **Tag** (M10) — removable server and relay entries.
|
|
- [ ] **Status dot** (M11) — sync-drift beads on rows.
|
|
- [ ] **Combobox** (M12) — type-to-filter pickers; adopt gpuikit's
|
|
`on_create` / `keep_unmatched` blur modes.
|
|
- [ ] **Command palette** (M13) — filtered actions; the matcher stays
|
|
caller-owned.
|
|
- [ ] **VirtualList** (M14, `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.
|
|
- [ ] **Pickers** — Calendar / DatePicker, TimeField, ColorPicker (decide at
|
|
unit time).
|
|
- [ ] **Layout follow-ups** — persistence, pane zoom, bottom dock,
|
|
collapse-to-edge; each waits for a real consumer.
|
|
- [ ] **Platform screenshot passes** — a Linux run (Omarchy / KDE / GNOME) and
|
|
the first Windows hardware build, side by side with macOS.
|
|
|
|
## Landed
|
|
|
|
### theme (`crates/theme`)
|
|
|
|
- [x] Theme engine — resolve overlay chain, OKLCH accent ramps, presets,
|
|
per-platform elevation stacks, `titlebar_height`, size table (`Sizable`)
|
|
- [x] Platform sources — macOS (NSColor), Windows 11 (UISettings), GNOME
|
|
(portal), KDE (kdeglobals), Omarchy (colors.toml), neutral fallback;
|
|
live watchers for each
|
|
|
|
### icons (`crates/icons`)
|
|
|
|
- [x] `IconRole` + bundled Lucide fallback, Segoe Fluent codepoints (Windows),
|
|
freedesktop theme walker (Linux/Omarchy)
|
|
|
|
### core (`crates/core`)
|
|
|
|
- [x] Button, Checkbox, Switch, Radio + RadioGroup, Toggle, Link, Slider,
|
|
Progress, Avatar (image + seeded pixel-art fallback)
|
|
- [x] Input — single-line, password with reveal, multiline, undo/redo, actions
|
|
+ key context, caret blink
|
|
- [x] ScrollArea, Popover, Menu, Tooltip, Dialog / AlertDialog, Toast,
|
|
Alert + alerts stack
|
|
- [x] Select, Segmented, ContextMenu, EmptyState, Badge
|
|
|
|
### data (`crates/data`)
|
|
|
|
- [x] List, Tree, Tabs (underline default + signed pill), Sidebar (scrolls
|
|
internally)
|
|
|
|
### layout (`crates/layout`)
|
|
|
|
- [x] ResizeHandle
|
|
- [x] Shell — left/right sidebar regions + center, application-owned
|
|
`LayoutState`
|
|
- [x] Window frame — client-side decorations under `Decorations::Client`
|
|
- [x] Dock — pane tree, panel registry, tab context menus
|
|
- [x] Drag-to-split — `PanelDrag` payload, edge + center drop zones
|
|
- [x] Titlebar + window controls — app-owned window dragging, per-platform
|
|
buttons, `Theme::titlebar_height`
|
|
- [x] Sidebar auto-open — `PanelDescriptor::right_sidebar` + `DockSidebar`
|
|
|
|
### gallery (`examples/gallery`)
|
|
|
|
- [x] Component browser — the shell with the catalog in its sidebar, every
|
|
element a dock panel
|