fix: previews follow the app volume; volume bar fill always accent

The preview backend never received a volume — clips played at the crate
default (0.7) regardless of the slider, even muted. The session now sets
the preview volume from the app store (mute → 0) before the first load and
mirrors it live while the modal is open; the debug overlay's PREVIEW row
exposes the backend's resting volume as proof.

The player-bar volume (and fallback seek) fill is now always the accent
color — matching the waveform scrubber's played region — stepping up to
the hover shade on hover instead of white-until-hover.

Also syncs package-lock to the soulstream name + alpha version.
This commit is contained in:
KeelrLeek committed 2026-07-23 16:25:42 -05:00
1 parent 793f78370e
commit 691fdcdc9a
10 files changed
+63 -10

No files matched your search

+9
View File
@@ -18,6 +18,7 @@
previewCommands,
closePreview,
} from "../lib/preview/previewSession.svelte.js";
import { player } from "../lib/state.svelte.js";
import {
playableManifestIndices,
playableCursor,
@@ -25,6 +26,14 @@
} from "../lib/preview/session.js";
import { accentFromImage } from "../lib/color.js";
// Preview audio follows the APP volume — mute means silent previews
// too. Mirrored live while the modal is open (the session also sets it
// once at open, before the first load).
$effect(() => {
if (!previewUi.open) return;
previewCommands.setVolume(player.muted ? 0 : player.volume);
});
const st = $derived(previewUi.snapshot);
const manifest = $derived(st?.manifest ?? null);
const items = $derived(manifest?.items ?? []);