'use client'; import * as React from 'react'; import { motion, useReducedMotion } from 'framer-motion'; type Props = { className?: string; // e.g. "w-full h-64" bg?: string; // defaults to white }; // Palette (only these) const ACCENT = '#00b8db'; const STROKE = '#111827'; const GRAY = '#9CA3AF'; const GRAY_LT = '#E5E7EB'; function Magnifier({ x = 0, y = 0, flip = false, delay = 0, duration = 3, }: { x?: number; y?: number; flip?: boolean; // rotate handle direction delay?: number; duration?: number; }) { const prefersReduced = useReducedMotion(); return ( {/* glass */} {/* subtle scanning pulse inside the glass */} {/* handle */} ); } function ServerBox({ x, y, w = 88, h = 50, delay = 0, accentPulse = false, }: { x: number; y: number; w?: number; h?: number; delay?: number; accentPulse?: boolean; }) { const prefersReduced = useReducedMotion(); return ( {/* outer box */} {/* top bar */} {/* activity line */} {/* “detected” indicator */} ); } export default function ProxyDetection({ className, bg = '#ffffff' }: Props) { // Canvas const W = 900; const H = 180; // Layout: a row of proxy servers const rowY = H / 2; const xs = [180, 320, 460, 600, 740]; // Sequence timings so boxes light up as magnifier passes const delays = [0.8, 0.6, 0.4, 0.2, 0.0]; return ( ); }