{/* Canvas area — vertically centered in remaining space */}
{/* Playback bar — stacked below canvas, never overlapping */}
setPlaying(p => !p)}
onReset={() => { setTime(0); }}
onSeek={(t) => setTime(t)}
onHover={(t) => setHoverTime(t)}
/>
);
}
// ── Mute button ─────────────────────────────────────────────────────────────
function MuteButton() {
const [muted, setMuted] = React.useState(() => !!window.__plurMuted);
const toggle = () => {
if (window.__plurToggleMute) window.__plurToggleMute();
setMuted(m => !m);
};
// Sync with global state
React.useEffect(() => {
const id = setInterval(() => {
if (window.__plurMuted !== muted) setMuted(!!window.__plurMuted);
}, 200);
return () => clearInterval(id);
}, [muted]);
return (