Fix L6/L12: Select size=large variant, command palette scroll-into-view

L6: Select.tsx adds a `size` prop ('medium' | 'large'). When size='large',
    the select is 40px tall (matching Fluent size='large' Input/Button) with
    slightly larger padding and font. DownloadBar quality/format selects now
    use size='large' so they align with the row's large Input and buttons.

L12: CommandPalette keyboard navigation now scrolls the highlighted item into
     view on each ArrowUp/ArrowDown press. Uses a listRef + data-sel attribute
     so no DOM imperative tracking of individual buttons is needed.

typecheck + 242 tests + eslint green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-30 14:22:50 -04:00
parent 6a8452d6c3
commit b035a88873
4 changed files with 24 additions and 9 deletions
+2 -2
View File
@@ -386,7 +386,7 @@ token system + shared primitives (UI/SIMP — high value, larger effort) · i18n
- [ ] **L5 — Inline `style={{}}` vs makeStyles** (25× across 8 files; SettingsView 14×). Notably
Sidebar's active-nav inset shadow and DownloadOptionsForm's hint caption use inline styles
where a class exists elsewhere.
- [ ] **L6 — Control height mismatch.** `Select` is a fixed 32px sitting beside `size="large"`
- [x] **L6 — Control height mismatch.** `Select` is a fixed 32px sitting beside `size="large"`
(~40px) Input/Buttons in DownloadBar.
- [x] **L7 — `canceled` and `paused` share the 'warning' badge color** (QueueItem) — visually
ambiguous.
@@ -399,7 +399,7 @@ token system + shared primitives (UI/SIMP — high value, larger effort) · i18n
Consider a central constants module.
- [x] **L11 — "Queue (N)" overcounts.** DownloadsView's header count is `items.length` (includes
completed/error/canceled), not the active queue.
- [ ] **L12 — Command palette polish.** No scroll-into-view for keyboard selection in the 50vh
- [x] **L12 — Command palette polish.** No scroll-into-view for keyboard selection in the 50vh
list; `role="dialog"` without `aria-modal`/focus-trap; Esc handled only on the input.
- [x] **L13 — Destructive actions lack confirmation.** "Clear history", "Clear log", "Remove
source" are one-click — inconsistent with the careful confirm on backup import.