feat(ui): shared ListPane primitive + misc polish

ListPane is a compound component (Header / TitleRow / Title / Actions /
Search / Scroll) that owns the relative wrapper, faded right divider
(50px top fade), top scroll mask, and absolute-positioned header used by
every list-detail tab. Wires up CapturesTab, StoryList, and EffectsList.
EffectsTab gets -mx-8 / pr-8 to match the edge-to-edge layout used
elsewhere.

Other changes:
- MCPPage: native <select> → shadcn <Select> for default voice and
  per-binding voice pickers
- Button outline variant: add hover:border-accent
- Drop hover:text-destructive from trailing delete buttons
  (HistoryTable, GpuAcceleration, GpuPage, EffectsChainEditor,
  EffectsDetail)
- HistoryTable empty state moved behind t('history.empty')
- StoryContent scroll padding pt-14 → pt-16
- backend health reports the captures dir
- landing CapturesMockup: "Send to" → "Export" with Download icon
- CHANGELOG: drop [Unreleased] personality section
This commit is contained in:
Jamie Pine
2026-04-24 17:23:14 -07:00
parent 736a661059
commit b97c565a45
21 changed files with 616 additions and 238 deletions
+3 -3
View File
@@ -9,8 +9,8 @@ import {
Copy,
FileAudio,
Mic,
Download,
Play,
Send,
Settings,
Sparkles,
Subtitles,
@@ -394,8 +394,8 @@ function DetailView({ capture }: { capture: Capture }) {
Re-refine
</div>
<div className="inline-flex items-center gap-2 h-9 px-3 rounded-full border border-input bg-background text-sm font-medium text-foreground whitespace-nowrap">
<Send className="h-3.5 w-3.5" />
Send to
<Download className="h-3.5 w-3.5" />
Export
</div>
</div>
</div>