summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDessalines <tyhou13@gmx.com>2019-09-02 15:55:50 -0700
committerDessalines <tyhou13@gmx.com>2019-09-02 15:55:50 -0700
commitf538b3fb22da11cccd381196c7b5650edc2a3abf (patch)
tree2c4923772c16097ca9e087cf087dd4bb297df45e
parentd99fa5268d63e0bdc9107fb16b60eabc168aff51 (diff)
Using a proper twitter emoji list for the definitions.
- Fixes #260
-rw-r--r--ui/src/components/comment-form.tsx7
-rw-r--r--ui/src/emoji_list.ts1
-rw-r--r--ui/src/twemojis.ts1721
-rw-r--r--ui/src/utils.ts15
4 files changed, 1729 insertions, 15 deletions
diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx
index 93ad69ea..54035fde 100644
--- a/ui/src/components/comment-form.tsx
+++ b/ui/src/components/comment-form.tsx
@@ -1,7 +1,8 @@
import { Component, linkEvent } from 'inferno';
import { CommentNode as CommentNodeI, CommentForm as CommentFormI, SearchForm, SearchType, SortType, UserOperation, SearchResponse } from '../interfaces';
import { Subscription } from "rxjs";
-import { capitalizeFirstLetter, mentionDropdownFetchLimit, msgOp, md, emojiMentionList, mdToHtml, randomStr, imageUploadUrl, markdownHelpUrl } from '../utils';
+import { capitalizeFirstLetter, mentionDropdownFetchLimit, msgOp, mdToHtml, randomStr, imageUploadUrl, markdownHelpUrl } from '../utils';
+import { twemojis } from '../twemojis';
import { WebSocketService, UserService } from '../services';
import * as autosize from 'autosize';
import { i18n } from '../i18next';
@@ -49,12 +50,12 @@ export class CommentForm extends Component<CommentFormProps, CommentFormState> {
trigger: ':',
menuItemTemplate: (item: any) => {
let emoji = `:${item.original.key}:`;
- return `${md.renderInline(emoji)} ${emoji}`;
+ return `${item.original.val} ${emoji}`;
},
selectTemplate: (item: any) => {
return `:${item.original.key}:`;
},
- values: emojiMentionList(),
+ values: Object.entries(twemojis).map(e => {return {'key': e[0], 'val': e[1]}}),
allowSpaces: false,
autocompleteMode: true,
menuItemLimit: 10,
diff --git a/ui/src/emoji_list.ts b/ui/src/emoji_list.ts
deleted file mode 100644
index 90b7de55..00000000
--- a/ui/src/emoji_list.ts
+++ /dev/null
@@ -1 +0,0 @@
-export const emoji_list: Array<string> = ["grinning", "smiley", "smile", "grin", "laughingsatisfied", "sweat_smile", "rofl", "joy", "slightly_smiling_face", "upside_down_face", "wink", "blush", "innocent", "smiling_face_with_three_hearts", "heart_eyes", "star_struck", "kissing_heart", "kissing", "relaxed", "kissing_closed_eyes", "kissing_smiling_eyes", "yum", "stuck_out_tongue", "stuck_out_tongue_winking_eye", "zany_face", "stuck_out_tongue_closed_eyes", "money_mouth_face", "hugs", "hand_over_mouth", "shushing_face", "thinking", "zipper_mouth_face", "raised_eyebrow", "neutral_face", "expressionless", "no_mouth", "smirk", "unamused", "roll_eyes", "grimacing", "lying_face", "relieved", "pensive", "sleepy", "drooling_face", "sleeping", "mask", "face_with_thermometer", "face_with_head_bandage", "nauseated_face", "vomiting_face", "sneezing_face", "hot_face", "cold_face", "woozy_face", "dizzy_face", "exploding_head", "cowboy_hat_face", "partying_face", "sunglasses", "nerd_face", "monocle_face", "confused", "worried", "slightly_frowning_face", "frowning_face", "open_mouth", "hushed", "astonished", "flushed", "pleading_face", "frowning", "anguished", "fearful", "cold_sweat", "disappointed_relieved", "cry", "sob", "scream", "confounded", "persevere", "disappointed", "sweat", "weary", "tired_face", "yawning_face", "triumph", "ragepout", "angry", "cursing_face", "smiling_imp", "imp", "skull", "skull_and_crossbones", "hankeypoopshit", "clown_face", "japanese_ogre", "japanese_goblin", "ghost", "alien", "space_invader", "robot", "smiley_cat", "smile_cat", "joy_cat", "heart_eyes_cat", "smirk_cat", "kissing_cat", "scream_cat", "crying_cat_face", "pouting_cat", "see_no_evil", "hear_no_evil", "speak_no_evil", "kiss", "love_letter", "cupid", "gift_heart", "sparkling_heart", "heartpulse", "heartbeat", "revolving_hearts", "two_hearts", "heart_decoration", "heavy_heart_exclamation", "broken_heart", "heart", "orange_heart", "yellow_heart", "green_heart", "blue_heart", "purple_heart", "brown_heart", "black_heart", "white_heart", "100", "anger", "boomcollision", "dizzy", "sweat_drops", "dash", "hole", "bomb", "speech_balloon", "eye_speech_bubble", "left_speech_bubble", "right_anger_bubble", "thought_balloon", "zzz", "wave", "raised_back_of_hand", "raised_hand_with_fingers_splayed", "handraised_hand", "vulcan_salute", "ok_hand", "pinching_hand", "v", "crossed_fingers", "love_you_gesture", "metal", "call_me_hand", "point_left", "point_right", "point_up_2", "middle_fingerfu", "point_down", "point_up", "+1thumbsup", "-1thumbsdown", "fist_raisedfist", "fist_oncomingfacepunchpunch", "fist_left", "fist_right", "clap", "raised_hands", "open_hands", "palms_up_together", "handshake", "pray", "writing_hand", "nail_care", "selfie", "muscle", "mechanical_arm", "mechanical_leg", "leg", "foot", "ear", "ear_with_hearing_aid", "nose", "brain", "tooth", "bone", "eyes", "eye", "tongue", "lips", "baby", "child", "boy", "girl", "adult", "blond_haired_person", "man", "bearded_person", "blond_haired_man", "red_haired_man", "curly_haired_man", "white_haired_man", "bald_man", "woman", "blond_haired_womanblonde_woman", "red_haired_woman", "curly_haired_woman", "white_haired_woman", "bald_woman", "older_adult", "older_man", "older_woman", "frowning_person", "frowning_man", "frowning_woman", "pouting_face", "pouting_man", "pouting_woman", "no_good", "no_good_manng_man", "no_good_womanng_woman", "ok_person", "ok_man", "ok_woman", "tipping_hand_personinformation_desk_person", "tipping_hand_mansassy_man", "tipping_hand_womansassy_woman", "raising_hand", "raising_hand_man", "raising_hand_woman", "deaf_person", "deaf_man", "deaf_woman", "bow", "bowing_man", "bowing_woman", "facepalm", "man_facepalming", "woman_facepalming", "shrug", "man_shrugging", "woman_shrugging", "man_health_worker", "woman_health_worker", "man_student", "woman_student", "man_teacher", "woman_teacher", "man_judge", "woman_judge", "man_farmer", "woman_farmer", "man_cook", "woman_cook", "man_mechanic", "woman_mechanic", "man_factory_worker", "woman_factory_worker", "man_office_worker", "woman_office_worker", "man_scientist", "woman_scientist", "man_technologist", "woman_technologist", "man_singer", "woman_singer", "man_artist", "woman_artist", "man_pilot", "woman_pilot", "man_astronaut", "woman_astronaut", "man_firefighter", "woman_firefighter", "police_officercop", "policeman", "policewoman", "detective", "male_detective", "female_detective", "guard", "guardsman", "guardswoman", "construction_worker", "construction_worker_man", "construction_worker_woman", "prince", "princess", "person_with_turban", "man_with_turban", "woman_with_turban", "man_with_gua_pi_mao", "woman_with_headscarf", "man_in_tuxedo", "bride_with_veil", "pregnant_woman", "breast_feeding", "angel", "santa", "mrs_claus", "superhero", "superhero_man", "superhero_woman", "supervillain", "supervillain_man", "supervillain_woman", "mage", "mage_man", "mage_woman", "fairy", "fairy_man", "fairy_woman", "vampire", "vampire_man", "vampire_woman", "merperson", "merman", "mermaid", "elf", "elf_man", "elf_woman", "genie", "genie_man", "genie_woman", "zombie", "zombie_man", "zombie_woman", "massage", "massage_man", "massage_woman", "haircut", "haircut_man", "haircut_woman", "walking", "walking_man", "walking_woman", "standing_person", "standing_man", "standing_woman", "kneeling_person", "kneeling_man", "kneeling_woman", "man_with_probing_cane", "woman_with_probing_cane", "man_in_motorized_wheelchair", "woman_in_motorized_wheelchair", "man_in_manual_wheelchair", "woman_in_manual_wheelchair", "runnerrunning", "running_man", "running_woman", "woman_dancingdancer", "man_dancing", "business_suit_levitating", "dancers", "dancing_men", "dancing_women", "sauna_person", "sauna_man", "sauna_woman", "climbing", "climbing_man", "climbing_woman", "person_fencing", "horse_racing", "skier", "snowboarder", "golfing", "golfing_man", "golfing_woman", "surfer", "surfing_man", "surfing_woman", "rowboat", "rowing_man", "rowing_woman", "swimmer", "swimming_man", "swimming_woman", "bouncing_ball_person", "bouncing_ball_manbasketball_man", "bouncing_ball_womanbasketball_woman", "weight_lifting", "weight_lifting_man", "weight_lifting_woman", "bicyclist", "biking_man", "biking_woman", "mountain_bicyclist", "mountain_biking_man", "mountain_biking_woman", "cartwheeling", "man_cartwheeling", "woman_cartwheeling", "wrestling", "men_wrestling", "women_wrestling", "water_polo", "man_playing_water_polo", "woman_playing_water_polo", "handball_person", "man_playing_handball", "woman_playing_handball", "juggling_person", "man_juggling", "woman_juggling", "lotus_position", "lotus_position_man", "lotus_position_woman", "bath", "sleeping_bed", "people_holding_hands", "two_women_holding_hands", "couple", "two_men_holding_hands", "couplekiss", "couplekiss_man_woman", "couplekiss_man_man", "couplekiss_woman_woman", "couple_with_heart", "couple_with_heart_woman_man", "couple_with_heart_man_man", "couple_with_heart_woman_woman", "family", "family_man_woman_boy", "family_man_woman_girl", "family_man_woman_girl_boy", "family_man_woman_boy_boy", "family_man_woman_girl_girl", "family_man_man_boy", "family_man_man_girl", "family_man_man_girl_boy", "family_man_man_boy_boy", "family_man_man_girl_girl", "family_woman_woman_boy", "family_woman_woman_girl", "family_woman_woman_girl_boy", "family_woman_woman_boy_boy", "family_woman_woman_girl_girl", "family_man_boy", "family_man_boy_boy", "family_man_girl", "family_man_girl_boy", "family_man_girl_girl", "family_woman_boy", "family_woman_boy_boy", "family_woman_girl", "family_woman_girl_boy", "family_woman_girl_girl", "speaking_head", "bust_in_silhouette", "busts_in_silhouette", "footprints", "monkey_face", "monkey", "gorilla", "orangutan", "dog", "dog2", "guide_dog", "service_dog", "poodle", "wolf", "fox_face", "raccoon", "cat", "cat2", "lion", "tiger", "tiger2", "leopard", "horse", "racehorse", "unicorn", "zebra", "deer", "cow", "ox", "water_buffalo", "cow2", "pig", "pig2", "boar", "pig_nose", "ram", "sheep", "goat", "dromedary_camel", "camel", "llama", "giraffe", "elephant", "rhinoceros", "hippopotamus", "mouse", "mouse2", "rat", "hamster", "rabbit", "rabbit2", "chipmunk", "hedgehog", "bat", "bear", "koala", "panda_face", "sloth", "otter", "skunk", "kangaroo", "badger", "feetpaw_prints", "turkey", "chicken", "rooster", "hatching_chick", "baby_chick", "hatched_chick", "bird", "penguin", "dove", "eagle", "duck", "swan", "owl", "flamingo", "peacock", "parrot", "frog", "crocodile", "turtle", "lizard", "snake", "dragon_face", "dragon", "sauropod", "t-rex", "whale", "whale2", "dolphinflipper", "fish", "tropical_fish", "blowfish", "shark", "octopus", "shell", "snail", "butterfly", "bug", "ant", "beehoneybee", "beetle", "cricket", "spider", "spider_web", "scorpion", "mosquito", "microbe", "bouquet", "cherry_blossom", "white_flower", "rosette", "rose", "wilted_flower", "hibiscus", "sunflower", "blossom", "tulip", "seedling", "evergreen_tree", "deciduous_tree", "palm_tree", "cactus", "ear_of_rice", "herb", "shamrock", "four_leaf_clover", "maple_leaf", "fallen_leaf", "leaves", "grapes", "melon", "watermelon", "tangerineorangemandarin", "lemon", "banana", "pineapple", "mango", "apple", "green_apple", "pear", "peach", "cherries", "strawberry", "kiwi_fruit", "tomato", "coconut", "avocado", "eggplant", "potato", "carrot", "corn", "hot_pepper", "cucumber", "leafy_green", "broccoli", "garlic", "onion", "mushroom", "peanuts", "chestnut", "bread", "croissant", "baguette_bread", "pretzel", "bagel", "pancakes", "waffle", "cheese", "meat_on_bone", "poultry_leg", "cut_of_meat", "bacon", "hamburger", "fries", "pizza", "hotdog", "sandwich", "taco", "burrito", "stuffed_flatbread", "falafel", "egg", "fried_egg", "shallow_pan_of_food", "stew", "bowl_with_spoon", "green_salad", "popcorn", "butter", "salt", "canned_food", "bento", "rice_cracker", "rice_ball", "rice", "curry", "ramen", "spaghetti", "sweet_potato", "oden", "sushi", "fried_shrimp", "fish_cake", "moon_cake", "dango", "dumpling", "fortune_cookie", "takeout_box", "crab", "lobster", "shrimp", "squid", "oyster", "icecream", "shaved_ice", "ice_cream", "doughnut", "cookie", "birthday", "cake", "cupcake", "pie", "chocolate_bar", "candy", "lollipop", "custard", "honey_pot", "baby_bottle", "milk_glass", "coffee", "tea", "sake", "champagne", "wine_glass", "cocktail", "tropical_drink", "beer", "beers", "clinking_glasses", "tumbler_glass", "cup_with_straw", "beverage_box", "mate", "ice_cube", "chopsticks", "plate_with_cutlery", "fork_and_knife", "spoon", "hochoknife", "amphora", "earth_africa", "earth_americas", "earth_asia", "globe_with_meridians", "world_map", "japan", "compass", "mountain_snow", "mountain", "volcano", "mount_fuji", "camping", "beach_umbrella", "desert", "desert_island", "national_park", "stadium", "classical_building", "building_construction", "bricks", "houses", "derelict_house", "house", "house_with_garden", "office", "post_office", "european_post_office", "hospital", "bank", "hotel", "love_hotel", "convenience_store", "school", "department_store", "factory", "japanese_castle", "european_castle", "wedding", "tokyo_tower", "statue_of_liberty", "church", "mosque", "hindu_temple", "synagogue", "shinto_shrine", "kaaba", "fountain", "tent", "foggy", "night_with_stars", "cityscape", "sunrise_over_mountains", "sunrise", "city_sunset", "city_sunrise", "bridge_at_night", "hotsprings", "carousel_horse", "ferris_wheel", "roller_coaster", "barber", "circus_tent", "steam_locomotive", "railway_car", "bullettrain_side", "bullettrain_front", "train2", "metro", "light_rail", "station", "tram", "monorail", "mountain_railway", "train", "bus", "oncoming_bus", "trolleybus", "minibus", "ambulance", "fire_engine", "police_car", "oncoming_police_car", "taxi", "oncoming_taxi", "carred_car", "oncoming_automobile", "blue_car", "truck", "articulated_lorry", "tractor", "racing_car", "motorcycle", "motor_scooter", "manual_wheelchair", "motorized_wheelchair", "auto_rickshaw", "bike", "kick_scooter", "skateboard", "busstop", "motorway", "railway_track", "oil_drum", "fuelpump", "rotating_light", "traffic_light", "vertical_traffic_light", "stop_sign", "construction", "anchor", "boatsailboat", "canoe", "speedboat", "passenger_ship", "ferry", "motor_boat", "ship", "airplane", "small_airplane", "flight_departure", "flight_arrival", "parachute", "seat", "helicopter", "suspension_railway", "mountain_cableway", "aerial_tramway", "artificial_satellite", "rocket", "flying_saucer", "bellhop_bell", "luggage", "hourglass", "hourglass_flowing_sand", "watch", "alarm_clock", "stopwatch", "timer_clock", "mantelpiece_clock", "clock12", "clock1230", "clock1", "clock130", "clock2", "clock230", "clock3", "clock330", "clock4", "clock430", "clock5", "clock530", "clock6", "clock630", "clock7", "clock730", "clock8", "clock830", "clock9", "clock930", "clock10", "clock1030", "clock11", "clock1130", "new_moon", "waxing_crescent_moon", "first_quarter_moon", "moonwaxing_gibbous_moon", "full_moon", "waning_gibbous_moon", "last_quarter_moon", "waning_crescent_moon", "crescent_moon", "new_moon_with_face", "first_quarter_moon_with_face", "last_quarter_moon_with_face", "thermometer", "sunny", "full_moon_with_face", "sun_with_face", "ringed_planet", "star", "star2", "stars", "milky_way", "cloud", "partly_sunny", "cloud_with_lightning_and_rain", "sun_behind_small_cloud", "sun_behind_large_cloud", "sun_behind_rain_cloud", "cloud_with_rain", "cloud_with_snow", "cloud_with_lightning", "tornado", "fog", "wind_face", "cyclone", "rainbow", "closed_umbrella", "open_umbrella", "umbrella", "parasol_on_ground", "zap", "snowflake", "snowman_with_snow", "snowman", "comet", "fire", "droplet", "ocean", "jack_o_lantern", "christmas_tree", "fireworks", "sparkler", "firecracker", "sparkles", "balloon", "tada", "confetti_ball", "tanabata_tree", "bamboo", "dolls", "flags", "wind_chime", "rice_scene", "red_envelope", "ribbon", "gift", "reminder_ribbon", "tickets", "ticket", "medal_military", "trophy", "medal_sports", "1st_place_medal", "2nd_place_medal", "3rd_place_medal", "soccer", "baseball", "softball", "basketball", "volleyball", "football", "rugby_football", "tennis", "flying_disc", "bowling", "cricket_game", "field_hockey", "ice_hockey", "lacrosse", "ping_pong", "badminton", "boxing_glove", "martial_arts_uniform", "goal_net", "golf", "ice_skate", "fishing_pole_and_fish", "diving_mask", "running_shirt_with_sash", "ski", "sled", "curling_stone", "dart", "yo_yo", "kite", "8ball", "crystal_ball", "nazar_amulet", "video_game", "joystick", "slot_machine", "game_die", "jigsaw", "teddy_bear", "spades", "hearts", "diamonds", "clubs", "chess_pawn", "black_joker", "mahjong", "flower_playing_cards", "performing_arts", "framed_picture", "art", "thread", "yarn", "eyeglasses", "dark_sunglasses", "goggles", "lab_coat", "safety_vest", "necktie", "shirttshirt", "jeans", "scarf", "gloves", "coat", "socks", "dress", "kimono", "sari", "one_piece_swimsuit", "swim_brief", "shorts", "bikini", "womans_clothes", "purse", "handbag", "pouch", "shopping", "school_satchel", "mans_shoeshoe", "athletic_shoe", "hiking_boot", "flat_shoe", "high_heel", "sandal", "ballet_shoes", "boot", "crown", "womans_hat", "tophat", "mortar_board", "billed_cap", "rescue_worker_helmet", "prayer_beads", "lipstick", "ring", "gem", "mute", "speaker", "sound", "loud_sound", "loudspeaker", "mega", "postal_horn", "bell", "no_bell", "musical_score", "musical_note", "notes", "studio_microphone", "level_slider", "control_knobs", "microphone", "headphones", "radio", "saxophone", "guitar", "musical_keyboard", "trumpet", "violin", "banjo", "drum", "iphone", "calling", "phonetelephone", "telephone_receiver", "pager", "fax", "battery", "electric_plug", "computer", "desktop_computer", "printer", "keyboard", "computer_mouse", "trackball", "minidisc", "floppy_disk", "cd", "dvd", "abacus", "movie_camera", "film_strip", "film_projector", "clapper", "tv", "camera", "camera_flash", "video_camera", "vhs", "mag", "mag_right", "candle", "bulb", "flashlight", "izakaya_lanternlantern", "diya_lamp", "notebook_with_decorative_cover", "closed_book", "bookopen_book", "green_book", "blue_book", "orange_book", "books", "notebook", "ledger", "page_with_curl", "scroll", "page_facing_up", "newspaper", "newspaper_roll", "bookmark_tabs", "bookmark", "label", "moneybag", "yen", "dollar", "euro", "pound", "money_with_wings", "credit_card", "receipt", "chart", "currency_exchange", "heavy_dollar_sign", "emailenvelope", "e-mail", "incoming_envelope", "envelope_with_arrow", "outbox_tray", "inbox_tray", "package", "mailbox", "mailbox_closed", "mailbox_with_mail", "mailbox_with_no_mail", "postbox", "ballot_box", "pencil2", "black_nib", "fountain_pen", "pen", "paintbrush", "crayon", "memopencil", "briefcase", "file_folder", "open_file_folder", "card_index_dividers", "date", "calendar", "spiral_notepad", "spiral_calendar", "card_index", "chart_with_upwards_trend", "chart_with_downwards_trend", "bar_chart", "clipboard", "pushpin", "round_pushpin", "paperclip", "paperclips", "straight_ruler", "triangular_ruler", "scissors", "card_file_box", "file_cabinet", "wastebasket", "lock", "unlock", "lock_with_ink_pen", "closed_lock_with_key", "key", "old_key", "hammer", "axe", "pick", "hammer_and_pick", "hammer_and_wrench", "dagger", "crossed_swords", "gun", "bow_and_arrow", "shield", "wrench", "nut_and_bolt", "gear", "clamp", "balance_scale", "probing_cane", "link", "chains", "toolbox", "magnet", "alembic", "test_tube", "petri_dish", "dna", "microscope", "telescope", "satellite", "syringe", "drop_of_blood", "pill", "adhesive_bandage", "stethoscope", "door", "bed", "couch_and_lamp", "chair", "toilet", "shower", "bathtub", "razor", "lotion_bottle", "safety_pin", "broom", "basket", "roll_of_paper", "soap", "sponge", "fire_extinguisher", "shopping_cart", "smoking", "coffin", "funeral_urn", "moyai", "atm", "put_litter_in_its_place", "potable_water", "wheelchair", "mens", "womens", "restroom", "baby_symbol", "wc", "passport_control", "customs", "baggage_claim", "left_luggage", "warning", "children_crossing", "no_entry", "no_entry_sign", "no_bicycles", "no_smoking", "do_not_litter", "non-potable_water", "no_pedestrians", "no_mobile_phones", "underage", "radioactive", "biohazard", "arrow_up", "arrow_upper_right", "arrow_right", "arrow_lower_right", "arrow_down", "arrow_lower_left", "arrow_left", "arrow_upper_left", "arrow_up_down", "left_right_arrow", "leftwards_arrow_with_hook", "arrow_right_hook", "arrow_heading_up", "arrow_heading_down", "arrows_clockwise", "arrows_counterclockwise", "back", "end", "on", "soon", "top", "place_of_worship", "atom_symbol", "om", "star_of_david", "wheel_of_dharma", "yin_yang", "latin_cross", "orthodox_cross", "star_and_crescent", "peace_symbol", "menorah", "six_pointed_star", "aries", "taurus", "gemini", "cancer", "leo", "virgo", "libra", "scorpius", "sagittarius", "capricorn", "aquarius", "pisces", "ophiuchus", "twisted_rightwards_arrows", "repeat", "repeat_one", "arrow_forward", "fast_forward", "next_track_button", "play_or_pause_button", "arrow_backward", "rewind", "previous_track_button", "arrow_up_small", "arrow_double_up", "arrow_down_small", "arrow_double_down", "pause_button", "stop_button", "record_button", "eject_button", "cinema", "low_brightness", "high_brightness", "signal_strength", "vibration_mode", "mobile_phone_off", "female_sign", "male_sign", "medical_symbol", "infinity", "recycle", "fleur_de_lis", "trident", "name_badge", "beginner", "o", "white_check_mark", "ballot_box_with_check", "heavy_check_mark", "heavy_multiplication_x", "x", "negative_squared_cross_mark", "heavy_plus_sign", "heavy_minus_sign", "heavy_division_sign", "curly_loop", "loop", "part_alternation_mark", "eight_spoked_asterisk", "eight_pointed_black_star", "sparkle", "bangbang", "interrobang", "question", "grey_question", "grey_exclamation", "exclamationheavy_exclamation_mark", "wavy_dash", "copyright", "registered", "tm", "hash", "asterisk", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "keycap_ten", "capital_abcd", "abcd", "1234", "symbols", "abc", "a", "ab", "b", "cl", "cool", "free", "information_source", "id", "m", "new", "ng", "o2", "ok", "parking", "sos", "up", "vs", "koko", "sa", "u6708", "u6709", "u6307", "ideograph_advantage", "u5272", "u7121", "u7981", "accept", "u7533", "u5408", "u7a7a", "congratulations", "secret", "u55b6", "u6e80", "red_circle", "orange_circle", "yellow_circle", "green_circle", "large_blue_circle", "purple_circle", "brown_circle", "black_circle", "white_circle", "red_square", "orange_square", "yellow_square", "green_square", "blue_square", "purple_square", "brown_square", "black_large_square", "white_large_square", "black_medium_square", "white_medium_square", "black_medium_small_square", "white_medium_small_square", "black_small_square", "white_small_square", "large_orange_diamond", "large_blue_diamond", "small_orange_diamond", "small_blue_diamond", "small_red_triangle", "small_red_triangle_down", "diamond_shape_with_a_dot_inside", "radio_button", "white_square_button", "black_square_button", "checkered_flag", "triangular_flag_on_post", "crossed_flags", "black_flag", "white_flag", "rainbow_flag", "pirate_flag", "ascension_island", "andorra", "united_arab_emirates", "afghanistan", "antigua_barbuda", "anguilla", "albania", "armenia", "angola", "antarctica", "argentina", "american_samoa", "austria", "australia", "aruba", "aland_islands", "azerbaijan", "bosnia_herzegovina", "barbados", "bangladesh", "belgium", "burkina_faso", "bulgaria", "bahrain", "burundi", "benin", "st_barthelemy", "bermuda", "brunei", "bolivia", "caribbean_netherlands", "brazil", "bahamas", "bhutan", "bouvet_island", "botswana", "belarus", "belize", "canada", "cocos_islands", "congo_kinshasa", "central_african_republic", "congo_brazzaville", "switzerland", "cote_divoire", "cook_islands", "chile", "cameroon", "cn", "colombia", "clipperton_island", "costa_rica", "cuba", "cape_verde", "curacao", "christmas_island", "cyprus", "czech_republic", "de", "diego_garcia", "djibouti", "denmark", "dominica", "dominican_republic", "algeria", "ceuta_melilla", "ecuador", "estonia", "egypt", "western_sahara", "eritrea", "es", "ethiopia", "eueuropean_union", "finland", "fiji", "falkland_islands", "micronesia", "faroe_islands", "fr", "gabon", "gbuk", "grenada", "georgia", "french_guiana", "guernsey", "ghana", "gibraltar", "greenland", "gambia", "guinea", "guadeloupe", "equatorial_guinea", "greece", "south_georgia_south_sandwich_islands", "guatemala", "guam", "guinea_bissau", "guyana", "hong_kong", "heard_mcdonald_islands", "honduras", "croatia", "haiti", "hungary", "canary_islands", "indonesia", "ireland", "israel", "isle_of_man", "india", "british_indian_ocean_territory", "iraq", "iran", "iceland", "it", "jersey", "jamaica", "jordan", "jp", "kenya", "kyrgyzstan", "cambodia", "kiribati", "comoros", "st_kitts_nevis", "north_korea", "kr", "kuwait", "cayman_islands", "kazakhstan", "laos", "lebanon", "st_lucia", "liechtenstein", "sri_lanka", "liberia", "lesotho", "lithuania", "luxembourg", "latvia", "libya", "morocco", "monaco", "moldova", "montenegro", "st_martin", "madagascar", "marshall_islands", "macedonia", "mali", "myanmar", "mongolia", "macau", "northern_mariana_islands", "martinique", "mauritania", "montserrat", "malta", "mauritius", "maldives", "malawi", "mexico", "malaysia", "mozambique", "namibia", "new_caledonia", "niger", "norfolk_island", "nigeria", "nicaragua", "netherlands", "norway", "nepal", "nauru", "niue", "new_zealand", "oman", "panama", "peru", "french_polynesia", "papua_new_guinea", "philippines", "pakistan", "poland", "st_pierre_miquelon", "pitcairn_islands", "puerto_rico", "palestinian_territories", "portugal", "palau", "paraguay", "qatar", "reunion", "romania", "serbia", "ru", "rwanda", "saudi_arabia", "solomon_islands", "seychelles", "sudan", "sweden", "singapore", "st_helena", "slovenia", "svalbard_jan_mayen", "slovakia", "sierra_leone", "san_marino", "senegal", "somalia", "suriname", "south_sudan", "sao_tome_principe", "el_salvador", "sint_maarten", "syria", "swaziland", "tristan_da_cunha", "turks_caicos_islands", "chad", "french_southern_territories", "togo", "thailand", "tajikistan", "tokelau", "timor_leste", "turkmenistan", "tunisia", "tonga", "tr", "trinidad_tobago", "tuvalu", "taiwan", "tanzania", "ukraine", "uganda", "us_outlying_islands", "united_nations", "us", "uruguay", "uzbekistan", "vatican_city", "st_vincent_grenadines", "venezuela", "british_virgin_islands", "us_virgin_islands", "vietnam", "vanuatu", "wallis_futuna", "samoa", "kosovo", "yemen", "mayotte", "south_africa", "zambia", "zimbabwe", "england", "scotland", "wales"];
diff --git a/ui/src/twemojis.ts b/ui/src/twemojis.ts
new file mode 100644
index 00000000..e8005423
--- /dev/null
+++ b/ui/src/twemojis.ts
@@ -0,0 +1,1721 @@
+export const twemojis = {
+ "grinning_face": "๐Ÿ˜€",
+ "grinning_face_with_big_eyes": "๐Ÿ˜ƒ",
+ "grinning_face_with_smiling_eyes": "๐Ÿ˜„",
+ "beaming_face_with_smiling_eyes": "๐Ÿ˜",
+ "grinning_squinting_face": "๐Ÿ˜†",
+ "grinning_face_with_sweat": "๐Ÿ˜…",
+ "rolling_on_the_floor_laughing": "๐Ÿคฃ",
+ "face_with_tears_of_joy": "๐Ÿ˜‚",
+ "slightly_smiling_face": "๐Ÿ™‚",
+ "upside-down_face": "๐Ÿ™ƒ",
+ "winking_face": "๐Ÿ˜‰",
+ "smiling_face_with_smiling_eyes": "๐Ÿ˜Š",
+ "smiling_face_with_halo": "๐Ÿ˜‡",
+ "smiling_face_with_hearts": "๐Ÿฅฐ",
+ "smiling_face_with_heart-eyes": "๐Ÿ˜",
+ "star-struck": "๐Ÿคฉ",
+ "face_blowing_a_kiss": "๐Ÿ˜˜",
+ "kissing_face": "๐Ÿ˜—",
+ "smiling_face": "โ˜บ",
+ "kissing_face_with_closed_eyes": "๐Ÿ˜š",
+ "kissing_face_with_smiling_eyes": "๐Ÿ˜™",
+ "face_savoring_food": "๐Ÿ˜‹",
+ "face_with_tongue": "๐Ÿ˜›",
+ "winking_face_with_tongue": "๐Ÿ˜œ",
+ "zany_face": "๐Ÿคช",
+ "squinting_face_with_tongue": "๐Ÿ˜",
+ "money-mouth_face": "๐Ÿค‘",
+ "hugging_face": "๐Ÿค—",
+ "face_with_hand_over_mouth": "๐Ÿคญ",
+ "shushing_face": "๐Ÿคซ",
+ "thinking_face": "๐Ÿค”",
+ "zipper-mouth_face": "๐Ÿค",
+ "face_with_raised_eyebrow": "๐Ÿคจ",
+ "neutral_face": "๐Ÿ˜",
+ "expressionless_face": "๐Ÿ˜‘",
+ "face_without_mouth": "๐Ÿ˜ถ",
+ "smirking_face": "๐Ÿ˜",
+ "unamused_face": "๐Ÿ˜’",
+ "face_with_rolling_eyes": "๐Ÿ™„",
+ "grimacing_face": "๐Ÿ˜ฌ",
+ "lying_face": "๐Ÿคฅ",
+ "relieved_face": "๐Ÿ˜Œ",
+ "pensive_face": "๐Ÿ˜”",
+ "sleepy_face": "๐Ÿ˜ช",
+ "drooling_face": "๐Ÿคค",
+ "sleeping_face": "๐Ÿ˜ด",
+ "face_with_medical_mask": "๐Ÿ˜ท",
+ "face_with_thermometer": "๐Ÿค’",
+ "face_with_head-bandage": "๐Ÿค•",
+ "nauseated_face": "๐Ÿคข",
+ "face_vomiting": "๐Ÿคฎ",
+ "sneezing_face": "๐Ÿคง",
+ "hot_face": "๐Ÿฅต",
+ "cold_face": "๐Ÿฅถ",
+ "woozy_face": "๐Ÿฅด",
+ "dizzy_face": "๐Ÿ˜ต",
+ "exploding_head": "๐Ÿคฏ",
+ "cowboy_hat_face": "๐Ÿค ",
+ "partying_face": "๐Ÿฅณ",
+ "smiling_face_with_sunglasses": "๐Ÿ˜Ž",
+ "nerd_face": "๐Ÿค“",
+ "face_with_monocle": "๐Ÿง",
+ "confused_face": "๐Ÿ˜•",
+ "worried_face": "๐Ÿ˜Ÿ",
+ "slightly_frowning_face": "๐Ÿ™",
+ "frowning_face": "โ˜น",
+ "face_with_open_mouth": "๐Ÿ˜ฎ",
+ "hushed_face": "๐Ÿ˜ฏ",
+ "astonished_face": "๐Ÿ˜ฒ",
+ "flushed_face": "๐Ÿ˜ณ",
+ "pleading_face": "๐Ÿฅบ",
+ "frowning_face_with_open_mouth": "๐Ÿ˜ฆ",
+ "anguished_face": "๐Ÿ˜ง",
+ "fearful_face": "๐Ÿ˜จ",
+ "anxious_face_with_sweat": "๐Ÿ˜ฐ",
+ "sad_but_relieved_face": "๐Ÿ˜ฅ",
+ "crying_face": "๐Ÿ˜ข",
+ "loudly_crying_face": "๐Ÿ˜ญ",
+ "face_screaming_in_fear": "๐Ÿ˜ฑ",
+ "confounded_face": "๐Ÿ˜–",
+ "persevering_face": "๐Ÿ˜ฃ",
+ "disappointed_face": "๐Ÿ˜ž",
+ "downcast_face_with_sweat": "๐Ÿ˜“",
+ "weary_face": "๐Ÿ˜ฉ",
+ "tired_face": "๐Ÿ˜ซ",
+ "โŠ›_yawning_face": "๐Ÿฅฑ",
+ "face_with_steam_from_nose": "๐Ÿ˜ค",
+ "pouting_face": "๐Ÿ˜ก",
+ "angry_face": "๐Ÿ˜ ",
+ "face_with_symbols_on_mouth": "๐Ÿคฌ",
+ "smiling_face_with_horns": "๐Ÿ˜ˆ",
+ "angry_face_with_horns": "๐Ÿ‘ฟ",
+ "skull": "๐Ÿ’€",
+ "skull_and_crossbones": "โ˜ ",
+ "pile_of_poo": "๐Ÿ’ฉ",
+ "clown_face": "๐Ÿคก",
+ "ogre": "๐Ÿ‘น",
+ "goblin": "๐Ÿ‘บ",
+ "ghost": "๐Ÿ‘ป",
+ "alien": "๐Ÿ‘ฝ",
+ "alien_monster": "๐Ÿ‘พ",
+ "robot": "๐Ÿค–",
+ "grinning_cat": "๐Ÿ˜บ",
+ "grinning_cat_with_smiling_eyes": "๐Ÿ˜ธ",
+ "cat_with_tears_of_joy": "๐Ÿ˜น",
+ "smiling_cat_with_heart-eyes": "๐Ÿ˜ป",
+ "cat_with_wry_smile": "๐Ÿ˜ผ",
+ "kissing_cat": "๐Ÿ˜ฝ",
+ "weary_cat": "๐Ÿ™€",
+ "crying_cat": "๐Ÿ˜ฟ",
+ "pouting_cat": "๐Ÿ˜พ",
+ "see-no-evil_monkey": "๐Ÿ™ˆ",
+ "hear-no-evil_monkey": "๐Ÿ™‰",
+ "speak-no-evil_monkey": "๐Ÿ™Š",
+ "kiss_mark": "๐Ÿ’‹",
+ "love_letter": "๐Ÿ’Œ",
+ "heart_with_arrow": "๐Ÿ’˜",
+ "heart_with_ribbon": "๐Ÿ’",
+ "sparkling_heart": "๐Ÿ’–",
+ "growing_heart": "๐Ÿ’—",
+ "beating_heart": "๐Ÿ’“",
+ "revolving_hearts": "๐Ÿ’ž",
+ "two_hearts": "๐Ÿ’•",
+ "heart_decoration": "๐Ÿ’Ÿ",
+ "heart_exclamation": "โฃ",
+ "broken_heart": "๐Ÿ’”",
+ "red_heart": "โค",
+ "orange_heart": "๐Ÿงก",
+ "yellow_heart": "๐Ÿ’›",
+ "green_heart": "๐Ÿ’š",
+ "blue_heart": "๐Ÿ’™",
+ "purple_heart": "๐Ÿ’œ",
+ "โŠ›_brown_heart": "๐ŸคŽ",
+ "black_heart": "๐Ÿ–ค",
+ "โŠ›_white_heart": "๐Ÿค",
+ "hundred_points": "๐Ÿ’ฏ",
+ "anger_symbol": "๐Ÿ’ข",
+ "collision": "๐Ÿ’ฅ",
+ "dizzy": "๐Ÿ’ซ",
+ "sweat_droplets": "๐Ÿ’ฆ",
+ "dashing_away": "๐Ÿ’จ",
+ "hole": "๐Ÿ•ณ",
+ "bomb": "๐Ÿ’ฃ",
+ "speech_balloon": "๐Ÿ’ฌ",
+ "eye_in_speech_bubble": "๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ",
+ "left_speech_bubble": "๐Ÿ—จ",
+ "right_anger_bubble": "๐Ÿ—ฏ",
+ "thought_balloon": "๐Ÿ’ญ",
+ "zzz": "๐Ÿ’ค",
+ "waving_hand": "๐Ÿ‘‹",
+ "raised_back_of_hand": "๐Ÿคš",
+ "hand_with_fingers_splayed": "๐Ÿ–",
+ "raised_hand": "โœ‹",
+ "vulcan_salute": "๐Ÿ––",
+ "OK_hand": "๐Ÿ‘Œ",
+ "โŠ›_pinching_hand": "๐Ÿค",
+ "victory_hand": "โœŒ",
+ "crossed_fingers": "๐Ÿคž",
+ "love-you_gesture": "๐ŸคŸ",
+ "sign_of_the_horns": "๐Ÿค˜",
+ "call_me_hand": "๐Ÿค™",
+ "backhand_index_pointing_left": "๐Ÿ‘ˆ",
+ "backhand_index_pointing_right": "๐Ÿ‘‰",
+ "backhand_index_pointing_up": "๐Ÿ‘†",
+ "middle_finger": "๐Ÿ–•",
+ "backhand_index_pointing_down": "๐Ÿ‘‡",
+ "index_pointing_up": "โ˜",
+ "thumbs_up": "๐Ÿ‘",
+ "thumbs_down": "๐Ÿ‘Ž",
+ "raised_fist": "โœŠ",
+ "oncoming_fist": "๐Ÿ‘Š",
+ "left-facing_fist": "๐Ÿค›",
+ "right-facing_fist": "๐Ÿคœ",
+ "clapping_hands": "๐Ÿ‘",
+ "raising_hands": "๐Ÿ™Œ",
+ "open_hands": "๐Ÿ‘",
+ "palms_up_together": "๐Ÿคฒ",
+ "handshake": "๐Ÿค",
+ "folded_hands": "๐Ÿ™",
+ "writing_hand": "โœ",
+ "nail_polish": "๐Ÿ’…",
+ "selfie": "๐Ÿคณ",
+ "flexed_biceps": "๐Ÿ’ช",
+ "โŠ›_mechanical_arm": "๐Ÿฆพ",
+ "โŠ›_mechanical_leg": "๐Ÿฆฟ",
+ "leg": "๐Ÿฆต",
+ "foot": "๐Ÿฆถ",
+ "ear": "๐Ÿ‘‚",
+ "โŠ›_ear_with_hearing_aid": "๐Ÿฆป",
+ "nose": "๐Ÿ‘ƒ",
+ "brain": "๐Ÿง ",
+ "tooth": "๐Ÿฆท",
+ "bone": "๐Ÿฆด",
+ "eyes": "๐Ÿ‘€",
+ "eye": "๐Ÿ‘",
+ "tongue": "๐Ÿ‘…",
+ "mouth": "๐Ÿ‘„",
+ "baby": "๐Ÿ‘ถ",
+ "child": "๐Ÿง’",
+ "boy": "๐Ÿ‘ฆ",
+ "girl": "๐Ÿ‘ง",
+ "person": "๐Ÿง‘",
+ "person_blond_hair": "๐Ÿ‘ฑ",
+ "man": "๐Ÿ‘จ",
+ "man_beard": "๐Ÿง”",
+ "man_blond_hair": "๐Ÿ‘ฑโ€โ™‚๏ธ",
+ "man_red_hair": "๐Ÿ‘จโ€๐Ÿฆฐ",
+ "man_curly_hair": "๐Ÿ‘จโ€๐Ÿฆฑ",
+ "man_white_hair": "๐Ÿ‘จโ€๐Ÿฆณ",
+ "man_bald": "๐Ÿ‘จโ€๐Ÿฆฒ",
+ "woman": "๐Ÿ‘ฉ",
+ "woman_blond_hair": "๐Ÿ‘ฑโ€โ™€๏ธ",
+ "woman_red_hair": "๐Ÿ‘ฉโ€๐Ÿฆฐ",
+ "woman_curly_hair": "๐Ÿ‘ฉโ€๐Ÿฆฑ",
+ "woman_white_hair": "๐Ÿ‘ฉโ€๐Ÿฆณ",
+ "woman_bald": "๐Ÿ‘ฉโ€๐Ÿฆฒ",
+ "older_person": "๐Ÿง“",
+ "old_man": "๐Ÿ‘ด",
+ "old_woman": "๐Ÿ‘ต",
+ "person_frowning": "๐Ÿ™",
+ "man_frowning": "๐Ÿ™โ€โ™‚๏ธ",
+ "woman_frowning": "๐Ÿ™โ€โ™€๏ธ",
+ "person_pouting": "๐Ÿ™Ž",
+ "man_pouting": "๐Ÿ™Žโ€โ™‚๏ธ",
+ "woman_pouting": "๐Ÿ™Žโ€โ™€๏ธ",
+ "person_gesturing_NO": "๐Ÿ™…",
+ "man_gesturing_NO": "๐Ÿ™…โ€โ™‚๏ธ",
+ "woman_gesturing_NO": "๐Ÿ™…โ€โ™€๏ธ",
+ "person_gesturing_OK": "๐Ÿ™†",
+ "man_gesturing_OK": "๐Ÿ™†โ€โ™‚๏ธ",
+ "woman_gesturing_OK": "๐Ÿ™†โ€โ™€๏ธ",
+ "person_tipping_hand": "๐Ÿ’",
+ "man_tipping_hand": "๐Ÿ’โ€โ™‚๏ธ",
+ "woman_tipping_hand": "๐Ÿ’โ€โ™€๏ธ",
+ "person_raising_hand": "๐Ÿ™‹",
+ "man_raising_hand": "๐Ÿ™‹โ€โ™‚๏ธ",
+ "woman_raising_hand": "๐Ÿ™‹โ€โ™€๏ธ",
+ "โŠ›_deaf_person": "๐Ÿง",
+ "โŠ›_deaf_man": "๐Ÿงโ€โ™‚๏ธ",
+ "โŠ›_deaf_woman": "๐Ÿงโ€โ™€๏ธ",
+ "person_bowing": "๐Ÿ™‡",
+ "man_bowing": "๐Ÿ™‡โ€โ™‚๏ธ",
+ "woman_bowing": "๐Ÿ™‡โ€โ™€๏ธ",
+ "person_facepalming": "๐Ÿคฆ",
+ "man_facepalming": "๐Ÿคฆโ€โ™‚๏ธ",
+ "woman_facepalming": "๐Ÿคฆโ€โ™€๏ธ",
+ "person_shrugging": "๐Ÿคท",
+ "man_shrugging": "๐Ÿคทโ€โ™‚๏ธ",
+ "woman_shrugging": "๐Ÿคทโ€โ™€๏ธ",
+ "man_health_worker": "๐Ÿ‘จโ€โš•๏ธ",
+ "woman_health_worker": "๐Ÿ‘ฉโ€โš•๏ธ",
+ "man_student": "๐Ÿ‘จโ€๐ŸŽ“",
+ "woman_student": "๐Ÿ‘ฉโ€๐ŸŽ“",
+ "man_teacher": "๐Ÿ‘จโ€๐Ÿซ",
+ "woman_teacher": "๐Ÿ‘ฉโ€๐Ÿซ",
+ "man_judge": "๐Ÿ‘จโ€โš–๏ธ",
+ "woman_judge": "๐Ÿ‘ฉโ€โš–๏ธ",
+ "man_farmer": "๐Ÿ‘จโ€๐ŸŒพ",
+ "woman_farmer": "๐Ÿ‘ฉโ€๐ŸŒพ",
+ "man_cook": "๐Ÿ‘จโ€๐Ÿณ",
+ "woman_cook": "๐Ÿ‘ฉโ€๐Ÿณ",
+ "man_mechanic": "๐Ÿ‘จโ€๐Ÿ”ง",
+ "woman_mechanic": "๐Ÿ‘ฉโ€๐Ÿ”ง",
+ "man_factory_worker": "๐Ÿ‘จโ€๐Ÿญ",
+ "woman_factory_worker": "๐Ÿ‘ฉโ€๐Ÿญ",
+ "man_office_worker": "๐Ÿ‘จโ€๐Ÿ’ผ",
+ "woman_office_worker": "๐Ÿ‘ฉโ€๐Ÿ’ผ",
+ "man_scientist": "๐Ÿ‘จโ€๐Ÿ”ฌ",
+ "woman_scientist": "๐Ÿ‘ฉโ€๐Ÿ”ฌ",
+ "man_technologist": "๐Ÿ‘จโ€๐Ÿ’ป",
+ "woman_technologist": "๐Ÿ‘ฉโ€๐Ÿ’ป",
+ "man_singer": "๐Ÿ‘จโ€๐ŸŽค",
+ "woman_singer": "๐Ÿ‘ฉโ€๐ŸŽค",
+ "man_artist": "๐Ÿ‘จโ€๐ŸŽจ",
+ "woman_artist": "๐Ÿ‘ฉโ€๐ŸŽจ",
+ "man_pilot": "๐Ÿ‘จโ€โœˆ๏ธ",
+ "woman_pilot": "๐Ÿ‘ฉโ€โœˆ๏ธ",
+ "man_astronaut": "๐Ÿ‘จโ€๐Ÿš€",
+ "woman_astronaut": "๐Ÿ‘ฉโ€๐Ÿš€",
+ "man_firefighter": "๐Ÿ‘จโ€๐Ÿš’",
+ "woman_firefighter": "๐Ÿ‘ฉโ€๐Ÿš’",
+ "police_officer": "๐Ÿ‘ฎ",
+ "man_police_officer": "๐Ÿ‘ฎโ€โ™‚๏ธ",
+ "woman_police_officer": "๐Ÿ‘ฎโ€โ™€๏ธ",
+ "detective": "๐Ÿ•ต",
+ "man_detective": "๐Ÿ•ต๏ธโ€โ™‚๏ธ",
+ "woman_detective": "๐Ÿ•ต๏ธโ€โ™€๏ธ",
+ "guard": "๐Ÿ’‚",
+ "man_guard": "๐Ÿ’‚โ€โ™‚๏ธ",
+ "woman_guard": "๐Ÿ’‚โ€โ™€๏ธ",
+ "construction_worker": "๐Ÿ‘ท",
+ "man_construction_worker": "๐Ÿ‘ทโ€โ™‚๏ธ",
+ "woman_construction_worker": "๐Ÿ‘ทโ€โ™€๏ธ",
+ "prince": "๐Ÿคด",
+ "princess": "๐Ÿ‘ธ",
+ "person_wearing_turban": "๐Ÿ‘ณ",
+ "man_wearing_turban": "๐Ÿ‘ณโ€โ™‚๏ธ",
+ "woman_wearing_turban": "๐Ÿ‘ณโ€โ™€๏ธ",
+ "man_with_Chinese_cap": "๐Ÿ‘ฒ",
+ "woman_with_headscarf": "๐Ÿง•",
+ "man_in_tuxedo": "๐Ÿคต",
+ "bride_with_veil": "๐Ÿ‘ฐ",
+ "pregnant_woman": "๐Ÿคฐ",
+ "breast-feeding": "๐Ÿคฑ",
+ "baby_angel": "๐Ÿ‘ผ",
+ "Santa_Claus": "๐ŸŽ…",
+ "Mrs._Claus": "๐Ÿคถ",
+ "superhero": "๐Ÿฆธ",
+ "man_superhero": "๐Ÿฆธโ€โ™‚๏ธ",
+ "woman_superhero": "๐Ÿฆธโ€โ™€๏ธ",
+ "supervillain": "๐Ÿฆน",
+ "man_supervillain": "๐Ÿฆนโ€โ™‚๏ธ",
+ "woman_supervillain": "๐Ÿฆนโ€โ™€๏ธ",
+ "mage": "๐Ÿง™",
+ "man_mage": "๐Ÿง™โ€โ™‚๏ธ",
+ "woman_mage": "๐Ÿง™โ€โ™€๏ธ",
+ "fairy": "๐Ÿงš",
+ "man_fairy": "๐Ÿงšโ€โ™‚๏ธ",
+ "woman_fairy": "๐Ÿงšโ€โ™€๏ธ",
+ "vampire": "๐Ÿง›",
+ "man_vampire": "๐Ÿง›โ€โ™‚๏ธ",
+ "woman_vampire": "๐Ÿง›โ€โ™€๏ธ",
+ "merperson": "๐Ÿงœ",
+ "merman": "๐Ÿงœโ€โ™‚๏ธ",
+ "mermaid": "๐Ÿงœโ€โ™€๏ธ",
+ "elf": "๐Ÿง",
+ "man_elf": "๐Ÿงโ€โ™‚๏ธ",
+ "woman_elf": "๐Ÿงโ€โ™€๏ธ",
+ "genie": "๐Ÿงž",
+ "man_genie": "๐Ÿงžโ€โ™‚๏ธ",
+ "woman_genie": "๐Ÿงžโ€โ™€๏ธ",
+ "zombie": "๐ŸงŸ",
+ "man_zombie": "๐ŸงŸโ€โ™‚๏ธ",
+ "woman_zombie": "๐ŸงŸโ€โ™€๏ธ",
+ "person_getting_massage": "๐Ÿ’†",
+ "man_getting_massage": "๐Ÿ’†โ€โ™‚๏ธ",
+ "woman_getting_massage": "๐Ÿ’†โ€โ™€๏ธ",
+ "person_getting_haircut": "๐Ÿ’‡",
+ "man_getting_haircut": "๐Ÿ’‡โ€โ™‚๏ธ",
+ "woman_getting_haircut": "๐Ÿ’‡โ€โ™€๏ธ",
+ "person_walking": "๐Ÿšถ",
+ "man_walking": "๐Ÿšถโ€โ™‚๏ธ",
+ "woman_walking": "๐Ÿšถโ€โ™€๏ธ",
+ "โŠ›_person_standing": "๐Ÿง",
+ "โŠ›_man_standing": "๐Ÿงโ€โ™‚๏ธ",
+ "โŠ›_woman_standing": "๐Ÿงโ€โ™€๏ธ",
+ "โŠ›_person_kneeling": "๐ŸงŽ",
+ "โŠ›_man_kneeling": "๐ŸงŽโ€โ™‚๏ธ",
+ "โŠ›_woman_kneeling": "๐ŸงŽโ€โ™€๏ธ",
+ "โŠ›_man_with_probing_cane": "๐Ÿ‘จโ€๐Ÿฆฏ",
+ "โŠ›_woman_with_probing_cane": "๐Ÿ‘ฉโ€๐Ÿฆฏ",
+ "โŠ›_man_in_motorized_wheelchair": "๐Ÿ‘จโ€๐Ÿฆผ",
+ "โŠ›_woman_in_motorized_wheelchair": "๐Ÿ‘ฉโ€๐Ÿฆผ",
+ "โŠ›_man_in_manual_wheelchair": "๐Ÿ‘จโ€๐Ÿฆฝ",
+ "โŠ›_woman_in_manual_wheelchair": "๐Ÿ‘ฉโ€๐Ÿฆฝ",
+ "person_running": "๐Ÿƒ",
+ "man_running": "๐Ÿƒโ€โ™‚๏ธ",
+ "woman_running": "๐Ÿƒโ€โ™€๏ธ",
+ "woman_dancing": "๐Ÿ’ƒ",
+ "man_dancing": "๐Ÿ•บ",
+ "man_in_suit_levitating": "๐Ÿ•ด",
+ "people_with_bunny_ears": "๐Ÿ‘ฏ",
+ "men_with_bunny_ears": "๐Ÿ‘ฏโ€โ™‚๏ธ",
+ "women_with_bunny_ears": "๐Ÿ‘ฏโ€โ™€๏ธ",
+ "person_in_steamy_room": "๐Ÿง–",
+ "man_in_steamy_room": "๐Ÿง–โ€โ™‚๏ธ",
+ "woman_in_steamy_room": "๐Ÿง–โ€โ™€๏ธ",
+ "person_climbing": "๐Ÿง—",
+ "man_climbing": "๐Ÿง—โ€โ™‚๏ธ",
+ "woman_climbing": "๐Ÿง—โ€โ™€๏ธ",
+ "person_fencing": "๐Ÿคบ",
+ "horse_racing": "๐Ÿ‡",
+ "skier": "โ›ท",
+ "snowboarder": "๐Ÿ‚",
+ "person_golfing": "๐ŸŒ",
+ "man_golfing": "๐ŸŒ๏ธโ€โ™‚๏ธ",
+ "woman_golfing": "๐ŸŒ๏ธโ€โ™€๏ธ",
+ "person_surfing": "๐Ÿ„",
+ "man_surfing": "๐Ÿ„โ€โ™‚๏ธ",
+ "woman_surfing": "๐Ÿ„โ€โ™€๏ธ",
+ "person_rowing_boat": "๐Ÿšฃ",
+ "man_rowing_boat": "๐Ÿšฃโ€โ™‚๏ธ",
+ "woman_rowing_boat": "๐Ÿšฃโ€โ™€๏ธ",
+ "person_swimming": "๐ŸŠ",
+ "man_swimming": "๐ŸŠโ€โ™‚๏ธ",
+ "woman_swimming": "๐ŸŠโ€โ™€๏ธ",
+ "person_bouncing_ball": "โ›น",
+ "man_bouncing_ball": "โ›น๏ธโ€โ™‚๏ธ",
+ "woman_bouncing_ball": "โ›น๏ธโ€โ™€๏ธ",
+ "person_lifting_weights": "๐Ÿ‹",
+ "man_lifting_weights": "๐Ÿ‹๏ธโ€โ™‚๏ธ",
+ "woman_lifting_weights": "๐Ÿ‹๏ธโ€โ™€๏ธ",
+ "person_biking": "๐Ÿšด",
+ "man_biking": "๐Ÿšดโ€โ™‚๏ธ",
+ "woman_biking": "๐Ÿšดโ€โ™€๏ธ",
+ "person_mountain_biking": "๐Ÿšต",
+ "man_mountain_biking": "๐Ÿšตโ€โ™‚๏ธ",
+ "woman_mountain_biking": "๐Ÿšตโ€โ™€๏ธ",
+ "person_cartwheeling": "๐Ÿคธ",
+ "man_cartwheeling": "๐Ÿคธโ€โ™‚๏ธ",
+ "woman_cartwheeling": "๐Ÿคธโ€โ™€๏ธ",
+ "people_wrestling": "๐Ÿคผ",
+ "men_wrestling": "๐Ÿคผโ€โ™‚๏ธ",
+ "women_wrestling": "๐Ÿคผโ€โ™€๏ธ",
+ "person_playing_water_polo": "๐Ÿคฝ",
+ "man_playing_water_polo": "๐Ÿคฝโ€โ™‚๏ธ",
+ "woman_playing_water_polo": "๐Ÿคฝโ€โ™€๏ธ",
+ "person_playing_handball": "๐Ÿคพ",
+ "man_playing_handball": "๐Ÿคพโ€โ™‚๏ธ",
+ "woman_playing_handball": "๐Ÿคพโ€โ™€๏ธ",
+ "person_juggling": "๐Ÿคน",
+ "man_juggling": "๐Ÿคนโ€โ™‚๏ธ",
+ "woman_juggling": "๐Ÿคนโ€โ™€๏ธ",
+ "person_in_lotus_position": "๐Ÿง˜",
+ "man_in_lotus_position": "๐Ÿง˜โ€โ™‚๏ธ",
+ "woman_in_lotus_position": "๐Ÿง˜โ€โ™€๏ธ",
+ "person_taking_bath": "๐Ÿ›€",
+ "person_in_bed": "๐Ÿ›Œ",
+ "โŠ›_people_holding_hands": "๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘",
+ "women_holding_hands": "๐Ÿ‘ญ",
+ "woman_and_man_holding_hands": "๐Ÿ‘ซ",
+ "men_holding_hands": "๐Ÿ‘ฌ",
+ "kiss": "๐Ÿ’",
+ "kiss_woman,_man": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ",
+ "kiss_man,_man": "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ",
+ "kiss_woman,_woman": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ",
+ "couple_with_heart": "๐Ÿ’‘",
+ "couple_with_heart_woman,_man": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ",
+ "couple_with_heart_man,_man": "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ",
+ "couple_with_heart_woman,_woman": "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ",
+ "family": "๐Ÿ‘ช",
+ "family_man,_woman,_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+ "family_man,_woman,_girl": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง",
+ "family_man,_woman,_girl,_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+ "family_man,_woman,_boy,_boy": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+ "family_man,_woman,_girl,_girl": "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+ "family_man,_man,_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ",
+ "family_man,_man,_girl": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง",
+ "family_man,_man,_girl,_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+ "family_man,_man,_boy,_boy": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+ "family_man,_man,_girl,_girl": "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+ "family_woman,_woman,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+ "family_woman,_woman,_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง",
+ "family_woman,_woman,_girl,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+ "family_woman,_woman,_boy,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+ "family_woman,_woman,_girl,_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+ "family_man,_boy": "๐Ÿ‘จโ€๐Ÿ‘ฆ",
+ "family_man,_boy,_boy": "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+ "family_man,_girl": "๐Ÿ‘จโ€๐Ÿ‘ง",
+ "family_man,_girl,_boy": "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+ "family_man,_girl,_girl": "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+ "family_woman,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฆ",
+ "family_woman,_boy,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ",
+ "family_woman,_girl": "๐Ÿ‘ฉโ€๐Ÿ‘ง",
+ "family_woman,_girl,_boy": "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ",
+ "family_woman,_girl,_girl": "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง",
+ "speaking_head": "๐Ÿ—ฃ",
+ "bust_in_silhouette": "๐Ÿ‘ค",
+ "busts_in_silhouette": "๐Ÿ‘ฅ",
+ "footprints": "๐Ÿ‘ฃ",
+ "red_hair": "๐Ÿฆฐ",
+ "curly_hair": "๐Ÿฆฑ",
+ "white_hair": "๐Ÿฆณ",
+ "bald": "๐Ÿฆฒ",
+ "monkey_face": "๐Ÿต",
+ "monkey": "๐Ÿ’",
+ "gorilla": "๐Ÿฆ",
+ "โŠ›_orangutan": "๐Ÿฆง",
+ "dog_face": "๐Ÿถ",
+ "dog": "๐Ÿ•",
+ "โŠ›_guide_dog": "๐Ÿฆฎ",
+ "โŠ›_service_dog": "๐Ÿ•โ€๐Ÿฆบ",
+ "poodle": "๐Ÿฉ",
+ "wolf": "๐Ÿบ",
+ "fox": "๐ŸฆŠ",
+ "raccoon": "๐Ÿฆ",
+ "cat_face": "๐Ÿฑ",
+ "cat": "๐Ÿˆ",
+ "lion": "๐Ÿฆ",
+ "tiger_face": "๐Ÿฏ",
+ "tiger": "๐Ÿ…",
+ "leopard": "๐Ÿ†",
+ "horse_face": "๐Ÿด",
+ "horse": "๐ŸŽ",
+ "unicorn": "๐Ÿฆ„",
+ "zebra": "๐Ÿฆ“",
+ "deer": "๐ŸฆŒ",
+ "cow_face": "๐Ÿฎ",
+ "ox": "๐Ÿ‚",
+ "water_buffalo": "๐Ÿƒ",
+ "cow": "๐Ÿ„",
+ "pig_face": "๐Ÿท",
+ "pig": "๐Ÿ–",
+ "boar": "๐Ÿ—",
+ "pig_nose": "๐Ÿฝ",
+ "ram": "๐Ÿ",
+ "ewe": "๐Ÿ‘",
+ "goat": "๐Ÿ",
+ "camel": "๐Ÿช",
+ "two-hump_camel": "๐Ÿซ",
+ "llama": "๐Ÿฆ™",
+ "giraffe": "๐Ÿฆ’",
+ "elephant": "๐Ÿ˜",
+ "rhinoceros": "๐Ÿฆ",
+ "hippopotamus": "๐Ÿฆ›",
+ "mouse_face": "๐Ÿญ",
+ "mouse": "๐Ÿ",
+ "rat": "๐Ÿ€",
+ "hamster": "๐Ÿน",
+ "rabbit_face": "๐Ÿฐ",
+ "rabbit": "๐Ÿ‡",
+ "chipmunk": "๐Ÿฟ",
+ "hedgehog": "๐Ÿฆ”",
+ "bat": "๐Ÿฆ‡",
+ "bear": "๐Ÿป",
+ "koala": "๐Ÿจ",
+ "panda": "๐Ÿผ",
+ "โŠ›_sloth": "๐Ÿฆฅ",
+ "โŠ›_otter": "๐Ÿฆฆ",
+ "โŠ›_skunk": "๐Ÿฆจ",
+ "kangaroo": "๐Ÿฆ˜",
+ "badger": "๐Ÿฆก",
+ "paw_prints": "๐Ÿพ",
+ "turkey": "๐Ÿฆƒ",
+ "chicken": "๐Ÿ”",
+ "rooster": "๐Ÿ“",
+ "hatching_chick": "๐Ÿฃ",
+ "baby_chick": "๐Ÿค",
+ "front-facing_baby_chick": "๐Ÿฅ",
+ "bird": "๐Ÿฆ",
+ "penguin": "๐Ÿง",
+ "dove": "๐Ÿ•Š",
+ "eagle": "๐Ÿฆ…",
+ "duck": "๐Ÿฆ†",
+ "swan": "๐Ÿฆข",
+ "owl": "๐Ÿฆ‰",
+ "โŠ›_flamingo": "๐Ÿฆฉ",
+ "peacock": "๐Ÿฆš",
+ "parrot": "๐Ÿฆœ",
+ "frog": "๐Ÿธ",
+ "crocodile": "๐ŸŠ",
+ "turtle": "๐Ÿข",
+ "lizard": "๐ŸฆŽ",
+ "snake": "๐Ÿ",
+ "dragon_face": "๐Ÿฒ",
+ "dragon": "๐Ÿ‰",
+ "sauropod": "๐Ÿฆ•",
+ "T-Rex": "๐Ÿฆ–",
+ "spouting_whale": "๐Ÿณ",
+ "whale": "๐Ÿ‹",
+ "dolphin": "๐Ÿฌ",
+ "fish": "๐ŸŸ",
+ "tropical_fish": "๐Ÿ ",
+ "blowfish": "๐Ÿก",
+ "shark": "๐Ÿฆˆ",
+ "octopus": "๐Ÿ™",
+ "spiral_shell": "๐Ÿš",
+ "snail": "๐ŸŒ",
+ "butterfly": "๐Ÿฆ‹",
+ "bug": "๐Ÿ›",
+ "ant": "๐Ÿœ",
+ "honeybee": "๐Ÿ",
+ "lady_beetle": "๐Ÿž",
+ "cricket": "๐Ÿฆ—",
+ "spider": "๐Ÿ•ท",
+ "spider_web": "๐Ÿ•ธ",
+ "scorpion": "๐Ÿฆ‚",
+ "mosquito": "๐ŸฆŸ",
+ "microbe": "๐Ÿฆ ",
+ "bouquet": "๐Ÿ’",
+ "cherry_blossom": "๐ŸŒธ",