"use client"; import { motion, useReducedMotion } from "framer-motion"; import clsx from "clsx"; type Props = { className?: string; accent?: string; bg?: string; }; const W = 760; const H = 420; const Node = ({ x, y, r = 12, accent = "#00b8db", pulse = false, delay = 0, type = "dot", }: { x: number; y: number; r?: number; accent?: string; pulse?: boolean; delay?: number; type?: "dot" | "text" | "image" | "audio"; }) => { const prefers = useReducedMotion(); return ( <> {/* faint ring */} {/* inner icon shape to represent modality */} {type === "text" && ( )} {type === "image" && ( )} {type === "audio" && ( )} {/* standard pulsing circle fallback */} {type === "dot" && ( )} ); }; // inward pulse particle const Packet = ({ path, delay = 0, accent = "#00b8db", duration = 1.8, }: { path: string; delay?: number; accent?: string; duration?: number; }) => { const prefers = useReducedMotion(); return ( ); }; export default function Herodb({ className, accent = "#00b8db", bg = "#0a0a0a", }: Props) { const center = { x: 380, y: 210 }; const shardNodes = [ { x: 160, y: 100, type: "text" }, { x: 580, y: 120, type: "image" }, { x: 620, y: 280, type: "audio" }, { x: 420, y: 330, type: "text" }, { x: 240, y: 320, type: "image" }, { x: 150, y: 220, type: "dot" }, ]; const paths = shardNodes.map( (n) => `M ${n.x} ${n.y} Q ${(n.x + center.x) / 2} ${(n.y + center.y) / 2 - 40} ${center.x} ${center.y}` ); return ( ); }