3.6 KiB
3.6 KiB
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; the gpui pin lives in the workspace Cargo.toml
(zed @ ec86047d67acd6fddd81392f44ed6ebcc6e7f531). 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. ReplacesTab::busy's placeholder ring; land before signed wires repo loading into dock tabs.- API sketch
- Implementation (theme-baked, motion inline per AGENTS.md)
- Tests
- 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_unmatchedblur modes. - Command palette (M13) — filtered actions; the matcher stays caller-owned.
- VirtualList (M14,
data) — thinuniform_listbinding 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)
- Theme engine — resolve overlay chain, OKLCH accent ramps, presets,
per-platform elevation stacks,
titlebar_height, size table (Sizable) - Platform sources — macOS (NSColor), Windows 11 (UISettings), GNOME (portal), KDE (kdeglobals), Omarchy (colors.toml), neutral fallback; live watchers for each
icons (crates/icons)
IconRole+ bundled Lucide fallback, Segoe Fluent codepoints (Windows), freedesktop theme walker (Linux/Omarchy)
core (crates/core)
- Button, Checkbox, Switch, Radio + RadioGroup, Toggle, Link, Slider, Progress, Avatar (image + seeded pixel-art fallback)
- Input — single-line, password with reveal, multiline, undo/redo, actions + key context, caret blink
- ScrollArea, Popover, Menu, Tooltip, Dialog / AlertDialog, Toast, Alert + alerts stack
- Select, Segmented, ContextMenu, EmptyState, Badge
data (crates/data)
- List, Tree, Tabs (underline default + signed pill), Sidebar (scrolls internally)
layout (crates/layout)
- ResizeHandle
- Shell — left/right sidebar regions + center, application-owned
LayoutState - Window frame — client-side decorations under
Decorations::Client - Dock — pane tree, panel registry, tab context menus
- Drag-to-split —
PanelDragpayload, edge + center drop zones - Titlebar + window controls — app-owned window dragging, per-platform
buttons,
Theme::titlebar_height - Sidebar auto-open —
PanelDescriptor::right_sidebar+DockSidebar
gallery (examples/gallery)
- Component browser — the shell with the catalog in its sidebar, every element a dock panel