27 lines
872 B
TypeScript
27 lines
872 B
TypeScript
import {
|
|
ClipboardList, ChefHat, Banknote, BedDouble, TrendingUp, Tag,
|
|
LayoutGrid, Users, Activity, Home, ScrollText, RefreshCw,
|
|
ArrowUpCircle, Wifi, Terminal, Settings, Building2, CalendarClock,
|
|
} 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,
|
|
}
|
|
|
|
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} />
|
|
}
|