fix(playback): address review findings on the Hybrid player controls

- Wide dock overflow: chips and the side settings panel now need 960px of
  player width (ControlsLayout.roomy). Between 720px and 960px the dock
  stays wide but folds the chips into `tune` with state dots and opens
  settings as the bottom sheet. The control row's side columns are
  minmax(min-content, 1fr), so the transport shifts instead of the actions
  overlapping it or leaving the player; chip labels cap at 132px.
- Up next: no countdown once playback has ended (autoplay off schedules
  no switch).
- Up next card: a still that fails to load falls back to the label tile;
  a new URL gets its own attempt.
- Timeline segments are positioned absolutely at their time positions,
  so drawn boundaries match the linear seek input and hover label.
- Type fixes found by a strict type-check: the gap-fill list type, and a
  field initializer that read a constructor parameter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-09-26 23:40:55 +02:00
1 parent d0c1d49aee
commit ea25c739f5
17 files changed
+263 -50

No files matched your search

@@ -109,6 +109,8 @@ test('@web @playback settings panel opens from the speed chip and applies in pla
page,
}) => {
test.setTimeout(90_000);
// Chips and the side panel need a player of at least 960px.
await page.setViewportSize({ width: 1600, height: 1000 });
await serveClip(page);
await selectHtml5Player(page);
await importPlaylist(page);