Files
nxta-landing/src/components/ui/lucide-icon.tsx
2026-06-07 18:28:58 +03:30

65 lines
1.1 KiB
TypeScript

import {
ArrowLeft,
BarChart3,
Bell,
BicepsFlexed,
Building2,
Check,
Cloud,
Dumbbell,
FileText,
Headset,
Leaf,
Mail,
MapPin,
Phone,
SportShoe,
Star,
ThumbsUp,
TrendingUp,
UserCircle,
Users,
Wallet,
type LucideIcon as LucideIconComponent,
} from "lucide-react"
import { cn } from "@/lib/utils"
export const landingIcons = {
arrowLeft: ArrowLeft,
mail: Mail,
phone: Phone,
mapPin: MapPin,
headset: Headset,
users: Users,
userCircle: UserCircle,
coach: Dumbbell,
biceps: BicepsFlexed,
sportShoe: SportShoe,
dumbbell: Dumbbell,
trendingUp: TrendingUp,
chart: BarChart3,
fileText: FileText,
leaf: Leaf,
wallet: Wallet,
bell: Bell,
cloud: Cloud,
building: Building2,
thumbsUp: ThumbsUp,
star: Star,
check: Check,
} as const satisfies Record<string, LucideIconComponent>
export type LandingIconName = keyof typeof landingIcons
type LucideIconProps = {
name: LandingIconName
className?: string
}
export function LucideIcon({ name, className }: LucideIconProps) {
const Icon = landingIcons[name] ?? Users
return <Icon className={cn("size-6 shrink-0", className)} aria-hidden />
}