// 菜单图标集合 - 使用 @tabler/icons-vue
import type { Component } from 'vue';
import {
  IconDashboard, IconHome, IconSettings, IconUser, IconUsers, IconUserCircle,
  IconBuilding, IconFileText, IconCoin, IconChartBar, IconChartPie, IconList,
  IconShield, IconWorld, IconLanguage, IconHelp, IconInfoCircle, IconFolder,
  IconDatabase, IconMenu, IconCircle, IconSearch, IconFolderOff,
  IconAlertTriangle,
  // Business & Finance
  Icon2fa, IconAbacus, IconAccessPoint, IconActivity, IconAd, IconAdjustments,
  IconAlarm, IconAlertOctagon, IconAnalyze, IconAward, IconBarcode, IconBuildingBank,
  IconCalculator, IconCalendar, IconCash, IconChartInfographic, IconCreditCard,
  // Communication & Social
  IconMail, IconMessage, IconMessages, IconPhone, IconShare, IconSocial,
  IconBrandFacebook, IconBrandTwitter, IconBrandLinkedin, IconBrandInstagram,
  IconBrandWhatsapp, IconBrandTelegram, IconBrandSkype, IconBrandZoom,
  // Development & Technology
  IconCode, IconBraces, IconBug, IconDeviceDesktop,
  IconDeviceLaptop, IconDeviceMobile, IconDeviceTablet, IconGitBranch, IconTerminal,
  IconServer, IconWifi, IconBrandGithub, IconBrandVscode, IconBrandDocker,
  IconCloud,
  // Documents & Files
  IconFile, IconFiles, IconFileZip, IconFile3d,
  IconFileDownload, IconFileUpload, IconFolderPlus, IconBook,
  IconBooks, IconBookmark, IconClipboard, IconNotes, IconPrinter,
  // Interface Elements
  IconCheckbox, IconForms, IconLayout,
  IconMenu2, IconRadio, IconSelect, IconSwitch, IconTable,
  IconToggleLeft, IconToggleRight, IconWindowMaximize,
  // Media & Entertainment
  IconCamera, IconPhoto, IconVideo, IconMusic, IconPlayerPlay, IconPlayerPause,
  IconPlayerStop, IconMovie, IconMicrophone, IconVolume, IconHeadphones,
  IconBrush, IconPalette, IconPencil, IconPaint, IconColorPicker,
  // Navigation & Maps
  IconMap, IconMapPin, IconCompass, IconDirection, IconGps, IconLocation,
  IconNavigation, IconRoute, IconRoad, IconTrain, IconPlane, IconCar,
  IconBike, IconWalk, IconRun, IconSwimming,
  // Shopping & E-commerce
  IconShoppingCart, IconShoppingBag, IconBasket, IconGift, IconDiscount,
  IconTag, IconTags, IconReceipt, IconTruck, IconPackage, IconBox,
  // Weather & Nature
  IconSun, IconMoon, IconCloudRain, IconCloudSnow, IconWind,
  IconTemperature, IconUmbrella, IconPlant, IconTree, IconLeaf, IconFlower,
  // Additional UI Elements
  IconEdit, IconCopy, IconArrowBack, IconArrowForward, IconRefresh, IconRotate,
  IconZoomIn, IconZoomOut, IconFilter, IconSortAscending,
  IconSortDescending, IconColumns, IconLayoutGrid,
  // Security & Access
  IconLock, IconKey, IconPassword, IconFingerprint, IconShieldLock,
  IconCertificate, IconId, IconBadge,
  // Time & Date
  IconClock, IconCalendarEvent, IconCalendarTime, IconCalendarStats,
  IconHourglass, IconHistory, IconTimeline, IconAlarmPlus,
  // Health & Medical
  IconHeartbeat, IconStethoscope, IconPill, IconVirus, IconVaccine,
  IconEmergencyBed, IconAmbulance, IconMedicalCross, IconDna,
  // Analytics & Data
  IconChartArea, IconChartArrows, IconChartCandle,
  IconChartLine, IconPresentationAnalytics,
  IconReportAnalytics, IconTrendingUp, IconTrendingDown,
  IconSend, IconUpload, IconPlug, IconNotebook, IconTools, IconPoint,
} from '@tabler/icons-vue';

