perf: batch sync DB lookups, fix calendar cache race, lazy-load IconPicker
- tasks/sync GET: batch Google/Outlook/Synology credential fetches with Promise.all instead of sequential awaits; move per-list Synology findMany outside the loop to eliminate N+1 - calendar/sync: replace fire-and-forget background refresh with 800ms Promise.race so fast refreshes return fresh data without blocking - Extract icon data to iconRegistry.ts; lazy-load IconPicker via next/dynamic so picker UI code is deferred until needed v1.78.0
This commit is contained in:
parent
6b292f8d07
commit
6e8ed34578
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "my-weekly-todo-list",
|
||||
"version": "1.77.6",
|
||||
"version": "1.78.0",
|
||||
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
||||
@ -82,9 +82,18 @@ export async function POST(request: NextRequest) {
|
||||
staleConnectionCount: 0,
|
||||
});
|
||||
} else {
|
||||
// BACKGROUND: fire-and-forget for automatic refresh
|
||||
const refreshWork = doRefresh();
|
||||
refreshWork.catch(e => console.error('[CACHE] Background refresh error:', e));
|
||||
// BACKGROUND: try to refresh within a short window; fall back to stale cache
|
||||
const refreshWork = doRefresh().catch(e => console.error('[CACHE] Background refresh error:', e));
|
||||
const timeout = new Promise<void>(resolve => setTimeout(resolve, 800));
|
||||
await Promise.race([refreshWork, timeout]);
|
||||
const maybeRefreshed = await readCachedEvents(user.id, timeMinDate, timeMaxDate);
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
events: maybeRefreshed,
|
||||
count: maybeRefreshed.length,
|
||||
fromCache: true,
|
||||
staleConnectionCount: staleConnections.length,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,7 +102,7 @@ export async function POST(request: NextRequest) {
|
||||
events: cachedEvents,
|
||||
count: cachedEvents.length,
|
||||
fromCache: true,
|
||||
staleConnectionCount: staleConnections.length,
|
||||
staleConnectionCount: 0,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('[CALENDAR SYNC] Sync request failed:', error);
|
||||
|
||||
@ -42,19 +42,36 @@ export async function GET(req: NextRequest) {
|
||||
|
||||
const googleLocalTasks = allExternalTasks.filter(t => t.externalProvider === 'google');
|
||||
const outlookLocalTasks = allExternalTasks.filter(t => t.externalProvider === 'outlook');
|
||||
const synologyLocalTasks = allExternalTasks.filter(t => t.externalProvider === 'synology');
|
||||
|
||||
const googleSyncedLists = syncedLists.filter(l => l.externalProvider === 'google');
|
||||
const outlookSyncedLists = syncedLists.filter(l => l.externalProvider === 'outlook');
|
||||
const synologySyncedLists = syncedLists.filter(l => l.externalProvider === 'synology');
|
||||
|
||||
const hasGoogleTasks = googleLocalTasks.length > 0 || googleSyncedLists.length > 0;
|
||||
const hasOutlookTasks = outlookLocalTasks.length > 0 || outlookSyncedLists.length > 0;
|
||||
const hasSynologyTasks = synologyLocalTasks.length > 0 || synologySyncedLists.length > 0;
|
||||
|
||||
// Batch-fetch all provider credentials in parallel upfront
|
||||
const [googleAccount, outlookToken, synoConnection] = await Promise.all([
|
||||
hasGoogleTasks
|
||||
? prisma.account.findFirst({ where: { userId: user.id, provider: { in: ['google-calendar', 'google'] } } })
|
||||
: Promise.resolve(null),
|
||||
hasOutlookTasks
|
||||
? getOutlookAccessToken(user.id)
|
||||
: Promise.resolve(null),
|
||||
hasSynologyTasks
|
||||
? prisma.calendarConnection.findFirst({ where: { userId: user.id, provider: 'synology' } })
|
||||
: Promise.resolve(null),
|
||||
]);
|
||||
|
||||
let updated = 0;
|
||||
let deleted = 0;
|
||||
let created = 0;
|
||||
|
||||
// --- Google Tasks pull-sync ---
|
||||
const googleSyncedLists = syncedLists.filter(l => l.externalProvider === 'google');
|
||||
const hasGoogleTasks = googleLocalTasks.length > 0 || googleSyncedLists.length > 0;
|
||||
|
||||
if (hasGoogleTasks) {
|
||||
const account = await prisma.account.findFirst({
|
||||
where: { userId: user.id, provider: { in: ['google-calendar', 'google'] } }
|
||||
});
|
||||
const account = googleAccount;
|
||||
|
||||
if (account?.access_token) {
|
||||
const client = createGoogleClient(account.access_token, account.refresh_token || undefined);
|
||||
@ -232,12 +249,7 @@ export async function GET(req: NextRequest) {
|
||||
}
|
||||
|
||||
// --- Microsoft To-Do pull-sync ---
|
||||
const outlookSyncedLists = syncedLists.filter(l => l.externalProvider === 'outlook');
|
||||
const hasOutlookTasks = outlookLocalTasks.length > 0 || outlookSyncedLists.length > 0;
|
||||
|
||||
if (hasOutlookTasks) {
|
||||
const outlookToken = await getOutlookAccessToken(user.id);
|
||||
|
||||
if (outlookToken) {
|
||||
// Build set of all Outlook list IDs to sync
|
||||
const outlookListIds = new Set<string>();
|
||||
@ -350,15 +362,7 @@ export async function GET(req: NextRequest) {
|
||||
}
|
||||
|
||||
// --- Synology pull-sync ---
|
||||
const synologySyncedLists = syncedLists.filter(l => l.externalProvider === 'synology');
|
||||
const synologyLocalTasks = allExternalTasks.filter(t => t.externalProvider === 'synology');
|
||||
const hasSynologyTasks = synologyLocalTasks.length > 0 || synologySyncedLists.length > 0;
|
||||
|
||||
if (hasSynologyTasks) {
|
||||
const synoConnection = await prisma.calendarConnection.findFirst({
|
||||
where: { userId: user.id, provider: 'synology' }
|
||||
});
|
||||
|
||||
if (synoConnection?.accessToken && synoConnection?.refreshToken) {
|
||||
const [synoUsername, synoPassword] = synoConnection.accessToken.split(':');
|
||||
const synoServerUrl = synoConnection.refreshToken;
|
||||
@ -386,6 +390,13 @@ export async function GET(req: NextRequest) {
|
||||
synoByList.get(task.externalListId)!.push(task);
|
||||
}
|
||||
|
||||
// Fetch all existing Synology IDs once to avoid N+1 per list
|
||||
const allSynoIdRows = await prisma.task.findMany({
|
||||
where: { userId: user.id, externalProvider: 'synology', externalId: { not: null }, deletedAt: null },
|
||||
select: { externalId: true }
|
||||
});
|
||||
const allSynoExistingIds = new Set(allSynoIdRows.map(t => t.externalId!.replace(/^synology::/, '')));
|
||||
|
||||
for (const listId of synoListIds) {
|
||||
const localTasks = synoByList.get(listId) || [];
|
||||
try {
|
||||
@ -416,12 +427,8 @@ export async function GET(req: NextRequest) {
|
||||
// Create new local tasks from remote
|
||||
const somedayListInfo = synoListIdToSomedayList.get(listId);
|
||||
if (somedayListInfo) {
|
||||
// Also check ALL synology tasks in DB (not just this list) to avoid duplicates
|
||||
const allSynoIds = await prisma.task.findMany({
|
||||
where: { userId: user.id, externalProvider: 'synology', externalId: { not: null }, deletedAt: null },
|
||||
select: { externalId: true }
|
||||
});
|
||||
const allExistingIds = new Set(allSynoIds.map(t => t.externalId!.replace(/^synology::/, '')));
|
||||
// Use the pre-fetched set of all Synology IDs to avoid duplicates
|
||||
const allExistingIds = new Set(allSynoExistingIds);
|
||||
// Merge with the per-list set
|
||||
for (const id of existingExternalIds) { if (id) allExistingIds.add(id); }
|
||||
|
||||
@ -446,7 +453,9 @@ export async function GET(req: NextRequest) {
|
||||
lastSyncedAt: new Date(),
|
||||
}
|
||||
});
|
||||
existingExternalIds.add(remote.id.replace(/^synology::/, ''));
|
||||
const cleanId = remote.id.replace(/^synology::/, '');
|
||||
existingExternalIds.add(cleanId);
|
||||
allSynoExistingIds.add(cleanId);
|
||||
created++;
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faGoogle, faMicrosoft, faApple } from "@fortawesome/free-brands-svg-icons";
|
||||
import { faServer, faFolder, IconDefinition } from "@fortawesome/free-solid-svg-icons";
|
||||
import MdiIcon from "@mdi/react";
|
||||
import { allIcons } from "./IconPicker";
|
||||
import { allIcons } from "./iconRegistry";
|
||||
import { Task, KanbanStage } from "./WeeklyView";
|
||||
|
||||
interface GridTaskBlockProps {
|
||||
|
||||
@ -1,654 +1,8 @@
|
||||
import React, { useState, useRef, useEffect, useMemo } from "react";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import {
|
||||
faFolder, faBriefcase, faBullseye, faRocket, faStar, faLightbulb,
|
||||
faFire, faPalette, faMusic, faMobileScreen, faLaptop, faGlobe,
|
||||
faHouse, faBuilding, faChartBar, faChartLine, faWrench, faBolt,
|
||||
faGamepad, faPen, faBook, faGraduationCap, faFlask, faMicroscope,
|
||||
faDumbbell, faUtensils, faPlane, faLeaf, faHeart, faCartShopping,
|
||||
faCoins, faGift, faCamera, faFilm, faBroom, faPaw, faEarthAmericas,
|
||||
faLock, faCheck, faCode, faCube, faUsers, faCar, faMountain,
|
||||
faUmbrella, faClock, faTag, faPhone, faEnvelope, faPrint,
|
||||
faDatabase, faServer, faCloud, faWifi, faBug, faShield,
|
||||
faBell, faBookmark, faCalendar, faCircleCheck, faCircleXmark,
|
||||
faComment, faCompass, faCreditCard, faCrown, faDiamond,
|
||||
faDisplay, faDownload, faDroplet, faEye, faFaceSmile,
|
||||
faFile, faFileCode, faFilter, faFingerprint, faFlag,
|
||||
faGear, faGlasses, faHandshake, faHashtag, faHeadphones,
|
||||
faHospital, faImage, faInbox, faInfinity, faKey,
|
||||
faLanguage, faLayerGroup, faLink, faListCheck, faMagnet,
|
||||
faMap, faMapPin, faMedal, faMessage, faMicrophone,
|
||||
faMoon, faNewspaper, faPaperPlane, faPaperclip, faPaste,
|
||||
faPeace, faPercent, faPersonRunning, faPiggyBank, faPills,
|
||||
faPuzzlePiece, faQrcode, faQuoteLeft, faRobot, faRotate,
|
||||
faRoute, faRuler, faScissors, faScrewdriverWrench, faSeedling,
|
||||
faShare, faShirt, faShop, faSignal, faSitemap,
|
||||
faSliders, faSnowflake, faSpa, faSquareCheck, faStethoscope,
|
||||
faSun, faTableCells, faTerminal, faThumbsUp, faToolbox,
|
||||
faTrashCan, faTrophy, faTruck, faTv, faUpload,
|
||||
faUserGear, faVault, faVideo, faVolumeHigh, faWallet,
|
||||
faWandMagicSparkles, faWarehouse, faWeight, faWindowMaximize,
|
||||
IconDefinition,
|
||||
} from "@fortawesome/free-solid-svg-icons";
|
||||
import { IconDefinition } from "@fortawesome/free-solid-svg-icons";
|
||||
import Icon from "@mdi/react";
|
||||
import {
|
||||
mdiHomeAssistant, mdiDocker, mdiGithub, mdiGitlab, mdiLinux, mdiApple,
|
||||
mdiMicrosoftWindows, mdiAndroid, mdiReact, mdiNodejs, mdiLanguagePython,
|
||||
mdiLanguageJavascript, mdiLanguageTypescript, mdiLanguageHtml5, mdiLanguageCss3,
|
||||
mdiAws, mdiGoogleCloud, mdiMicrosoftAzure, mdiKubernetes, mdiTerraform,
|
||||
mdiRaspberryPi, mdiNas, mdiRouter, mdiIpNetwork, mdiServerNetwork,
|
||||
mdiBabyCarriage, mdiDog, mdiCat, mdiFish, mdiBird,
|
||||
mdiFlower, mdiTree, mdiForest, mdiWeatherSunny, mdiWeatherRainy,
|
||||
mdiBicycle, mdiMotorbike, mdiTrain, mdiBus, mdiAirplane,
|
||||
mdiSailBoat, mdiSwim, mdiSki, mdiSoccer, mdiBasketball,
|
||||
mdiTennis, mdiGolf, mdiYoga, mdiMeditation, mdiRunFast,
|
||||
mdiFood, mdiFoodApple, mdiCoffee, mdiBeer, mdiGlassCocktail,
|
||||
mdiPizza, mdiCupcake, mdiIceCream, mdiGrill, mdiFridge,
|
||||
mdiWashingMachine, mdiVacuum, mdiSofa, mdiBed, mdiBathtub,
|
||||
mdiToilet, mdiLamp, mdiCeilingFan, mdiThermometer, mdiFireplace,
|
||||
mdiBriefcase, mdiCash, mdiCurrencyEur, mdiCurrencyUsd, mdiCurrencyBtc,
|
||||
mdiChartLine, mdiChartPie, mdiChartBar, mdiTrendingUp, mdiBank,
|
||||
mdiSchool, mdiBookOpenVariant, mdiNotebook, mdiPencil, mdiPaletteOutline,
|
||||
mdiMusic, mdiMovieOpen, mdiTelevision, mdiGamepadVariant, mdiPuzzle,
|
||||
mdiCamera, mdiMicrophone, mdiHeadphones, mdiSpeaker, mdiPrinter3d,
|
||||
mdiHeart, mdiHandHeart, mdiHumanMaleFemaleChild, mdiAccountGroup, mdiPartyPopper,
|
||||
mdiGift, mdiBalloon, mdiCake, mdiRing, mdiEmoticonHappy,
|
||||
mdiMedicalBag, mdiHospitalBox, mdiPill, mdiStethoscope, mdiTooth,
|
||||
mdiSecurity, mdiShieldCheck, mdiLock, mdiEyeOff, mdiVpn,
|
||||
mdiTools, mdiHammer, mdiScrewdriver, mdiWrench,
|
||||
mdiRecycle, mdiLeaf, mdiSprout, mdiEarth, mdiWaterOutline,
|
||||
mdiRocket, mdiBrain, mdiAtom, mdiDna, mdiMagnet,
|
||||
mdiCellphone, mdiTablet, mdiLaptop, mdiDesktopClassic, mdiWatch,
|
||||
// Additional icons
|
||||
mdiCampfire,
|
||||
mdiAnchor, mdiAnvil, mdiArchive, mdiAxe, mdiBadminton, mdiBaguette,
|
||||
mdiBalcony, mdiBandage, mdiBarcode, mdiBarn, mdiBarrel, mdiBaseball,
|
||||
mdiBat, mdiBeach, mdiBeaker, mdiBee, mdiBench, mdiBinoculars,
|
||||
mdiBillboard, mdiBilliards, mdiBlender, mdiBolt, mdiBomb,
|
||||
mdiBone, mdiBookshelf, mdiBoomerang, mdiBowling, mdiBridge,
|
||||
mdiBroom, mdiBrush, mdiBucket, mdiBulldozer, mdiBullhorn,
|
||||
mdiBusStop, mdiCactus, mdiCalculator, mdiCandle, mdiCandycane,
|
||||
mdiCaravan, mdiCarrot, mdiCastle, mdiCharity, mdiChessKnight,
|
||||
mdiChessRook, mdiChurch, mdiClipboard, mdiClover,
|
||||
mdiCoatRack, mdiCog, mdiCompass, mdiCone, mdiContentCut,
|
||||
mdiCookie, mdiCorn, mdiCow, mdiCricket,
|
||||
mdiCross, mdiCrosshairs, mdiCrystalBall, mdiCup, mdiCurling, mdiDiceMultiple,
|
||||
mdiDolly, mdiDoorOpen, mdiDrone, mdiDuck, mdiDumpTruck,
|
||||
mdiEgg, mdiElevator, mdiEmoticon, mdiEngine, mdiFan,
|
||||
mdiFeather, mdiFerry, mdiFire, mdiFireExtinguisher, mdiFireHydrant,
|
||||
mdiFireTruck, mdiFirework, mdiFlagCheckered, mdiFlash, mdiFlashlight,
|
||||
mdiGlassFlute, mdiFoodDrumstick, mdiFoodSteak, mdiFootball,
|
||||
mdiFountain, mdiFruitCherries, mdiFruitCitrus, mdiFruitGrapes, mdiFruitWatermelon,
|
||||
mdiGarage, mdiGasStation, mdiGavel, mdiGlassMug, mdiGlassWine,
|
||||
mdiGlasses, mdiGlobeModel, mdiGrass, mdiGreenhouse, mdiGuitarAcoustic,
|
||||
mdiPistol, mdiHandSaw, mdiHanger, mdiHardHat, mdiHarddisk,
|
||||
mdiHelicopter, mdiHighway, mdiHockeyPuck, mdiHook,
|
||||
mdiHorseshoe, mdiHotTub, mdiWeatherHurricane, mdiIsland,
|
||||
mdiKettle, mdiKite, mdiKnife, mdiLadder,
|
||||
mdiLeafMaple, mdiLibrary, mdiLifebuoy, mdiLighthouse, mdiLipstick,
|
||||
mdiMagicStaff, mdiMailbox, mdiMapMarker, mdiDominoMask,
|
||||
mdiMetronome, mdiMicrowave, mdiMirror, mdiMolecule,
|
||||
mdiMoped, mdiMortarPestle, mdiMosque, mdiMuffin, mdiMushroom,
|
||||
mdiMustache, mdiNail, mdiNoodles, mdiOctagon,
|
||||
mdiOrbit, mdiToasterOven, mdiPalmTree,
|
||||
mdiPanda, mdiPaperRoll, mdiParachute, mdiParking, mdiPassport,
|
||||
mdiPasta, mdiPeace, mdiPeanut, mdiPenguin,
|
||||
mdiPiano, mdiPillar, mdiPinwheel, mdiPipe, mdiPirate,
|
||||
mdiPoliceBadge, mdiPool, mdiPopcorn, mdiPost,
|
||||
mdiPot, mdiPropaneTank, mdiPumpkin, mdiRabbit,
|
||||
mdiRadiator, mdiRice, mdiRobot, mdiRollerSkate,
|
||||
mdiSafe, mdiSatellite, mdiScale,
|
||||
mdiScoreboard, mdiSeal, mdiShark, mdiSheep,
|
||||
mdiShoeSneaker, mdiShovel, mdiShredder, mdiSignRealEstate, mdiSilverware,
|
||||
mdiSkateboard, mdiSkull, mdiSnake, mdiSnowboard,
|
||||
mdiSnowman, mdiSolarPanel, mdiSpider, mdiSpray,
|
||||
mdiStadium, mdiStairs, mdiStarShooting, mdiSteering, mdiStove,
|
||||
mdiSubmarine, mdiSunglasses, mdiSword, mdiNeedle, mdiTaco,
|
||||
mdiTarget, mdiTeddyBear, mdiTelescope, mdiTent,
|
||||
mdiTie, mdiTimer, mdiWeatherTornado, mdiTractor, mdiTrafficCone,
|
||||
mdiTrafficLight, mdiTreasureChest, mdiTriangle, mdiTrophy,
|
||||
mdiFlowerTulip, mdiTurtle, mdiTypewriter, mdiUfo, mdiUnicorn,
|
||||
mdiViolin, mdiVolcano, mdiVolleyball, mdiWall,
|
||||
mdiWardrobe, mdiWaterfall, mdiWaterPolo, mdiWave, mdiWebcam,
|
||||
mdiWheelBarrow, mdiWhistle, mdiWindTurbine,
|
||||
} from "@mdi/js";
|
||||
|
||||
// --- Icon Registry ---
|
||||
|
||||
interface IconEntry {
|
||||
name: string;
|
||||
keywords: string[];
|
||||
type: "fa" | "mdi";
|
||||
icon: IconDefinition | string; // FA IconDefinition or MDI path string
|
||||
}
|
||||
|
||||
const faIcons: IconEntry[] = [
|
||||
{ name: "folder", keywords: ["folder", "file", "directory", "project"], type: "fa", icon: faFolder },
|
||||
{ name: "briefcase", keywords: ["briefcase", "work", "business", "job", "office"], type: "fa", icon: faBriefcase },
|
||||
{ name: "bullseye", keywords: ["bullseye", "target", "goal", "aim"], type: "fa", icon: faBullseye },
|
||||
{ name: "rocket", keywords: ["rocket", "launch", "startup", "space", "fast"], type: "fa", icon: faRocket },
|
||||
{ name: "star", keywords: ["star", "favorite", "rating", "important"], type: "fa", icon: faStar },
|
||||
{ name: "lightbulb", keywords: ["lightbulb", "idea", "innovation", "think"], type: "fa", icon: faLightbulb },
|
||||
{ name: "fire", keywords: ["fire", "hot", "trending", "flame", "urgent"], type: "fa", icon: faFire },
|
||||
{ name: "palette", keywords: ["palette", "art", "design", "color", "paint", "creative"], type: "fa", icon: faPalette },
|
||||
{ name: "music", keywords: ["music", "audio", "song", "sound", "note"], type: "fa", icon: faMusic },
|
||||
{ name: "mobile", keywords: ["mobile", "phone", "smartphone", "cell"], type: "fa", icon: faMobileScreen },
|
||||
{ name: "laptop", keywords: ["laptop", "computer", "pc", "notebook"], type: "fa", icon: faLaptop },
|
||||
{ name: "globe", keywords: ["globe", "world", "web", "internet", "global"], type: "fa", icon: faGlobe },
|
||||
{ name: "house", keywords: ["house", "home", "residence", "living"], type: "fa", icon: faHouse },
|
||||
{ name: "building", keywords: ["building", "office", "company", "corporate", "city"], type: "fa", icon: faBuilding },
|
||||
{ name: "chart-bar", keywords: ["chart", "bar", "statistics", "analytics", "graph", "data"], type: "fa", icon: faChartBar },
|
||||
{ name: "chart-line", keywords: ["chart", "line", "statistics", "analytics", "trend", "growth"], type: "fa", icon: faChartLine },
|
||||
{ name: "wrench", keywords: ["wrench", "tool", "repair", "fix", "maintenance"], type: "fa", icon: faWrench },
|
||||
{ name: "bolt", keywords: ["bolt", "lightning", "power", "energy", "electric", "fast"], type: "fa", icon: faBolt },
|
||||
{ name: "gamepad", keywords: ["gamepad", "game", "gaming", "play", "controller"], type: "fa", icon: faGamepad },
|
||||
{ name: "pen", keywords: ["pen", "write", "edit", "draw"], type: "fa", icon: faPen },
|
||||
{ name: "book", keywords: ["book", "read", "library", "study", "education"], type: "fa", icon: faBook },
|
||||
{ name: "graduation-cap", keywords: ["graduation", "education", "school", "university", "degree", "study"], type: "fa", icon: faGraduationCap },
|
||||
{ name: "flask", keywords: ["flask", "science", "chemistry", "lab", "experiment"], type: "fa", icon: faFlask },
|
||||
{ name: "microscope", keywords: ["microscope", "science", "research", "biology", "lab"], type: "fa", icon: faMicroscope },
|
||||
{ name: "dumbbell", keywords: ["dumbbell", "gym", "fitness", "exercise", "workout", "sport"], type: "fa", icon: faDumbbell },
|
||||
{ name: "utensils", keywords: ["utensils", "food", "restaurant", "eat", "dining", "cook"], type: "fa", icon: faUtensils },
|
||||
{ name: "plane", keywords: ["plane", "flight", "travel", "airport", "vacation"], type: "fa", icon: faPlane },
|
||||
{ name: "leaf", keywords: ["leaf", "nature", "plant", "eco", "green", "organic"], type: "fa", icon: faLeaf },
|
||||
{ name: "heart", keywords: ["heart", "love", "health", "favorite", "like"], type: "fa", icon: faHeart },
|
||||
{ name: "cart-shopping", keywords: ["cart", "shopping", "buy", "store", "ecommerce"], type: "fa", icon: faCartShopping },
|
||||
{ name: "coins", keywords: ["coins", "money", "finance", "currency", "savings"], type: "fa", icon: faCoins },
|
||||
{ name: "gift", keywords: ["gift", "present", "birthday", "surprise"], type: "fa", icon: faGift },
|
||||
{ name: "camera", keywords: ["camera", "photo", "photography", "picture", "image"], type: "fa", icon: faCamera },
|
||||
{ name: "film", keywords: ["film", "movie", "cinema", "video"], type: "fa", icon: faFilm },
|
||||
{ name: "broom", keywords: ["broom", "clean", "sweep", "housework", "tidy"], type: "fa", icon: faBroom },
|
||||
{ name: "paw", keywords: ["paw", "pet", "animal", "dog", "cat"], type: "fa", icon: faPaw },
|
||||
{ name: "earth", keywords: ["earth", "world", "planet", "global", "environment"], type: "fa", icon: faEarthAmericas },
|
||||
{ name: "lock", keywords: ["lock", "security", "password", "private", "safe"], type: "fa", icon: faLock },
|
||||
{ name: "check", keywords: ["check", "done", "complete", "tick", "approve"], type: "fa", icon: faCheck },
|
||||
{ name: "code", keywords: ["code", "programming", "developer", "software", "coding"], type: "fa", icon: faCode },
|
||||
{ name: "cube", keywords: ["cube", "3d", "block", "box", "package"], type: "fa", icon: faCube },
|
||||
{ name: "users", keywords: ["users", "team", "group", "people", "community"], type: "fa", icon: faUsers },
|
||||
{ name: "car", keywords: ["car", "vehicle", "drive", "auto", "transport"], type: "fa", icon: faCar },
|
||||
{ name: "mountain", keywords: ["mountain", "hiking", "outdoor", "adventure", "nature"], type: "fa", icon: faMountain },
|
||||
{ name: "umbrella", keywords: ["umbrella", "rain", "weather", "protection"], type: "fa", icon: faUmbrella },
|
||||
{ name: "clock", keywords: ["clock", "time", "schedule", "timer", "watch"], type: "fa", icon: faClock },
|
||||
{ name: "tag", keywords: ["tag", "label", "category", "price"], type: "fa", icon: faTag },
|
||||
{ name: "phone", keywords: ["phone", "call", "telephone", "contact"], type: "fa", icon: faPhone },
|
||||
{ name: "envelope", keywords: ["envelope", "email", "mail", "message", "letter"], type: "fa", icon: faEnvelope },
|
||||
{ name: "print", keywords: ["print", "printer", "paper", "document"], type: "fa", icon: faPrint },
|
||||
{ name: "database", keywords: ["database", "data", "storage", "sql", "server"], type: "fa", icon: faDatabase },
|
||||
{ name: "server", keywords: ["server", "hosting", "backend", "infrastructure"], type: "fa", icon: faServer },
|
||||
{ name: "cloud", keywords: ["cloud", "storage", "upload", "saas", "hosting"], type: "fa", icon: faCloud },
|
||||
{ name: "wifi", keywords: ["wifi", "wireless", "internet", "network", "connection"], type: "fa", icon: faWifi },
|
||||
{ name: "bug", keywords: ["bug", "debug", "error", "issue", "testing"], type: "fa", icon: faBug },
|
||||
{ name: "shield", keywords: ["shield", "security", "protection", "defense", "safe"], type: "fa", icon: faShield },
|
||||
{ name: "bell", keywords: ["bell", "notification", "alert", "alarm", "reminder"], type: "fa", icon: faBell },
|
||||
{ name: "bookmark", keywords: ["bookmark", "save", "favorite", "mark"], type: "fa", icon: faBookmark },
|
||||
{ name: "calendar", keywords: ["calendar", "date", "schedule", "event", "planner"], type: "fa", icon: faCalendar },
|
||||
{ name: "circle-check", keywords: ["circle", "check", "done", "approve", "success"], type: "fa", icon: faCircleCheck },
|
||||
{ name: "circle-xmark", keywords: ["circle", "close", "cancel", "delete", "remove"], type: "fa", icon: faCircleXmark },
|
||||
{ name: "comment", keywords: ["comment", "chat", "message", "discussion", "talk"], type: "fa", icon: faComment },
|
||||
{ name: "compass", keywords: ["compass", "navigation", "direction", "explore"], type: "fa", icon: faCompass },
|
||||
{ name: "credit-card", keywords: ["credit", "card", "payment", "bank", "finance"], type: "fa", icon: faCreditCard },
|
||||
{ name: "crown", keywords: ["crown", "king", "premium", "vip", "royal"], type: "fa", icon: faCrown },
|
||||
{ name: "diamond", keywords: ["diamond", "gem", "luxury", "premium", "jewel"], type: "fa", icon: faDiamond },
|
||||
{ name: "display", keywords: ["display", "monitor", "screen", "desktop"], type: "fa", icon: faDisplay },
|
||||
{ name: "download", keywords: ["download", "save", "get", "arrow"], type: "fa", icon: faDownload },
|
||||
{ name: "droplet", keywords: ["droplet", "water", "liquid", "rain", "tear"], type: "fa", icon: faDroplet },
|
||||
{ name: "eye", keywords: ["eye", "view", "see", "watch", "visible"], type: "fa", icon: faEye },
|
||||
{ name: "face-smile", keywords: ["face", "smile", "happy", "emoji", "smiley"], type: "fa", icon: faFaceSmile },
|
||||
{ name: "file", keywords: ["file", "document", "paper", "page"], type: "fa", icon: faFile },
|
||||
{ name: "file-code", keywords: ["file", "code", "programming", "source", "script"], type: "fa", icon: faFileCode },
|
||||
{ name: "filter", keywords: ["filter", "sort", "funnel", "search"], type: "fa", icon: faFilter },
|
||||
{ name: "fingerprint", keywords: ["fingerprint", "identity", "biometric", "security"], type: "fa", icon: faFingerprint },
|
||||
{ name: "flag", keywords: ["flag", "mark", "country", "report", "milestone"], type: "fa", icon: faFlag },
|
||||
{ name: "gear", keywords: ["gear", "settings", "config", "options", "preferences"], type: "fa", icon: faGear },
|
||||
{ name: "glasses", keywords: ["glasses", "read", "vision", "spectacles"], type: "fa", icon: faGlasses },
|
||||
{ name: "handshake", keywords: ["handshake", "deal", "agreement", "partnership", "meeting"], type: "fa", icon: faHandshake },
|
||||
{ name: "hashtag", keywords: ["hashtag", "number", "tag", "social", "trending"], type: "fa", icon: faHashtag },
|
||||
{ name: "headphones", keywords: ["headphones", "audio", "music", "listen", "podcast"], type: "fa", icon: faHeadphones },
|
||||
{ name: "hospital", keywords: ["hospital", "medical", "health", "doctor", "clinic"], type: "fa", icon: faHospital },
|
||||
{ name: "image", keywords: ["image", "photo", "picture", "gallery"], type: "fa", icon: faImage },
|
||||
{ name: "inbox", keywords: ["inbox", "mail", "email", "messages"], type: "fa", icon: faInbox },
|
||||
{ name: "infinity", keywords: ["infinity", "loop", "endless", "unlimited"], type: "fa", icon: faInfinity },
|
||||
{ name: "key", keywords: ["key", "access", "password", "unlock", "authentication"], type: "fa", icon: faKey },
|
||||
{ name: "language", keywords: ["language", "translate", "i18n", "multilingual"], type: "fa", icon: faLanguage },
|
||||
{ name: "layer-group", keywords: ["layer", "stack", "design", "photoshop"], type: "fa", icon: faLayerGroup },
|
||||
{ name: "link", keywords: ["link", "chain", "url", "connection", "hyperlink"], type: "fa", icon: faLink },
|
||||
{ name: "list-check", keywords: ["list", "check", "todo", "tasks", "checklist"], type: "fa", icon: faListCheck },
|
||||
{ name: "magnet", keywords: ["magnet", "attract", "magnetic"], type: "fa", icon: faMagnet },
|
||||
{ name: "map", keywords: ["map", "location", "geography", "navigation"], type: "fa", icon: faMap },
|
||||
{ name: "map-pin", keywords: ["map", "pin", "location", "marker", "place"], type: "fa", icon: faMapPin },
|
||||
{ name: "medal", keywords: ["medal", "award", "achievement", "winner", "prize"], type: "fa", icon: faMedal },
|
||||
{ name: "message", keywords: ["message", "chat", "sms", "text", "conversation"], type: "fa", icon: faMessage },
|
||||
{ name: "microphone", keywords: ["microphone", "audio", "record", "voice", "podcast"], type: "fa", icon: faMicrophone },
|
||||
{ name: "moon", keywords: ["moon", "night", "dark", "sleep"], type: "fa", icon: faMoon },
|
||||
{ name: "newspaper", keywords: ["newspaper", "news", "article", "press", "media"], type: "fa", icon: faNewspaper },
|
||||
{ name: "paper-plane", keywords: ["paper", "plane", "send", "message", "email"], type: "fa", icon: faPaperPlane },
|
||||
{ name: "paperclip", keywords: ["paperclip", "attach", "attachment", "file"], type: "fa", icon: faPaperclip },
|
||||
{ name: "paste", keywords: ["paste", "clipboard", "copy"], type: "fa", icon: faPaste },
|
||||
{ name: "peace", keywords: ["peace", "harmony", "symbol"], type: "fa", icon: faPeace },
|
||||
{ name: "percent", keywords: ["percent", "discount", "sale", "percentage"], type: "fa", icon: faPercent },
|
||||
{ name: "person-running", keywords: ["person", "running", "exercise", "sport", "fitness", "jogging"], type: "fa", icon: faPersonRunning },
|
||||
{ name: "piggy-bank", keywords: ["piggy", "bank", "savings", "money", "finance"], type: "fa", icon: faPiggyBank },
|
||||
{ name: "pills", keywords: ["pills", "medicine", "health", "pharmacy", "drug"], type: "fa", icon: faPills },
|
||||
{ name: "puzzle-piece", keywords: ["puzzle", "piece", "plugin", "extension", "addon"], type: "fa", icon: faPuzzlePiece },
|
||||
{ name: "qrcode", keywords: ["qr", "code", "scan", "barcode"], type: "fa", icon: faQrcode },
|
||||
{ name: "quote-left", keywords: ["quote", "text", "citation", "blockquote"], type: "fa", icon: faQuoteLeft },
|
||||
{ name: "robot", keywords: ["robot", "ai", "automation", "bot", "machine"], type: "fa", icon: faRobot },
|
||||
{ name: "rotate", keywords: ["rotate", "refresh", "reload", "sync", "update"], type: "fa", icon: faRotate },
|
||||
{ name: "route", keywords: ["route", "path", "direction", "way", "navigation"], type: "fa", icon: faRoute },
|
||||
{ name: "ruler", keywords: ["ruler", "measure", "size", "length"], type: "fa", icon: faRuler },
|
||||
{ name: "scissors", keywords: ["scissors", "cut", "trim", "clip"], type: "fa", icon: faScissors },
|
||||
{ name: "screwdriver-wrench", keywords: ["screwdriver", "wrench", "tools", "repair", "fix", "maintenance"], type: "fa", icon: faScrewdriverWrench },
|
||||
{ name: "seedling", keywords: ["seedling", "plant", "grow", "garden", "nature", "eco"], type: "fa", icon: faSeedling },
|
||||
{ name: "share", keywords: ["share", "social", "send", "forward"], type: "fa", icon: faShare },
|
||||
{ name: "shirt", keywords: ["shirt", "clothing", "fashion", "apparel"], type: "fa", icon: faShirt },
|
||||
{ name: "shop", keywords: ["shop", "store", "retail", "market", "commerce"], type: "fa", icon: faShop },
|
||||
{ name: "signal", keywords: ["signal", "reception", "antenna", "strength"], type: "fa", icon: faSignal },
|
||||
{ name: "sitemap", keywords: ["sitemap", "structure", "hierarchy", "organization"], type: "fa", icon: faSitemap },
|
||||
{ name: "sliders", keywords: ["sliders", "settings", "adjust", "control", "equalizer"], type: "fa", icon: faSliders },
|
||||
{ name: "snowflake", keywords: ["snowflake", "winter", "cold", "freeze", "ice"], type: "fa", icon: faSnowflake },
|
||||
{ name: "spa", keywords: ["spa", "wellness", "relax", "massage", "health"], type: "fa", icon: faSpa },
|
||||
{ name: "square-check", keywords: ["square", "check", "checkbox", "done", "complete"], type: "fa", icon: faSquareCheck },
|
||||
{ name: "stethoscope", keywords: ["stethoscope", "doctor", "medical", "health", "hospital"], type: "fa", icon: faStethoscope },
|
||||
{ name: "sun", keywords: ["sun", "day", "light", "bright", "weather", "summer"], type: "fa", icon: faSun },
|
||||
{ name: "table-cells", keywords: ["table", "grid", "spreadsheet", "data", "cells"], type: "fa", icon: faTableCells },
|
||||
{ name: "terminal", keywords: ["terminal", "console", "command", "cli", "shell"], type: "fa", icon: faTerminal },
|
||||
{ name: "thumbs-up", keywords: ["thumbs", "up", "like", "approve", "good"], type: "fa", icon: faThumbsUp },
|
||||
{ name: "toolbox", keywords: ["toolbox", "tools", "repair", "kit", "equipment"], type: "fa", icon: faToolbox },
|
||||
{ name: "trash-can", keywords: ["trash", "delete", "remove", "bin", "garbage"], type: "fa", icon: faTrashCan },
|
||||
{ name: "trophy", keywords: ["trophy", "award", "winner", "champion", "prize", "achievement"], type: "fa", icon: faTrophy },
|
||||
{ name: "truck", keywords: ["truck", "delivery", "shipping", "transport", "logistics"], type: "fa", icon: faTruck },
|
||||
{ name: "tv", keywords: ["tv", "television", "screen", "monitor", "watch"], type: "fa", icon: faTv },
|
||||
{ name: "upload", keywords: ["upload", "send", "cloud", "arrow"], type: "fa", icon: faUpload },
|
||||
{ name: "user-gear", keywords: ["user", "gear", "admin", "settings", "account"], type: "fa", icon: faUserGear },
|
||||
{ name: "vault", keywords: ["vault", "safe", "secure", "bank", "storage"], type: "fa", icon: faVault },
|
||||
{ name: "video", keywords: ["video", "camera", "record", "film", "stream"], type: "fa", icon: faVideo },
|
||||
{ name: "volume-high", keywords: ["volume", "sound", "audio", "speaker", "loud"], type: "fa", icon: faVolumeHigh },
|
||||
{ name: "wallet", keywords: ["wallet", "money", "payment", "finance", "cash"], type: "fa", icon: faWallet },
|
||||
{ name: "wand-magic", keywords: ["wand", "magic", "sparkle", "wizard", "auto"], type: "fa", icon: faWandMagicSparkles },
|
||||
{ name: "warehouse", keywords: ["warehouse", "storage", "inventory", "logistics"], type: "fa", icon: faWarehouse },
|
||||
{ name: "weight", keywords: ["weight", "scale", "heavy", "mass", "gym"], type: "fa", icon: faWeight },
|
||||
{ name: "window", keywords: ["window", "browser", "app", "application"], type: "fa", icon: faWindowMaximize },
|
||||
];
|
||||
|
||||
const mdiIcons: IconEntry[] = [
|
||||
// Smart Home & Tech
|
||||
{ name: "mdi-home-assistant", keywords: ["home", "assistant", "smart", "automation", "iot", "homeassistant"], type: "mdi", icon: mdiHomeAssistant },
|
||||
{ name: "mdi-docker", keywords: ["docker", "container", "devops", "deploy"], type: "mdi", icon: mdiDocker },
|
||||
{ name: "mdi-github", keywords: ["github", "git", "repository", "code", "open source"], type: "mdi", icon: mdiGithub },
|
||||
{ name: "mdi-gitlab", keywords: ["gitlab", "git", "repository", "code", "ci"], type: "mdi", icon: mdiGitlab },
|
||||
{ name: "mdi-linux", keywords: ["linux", "os", "ubuntu", "debian", "penguin"], type: "mdi", icon: mdiLinux },
|
||||
{ name: "mdi-apple", keywords: ["apple", "mac", "ios", "macos", "iphone"], type: "mdi", icon: mdiApple },
|
||||
{ name: "mdi-windows", keywords: ["windows", "microsoft", "pc", "os"], type: "mdi", icon: mdiMicrosoftWindows },
|
||||
{ name: "mdi-android", keywords: ["android", "google", "mobile", "phone"], type: "mdi", icon: mdiAndroid },
|
||||
{ name: "mdi-react", keywords: ["react", "javascript", "frontend", "web", "component"], type: "mdi", icon: mdiReact },
|
||||
{ name: "mdi-nodejs", keywords: ["node", "nodejs", "javascript", "backend", "server"], type: "mdi", icon: mdiNodejs },
|
||||
{ name: "mdi-python", keywords: ["python", "programming", "language", "script"], type: "mdi", icon: mdiLanguagePython },
|
||||
{ name: "mdi-javascript", keywords: ["javascript", "js", "programming", "web", "frontend"], type: "mdi", icon: mdiLanguageJavascript },
|
||||
{ name: "mdi-typescript", keywords: ["typescript", "ts", "programming", "type", "web"], type: "mdi", icon: mdiLanguageTypescript },
|
||||
{ name: "mdi-html5", keywords: ["html", "html5", "web", "markup", "frontend"], type: "mdi", icon: mdiLanguageHtml5 },
|
||||
{ name: "mdi-css3", keywords: ["css", "css3", "style", "web", "frontend", "design"], type: "mdi", icon: mdiLanguageCss3 },
|
||||
{ name: "mdi-aws", keywords: ["aws", "amazon", "cloud", "hosting"], type: "mdi", icon: mdiAws },
|
||||
{ name: "mdi-gcloud", keywords: ["google", "cloud", "gcp", "hosting"], type: "mdi", icon: mdiGoogleCloud },
|
||||
{ name: "mdi-azure", keywords: ["azure", "microsoft", "cloud", "hosting"], type: "mdi", icon: mdiMicrosoftAzure },
|
||||
{ name: "mdi-kubernetes", keywords: ["kubernetes", "k8s", "container", "orchestration", "devops"], type: "mdi", icon: mdiKubernetes },
|
||||
{ name: "mdi-terraform", keywords: ["terraform", "infrastructure", "iac", "devops", "cloud"], type: "mdi", icon: mdiTerraform },
|
||||
{ name: "mdi-raspberry-pi", keywords: ["raspberry", "pi", "hardware", "iot", "maker"], type: "mdi", icon: mdiRaspberryPi },
|
||||
{ name: "mdi-nas", keywords: ["nas", "storage", "network", "synology", "backup"], type: "mdi", icon: mdiNas },
|
||||
{ name: "mdi-router", keywords: ["router", "network", "wifi", "internet"], type: "mdi", icon: mdiRouter },
|
||||
{ name: "mdi-ip-network", keywords: ["ip", "network", "internet", "lan", "subnet"], type: "mdi", icon: mdiIpNetwork },
|
||||
{ name: "mdi-server-network", keywords: ["server", "network", "hosting", "infrastructure", "datacenter"], type: "mdi", icon: mdiServerNetwork },
|
||||
// Devices
|
||||
{ name: "mdi-cellphone", keywords: ["cellphone", "mobile", "phone", "smartphone"], type: "mdi", icon: mdiCellphone },
|
||||
{ name: "mdi-tablet", keywords: ["tablet", "ipad", "device", "screen"], type: "mdi", icon: mdiTablet },
|
||||
{ name: "mdi-laptop", keywords: ["laptop", "computer", "notebook", "macbook"], type: "mdi", icon: mdiLaptop },
|
||||
{ name: "mdi-desktop", keywords: ["desktop", "computer", "pc", "monitor", "imac"], type: "mdi", icon: mdiDesktopClassic },
|
||||
{ name: "mdi-watch", keywords: ["watch", "smartwatch", "wearable", "time"], type: "mdi", icon: mdiWatch },
|
||||
// Family & Pets
|
||||
{ name: "mdi-baby", keywords: ["baby", "child", "infant", "family", "stroller", "kids"], type: "mdi", icon: mdiBabyCarriage },
|
||||
{ name: "mdi-dog", keywords: ["dog", "pet", "animal", "puppy"], type: "mdi", icon: mdiDog },
|
||||
{ name: "mdi-cat", keywords: ["cat", "pet", "animal", "kitten"], type: "mdi", icon: mdiCat },
|
||||
{ name: "mdi-fish", keywords: ["fish", "aquarium", "pet", "sea", "ocean"], type: "mdi", icon: mdiFish },
|
||||
{ name: "mdi-bird", keywords: ["bird", "pet", "animal", "fly", "parrot"], type: "mdi", icon: mdiBird },
|
||||
// Nature
|
||||
{ name: "mdi-flower", keywords: ["flower", "garden", "plant", "nature", "bloom"], type: "mdi", icon: mdiFlower },
|
||||
{ name: "mdi-tree", keywords: ["tree", "nature", "forest", "plant", "wood"], type: "mdi", icon: mdiTree },
|
||||
{ name: "mdi-forest", keywords: ["forest", "trees", "nature", "woods", "park"], type: "mdi", icon: mdiForest },
|
||||
{ name: "mdi-sunny", keywords: ["sun", "sunny", "weather", "bright", "summer", "warm"], type: "mdi", icon: mdiWeatherSunny },
|
||||
{ name: "mdi-rainy", keywords: ["rain", "rainy", "weather", "storm", "wet"], type: "mdi", icon: mdiWeatherRainy },
|
||||
// Transport
|
||||
{ name: "mdi-bicycle", keywords: ["bicycle", "bike", "cycling", "sport", "transport"], type: "mdi", icon: mdiBicycle },
|
||||
{ name: "mdi-motorbike", keywords: ["motorbike", "motorcycle", "ride", "vehicle"], type: "mdi", icon: mdiMotorbike },
|
||||
{ name: "mdi-train", keywords: ["train", "rail", "transport", "travel", "commute"], type: "mdi", icon: mdiTrain },
|
||||
{ name: "mdi-bus", keywords: ["bus", "transport", "public", "commute", "travel"], type: "mdi", icon: mdiBus },
|
||||
{ name: "mdi-airplane", keywords: ["airplane", "flight", "travel", "vacation", "airport"], type: "mdi", icon: mdiAirplane },
|
||||
{ name: "mdi-sail", keywords: ["sail", "boat", "ship", "sea", "ocean", "sailing"], type: "mdi", icon: mdiSailBoat },
|
||||
// Sports & Fitness
|
||||
{ name: "mdi-swim", keywords: ["swim", "pool", "water", "sport", "exercise"], type: "mdi", icon: mdiSwim },
|
||||
{ name: "mdi-ski", keywords: ["ski", "skiing", "winter", "snow", "sport"], type: "mdi", icon: mdiSki },
|
||||
{ name: "mdi-soccer", keywords: ["soccer", "football", "sport", "ball", "game"], type: "mdi", icon: mdiSoccer },
|
||||
{ name: "mdi-basketball", keywords: ["basketball", "sport", "ball", "game", "nba"], type: "mdi", icon: mdiBasketball },
|
||||
{ name: "mdi-tennis", keywords: ["tennis", "sport", "racket", "ball", "game"], type: "mdi", icon: mdiTennis },
|
||||
{ name: "mdi-golf", keywords: ["golf", "sport", "club", "ball", "green"], type: "mdi", icon: mdiGolf },
|
||||
{ name: "mdi-yoga", keywords: ["yoga", "meditation", "fitness", "relax", "stretch", "wellness"], type: "mdi", icon: mdiYoga },
|
||||
{ name: "mdi-meditation", keywords: ["meditation", "mindfulness", "zen", "calm", "relax"], type: "mdi", icon: mdiMeditation },
|
||||
{ name: "mdi-run", keywords: ["run", "running", "jogging", "sport", "fitness", "exercise"], type: "mdi", icon: mdiRunFast },
|
||||
// Food & Drink
|
||||
{ name: "mdi-food", keywords: ["food", "meal", "eat", "dinner", "lunch", "restaurant"], type: "mdi", icon: mdiFood },
|
||||
{ name: "mdi-apple-fruit", keywords: ["apple", "fruit", "food", "healthy", "snack"], type: "mdi", icon: mdiFoodApple },
|
||||
{ name: "mdi-coffee", keywords: ["coffee", "cafe", "drink", "morning", "espresso", "latte"], type: "mdi", icon: mdiCoffee },
|
||||
{ name: "mdi-beer", keywords: ["beer", "drink", "alcohol", "pub", "bar", "brewery"], type: "mdi", icon: mdiBeer },
|
||||
{ name: "mdi-cocktail", keywords: ["cocktail", "drink", "alcohol", "bar", "party", "wine"], type: "mdi", icon: mdiGlassCocktail },
|
||||
{ name: "mdi-pizza", keywords: ["pizza", "food", "italian", "fast food", "eat"], type: "mdi", icon: mdiPizza },
|
||||
{ name: "mdi-cupcake", keywords: ["cupcake", "cake", "bake", "dessert", "sweet"], type: "mdi", icon: mdiCupcake },
|
||||
{ name: "mdi-ice-cream", keywords: ["ice cream", "dessert", "sweet", "summer", "gelato"], type: "mdi", icon: mdiIceCream },
|
||||
{ name: "mdi-grill", keywords: ["grill", "bbq", "barbecue", "cook", "outdoor", "food"], type: "mdi", icon: mdiGrill },
|
||||
// Home & Appliances
|
||||
{ name: "mdi-fridge", keywords: ["fridge", "refrigerator", "kitchen", "appliance", "food"], type: "mdi", icon: mdiFridge },
|
||||
{ name: "mdi-washing-machine", keywords: ["washing", "machine", "laundry", "clothes", "clean"], type: "mdi", icon: mdiWashingMachine },
|
||||
{ name: "mdi-vacuum", keywords: ["vacuum", "clean", "floor", "housework", "appliance"], type: "mdi", icon: mdiVacuum },
|
||||
{ name: "mdi-sofa", keywords: ["sofa", "couch", "living room", "furniture", "relax"], type: "mdi", icon: mdiSofa },
|
||||
{ name: "mdi-bed", keywords: ["bed", "sleep", "bedroom", "rest", "furniture"], type: "mdi", icon: mdiBed },
|
||||
{ name: "mdi-bathtub", keywords: ["bathtub", "bath", "bathroom", "shower", "wash"], type: "mdi", icon: mdiBathtub },
|
||||
{ name: "mdi-toilet", keywords: ["toilet", "bathroom", "wc", "restroom"], type: "mdi", icon: mdiToilet },
|
||||
{ name: "mdi-lamp", keywords: ["lamp", "light", "desk", "reading", "illumination"], type: "mdi", icon: mdiLamp },
|
||||
{ name: "mdi-ceiling-fan", keywords: ["ceiling", "fan", "cool", "air", "ventilation"], type: "mdi", icon: mdiCeilingFan },
|
||||
{ name: "mdi-thermometer", keywords: ["thermometer", "temperature", "heat", "cold", "weather"], type: "mdi", icon: mdiThermometer },
|
||||
{ name: "mdi-fireplace", keywords: ["fireplace", "fire", "warm", "cozy", "chimney"], type: "mdi", icon: mdiFireplace },
|
||||
// Finance
|
||||
{ name: "mdi-briefcase", keywords: ["briefcase", "work", "business", "job", "career"], type: "mdi", icon: mdiBriefcase },
|
||||
{ name: "mdi-cash", keywords: ["cash", "money", "payment", "bills", "finance"], type: "mdi", icon: mdiCash },
|
||||
{ name: "mdi-euro", keywords: ["euro", "currency", "money", "finance", "europe"], type: "mdi", icon: mdiCurrencyEur },
|
||||
{ name: "mdi-dollar", keywords: ["dollar", "usd", "currency", "money", "finance", "us"], type: "mdi", icon: mdiCurrencyUsd },
|
||||
{ name: "mdi-bitcoin", keywords: ["bitcoin", "btc", "crypto", "cryptocurrency", "blockchain"], type: "mdi", icon: mdiCurrencyBtc },
|
||||
{ name: "mdi-chart-line", keywords: ["chart", "line", "trend", "analytics", "statistics"], type: "mdi", icon: mdiChartLine },
|
||||
{ name: "mdi-chart-pie", keywords: ["chart", "pie", "analytics", "statistics", "data"], type: "mdi", icon: mdiChartPie },
|
||||
{ name: "mdi-chart-bar", keywords: ["chart", "bar", "analytics", "statistics", "data", "graph"], type: "mdi", icon: mdiChartBar },
|
||||
{ name: "mdi-trending-up", keywords: ["trending", "up", "growth", "increase", "profit"], type: "mdi", icon: mdiTrendingUp },
|
||||
{ name: "mdi-bank", keywords: ["bank", "finance", "money", "institution", "savings"], type: "mdi", icon: mdiBank },
|
||||
// Education & Creative
|
||||
{ name: "mdi-school", keywords: ["school", "education", "study", "learn", "university"], type: "mdi", icon: mdiSchool },
|
||||
{ name: "mdi-book-open", keywords: ["book", "open", "read", "study", "library", "education"], type: "mdi", icon: mdiBookOpenVariant },
|
||||
{ name: "mdi-notebook", keywords: ["notebook", "journal", "notes", "write", "diary"], type: "mdi", icon: mdiNotebook },
|
||||
{ name: "mdi-pencil", keywords: ["pencil", "write", "draw", "edit", "sketch"], type: "mdi", icon: mdiPencil },
|
||||
{ name: "mdi-palette", keywords: ["palette", "art", "paint", "design", "creative", "color"], type: "mdi", icon: mdiPaletteOutline },
|
||||
{ name: "mdi-music", keywords: ["music", "note", "song", "audio", "melody"], type: "mdi", icon: mdiMusic },
|
||||
{ name: "mdi-movie", keywords: ["movie", "film", "cinema", "video", "entertainment"], type: "mdi", icon: mdiMovieOpen },
|
||||
{ name: "mdi-television", keywords: ["television", "tv", "screen", "watch", "show", "series"], type: "mdi", icon: mdiTelevision },
|
||||
{ name: "mdi-gamepad", keywords: ["gamepad", "game", "gaming", "play", "controller", "console"], type: "mdi", icon: mdiGamepadVariant },
|
||||
{ name: "mdi-puzzle", keywords: ["puzzle", "piece", "game", "solve", "jigsaw"], type: "mdi", icon: mdiPuzzle },
|
||||
{ name: "mdi-camera", keywords: ["camera", "photo", "picture", "photography"], type: "mdi", icon: mdiCamera },
|
||||
{ name: "mdi-microphone", keywords: ["microphone", "audio", "record", "voice", "podcast", "sing"], type: "mdi", icon: mdiMicrophone },
|
||||
{ name: "mdi-headphones", keywords: ["headphones", "audio", "music", "listen"], type: "mdi", icon: mdiHeadphones },
|
||||
{ name: "mdi-speaker", keywords: ["speaker", "audio", "sound", "music", "volume"], type: "mdi", icon: mdiSpeaker },
|
||||
{ name: "mdi-3d-printer", keywords: ["3d", "printer", "print", "maker", "prototype"], type: "mdi", icon: mdiPrinter3d },
|
||||
// People & Events
|
||||
{ name: "mdi-heart", keywords: ["heart", "love", "health", "favorite", "like", "romance"], type: "mdi", icon: mdiHeart },
|
||||
{ name: "mdi-hand-heart", keywords: ["hand", "heart", "charity", "volunteer", "donate", "care"], type: "mdi", icon: mdiHandHeart },
|
||||
{ name: "mdi-family", keywords: ["family", "parents", "children", "kids", "household"], type: "mdi", icon: mdiHumanMaleFemaleChild },
|
||||
{ name: "mdi-group", keywords: ["group", "team", "people", "community", "users"], type: "mdi", icon: mdiAccountGroup },
|
||||
{ name: "mdi-party", keywords: ["party", "celebration", "confetti", "event", "fun"], type: "mdi", icon: mdiPartyPopper },
|
||||
{ name: "mdi-gift", keywords: ["gift", "present", "birthday", "surprise", "wrap"], type: "mdi", icon: mdiGift },
|
||||
{ name: "mdi-balloon", keywords: ["balloon", "party", "celebration", "birthday", "fun"], type: "mdi", icon: mdiBalloon },
|
||||
{ name: "mdi-cake", keywords: ["cake", "birthday", "celebration", "dessert", "party"], type: "mdi", icon: mdiCake },
|
||||
{ name: "mdi-ring", keywords: ["ring", "wedding", "engagement", "marriage", "jewelry"], type: "mdi", icon: mdiRing },
|
||||
{ name: "mdi-happy", keywords: ["happy", "smiley", "face", "emoji", "joy", "mood"], type: "mdi", icon: mdiEmoticonHappy },
|
||||
// Health
|
||||
{ name: "mdi-medical", keywords: ["medical", "bag", "doctor", "health", "first aid"], type: "mdi", icon: mdiMedicalBag },
|
||||
{ name: "mdi-hospital", keywords: ["hospital", "medical", "health", "clinic", "emergency"], type: "mdi", icon: mdiHospitalBox },
|
||||
{ name: "mdi-pill", keywords: ["pill", "medicine", "drug", "pharmacy", "health"], type: "mdi", icon: mdiPill },
|
||||
{ name: "mdi-stethoscope", keywords: ["stethoscope", "doctor", "medical", "health", "checkup"], type: "mdi", icon: mdiStethoscope },
|
||||
{ name: "mdi-tooth", keywords: ["tooth", "dental", "dentist", "teeth", "health"], type: "mdi", icon: mdiTooth },
|
||||
// Security
|
||||
{ name: "mdi-security", keywords: ["security", "guard", "protect", "safe", "shield"], type: "mdi", icon: mdiSecurity },
|
||||
{ name: "mdi-shield-check", keywords: ["shield", "check", "verified", "secure", "safe"], type: "mdi", icon: mdiShieldCheck },
|
||||
{ name: "mdi-lock", keywords: ["lock", "secure", "password", "private", "encrypted"], type: "mdi", icon: mdiLock },
|
||||
{ name: "mdi-eye-off", keywords: ["eye", "off", "hidden", "privacy", "invisible"], type: "mdi", icon: mdiEyeOff },
|
||||
{ name: "mdi-vpn", keywords: ["vpn", "network", "private", "secure", "tunnel"], type: "mdi", icon: mdiVpn },
|
||||
// Tools & DIY
|
||||
{ name: "mdi-tools", keywords: ["tools", "repair", "fix", "maintenance", "kit"], type: "mdi", icon: mdiTools },
|
||||
{ name: "mdi-hammer", keywords: ["hammer", "build", "construction", "nail", "diy"], type: "mdi", icon: mdiHammer },
|
||||
{ name: "mdi-saw", keywords: ["saw", "cut", "wood", "diy", "construction"], type: "mdi", icon: mdiHandSaw },
|
||||
{ name: "mdi-screwdriver", keywords: ["screwdriver", "repair", "fix", "tool", "diy"], type: "mdi", icon: mdiScrewdriver },
|
||||
{ name: "mdi-wrench", keywords: ["wrench", "repair", "fix", "tool", "plumbing"], type: "mdi", icon: mdiWrench },
|
||||
// Environment
|
||||
{ name: "mdi-recycle", keywords: ["recycle", "green", "environment", "eco", "sustainability"], type: "mdi", icon: mdiRecycle },
|
||||
{ name: "mdi-leaf", keywords: ["leaf", "nature", "plant", "eco", "green", "organic"], type: "mdi", icon: mdiLeaf },
|
||||
{ name: "mdi-sprout", keywords: ["sprout", "grow", "plant", "garden", "seedling"], type: "mdi", icon: mdiSprout },
|
||||
{ name: "mdi-earth", keywords: ["earth", "world", "planet", "global", "environment"], type: "mdi", icon: mdiEarth },
|
||||
{ name: "mdi-water", keywords: ["water", "drop", "liquid", "ocean", "sea", "hydrate"], type: "mdi", icon: mdiWaterOutline },
|
||||
// Science
|
||||
{ name: "mdi-rocket", keywords: ["rocket", "space", "launch", "startup", "fast"], type: "mdi", icon: mdiRocket },
|
||||
{ name: "mdi-brain", keywords: ["brain", "think", "mind", "intelligence", "ai", "neuro"], type: "mdi", icon: mdiBrain },
|
||||
{ name: "mdi-atom", keywords: ["atom", "science", "physics", "nuclear", "chemistry"], type: "mdi", icon: mdiAtom },
|
||||
{ name: "mdi-dna", keywords: ["dna", "genetics", "biology", "science", "genome"], type: "mdi", icon: mdiDna },
|
||||
{ name: "mdi-magnet", keywords: ["magnet", "attract", "magnetic", "physics"], type: "mdi", icon: mdiMagnet },
|
||||
// Outdoor & Adventure
|
||||
{ name: "mdi-anchor", keywords: ["anchor", "ship", "boat", "harbor", "marine", "sea"], type: "mdi", icon: mdiAnchor },
|
||||
{ name: "mdi-beach", keywords: ["beach", "sand", "ocean", "vacation", "summer", "holiday"], type: "mdi", icon: mdiBeach },
|
||||
{ name: "mdi-binoculars", keywords: ["binoculars", "watch", "spy", "observe", "explore"], type: "mdi", icon: mdiBinoculars },
|
||||
{ name: "mdi-campfire", keywords: ["campfire", "fire", "camping", "outdoor", "bonfire"], type: "mdi", icon: mdiCampfire },
|
||||
{ name: "mdi-compass", keywords: ["compass", "navigation", "direction", "explore", "north"], type: "mdi", icon: mdiCompass },
|
||||
{ name: "mdi-island", keywords: ["island", "tropical", "palm", "vacation", "paradise"], type: "mdi", icon: mdiIsland },
|
||||
{ name: "mdi-kite", keywords: ["kite", "wind", "fly", "outdoor", "fun"], type: "mdi", icon: mdiKite },
|
||||
{ name: "mdi-lighthouse", keywords: ["lighthouse", "coast", "sea", "beacon", "navigation"], type: "mdi", icon: mdiLighthouse },
|
||||
{ name: "mdi-palm", keywords: ["palm", "tree", "tropical", "beach", "vacation"], type: "mdi", icon: mdiPalmTree },
|
||||
{ name: "mdi-parachute", keywords: ["parachute", "skydive", "adventure", "jump", "air"], type: "mdi", icon: mdiParachute },
|
||||
{ name: "mdi-tent", keywords: ["tent", "camping", "outdoor", "hike", "adventure"], type: "mdi", icon: mdiTent },
|
||||
{ name: "mdi-volcano", keywords: ["volcano", "lava", "eruption", "mountain", "nature"], type: "mdi", icon: mdiVolcano },
|
||||
{ name: "mdi-waterfall", keywords: ["waterfall", "water", "nature", "cascade", "river"], type: "mdi", icon: mdiWaterfall },
|
||||
{ name: "mdi-wave", keywords: ["wave", "ocean", "sea", "surf", "water"], type: "mdi", icon: mdiWave },
|
||||
// More Sports
|
||||
{ name: "mdi-badminton", keywords: ["badminton", "sport", "racket", "shuttlecock"], type: "mdi", icon: mdiBadminton },
|
||||
{ name: "mdi-baseball", keywords: ["baseball", "sport", "ball", "bat", "game"], type: "mdi", icon: mdiBaseball },
|
||||
{ name: "mdi-bowling", keywords: ["bowling", "sport", "ball", "pins", "alley"], type: "mdi", icon: mdiBowling },
|
||||
{ name: "mdi-cricket", keywords: ["cricket", "sport", "bat", "ball", "wicket"], type: "mdi", icon: mdiCricket },
|
||||
{ name: "mdi-curling", keywords: ["curling", "sport", "ice", "stone", "winter"], type: "mdi", icon: mdiCurling },
|
||||
{ name: "mdi-football", keywords: ["football", "american", "sport", "nfl", "ball"], type: "mdi", icon: mdiFootball },
|
||||
{ name: "mdi-hockey", keywords: ["hockey", "ice", "sport", "puck", "stick"], type: "mdi", icon: mdiHockeyPuck },
|
||||
{ name: "mdi-pool", keywords: ["pool", "billiards", "snooker", "game", "table"], type: "mdi", icon: mdiPool },
|
||||
{ name: "mdi-skateboard", keywords: ["skateboard", "skate", "sport", "trick", "street"], type: "mdi", icon: mdiSkateboard },
|
||||
{ name: "mdi-snowboard", keywords: ["snowboard", "snow", "winter", "sport", "mountain"], type: "mdi", icon: mdiSnowboard },
|
||||
{ name: "mdi-volleyball", keywords: ["volleyball", "sport", "ball", "beach", "game"], type: "mdi", icon: mdiVolleyball },
|
||||
{ name: "mdi-water-polo", keywords: ["water polo", "sport", "pool", "swim", "ball"], type: "mdi", icon: mdiWaterPolo },
|
||||
{ name: "mdi-roller-skate", keywords: ["roller", "skate", "sport", "wheels", "inline"], type: "mdi", icon: mdiRollerSkate },
|
||||
{ name: "mdi-billiards", keywords: ["billiards", "pool", "snooker", "cue", "table"], type: "mdi", icon: mdiBilliards },
|
||||
// Music Instruments
|
||||
{ name: "mdi-guitar", keywords: ["guitar", "music", "instrument", "rock", "acoustic"], type: "mdi", icon: mdiGuitarAcoustic },
|
||||
{ name: "mdi-piano", keywords: ["piano", "music", "instrument", "keyboard", "keys"], type: "mdi", icon: mdiPiano },
|
||||
{ name: "mdi-violin", keywords: ["violin", "music", "instrument", "classical", "strings"], type: "mdi", icon: mdiViolin },
|
||||
{ name: "mdi-metronome", keywords: ["metronome", "music", "tempo", "rhythm", "beat"], type: "mdi", icon: mdiMetronome },
|
||||
// More Food & Kitchen
|
||||
{ name: "mdi-baguette", keywords: ["baguette", "bread", "french", "bakery", "food"], type: "mdi", icon: mdiBaguette },
|
||||
{ name: "mdi-blender", keywords: ["blender", "mixer", "kitchen", "smoothie", "food"], type: "mdi", icon: mdiBlender },
|
||||
{ name: "mdi-carrot", keywords: ["carrot", "vegetable", "food", "healthy", "garden"], type: "mdi", icon: mdiCarrot },
|
||||
{ name: "mdi-cherries", keywords: ["cherry", "cherries", "fruit", "food", "sweet"], type: "mdi", icon: mdiFruitCherries },
|
||||
{ name: "mdi-citrus", keywords: ["citrus", "orange", "lemon", "fruit", "food", "vitamin"], type: "mdi", icon: mdiFruitCitrus },
|
||||
{ name: "mdi-cookie", keywords: ["cookie", "biscuit", "sweet", "snack", "bake"], type: "mdi", icon: mdiCookie },
|
||||
{ name: "mdi-corn", keywords: ["corn", "maize", "vegetable", "food", "farm"], type: "mdi", icon: mdiCorn },
|
||||
{ name: "mdi-drumstick", keywords: ["drumstick", "chicken", "meat", "food", "poultry"], type: "mdi", icon: mdiFoodDrumstick },
|
||||
{ name: "mdi-egg", keywords: ["egg", "food", "breakfast", "cooking", "chicken"], type: "mdi", icon: mdiEgg },
|
||||
{ name: "mdi-grapes", keywords: ["grapes", "fruit", "wine", "vineyard", "food"], type: "mdi", icon: mdiFruitGrapes },
|
||||
{ name: "mdi-kettle", keywords: ["kettle", "tea", "water", "boil", "kitchen"], type: "mdi", icon: mdiKettle },
|
||||
{ name: "mdi-microwave", keywords: ["microwave", "kitchen", "heat", "food", "appliance"], type: "mdi", icon: mdiMicrowave },
|
||||
{ name: "mdi-muffin", keywords: ["muffin", "cake", "bake", "sweet", "dessert"], type: "mdi", icon: mdiMuffin },
|
||||
{ name: "mdi-mushroom", keywords: ["mushroom", "food", "fungi", "forest", "nature"], type: "mdi", icon: mdiMushroom },
|
||||
{ name: "mdi-noodles", keywords: ["noodles", "pasta", "ramen", "food", "asian"], type: "mdi", icon: mdiNoodles },
|
||||
{ name: "mdi-oven", keywords: ["oven", "bake", "cook", "kitchen", "heat"], type: "mdi", icon: mdiToasterOven },
|
||||
{ name: "mdi-pasta", keywords: ["pasta", "spaghetti", "italian", "food", "noodles"], type: "mdi", icon: mdiPasta },
|
||||
{ name: "mdi-peanut", keywords: ["peanut", "nut", "snack", "food", "allergy"], type: "mdi", icon: mdiPeanut },
|
||||
{ name: "mdi-popcorn", keywords: ["popcorn", "snack", "movie", "cinema", "food"], type: "mdi", icon: mdiPopcorn },
|
||||
{ name: "mdi-pot", keywords: ["pot", "cook", "kitchen", "stew", "soup"], type: "mdi", icon: mdiPot },
|
||||
{ name: "mdi-rice", keywords: ["rice", "grain", "food", "asian", "bowl"], type: "mdi", icon: mdiRice },
|
||||
{ name: "mdi-steak", keywords: ["steak", "meat", "beef", "food", "grill", "bbq"], type: "mdi", icon: mdiFoodSteak },
|
||||
{ name: "mdi-stove", keywords: ["stove", "cook", "kitchen", "burner", "gas"], type: "mdi", icon: mdiStove },
|
||||
{ name: "mdi-taco", keywords: ["taco", "mexican", "food", "burrito", "wrap"], type: "mdi", icon: mdiTaco },
|
||||
{ name: "mdi-watermelon", keywords: ["watermelon", "fruit", "summer", "food", "sweet"], type: "mdi", icon: mdiFruitWatermelon },
|
||||
{ name: "mdi-glass-mug", keywords: ["glass", "mug", "beer", "drink", "pub"], type: "mdi", icon: mdiGlassMug },
|
||||
{ name: "mdi-glass-wine", keywords: ["glass", "wine", "drink", "alcohol", "dinner"], type: "mdi", icon: mdiGlassWine },
|
||||
{ name: "mdi-silverware", keywords: ["silverware", "cutlery", "fork", "knife", "dining"], type: "mdi", icon: mdiSilverware },
|
||||
{ name: "mdi-candy-cane", keywords: ["candy", "cane", "christmas", "sweet", "holiday"], type: "mdi", icon: mdiCandycane },
|
||||
{ name: "mdi-pumpkin", keywords: ["pumpkin", "halloween", "autumn", "food", "squash"], type: "mdi", icon: mdiPumpkin },
|
||||
// Animals
|
||||
{ name: "mdi-bat", keywords: ["bat", "animal", "halloween", "night", "vampire"], type: "mdi", icon: mdiBat },
|
||||
{ name: "mdi-bee", keywords: ["bee", "insect", "honey", "buzz", "pollinate"], type: "mdi", icon: mdiBee },
|
||||
{ name: "mdi-cow", keywords: ["cow", "animal", "farm", "milk", "cattle"], type: "mdi", icon: mdiCow },
|
||||
{ name: "mdi-duck", keywords: ["duck", "animal", "bird", "pond", "quack"], type: "mdi", icon: mdiDuck },
|
||||
{ name: "mdi-penguin", keywords: ["penguin", "animal", "arctic", "bird", "ice", "linux"], type: "mdi", icon: mdiPenguin },
|
||||
{ name: "mdi-panda", keywords: ["panda", "bear", "animal", "bamboo", "china"], type: "mdi", icon: mdiPanda },
|
||||
{ name: "mdi-rabbit", keywords: ["rabbit", "bunny", "animal", "pet", "easter"], type: "mdi", icon: mdiRabbit },
|
||||
{ name: "mdi-shark", keywords: ["shark", "fish", "ocean", "sea", "animal"], type: "mdi", icon: mdiShark },
|
||||
{ name: "mdi-sheep", keywords: ["sheep", "animal", "farm", "wool", "lamb"], type: "mdi", icon: mdiSheep },
|
||||
{ name: "mdi-snake", keywords: ["snake", "animal", "reptile", "python", "serpent"], type: "mdi", icon: mdiSnake },
|
||||
{ name: "mdi-spider", keywords: ["spider", "insect", "web", "halloween", "arachnid"], type: "mdi", icon: mdiSpider },
|
||||
{ name: "mdi-turtle", keywords: ["turtle", "animal", "slow", "shell", "reptile"], type: "mdi", icon: mdiTurtle },
|
||||
{ name: "mdi-unicorn", keywords: ["unicorn", "fantasy", "magic", "horse", "mythical"], type: "mdi", icon: mdiUnicorn },
|
||||
// Home & Garden
|
||||
{ name: "mdi-balcony", keywords: ["balcony", "terrace", "outdoor", "home", "patio"], type: "mdi", icon: mdiBalcony },
|
||||
{ name: "mdi-barn", keywords: ["barn", "farm", "rural", "agriculture", "building"], type: "mdi", icon: mdiBarn },
|
||||
{ name: "mdi-bench", keywords: ["bench", "park", "sit", "outdoor", "garden"], type: "mdi", icon: mdiBench },
|
||||
{ name: "mdi-bridge", keywords: ["bridge", "crossing", "river", "road", "connect"], type: "mdi", icon: mdiBridge },
|
||||
{ name: "mdi-cactus", keywords: ["cactus", "plant", "desert", "succulent", "garden"], type: "mdi", icon: mdiCactus },
|
||||
{ name: "mdi-door-open", keywords: ["door", "open", "entrance", "exit", "room"], type: "mdi", icon: mdiDoorOpen },
|
||||
{ name: "mdi-fountain", keywords: ["fountain", "water", "park", "garden", "decor"], type: "mdi", icon: mdiFountain },
|
||||
{ name: "mdi-garage", keywords: ["garage", "car", "parking", "storage", "home"], type: "mdi", icon: mdiGarage },
|
||||
{ name: "mdi-grass", keywords: ["grass", "lawn", "garden", "green", "yard"], type: "mdi", icon: mdiGrass },
|
||||
{ name: "mdi-greenhouse", keywords: ["greenhouse", "garden", "plant", "grow", "glass"], type: "mdi", icon: mdiGreenhouse },
|
||||
{ name: "mdi-hot-tub", keywords: ["hot tub", "jacuzzi", "spa", "relax", "bath"], type: "mdi", icon: mdiHotTub },
|
||||
{ name: "mdi-leaf-maple", keywords: ["maple", "leaf", "autumn", "fall", "canada"], type: "mdi", icon: mdiLeafMaple },
|
||||
{ name: "mdi-mailbox", keywords: ["mailbox", "mail", "letter", "post", "delivery"], type: "mdi", icon: mdiMailbox },
|
||||
{ name: "mdi-solar-panel", keywords: ["solar", "panel", "energy", "sun", "green", "power"], type: "mdi", icon: mdiSolarPanel },
|
||||
{ name: "mdi-stairs", keywords: ["stairs", "steps", "climb", "floor", "building"], type: "mdi", icon: mdiStairs },
|
||||
{ name: "mdi-tulip", keywords: ["tulip", "flower", "garden", "spring", "plant"], type: "mdi", icon: mdiFlowerTulip },
|
||||
{ name: "mdi-wardrobe", keywords: ["wardrobe", "closet", "clothes", "furniture", "bedroom"], type: "mdi", icon: mdiWardrobe },
|
||||
{ name: "mdi-wheelbarrow", keywords: ["wheelbarrow", "garden", "dirt", "haul", "landscaping"], type: "mdi", icon: mdiWheelBarrow },
|
||||
{ name: "mdi-wind-turbine", keywords: ["wind", "turbine", "energy", "green", "power", "renewable"], type: "mdi", icon: mdiWindTurbine },
|
||||
// Vehicles & Transport
|
||||
{ name: "mdi-bus-stop", keywords: ["bus", "stop", "station", "public", "transport"], type: "mdi", icon: mdiBusStop },
|
||||
{ name: "mdi-caravan", keywords: ["caravan", "rv", "camper", "travel", "road trip"], type: "mdi", icon: mdiCaravan },
|
||||
{ name: "mdi-dump-truck", keywords: ["dump", "truck", "construction", "haul", "heavy"], type: "mdi", icon: mdiDumpTruck },
|
||||
{ name: "mdi-ferry", keywords: ["ferry", "boat", "ship", "water", "transport"], type: "mdi", icon: mdiFerry },
|
||||
{ name: "mdi-gas-station", keywords: ["gas", "station", "fuel", "petrol", "diesel"], type: "mdi", icon: mdiGasStation },
|
||||
{ name: "mdi-helicopter", keywords: ["helicopter", "fly", "air", "chopper", "transport"], type: "mdi", icon: mdiHelicopter },
|
||||
{ name: "mdi-highway", keywords: ["highway", "road", "drive", "freeway", "motorway"], type: "mdi", icon: mdiHighway },
|
||||
{ name: "mdi-moped", keywords: ["moped", "scooter", "ride", "vespa", "motorcycle"], type: "mdi", icon: mdiMoped },
|
||||
{ name: "mdi-parking", keywords: ["parking", "car", "lot", "space", "garage"], type: "mdi", icon: mdiParking },
|
||||
{ name: "mdi-submarine", keywords: ["submarine", "underwater", "navy", "ocean", "dive"], type: "mdi", icon: mdiSubmarine },
|
||||
{ name: "mdi-tractor", keywords: ["tractor", "farm", "agriculture", "field", "plow"], type: "mdi", icon: mdiTractor },
|
||||
{ name: "mdi-traffic-cone", keywords: ["traffic", "cone", "construction", "road", "warning"], type: "mdi", icon: mdiTrafficCone },
|
||||
{ name: "mdi-traffic-light", keywords: ["traffic", "light", "signal", "road", "stop"], type: "mdi", icon: mdiTrafficLight },
|
||||
{ name: "mdi-ufo", keywords: ["ufo", "alien", "space", "flying saucer", "extraterrestrial"], type: "mdi", icon: mdiUfo },
|
||||
// Tools & Construction
|
||||
{ name: "mdi-anvil", keywords: ["anvil", "forge", "blacksmith", "metal", "craft"], type: "mdi", icon: mdiAnvil },
|
||||
{ name: "mdi-axe", keywords: ["axe", "chop", "wood", "lumber", "tool"], type: "mdi", icon: mdiAxe },
|
||||
{ name: "mdi-barrel", keywords: ["barrel", "container", "storage", "wine", "oil"], type: "mdi", icon: mdiBarrel },
|
||||
{ name: "mdi-brush", keywords: ["brush", "paint", "art", "clean", "tool"], type: "mdi", icon: mdiBrush },
|
||||
{ name: "mdi-bucket", keywords: ["bucket", "pail", "water", "clean", "container"], type: "mdi", icon: mdiBucket },
|
||||
{ name: "mdi-bulldozer", keywords: ["bulldozer", "construction", "heavy", "earth", "dig"], type: "mdi", icon: mdiBulldozer },
|
||||
{ name: "mdi-dolly", keywords: ["dolly", "cart", "move", "transport", "warehouse"], type: "mdi", icon: mdiDolly },
|
||||
{ name: "mdi-gavel", keywords: ["gavel", "judge", "court", "law", "justice", "auction"], type: "mdi", icon: mdiGavel },
|
||||
{ name: "mdi-hard-hat", keywords: ["hard hat", "helmet", "construction", "safety", "work"], type: "mdi", icon: mdiHardHat },
|
||||
{ name: "mdi-ladder", keywords: ["ladder", "climb", "step", "height", "tool"], type: "mdi", icon: mdiLadder },
|
||||
{ name: "mdi-nail", keywords: ["nail", "hammer", "construction", "build", "wood"], type: "mdi", icon: mdiNail },
|
||||
{ name: "mdi-pipe", keywords: ["pipe", "plumbing", "water", "tube", "connect"], type: "mdi", icon: mdiPipe },
|
||||
{ name: "mdi-shovel", keywords: ["shovel", "dig", "garden", "earth", "tool"], type: "mdi", icon: mdiShovel },
|
||||
{ name: "mdi-spray", keywords: ["spray", "paint", "can", "aerosol", "graffiti"], type: "mdi", icon: mdiSpray },
|
||||
// Fun & Toys
|
||||
{ name: "mdi-boomerang", keywords: ["boomerang", "throw", "return", "toy", "australia"], type: "mdi", icon: mdiBoomerang },
|
||||
{ name: "mdi-castle", keywords: ["castle", "fortress", "medieval", "king", "princess"], type: "mdi", icon: mdiCastle },
|
||||
{ name: "mdi-chess-knight", keywords: ["chess", "knight", "game", "strategy", "board"], type: "mdi", icon: mdiChessKnight },
|
||||
{ name: "mdi-chess-rook", keywords: ["chess", "rook", "game", "strategy", "board", "tower"], type: "mdi", icon: mdiChessRook },
|
||||
{ name: "mdi-dice", keywords: ["dice", "game", "random", "roll", "chance", "board"], type: "mdi", icon: mdiDiceMultiple },
|
||||
{ name: "mdi-drone", keywords: ["drone", "fly", "camera", "aerial", "quadcopter"], type: "mdi", icon: mdiDrone },
|
||||
{ name: "mdi-firework", keywords: ["firework", "celebration", "party", "new year", "explosion"], type: "mdi", icon: mdiFirework },
|
||||
{ name: "mdi-pinwheel", keywords: ["pinwheel", "toy", "wind", "spin", "colorful"], type: "mdi", icon: mdiPinwheel },
|
||||
{ name: "mdi-pirate", keywords: ["pirate", "skull", "ship", "adventure", "treasure"], type: "mdi", icon: mdiPirate },
|
||||
{ name: "mdi-robot", keywords: ["robot", "ai", "machine", "automation", "bot"], type: "mdi", icon: mdiRobot },
|
||||
{ name: "mdi-snowman", keywords: ["snowman", "winter", "snow", "christmas", "cold"], type: "mdi", icon: mdiSnowman },
|
||||
{ name: "mdi-sword", keywords: ["sword", "weapon", "fight", "medieval", "knight"], type: "mdi", icon: mdiSword },
|
||||
{ name: "mdi-teddy-bear", keywords: ["teddy", "bear", "toy", "stuffed", "child", "kids"], type: "mdi", icon: mdiTeddyBear },
|
||||
{ name: "mdi-treasure-chest", keywords: ["treasure", "chest", "gold", "pirate", "loot"], type: "mdi", icon: mdiTreasureChest },
|
||||
// Lifestyle & Fashion
|
||||
{ name: "mdi-candle", keywords: ["candle", "light", "flame", "romantic", "relax", "scent"], type: "mdi", icon: mdiCandle },
|
||||
{ name: "mdi-glasses", keywords: ["glasses", "sunglasses", "vision", "read", "eyewear"], type: "mdi", icon: mdiGlasses },
|
||||
{ name: "mdi-hanger", keywords: ["hanger", "clothes", "wardrobe", "fashion", "closet"], type: "mdi", icon: mdiHanger },
|
||||
{ name: "mdi-lipstick", keywords: ["lipstick", "makeup", "beauty", "cosmetics", "fashion"], type: "mdi", icon: mdiLipstick },
|
||||
{ name: "mdi-mustache", keywords: ["mustache", "face", "gentleman", "barber", "style"], type: "mdi", icon: mdiMustache },
|
||||
{ name: "mdi-shoe", keywords: ["shoe", "footwear", "sneaker", "fashion", "walk"], type: "mdi", icon: mdiShoeSneaker },
|
||||
{ name: "mdi-sunglasses", keywords: ["sunglasses", "cool", "sun", "fashion", "summer"], type: "mdi", icon: mdiSunglasses },
|
||||
{ name: "mdi-tie", keywords: ["tie", "business", "formal", "suit", "office"], type: "mdi", icon: mdiTie },
|
||||
// Miscellaneous
|
||||
{ name: "mdi-archive", keywords: ["archive", "storage", "backup", "old", "box"], type: "mdi", icon: mdiArchive },
|
||||
{ name: "mdi-bandage", keywords: ["bandage", "first aid", "wound", "medical", "plaster"], type: "mdi", icon: mdiBandage },
|
||||
{ name: "mdi-barcode", keywords: ["barcode", "scan", "product", "shop", "inventory"], type: "mdi", icon: mdiBarcode },
|
||||
{ name: "mdi-billboard", keywords: ["billboard", "advertising", "sign", "marketing", "ad"], type: "mdi", icon: mdiBillboard },
|
||||
{ name: "mdi-bomb", keywords: ["bomb", "explosive", "danger", "warning", "blast"], type: "mdi", icon: mdiBomb },
|
||||
{ name: "mdi-bone", keywords: ["bone", "skeleton", "dog", "anatomy", "medical"], type: "mdi", icon: mdiBone },
|
||||
{ name: "mdi-bookshelf", keywords: ["bookshelf", "library", "books", "shelf", "read"], type: "mdi", icon: mdiBookshelf },
|
||||
{ name: "mdi-bullhorn", keywords: ["bullhorn", "megaphone", "announce", "loud", "marketing"], type: "mdi", icon: mdiBullhorn },
|
||||
{ name: "mdi-calculator", keywords: ["calculator", "math", "calculate", "numbers", "finance"], type: "mdi", icon: mdiCalculator },
|
||||
{ name: "mdi-clipboard", keywords: ["clipboard", "paste", "copy", "notes", "list"], type: "mdi", icon: mdiClipboard },
|
||||
{ name: "mdi-clover", keywords: ["clover", "luck", "irish", "shamrock", "four leaf"], type: "mdi", icon: mdiClover },
|
||||
{ name: "mdi-cog", keywords: ["cog", "gear", "settings", "config", "mechanical"], type: "mdi", icon: mdiCog },
|
||||
{ name: "mdi-crystal-ball", keywords: ["crystal", "ball", "magic", "fortune", "predict"], type: "mdi", icon: mdiCrystalBall },
|
||||
{ name: "mdi-cup", keywords: ["cup", "drink", "tea", "mug", "hot"], type: "mdi", icon: mdiCup },
|
||||
{ name: "mdi-elevator", keywords: ["elevator", "lift", "floor", "building", "up"], type: "mdi", icon: mdiElevator },
|
||||
{ name: "mdi-engine", keywords: ["engine", "motor", "car", "power", "mechanical"], type: "mdi", icon: mdiEngine },
|
||||
{ name: "mdi-fan", keywords: ["fan", "cool", "air", "ventilation", "spin"], type: "mdi", icon: mdiFan },
|
||||
{ name: "mdi-feather", keywords: ["feather", "write", "quill", "bird", "light"], type: "mdi", icon: mdiFeather },
|
||||
{ name: "mdi-fire-extinguisher", keywords: ["fire", "extinguisher", "safety", "emergency", "flame"], type: "mdi", icon: mdiFireExtinguisher },
|
||||
{ name: "mdi-fire-hydrant", keywords: ["fire", "hydrant", "water", "emergency", "firefighter"], type: "mdi", icon: mdiFireHydrant },
|
||||
{ name: "mdi-fire-truck", keywords: ["fire", "truck", "emergency", "firefighter", "rescue"], type: "mdi", icon: mdiFireTruck },
|
||||
{ name: "mdi-flag-checkered", keywords: ["flag", "checkered", "race", "finish", "winner"], type: "mdi", icon: mdiFlagCheckered },
|
||||
{ name: "mdi-flash", keywords: ["flash", "lightning", "bolt", "power", "energy", "fast"], type: "mdi", icon: mdiFlash },
|
||||
{ name: "mdi-flashlight", keywords: ["flashlight", "torch", "light", "dark", "search"], type: "mdi", icon: mdiFlashlight },
|
||||
{ name: "mdi-globe-model", keywords: ["globe", "world", "earth", "geography", "model"], type: "mdi", icon: mdiGlobeModel },
|
||||
{ name: "mdi-harddisk", keywords: ["harddisk", "storage", "drive", "data", "computer"], type: "mdi", icon: mdiHarddisk },
|
||||
{ name: "mdi-hook", keywords: ["hook", "hang", "catch", "fishing", "crane"], type: "mdi", icon: mdiHook },
|
||||
{ name: "mdi-horseshoe", keywords: ["horseshoe", "luck", "horse", "equestrian", "ranch"], type: "mdi", icon: mdiHorseshoe },
|
||||
{ name: "mdi-hurricane", keywords: ["hurricane", "storm", "weather", "tornado", "wind"], type: "mdi", icon: mdiWeatherHurricane },
|
||||
{ name: "mdi-church", keywords: ["church", "religion", "christian", "worship", "building"], type: "mdi", icon: mdiChurch },
|
||||
{ name: "mdi-cross", keywords: ["cross", "religion", "christian", "faith", "crucifix", "church", "jesus"], type: "mdi", icon: mdiCross },
|
||||
{ name: "mdi-knife", keywords: ["knife", "cut", "kitchen", "blade", "sharp"], type: "mdi", icon: mdiKnife },
|
||||
{ name: "mdi-library", keywords: ["library", "books", "read", "study", "education"], type: "mdi", icon: mdiLibrary },
|
||||
{ name: "mdi-lifebuoy", keywords: ["lifebuoy", "rescue", "safety", "swim", "help"], type: "mdi", icon: mdiLifebuoy },
|
||||
{ name: "mdi-map-marker", keywords: ["map", "marker", "pin", "location", "gps", "place"], type: "mdi", icon: mdiMapMarker },
|
||||
{ name: "mdi-mirror", keywords: ["mirror", "reflect", "bathroom", "vanity", "glass"], type: "mdi", icon: mdiMirror },
|
||||
{ name: "mdi-molecule", keywords: ["molecule", "chemistry", "science", "atom", "bond"], type: "mdi", icon: mdiMolecule },
|
||||
{ name: "mdi-mosque", keywords: ["mosque", "islam", "religion", "worship", "building"], type: "mdi", icon: mdiMosque },
|
||||
{ name: "mdi-orbit", keywords: ["orbit", "space", "planet", "satellite", "rotate"], type: "mdi", icon: mdiOrbit },
|
||||
{ name: "mdi-paper-roll", keywords: ["paper", "roll", "toilet", "tissue", "scroll"], type: "mdi", icon: mdiPaperRoll },
|
||||
{ name: "mdi-passport", keywords: ["passport", "travel", "identity", "document", "border"], type: "mdi", icon: mdiPassport },
|
||||
{ name: "mdi-pillar", keywords: ["pillar", "column", "architecture", "greek", "building"], type: "mdi", icon: mdiPillar },
|
||||
{ name: "mdi-police-badge", keywords: ["police", "badge", "law", "officer", "authority"], type: "mdi", icon: mdiPoliceBadge },
|
||||
{ name: "mdi-radiator", keywords: ["radiator", "heat", "warm", "heating", "home"], type: "mdi", icon: mdiRadiator },
|
||||
{ name: "mdi-safe", keywords: ["safe", "vault", "secure", "money", "lock"], type: "mdi", icon: mdiSafe },
|
||||
{ name: "mdi-satellite", keywords: ["satellite", "space", "orbit", "signal", "communication"], type: "mdi", icon: mdiSatellite },
|
||||
{ name: "mdi-scale", keywords: ["scale", "weight", "balance", "measure", "justice"], type: "mdi", icon: mdiScale },
|
||||
{ name: "mdi-seal", keywords: ["seal", "stamp", "certificate", "official", "approve"], type: "mdi", icon: mdiSeal },
|
||||
{ name: "mdi-sign-real-estate", keywords: ["sign", "real estate", "house", "sale", "property"], type: "mdi", icon: mdiSignRealEstate },
|
||||
{ name: "mdi-skull", keywords: ["skull", "death", "danger", "pirate", "halloween", "skeleton"], type: "mdi", icon: mdiSkull },
|
||||
{ name: "mdi-stadium", keywords: ["stadium", "arena", "sport", "concert", "event"], type: "mdi", icon: mdiStadium },
|
||||
{ name: "mdi-star-shooting", keywords: ["star", "shooting", "wish", "meteor", "night"], type: "mdi", icon: mdiStarShooting },
|
||||
{ name: "mdi-steering", keywords: ["steering", "wheel", "drive", "car", "vehicle"], type: "mdi", icon: mdiSteering },
|
||||
{ name: "mdi-syringe", keywords: ["syringe", "injection", "vaccine", "medical", "needle"], type: "mdi", icon: mdiNeedle },
|
||||
{ name: "mdi-target", keywords: ["target", "aim", "goal", "bullseye", "focus"], type: "mdi", icon: mdiTarget },
|
||||
{ name: "mdi-telescope", keywords: ["telescope", "astronomy", "space", "star", "observe"], type: "mdi", icon: mdiTelescope },
|
||||
{ name: "mdi-timer", keywords: ["timer", "stopwatch", "countdown", "time", "speed"], type: "mdi", icon: mdiTimer },
|
||||
{ name: "mdi-tornado", keywords: ["tornado", "storm", "wind", "weather", "twister"], type: "mdi", icon: mdiWeatherTornado },
|
||||
{ name: "mdi-trophy", keywords: ["trophy", "award", "winner", "champion", "cup", "prize"], type: "mdi", icon: mdiTrophy },
|
||||
{ name: "mdi-typewriter", keywords: ["typewriter", "write", "vintage", "text", "author"], type: "mdi", icon: mdiTypewriter },
|
||||
{ name: "mdi-webcam", keywords: ["webcam", "camera", "video", "stream", "call"], type: "mdi", icon: mdiWebcam },
|
||||
{ name: "mdi-whistle", keywords: ["whistle", "referee", "sport", "blow", "signal"], type: "mdi", icon: mdiWhistle },
|
||||
{ name: "mdi-beaker", keywords: ["beaker", "lab", "science", "chemistry", "experiment"], type: "mdi", icon: mdiBeaker },
|
||||
{ name: "mdi-mortar-pestle", keywords: ["mortar", "pestle", "pharmacy", "grind", "spice", "medicine"], type: "mdi", icon: mdiMortarPestle },
|
||||
{ name: "mdi-charity", keywords: ["charity", "donate", "help", "volunteer", "give"], type: "mdi", icon: mdiCharity },
|
||||
{ name: "mdi-coat-rack", keywords: ["coat", "rack", "hanger", "hall", "stand"], type: "mdi", icon: mdiCoatRack },
|
||||
{ name: "mdi-propane-tank", keywords: ["propane", "tank", "gas", "grill", "fuel"], type: "mdi", icon: mdiPropaneTank },
|
||||
];
|
||||
|
||||
const allIcons: IconEntry[] = [...faIcons, ...mdiIcons];
|
||||
|
||||
// --- Component ---
|
||||
import { allIcons, faIcons, mdiIcons } from "./iconRegistry";
|
||||
|
||||
interface IconPickerProps {
|
||||
selectedIcon: string;
|
||||
@ -785,5 +139,5 @@ export default function IconPicker({ selectedIcon, onSelect, darkMode }: IconPic
|
||||
);
|
||||
}
|
||||
|
||||
// Re-export for use in ProjectIcon renderer
|
||||
export { allIcons, type IconEntry };
|
||||
// Re-export for backwards compatibility
|
||||
export { allIcons, type IconEntry } from "./iconRegistry";
|
||||
|
||||
@ -12,7 +12,9 @@ import { useSession, signOut } from "next-auth/react";
|
||||
import CalendarEventModal from "./CalendarEventModal";
|
||||
import TaskRecurrenceModal from "./RecurrenceModal";
|
||||
import { GridTaskBlock } from "./GridTaskBlock";
|
||||
import IconPicker, { allIcons } from "./IconPicker";
|
||||
import dynamic from "next/dynamic";
|
||||
const IconPicker = dynamic(() => import("./IconPicker"), { ssr: false });
|
||||
import { allIcons } from "./iconRegistry";
|
||||
import MdiIcon from "@mdi/react";
|
||||
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
|
||||
import { faApple, faGoogle, faMicrosoft, faNotion } from "@fortawesome/free-brands-svg-icons";
|
||||
|
||||
648
src/components/iconRegistry.ts
Normal file
648
src/components/iconRegistry.ts
Normal file
@ -0,0 +1,648 @@
|
||||
import {
|
||||
faFolder, faBriefcase, faBullseye, faRocket, faStar, faLightbulb,
|
||||
faFire, faPalette, faMusic, faMobileScreen, faLaptop, faGlobe,
|
||||
faHouse, faBuilding, faChartBar, faChartLine, faWrench, faBolt,
|
||||
faGamepad, faPen, faBook, faGraduationCap, faFlask, faMicroscope,
|
||||
faDumbbell, faUtensils, faPlane, faLeaf, faHeart, faCartShopping,
|
||||
faCoins, faGift, faCamera, faFilm, faBroom, faPaw, faEarthAmericas,
|
||||
faLock, faCheck, faCode, faCube, faUsers, faCar, faMountain,
|
||||
faUmbrella, faClock, faTag, faPhone, faEnvelope, faPrint,
|
||||
faDatabase, faServer, faCloud, faWifi, faBug, faShield,
|
||||
faBell, faBookmark, faCalendar, faCircleCheck, faCircleXmark,
|
||||
faComment, faCompass, faCreditCard, faCrown, faDiamond,
|
||||
faDisplay, faDownload, faDroplet, faEye, faFaceSmile,
|
||||
faFile, faFileCode, faFilter, faFingerprint, faFlag,
|
||||
faGear, faGlasses, faHandshake, faHashtag, faHeadphones,
|
||||
faHospital, faImage, faInbox, faInfinity, faKey,
|
||||
faLanguage, faLayerGroup, faLink, faListCheck, faMagnet,
|
||||
faMap, faMapPin, faMedal, faMessage, faMicrophone,
|
||||
faMoon, faNewspaper, faPaperPlane, faPaperclip, faPaste,
|
||||
faPeace, faPercent, faPersonRunning, faPiggyBank, faPills,
|
||||
faPuzzlePiece, faQrcode, faQuoteLeft, faRobot, faRotate,
|
||||
faRoute, faRuler, faScissors, faScrewdriverWrench, faSeedling,
|
||||
faShare, faShirt, faShop, faSignal, faSitemap,
|
||||
faSliders, faSnowflake, faSpa, faSquareCheck, faStethoscope,
|
||||
faSun, faTableCells, faTerminal, faThumbsUp, faToolbox,
|
||||
faTrashCan, faTrophy, faTruck, faTv, faUpload,
|
||||
faUserGear, faVault, faVideo, faVolumeHigh, faWallet,
|
||||
faWandMagicSparkles, faWarehouse, faWeight, faWindowMaximize,
|
||||
IconDefinition,
|
||||
} from "@fortawesome/free-solid-svg-icons";
|
||||
import {
|
||||
mdiHomeAssistant, mdiDocker, mdiGithub, mdiGitlab, mdiLinux, mdiApple,
|
||||
mdiMicrosoftWindows, mdiAndroid, mdiReact, mdiNodejs, mdiLanguagePython,
|
||||
mdiLanguageJavascript, mdiLanguageTypescript, mdiLanguageHtml5, mdiLanguageCss3,
|
||||
mdiAws, mdiGoogleCloud, mdiMicrosoftAzure, mdiKubernetes, mdiTerraform,
|
||||
mdiRaspberryPi, mdiNas, mdiRouter, mdiIpNetwork, mdiServerNetwork,
|
||||
mdiBabyCarriage, mdiDog, mdiCat, mdiFish, mdiBird,
|
||||
mdiFlower, mdiTree, mdiForest, mdiWeatherSunny, mdiWeatherRainy,
|
||||
mdiBicycle, mdiMotorbike, mdiTrain, mdiBus, mdiAirplane,
|
||||
mdiSailBoat, mdiSwim, mdiSki, mdiSoccer, mdiBasketball,
|
||||
mdiTennis, mdiGolf, mdiYoga, mdiMeditation, mdiRunFast,
|
||||
mdiFood, mdiFoodApple, mdiCoffee, mdiBeer, mdiGlassCocktail,
|
||||
mdiPizza, mdiCupcake, mdiIceCream, mdiGrill, mdiFridge,
|
||||
mdiWashingMachine, mdiVacuum, mdiSofa, mdiBed, mdiBathtub,
|
||||
mdiToilet, mdiLamp, mdiCeilingFan, mdiThermometer, mdiFireplace,
|
||||
mdiBriefcase, mdiCash, mdiCurrencyEur, mdiCurrencyUsd, mdiCurrencyBtc,
|
||||
mdiChartLine, mdiChartPie, mdiChartBar, mdiTrendingUp, mdiBank,
|
||||
mdiSchool, mdiBookOpenVariant, mdiNotebook, mdiPencil, mdiPaletteOutline,
|
||||
mdiMusic, mdiMovieOpen, mdiTelevision, mdiGamepadVariant, mdiPuzzle,
|
||||
mdiCamera, mdiMicrophone, mdiHeadphones, mdiSpeaker, mdiPrinter3d,
|
||||
mdiHeart, mdiHandHeart, mdiHumanMaleFemaleChild, mdiAccountGroup, mdiPartyPopper,
|
||||
mdiGift, mdiBalloon, mdiCake, mdiRing, mdiEmoticonHappy,
|
||||
mdiMedicalBag, mdiHospitalBox, mdiPill, mdiStethoscope, mdiTooth,
|
||||
mdiSecurity, mdiShieldCheck, mdiLock, mdiEyeOff, mdiVpn,
|
||||
mdiTools, mdiHammer, mdiScrewdriver, mdiWrench,
|
||||
mdiRecycle, mdiLeaf, mdiSprout, mdiEarth, mdiWaterOutline,
|
||||
mdiRocket, mdiBrain, mdiAtom, mdiDna, mdiMagnet,
|
||||
mdiCellphone, mdiTablet, mdiLaptop, mdiDesktopClassic, mdiWatch,
|
||||
// Additional icons
|
||||
mdiCampfire,
|
||||
mdiAnchor, mdiAnvil, mdiArchive, mdiAxe, mdiBadminton, mdiBaguette,
|
||||
mdiBalcony, mdiBandage, mdiBarcode, mdiBarn, mdiBarrel, mdiBaseball,
|
||||
mdiBat, mdiBeach, mdiBeaker, mdiBee, mdiBench, mdiBinoculars,
|
||||
mdiBillboard, mdiBilliards, mdiBlender, mdiBolt, mdiBomb,
|
||||
mdiBone, mdiBookshelf, mdiBoomerang, mdiBowling, mdiBridge,
|
||||
mdiBroom, mdiBrush, mdiBucket, mdiBulldozer, mdiBullhorn,
|
||||
mdiBusStop, mdiCactus, mdiCalculator, mdiCandle, mdiCandycane,
|
||||
mdiCaravan, mdiCarrot, mdiCastle, mdiCharity, mdiChessKnight,
|
||||
mdiChessRook, mdiChurch, mdiClipboard, mdiClover,
|
||||
mdiCoatRack, mdiCog, mdiCompass, mdiCone, mdiContentCut,
|
||||
mdiCookie, mdiCorn, mdiCow, mdiCricket,
|
||||
mdiCross, mdiCrosshairs, mdiCrystalBall, mdiCup, mdiCurling, mdiDiceMultiple,
|
||||
mdiDolly, mdiDoorOpen, mdiDrone, mdiDuck, mdiDumpTruck,
|
||||
mdiEgg, mdiElevator, mdiEmoticon, mdiEngine, mdiFan,
|
||||
mdiFeather, mdiFerry, mdiFire, mdiFireExtinguisher, mdiFireHydrant,
|
||||
mdiFireTruck, mdiFirework, mdiFlagCheckered, mdiFlash, mdiFlashlight,
|
||||
mdiGlassFlute, mdiFoodDrumstick, mdiFoodSteak, mdiFootball,
|
||||
mdiFountain, mdiFruitCherries, mdiFruitCitrus, mdiFruitGrapes, mdiFruitWatermelon,
|
||||
mdiGarage, mdiGasStation, mdiGavel, mdiGlassMug, mdiGlassWine,
|
||||
mdiGlasses, mdiGlobeModel, mdiGrass, mdiGreenhouse, mdiGuitarAcoustic,
|
||||
mdiPistol, mdiHandSaw, mdiHanger, mdiHardHat, mdiHarddisk,
|
||||
mdiHelicopter, mdiHighway, mdiHockeyPuck, mdiHook,
|
||||
mdiHorseshoe, mdiHotTub, mdiWeatherHurricane, mdiIsland,
|
||||
mdiKettle, mdiKite, mdiKnife, mdiLadder,
|
||||
mdiLeafMaple, mdiLibrary, mdiLifebuoy, mdiLighthouse, mdiLipstick,
|
||||
mdiMagicStaff, mdiMailbox, mdiMapMarker, mdiDominoMask,
|
||||
mdiMetronome, mdiMicrowave, mdiMirror, mdiMolecule,
|
||||
mdiMoped, mdiMortarPestle, mdiMosque, mdiMuffin, mdiMushroom,
|
||||
mdiMustache, mdiNail, mdiNoodles, mdiOctagon,
|
||||
mdiOrbit, mdiToasterOven, mdiPalmTree,
|
||||
mdiPanda, mdiPaperRoll, mdiParachute, mdiParking, mdiPassport,
|
||||
mdiPasta, mdiPeace, mdiPeanut, mdiPenguin,
|
||||
mdiPiano, mdiPillar, mdiPinwheel, mdiPipe, mdiPirate,
|
||||
mdiPoliceBadge, mdiPool, mdiPopcorn, mdiPost,
|
||||
mdiPot, mdiPropaneTank, mdiPumpkin, mdiRabbit,
|
||||
mdiRadiator, mdiRice, mdiRobot, mdiRollerSkate,
|
||||
mdiSafe, mdiSatellite, mdiScale,
|
||||
mdiScoreboard, mdiSeal, mdiShark, mdiSheep,
|
||||
mdiShoeSneaker, mdiShovel, mdiShredder, mdiSignRealEstate, mdiSilverware,
|
||||
mdiSkateboard, mdiSkull, mdiSnake, mdiSnowboard,
|
||||
mdiSnowman, mdiSolarPanel, mdiSpider, mdiSpray,
|
||||
mdiStadium, mdiStairs, mdiStarShooting, mdiSteering, mdiStove,
|
||||
mdiSubmarine, mdiSunglasses, mdiSword, mdiNeedle, mdiTaco,
|
||||
mdiTarget, mdiTeddyBear, mdiTelescope, mdiTent,
|
||||
mdiTie, mdiTimer, mdiWeatherTornado, mdiTractor, mdiTrafficCone,
|
||||
mdiTrafficLight, mdiTreasureChest, mdiTriangle, mdiTrophy,
|
||||
mdiFlowerTulip, mdiTurtle, mdiTypewriter, mdiUfo, mdiUnicorn,
|
||||
mdiViolin, mdiVolcano, mdiVolleyball, mdiWall,
|
||||
mdiWardrobe, mdiWaterfall, mdiWaterPolo, mdiWave, mdiWebcam,
|
||||
mdiWheelBarrow, mdiWhistle, mdiWindTurbine,
|
||||
} from "@mdi/js";
|
||||
|
||||
// --- Icon Registry ---
|
||||
|
||||
interface IconEntry {
|
||||
name: string;
|
||||
keywords: string[];
|
||||
type: "fa" | "mdi";
|
||||
icon: IconDefinition | string; // FA IconDefinition or MDI path string
|
||||
}
|
||||
|
||||
const faIcons: IconEntry[] = [
|
||||
{ name: "folder", keywords: ["folder", "file", "directory", "project"], type: "fa", icon: faFolder },
|
||||
{ name: "briefcase", keywords: ["briefcase", "work", "business", "job", "office"], type: "fa", icon: faBriefcase },
|
||||
{ name: "bullseye", keywords: ["bullseye", "target", "goal", "aim"], type: "fa", icon: faBullseye },
|
||||
{ name: "rocket", keywords: ["rocket", "launch", "startup", "space", "fast"], type: "fa", icon: faRocket },
|
||||
{ name: "star", keywords: ["star", "favorite", "rating", "important"], type: "fa", icon: faStar },
|
||||
{ name: "lightbulb", keywords: ["lightbulb", "idea", "innovation", "think"], type: "fa", icon: faLightbulb },
|
||||
{ name: "fire", keywords: ["fire", "hot", "trending", "flame", "urgent"], type: "fa", icon: faFire },
|
||||
{ name: "palette", keywords: ["palette", "art", "design", "color", "paint", "creative"], type: "fa", icon: faPalette },
|
||||
{ name: "music", keywords: ["music", "audio", "song", "sound", "note"], type: "fa", icon: faMusic },
|
||||
{ name: "mobile", keywords: ["mobile", "phone", "smartphone", "cell"], type: "fa", icon: faMobileScreen },
|
||||
{ name: "laptop", keywords: ["laptop", "computer", "pc", "notebook"], type: "fa", icon: faLaptop },
|
||||
{ name: "globe", keywords: ["globe", "world", "web", "internet", "global"], type: "fa", icon: faGlobe },
|
||||
{ name: "house", keywords: ["house", "home", "residence", "living"], type: "fa", icon: faHouse },
|
||||
{ name: "building", keywords: ["building", "office", "company", "corporate", "city"], type: "fa", icon: faBuilding },
|
||||
{ name: "chart-bar", keywords: ["chart", "bar", "statistics", "analytics", "graph", "data"], type: "fa", icon: faChartBar },
|
||||
{ name: "chart-line", keywords: ["chart", "line", "statistics", "analytics", "trend", "growth"], type: "fa", icon: faChartLine },
|
||||
{ name: "wrench", keywords: ["wrench", "tool", "repair", "fix", "maintenance"], type: "fa", icon: faWrench },
|
||||
{ name: "bolt", keywords: ["bolt", "lightning", "power", "energy", "electric", "fast"], type: "fa", icon: faBolt },
|
||||
{ name: "gamepad", keywords: ["gamepad", "game", "gaming", "play", "controller"], type: "fa", icon: faGamepad },
|
||||
{ name: "pen", keywords: ["pen", "write", "edit", "draw"], type: "fa", icon: faPen },
|
||||
{ name: "book", keywords: ["book", "read", "library", "study", "education"], type: "fa", icon: faBook },
|
||||
{ name: "graduation-cap", keywords: ["graduation", "education", "school", "university", "degree", "study"], type: "fa", icon: faGraduationCap },
|
||||
{ name: "flask", keywords: ["flask", "science", "chemistry", "lab", "experiment"], type: "fa", icon: faFlask },
|
||||
{ name: "microscope", keywords: ["microscope", "science", "research", "biology", "lab"], type: "fa", icon: faMicroscope },
|
||||
{ name: "dumbbell", keywords: ["dumbbell", "gym", "fitness", "exercise", "workout", "sport"], type: "fa", icon: faDumbbell },
|
||||
{ name: "utensils", keywords: ["utensils", "food", "restaurant", "eat", "dining", "cook"], type: "fa", icon: faUtensils },
|
||||
{ name: "plane", keywords: ["plane", "flight", "travel", "airport", "vacation"], type: "fa", icon: faPlane },
|
||||
{ name: "leaf", keywords: ["leaf", "nature", "plant", "eco", "green", "organic"], type: "fa", icon: faLeaf },
|
||||
{ name: "heart", keywords: ["heart", "love", "health", "favorite", "like"], type: "fa", icon: faHeart },
|
||||
{ name: "cart-shopping", keywords: ["cart", "shopping", "buy", "store", "ecommerce"], type: "fa", icon: faCartShopping },
|
||||
{ name: "coins", keywords: ["coins", "money", "finance", "currency", "savings"], type: "fa", icon: faCoins },
|
||||
{ name: "gift", keywords: ["gift", "present", "birthday", "surprise"], type: "fa", icon: faGift },
|
||||
{ name: "camera", keywords: ["camera", "photo", "photography", "picture", "image"], type: "fa", icon: faCamera },
|
||||
{ name: "film", keywords: ["film", "movie", "cinema", "video"], type: "fa", icon: faFilm },
|
||||
{ name: "broom", keywords: ["broom", "clean", "sweep", "housework", "tidy"], type: "fa", icon: faBroom },
|
||||
{ name: "paw", keywords: ["paw", "pet", "animal", "dog", "cat"], type: "fa", icon: faPaw },
|
||||
{ name: "earth", keywords: ["earth", "world", "planet", "global", "environment"], type: "fa", icon: faEarthAmericas },
|
||||
{ name: "lock", keywords: ["lock", "security", "password", "private", "safe"], type: "fa", icon: faLock },
|
||||
{ name: "check", keywords: ["check", "done", "complete", "tick", "approve"], type: "fa", icon: faCheck },
|
||||
{ name: "code", keywords: ["code", "programming", "developer", "software", "coding"], type: "fa", icon: faCode },
|
||||
{ name: "cube", keywords: ["cube", "3d", "block", "box", "package"], type: "fa", icon: faCube },
|
||||
{ name: "users", keywords: ["users", "team", "group", "people", "community"], type: "fa", icon: faUsers },
|
||||
{ name: "car", keywords: ["car", "vehicle", "drive", "auto", "transport"], type: "fa", icon: faCar },
|
||||
{ name: "mountain", keywords: ["mountain", "hiking", "outdoor", "adventure", "nature"], type: "fa", icon: faMountain },
|
||||
{ name: "umbrella", keywords: ["umbrella", "rain", "weather", "protection"], type: "fa", icon: faUmbrella },
|
||||
{ name: "clock", keywords: ["clock", "time", "schedule", "timer", "watch"], type: "fa", icon: faClock },
|
||||
{ name: "tag", keywords: ["tag", "label", "category", "price"], type: "fa", icon: faTag },
|
||||
{ name: "phone", keywords: ["phone", "call", "telephone", "contact"], type: "fa", icon: faPhone },
|
||||
{ name: "envelope", keywords: ["envelope", "email", "mail", "message", "letter"], type: "fa", icon: faEnvelope },
|
||||
{ name: "print", keywords: ["print", "printer", "paper", "document"], type: "fa", icon: faPrint },
|
||||
{ name: "database", keywords: ["database", "data", "storage", "sql", "server"], type: "fa", icon: faDatabase },
|
||||
{ name: "server", keywords: ["server", "hosting", "backend", "infrastructure"], type: "fa", icon: faServer },
|
||||
{ name: "cloud", keywords: ["cloud", "storage", "upload", "saas", "hosting"], type: "fa", icon: faCloud },
|
||||
{ name: "wifi", keywords: ["wifi", "wireless", "internet", "network", "connection"], type: "fa", icon: faWifi },
|
||||
{ name: "bug", keywords: ["bug", "debug", "error", "issue", "testing"], type: "fa", icon: faBug },
|
||||
{ name: "shield", keywords: ["shield", "security", "protection", "defense", "safe"], type: "fa", icon: faShield },
|
||||
{ name: "bell", keywords: ["bell", "notification", "alert", "alarm", "reminder"], type: "fa", icon: faBell },
|
||||
{ name: "bookmark", keywords: ["bookmark", "save", "favorite", "mark"], type: "fa", icon: faBookmark },
|
||||
{ name: "calendar", keywords: ["calendar", "date", "schedule", "event", "planner"], type: "fa", icon: faCalendar },
|
||||
{ name: "circle-check", keywords: ["circle", "check", "done", "approve", "success"], type: "fa", icon: faCircleCheck },
|
||||
{ name: "circle-xmark", keywords: ["circle", "close", "cancel", "delete", "remove"], type: "fa", icon: faCircleXmark },
|
||||
{ name: "comment", keywords: ["comment", "chat", "message", "discussion", "talk"], type: "fa", icon: faComment },
|
||||
{ name: "compass", keywords: ["compass", "navigation", "direction", "explore"], type: "fa", icon: faCompass },
|
||||
{ name: "credit-card", keywords: ["credit", "card", "payment", "bank", "finance"], type: "fa", icon: faCreditCard },
|
||||
{ name: "crown", keywords: ["crown", "king", "premium", "vip", "royal"], type: "fa", icon: faCrown },
|
||||
{ name: "diamond", keywords: ["diamond", "gem", "luxury", "premium", "jewel"], type: "fa", icon: faDiamond },
|
||||
{ name: "display", keywords: ["display", "monitor", "screen", "desktop"], type: "fa", icon: faDisplay },
|
||||
{ name: "download", keywords: ["download", "save", "get", "arrow"], type: "fa", icon: faDownload },
|
||||
{ name: "droplet", keywords: ["droplet", "water", "liquid", "rain", "tear"], type: "fa", icon: faDroplet },
|
||||
{ name: "eye", keywords: ["eye", "view", "see", "watch", "visible"], type: "fa", icon: faEye },
|
||||
{ name: "face-smile", keywords: ["face", "smile", "happy", "emoji", "smiley"], type: "fa", icon: faFaceSmile },
|
||||
{ name: "file", keywords: ["file", "document", "paper", "page"], type: "fa", icon: faFile },
|
||||
{ name: "file-code", keywords: ["file", "code", "programming", "source", "script"], type: "fa", icon: faFileCode },
|
||||
{ name: "filter", keywords: ["filter", "sort", "funnel", "search"], type: "fa", icon: faFilter },
|
||||
{ name: "fingerprint", keywords: ["fingerprint", "identity", "biometric", "security"], type: "fa", icon: faFingerprint },
|
||||
{ name: "flag", keywords: ["flag", "mark", "country", "report", "milestone"], type: "fa", icon: faFlag },
|
||||
{ name: "gear", keywords: ["gear", "settings", "config", "options", "preferences"], type: "fa", icon: faGear },
|
||||
{ name: "glasses", keywords: ["glasses", "read", "vision", "spectacles"], type: "fa", icon: faGlasses },
|
||||
{ name: "handshake", keywords: ["handshake", "deal", "agreement", "partnership", "meeting"], type: "fa", icon: faHandshake },
|
||||
{ name: "hashtag", keywords: ["hashtag", "number", "tag", "social", "trending"], type: "fa", icon: faHashtag },
|
||||
{ name: "headphones", keywords: ["headphones", "audio", "music", "listen", "podcast"], type: "fa", icon: faHeadphones },
|
||||
{ name: "hospital", keywords: ["hospital", "medical", "health", "doctor", "clinic"], type: "fa", icon: faHospital },
|
||||
{ name: "image", keywords: ["image", "photo", "picture", "gallery"], type: "fa", icon: faImage },
|
||||
{ name: "inbox", keywords: ["inbox", "mail", "email", "messages"], type: "fa", icon: faInbox },
|
||||
{ name: "infinity", keywords: ["infinity", "loop", "endless", "unlimited"], type: "fa", icon: faInfinity },
|
||||
{ name: "key", keywords: ["key", "access", "password", "unlock", "authentication"], type: "fa", icon: faKey },
|
||||
{ name: "language", keywords: ["language", "translate", "i18n", "multilingual"], type: "fa", icon: faLanguage },
|
||||
{ name: "layer-group", keywords: ["layer", "stack", "design", "photoshop"], type: "fa", icon: faLayerGroup },
|
||||
{ name: "link", keywords: ["link", "chain", "url", "connection", "hyperlink"], type: "fa", icon: faLink },
|
||||
{ name: "list-check", keywords: ["list", "check", "todo", "tasks", "checklist"], type: "fa", icon: faListCheck },
|
||||
{ name: "magnet", keywords: ["magnet", "attract", "magnetic"], type: "fa", icon: faMagnet },
|
||||
{ name: "map", keywords: ["map", "location", "geography", "navigation"], type: "fa", icon: faMap },
|
||||
{ name: "map-pin", keywords: ["map", "pin", "location", "marker", "place"], type: "fa", icon: faMapPin },
|
||||
{ name: "medal", keywords: ["medal", "award", "achievement", "winner", "prize"], type: "fa", icon: faMedal },
|
||||
{ name: "message", keywords: ["message", "chat", "sms", "text", "conversation"], type: "fa", icon: faMessage },
|
||||
{ name: "microphone", keywords: ["microphone", "audio", "record", "voice", "podcast"], type: "fa", icon: faMicrophone },
|
||||
{ name: "moon", keywords: ["moon", "night", "dark", "sleep"], type: "fa", icon: faMoon },
|
||||
{ name: "newspaper", keywords: ["newspaper", "news", "article", "press", "media"], type: "fa", icon: faNewspaper },
|
||||
{ name: "paper-plane", keywords: ["paper", "plane", "send", "message", "email"], type: "fa", icon: faPaperPlane },
|
||||
{ name: "paperclip", keywords: ["paperclip", "attach", "attachment", "file"], type: "fa", icon: faPaperclip },
|
||||
{ name: "paste", keywords: ["paste", "clipboard", "copy"], type: "fa", icon: faPaste },
|
||||
{ name: "peace", keywords: ["peace", "harmony", "symbol"], type: "fa", icon: faPeace },
|
||||
{ name: "percent", keywords: ["percent", "discount", "sale", "percentage"], type: "fa", icon: faPercent },
|
||||
{ name: "person-running", keywords: ["person", "running", "exercise", "sport", "fitness", "jogging"], type: "fa", icon: faPersonRunning },
|
||||
{ name: "piggy-bank", keywords: ["piggy", "bank", "savings", "money", "finance"], type: "fa", icon: faPiggyBank },
|
||||
{ name: "pills", keywords: ["pills", "medicine", "health", "pharmacy", "drug"], type: "fa", icon: faPills },
|
||||
{ name: "puzzle-piece", keywords: ["puzzle", "piece", "plugin", "extension", "addon"], type: "fa", icon: faPuzzlePiece },
|
||||
{ name: "qrcode", keywords: ["qr", "code", "scan", "barcode"], type: "fa", icon: faQrcode },
|
||||
{ name: "quote-left", keywords: ["quote", "text", "citation", "blockquote"], type: "fa", icon: faQuoteLeft },
|
||||
{ name: "robot", keywords: ["robot", "ai", "automation", "bot", "machine"], type: "fa", icon: faRobot },
|
||||
{ name: "rotate", keywords: ["rotate", "refresh", "reload", "sync", "update"], type: "fa", icon: faRotate },
|
||||
{ name: "route", keywords: ["route", "path", "direction", "way", "navigation"], type: "fa", icon: faRoute },
|
||||
{ name: "ruler", keywords: ["ruler", "measure", "size", "length"], type: "fa", icon: faRuler },
|
||||
{ name: "scissors", keywords: ["scissors", "cut", "trim", "clip"], type: "fa", icon: faScissors },
|
||||
{ name: "screwdriver-wrench", keywords: ["screwdriver", "wrench", "tools", "repair", "fix", "maintenance"], type: "fa", icon: faScrewdriverWrench },
|
||||
{ name: "seedling", keywords: ["seedling", "plant", "grow", "garden", "nature", "eco"], type: "fa", icon: faSeedling },
|
||||
{ name: "share", keywords: ["share", "social", "send", "forward"], type: "fa", icon: faShare },
|
||||
{ name: "shirt", keywords: ["shirt", "clothing", "fashion", "apparel"], type: "fa", icon: faShirt },
|
||||
{ name: "shop", keywords: ["shop", "store", "retail", "market", "commerce"], type: "fa", icon: faShop },
|
||||
{ name: "signal", keywords: ["signal", "reception", "antenna", "strength"], type: "fa", icon: faSignal },
|
||||
{ name: "sitemap", keywords: ["sitemap", "structure", "hierarchy", "organization"], type: "fa", icon: faSitemap },
|
||||
{ name: "sliders", keywords: ["sliders", "settings", "adjust", "control", "equalizer"], type: "fa", icon: faSliders },
|
||||
{ name: "snowflake", keywords: ["snowflake", "winter", "cold", "freeze", "ice"], type: "fa", icon: faSnowflake },
|
||||
{ name: "spa", keywords: ["spa", "wellness", "relax", "massage", "health"], type: "fa", icon: faSpa },
|
||||
{ name: "square-check", keywords: ["square", "check", "checkbox", "done", "complete"], type: "fa", icon: faSquareCheck },
|
||||
{ name: "stethoscope", keywords: ["stethoscope", "doctor", "medical", "health", "hospital"], type: "fa", icon: faStethoscope },
|
||||
{ name: "sun", keywords: ["sun", "day", "light", "bright", "weather", "summer"], type: "fa", icon: faSun },
|
||||
{ name: "table-cells", keywords: ["table", "grid", "spreadsheet", "data", "cells"], type: "fa", icon: faTableCells },
|
||||
{ name: "terminal", keywords: ["terminal", "console", "command", "cli", "shell"], type: "fa", icon: faTerminal },
|
||||
{ name: "thumbs-up", keywords: ["thumbs", "up", "like", "approve", "good"], type: "fa", icon: faThumbsUp },
|
||||
{ name: "toolbox", keywords: ["toolbox", "tools", "repair", "kit", "equipment"], type: "fa", icon: faToolbox },
|
||||
{ name: "trash-can", keywords: ["trash", "delete", "remove", "bin", "garbage"], type: "fa", icon: faTrashCan },
|
||||
{ name: "trophy", keywords: ["trophy", "award", "winner", "champion", "prize", "achievement"], type: "fa", icon: faTrophy },
|
||||
{ name: "truck", keywords: ["truck", "delivery", "shipping", "transport", "logistics"], type: "fa", icon: faTruck },
|
||||
{ name: "tv", keywords: ["tv", "television", "screen", "monitor", "watch"], type: "fa", icon: faTv },
|
||||
{ name: "upload", keywords: ["upload", "send", "cloud", "arrow"], type: "fa", icon: faUpload },
|
||||
{ name: "user-gear", keywords: ["user", "gear", "admin", "settings", "account"], type: "fa", icon: faUserGear },
|
||||
{ name: "vault", keywords: ["vault", "safe", "secure", "bank", "storage"], type: "fa", icon: faVault },
|
||||
{ name: "video", keywords: ["video", "camera", "record", "film", "stream"], type: "fa", icon: faVideo },
|
||||
{ name: "volume-high", keywords: ["volume", "sound", "audio", "speaker", "loud"], type: "fa", icon: faVolumeHigh },
|
||||
{ name: "wallet", keywords: ["wallet", "money", "payment", "finance", "cash"], type: "fa", icon: faWallet },
|
||||
{ name: "wand-magic", keywords: ["wand", "magic", "sparkle", "wizard", "auto"], type: "fa", icon: faWandMagicSparkles },
|
||||
{ name: "warehouse", keywords: ["warehouse", "storage", "inventory", "logistics"], type: "fa", icon: faWarehouse },
|
||||
{ name: "weight", keywords: ["weight", "scale", "heavy", "mass", "gym"], type: "fa", icon: faWeight },
|
||||
{ name: "window", keywords: ["window", "browser", "app", "application"], type: "fa", icon: faWindowMaximize },
|
||||
];
|
||||
|
||||
const mdiIcons: IconEntry[] = [
|
||||
// Smart Home & Tech
|
||||
{ name: "mdi-home-assistant", keywords: ["home", "assistant", "smart", "automation", "iot", "homeassistant"], type: "mdi", icon: mdiHomeAssistant },
|
||||
{ name: "mdi-docker", keywords: ["docker", "container", "devops", "deploy"], type: "mdi", icon: mdiDocker },
|
||||
{ name: "mdi-github", keywords: ["github", "git", "repository", "code", "open source"], type: "mdi", icon: mdiGithub },
|
||||
{ name: "mdi-gitlab", keywords: ["gitlab", "git", "repository", "code", "ci"], type: "mdi", icon: mdiGitlab },
|
||||
{ name: "mdi-linux", keywords: ["linux", "os", "ubuntu", "debian", "penguin"], type: "mdi", icon: mdiLinux },
|
||||
{ name: "mdi-apple", keywords: ["apple", "mac", "ios", "macos", "iphone"], type: "mdi", icon: mdiApple },
|
||||
{ name: "mdi-windows", keywords: ["windows", "microsoft", "pc", "os"], type: "mdi", icon: mdiMicrosoftWindows },
|
||||
{ name: "mdi-android", keywords: ["android", "google", "mobile", "phone"], type: "mdi", icon: mdiAndroid },
|
||||
{ name: "mdi-react", keywords: ["react", "javascript", "frontend", "web", "component"], type: "mdi", icon: mdiReact },
|
||||
{ name: "mdi-nodejs", keywords: ["node", "nodejs", "javascript", "backend", "server"], type: "mdi", icon: mdiNodejs },
|
||||
{ name: "mdi-python", keywords: ["python", "programming", "language", "script"], type: "mdi", icon: mdiLanguagePython },
|
||||
{ name: "mdi-javascript", keywords: ["javascript", "js", "programming", "web", "frontend"], type: "mdi", icon: mdiLanguageJavascript },
|
||||
{ name: "mdi-typescript", keywords: ["typescript", "ts", "programming", "type", "web"], type: "mdi", icon: mdiLanguageTypescript },
|
||||
{ name: "mdi-html5", keywords: ["html", "html5", "web", "markup", "frontend"], type: "mdi", icon: mdiLanguageHtml5 },
|
||||
{ name: "mdi-css3", keywords: ["css", "css3", "style", "web", "frontend", "design"], type: "mdi", icon: mdiLanguageCss3 },
|
||||
{ name: "mdi-aws", keywords: ["aws", "amazon", "cloud", "hosting"], type: "mdi", icon: mdiAws },
|
||||
{ name: "mdi-gcloud", keywords: ["google", "cloud", "gcp", "hosting"], type: "mdi", icon: mdiGoogleCloud },
|
||||
{ name: "mdi-azure", keywords: ["azure", "microsoft", "cloud", "hosting"], type: "mdi", icon: mdiMicrosoftAzure },
|
||||
{ name: "mdi-kubernetes", keywords: ["kubernetes", "k8s", "container", "orchestration", "devops"], type: "mdi", icon: mdiKubernetes },
|
||||
{ name: "mdi-terraform", keywords: ["terraform", "infrastructure", "iac", "devops", "cloud"], type: "mdi", icon: mdiTerraform },
|
||||
{ name: "mdi-raspberry-pi", keywords: ["raspberry", "pi", "hardware", "iot", "maker"], type: "mdi", icon: mdiRaspberryPi },
|
||||
{ name: "mdi-nas", keywords: ["nas", "storage", "network", "synology", "backup"], type: "mdi", icon: mdiNas },
|
||||
{ name: "mdi-router", keywords: ["router", "network", "wifi", "internet"], type: "mdi", icon: mdiRouter },
|
||||
{ name: "mdi-ip-network", keywords: ["ip", "network", "internet", "lan", "subnet"], type: "mdi", icon: mdiIpNetwork },
|
||||
{ name: "mdi-server-network", keywords: ["server", "network", "hosting", "infrastructure", "datacenter"], type: "mdi", icon: mdiServerNetwork },
|
||||
// Devices
|
||||
{ name: "mdi-cellphone", keywords: ["cellphone", "mobile", "phone", "smartphone"], type: "mdi", icon: mdiCellphone },
|
||||
{ name: "mdi-tablet", keywords: ["tablet", "ipad", "device", "screen"], type: "mdi", icon: mdiTablet },
|
||||
{ name: "mdi-laptop", keywords: ["laptop", "computer", "notebook", "macbook"], type: "mdi", icon: mdiLaptop },
|
||||
{ name: "mdi-desktop", keywords: ["desktop", "computer", "pc", "monitor", "imac"], type: "mdi", icon: mdiDesktopClassic },
|
||||
{ name: "mdi-watch", keywords: ["watch", "smartwatch", "wearable", "time"], type: "mdi", icon: mdiWatch },
|
||||
// Family & Pets
|
||||
{ name: "mdi-baby", keywords: ["baby", "child", "infant", "family", "stroller", "kids"], type: "mdi", icon: mdiBabyCarriage },
|
||||
{ name: "mdi-dog", keywords: ["dog", "pet", "animal", "puppy"], type: "mdi", icon: mdiDog },
|
||||
{ name: "mdi-cat", keywords: ["cat", "pet", "animal", "kitten"], type: "mdi", icon: mdiCat },
|
||||
{ name: "mdi-fish", keywords: ["fish", "aquarium", "pet", "sea", "ocean"], type: "mdi", icon: mdiFish },
|
||||
{ name: "mdi-bird", keywords: ["bird", "pet", "animal", "fly", "parrot"], type: "mdi", icon: mdiBird },
|
||||
// Nature
|
||||
{ name: "mdi-flower", keywords: ["flower", "garden", "plant", "nature", "bloom"], type: "mdi", icon: mdiFlower },
|
||||
{ name: "mdi-tree", keywords: ["tree", "nature", "forest", "plant", "wood"], type: "mdi", icon: mdiTree },
|
||||
{ name: "mdi-forest", keywords: ["forest", "trees", "nature", "woods", "park"], type: "mdi", icon: mdiForest },
|
||||
{ name: "mdi-sunny", keywords: ["sun", "sunny", "weather", "bright", "summer", "warm"], type: "mdi", icon: mdiWeatherSunny },
|
||||
{ name: "mdi-rainy", keywords: ["rain", "rainy", "weather", "storm", "wet"], type: "mdi", icon: mdiWeatherRainy },
|
||||
// Transport
|
||||
{ name: "mdi-bicycle", keywords: ["bicycle", "bike", "cycling", "sport", "transport"], type: "mdi", icon: mdiBicycle },
|
||||
{ name: "mdi-motorbike", keywords: ["motorbike", "motorcycle", "ride", "vehicle"], type: "mdi", icon: mdiMotorbike },
|
||||
{ name: "mdi-train", keywords: ["train", "rail", "transport", "travel", "commute"], type: "mdi", icon: mdiTrain },
|
||||
{ name: "mdi-bus", keywords: ["bus", "transport", "public", "commute", "travel"], type: "mdi", icon: mdiBus },
|
||||
{ name: "mdi-airplane", keywords: ["airplane", "flight", "travel", "vacation", "airport"], type: "mdi", icon: mdiAirplane },
|
||||
{ name: "mdi-sail", keywords: ["sail", "boat", "ship", "sea", "ocean", "sailing"], type: "mdi", icon: mdiSailBoat },
|
||||
// Sports & Fitness
|
||||
{ name: "mdi-swim", keywords: ["swim", "pool", "water", "sport", "exercise"], type: "mdi", icon: mdiSwim },
|
||||
{ name: "mdi-ski", keywords: ["ski", "skiing", "winter", "snow", "sport"], type: "mdi", icon: mdiSki },
|
||||
{ name: "mdi-soccer", keywords: ["soccer", "football", "sport", "ball", "game"], type: "mdi", icon: mdiSoccer },
|
||||
{ name: "mdi-basketball", keywords: ["basketball", "sport", "ball", "game", "nba"], type: "mdi", icon: mdiBasketball },
|
||||
{ name: "mdi-tennis", keywords: ["tennis", "sport", "racket", "ball", "game"], type: "mdi", icon: mdiTennis },
|
||||
{ name: "mdi-golf", keywords: ["golf", "sport", "club", "ball", "green"], type: "mdi", icon: mdiGolf },
|
||||
{ name: "mdi-yoga", keywords: ["yoga", "meditation", "fitness", "relax", "stretch", "wellness"], type: "mdi", icon: mdiYoga },
|
||||
{ name: "mdi-meditation", keywords: ["meditation", "mindfulness", "zen", "calm", "relax"], type: "mdi", icon: mdiMeditation },
|
||||
{ name: "mdi-run", keywords: ["run", "running", "jogging", "sport", "fitness", "exercise"], type: "mdi", icon: mdiRunFast },
|
||||
// Food & Drink
|
||||
{ name: "mdi-food", keywords: ["food", "meal", "eat", "dinner", "lunch", "restaurant"], type: "mdi", icon: mdiFood },
|
||||
{ name: "mdi-apple-fruit", keywords: ["apple", "fruit", "food", "healthy", "snack"], type: "mdi", icon: mdiFoodApple },
|
||||
{ name: "mdi-coffee", keywords: ["coffee", "cafe", "drink", "morning", "espresso", "latte"], type: "mdi", icon: mdiCoffee },
|
||||
{ name: "mdi-beer", keywords: ["beer", "drink", "alcohol", "pub", "bar", "brewery"], type: "mdi", icon: mdiBeer },
|
||||
{ name: "mdi-cocktail", keywords: ["cocktail", "drink", "alcohol", "bar", "party", "wine"], type: "mdi", icon: mdiGlassCocktail },
|
||||
{ name: "mdi-pizza", keywords: ["pizza", "food", "italian", "fast food", "eat"], type: "mdi", icon: mdiPizza },
|
||||
{ name: "mdi-cupcake", keywords: ["cupcake", "cake", "bake", "dessert", "sweet"], type: "mdi", icon: mdiCupcake },
|
||||
{ name: "mdi-ice-cream", keywords: ["ice cream", "dessert", "sweet", "summer", "gelato"], type: "mdi", icon: mdiIceCream },
|
||||
{ name: "mdi-grill", keywords: ["grill", "bbq", "barbecue", "cook", "outdoor", "food"], type: "mdi", icon: mdiGrill },
|
||||
// Home & Appliances
|
||||
{ name: "mdi-fridge", keywords: ["fridge", "refrigerator", "kitchen", "appliance", "food"], type: "mdi", icon: mdiFridge },
|
||||
{ name: "mdi-washing-machine", keywords: ["washing", "machine", "laundry", "clothes", "clean"], type: "mdi", icon: mdiWashingMachine },
|
||||
{ name: "mdi-vacuum", keywords: ["vacuum", "clean", "floor", "housework", "appliance"], type: "mdi", icon: mdiVacuum },
|
||||
{ name: "mdi-sofa", keywords: ["sofa", "couch", "living room", "furniture", "relax"], type: "mdi", icon: mdiSofa },
|
||||
{ name: "mdi-bed", keywords: ["bed", "sleep", "bedroom", "rest", "furniture"], type: "mdi", icon: mdiBed },
|
||||
{ name: "mdi-bathtub", keywords: ["bathtub", "bath", "bathroom", "shower", "wash"], type: "mdi", icon: mdiBathtub },
|
||||
{ name: "mdi-toilet", keywords: ["toilet", "bathroom", "wc", "restroom"], type: "mdi", icon: mdiToilet },
|
||||
{ name: "mdi-lamp", keywords: ["lamp", "light", "desk", "reading", "illumination"], type: "mdi", icon: mdiLamp },
|
||||
{ name: "mdi-ceiling-fan", keywords: ["ceiling", "fan", "cool", "air", "ventilation"], type: "mdi", icon: mdiCeilingFan },
|
||||
{ name: "mdi-thermometer", keywords: ["thermometer", "temperature", "heat", "cold", "weather"], type: "mdi", icon: mdiThermometer },
|
||||
{ name: "mdi-fireplace", keywords: ["fireplace", "fire", "warm", "cozy", "chimney"], type: "mdi", icon: mdiFireplace },
|
||||
// Finance
|
||||
{ name: "mdi-briefcase", keywords: ["briefcase", "work", "business", "job", "career"], type: "mdi", icon: mdiBriefcase },
|
||||
{ name: "mdi-cash", keywords: ["cash", "money", "payment", "bills", "finance"], type: "mdi", icon: mdiCash },
|
||||
{ name: "mdi-euro", keywords: ["euro", "currency", "money", "finance", "europe"], type: "mdi", icon: mdiCurrencyEur },
|
||||
{ name: "mdi-dollar", keywords: ["dollar", "usd", "currency", "money", "finance", "us"], type: "mdi", icon: mdiCurrencyUsd },
|
||||
{ name: "mdi-bitcoin", keywords: ["bitcoin", "btc", "crypto", "cryptocurrency", "blockchain"], type: "mdi", icon: mdiCurrencyBtc },
|
||||
{ name: "mdi-chart-line", keywords: ["chart", "line", "trend", "analytics", "statistics"], type: "mdi", icon: mdiChartLine },
|
||||
{ name: "mdi-chart-pie", keywords: ["chart", "pie", "analytics", "statistics", "data"], type: "mdi", icon: mdiChartPie },
|
||||
{ name: "mdi-chart-bar", keywords: ["chart", "bar", "analytics", "statistics", "data", "graph"], type: "mdi", icon: mdiChartBar },
|
||||
{ name: "mdi-trending-up", keywords: ["trending", "up", "growth", "increase", "profit"], type: "mdi", icon: mdiTrendingUp },
|
||||
{ name: "mdi-bank", keywords: ["bank", "finance", "money", "institution", "savings"], type: "mdi", icon: mdiBank },
|
||||
// Education & Creative
|
||||
{ name: "mdi-school", keywords: ["school", "education", "study", "learn", "university"], type: "mdi", icon: mdiSchool },
|
||||
{ name: "mdi-book-open", keywords: ["book", "open", "read", "study", "library", "education"], type: "mdi", icon: mdiBookOpenVariant },
|
||||
{ name: "mdi-notebook", keywords: ["notebook", "journal", "notes", "write", "diary"], type: "mdi", icon: mdiNotebook },
|
||||
{ name: "mdi-pencil", keywords: ["pencil", "write", "draw", "edit", "sketch"], type: "mdi", icon: mdiPencil },
|
||||
{ name: "mdi-palette", keywords: ["palette", "art", "paint", "design", "creative", "color"], type: "mdi", icon: mdiPaletteOutline },
|
||||
{ name: "mdi-music", keywords: ["music", "note", "song", "audio", "melody"], type: "mdi", icon: mdiMusic },
|
||||
{ name: "mdi-movie", keywords: ["movie", "film", "cinema", "video", "entertainment"], type: "mdi", icon: mdiMovieOpen },
|
||||
{ name: "mdi-television", keywords: ["television", "tv", "screen", "watch", "show", "series"], type: "mdi", icon: mdiTelevision },
|
||||
{ name: "mdi-gamepad", keywords: ["gamepad", "game", "gaming", "play", "controller", "console"], type: "mdi", icon: mdiGamepadVariant },
|
||||
{ name: "mdi-puzzle", keywords: ["puzzle", "piece", "game", "solve", "jigsaw"], type: "mdi", icon: mdiPuzzle },
|
||||
{ name: "mdi-camera", keywords: ["camera", "photo", "picture", "photography"], type: "mdi", icon: mdiCamera },
|
||||
{ name: "mdi-microphone", keywords: ["microphone", "audio", "record", "voice", "podcast", "sing"], type: "mdi", icon: mdiMicrophone },
|
||||
{ name: "mdi-headphones", keywords: ["headphones", "audio", "music", "listen"], type: "mdi", icon: mdiHeadphones },
|
||||
{ name: "mdi-speaker", keywords: ["speaker", "audio", "sound", "music", "volume"], type: "mdi", icon: mdiSpeaker },
|
||||
{ name: "mdi-3d-printer", keywords: ["3d", "printer", "print", "maker", "prototype"], type: "mdi", icon: mdiPrinter3d },
|
||||
// People & Events
|
||||
{ name: "mdi-heart", keywords: ["heart", "love", "health", "favorite", "like", "romance"], type: "mdi", icon: mdiHeart },
|
||||
{ name: "mdi-hand-heart", keywords: ["hand", "heart", "charity", "volunteer", "donate", "care"], type: "mdi", icon: mdiHandHeart },
|
||||
{ name: "mdi-family", keywords: ["family", "parents", "children", "kids", "household"], type: "mdi", icon: mdiHumanMaleFemaleChild },
|
||||
{ name: "mdi-group", keywords: ["group", "team", "people", "community", "users"], type: "mdi", icon: mdiAccountGroup },
|
||||
{ name: "mdi-party", keywords: ["party", "celebration", "confetti", "event", "fun"], type: "mdi", icon: mdiPartyPopper },
|
||||
{ name: "mdi-gift", keywords: ["gift", "present", "birthday", "surprise", "wrap"], type: "mdi", icon: mdiGift },
|
||||
{ name: "mdi-balloon", keywords: ["balloon", "party", "celebration", "birthday", "fun"], type: "mdi", icon: mdiBalloon },
|
||||
{ name: "mdi-cake", keywords: ["cake", "birthday", "celebration", "dessert", "party"], type: "mdi", icon: mdiCake },
|
||||
{ name: "mdi-ring", keywords: ["ring", "wedding", "engagement", "marriage", "jewelry"], type: "mdi", icon: mdiRing },
|
||||
{ name: "mdi-happy", keywords: ["happy", "smiley", "face", "emoji", "joy", "mood"], type: "mdi", icon: mdiEmoticonHappy },
|
||||
// Health
|
||||
{ name: "mdi-medical", keywords: ["medical", "bag", "doctor", "health", "first aid"], type: "mdi", icon: mdiMedicalBag },
|
||||
{ name: "mdi-hospital", keywords: ["hospital", "medical", "health", "clinic", "emergency"], type: "mdi", icon: mdiHospitalBox },
|
||||
{ name: "mdi-pill", keywords: ["pill", "medicine", "drug", "pharmacy", "health"], type: "mdi", icon: mdiPill },
|
||||
{ name: "mdi-stethoscope", keywords: ["stethoscope", "doctor", "medical", "health", "checkup"], type: "mdi", icon: mdiStethoscope },
|
||||
{ name: "mdi-tooth", keywords: ["tooth", "dental", "dentist", "teeth", "health"], type: "mdi", icon: mdiTooth },
|
||||
// Security
|
||||
{ name: "mdi-security", keywords: ["security", "guard", "protect", "safe", "shield"], type: "mdi", icon: mdiSecurity },
|
||||
{ name: "mdi-shield-check", keywords: ["shield", "check", "verified", "secure", "safe"], type: "mdi", icon: mdiShieldCheck },
|
||||
{ name: "mdi-lock", keywords: ["lock", "secure", "password", "private", "encrypted"], type: "mdi", icon: mdiLock },
|
||||
{ name: "mdi-eye-off", keywords: ["eye", "off", "hidden", "privacy", "invisible"], type: "mdi", icon: mdiEyeOff },
|
||||
{ name: "mdi-vpn", keywords: ["vpn", "network", "private", "secure", "tunnel"], type: "mdi", icon: mdiVpn },
|
||||
// Tools & DIY
|
||||
{ name: "mdi-tools", keywords: ["tools", "repair", "fix", "maintenance", "kit"], type: "mdi", icon: mdiTools },
|
||||
{ name: "mdi-hammer", keywords: ["hammer", "build", "construction", "nail", "diy"], type: "mdi", icon: mdiHammer },
|
||||
{ name: "mdi-saw", keywords: ["saw", "cut", "wood", "diy", "construction"], type: "mdi", icon: mdiHandSaw },
|
||||
{ name: "mdi-screwdriver", keywords: ["screwdriver", "repair", "fix", "tool", "diy"], type: "mdi", icon: mdiScrewdriver },
|
||||
{ name: "mdi-wrench", keywords: ["wrench", "repair", "fix", "tool", "plumbing"], type: "mdi", icon: mdiWrench },
|
||||
// Environment
|
||||
{ name: "mdi-recycle", keywords: ["recycle", "green", "environment", "eco", "sustainability"], type: "mdi", icon: mdiRecycle },
|
||||
{ name: "mdi-leaf", keywords: ["leaf", "nature", "plant", "eco", "green", "organic"], type: "mdi", icon: mdiLeaf },
|
||||
{ name: "mdi-sprout", keywords: ["sprout", "grow", "plant", "garden", "seedling"], type: "mdi", icon: mdiSprout },
|
||||
{ name: "mdi-earth", keywords: ["earth", "world", "planet", "global", "environment"], type: "mdi", icon: mdiEarth },
|
||||
{ name: "mdi-water", keywords: ["water", "drop", "liquid", "ocean", "sea", "hydrate"], type: "mdi", icon: mdiWaterOutline },
|
||||
// Science
|
||||
{ name: "mdi-rocket", keywords: ["rocket", "space", "launch", "startup", "fast"], type: "mdi", icon: mdiRocket },
|
||||
{ name: "mdi-brain", keywords: ["brain", "think", "mind", "intelligence", "ai", "neuro"], type: "mdi", icon: mdiBrain },
|
||||
{ name: "mdi-atom", keywords: ["atom", "science", "physics", "nuclear", "chemistry"], type: "mdi", icon: mdiAtom },
|
||||
{ name: "mdi-dna", keywords: ["dna", "genetics", "biology", "science", "genome"], type: "mdi", icon: mdiDna },
|
||||
{ name: "mdi-magnet", keywords: ["magnet", "attract", "magnetic", "physics"], type: "mdi", icon: mdiMagnet },
|
||||
// Outdoor & Adventure
|
||||
{ name: "mdi-anchor", keywords: ["anchor", "ship", "boat", "harbor", "marine", "sea"], type: "mdi", icon: mdiAnchor },
|
||||
{ name: "mdi-beach", keywords: ["beach", "sand", "ocean", "vacation", "summer", "holiday"], type: "mdi", icon: mdiBeach },
|
||||
{ name: "mdi-binoculars", keywords: ["binoculars", "watch", "spy", "observe", "explore"], type: "mdi", icon: mdiBinoculars },
|
||||
{ name: "mdi-campfire", keywords: ["campfire", "fire", "camping", "outdoor", "bonfire"], type: "mdi", icon: mdiCampfire },
|
||||
{ name: "mdi-compass", keywords: ["compass", "navigation", "direction", "explore", "north"], type: "mdi", icon: mdiCompass },
|
||||
{ name: "mdi-island", keywords: ["island", "tropical", "palm", "vacation", "paradise"], type: "mdi", icon: mdiIsland },
|
||||
{ name: "mdi-kite", keywords: ["kite", "wind", "fly", "outdoor", "fun"], type: "mdi", icon: mdiKite },
|
||||
{ name: "mdi-lighthouse", keywords: ["lighthouse", "coast", "sea", "beacon", "navigation"], type: "mdi", icon: mdiLighthouse },
|
||||
{ name: "mdi-palm", keywords: ["palm", "tree", "tropical", "beach", "vacation"], type: "mdi", icon: mdiPalmTree },
|
||||
{ name: "mdi-parachute", keywords: ["parachute", "skydive", "adventure", "jump", "air"], type: "mdi", icon: mdiParachute },
|
||||
{ name: "mdi-tent", keywords: ["tent", "camping", "outdoor", "hike", "adventure"], type: "mdi", icon: mdiTent },
|
||||
{ name: "mdi-volcano", keywords: ["volcano", "lava", "eruption", "mountain", "nature"], type: "mdi", icon: mdiVolcano },
|
||||
{ name: "mdi-waterfall", keywords: ["waterfall", "water", "nature", "cascade", "river"], type: "mdi", icon: mdiWaterfall },
|
||||
{ name: "mdi-wave", keywords: ["wave", "ocean", "sea", "surf", "water"], type: "mdi", icon: mdiWave },
|
||||
// More Sports
|
||||
{ name: "mdi-badminton", keywords: ["badminton", "sport", "racket", "shuttlecock"], type: "mdi", icon: mdiBadminton },
|
||||
{ name: "mdi-baseball", keywords: ["baseball", "sport", "ball", "bat", "game"], type: "mdi", icon: mdiBaseball },
|
||||
{ name: "mdi-bowling", keywords: ["bowling", "sport", "ball", "pins", "alley"], type: "mdi", icon: mdiBowling },
|
||||
{ name: "mdi-cricket", keywords: ["cricket", "sport", "bat", "ball", "wicket"], type: "mdi", icon: mdiCricket },
|
||||
{ name: "mdi-curling", keywords: ["curling", "sport", "ice", "stone", "winter"], type: "mdi", icon: mdiCurling },
|
||||
{ name: "mdi-football", keywords: ["football", "american", "sport", "nfl", "ball"], type: "mdi", icon: mdiFootball },
|
||||
{ name: "mdi-hockey", keywords: ["hockey", "ice", "sport", "puck", "stick"], type: "mdi", icon: mdiHockeyPuck },
|
||||
{ name: "mdi-pool", keywords: ["pool", "billiards", "snooker", "game", "table"], type: "mdi", icon: mdiPool },
|
||||
{ name: "mdi-skateboard", keywords: ["skateboard", "skate", "sport", "trick", "street"], type: "mdi", icon: mdiSkateboard },
|
||||
{ name: "mdi-snowboard", keywords: ["snowboard", "snow", "winter", "sport", "mountain"], type: "mdi", icon: mdiSnowboard },
|
||||
{ name: "mdi-volleyball", keywords: ["volleyball", "sport", "ball", "beach", "game"], type: "mdi", icon: mdiVolleyball },
|
||||
{ name: "mdi-water-polo", keywords: ["water polo", "sport", "pool", "swim", "ball"], type: "mdi", icon: mdiWaterPolo },
|
||||
{ name: "mdi-roller-skate", keywords: ["roller", "skate", "sport", "wheels", "inline"], type: "mdi", icon: mdiRollerSkate },
|
||||
{ name: "mdi-billiards", keywords: ["billiards", "pool", "snooker", "cue", "table"], type: "mdi", icon: mdiBilliards },
|
||||
// Music Instruments
|
||||
{ name: "mdi-guitar", keywords: ["guitar", "music", "instrument", "rock", "acoustic"], type: "mdi", icon: mdiGuitarAcoustic },
|
||||
{ name: "mdi-piano", keywords: ["piano", "music", "instrument", "keyboard", "keys"], type: "mdi", icon: mdiPiano },
|
||||
{ name: "mdi-violin", keywords: ["violin", "music", "instrument", "classical", "strings"], type: "mdi", icon: mdiViolin },
|
||||
{ name: "mdi-metronome", keywords: ["metronome", "music", "tempo", "rhythm", "beat"], type: "mdi", icon: mdiMetronome },
|
||||
// More Food & Kitchen
|
||||
{ name: "mdi-baguette", keywords: ["baguette", "bread", "french", "bakery", "food"], type: "mdi", icon: mdiBaguette },
|
||||
{ name: "mdi-blender", keywords: ["blender", "mixer", "kitchen", "smoothie", "food"], type: "mdi", icon: mdiBlender },
|
||||
{ name: "mdi-carrot", keywords: ["carrot", "vegetable", "food", "healthy", "garden"], type: "mdi", icon: mdiCarrot },
|
||||
{ name: "mdi-cherries", keywords: ["cherry", "cherries", "fruit", "food", "sweet"], type: "mdi", icon: mdiFruitCherries },
|
||||
{ name: "mdi-citrus", keywords: ["citrus", "orange", "lemon", "fruit", "food", "vitamin"], type: "mdi", icon: mdiFruitCitrus },
|
||||
{ name: "mdi-cookie", keywords: ["cookie", "biscuit", "sweet", "snack", "bake"], type: "mdi", icon: mdiCookie },
|
||||
{ name: "mdi-corn", keywords: ["corn", "maize", "vegetable", "food", "farm"], type: "mdi", icon: mdiCorn },
|
||||
{ name: "mdi-drumstick", keywords: ["drumstick", "chicken", "meat", "food", "poultry"], type: "mdi", icon: mdiFoodDrumstick },
|
||||
{ name: "mdi-egg", keywords: ["egg", "food", "breakfast", "cooking", "chicken"], type: "mdi", icon: mdiEgg },
|
||||
{ name: "mdi-grapes", keywords: ["grapes", "fruit", "wine", "vineyard", "food"], type: "mdi", icon: mdiFruitGrapes },
|
||||
{ name: "mdi-kettle", keywords: ["kettle", "tea", "water", "boil", "kitchen"], type: "mdi", icon: mdiKettle },
|
||||
{ name: "mdi-microwave", keywords: ["microwave", "kitchen", "heat", "food", "appliance"], type: "mdi", icon: mdiMicrowave },
|
||||
{ name: "mdi-muffin", keywords: ["muffin", "cake", "bake", "sweet", "dessert"], type: "mdi", icon: mdiMuffin },
|
||||
{ name: "mdi-mushroom", keywords: ["mushroom", "food", "fungi", "forest", "nature"], type: "mdi", icon: mdiMushroom },
|
||||
{ name: "mdi-noodles", keywords: ["noodles", "pasta", "ramen", "food", "asian"], type: "mdi", icon: mdiNoodles },
|
||||
{ name: "mdi-oven", keywords: ["oven", "bake", "cook", "kitchen", "heat"], type: "mdi", icon: mdiToasterOven },
|
||||
{ name: "mdi-pasta", keywords: ["pasta", "spaghetti", "italian", "food", "noodles"], type: "mdi", icon: mdiPasta },
|
||||
{ name: "mdi-peanut", keywords: ["peanut", "nut", "snack", "food", "allergy"], type: "mdi", icon: mdiPeanut },
|
||||
{ name: "mdi-popcorn", keywords: ["popcorn", "snack", "movie", "cinema", "food"], type: "mdi", icon: mdiPopcorn },
|
||||
{ name: "mdi-pot", keywords: ["pot", "cook", "kitchen", "stew", "soup"], type: "mdi", icon: mdiPot },
|
||||
{ name: "mdi-rice", keywords: ["rice", "grain", "food", "asian", "bowl"], type: "mdi", icon: mdiRice },
|
||||
{ name: "mdi-steak", keywords: ["steak", "meat", "beef", "food", "grill", "bbq"], type: "mdi", icon: mdiFoodSteak },
|
||||
{ name: "mdi-stove", keywords: ["stove", "cook", "kitchen", "burner", "gas"], type: "mdi", icon: mdiStove },
|
||||
{ name: "mdi-taco", keywords: ["taco", "mexican", "food", "burrito", "wrap"], type: "mdi", icon: mdiTaco },
|
||||
{ name: "mdi-watermelon", keywords: ["watermelon", "fruit", "summer", "food", "sweet"], type: "mdi", icon: mdiFruitWatermelon },
|
||||
{ name: "mdi-glass-mug", keywords: ["glass", "mug", "beer", "drink", "pub"], type: "mdi", icon: mdiGlassMug },
|
||||
{ name: "mdi-glass-wine", keywords: ["glass", "wine", "drink", "alcohol", "dinner"], type: "mdi", icon: mdiGlassWine },
|
||||
{ name: "mdi-silverware", keywords: ["silverware", "cutlery", "fork", "knife", "dining"], type: "mdi", icon: mdiSilverware },
|
||||
{ name: "mdi-candy-cane", keywords: ["candy", "cane", "christmas", "sweet", "holiday"], type: "mdi", icon: mdiCandycane },
|
||||
{ name: "mdi-pumpkin", keywords: ["pumpkin", "halloween", "autumn", "food", "squash"], type: "mdi", icon: mdiPumpkin },
|
||||
// Animals
|
||||
{ name: "mdi-bat", keywords: ["bat", "animal", "halloween", "night", "vampire"], type: "mdi", icon: mdiBat },
|
||||
{ name: "mdi-bee", keywords: ["bee", "insect", "honey", "buzz", "pollinate"], type: "mdi", icon: mdiBee },
|
||||
{ name: "mdi-cow", keywords: ["cow", "animal", "farm", "milk", "cattle"], type: "mdi", icon: mdiCow },
|
||||
{ name: "mdi-duck", keywords: ["duck", "animal", "bird", "pond", "quack"], type: "mdi", icon: mdiDuck },
|
||||
{ name: "mdi-penguin", keywords: ["penguin", "animal", "arctic", "bird", "ice", "linux"], type: "mdi", icon: mdiPenguin },
|
||||
{ name: "mdi-panda", keywords: ["panda", "bear", "animal", "bamboo", "china"], type: "mdi", icon: mdiPanda },
|
||||
{ name: "mdi-rabbit", keywords: ["rabbit", "bunny", "animal", "pet", "easter"], type: "mdi", icon: mdiRabbit },
|
||||
{ name: "mdi-shark", keywords: ["shark", "fish", "ocean", "sea", "animal"], type: "mdi", icon: mdiShark },
|
||||
{ name: "mdi-sheep", keywords: ["sheep", "animal", "farm", "wool", "lamb"], type: "mdi", icon: mdiSheep },
|
||||
{ name: "mdi-snake", keywords: ["snake", "animal", "reptile", "python", "serpent"], type: "mdi", icon: mdiSnake },
|
||||
{ name: "mdi-spider", keywords: ["spider", "insect", "web", "halloween", "arachnid"], type: "mdi", icon: mdiSpider },
|
||||
{ name: "mdi-turtle", keywords: ["turtle", "animal", "slow", "shell", "reptile"], type: "mdi", icon: mdiTurtle },
|
||||
{ name: "mdi-unicorn", keywords: ["unicorn", "fantasy", "magic", "horse", "mythical"], type: "mdi", icon: mdiUnicorn },
|
||||
// Home & Garden
|
||||
{ name: "mdi-balcony", keywords: ["balcony", "terrace", "outdoor", "home", "patio"], type: "mdi", icon: mdiBalcony },
|
||||
{ name: "mdi-barn", keywords: ["barn", "farm", "rural", "agriculture", "building"], type: "mdi", icon: mdiBarn },
|
||||
{ name: "mdi-bench", keywords: ["bench", "park", "sit", "outdoor", "garden"], type: "mdi", icon: mdiBench },
|
||||
{ name: "mdi-bridge", keywords: ["bridge", "crossing", "river", "road", "connect"], type: "mdi", icon: mdiBridge },
|
||||
{ name: "mdi-cactus", keywords: ["cactus", "plant", "desert", "succulent", "garden"], type: "mdi", icon: mdiCactus },
|
||||
{ name: "mdi-door-open", keywords: ["door", "open", "entrance", "exit", "room"], type: "mdi", icon: mdiDoorOpen },
|
||||
{ name: "mdi-fountain", keywords: ["fountain", "water", "park", "garden", "decor"], type: "mdi", icon: mdiFountain },
|
||||
{ name: "mdi-garage", keywords: ["garage", "car", "parking", "storage", "home"], type: "mdi", icon: mdiGarage },
|
||||
{ name: "mdi-grass", keywords: ["grass", "lawn", "garden", "green", "yard"], type: "mdi", icon: mdiGrass },
|
||||
{ name: "mdi-greenhouse", keywords: ["greenhouse", "garden", "plant", "grow", "glass"], type: "mdi", icon: mdiGreenhouse },
|
||||
{ name: "mdi-hot-tub", keywords: ["hot tub", "jacuzzi", "spa", "relax", "bath"], type: "mdi", icon: mdiHotTub },
|
||||
{ name: "mdi-leaf-maple", keywords: ["maple", "leaf", "autumn", "fall", "canada"], type: "mdi", icon: mdiLeafMaple },
|
||||
{ name: "mdi-mailbox", keywords: ["mailbox", "mail", "letter", "post", "delivery"], type: "mdi", icon: mdiMailbox },
|
||||
{ name: "mdi-solar-panel", keywords: ["solar", "panel", "energy", "sun", "green", "power"], type: "mdi", icon: mdiSolarPanel },
|
||||
{ name: "mdi-stairs", keywords: ["stairs", "steps", "climb", "floor", "building"], type: "mdi", icon: mdiStairs },
|
||||
{ name: "mdi-tulip", keywords: ["tulip", "flower", "garden", "spring", "plant"], type: "mdi", icon: mdiFlowerTulip },
|
||||
{ name: "mdi-wardrobe", keywords: ["wardrobe", "closet", "clothes", "furniture", "bedroom"], type: "mdi", icon: mdiWardrobe },
|
||||
{ name: "mdi-wheelbarrow", keywords: ["wheelbarrow", "garden", "dirt", "haul", "landscaping"], type: "mdi", icon: mdiWheelBarrow },
|
||||
{ name: "mdi-wind-turbine", keywords: ["wind", "turbine", "energy", "green", "power", "renewable"], type: "mdi", icon: mdiWindTurbine },
|
||||
// Vehicles & Transport
|
||||
{ name: "mdi-bus-stop", keywords: ["bus", "stop", "station", "public", "transport"], type: "mdi", icon: mdiBusStop },
|
||||
{ name: "mdi-caravan", keywords: ["caravan", "rv", "camper", "travel", "road trip"], type: "mdi", icon: mdiCaravan },
|
||||
{ name: "mdi-dump-truck", keywords: ["dump", "truck", "construction", "haul", "heavy"], type: "mdi", icon: mdiDumpTruck },
|
||||
{ name: "mdi-ferry", keywords: ["ferry", "boat", "ship", "water", "transport"], type: "mdi", icon: mdiFerry },
|
||||
{ name: "mdi-gas-station", keywords: ["gas", "station", "fuel", "petrol", "diesel"], type: "mdi", icon: mdiGasStation },
|
||||
{ name: "mdi-helicopter", keywords: ["helicopter", "fly", "air", "chopper", "transport"], type: "mdi", icon: mdiHelicopter },
|
||||
{ name: "mdi-highway", keywords: ["highway", "road", "drive", "freeway", "motorway"], type: "mdi", icon: mdiHighway },
|
||||
{ name: "mdi-moped", keywords: ["moped", "scooter", "ride", "vespa", "motorcycle"], type: "mdi", icon: mdiMoped },
|
||||
{ name: "mdi-parking", keywords: ["parking", "car", "lot", "space", "garage"], type: "mdi", icon: mdiParking },
|
||||
{ name: "mdi-submarine", keywords: ["submarine", "underwater", "navy", "ocean", "dive"], type: "mdi", icon: mdiSubmarine },
|
||||
{ name: "mdi-tractor", keywords: ["tractor", "farm", "agriculture", "field", "plow"], type: "mdi", icon: mdiTractor },
|
||||
{ name: "mdi-traffic-cone", keywords: ["traffic", "cone", "construction", "road", "warning"], type: "mdi", icon: mdiTrafficCone },
|
||||
{ name: "mdi-traffic-light", keywords: ["traffic", "light", "signal", "road", "stop"], type: "mdi", icon: mdiTrafficLight },
|
||||
{ name: "mdi-ufo", keywords: ["ufo", "alien", "space", "flying saucer", "extraterrestrial"], type: "mdi", icon: mdiUfo },
|
||||
// Tools & Construction
|
||||
{ name: "mdi-anvil", keywords: ["anvil", "forge", "blacksmith", "metal", "craft"], type: "mdi", icon: mdiAnvil },
|
||||
{ name: "mdi-axe", keywords: ["axe", "chop", "wood", "lumber", "tool"], type: "mdi", icon: mdiAxe },
|
||||
{ name: "mdi-barrel", keywords: ["barrel", "container", "storage", "wine", "oil"], type: "mdi", icon: mdiBarrel },
|
||||
{ name: "mdi-brush", keywords: ["brush", "paint", "art", "clean", "tool"], type: "mdi", icon: mdiBrush },
|
||||
{ name: "mdi-bucket", keywords: ["bucket", "pail", "water", "clean", "container"], type: "mdi", icon: mdiBucket },
|
||||
{ name: "mdi-bulldozer", keywords: ["bulldozer", "construction", "heavy", "earth", "dig"], type: "mdi", icon: mdiBulldozer },
|
||||
{ name: "mdi-dolly", keywords: ["dolly", "cart", "move", "transport", "warehouse"], type: "mdi", icon: mdiDolly },
|
||||
{ name: "mdi-gavel", keywords: ["gavel", "judge", "court", "law", "justice", "auction"], type: "mdi", icon: mdiGavel },
|
||||
{ name: "mdi-hard-hat", keywords: ["hard hat", "helmet", "construction", "safety", "work"], type: "mdi", icon: mdiHardHat },
|
||||
{ name: "mdi-ladder", keywords: ["ladder", "climb", "step", "height", "tool"], type: "mdi", icon: mdiLadder },
|
||||
{ name: "mdi-nail", keywords: ["nail", "hammer", "construction", "build", "wood"], type: "mdi", icon: mdiNail },
|
||||
{ name: "mdi-pipe", keywords: ["pipe", "plumbing", "water", "tube", "connect"], type: "mdi", icon: mdiPipe },
|
||||
{ name: "mdi-shovel", keywords: ["shovel", "dig", "garden", "earth", "tool"], type: "mdi", icon: mdiShovel },
|
||||
{ name: "mdi-spray", keywords: ["spray", "paint", "can", "aerosol", "graffiti"], type: "mdi", icon: mdiSpray },
|
||||
// Fun & Toys
|
||||
{ name: "mdi-boomerang", keywords: ["boomerang", "throw", "return", "toy", "australia"], type: "mdi", icon: mdiBoomerang },
|
||||
{ name: "mdi-castle", keywords: ["castle", "fortress", "medieval", "king", "princess"], type: "mdi", icon: mdiCastle },
|
||||
{ name: "mdi-chess-knight", keywords: ["chess", "knight", "game", "strategy", "board"], type: "mdi", icon: mdiChessKnight },
|
||||
{ name: "mdi-chess-rook", keywords: ["chess", "rook", "game", "strategy", "board", "tower"], type: "mdi", icon: mdiChessRook },
|
||||
{ name: "mdi-dice", keywords: ["dice", "game", "random", "roll", "chance", "board"], type: "mdi", icon: mdiDiceMultiple },
|
||||
{ name: "mdi-drone", keywords: ["drone", "fly", "camera", "aerial", "quadcopter"], type: "mdi", icon: mdiDrone },
|
||||
{ name: "mdi-firework", keywords: ["firework", "celebration", "party", "new year", "explosion"], type: "mdi", icon: mdiFirework },
|
||||
{ name: "mdi-pinwheel", keywords: ["pinwheel", "toy", "wind", "spin", "colorful"], type: "mdi", icon: mdiPinwheel },
|
||||
{ name: "mdi-pirate", keywords: ["pirate", "skull", "ship", "adventure", "treasure"], type: "mdi", icon: mdiPirate },
|
||||
{ name: "mdi-robot", keywords: ["robot", "ai", "machine", "automation", "bot"], type: "mdi", icon: mdiRobot },
|
||||
{ name: "mdi-snowman", keywords: ["snowman", "winter", "snow", "christmas", "cold"], type: "mdi", icon: mdiSnowman },
|
||||
{ name: "mdi-sword", keywords: ["sword", "weapon", "fight", "medieval", "knight"], type: "mdi", icon: mdiSword },
|
||||
{ name: "mdi-teddy-bear", keywords: ["teddy", "bear", "toy", "stuffed", "child", "kids"], type: "mdi", icon: mdiTeddyBear },
|
||||
{ name: "mdi-treasure-chest", keywords: ["treasure", "chest", "gold", "pirate", "loot"], type: "mdi", icon: mdiTreasureChest },
|
||||
// Lifestyle & Fashion
|
||||
{ name: "mdi-candle", keywords: ["candle", "light", "flame", "romantic", "relax", "scent"], type: "mdi", icon: mdiCandle },
|
||||
{ name: "mdi-glasses", keywords: ["glasses", "sunglasses", "vision", "read", "eyewear"], type: "mdi", icon: mdiGlasses },
|
||||
{ name: "mdi-hanger", keywords: ["hanger", "clothes", "wardrobe", "fashion", "closet"], type: "mdi", icon: mdiHanger },
|
||||
{ name: "mdi-lipstick", keywords: ["lipstick", "makeup", "beauty", "cosmetics", "fashion"], type: "mdi", icon: mdiLipstick },
|
||||
{ name: "mdi-mustache", keywords: ["mustache", "face", "gentleman", "barber", "style"], type: "mdi", icon: mdiMustache },
|
||||
{ name: "mdi-shoe", keywords: ["shoe", "footwear", "sneaker", "fashion", "walk"], type: "mdi", icon: mdiShoeSneaker },
|
||||
{ name: "mdi-sunglasses", keywords: ["sunglasses", "cool", "sun", "fashion", "summer"], type: "mdi", icon: mdiSunglasses },
|
||||
{ name: "mdi-tie", keywords: ["tie", "business", "formal", "suit", "office"], type: "mdi", icon: mdiTie },
|
||||
// Miscellaneous
|
||||
{ name: "mdi-archive", keywords: ["archive", "storage", "backup", "old", "box"], type: "mdi", icon: mdiArchive },
|
||||
{ name: "mdi-bandage", keywords: ["bandage", "first aid", "wound", "medical", "plaster"], type: "mdi", icon: mdiBandage },
|
||||
{ name: "mdi-barcode", keywords: ["barcode", "scan", "product", "shop", "inventory"], type: "mdi", icon: mdiBarcode },
|
||||
{ name: "mdi-billboard", keywords: ["billboard", "advertising", "sign", "marketing", "ad"], type: "mdi", icon: mdiBillboard },
|
||||
{ name: "mdi-bomb", keywords: ["bomb", "explosive", "danger", "warning", "blast"], type: "mdi", icon: mdiBomb },
|
||||
{ name: "mdi-bone", keywords: ["bone", "skeleton", "dog", "anatomy", "medical"], type: "mdi", icon: mdiBone },
|
||||
{ name: "mdi-bookshelf", keywords: ["bookshelf", "library", "books", "shelf", "read"], type: "mdi", icon: mdiBookshelf },
|
||||
{ name: "mdi-bullhorn", keywords: ["bullhorn", "megaphone", "announce", "loud", "marketing"], type: "mdi", icon: mdiBullhorn },
|
||||
{ name: "mdi-calculator", keywords: ["calculator", "math", "calculate", "numbers", "finance"], type: "mdi", icon: mdiCalculator },
|
||||
{ name: "mdi-clipboard", keywords: ["clipboard", "paste", "copy", "notes", "list"], type: "mdi", icon: mdiClipboard },
|
||||
{ name: "mdi-clover", keywords: ["clover", "luck", "irish", "shamrock", "four leaf"], type: "mdi", icon: mdiClover },
|
||||
{ name: "mdi-cog", keywords: ["cog", "gear", "settings", "config", "mechanical"], type: "mdi", icon: mdiCog },
|
||||
{ name: "mdi-crystal-ball", keywords: ["crystal", "ball", "magic", "fortune", "predict"], type: "mdi", icon: mdiCrystalBall },
|
||||
{ name: "mdi-cup", keywords: ["cup", "drink", "tea", "mug", "hot"], type: "mdi", icon: mdiCup },
|
||||
{ name: "mdi-elevator", keywords: ["elevator", "lift", "floor", "building", "up"], type: "mdi", icon: mdiElevator },
|
||||
{ name: "mdi-engine", keywords: ["engine", "motor", "car", "power", "mechanical"], type: "mdi", icon: mdiEngine },
|
||||
{ name: "mdi-fan", keywords: ["fan", "cool", "air", "ventilation", "spin"], type: "mdi", icon: mdiFan },
|
||||
{ name: "mdi-feather", keywords: ["feather", "write", "quill", "bird", "light"], type: "mdi", icon: mdiFeather },
|
||||
{ name: "mdi-fire-extinguisher", keywords: ["fire", "extinguisher", "safety", "emergency", "flame"], type: "mdi", icon: mdiFireExtinguisher },
|
||||
{ name: "mdi-fire-hydrant", keywords: ["fire", "hydrant", "water", "emergency", "firefighter"], type: "mdi", icon: mdiFireHydrant },
|
||||
{ name: "mdi-fire-truck", keywords: ["fire", "truck", "emergency", "firefighter", "rescue"], type: "mdi", icon: mdiFireTruck },
|
||||
{ name: "mdi-flag-checkered", keywords: ["flag", "checkered", "race", "finish", "winner"], type: "mdi", icon: mdiFlagCheckered },
|
||||
{ name: "mdi-flash", keywords: ["flash", "lightning", "bolt", "power", "energy", "fast"], type: "mdi", icon: mdiFlash },
|
||||
{ name: "mdi-flashlight", keywords: ["flashlight", "torch", "light", "dark", "search"], type: "mdi", icon: mdiFlashlight },
|
||||
{ name: "mdi-globe-model", keywords: ["globe", "world", "earth", "geography", "model"], type: "mdi", icon: mdiGlobeModel },
|
||||
{ name: "mdi-harddisk", keywords: ["harddisk", "storage", "drive", "data", "computer"], type: "mdi", icon: mdiHarddisk },
|
||||
{ name: "mdi-hook", keywords: ["hook", "hang", "catch", "fishing", "crane"], type: "mdi", icon: mdiHook },
|
||||
{ name: "mdi-horseshoe", keywords: ["horseshoe", "luck", "horse", "equestrian", "ranch"], type: "mdi", icon: mdiHorseshoe },
|
||||
{ name: "mdi-hurricane", keywords: ["hurricane", "storm", "weather", "tornado", "wind"], type: "mdi", icon: mdiWeatherHurricane },
|
||||
{ name: "mdi-church", keywords: ["church", "religion", "christian", "worship", "building"], type: "mdi", icon: mdiChurch },
|
||||
{ name: "mdi-cross", keywords: ["cross", "religion", "christian", "faith", "crucifix", "church", "jesus"], type: "mdi", icon: mdiCross },
|
||||
{ name: "mdi-knife", keywords: ["knife", "cut", "kitchen", "blade", "sharp"], type: "mdi", icon: mdiKnife },
|
||||
{ name: "mdi-library", keywords: ["library", "books", "read", "study", "education"], type: "mdi", icon: mdiLibrary },
|
||||
{ name: "mdi-lifebuoy", keywords: ["lifebuoy", "rescue", "safety", "swim", "help"], type: "mdi", icon: mdiLifebuoy },
|
||||
{ name: "mdi-map-marker", keywords: ["map", "marker", "pin", "location", "gps", "place"], type: "mdi", icon: mdiMapMarker },
|
||||
{ name: "mdi-mirror", keywords: ["mirror", "reflect", "bathroom", "vanity", "glass"], type: "mdi", icon: mdiMirror },
|
||||
{ name: "mdi-molecule", keywords: ["molecule", "chemistry", "science", "atom", "bond"], type: "mdi", icon: mdiMolecule },
|
||||
{ name: "mdi-mosque", keywords: ["mosque", "islam", "religion", "worship", "building"], type: "mdi", icon: mdiMosque },
|
||||
{ name: "mdi-orbit", keywords: ["orbit", "space", "planet", "satellite", "rotate"], type: "mdi", icon: mdiOrbit },
|
||||
{ name: "mdi-paper-roll", keywords: ["paper", "roll", "toilet", "tissue", "scroll"], type: "mdi", icon: mdiPaperRoll },
|
||||
{ name: "mdi-passport", keywords: ["passport", "travel", "identity", "document", "border"], type: "mdi", icon: mdiPassport },
|
||||
{ name: "mdi-pillar", keywords: ["pillar", "column", "architecture", "greek", "building"], type: "mdi", icon: mdiPillar },
|
||||
{ name: "mdi-police-badge", keywords: ["police", "badge", "law", "officer", "authority"], type: "mdi", icon: mdiPoliceBadge },
|
||||
{ name: "mdi-radiator", keywords: ["radiator", "heat", "warm", "heating", "home"], type: "mdi", icon: mdiRadiator },
|
||||
{ name: "mdi-safe", keywords: ["safe", "vault", "secure", "money", "lock"], type: "mdi", icon: mdiSafe },
|
||||
{ name: "mdi-satellite", keywords: ["satellite", "space", "orbit", "signal", "communication"], type: "mdi", icon: mdiSatellite },
|
||||
{ name: "mdi-scale", keywords: ["scale", "weight", "balance", "measure", "justice"], type: "mdi", icon: mdiScale },
|
||||
{ name: "mdi-seal", keywords: ["seal", "stamp", "certificate", "official", "approve"], type: "mdi", icon: mdiSeal },
|
||||
{ name: "mdi-sign-real-estate", keywords: ["sign", "real estate", "house", "sale", "property"], type: "mdi", icon: mdiSignRealEstate },
|
||||
{ name: "mdi-skull", keywords: ["skull", "death", "danger", "pirate", "halloween", "skeleton"], type: "mdi", icon: mdiSkull },
|
||||
{ name: "mdi-stadium", keywords: ["stadium", "arena", "sport", "concert", "event"], type: "mdi", icon: mdiStadium },
|
||||
{ name: "mdi-star-shooting", keywords: ["star", "shooting", "wish", "meteor", "night"], type: "mdi", icon: mdiStarShooting },
|
||||
{ name: "mdi-steering", keywords: ["steering", "wheel", "drive", "car", "vehicle"], type: "mdi", icon: mdiSteering },
|
||||
{ name: "mdi-syringe", keywords: ["syringe", "injection", "vaccine", "medical", "needle"], type: "mdi", icon: mdiNeedle },
|
||||
{ name: "mdi-target", keywords: ["target", "aim", "goal", "bullseye", "focus"], type: "mdi", icon: mdiTarget },
|
||||
{ name: "mdi-telescope", keywords: ["telescope", "astronomy", "space", "star", "observe"], type: "mdi", icon: mdiTelescope },
|
||||
{ name: "mdi-timer", keywords: ["timer", "stopwatch", "countdown", "time", "speed"], type: "mdi", icon: mdiTimer },
|
||||
{ name: "mdi-tornado", keywords: ["tornado", "storm", "wind", "weather", "twister"], type: "mdi", icon: mdiWeatherTornado },
|
||||
{ name: "mdi-trophy", keywords: ["trophy", "award", "winner", "champion", "cup", "prize"], type: "mdi", icon: mdiTrophy },
|
||||
{ name: "mdi-typewriter", keywords: ["typewriter", "write", "vintage", "text", "author"], type: "mdi", icon: mdiTypewriter },
|
||||
{ name: "mdi-webcam", keywords: ["webcam", "camera", "video", "stream", "call"], type: "mdi", icon: mdiWebcam },
|
||||
{ name: "mdi-whistle", keywords: ["whistle", "referee", "sport", "blow", "signal"], type: "mdi", icon: mdiWhistle },
|
||||
{ name: "mdi-beaker", keywords: ["beaker", "lab", "science", "chemistry", "experiment"], type: "mdi", icon: mdiBeaker },
|
||||
{ name: "mdi-mortar-pestle", keywords: ["mortar", "pestle", "pharmacy", "grind", "spice", "medicine"], type: "mdi", icon: mdiMortarPestle },
|
||||
{ name: "mdi-charity", keywords: ["charity", "donate", "help", "volunteer", "give"], type: "mdi", icon: mdiCharity },
|
||||
{ name: "mdi-coat-rack", keywords: ["coat", "rack", "hanger", "hall", "stand"], type: "mdi", icon: mdiCoatRack },
|
||||
{ name: "mdi-propane-tank", keywords: ["propane", "tank", "gas", "grill", "fuel"], type: "mdi", icon: mdiPropaneTank },
|
||||
];
|
||||
|
||||
const allIcons: IconEntry[] = [...faIcons, ...mdiIcons];
|
||||
|
||||
export { allIcons, faIcons, mdiIcons, type IconEntry };
|
||||
Loading…
Reference in New Issue
Block a user