'use client' import { motion } from 'framer-motion' const nodes = [ // Halbkreis-Layout: äußerer Ring (Timeline) + innere Knoten // 1970s-80s (oberer linker Bogen) { id: 'fortran', label: 'Fortran IV', x: 15, y: 25, era: '1976' }, { id: 'pc', label: 'PC/DOS', x: 28, y: 18, era: '1984' }, { id: 'c', label: 'C', x: 42, y: 15, era: '1986' }, // 1990s (oberer rechter Bogen) { id: 'unix', label: 'Unix', x: 70, y: 28, era: '1990' }, { id: 'linux', label: 'Linux', x: 78, y: 42, era: '1992' }, { id: 'web', label: 'WWW', x: 82, y: 58, era: '1995' }, // 2000s-2020s (unterer Bereich, nach links zurück) { id: 'server', label: 'Server', x: 65, y: 75, era: '2000er' }, { id: 'python', label: 'Python', x: 45, y: 82, era: '2000er' }, { id: 'ai', label: 'KI', x: 18, y: 68, era: '2022' }, // Innere Knoten (nahe der Mitte) { id: 'asm', label: '68K ASM', x: 52, y: 35, era: '1986' }, { id: 'rust', label: 'Rust', x: 38, y: 60, era: '2022' }, ] const connections = [ // Hauptfluss der Timeline (äußerer Ring) ['fortran', 'pc'], ['pc', 'c'], ['c', 'unix'], ['unix', 'linux'], ['linux', 'web'], ['web', 'server'], ['server', 'python'], ['python', 'ai'], // Innere Verbindungen ['c', 'asm'], // C → 68K ASM (innen) ['python', 'rust'], // Python → Rust (innen) ] export function SystemDiagram() { const getNodePosition = (id: string) => { const node = nodes.find(n => n.id === id) return node ? { x: node.x, y: node.y } : { x: 0, y: 0 } } return (
{/* SVG for connections */} {connections.map(([from, to], index) => { const start = getNodePosition(from) const end = getNodePosition(to) return ( ) })} {/* Nodes */} {nodes.map((node, index) => (
{/* Node circle */}
{/* Label */}
{node.label}
{/* Era tooltip */}
{node.era}
))} {/* Decorative elements */}
{/* Corner accents */}
) }