// 预选图标列表
export const COMMON_ICONS: Record<string, Component> = {
  // 常用图标
  Dashboard: IconDashboard,
  Home: IconHome,
  Settings: IconSettings,
  AccountCircle: IconUserCircle,
  People: IconUsers,
  Person: IconUser,
  Groups: IconUsers,
  Store: IconBuilding,
  Description: IconFileText,
  AttachMoney: IconCoin,
  BarChart: IconChartBar,
  Insights: IconChartPie,
  Security: IconShield,
  Public: IconWorld,
  Language: IconLanguage,
  Help: IconHelp,
  Folder: IconFolder,
  Storage: IconDatabase,
  Menu: IconMenu,
  Link: IconCircle,
  Search: IconSearch,
  List: IconList,
  Building: IconBuilding,
  World: IconWorld,
  Coin: IconCoin,
  Users: IconUsers,
  // Business & Finance
  TwoFactor: Icon2fa,
  Abacus: IconAbacus,
  AccessPoint: IconAccessPoint,
  Activity: IconActivity,
  Advertisement: IconAd,
  Adjustments: IconAdjustments,
  Alarm: IconAlarm,
  AlertOctagon: IconAlertOctagon,
  Analyze: IconAnalyze,
  Award: IconAward,
  Barcode: IconBarcode,
  Bank: IconBuildingBank,
  Calculator: IconCalculator,
  Calendar: IconCalendar,
  Cash: IconCash,
  CreditCard: IconCreditCard,
  // Communication & Social
  Mail: IconMail,
  Message: IconMessage,
  Messages: IconMessages,
  Phone: IconPhone,
  Share: IconShare,
  Social: IconSocial,
  Facebook: IconBrandFacebook,
  Twitter: IconBrandTwitter,
  LinkedIn: IconBrandLinkedin,
  Instagram: IconBrandInstagram,
  WhatsApp: IconBrandWhatsapp,
  Telegram: IconBrandTelegram,
  Skype: IconBrandSkype,
  Zoom: IconBrandZoom,
  // Development & Technology
  Code: IconCode,
  Braces: IconBraces,
  Bug: IconBug,
  Cloud: IconCloud,
  Desktop: IconDeviceDesktop,
  Laptop: IconDeviceLaptop,
  Mobile: IconDeviceMobile,
  Tablet: IconDeviceTablet,
  Git: IconGitBranch,
  Terminal: IconTerminal,
  Server: IconServer,
  Wifi: IconWifi,
  Github: IconBrandGithub,
  VSCode: IconBrandVscode,
  Docker: IconBrandDocker,
  // Documents & Files
  File: IconFile,
  Files: IconFiles,
  FileZip: IconFileZip,
  FilePdf: IconFile3d,
  FileDownload: IconFileDownload,
  FileUpload: IconFileUpload,
  FolderPlus: IconFolderPlus,
  Book: IconBook,
  Books: IconBooks,
  Bookmark: IconBookmark,
  Clipboard: IconClipboard,
  Notes: IconNotes,
  Printer: IconPrinter,
  // Interface Elements
  Checkbox: IconCheckbox,
  Forms: IconForms,
  Layout: IconLayout,
  Menu2: IconMenu2,
  Radio: IconRadio,
  Select: IconSelect,
  Switch: IconSwitch,
  Table: IconTable,
  ToggleLeft: IconToggleLeft,
  ToggleRight: IconToggleRight,
  WindowMaximize: IconWindowMaximize,
  // Media & Entertainment
  Camera: IconCamera,
  Photo: IconPhoto,
  Video: IconVideo,
  Music: IconMusic,
  Play: IconPlayerPlay,
  Pause: IconPlayerPause,
  Stop: IconPlayerStop,
  Movie: IconMovie,
  Microphone: IconMicrophone,
  Volume: IconVolume,
  Headphones: IconHeadphones,
  Brush: IconBrush,
  Palette: IconPalette,
  Pencil: IconPencil,
  Paint: IconPaint,
  ColorPicker: IconColorPicker,
  // Navigation & Maps
  Map: IconMap,
  MapPin: IconMapPin,
  Compass: IconCompass,
  Direction: IconDirection,
  GPS: IconGps,
  Location: IconLocation,
  Navigation: IconNavigation,
  Route: IconRoute,
  Road: IconRoad,
  Train: IconTrain,
  Plane: IconPlane,
  Car: IconCar,
  Bike: IconBike,
  Walk: IconWalk,
  Run: IconRun,
  Swimming: IconSwimming,
  // Shopping & E-commerce
  ShoppingCart: IconShoppingCart,
  ShoppingBag: IconShoppingBag,
  Basket: IconBasket,
  Gift: IconGift,
  Discount: IconDiscount,
  Tag: IconTag,
  Tags: IconTags,
  Receipt: IconReceipt,
  Truck: IconTruck,
  Package: IconPackage,
  Box: IconBox,
  // Weather & Nature
  Sun: IconSun,
  Moon: IconMoon,
  CloudRain: IconCloudRain,
  CloudSnow: IconCloudSnow,
  Wind: IconWind,
  Temperature: IconTemperature,
  Umbrella: IconUmbrella,
  Plant: IconPlant,
  Tree: IconTree,
  Leaf: IconLeaf,
  Flower: IconFlower,
  // Additional UI Elements
  Edit: IconEdit,
  Copy: IconCopy,
  Undo: IconArrowBack,
  Redo: IconArrowForward,
  Refresh: IconRefresh,
  Rotate: IconRotate,
  ZoomIn: IconZoomIn,
  ZoomOut: IconZoomOut,
  Filter: IconFilter,
  Sort: IconSortAscending,
  SortAscending: IconSortAscending,
  SortDescending: IconSortDescending,
  Columns: IconColumns,
  Grid: IconLayoutGrid,
  // Security & Access
  Lock: IconLock,
  Key: IconKey,
  Password: IconPassword,
  Fingerprint: IconFingerprint,
  ShieldLock: IconShieldLock,
  Certificate: IconCertificate,
  ID: IconId,
  Badge: IconBadge,
  // Time & Date
  Clock: IconClock,
  CalendarEvent: IconCalendarEvent,
  CalendarTime: IconCalendarTime,
  CalendarStats: IconCalendarStats,
  Hourglass: IconHourglass,
  History: IconHistory,
  Timeline: IconTimeline,
  AlarmPlus: IconAlarmPlus,
  // Health & Medical
  Heartbeat: IconHeartbeat,
  Stethoscope: IconStethoscope,
  Pill: IconPill,
  Virus: IconVirus,
  Vaccine: IconVaccine,
  EmergencyBed: IconEmergencyBed,
  Ambulance: IconAmbulance,
  MedicalCross: IconMedicalCross,
  DNA: IconDna,
  // Analytics & Data
  ChartArea: IconChartArea,
  ChartArrows: IconChartArrows,
  ChartCandle: IconChartCandle,
  ChartInfographic: IconChartInfographic,
  ChartLine: IconChartLine,
  PresentationAnalytics: IconPresentationAnalytics,
  ReportAnalytics: IconReportAnalytics,
  TrendingUp: IconTrendingUp,
  TrendingDown: IconTrendingDown,
  Send: IconSend,
  InfoCircle: IconInfoCircle,
  Upload: IconUpload,
  Plug: IconPlug,
  Notebook: IconNotebook,
  Tools: IconTools,
  Point: IconPoint,
};

// 导出图标名称列表
export const iconNames = Object.keys(COMMON_ICONS);

// 导出类型
export type IconName = keyof typeof COMMON_ICONS;

// 获取图标组件
export const getIconComponent = (iconName: string) => {
  return COMMON_ICONS[iconName];
};
