feat(now-playing): mount real waveform visualizer in NowPlaying card (mode C) + Fill container-sizing mode
Replace the 20 synthetic bars with a contained WaveformVisualizer driven by the live player, pointed at the current track; add a Fill mode (CSS-only, defaults off) sizing the canvas to its container; place the lava-lamp icon to popover on the card.
This commit is contained in:
@@ -73,6 +73,17 @@ public partial class WaveformVisualizer : ComponentBase, IAsyncDisposable
|
||||
/// </summary>
|
||||
[Parameter] public double PlaybackPosition { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Container-sizing mode (phase-12 §6c). Default <c>false</c> keeps the full-viewport mount the
|
||||
/// engine has always used (fixed, inset 0, clipped above the player bar) — Mix's mode-A full-bleed
|
||||
/// and the ambient mode-B mounts are unchanged. Set <c>true</c> for a contained mount (mode C, the
|
||||
/// NowPlaying card): the canvas fills its nearest positioned ancestor instead of the viewport, with
|
||||
/// no footer clip. This is a CSS/layout toggle only — the renderer already sizes the backing store to
|
||||
/// the canvas's own box (a ResizeObserver on the canvas, never <c>window</c>), so the JS module is
|
||||
/// identical in both modes; <c>Fill</c> only changes which box that canvas occupies.
|
||||
/// </summary>
|
||||
[Parameter] public bool Fill { get; set; }
|
||||
|
||||
// Bridge-level diagnostics. Mirrors the JS-side DEBUG flag in WaveformVisualizer.ts: when true the
|
||||
// datum-fetch / subscription / playback-coupling seams log to the browser console (prefixed
|
||||
// `[WaveformVisualizer]`, same as the JS logs so the two interleave into one timeline). These pinpoint
|
||||
|
||||
Reference in New Issue
Block a user