+ {/* Background layers - all rendered, opacity controlled by active state */}
+ {SELECTOR_OPTIONS.map((option) => (
+
+ ))}
+
+ {/* GIF layers - lazy loaded, centered with preserved aspect ratio */}
+ {SELECTOR_OPTIONS.map((option) => (
+
+ {loadedGifs.has(option) && DEMO_GIFS[option] && (
+
+
+
+ )}
+
+ ))}
+
+ {/* Selector pills at bottom */}
+
+ {SELECTOR_OPTIONS.map((option) => (
+ setActiveOption(option)}
+ />
+ ))}
-
+
+ );
+}
+
+interface SelectorPillProps {
+ label: string;
+ active?: boolean;
+ onClick?: () => void;
+}
+
+function SelectorPill({ label, active = false, onClick }: SelectorPillProps) {
+ return (
+