import React, { useMemo } from 'react'; export type Agent = { id: string; name: string; color: string; // tailwind gradient colors emoji: string; }; interface AgentPanelProps { agents: Agent[]; activeAgentId: string; onChangeAgent: (id: string) => void; } const AgentPanel: React.FC = ({ agents, activeAgentId, onChangeAgent }) => { const active = useMemo(() => agents.find(a => a.id === activeAgentId) || agents[0], [agents, activeAgentId]); // 8 diverse agents for the 3D carousel const carouselAgents = useMemo(() => [ { id: 'hr', name: 'HR Command', emoji: '👥', color: 'from-luxury-gold/30 to-brass/30' }, { id: 'finance', name: 'Finance Sage', emoji: '💰', color: 'from-bronze/30 to-luxury-gold/30' }, { id: 'project', name: 'Project Sensei', emoji: '📊', color: 'from-brass/30 to-bronze/30' }, { id: 'marketing', name: 'Marketing Genius', emoji: '🎯', color: 'from-luxury-gold/30 to-cream/30' }, { id: 'analytics', name: 'Data Wizard', emoji: '📈', color: 'from-bronze/30 to-brass/30' }, { id: 'security', name: 'Security Guard', emoji: '🛡️', color: 'from-deep-forest/40 to-luxury-gold/30' }, { id: 'support', name: 'Support Hero', emoji: '🎧', color: 'from-brass/30 to-rich-brown/30' }, { id: 'research', name: 'Research Bot', emoji: '🔍', color: 'from-luxury-gold/30 to-bronze/30' } ], []); return (
{/* Removed heading & static active name per user request */}
{/* Creative Orbital Agent Display */}
{/* Central Hub */}
{/* Outer orbital ring */}
{/* Orbital path indicator */}
{/* Rotating agents on the orbit */} {carouselAgents.map((agent, index) => { const angle = (index * 360) / carouselAgents.length; const isActive = agent.id === activeAgentId; const radian = (angle * Math.PI) / 180; const radius = 130; const x = Math.cos(radian) * radius; const y = Math.sin(radian) * radius; return (
{/* Tooltip positioned outside rotating container */}
{agent.name}
); })}
{/* Central Control Hub */}
🤖
HUB
{/* Removed pulsing rings for a calmer static display */}
{/* Removed floating particle animations */}
); }; export default AgentPanel;