UI polish: sidebar nav, Companies/Issues layout, assignee in issue defaults

- Sidebar: add Approvals and Companies links, remove temporary Design Guide link
- Companies: replace inline create form with 'New Company' button (opens onboarding)
- Issues: move filter tabs inline with page heading (consistent with Agents)
- DialogContext: add assigneeAgentId to NewIssueDefaults
- NewIssueDialog: wire assigneeAgentId default (pre-select assignee when opening
  from agent detail page)
- CommandPalette: minor cleanup
- App: add DesignGuide route (dev-only, no sidebar link)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Forgotten
2026-02-17 20:07:49 -06:00
parent 51780d1421
commit c0ae9423f0
7 changed files with 31 additions and 83 deletions

View File

@@ -89,22 +89,23 @@ export function Issues() {
return (
<div className="space-y-4">
<div className="flex items-center justify-between">
<h2 className="text-lg font-semibold">Issues</h2>
<div className="flex items-center gap-4">
<h2 className="text-lg font-semibold">Issues</h2>
<Tabs value={tab} onValueChange={(v) => setTab(v as TabFilter)}>
<TabsList>
<TabsTrigger value="all">All Issues</TabsTrigger>
<TabsTrigger value="active">Active</TabsTrigger>
<TabsTrigger value="backlog">Backlog</TabsTrigger>
<TabsTrigger value="done">Done</TabsTrigger>
</TabsList>
</Tabs>
</div>
<Button size="sm" onClick={() => openNewIssue()}>
<Plus className="h-4 w-4 mr-1" />
New Issue
</Button>
</div>
<Tabs value={tab} onValueChange={(v) => setTab(v as TabFilter)}>
<TabsList>
<TabsTrigger value="all">All Issues</TabsTrigger>
<TabsTrigger value="active">Active</TabsTrigger>
<TabsTrigger value="backlog">Backlog</TabsTrigger>
<TabsTrigger value="done">Done</TabsTrigger>
</TabsList>
</Tabs>
{isLoading && <p className="text-sm text-muted-foreground">Loading...</p>}
{error && <p className="text-sm text-destructive">{error.message}</p>}