aethex-forge/client/components/ai/Icons.tsx
sirpiglr 834c4bd56e Add AI chat assistant and backend API for AI interactions
Introduces new API endpoints for AI chat and title generation, integrates an AI chat component into the layout, and updates client-side services to communicate with the new backend AI endpoints.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 9203795e-937a-4306-b81d-b4d5c78c240e
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 64961019-b4a5-48d8-97fc-c4980d29f3c4
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/7c94b7a0-29c7-4f2e-94ef-44b2153872b7/9203795e-937a-4306-b81d-b4d5c78c240e/fhRML7y
Replit-Helium-Checkpoint-Created: true
2025-12-06 03:58:12 +00:00

64 lines
1.7 KiB
TypeScript

import React from 'react';
import {
Shield,
Hammer,
Building2,
BookOpen,
BarChart3,
Music,
ScrollText,
Waves,
DollarSign,
Brain,
Gamepad2,
FlaskConical,
User,
Send,
Trash2,
X,
MessageSquare,
ChevronDown,
Sparkles
} from 'lucide-react';
import type { PersonaIcon } from '@/lib/ai/types';
interface IconProps {
className?: string;
}
export const AethexLogo: React.FC<IconProps> = ({ className }) => (
<svg className={className} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 2L2 7L12 12L22 7L12 2Z" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
<path d="M2 17L12 22L22 17" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
<path d="M2 12L12 17L22 12" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
</svg>
);
export const getPersonaIcon = (iconName: PersonaIcon): React.FC<IconProps> => {
switch (iconName) {
case 'logo': return AethexLogo;
case 'shield': return Shield;
case 'hammer': return Hammer;
case 'building': return Building2;
case 'book': return BookOpen;
case 'chart': return BarChart3;
case 'music': return Music;
case 'scroll': return ScrollText;
case 'wave': return Waves;
case 'money': return DollarSign;
case 'brain': return Brain;
case 'gamepad': return Gamepad2;
case 'flask': return FlaskConical;
default: return AethexLogo;
}
};
export {
User as UserIcon,
Send as SendIcon,
Trash2 as TrashIcon,
X as CloseIcon,
MessageSquare as ChatIcon,
ChevronDown as ChevronDownIcon,
Sparkles as SparklesIcon
};