feat: inline title editing, simplify right panel, polish input toolbar

- Add inline title editing in chat header (hover to reveal pencil icon,
  click to edit, Enter/Blur to save, Escape to cancel)
- Simplify right panel: remove Name section, rename header to "Files"
- Align top headers across all three columns (left/center/right)
- Remove folder picker from message input (project already set via sidebar)
- Change attachment icon from paperclip to plus sign
- Remove icon from mode selector, move model selector next to mode selector
- Fix FileTree search icon alignment and left padding consistency
- Add background to chat list delete button to prevent text overlap

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
7418andClaude Opus 4.6 committed 2026-02-13 15:23:36 +08:00
1 parent 5a57098ffd
commit ae8a905581
8 files changed
+187 -269

No files matched your search

+11 -9
View File
@@ -152,7 +152,7 @@ export function FileTree({ workingDirectory, onFileSelect, onFileAdd }: FileTree
return (
<div className="flex flex-col h-full min-h-0">
{/* Header */}
<div className="flex items-center gap-2 p-2 border-b border-border/30 shrink-0">
<div className="flex items-center gap-2 px-4 py-2 shrink-0">
<p className="min-w-0 flex-1 truncate text-[11px] text-muted-foreground" title={workingDirectory}>
{workingDirectory || 'No directory selected'}
</p>
@@ -169,14 +169,16 @@ export function FileTree({ workingDirectory, onFileSelect, onFileAdd }: FileTree
</div>
{/* Search */}
<div className="relative p-2 border-b border-border/30 shrink-0">
<HugeiconsIcon icon={Search01Icon} className="absolute left-4 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground" />
<Input
placeholder="Filter files..."
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
className="h-7 pl-7 text-xs"
/>
<div className="px-4 pb-2 shrink-0">
<div className="relative">
<HugeiconsIcon icon={Search01Icon} className="absolute left-2.5 top-1/2 h-3 w-3 -translate-y-1/2 text-muted-foreground pointer-events-none" />
<Input
placeholder="Filter files..."
value={searchQuery}
onChange={(e) => setSearchQuery(e.target.value)}
className="h-7 pl-7 text-xs"
/>
</div>
</div>
{/* Tree */}