d2aa9d8ae2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
109 lines
1.8 KiB
TypeScript
109 lines
1.8 KiB
TypeScript
import {
|
||
Baby,
|
||
Banknote,
|
||
Book,
|
||
Briefcase,
|
||
Building,
|
||
Bus,
|
||
Car,
|
||
CircleEllipsis,
|
||
Coffee,
|
||
Coins,
|
||
CreditCard,
|
||
Droplet,
|
||
Dumbbell,
|
||
Film,
|
||
Flame,
|
||
Fuel,
|
||
Gamepad2,
|
||
Gift,
|
||
GraduationCap,
|
||
HeartPulse,
|
||
House,
|
||
Landmark,
|
||
Music,
|
||
PawPrint,
|
||
Percent,
|
||
PiggyBank,
|
||
Pill,
|
||
Plane,
|
||
Receipt,
|
||
Repeat,
|
||
Scissors,
|
||
Shirt,
|
||
ShoppingBasket,
|
||
ShoppingCart,
|
||
Smartphone,
|
||
Sofa,
|
||
Sparkles,
|
||
SprayCan,
|
||
Tag,
|
||
Train,
|
||
TrendingUp,
|
||
Undo2,
|
||
Utensils,
|
||
Wallet,
|
||
Wifi,
|
||
Wrench,
|
||
Zap,
|
||
type LucideIcon,
|
||
type LucideProps,
|
||
} from "lucide-react";
|
||
import type { IconKey } from "@/shared/appearance";
|
||
|
||
/** Saklanan ikon anahtarı → lucide bileşeni (shared/appearance.ts ICON_KEYS ile birebir). */
|
||
export const ICONS: Record<IconKey, LucideIcon> = {
|
||
wallet: Wallet,
|
||
banknote: Banknote,
|
||
landmark: Landmark,
|
||
"piggy-bank": PiggyBank,
|
||
"credit-card": CreditCard,
|
||
utensils: Utensils,
|
||
"shopping-cart": ShoppingCart,
|
||
"shopping-basket": ShoppingBasket,
|
||
receipt: Receipt,
|
||
zap: Zap,
|
||
droplet: Droplet,
|
||
flame: Flame,
|
||
wifi: Wifi,
|
||
smartphone: Smartphone,
|
||
house: House,
|
||
building: Building,
|
||
car: Car,
|
||
fuel: Fuel,
|
||
bus: Bus,
|
||
train: Train,
|
||
"heart-pulse": HeartPulse,
|
||
pill: Pill,
|
||
"graduation-cap": GraduationCap,
|
||
book: Book,
|
||
shirt: Shirt,
|
||
gamepad: Gamepad2,
|
||
film: Film,
|
||
music: Music,
|
||
coffee: Coffee,
|
||
plane: Plane,
|
||
gift: Gift,
|
||
baby: Baby,
|
||
"paw-print": PawPrint,
|
||
wrench: Wrench,
|
||
sofa: Sofa,
|
||
repeat: Repeat,
|
||
briefcase: Briefcase,
|
||
"trending-up": TrendingUp,
|
||
coins: Coins,
|
||
percent: Percent,
|
||
undo: Undo2,
|
||
sparkles: Sparkles,
|
||
"spray-can": SprayCan,
|
||
scissors: Scissors,
|
||
dumbbell: Dumbbell,
|
||
tag: Tag,
|
||
"circle-ellipsis": CircleEllipsis,
|
||
};
|
||
|
||
export function AppIcon({ name, ...props }: { name: IconKey } & LucideProps) {
|
||
const Icon = ICONS[name] ?? Tag;
|
||
return <Icon aria-hidden {...props} />;
|
||
}
|