import {
  ClipboardList, ChefHat, Banknote, BedDouble, TrendingUp, Tag,
  LayoutGrid, Users, Activity, Home, ScrollText, RefreshCw,
  ArrowUpCircle, Wifi, Terminal, Settings, Building2, CalendarClock,
  Wrench, BarChart2, Monitor, History, Armchair,
} from 'lucide-react'
import type { LucideProps } from 'lucide-react'

type IconComponent = React.ComponentType<LucideProps>

const iconMap: Record<string, IconComponent> = {
  ClipboardList, ChefHat, Banknote, BedDouble, TrendingUp, Tag,
  LayoutGrid, Users, Activity, Home, ScrollText, RefreshCw,
  ArrowUpCircle, Wifi, Terminal, Settings, Building2, CalendarClock,
  Wrench, BarChart2, Monitor, History, Armchair,
}

interface Props {
  name: string
  size?: number
  color?: string
  strokeWidth?: number
}

export function AppIcon({ name, size = 20, color, strokeWidth = 1.75 }: Props) {
  const Icon = iconMap[name]
  if (!Icon) return null
  return <Icon size={size} color={color} strokeWidth={strokeWidth} />
}
