< Summary

Information
Class: Chronicis.Client.Services.IconCategory
Assembly: Chronicis.Client
File(s): /home/runner/work/chronicis/chronicis/src/Chronicis.Client/Services/FontAwesomeIcons.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 8
Coverable lines: 8
Total lines: 289
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Name()100%210%
get_Icon()100%210%
get_Icons()100%210%
.ctor(...)100%210%

File(s)

/home/runner/work/chronicis/chronicis/src/Chronicis.Client/Services/FontAwesomeIcons.cs

#LineLine coverage
 1namespace Chronicis.Client.Services;
 2
 3/// <summary>
 4/// Provides Font Awesome icon data for the icon picker.
 5/// Icons are organized by category for easy browsing.
 6/// All icons are from Font Awesome Free 6.5 - verified to exist.
 7/// </summary>
 8public static class FontAwesomeIcons
 9{
 10    public static readonly List<IconCategory> Categories = new()
 11    {
 12        new IconCategory("Fantasy & Gaming", "fa-solid fa-dragon", new[]
 13        {
 14            "fa-solid fa-dragon", "fa-solid fa-dungeon", "fa-solid fa-dice-d20", "fa-solid fa-dice",
 15            "fa-solid fa-dice-d6", "fa-solid fa-chess", "fa-solid fa-chess-rook", "fa-solid fa-chess-knight",
 16            "fa-solid fa-chess-bishop", "fa-solid fa-chess-queen", "fa-solid fa-chess-king", "fa-solid fa-chess-pawn",
 17            "fa-solid fa-crown", "fa-solid fa-hat-wizard", "fa-solid fa-wand-magic-sparkles", "fa-solid fa-wand-sparkles
 18            "fa-solid fa-scroll", "fa-solid fa-book-skull", "fa-solid fa-skull", "fa-solid fa-skull-crossbones",
 19            "fa-solid fa-ghost", "fa-solid fa-spider", "fa-solid fa-shield-halved", "fa-solid fa-shield",
 20            "fa-solid fa-gavel", "fa-solid fa-hammer", "fa-solid fa-khanda",
 21            "fa-solid fa-gem", "fa-solid fa-ring", "fa-solid fa-coins", "fa-solid fa-sack-dollar",
 22            "fa-solid fa-key", "fa-solid fa-lock", "fa-solid fa-unlock",
 23            "fa-solid fa-fire", "fa-solid fa-fire-flame-curved", "fa-solid fa-bolt",
 24            "fa-solid fa-bolt-lightning", "fa-solid fa-snowflake", "fa-solid fa-meteor",
 25            "fa-solid fa-explosion", "fa-solid fa-burst", "fa-solid fa-hand-sparkles", "fa-solid fa-hand-fist",
 26            "fa-solid fa-mask", "fa-solid fa-masks-theater", "fa-solid fa-eye",
 27            "fa-solid fa-eye-slash", "fa-solid fa-ankh", "fa-solid fa-cross", "fa-solid fa-star-of-david",
 28            "fa-solid fa-om", "fa-solid fa-yin-yang", "fa-solid fa-peace", "fa-solid fa-bahai",
 29            "fa-solid fa-book-open", "fa-solid fa-feather", "fa-solid fa-feather-pointed"
 30        }),
 31
 32        new IconCategory("People & Characters", "fa-solid fa-user", new[]
 33        {
 34            "fa-solid fa-user", "fa-solid fa-user-tie", "fa-solid fa-user-ninja", "fa-solid fa-user-secret",
 35            "fa-solid fa-user-shield", "fa-solid fa-user-gear", "fa-solid fa-user-astronaut", "fa-solid fa-user-graduate
 36            "fa-solid fa-user-nurse", "fa-solid fa-user-doctor", "fa-solid fa-user-injured", "fa-solid fa-user-plus",
 37            "fa-solid fa-user-minus", "fa-solid fa-user-pen", "fa-solid fa-user-lock", "fa-solid fa-user-check",
 38            "fa-solid fa-user-xmark", "fa-solid fa-user-clock", "fa-solid fa-user-tag", "fa-solid fa-user-group",
 39            "fa-solid fa-users", "fa-solid fa-users-gear", "fa-solid fa-users-line", "fa-solid fa-people-group",
 40            "fa-solid fa-people-arrows", "fa-solid fa-people-pulling", "fa-solid fa-person", "fa-solid fa-person-dress",
 41            "fa-solid fa-person-running", "fa-solid fa-person-walking", "fa-solid fa-person-hiking",
 42            "fa-solid fa-person-biking", "fa-solid fa-person-swimming", "fa-solid fa-person-skiing",
 43            "fa-solid fa-person-snowboarding", "fa-solid fa-person-falling", "fa-solid fa-person-drowning",
 44            "fa-solid fa-person-praying", "fa-solid fa-person-rays", "fa-solid fa-person-burst",
 45            "fa-solid fa-person-rifle", "fa-solid fa-person-military-rifle", "fa-solid fa-person-military-pointing",
 46            "fa-solid fa-child", "fa-solid fa-baby", "fa-solid fa-face-smile", "fa-solid fa-face-meh",
 47            "fa-solid fa-face-frown", "fa-solid fa-face-angry", "fa-solid fa-face-surprise", "fa-solid fa-face-laugh",
 48            "fa-solid fa-face-grin-stars", "fa-solid fa-face-dizzy", "fa-solid fa-head-side-virus"
 49        }),
 50
 51        new IconCategory("Places & Buildings", "fa-solid fa-landmark", new[]
 52        {
 53            "fa-solid fa-house", "fa-solid fa-house-chimney", "fa-solid fa-building", "fa-solid fa-building-columns",
 54            "fa-solid fa-landmark", "fa-solid fa-landmark-dome", "fa-solid fa-landmark-flag",
 55            "fa-solid fa-church", "fa-solid fa-mosque", "fa-solid fa-synagogue", "fa-solid fa-place-of-worship",
 56            "fa-solid fa-torii-gate", "fa-solid fa-kaaba", "fa-solid fa-vihara", "fa-solid fa-gopuram",
 57            "fa-solid fa-hospital", "fa-solid fa-school", "fa-solid fa-hotel",
 58            "fa-solid fa-store", "fa-solid fa-warehouse", "fa-solid fa-industry", "fa-solid fa-city",
 59            "fa-solid fa-tent", "fa-solid fa-campground", "fa-solid fa-caravan", "fa-solid fa-igloo",
 60            "fa-solid fa-archway", "fa-solid fa-monument", "fa-solid fa-tower-observation", "fa-solid fa-oil-well",
 61            "fa-solid fa-bridge", "fa-solid fa-bridge-water", "fa-solid fa-road",
 62            "fa-solid fa-mountain", "fa-solid fa-mountain-sun", "fa-solid fa-mountain-city", "fa-solid fa-volcano",
 63            "fa-solid fa-tree", "fa-solid fa-tree-city", "fa-solid fa-seedling",
 64            "fa-solid fa-water", "fa-solid fa-anchor", "fa-solid fa-ship", "fa-solid fa-sailboat",
 65            "fa-solid fa-ferry", "fa-solid fa-compass", "fa-solid fa-map", "fa-solid fa-map-location",
 66            "fa-solid fa-map-location-dot", "fa-solid fa-location-dot", "fa-solid fa-location-pin",
 67            "fa-solid fa-globe", "fa-solid fa-earth-americas", "fa-solid fa-earth-europe", "fa-solid fa-earth-asia"
 68        }),
 69
 70        new IconCategory("Nature & Animals", "fa-solid fa-paw", new[]
 71        {
 72            "fa-solid fa-paw", "fa-solid fa-dog", "fa-solid fa-cat", "fa-solid fa-horse", "fa-solid fa-horse-head",
 73            "fa-solid fa-cow", "fa-solid fa-hippo", "fa-solid fa-otter", "fa-solid fa-fish", "fa-solid fa-fish-fins",
 74            "fa-solid fa-shrimp", "fa-solid fa-frog", "fa-solid fa-crow", "fa-solid fa-dove", "fa-solid fa-kiwi-bird",
 75            "fa-solid fa-feather", "fa-solid fa-feather-pointed", "fa-solid fa-spider", "fa-solid fa-bug",
 76            "fa-solid fa-bugs", "fa-solid fa-locust", "fa-solid fa-mosquito", "fa-solid fa-worm",
 77            "fa-solid fa-tree", "fa-solid fa-leaf", "fa-solid fa-clover", "fa-solid fa-seedling",
 78            "fa-solid fa-plant-wilt", "fa-solid fa-cannabis", "fa-solid fa-wheat-awn", "fa-solid fa-apple-whole",
 79            "fa-solid fa-lemon", "fa-solid fa-carrot", "fa-solid fa-pepper-hot", "fa-solid fa-sun",
 80            "fa-solid fa-moon", "fa-solid fa-star", "fa-solid fa-cloud", "fa-solid fa-cloud-sun",
 81            "fa-solid fa-cloud-moon", "fa-solid fa-cloud-rain", "fa-solid fa-cloud-showers-heavy",
 82            "fa-solid fa-cloud-bolt", "fa-solid fa-snowflake", "fa-solid fa-wind", "fa-solid fa-tornado",
 83            "fa-solid fa-hurricane", "fa-solid fa-rainbow", "fa-solid fa-umbrella", "fa-solid fa-temperature-high",
 84            "fa-solid fa-temperature-low", "fa-solid fa-fire", "fa-solid fa-water", "fa-solid fa-droplet",
 85            "fa-solid fa-mountain", "fa-solid fa-volcano"
 86        }),
 87
 88        new IconCategory("Objects & Items", "fa-solid fa-box", new[]
 89        {
 90            "fa-solid fa-box", "fa-solid fa-box-open", "fa-solid fa-boxes-stacked", "fa-solid fa-cube",
 91            "fa-solid fa-cubes", "fa-solid fa-bag-shopping", "fa-solid fa-basket-shopping", "fa-solid fa-cart-shopping",
 92            "fa-solid fa-gift", "fa-solid fa-gifts", "fa-solid fa-gem", "fa-solid fa-ring",
 93            "fa-solid fa-key", "fa-solid fa-lock", "fa-solid fa-unlock", "fa-solid fa-door-open",
 94            "fa-solid fa-door-closed", "fa-solid fa-chair", "fa-solid fa-couch", "fa-solid fa-bed",
 95            "fa-solid fa-bath", "fa-solid fa-sink", "fa-solid fa-utensils",
 96            "fa-solid fa-plate-wheat", "fa-solid fa-bowl-food", "fa-solid fa-mug-hot", "fa-solid fa-mug-saucer",
 97            "fa-solid fa-wine-glass", "fa-solid fa-wine-bottle", "fa-solid fa-beer-mug-empty", "fa-solid fa-martini-glas
 98            "fa-solid fa-whiskey-glass", "fa-solid fa-bottle-water", "fa-solid fa-flask", "fa-solid fa-vial",
 99            "fa-solid fa-mortar-pestle", "fa-solid fa-prescription-bottle", "fa-solid fa-pills", "fa-solid fa-syringe",
 100            "fa-solid fa-bandage", "fa-solid fa-toolbox", "fa-solid fa-wrench", "fa-solid fa-screwdriver",
 101            "fa-solid fa-hammer", "fa-solid fa-gavel", "fa-solid fa-scissors", "fa-solid fa-pen",
 102            "fa-solid fa-pen-fancy", "fa-solid fa-pen-nib", "fa-solid fa-pencil", "fa-solid fa-brush",
 103            "fa-solid fa-paintbrush", "fa-solid fa-palette", "fa-solid fa-ruler", "fa-solid fa-compass-drafting",
 104            "fa-solid fa-magnifying-glass", "fa-solid fa-binoculars", "fa-solid fa-glasses", "fa-solid fa-hourglass",
 105            "fa-solid fa-hourglass-half", "fa-solid fa-hourglass-end", "fa-solid fa-clock", "fa-solid fa-stopwatch",
 106            "fa-solid fa-bell", "fa-solid fa-lightbulb",
 107            "fa-solid fa-camera", "fa-solid fa-scroll",
 108            "fa-solid fa-book", "fa-solid fa-book-open", "fa-solid fa-bookmark", "fa-solid fa-newspaper"
 109        }),
 110
 111        new IconCategory("Weapons & Combat", "fa-solid fa-shield-halved", new[]
 112        {
 113            "fa-solid fa-shield", "fa-solid fa-shield-halved", "fa-solid fa-shield-heart", "fa-solid fa-shield-virus",
 114            "fa-solid fa-gavel", "fa-solid fa-hammer", "fa-solid fa-khanda",
 115            "fa-solid fa-gun", "fa-solid fa-crosshairs", "fa-solid fa-bullseye",
 116            "fa-solid fa-bomb", "fa-solid fa-explosion", "fa-solid fa-burst", "fa-solid fa-hand-fist",
 117            "fa-solid fa-skull", "fa-solid fa-skull-crossbones", "fa-solid fa-bone", "fa-solid fa-cross",
 118            "fa-solid fa-fire", "fa-solid fa-fire-flame-curved", "fa-solid fa-bolt", "fa-solid fa-bolt-lightning",
 119            "fa-solid fa-meteor", "fa-solid fa-radiation", "fa-solid fa-biohazard", "fa-solid fa-triangle-exclamation",
 120            "fa-solid fa-helmet-safety", "fa-solid fa-vest", "fa-solid fa-vest-patches", "fa-solid fa-jet-fighter",
 121            "fa-solid fa-helicopter", "fa-solid fa-person-rifle", "fa-solid fa-person-military-rifle"
 122        }),
 123
 124        new IconCategory("Transport & Travel", "fa-solid fa-car", new[]
 125        {
 126            "fa-solid fa-car", "fa-solid fa-car-side", "fa-solid fa-truck", "fa-solid fa-truck-pickup",
 127            "fa-solid fa-bus", "fa-solid fa-train", "fa-solid fa-train-subway", "fa-solid fa-train-tram",
 128            "fa-solid fa-taxi", "fa-solid fa-bicycle", "fa-solid fa-motorcycle", "fa-solid fa-horse",
 129            "fa-solid fa-ship", "fa-solid fa-sailboat", "fa-solid fa-ferry", "fa-solid fa-anchor",
 130            "fa-solid fa-plane", "fa-solid fa-plane-departure", "fa-solid fa-plane-arrival", "fa-solid fa-helicopter",
 131            "fa-solid fa-rocket", "fa-solid fa-shuttle-space", "fa-solid fa-satellite", "fa-solid fa-road",
 132            "fa-solid fa-route", "fa-solid fa-map", "fa-solid fa-compass", "fa-solid fa-location-dot",
 133            "fa-solid fa-suitcase", "fa-solid fa-suitcase-rolling", "fa-solid fa-passport", "fa-solid fa-ticket",
 134            "fa-solid fa-gas-pump", "fa-solid fa-charging-station", "fa-solid fa-trailer", "fa-solid fa-caravan"
 135        }),
 136
 137        new IconCategory("Communication", "fa-solid fa-comment", new[]
 138        {
 139            "fa-solid fa-comment", "fa-solid fa-comment-dots", "fa-solid fa-comments", "fa-solid fa-message",
 140            "fa-solid fa-envelope", "fa-solid fa-envelope-open", "fa-solid fa-paper-plane", "fa-solid fa-inbox",
 141            "fa-solid fa-phone", "fa-solid fa-phone-volume", "fa-solid fa-mobile", "fa-solid fa-mobile-screen",
 142            "fa-solid fa-tablet", "fa-solid fa-laptop", "fa-solid fa-desktop", "fa-solid fa-tv",
 143            "fa-solid fa-radio", "fa-solid fa-podcast", "fa-solid fa-microphone", "fa-solid fa-microphone-lines",
 144            "fa-solid fa-headphones", "fa-solid fa-volume-high", "fa-solid fa-volume-low", "fa-solid fa-volume-off",
 145            "fa-solid fa-bell", "fa-solid fa-bullhorn", "fa-solid fa-tower-broadcast", "fa-solid fa-satellite-dish",
 146            "fa-solid fa-wifi", "fa-solid fa-signal", "fa-solid fa-rss", "fa-solid fa-hashtag",
 147            "fa-solid fa-at", "fa-solid fa-link", "fa-solid fa-share", "fa-solid fa-share-nodes",
 148            "fa-solid fa-retweet", "fa-solid fa-quote-left", "fa-solid fa-quote-right", "fa-solid fa-language"
 149        }),
 150
 151        new IconCategory("Files & Documents", "fa-solid fa-file", new[]
 152        {
 153            "fa-solid fa-file", "fa-solid fa-file-lines", "fa-solid fa-file-pdf", "fa-solid fa-file-word",
 154            "fa-solid fa-file-excel", "fa-solid fa-file-powerpoint", "fa-solid fa-file-image", "fa-solid fa-file-video",
 155            "fa-solid fa-file-audio", "fa-solid fa-file-code", "fa-solid fa-file-zipper", "fa-solid fa-file-csv",
 156            "fa-solid fa-file-contract", "fa-solid fa-file-signature", "fa-solid fa-file-invoice", "fa-solid fa-file-med
 157            "fa-solid fa-file-prescription", "fa-solid fa-file-waveform", "fa-solid fa-file-arrow-up", "fa-solid fa-file
 158            "fa-solid fa-file-export", "fa-solid fa-file-import", "fa-solid fa-file-pen", "fa-solid fa-file-circle-plus"
 159            "fa-solid fa-file-circle-minus", "fa-solid fa-file-circle-check", "fa-solid fa-file-circle-xmark",
 160            "fa-solid fa-folder", "fa-solid fa-folder-open", "fa-solid fa-folder-plus", "fa-solid fa-folder-minus",
 161            "fa-solid fa-folder-tree", "fa-solid fa-copy", "fa-solid fa-paste", "fa-solid fa-clipboard",
 162            "fa-solid fa-clipboard-list", "fa-solid fa-clipboard-check", "fa-solid fa-note-sticky", "fa-solid fa-book",
 163            "fa-solid fa-book-open", "fa-solid fa-book-bookmark", "fa-solid fa-book-journal-whills", "fa-solid fa-book-a
 164            "fa-solid fa-newspaper", "fa-solid fa-scroll", "fa-solid fa-receipt", "fa-solid fa-certificate"
 165        }),
 166
 167        new IconCategory("Science & Medical", "fa-solid fa-flask", new[]
 168        {
 169            "fa-solid fa-flask", "fa-solid fa-flask-vial", "fa-solid fa-vial", "fa-solid fa-vials",
 170            "fa-solid fa-microscope", "fa-solid fa-atom", "fa-solid fa-dna", "fa-solid fa-virus",
 171            "fa-solid fa-bacteria", "fa-solid fa-disease", "fa-solid fa-biohazard", "fa-solid fa-radiation",
 172            "fa-solid fa-brain", "fa-solid fa-heart", "fa-solid fa-heart-pulse", "fa-solid fa-lungs",
 173            "fa-solid fa-lungs-virus", "fa-solid fa-bone", "fa-solid fa-tooth", "fa-solid fa-eye",
 174            "fa-solid fa-ear-listen", "fa-solid fa-hand", "fa-solid fa-hospital", "fa-solid fa-stethoscope",
 175            "fa-solid fa-syringe", "fa-solid fa-pills", "fa-solid fa-tablets", "fa-solid fa-capsules",
 176            "fa-solid fa-prescription", "fa-solid fa-prescription-bottle", "fa-solid fa-prescription-bottle-medical",
 177            "fa-solid fa-bandage", "fa-solid fa-kit-medical", "fa-solid fa-thermometer", "fa-solid fa-x-ray",
 178            "fa-solid fa-user-doctor", "fa-solid fa-user-nurse", "fa-solid fa-bed-pulse", "fa-solid fa-wheelchair",
 179            "fa-solid fa-crutch", "fa-solid fa-weight-scale", "fa-solid fa-pump-medical", "fa-solid fa-mortar-pestle"
 180        }),
 181
 182        new IconCategory("Music & Entertainment", "fa-solid fa-music", new[]
 183        {
 184            "fa-solid fa-music", "fa-solid fa-guitar", "fa-solid fa-drum", "fa-solid fa-drum-steelpan",
 185            "fa-solid fa-headphones", "fa-solid fa-headphones-simple", "fa-solid fa-microphone", "fa-solid fa-microphone
 186            "fa-solid fa-radio", "fa-solid fa-podcast", "fa-solid fa-record-vinyl", "fa-solid fa-compact-disc",
 187            "fa-solid fa-film", "fa-solid fa-video", "fa-solid fa-camera", "fa-solid fa-camera-retro",
 188            "fa-solid fa-clapperboard", "fa-solid fa-photo-film", "fa-solid fa-tv", "fa-solid fa-gamepad",
 189            "fa-solid fa-dice", "fa-solid fa-dice-d20", "fa-solid fa-puzzle-piece", "fa-solid fa-chess",
 190            "fa-solid fa-ticket", "fa-solid fa-masks-theater", "fa-solid fa-palette",
 191            "fa-solid fa-paintbrush", "fa-solid fa-brush", "fa-solid fa-spray-can", "fa-solid fa-image",
 192            "fa-solid fa-icons", "fa-solid fa-face-grin-stars", "fa-solid fa-wand-magic-sparkles", "fa-solid fa-hat-wiza
 193        }),
 194
 195        new IconCategory("Symbols & Shapes", "fa-solid fa-shapes", new[]
 196        {
 197            "fa-solid fa-circle", "fa-solid fa-square", "fa-solid fa-triangle-exclamation", "fa-solid fa-diamond",
 198            "fa-solid fa-star", "fa-solid fa-star-half", "fa-solid fa-heart", "fa-solid fa-heart-crack",
 199            "fa-solid fa-bookmark", "fa-solid fa-flag", "fa-solid fa-flag-checkered", "fa-solid fa-certificate",
 200            "fa-solid fa-award", "fa-solid fa-medal", "fa-solid fa-trophy", "fa-solid fa-crown",
 201            "fa-solid fa-check", "fa-solid fa-xmark", "fa-solid fa-plus", "fa-solid fa-minus",
 202            "fa-solid fa-equals", "fa-solid fa-divide", "fa-solid fa-percent", "fa-solid fa-infinity",
 203            "fa-solid fa-hashtag", "fa-solid fa-at", "fa-solid fa-question",
 204            "fa-solid fa-exclamation", "fa-solid fa-quote-left", "fa-solid fa-quote-right", "fa-solid fa-copyright",
 205            "fa-solid fa-registered", "fa-solid fa-trademark", "fa-solid fa-circle-info", "fa-solid fa-circle-question",
 206            "fa-solid fa-circle-exclamation", "fa-solid fa-circle-check", "fa-solid fa-circle-xmark",
 207            "fa-solid fa-circle-plus", "fa-solid fa-circle-minus", "fa-solid fa-ban", "fa-solid fa-slash",
 208            "fa-solid fa-arrows-rotate", "fa-solid fa-rotate", "fa-solid fa-rotate-left", "fa-solid fa-rotate-right"
 209        }),
 210
 211        new IconCategory("Arrows & Navigation", "fa-solid fa-arrow-right", new[]
 212        {
 213            "fa-solid fa-arrow-up", "fa-solid fa-arrow-down", "fa-solid fa-arrow-left", "fa-solid fa-arrow-right",
 214            "fa-solid fa-arrow-up-long", "fa-solid fa-arrow-down-long", "fa-solid fa-arrow-left-long", "fa-solid fa-arro
 215            "fa-solid fa-arrows-up-down", "fa-solid fa-arrows-left-right", "fa-solid fa-arrows-up-down-left-right",
 216            "fa-solid fa-up-down-left-right", "fa-solid fa-arrow-up-right-from-square", "fa-solid fa-arrow-right-from-br
 217            "fa-solid fa-arrow-right-to-bracket", "fa-solid fa-arrow-turn-down", "fa-solid fa-arrow-turn-up",
 218            "fa-solid fa-chevron-up", "fa-solid fa-chevron-down", "fa-solid fa-chevron-left", "fa-solid fa-chevron-right
 219            "fa-solid fa-angles-up", "fa-solid fa-angles-down", "fa-solid fa-angles-left", "fa-solid fa-angles-right",
 220            "fa-solid fa-caret-up", "fa-solid fa-caret-down", "fa-solid fa-caret-left", "fa-solid fa-caret-right",
 221            "fa-solid fa-circle-arrow-up", "fa-solid fa-circle-arrow-down", "fa-solid fa-circle-arrow-left", "fa-solid f
 222            "fa-solid fa-square-arrow-up-right", "fa-solid fa-share", "fa-solid fa-reply", "fa-solid fa-reply-all",
 223            "fa-solid fa-shuffle", "fa-solid fa-repeat", "fa-solid fa-retweet", "fa-solid fa-recycle"
 224        }),
 225
 226        new IconCategory("Interface & UI", "fa-solid fa-gear", new[]
 227        {
 228            "fa-solid fa-gear", "fa-solid fa-gears", "fa-solid fa-sliders", "fa-solid fa-bars",
 229            "fa-solid fa-ellipsis", "fa-solid fa-ellipsis-vertical", "fa-solid fa-grip", "fa-solid fa-grip-vertical",
 230            "fa-solid fa-grip-lines", "fa-solid fa-grip-lines-vertical", "fa-solid fa-house", "fa-solid fa-magnifying-gl
 231            "fa-solid fa-magnifying-glass-plus", "fa-solid fa-magnifying-glass-minus", "fa-solid fa-filter",
 232            "fa-solid fa-sort", "fa-solid fa-sort-up", "fa-solid fa-sort-down", "fa-solid fa-list",
 233            "fa-solid fa-list-ul", "fa-solid fa-list-ol", "fa-solid fa-list-check", "fa-solid fa-table",
 234            "fa-solid fa-table-cells", "fa-solid fa-table-columns", "fa-solid fa-table-list", "fa-solid fa-border-all",
 235            "fa-solid fa-maximize", "fa-solid fa-minimize", "fa-solid fa-expand", "fa-solid fa-compress",
 236            "fa-solid fa-up-right-and-down-left-from-center", "fa-solid fa-down-left-and-up-right-to-center",
 237            "fa-solid fa-download", "fa-solid fa-upload", "fa-solid fa-cloud-arrow-up", "fa-solid fa-cloud-arrow-down",
 238            "fa-solid fa-trash", "fa-solid fa-trash-can", "fa-solid fa-pen", "fa-solid fa-pen-to-square",
 239            "fa-solid fa-copy", "fa-solid fa-paste", "fa-solid fa-scissors", "fa-solid fa-floppy-disk",
 240            "fa-solid fa-eye", "fa-solid fa-eye-slash", "fa-solid fa-lock", "fa-solid fa-unlock",
 241            "fa-solid fa-user", "fa-solid fa-circle-user", "fa-solid fa-right-from-bracket", "fa-solid fa-right-to-brack
 242        })
 243    };
 244
 245    /// <summary>
 246    /// Get all icons flattened into a single list (for searching)
 247    /// </summary>
 248    public static List<string> GetAllIcons()
 249    {
 250        return Categories
 251            .SelectMany(c => c.Icons)
 252            .Distinct()
 253            .OrderBy(i => i)
 254            .ToList();
 255    }
 256
 257    /// <summary>
 258    /// Search icons by name
 259    /// </summary>
 260    public static List<string> SearchIcons(string query)
 261    {
 262        if (string.IsNullOrWhiteSpace(query))
 263            return GetAllIcons();
 264
 265        var searchTerms = query.ToLowerInvariant().Split(' ', StringSplitOptions.RemoveEmptyEntries);
 266
 267        return GetAllIcons()
 268            .Where(icon =>
 269            {
 270                var iconName = icon.Replace("fa-solid fa-", "").Replace("-", " ");
 271                return searchTerms.All(term => iconName.Contains(term));
 272            })
 273            .ToList();
 274    }
 275}
 276
 277public class IconCategory
 278{
 0279    public string Name { get; }
 0280    public string Icon { get; }
 0281    public string[] Icons { get; }
 282
 0283    public IconCategory(string name, string icon, string[] icons)
 284    {
 0285        Name = name;
 0286        Icon = icon;
 0287        Icons = icons;
 0288    }
 289}