harshapitla/github-actions-analytics
0
1import React from "react";2import {3 LuBot,4 LuClipboardList,5 LuCloud,6 LuCode,7 LuDownload,8 LuFlame,9 LuFolderOpen,10 LuGraduationCap,11 LuInfo,12 LuChartLine,13 LuMessageSquare,14 LuPackage,15 LuChartPie,16 LuSparkles,17 LuStar,18 LuTarget,19 LuTrophy,20 LuUsers,21 LuWandSparkles,22 LuScissors,23 LuBeaker,24 LuCompass,25 LuTerminal,26 LuChartBar,27 LuClock,28 LuBuilding2,29 LuRefreshCw,30} from "react-icons/lu";31 32const ICON_MAP = {33 clipboard: LuClipboardList,34 dataset: LuClipboardList,35 cube: LuPackage,36 extensions: LuPackage,37 downloads: LuDownload,38 publishers: LuUsers,39 rating: LuStar,40 concentration: LuChartPie,41 building: LuBuilding2,42 flame: LuFlame,43 folder: LuFolderOpen,44 info: LuInfo,45 clock: LuClock,46 target: LuTarget,47 trophy: LuTrophy,48 bars: LuChartBar,49 chart: LuChartLine,50 chat: LuMessageSquare,51 bot: LuBot,52 cloud: LuCloud,53 academic: LuGraduationCap,54 snippets: LuScissors,55 formatter: LuWandSparkles,56 lab: LuBeaker,57 compass: LuCompass,58 terminal: LuTerminal,59 sparkle: LuSparkles,60 code: LuCode,61 refresh: LuRefreshCw,62};63 64export default function Icon({65 name = "info",66 label,67 size = 18,68 className = "",69 color,70 ...rest71}) {72 const Component = ICON_MAP[name] || ICON_MAP.info;73 return (74 <Component75 size={size}76 color={color}77 className={`app-icon ${className}`.trim()}78 aria-label={label}79 role={label ? "img" : "presentation"}80 aria-hidden={label ? undefined : true}81 focusable="false"82 {...rest}83 />84 );85}86 