diff --git a/services/web-ui/public/visuals.jsx b/services/web-ui/public/visuals.jsx
index 4a5f3dd..754d245 100644
--- a/services/web-ui/public/visuals.jsx
+++ b/services/web-ui/public/visuals.jsx
@@ -1,7 +1,5 @@
// visuals.jsx - reusable visual elements: thumbnails, waveforms, sparklines, filmstrips
-const { thumbGrad } = window.ZAMPP_DATA;
-
function AssetThumb({ asset, size = "md" }) {
const aspect = size === "tall" ? "9 / 16" : "16 / 9";
const seed = asset.seed || 1;
@@ -18,104 +16,20 @@ function AssetThumb({ asset, size = "md" }) {
}
return (
-
+
);
}
function FauxFrame({ seed }) {
- const shots = ["stage", "track", "interview", "aerial", "crowd", "trophy"];
- const shot = shots[seed % shots.length];
-
- return (
-
- );
+ return
;
}
function Waveform({ seed = 1, color = "var(--accent)", className = "" }) {
const bars = 60;
const pts = React.useMemo(() => {
return Array.from({ length: bars }).map((_, i) => {
- const x = i / bars;
const n = Math.sin(i * 0.7 + seed) * 0.5 + Math.sin(i * 2.1 + seed * 1.3) * 0.3 + Math.sin(i * 4.3 + seed * 0.7) * 0.2;
return Math.max(0.1, Math.min(1, 0.5 + n * 0.5));
});
@@ -131,21 +45,10 @@ function Waveform({ seed = 1, color = "var(--accent)", className = "" }) {
}
function LiveStrip({ seed = 1, count = 8 }) {
- const [tick, setTick] = React.useState(0);
- React.useEffect(() => {
- const i = setInterval(() => setTick(t => t + 1), 2000);
- return () => clearInterval(i);
- }, []);
return (
{Array.from({ length: count }).map((_, i) => (
-
-
-
+
))}