namespace decePubClient.Helpers
{
///
/// The unicode emoji the picker offers (Components/EmojiPicker.razor) next to the server's custom ones: common ones by
/// group, not the whole of Unicode, each a single emoji with no skin tone or joined sequence, as PrivaPub takes a
/// reaction. Each has the shortcode Mastodon's and GitHub's pickers know it by, and a few words, which the search
/// matches (codes, never shown as text); a group's Name is a localization key.
///
public static class UnicodeEmojis
{
public sealed record Emoji(string Character, string Shortcode, string Words = null);
public sealed record Group(string Key, string Name, IReadOnlyList Emojis);
public static readonly IReadOnlyList Groups =
[
new("smileys", "Smileys",
[
new("๐", "grinning", "smile happy"), new("๐", "smiley", "happy"), new("๐", "smile", "happy"), new("๐", "grin", "teeth"),
new("๐", "laughing", "lol"), new("๐
", "sweat_smile", "relief"), new("๐คฃ", "rofl", "laugh floor"), new("๐", "joy", "tears laugh lol"),
new("๐", "slightly_smiling_face", "smile"), new("๐", "upside_down_face", "silly"), new("๐", "wink"), new("๐", "blush", "smile"),
new("๐", "innocent", "halo angel"), new("๐ฅฐ", "smiling_face_with_three_hearts", "love"), new("๐", "heart_eyes", "love"),
new("๐คฉ", "star_struck", "wow"), new("๐", "kissing_heart", "kiss"), new("๐", "yum", "tasty"), new("๐", "stuck_out_tongue", "tongue"),
new("๐", "stuck_out_tongue_winking_eye", "tongue wink"), new("๐คช", "zany_face", "crazy"), new("๐ค", "thinking", "hmm"),
new("๐ค", "hugs", "hug"), new("๐คญ", "hand_over_mouth", "oops"), new("๐คซ", "shushing_face", "quiet"), new("๐", "neutral_face", "meh"),
new("๐", "expressionless"), new("๐ถ", "no_mouth", "silent"), new("๐", "smirk"), new("๐", "unamused"),
new("๐", "roll_eyes", "eyeroll"), new("๐ฌ", "grimacing", "awkward"), new("๐", "relieved"), new("๐", "pensive", "sad"),
new("๐ช", "sleepy", "tired"), new("๐ด", "sleeping", "zzz"), new("๐ท", "mask", "sick"), new("๐ค", "face_with_thermometer", "ill"),
new("๐คข", "nauseated_face", "sick"), new("๐ฅต", "hot_face", "heat"), new("๐ฅถ", "cold_face", "freezing"), new("๐ฅด", "woozy_face", "dizzy"),
new("๐คฏ", "exploding_head", "mind blown"), new("๐ฅณ", "partying_face", "party"), new("๐", "sunglasses", "cool"),
new("๐ค", "nerd_face", "geek"), new("๐", "confused"), new("๐", "worried"), new("๐ฎ", "open_mouth", "wow surprised"),
new("๐ฒ", "astonished", "shocked"), new("๐ณ", "flushed", "embarrassed"), new("๐ฅบ", "pleading_face", "please"), new("๐ข", "cry", "sad tear"),
new("๐ญ", "sob", "crying"), new("๐ฑ", "scream", "fear"), new("๐ค", "triumph", "huff"), new("๐ ", "angry", "mad"), new("๐ก", "rage", "angry"),
new("๐คฌ", "cursing_face", "swear"), new("๐", "skull", "dead"), new("๐ฉ", "poop", "poo"), new("๐คก", "clown_face", "clown"),
new("๐ป", "ghost", "boo"), new("๐ฝ", "alien", "ufo"), new("๐ค", "robot", "bot")
]),
new("people", "People",
[
new("๐", "thumbsup", "+1 like yes"), new("๐", "thumbsdown", "-1 dislike no"), new("๐", "ok_hand", "okay"), new("โ๏ธ", "v", "peace victory"),
new("๐ค", "crossed_fingers", "luck"), new("๐ค", "love_you_gesture"), new("๐ค", "metal", "rock"), new("๐", "wave", "hello bye"),
new("๐", "clap", "applause"), new("๐", "raised_hands", "hooray"), new("๐", "open_hands"), new("๐ค", "handshake", "deal"),
new("๐", "pray", "thanks please"), new("โ๏ธ", "writing_hand", "write"), new("๐ช", "muscle", "strong"), new("๐", "eyes", "look"),
new("๐ง ", "brain", "smart"), new("๐ถ", "baby"), new("๐ง", "adult", "person"), new("๐คท", "shrug", "dunno"),
new("๐คฆ", "facepalm"), new("๐", "raising_hand", "me"), new("๐", "bow", "sorry"), new("๐", "dancer", "dance"),
new("๐บ", "man_dancing", "dance")
]),
new("nature", "Animals and nature",
[
new("๐ถ", "dog", "puppy"), new("๐ฑ", "cat", "kitten"), new("๐ญ", "mouse"), new("๐ฐ", "rabbit", "bunny"), new("๐ฆ", "fox_face", "fox"),
new("๐ป", "bear"), new("๐ผ", "panda_face", "panda"), new("๐จ", "koala"), new("๐ฏ", "tiger"), new("๐ฆ", "lion"),
new("๐ฎ", "cow"), new("๐ท", "pig"), new("๐ธ", "frog"), new("๐ต", "monkey_face", "monkey"), new("๐", "chicken"),
new("๐ง", "penguin"), new("๐ฆ", "bird"), new("๐ฆ", "duck"), new("๐ฆ", "owl"), new("๐ฆ", "bat"), new("๐บ", "wolf"),
new("๐ด", "horse"), new("๐ฆ", "unicorn"), new("๐", "bee"), new("๐", "bug"), new("๐ฆ", "butterfly"),
new("๐", "snail"), new("๐ข", "turtle"), new("๐", "snake"), new("๐", "octopus"), new("๐", "fish"),
new("๐ฌ", "dolphin"), new("๐ณ", "whale"), new("๐ฆ", "crab"), new("๐ต", "cactus"), new("๐ฒ", "evergreen_tree", "tree"),
new("๐ณ", "deciduous_tree", "tree"), new("๐ด", "palm_tree", "tree"), new("๐ฑ", "seedling", "plant"), new("๐", "four_leaf_clover", "luck"),
new("๐", "maple_leaf", "autumn"), new("๐", "mushroom"), new("๐ธ", "cherry_blossom", "flower"), new("๐น", "rose", "flower"),
new("๐ป", "sunflower", "flower"), new("๐ท", "tulip", "flower"), new("๐", "earth_africa", "world globe"), new("๐", "crescent_moon", "moon night"),
new("โ๏ธ", "sunny", "sun"), new("๐", "rainbow"), new("โ๏ธ", "cloud"), new("โ๏ธ", "snowflake", "snow winter"), new("โก", "zap", "lightning"),
new("๐", "ocean", "wave sea")
]),
new("food", "Food and drink",
[
new("๐", "apple"), new("๐", "pear"), new("๐", "tangerine", "orange"), new("๐", "lemon"), new("๐", "banana"),
new("๐", "watermelon"), new("๐", "grapes"), new("๐", "strawberry"), new("๐", "cherries"), new("๐", "peach"),
new("๐ฅ", "avocado"), new("๐
", "tomato"), new("๐ถ๏ธ", "hot_pepper", "chili"), new("๐ฅ", "carrot"), new("๐ฝ", "corn"),
new("๐ฅ", "croissant"), new("๐", "bread"), new("๐ง", "cheese"), new("๐", "pizza"), new("๐", "hamburger", "burger"),
new("๐", "fries"), new("๐ญ", "hotdog"), new("๐ฎ", "taco"), new("๐", "spaghetti", "pasta"), new("๐", "ramen", "noodles"),
new("๐ฃ", "sushi"), new("๐ฆ", "icecream"), new("๐ฉ", "doughnut", "donut"), new("๐ช", "cookie"), new("๐", "birthday", "cake"),
new("๐ฐ", "cake"), new("๐ซ", "chocolate_bar", "chocolate"), new("๐ฟ", "popcorn"), new("โ", "coffee"), new("๐ต", "tea"),
new("๐บ", "beer"), new("๐ป", "beers", "cheers"), new("๐ท", "wine_glass", "wine"), new("๐ฅ", "clinking_glasses", "cheers toast"),
new("๐ธ", "cocktail")
]),
new("activities", "Activities",
[
new("โฝ", "soccer", "football"), new("๐", "basketball"), new("๐", "football"), new("โพ", "baseball"), new("๐พ", "tennis"),
new("๐", "volleyball"), new("๐ฑ", "8ball", "pool"), new("๐", "ping_pong"), new("๐", "trophy", "win"),
new("๐ฅ", "1st_place_medal", "gold"), new("๐ฎ", "video_game", "game"), new("๐ฒ", "game_die", "dice"), new("โ๏ธ", "chess_pawn", "chess"),
new("๐ฏ", "dart", "target"), new("๐จ", "art", "paint"), new("๐ญ", "performing_arts", "theatre"), new("๐ฌ", "clapper", "film"),
new("๐ค", "microphone", "sing"), new("๐ง", "headphones", "music"), new("๐ธ", "guitar"), new("๐น", "musical_keyboard", "piano"),
new("๐ต", "musical_note", "music"), new("๐", "tada", "party hooray"), new("๐", "confetti_ball", "party"), new("๐", "balloon"),
new("๐", "gift", "present"), new("๐", "christmas_tree"), new("๐", "jack_o_lantern", "halloween")
]),
new("travel", "Travel and places",
[
new("๐", "car"), new("๐", "taxi"), new("๐", "bus"), new("๐ฒ", "bike", "bicycle"), new("๐ด", "kick_scooter", "scooter"),
new("๐", "steam_locomotive", "train"), new("๐", "train2", "train"), new("โ๏ธ", "airplane", "plane flight"), new("๐", "rocket", "launch"),
new("๐ธ", "flying_saucer", "ufo"), new("โต", "boat", "sail"), new("๐ข", "ship"), new("๐ ", "house", "home"),
new("๐ก", "house_with_garden", "home"), new("๐ข", "office", "building"), new("๐ฐ", "european_castle", "castle"), new("โช", "church"),
new("๐ผ", "tokyo_tower", "tower"), new("๐ฝ", "statue_of_liberty"), new("๐๏ธ", "mountain_snow", "mountain"),
new("๐๏ธ", "beach_umbrella", "beach"), new("๐๏ธ", "camping"), new("๐", "volcano"), new("๐บ๏ธ", "world_map", "map"),
new("๐งญ", "compass"), new("โบ", "tent", "camping"), new("๐", "night_with_stars", "night city"), new("๐
", "sunrise")
]),
new("objects", "Objects",
[
new("๐ฑ", "iphone", "phone mobile"), new("๐ป", "computer", "laptop"), new("โจ๏ธ", "keyboard"), new("๐ฅ๏ธ", "desktop_computer", "computer"),
new("๐พ", "floppy_disk", "save"), new("๐ท", "camera", "photo"), new("๐ฅ", "movie_camera", "video"), new("๐บ", "tv", "television"),
new("๐ป", "radio"), new("โฐ", "alarm_clock", "time"), new("โ", "hourglass", "time"), new("๐ก", "bulb", "idea"),
new("๐ฆ", "flashlight", "torch"), new("๐", "books", "read"), new("๐", "book", "read"), new("๐", "memo", "note write"),
new("โ๏ธ", "pencil2", "pencil write"), new("๐", "pushpin", "pin"), new("๐", "paperclip"), new("โ๏ธ", "scissors", "cut"),
new("๐", "lock", "private"), new("๐", "key"), new("๐จ", "hammer", "tool"), new("๐ง", "wrench", "tool"), new("โ๏ธ", "gear", "settings"),
new("๐งฒ", "magnet"), new("๐งช", "test_tube", "science"), new("๐ญ", "telescope", "space"), new("๐", "pill", "medicine"),
new("๐", "shopping_cart", "shop"), new("๐ฐ", "moneybag", "money"), new("๐ธ", "money_with_wings", "money"), new("๐ฆ", "package", "box"),
new("โ๏ธ", "envelope", "mail letter"), new("๐ฃ", "mega", "announce"), new("๐", "bell", "notification")
]),
new("symbols", "Symbols",
[
new("โค๏ธ", "heart", "love red"), new("๐งก", "orange_heart", "love"), new("๐", "yellow_heart", "love"), new("๐", "green_heart", "love"),
new("๐", "blue_heart", "love"), new("๐", "purple_heart", "love"), new("๐ค", "black_heart", "love"), new("๐ค", "white_heart", "love"),
new("๐", "broken_heart", "sad"), new("๐", "two_hearts", "love"), new("๐", "sparkling_heart", "love"), new("๐ฏ", "100", "perfect"),
new("โจ", "sparkles", "shiny"), new("โญ", "star"), new("๐", "star2", "glowing star"), new("๐ซ", "dizzy", "star"), new("๐ฅ", "fire", "hot lit"),
new("๐ฅ", "boom", "explosion"), new("๐ข", "anger", "angry"), new("๐ฌ", "speech_balloon", "comment talk"), new("๐ค", "zzz", "sleep"),
new("โ
", "white_check_mark", "done yes"), new("โ", "x", "no cross"), new("โ", "question"), new("โ", "exclamation"),
new("โ ๏ธ", "warning"), new("โป๏ธ", "recycle"), new("โ", "heavy_plus_sign", "plus"), new("โ", "heavy_minus_sign", "minus"),
new("๐", "ok"), new("๐", "cool"), new("๐", "new")
])
];
}
}