import { ColorIcon, UnitsIcon, ASCIIIcon, MediaIcon, FaviconIcon } from '@/components/AppIcons'; export interface Tool { /** Short display name (e.g. "Color") */ shortTitle: string; /** Full display name (e.g. "Color Manipulation") */ title: string; /** Sidebar / nav label (may differ from title) */ navTitle: string; /** Route path, e.g. '/color' */ href: string; /** One-liner shown in page header */ description: string; /** Longer description for the landing-page card */ summary: string; /** Icon component */ icon: React.ElementType; /** Tailwind gradient utility class for the landing card */ gradient: string; /** Hex accent color for the landing card */ accentColor: string; /** Badge labels for the landing card */ badges: string[]; } export const tools: Tool[] = [ { shortTitle: 'Color', title: 'Color Manipulation', navTitle: 'Color Manipulation', href: '/color', description: 'Interactive color manipulation and analysis tool', summary: 'Modern color manipulation toolkit with palette generation, accessibility testing, and format conversion. Supports hex, RGB, HSL, Lab, and more.', icon: ColorIcon, gradient: 'gradient-indigo-purple', accentColor: '#a855f7', badges: ['Open Source', 'WCAG', 'Free'], }, { shortTitle: 'Units', title: 'Units Converter', navTitle: 'Units Converter', href: '/units', description: 'Smart unit converter with 187 units across 23 categories', summary: 'Smart unit converter with 187 units across 23 categories. Real-time bidirectional conversion with fuzzy search.', icon: UnitsIcon, gradient: 'gradient-cyan-purple', accentColor: '#2dd4bf', badges: ['Open Source', 'Real-time', 'Free'], }, { shortTitle: 'ASCII', title: 'ASCII Art Generator', navTitle: 'ASCII Art', href: '/ascii', description: 'ASCII Art Text Generator with 373 Fonts', summary: 'ASCII art text generator with 373 fonts. Create stunning text banners, terminal art, and retro designs with live preview and multiple export formats.', icon: ASCIIIcon, gradient: 'gradient-yellow-amber', accentColor: '#eab308', badges: ['Open Source', 'ASCII Art', 'Free'], }, { shortTitle: 'Media', title: 'Media Converter', navTitle: 'Media Converter', href: '/media', description: 'Professional browser-based media conversion for video, audio, and images', summary: 'Modern browser-based file converter powered by WebAssembly. Convert videos, images, and audio locally without server uploads. Privacy-first with no file size limits.', icon: MediaIcon, gradient: 'gradient-green-teal', accentColor: '#10b981', badges: ['Open Source', 'Converter', 'Free'], }, { shortTitle: 'Favicon', title: 'Favicon Generator', navTitle: 'Favicon Generator', href: '/favicon', description: 'Create a complete set of icons for your website including PWA manifest and HTML code.', summary: 'Generate a complete set of favicons for your website. Includes PWA manifest and HTML embed code. All processing happens locally in your browser.', icon: FaviconIcon, gradient: 'gradient-blue-cyan', accentColor: '#3b82f6', badges: ['Open Source', 'Generator', 'Free'], }, ]; /** Look up a tool by its href path */ export function getToolByHref(href: string): Tool | undefined { return tools.find((t) => t.href === href); }