feat(p12-w4): ambient visualizer slot on scaffold + popover controls on all detail hosts

Add optional Ambient slot to ReleaseDetailScaffold (full-bleed layer behind content; absent = no regression). Cut mounts it + popover; Session mounts the engine directly behind its hero; Mix swaps its inline knob-bar for the lava-lamp popover.
This commit is contained in:
daniel-c-harvey
2026-06-17 12:11:03 -04:00
parent 9009f2c8cf
commit 955182d6da
7 changed files with 87 additions and 32 deletions
@@ -51,6 +51,16 @@ public partial class ReleaseDetailScaffold : ComponentBase
/// <summary>Medium-specific hero visual (cover art, hero image, or waveform background).</summary>
[Parameter] public RenderFragment? Hero { get; set; }
/// <summary>
/// Optional full-bleed ambient layer rendered BEHIND the scaffold content (Phase 12 §3c/§3f mode B).
/// A host that wants a living environment behind hero+content — e.g. Cut supplying a
/// <c>WaveformVisualizer</c> — places it here. The mounted layer positions itself fixed/inset:0
/// (its own CSS), so the scaffold only promotes its content into a foreground stacking context above
/// it. Absent = today's plain background, no regression (Liskov). Mode A (Mix) and mode C (the
/// NowPlaying card) mount the engine without this slot — see §3f.
/// </summary>
[Parameter] public RenderFragment? Ambient { get; set; }
/// <summary>
/// Optional body region rendered below the meta block — the Cut album's multi-track listing.
/// Single-track media leave it null.