From f01e98e8d37f399e922832bd528fd1dc980ba630 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Wed, 29 Apr 2026 10:27:36 -0500 Subject: [PATCH] fix: update emoji catalog metadata and improve picker synchronization (#5292) --- .../org/meshtastic/core/ui/emoji/EmojiData.kt | 2576 +++++++++++------ .../core/ui/emoji/EmojiPickerDialog.kt | 14 +- 2 files changed, 1650 insertions(+), 940 deletions(-) diff --git a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiData.kt b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiData.kt index 9f8d1dfb9..43c8d7361 100644 --- a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiData.kt +++ b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiData.kt @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -@file:Suppress("LongMethod") +@file:Suppress("LongMethod", "MaxLineLength", "StringLiteralDuplication", "TooManyFunctions") package org.meshtastic.core.ui.emoji @@ -54,7 +54,7 @@ internal fun Emoji.withSkinTone(tone: SkinTone): String { // ── Emoji Catalog ────────────────────────────────────────────────────────────── -@Suppress("LargeClass", "MaxLineLength") +@Suppress("LargeClass", "MaxLineLength", "LongMethod") internal object EmojiData { private fun e(base: String, vararg kw: String, skin: Boolean = false) = Emoji(base, kw.toList(), skin) @@ -65,169 +65,177 @@ internal object EmojiData { val all: List by lazy { categories.flatMap { it.emojis } } // ── Categories ───────────────────────────────────────────────────────────── - private fun smileys() = EmojiCategory( name = "Smileys & Emotion", icon = "😀", emojis = listOf( - e("😀", "grin", "happy"), - e("😃", "smile", "happy"), - e("😄", "laugh", "happy"), - e("😁", "grin", "teeth"), - e("😆", "laugh", "squint"), - e("😅", "sweat", "smile"), - e("🤣", "rofl", "laugh"), - e("😂", "joy", "tears"), - e("🙂", "slight", "smile"), - e("🙃", "upside", "down"), - e("🫠", "melting", "face"), - e("😉", "wink"), - e("😊", "blush", "happy"), - e("😇", "halo", "angel"), - e("🥰", "hearts", "love"), - e("😍", "heart", "eyes"), - e("🤩", "star", "struck"), - e("😘", "kiss", "heart"), - e("😗", "kiss"), - e("😚", "kiss", "blush"), - e("😙", "kiss", "smile"), - e("🥲", "smile", "tear"), - e("😋", "yum", "delicious"), - e("😛", "tongue"), - e("😜", "wink", "tongue"), - e("🤪", "zany", "crazy"), - e("😝", "squint", "tongue"), - e("🤑", "money", "face"), - e("🤗", "hug"), - e("🤭", "shush", "oops"), - e("🫢", "peek", "hand"), - e("🫣", "peeking", "shy"), - e("🤫", "quiet", "shush"), - e("🤔", "think", "hmm"), - e("🫡", "salute"), - e("🤐", "zipper", "mouth"), - e("🤨", "raised", "eyebrow"), - e("😐", "neutral"), - e("😑", "expressionless"), - e("😶", "mute", "silent"), - e("🫥", "dotted", "invisible"), - e("😶‍🌫️", "fog", "cloudy"), - e("😏", "smirk"), - e("😒", "unamused"), - e("🙄", "eye", "roll"), - e("😬", "grimace"), - e("🫨", "shaking"), - e("😮‍💨", "exhale", "sigh"), - e("🤥", "liar", "pinocchio"), - e("🫠", "melting"), - e("😌", "relieved"), - e("😔", "pensive", "sad"), - e("😪", "sleepy"), - e("🤤", "drool"), - e("😴", "sleep", "zzz"), - e("😷", "mask", "sick"), - e("🤒", "thermometer", "sick"), - e("🤕", "bandage", "hurt"), - e("🤢", "nausea", "sick"), - e("🤮", "vomit"), - e("🥵", "hot", "sweat"), - e("🥶", "cold", "freeze"), - e("🥴", "woozy", "drunk"), - e("😵", "dizzy"), - e("😵‍💫", "spiral", "dizzy"), - e("🤯", "mind", "blown"), - e("🤠", "cowboy"), - e("🥳", "party"), - e("🥸", "disguise"), - e("😎", "cool", "sunglasses"), - e("🤓", "nerd"), - e("🧐", "monocle"), - e("😕", "confused"), - e("🫤", "diagonal", "mouth"), - e("😟", "worried"), - e("🙁", "frown"), - e("☹️", "frown"), - e("😮", "open", "mouth"), - e("😯", "hushed"), - e("😲", "astonished"), - e("😳", "flushed"), - e("🥺", "pleading"), - e("🥹", "holding", "tears"), - e("😦", "frown", "open"), - e("😧", "anguished"), - e("😨", "fearful"), - e("😰", "anxious", "sweat"), - e("😥", "sad", "relieved"), - e("😢", "cry"), - e("😭", "sob", "cry"), - e("😱", "scream"), - e("😖", "confounded"), - e("😣", "persevere"), - e("😞", "disappointed"), - e("😓", "downcast", "sweat"), - e("😩", "weary"), - e("😫", "tired"), - e("🥱", "yawn"), - e("😤", "huff", "triumph"), - e("😡", "angry", "rage"), - e("😠", "angry"), - e("🤬", "swear", "cursing"), - e("😈", "devil", "smile"), - e("👿", "devil", "angry"), - e("💀", "skull", "dead"), - e("☠️", "skull", "crossbones"), - e("💩", "poop"), - e("🤡", "clown"), - e("👹", "ogre"), - e("👺", "goblin"), - e("👻", "ghost"), - e("👽", "alien"), - e("👾", "space", "invader"), + e("😀", "grinning", "face", "smile", "happy"), + e("😃", "grinning", "face", "with", "big", "eyes", "smiley", "happy", "joy", "haha"), + e("😄", "grinning", "face", "with", "smiling", "eyes", "smile", "happy", "joy", "laugh", "pleased"), + e("😁", "beaming", "face", "with", "smiling", "eyes", "grin"), + e("😆", "grinning", "squinting", "face", "laughing", "satisfied", "happy", "haha"), + e("😅", "grinning", "face", "with", "sweat", "smile", "hot"), + e("🤣", "rolling", "on", "the", "floor", "laughing", "rofl", "lol"), + e("😂", "face", "with", "tears", "of", "joy"), + e("🙂", "slightly", "smiling", "face"), + e("🙃", "upside", "down", "face"), + e("🫠", "melting", "face", "sarcasm", "dread"), + e("😉", "winking", "face", "wink", "flirt"), + e("😊", "smiling", "face", "with", "eyes", "blush", "proud"), + e("😇", "smiling", "face", "with", "halo", "innocent", "angel"), + e("🥰", "smiling", "face", "with", "hearts", "three", "love"), + e("😍", "smiling", "face", "with", "heart", "eyes", "love", "crush"), + e("🤩", "star", "struck", "eyes"), + e("😘", "face", "blowing", "a", "kiss", "kissing", "heart", "flirt"), + e("😗", "kissing", "face"), + e("☺️", "smiling", "face", "relaxed", "blush", "pleased"), + e("😚", "kissing", "face", "with", "closed", "eyes"), + e("😙", "kissing", "face", "with", "smiling", "eyes"), + e("🥲", "smiling", "face", "with", "tear"), + e("😋", "face", "savoring", "food", "yum", "tongue", "lick"), + e("😛", "face", "with", "tongue", "stuck", "out"), + e("😜", "winking", "face", "with", "tongue", "stuck", "out", "eye", "prank", "silly"), + e("🤪", "zany", "face", "goofy", "wacky"), + e("😝", "squinting", "face", "with", "tongue", "stuck", "out", "closed", "eyes", "prank"), + e("🤑", "money", "mouth", "face", "rich"), + e("🤗", "smiling", "face", "with", "open", "hands", "hugs"), + e("🤭", "face", "with", "hand", "over", "mouth", "quiet", "whoops"), + e("🫢", "face", "with", "open", "eyes", "and", "hand", "over", "mouth", "gasp", "shock"), + e("🫣", "face", "with", "peeking", "eye"), + e("🤫", "shushing", "face", "silence", "quiet"), + e("🤔", "thinking", "face"), + e("🫡", "saluting", "face", "respect"), + e("🤐", "zipper", "mouth", "face", "silence", "hush"), + e("🤨", "face", "with", "raised", "eyebrow", "suspicious"), + e("😐", "neutral", "face", "meh"), + e("😑", "expressionless", "face"), + e("😶", "face", "without", "mouth", "no", "mute", "silence"), + e("🫥", "dotted", "line", "face", "invisible"), + e("😶‍🌫️", "face", "in", "clouds"), + e("😏", "smirking", "face", "smirk", "smug"), + e("😒", "unamused", "face", "meh"), + e("🙄", "face", "with", "rolling", "eyes", "roll"), + e("😬", "grimacing", "face"), + e("😮‍💨", "face", "exhaling"), + e("🤥", "lying", "face", "liar"), + e("🫨", "shaking", "face", "shock"), + e("😌", "relieved", "face", "whew"), + e("😔", "pensive", "face"), + e("😪", "sleepy", "face", "tired"), + e("🤤", "drooling", "face"), + e("😴", "sleeping", "face", "zzz"), + e("😷", "face", "with", "medical", "mask", "sick", "ill"), + e("🤒", "face", "with", "thermometer", "sick"), + e("🤕", "face", "with", "head", "bandage", "hurt"), + e("🤢", "nauseated", "face", "sick", "barf", "disgusted"), + e("🤮", "face", "vomiting", "barf", "sick"), + e("🤧", "sneezing", "face", "achoo", "sick"), + e("🥵", "hot", "face", "heat", "sweating"), + e("🥶", "cold", "face", "freezing", "ice"), + e("🥴", "woozy", "face", "groggy"), + e("😵", "face", "with", "crossed", "out", "eyes", "dizzy"), + e("😵‍💫", "face", "with", "spiral", "eyes"), + e("🤯", "exploding", "head", "mind", "blown"), + e("🤠", "cowboy", "hat", "face"), + e("🥳", "partying", "face", "celebration", "birthday"), + e("🥸", "disguised", "face"), + e("😎", "smiling", "face", "with", "sunglasses", "cool"), + e("🤓", "nerd", "face", "geek", "glasses"), + e("🧐", "face", "with", "monocle"), + e("😕", "confused", "face"), + e("🫤", "face", "with", "diagonal", "mouth", "confused"), + e("😟", "worried", "face", "nervous"), + e("🙁", "slightly", "frowning", "face"), + e("☹️", "frowning", "face"), + e("😮", "face", "with", "open", "mouth", "surprise", "impressed", "wow"), + e("😯", "hushed", "face", "silence", "speechless"), + e("😲", "astonished", "face", "amazed", "gasp"), + e("😳", "flushed", "face"), + e("🥺", "pleading", "face", "puppy", "eyes"), + e("🥹", "face", "holding", "back", "tears", "gratitude"), + e("😦", "frowning", "face", "with", "open", "mouth"), + e("😧", "anguished", "face", "stunned"), + e("😨", "fearful", "face", "scared", "shocked", "oops"), + e("😰", "anxious", "face", "with", "sweat", "cold", "nervous"), + e("😥", "sad", "but", "relieved", "face", "disappointed", "phew", "sweat", "nervous"), + e("😢", "crying", "face", "cry", "sad", "tear"), + e("😭", "loudly", "crying", "face", "sob", "sad", "cry", "bawling"), + e("😱", "face", "screaming", "in", "fear", "scream", "horror", "shocked"), + e("😖", "confounded", "face"), + e("😣", "persevering", "face", "persevere", "struggling"), + e("😞", "disappointed", "face", "sad"), + e("😓", "downcast", "face", "with", "sweat"), + e("😩", "weary", "face", "tired"), + e("😫", "tired", "face", "upset", "whine"), + e("🥱", "yawning", "face"), + e("😤", "face", "with", "steam", "from", "nose", "triumph", "smug"), + e("😡", "enraged", "face", "rage", "pout", "angry"), + e("😠", "angry", "face", "mad", "annoyed"), + e("🤬", "face", "with", "symbols", "on", "mouth", "cursing", "foul"), + e("😈", "smiling", "face", "with", "horns", "imp", "devil", "evil"), + e("👿", "angry", "face", "with", "horns", "imp", "devil", "evil"), + e("💀", "skull", "dead", "danger", "poison"), + e("☠️", "skull", "and", "crossbones", "danger", "pirate"), + e("💩", "pile", "of", "poo", "hankey", "poop", "shit", "crap"), + e("🤡", "clown", "face"), + e("👹", "ogre", "japanese", "monster"), + e("👺", "goblin", "japanese"), + e("👻", "ghost", "halloween"), + e("👽", "alien", "ufo"), + e("👾", "alien", "monster", "space", "invader", "game", "retro"), e("🤖", "robot"), - e("😺", "cat", "smile"), - e("😸", "cat", "grin"), - e("😹", "cat", "joy"), - e("😻", "cat", "heart"), - e("😼", "cat", "smirk"), - e("😽", "cat", "kiss"), - e("🙀", "cat", "weary"), - e("😿", "cat", "cry"), - e("😾", "cat", "angry"), - e("🙈", "see", "no", "evil"), - e("🙉", "hear", "no", "evil"), - e("🙊", "speak", "no", "evil"), + e("😺", "grinning", "cat", "smiley"), + e("😸", "grinning", "cat", "with", "smiling", "eyes", "smile"), + e("😹", "cat", "with", "tears", "of", "joy"), + e("😻", "smiling", "cat", "with", "heart", "eyes"), + e("😼", "cat", "with", "wry", "smile", "smirk"), + e("😽", "kissing", "cat"), + e("🙀", "weary", "cat", "scream", "horror"), + e("😿", "crying", "cat", "face", "sad", "tear"), + e("😾", "pouting", "cat"), + e("🙈", "see", "no", "evil", "monkey", "blind", "ignore"), + e("🙉", "hear", "no", "evil", "monkey", "deaf"), + e("🙊", "speak", "no", "evil", "monkey", "mute", "hush"), + e("💌", "love", "letter", "email", "envelope"), + e("💘", "heart", "with", "arrow", "cupid", "love"), + e("💝", "heart", "with", "ribbon", "gift", "chocolates"), + e("💖", "sparkling", "heart"), + e("💗", "growing", "heart", "heartpulse"), + e("💓", "beating", "heart", "heartbeat"), + e("💞", "revolving", "hearts"), + e("💕", "two", "hearts"), + e("💟", "heart", "decoration"), + e("❣️", "heart", "exclamation", "heavy"), + e("💔", "broken", "heart"), + e("❤️‍🔥", "heart", "on", "fire"), + e("❤️‍🩹", "mending", "heart"), e("❤️", "red", "heart", "love"), + e("🩷", "pink", "heart"), e("🧡", "orange", "heart"), e("💛", "yellow", "heart"), e("💚", "green", "heart"), e("💙", "blue", "heart"), + e("🩵", "light", "blue", "heart"), e("💜", "purple", "heart"), - e("🖤", "black", "heart"), - e("🤍", "white", "heart"), e("🤎", "brown", "heart"), - e("❤️‍🔥", "heart", "fire"), - e("❤️‍🩹", "heart", "mending"), - e("💔", "broken", "heart"), - e("💕", "two", "hearts"), - e("💞", "revolving", "hearts"), - e("💓", "heartbeat"), - e("💗", "growing", "heart"), - e("💖", "sparkling", "heart"), - e("💘", "cupid", "heart"), - e("💝", "ribbon", "heart"), - e("💟", "heart", "decoration"), - e("💯", "hundred", "perfect"), - e("💢", "anger"), - e("💥", "boom", "collision"), + e("🖤", "black", "heart"), + e("🩶", "grey", "heart"), + e("🤍", "white", "heart"), + e("💋", "kiss", "mark", "lipstick"), + e("💯", "hundred", "points", "100", "score", "perfect"), + e("💢", "anger", "symbol", "angry"), + e("💥", "collision", "boom", "explode"), e("💫", "dizzy", "star"), - e("💦", "sweat", "droplets"), - e("💨", "dash", "wind"), + e("💦", "sweat", "droplets", "drops", "water", "workout"), + e("💨", "dashing", "away", "dash", "wind", "blow", "fast"), e("🕳️", "hole"), - e("💬", "speech", "bubble"), - e("💭", "thought", "bubble"), - e("🗯️", "angry", "bubble"), - e("💤", "zzz", "sleep"), + e("💬", "speech", "balloon", "comment"), + e("👁️‍🗨️", "eye", "in", "speech", "bubble"), + e("🗨️", "left", "speech", "bubble"), + e("🗯️", "right", "anger", "bubble"), + e("💭", "thought", "balloon", "thinking"), + e("💤", "zzz", "sleeping"), ), ) @@ -236,89 +244,369 @@ internal object EmojiData { icon = "👋", emojis = listOf( - e("👋", "wave", "hello", skin = true), - e("🤚", "raised", "back", "hand", skin = true), - e("🖐️", "hand", "splayed", skin = true), - e("✋", "hand", "stop", skin = true), - e("🖖", "vulcan", "spock", skin = true), - e("🫱", "rightward", "hand", skin = true), - e("🫲", "leftward", "hand", skin = true), - e("🫳", "palm", "down", skin = true), - e("🫴", "palm", "up", skin = true), - e("🫷", "push", "left", skin = true), - e("🫸", "push", "right", skin = true), - e("👌", "ok", "perfect", skin = true), + e("👋", "waving", "hand", "wave", "goodbye", skin = true), + e("🤚", "raised", "back", "of", "hand", skin = true), + e("🖐️", "hand", "with", "fingers", "splayed", "raised", skin = true), + e("✋", "raised", "hand", "highfive", "stop", skin = true), + e("🖖", "vulcan", "salute", "prosper", "spock", skin = true), + e("🫱", "rightwards", "hand", skin = true), + e("🫲", "leftwards", "hand", skin = true), + e("🫳", "palm", "down", "hand", skin = true), + e("🫴", "palm", "up", "hand", skin = true), + e("🫷", "leftwards", "pushing", "hand", skin = true), + e("🫸", "rightwards", "pushing", "hand", skin = true), + e("👌", "ok", "hand", skin = true), e("🤌", "pinched", "fingers", skin = true), e("🤏", "pinching", "hand", skin = true), - e("✌️", "peace", "victory", skin = true), - e("🤞", "crossed", "fingers", skin = true), - e("🫰", "hand", "index", "thumb", skin = true), - e("🤟", "love", "you", skin = true), - e("🤘", "rock", "metal", skin = true), - e("🤙", "call", "shaka", skin = true), - e("👈", "point", "left", skin = true), - e("👉", "point", "right", skin = true), - e("👆", "point", "up", skin = true), - e("🖕", "middle", "finger", skin = true), - e("👇", "point", "down", skin = true), - e("☝️", "point", "up", skin = true), - e("🫵", "point", "you", skin = true), - e("👍", "thumbs", "up", "like", skin = true), - e("👎", "thumbs", "down", "dislike", skin = true), - e("✊", "fist", "raised", skin = true), - e("👊", "punch", "fist", skin = true), - e("🤛", "fist", "left", skin = true), - e("🤜", "fist", "right", skin = true), - e("👏", "clap", skin = true), - e("🙌", "raised", "hands", skin = true), - e("🫶", "heart", "hands", skin = true), + e("✌️", "victory", "hand", "v", "peace", skin = true), + e("🤞", "crossed", "fingers", "luck", "hopeful", skin = true), + e("🫰", "hand", "with", "index", "finger", "and", "thumb", "crossed", skin = true), + e("🤟", "love", "you", "gesture", skin = true), + e("🤘", "sign", "of", "the", "horns", "metal", skin = true), + e("🤙", "call", "me", "hand", skin = true), + e("👈", "backhand", "index", "pointing", "left", "point", skin = true), + e("👉", "backhand", "index", "pointing", "right", "point", skin = true), + e("👆", "backhand", "index", "pointing", "up", "point", "2", skin = true), + e("🖕", "middle", "finger", "fu", skin = true), + e("👇", "backhand", "index", "pointing", "down", "point", skin = true), + e("☝️", "index", "pointing", "up", "point", skin = true), + e("🫵", "index", "pointing", "at", "the", "viewer", skin = true), + e("👍", "thumbs", "up", "thumbsup", "approve", "ok", skin = true), + e("👎", "thumbs", "down", "thumbsdown", "disapprove", "bury", skin = true), + e("✊", "raised", "fist", "power", skin = true), + e("👊", "oncoming", "fist", "facepunch", "punch", "attack", skin = true), + e("🤛", "left", "facing", "fist", skin = true), + e("🤜", "right", "facing", "fist", skin = true), + e("👏", "clapping", "hands", "clap", "praise", "applause", skin = true), + e("🙌", "raising", "hands", "raised", "hooray", skin = true), + e("🫶", "heart", "hands", "love", skin = true), e("👐", "open", "hands", skin = true), - e("🤲", "palms", "up", skin = true), - e("🤝", "handshake"), - e("🙏", "pray", "please", "thanks", skin = true), - e("✍️", "writing", skin = true), - e("💅", "nail", "polish", skin = true), + e("🤲", "palms", "up", "together", skin = true), + e("🤝", "handshake", "deal", skin = true), + e("🙏", "folded", "hands", "pray", "please", "hope", "wish", skin = true), + e("✍️", "writing", "hand", skin = true), + e("💅", "nail", "polish", "care", "beauty", "manicure", skin = true), e("🤳", "selfie", skin = true), - e("💪", "muscle", "strong", skin = true), + e("💪", "flexed", "biceps", "muscle", "flex", "bicep", "strong", "workout", skin = true), e("🦾", "mechanical", "arm"), e("🦿", "mechanical", "leg"), e("🦵", "leg", skin = true), e("🦶", "foot", skin = true), - e("👂", "ear", skin = true), - e("🦻", "ear", "hearing", skin = true), - e("👃", "nose", skin = true), + e("👂", "ear", "hear", "sound", "listen", skin = true), + e("🦻", "ear", "with", "hearing", "aid", skin = true), + e("👃", "nose", "smell", skin = true), e("🧠", "brain"), e("🫀", "anatomical", "heart"), e("🫁", "lungs"), e("🦷", "tooth"), e("🦴", "bone"), - e("👀", "eyes", "look"), + e("👀", "eyes", "look", "see", "watch"), e("👁️", "eye"), - e("👅", "tongue"), - e("👄", "lips", "mouth"), + e("👅", "tongue", "taste"), + e("👄", "mouth", "lips", "kiss"), e("🫦", "biting", "lip"), - e("👶", "baby", skin = true), + e("👶", "baby", "child", "newborn", skin = true), e("🧒", "child", skin = true), - e("👦", "boy", skin = true), - e("👧", "girl", skin = true), + e("👦", "boy", "child", skin = true), + e("👧", "girl", "child", skin = true), e("🧑", "person", "adult", skin = true), - e("👱", "blond", skin = true), - e("👨", "man", skin = true), - e("🧔", "beard", skin = true), - e("👩", "woman", skin = true), - e("🧓", "older", "person", skin = true), - e("👴", "old", "man", skin = true), - e("👵", "old", "woman", skin = true), - e("🙍", "frown", "person", skin = true), - e("🙎", "pout", "person", skin = true), - e("🙅", "no", "gesture", skin = true), - e("🙆", "ok", "gesture", skin = true), - e("💁", "tipping", "hand", skin = true), - e("🙋", "raising", "hand", skin = true), + e("👱", "blond", "hair", "haired", "person", skin = true), + e("👨", "man", "mustache", "father", "dad", skin = true), + e("🧔", "beard", "bearded", "person", skin = true), + e("🧔‍♂️", "beard", "man", skin = true), + e("🧔‍♀️", "beard", "woman", skin = true), + e("👨‍🦰", "red", "hair", "haired", "man", skin = true), + e("👨‍🦱", "curly", "hair", "haired", "man", skin = true), + e("👨‍🦳", "white", "hair", "haired", "man", skin = true), + e("👨‍🦲", "bald", "man", skin = true), + e("👩", "woman", "girls", skin = true), + e("👩‍🦰", "red", "hair", "haired", "woman", skin = true), + e("🧑‍🦰", "red", "hair", "person", skin = true), + e("👩‍🦱", "curly", "hair", "haired", "woman", skin = true), + e("🧑‍🦱", "curly", "hair", "person", skin = true), + e("👩‍🦳", "white", "hair", "haired", "woman", skin = true), + e("🧑‍🦳", "white", "hair", "person", skin = true), + e("👩‍🦲", "bald", "woman", skin = true), + e("🧑‍🦲", "bald", "person", skin = true), + e("👱‍♀️", "blond", "hair", "haired", "woman", "blonde", skin = true), + e("👱‍♂️", "blond", "hair", "haired", "man", skin = true), + e("🧓", "older", "person", "adult", skin = true), + e("👴", "old", "man", "older", skin = true), + e("👵", "old", "woman", "older", skin = true), + e("🙍", "person", "frowning", skin = true), + e("🙍‍♂️", "man", "frowning", skin = true), + e("🙍‍♀️", "woman", "frowning", skin = true), + e("🙎", "person", "pouting", "face", skin = true), + e("🙎‍♂️", "man", "pouting", skin = true), + e("🙎‍♀️", "woman", "pouting", skin = true), + e("🙅", "person", "gesturing", "no", "good", "stop", "halt", "denied", skin = true), + e("🙅‍♂️", "man", "gesturing", "no", "good", "ng", "stop", "halt", "denied", skin = true), + e("🙅‍♀️", "woman", "gesturing", "no", "good", "ng", "stop", "halt", "denied", skin = true), + e("🙆", "person", "gesturing", "ok", skin = true), + e("🙆‍♂️", "man", "gesturing", "ok", skin = true), + e("🙆‍♀️", "woman", "gesturing", "ok", skin = true), + e("💁", "person", "tipping", "hand", "information", "desk", skin = true), + e("💁‍♂️", "man", "tipping", "hand", "sassy", "information", skin = true), + e("💁‍♀️", "woman", "tipping", "hand", "sassy", "information", skin = true), + e("🙋", "person", "raising", "hand", skin = true), + e("🙋‍♂️", "man", "raising", "hand", skin = true), + e("🙋‍♀️", "woman", "raising", "hand", skin = true), e("🧏", "deaf", "person", skin = true), - e("🙇", "bow", skin = true), - e("🤦", "facepalm", skin = true), - e("🤷", "shrug", skin = true), + e("🧏‍♂️", "deaf", "man", skin = true), + e("🧏‍♀️", "deaf", "woman", skin = true), + e("🙇", "person", "bowing", "bow", "respect", "thanks", skin = true), + e("🙇‍♂️", "man", "bowing", "respect", "thanks", skin = true), + e("🙇‍♀️", "woman", "bowing", "respect", "thanks", skin = true), + e("🤦", "person", "facepalming", "facepalm", skin = true), + e("🤦‍♂️", "man", "facepalming", skin = true), + e("🤦‍♀️", "woman", "facepalming", skin = true), + e("🤷", "person", "shrugging", "shrug", skin = true), + e("🤷‍♂️", "man", "shrugging", skin = true), + e("🤷‍♀️", "woman", "shrugging", skin = true), + e("🧑‍⚕️", "health", "worker", skin = true), + e("👨‍⚕️", "man", "health", "worker", "doctor", "nurse", skin = true), + e("👩‍⚕️", "woman", "health", "worker", "doctor", "nurse", skin = true), + e("🧑‍🎓", "student", skin = true), + e("👨‍🎓", "man", "student", "graduation", skin = true), + e("👩‍🎓", "woman", "student", "graduation", skin = true), + e("🧑‍🏫", "teacher", skin = true), + e("👨‍🏫", "man", "teacher", "school", "professor", skin = true), + e("👩‍🏫", "woman", "teacher", "school", "professor", skin = true), + e("🧑‍⚖️", "judge", skin = true), + e("👨‍⚖️", "man", "judge", "justice", skin = true), + e("👩‍⚖️", "woman", "judge", "justice", skin = true), + e("🧑‍🌾", "farmer", skin = true), + e("👨‍🌾", "man", "farmer", skin = true), + e("👩‍🌾", "woman", "farmer", skin = true), + e("🧑‍🍳", "cook", skin = true), + e("👨‍🍳", "man", "cook", "chef", skin = true), + e("👩‍🍳", "woman", "cook", "chef", skin = true), + e("🧑‍🔧", "mechanic", skin = true), + e("👨‍🔧", "man", "mechanic", skin = true), + e("👩‍🔧", "woman", "mechanic", skin = true), + e("🧑‍🏭", "factory", "worker", skin = true), + e("👨‍🏭", "man", "factory", "worker", skin = true), + e("👩‍🏭", "woman", "factory", "worker", skin = true), + e("🧑‍💼", "office", "worker", skin = true), + e("👨‍💼", "man", "office", "worker", "business", skin = true), + e("👩‍💼", "woman", "office", "worker", "business", skin = true), + e("🧑‍🔬", "scientist", skin = true), + e("👨‍🔬", "man", "scientist", "research", skin = true), + e("👩‍🔬", "woman", "scientist", "research", skin = true), + e("🧑‍💻", "technologist", skin = true), + e("👨‍💻", "man", "technologist", "coder", skin = true), + e("👩‍💻", "woman", "technologist", "coder", skin = true), + e("🧑‍🎤", "singer", skin = true), + e("👨‍🎤", "man", "singer", "rockstar", skin = true), + e("👩‍🎤", "woman", "singer", "rockstar", skin = true), + e("🧑‍🎨", "artist", skin = true), + e("👨‍🎨", "man", "artist", "painter", skin = true), + e("👩‍🎨", "woman", "artist", "painter", skin = true), + e("🧑‍✈️", "pilot", skin = true), + e("👨‍✈️", "man", "pilot", skin = true), + e("👩‍✈️", "woman", "pilot", skin = true), + e("🧑‍🚀", "astronaut", skin = true), + e("👨‍🚀", "man", "astronaut", "space", skin = true), + e("👩‍🚀", "woman", "astronaut", "space", skin = true), + e("🧑‍🚒", "firefighter", skin = true), + e("👨‍🚒", "man", "firefighter", skin = true), + e("👩‍🚒", "woman", "firefighter", skin = true), + e("👮", "police", "officer", "cop", "law", skin = true), + e("👮‍♂️", "man", "police", "officer", "policeman", "law", "cop", skin = true), + e("👮‍♀️", "woman", "police", "officer", "policewoman", "law", "cop", skin = true), + e("🕵️", "detective", "sleuth", skin = true), + e("🕵️‍♂️", "man", "detective", "male", "sleuth", skin = true), + e("🕵️‍♀️", "woman", "detective", "female", "sleuth", skin = true), + e("💂", "guard", skin = true), + e("💂‍♂️", "man", "guard", "guardsman", skin = true), + e("💂‍♀️", "woman", "guard", "guardswoman", skin = true), + e("🥷", "ninja", skin = true), + e("👷", "construction", "worker", "helmet", skin = true), + e("👷‍♂️", "man", "construction", "worker", "helmet", skin = true), + e("👷‍♀️", "woman", "construction", "worker", "helmet", skin = true), + e("🫅", "person", "with", "crown", skin = true), + e("🤴", "prince", "crown", "royal", skin = true), + e("👸", "princess", "crown", "royal", skin = true), + e("👳", "person", "wearing", "turban", "with", skin = true), + e("👳‍♂️", "man", "wearing", "turban", "with", skin = true), + e("👳‍♀️", "woman", "wearing", "turban", "with", skin = true), + e("👲", "person", "with", "skullcap", "man", "gua", "pi", "mao", skin = true), + e("🧕", "woman", "with", "headscarf", "hijab", skin = true), + e("🤵", "person", "in", "tuxedo", "groom", "marriage", "wedding", skin = true), + e("🤵‍♂️", "man", "in", "tuxedo", skin = true), + e("🤵‍♀️", "woman", "in", "tuxedo", skin = true), + e("👰", "person", "with", "veil", "marriage", "wedding", skin = true), + e("👰‍♂️", "man", "with", "veil", skin = true), + e("👰‍♀️", "woman", "with", "veil", "bride", skin = true), + e("🤰", "pregnant", "woman", skin = true), + e("🫃", "pregnant", "man", skin = true), + e("🫄", "pregnant", "person", skin = true), + e("🤱", "breast", "feeding", "nursing", skin = true), + e("👩‍🍼", "woman", "feeding", "baby", skin = true), + e("👨‍🍼", "man", "feeding", "baby", skin = true), + e("🧑‍🍼", "person", "feeding", "baby", skin = true), + e("👼", "baby", "angel", skin = true), + e("🎅", "santa", "claus", "christmas", skin = true), + e("🤶", "claus", "mrs", "santa", skin = true), + e("🧑‍🎄", "mx", "claus", skin = true), + e("🦸", "superhero", skin = true), + e("🦸‍♂️", "man", "superhero", skin = true), + e("🦸‍♀️", "woman", "superhero", skin = true), + e("🦹", "supervillain", skin = true), + e("🦹‍♂️", "man", "supervillain", skin = true), + e("🦹‍♀️", "woman", "supervillain", skin = true), + e("🧙", "mage", "wizard", skin = true), + e("🧙‍♂️", "man", "mage", "wizard", skin = true), + e("🧙‍♀️", "woman", "mage", "wizard", skin = true), + e("🧚", "fairy", skin = true), + e("🧚‍♂️", "man", "fairy", skin = true), + e("🧚‍♀️", "woman", "fairy", skin = true), + e("🧛", "vampire", skin = true), + e("🧛‍♂️", "man", "vampire", skin = true), + e("🧛‍♀️", "woman", "vampire", skin = true), + e("🧜", "merperson", skin = true), + e("🧜‍♂️", "merman", skin = true), + e("🧜‍♀️", "mermaid", skin = true), + e("🧝", "elf", skin = true), + e("🧝‍♂️", "man", "elf", skin = true), + e("🧝‍♀️", "woman", "elf", skin = true), + e("🧞", "genie"), + e("🧞‍♂️", "man", "genie"), + e("🧞‍♀️", "woman", "genie"), + e("🧟", "zombie"), + e("🧟‍♂️", "man", "zombie"), + e("🧟‍♀️", "woman", "zombie"), + e("🧌", "troll"), + e("💆", "person", "getting", "massage", "spa", skin = true), + e("💆‍♂️", "man", "getting", "massage", "spa", skin = true), + e("💆‍♀️", "woman", "getting", "massage", "spa", skin = true), + e("💇", "person", "getting", "haircut", "beauty", skin = true), + e("💇‍♂️", "man", "getting", "haircut", skin = true), + e("💇‍♀️", "woman", "getting", "haircut", skin = true), + e("🚶", "person", "walking", skin = true), + e("🚶‍♂️", "man", "walking", skin = true), + e("🚶‍♀️", "woman", "walking", skin = true), + e("🧍", "person", "standing", skin = true), + e("🧍‍♂️", "man", "standing", skin = true), + e("🧍‍♀️", "woman", "standing", skin = true), + e("🧎", "person", "kneeling", skin = true), + e("🧎‍♂️", "man", "kneeling", skin = true), + e("🧎‍♀️", "woman", "kneeling", skin = true), + e("🧑‍🦯", "person", "with", "white", "cane", "probing", skin = true), + e("👨‍🦯", "man", "with", "white", "cane", "probing", skin = true), + e("👩‍🦯", "woman", "with", "white", "cane", "probing", skin = true), + e("🧑‍🦼", "person", "in", "motorized", "wheelchair", skin = true), + e("👨‍🦼", "man", "in", "motorized", "wheelchair", skin = true), + e("👩‍🦼", "woman", "in", "motorized", "wheelchair", skin = true), + e("🧑‍🦽", "person", "in", "manual", "wheelchair", skin = true), + e("👨‍🦽", "man", "in", "manual", "wheelchair", skin = true), + e("👩‍🦽", "woman", "in", "manual", "wheelchair", skin = true), + e("🏃", "person", "running", "runner", "exercise", "workout", "marathon", skin = true), + e("🏃‍♂️", "man", "running", "exercise", "workout", "marathon", skin = true), + e("🏃‍♀️", "woman", "running", "exercise", "workout", "marathon", skin = true), + e("💃", "woman", "dancing", "dancer", "dress", skin = true), + e("🕺", "man", "dancing", "dancer", skin = true), + e("🕴️", "person", "in", "suit", "levitating", "business", skin = true), + e("👯", "people", "with", "bunny", "ears", "dancers"), + e("👯‍♂️", "men", "with", "bunny", "ears", "dancing"), + e("👯‍♀️", "women", "with", "bunny", "ears", "dancing"), + e("🧖", "person", "in", "steamy", "room", "sauna", skin = true), + e("🧖‍♂️", "man", "in", "steamy", "room", "sauna", skin = true), + e("🧖‍♀️", "woman", "in", "steamy", "room", "sauna", skin = true), + e("🧗", "person", "climbing", "bouldering", skin = true), + e("🧗‍♂️", "man", "climbing", "bouldering", skin = true), + e("🧗‍♀️", "woman", "climbing", "bouldering", skin = true), + e("🤺", "person", "fencing"), + e("🏇", "horse", "racing", skin = true), + e("⛷️", "skier"), + e("🏂", "snowboarder", skin = true), + e("🏌️", "person", "golfing", skin = true), + e("🏌️‍♂️", "man", "golfing", skin = true), + e("🏌️‍♀️", "woman", "golfing", skin = true), + e("🏄", "person", "surfing", "surfer", skin = true), + e("🏄‍♂️", "man", "surfing", skin = true), + e("🏄‍♀️", "woman", "surfing", skin = true), + e("🚣", "person", "rowing", "boat", "rowboat", skin = true), + e("🚣‍♂️", "man", "rowing", "boat", skin = true), + e("🚣‍♀️", "woman", "rowing", "boat", skin = true), + e("🏊", "person", "swimming", "swimmer", skin = true), + e("🏊‍♂️", "man", "swimming", skin = true), + e("🏊‍♀️", "woman", "swimming", skin = true), + e("⛹️", "person", "bouncing", "ball", "basketball", skin = true), + e("⛹️‍♂️", "man", "bouncing", "ball", "basketball", skin = true), + e("⛹️‍♀️", "woman", "bouncing", "ball", "basketball", skin = true), + e("🏋️", "person", "lifting", "weights", "weight", "gym", "workout", skin = true), + e("🏋️‍♂️", "man", "lifting", "weights", "weight", "gym", "workout", skin = true), + e("🏋️‍♀️", "woman", "lifting", "weights", "weight", "gym", "workout", skin = true), + e("🚴", "person", "biking", "bicyclist", skin = true), + e("🚴‍♂️", "man", "biking", skin = true), + e("🚴‍♀️", "woman", "biking", skin = true), + e("🚵", "person", "mountain", "biking", "bicyclist", skin = true), + e("🚵‍♂️", "man", "mountain", "biking", skin = true), + e("🚵‍♀️", "woman", "mountain", "biking", skin = true), + e("🤸", "person", "cartwheeling", skin = true), + e("🤸‍♂️", "man", "cartwheeling", skin = true), + e("🤸‍♀️", "woman", "cartwheeling", skin = true), + e("🤼", "people", "wrestling"), + e("🤼‍♂️", "men", "wrestling"), + e("🤼‍♀️", "women", "wrestling"), + e("🤽", "person", "playing", "water", "polo", skin = true), + e("🤽‍♂️", "man", "playing", "water", "polo", skin = true), + e("🤽‍♀️", "woman", "playing", "water", "polo", skin = true), + e("🤾", "person", "playing", "handball", skin = true), + e("🤾‍♂️", "man", "playing", "handball", skin = true), + e("🤾‍♀️", "woman", "playing", "handball", skin = true), + e("🤹", "person", "juggling", skin = true), + e("🤹‍♂️", "man", "juggling", skin = true), + e("🤹‍♀️", "woman", "juggling", skin = true), + e("🧘", "person", "in", "lotus", "position", "meditation", skin = true), + e("🧘‍♂️", "man", "in", "lotus", "position", "meditation", skin = true), + e("🧘‍♀️", "woman", "in", "lotus", "position", "meditation", skin = true), + e("🛀", "person", "taking", "bath", "shower", skin = true), + e("🛌", "person", "in", "bed", "sleeping", skin = true), + e("🧑‍🤝‍🧑", "people", "holding", "hands", "couple", "date", skin = true), + e("👭", "women", "holding", "hands", "two", "couple", "date", skin = true), + e("👫", "woman", "and", "man", "holding", "hands", "couple", "date", skin = true), + e("👬", "men", "holding", "hands", "two", "couple", "date", skin = true), + e("💏", "kiss", "couplekiss", skin = true), + e("👩‍❤️‍💋‍👨", "man", "couplekiss", "woman", skin = true), + e("👨‍❤️‍💋‍👨", "man", "couplekiss", skin = true), + e("👩‍❤️‍💋‍👩", "woman", "couplekiss", skin = true), + e("💑", "couple", "with", "heart", skin = true), + e("👩‍❤️‍👨", "couple", "with", "man", "heart", "woman", skin = true), + e("👨‍❤️‍👨", "couple", "with", "man", "heart", skin = true), + e("👩‍❤️‍👩", "couple", "with", "woman", "heart", skin = true), + e("👪", "family", "home", "parents", "child"), + e("👨‍👩‍👦", "boy", "family", "man", "woman"), + e("👨‍👩‍👧", "girl", "family", "man", "woman"), + e("👨‍👩‍👧‍👦", "boy", "family", "man", "woman", "girl"), + e("👨‍👩‍👦‍👦", "boy", "family", "man", "woman"), + e("👨‍👩‍👧‍👧", "girl", "family", "man", "woman"), + e("👨‍👨‍👦", "boy", "family", "man"), + e("👨‍👨‍👧", "girl", "family", "man"), + e("👨‍👨‍👧‍👦", "boy", "family", "man", "girl"), + e("👨‍👨‍👦‍👦", "boy", "family", "man"), + e("👨‍👨‍👧‍👧", "girl", "family", "man"), + e("👩‍👩‍👦", "boy", "family", "woman"), + e("👩‍👩‍👧", "girl", "family", "woman"), + e("👩‍👩‍👧‍👦", "boy", "family", "woman", "girl"), + e("👩‍👩‍👦‍👦", "boy", "family", "woman"), + e("👩‍👩‍👧‍👧", "girl", "family", "woman"), + e("👨‍👦", "boy", "family", "man"), + e("👨‍👦‍👦", "boy", "family", "man"), + e("👨‍👧", "girl", "family", "man"), + e("👨‍👧‍👦", "boy", "family", "man", "girl"), + e("👨‍👧‍👧", "girl", "family", "man"), + e("👩‍👦", "boy", "family", "woman"), + e("👩‍👦‍👦", "boy", "family", "woman"), + e("👩‍👧", "girl", "family", "woman"), + e("👩‍👧‍👦", "boy", "family", "woman", "girl"), + e("👩‍👧‍👧", "girl", "family", "woman"), + e("🗣️", "speaking", "head"), + e("👤", "bust", "in", "silhouette", "user"), + e("👥", "busts", "in", "silhouette", "users", "group", "team"), + e("🫂", "people", "hugging"), + e("👣", "footprints", "feet", "tracks"), ), ) @@ -327,192 +615,158 @@ internal object EmojiData { icon = "🐾", emojis = listOf( - e("🐶", "dog", "puppy"), - e("🐱", "cat", "kitten"), - e("🐭", "mouse"), - e("🐹", "hamster"), - e("🐰", "rabbit", "bunny"), - e("🦊", "fox"), - e("🐻", "bear"), - e("🐼", "panda"), - e("🐻‍❄️", "polar", "bear"), - e("🐨", "koala"), - e("🐯", "tiger"), - e("🦁", "lion"), - e("🐮", "cow"), - e("🐷", "pig"), - e("🐸", "frog"), - e("🐵", "monkey"), - e("🐔", "chicken"), - e("🐧", "penguin"), - e("🐦", "bird"), - e("🐤", "chick"), - e("🦆", "duck"), - e("🦅", "eagle"), - e("🦉", "owl"), - e("🦇", "bat"), - e("🐺", "wolf"), - e("🐗", "boar"), - e("🐴", "horse"), - e("🦄", "unicorn"), - e("🐝", "bee", "honeybee"), - e("🪱", "worm"), - e("🐛", "bug"), - e("🦋", "butterfly"), - e("🐌", "snail"), - e("🐞", "ladybug"), - e("🐜", "ant"), - e("🪰", "fly"), - e("🪲", "beetle"), - e("🪳", "cockroach"), - e("🦟", "mosquito"), - e("🦗", "cricket"), - e("🕷️", "spider"), - e("🦂", "scorpion"), - e("🐢", "turtle"), - e("🐍", "snake"), - e("🦎", "lizard"), - e("🦖", "dinosaur"), - e("🦕", "sauropod"), - e("🐙", "octopus"), - e("🦑", "squid"), - e("🦐", "shrimp"), - e("🦞", "lobster"), - e("🦀", "crab"), - e("🐡", "blowfish"), - e("🐠", "tropical", "fish"), - e("🐟", "fish"), - e("🐬", "dolphin"), - e("🐳", "whale"), - e("🐋", "whale"), - e("🦈", "shark"), - e("🦭", "seal"), - e("🐊", "crocodile"), - e("🐅", "tiger"), - e("🐆", "leopard"), - e("🦓", "zebra"), + e("🐵", "monkey", "face"), + e("🐒", "monkey"), e("🦍", "gorilla"), e("🦧", "orangutan"), - e("🐘", "elephant"), - e("🦬", "bison"), - e("🦛", "hippo"), - e("🦏", "rhino"), - e("🐪", "camel"), - e("🐫", "camel", "two", "humps"), - e("🦒", "giraffe"), - e("🦘", "kangaroo"), - e("🐃", "water", "buffalo"), - e("🐂", "ox"), - e("🐄", "cow"), - e("🐎", "horse", "racing"), - e("🐖", "pig"), - e("🐏", "ram"), - e("🐑", "sheep"), - e("🦙", "llama"), - e("🐐", "goat"), - e("🦌", "deer"), - e("🐕", "dog"), - e("🐩", "poodle"), + e("🐶", "dog", "face", "pet"), + e("🐕", "dog", "dog2"), e("🦮", "guide", "dog"), e("🐕‍🦺", "service", "dog"), - e("🐈", "cat"), + e("🐩", "poodle", "dog"), + e("🐺", "wolf"), + e("🦊", "fox", "face"), + e("🦝", "raccoon"), + e("🐱", "cat", "face", "pet"), + e("🐈", "cat", "cat2"), e("🐈‍⬛", "black", "cat"), + e("🦁", "lion"), + e("🐯", "tiger", "face"), + e("🐅", "tiger", "tiger2"), + e("🐆", "leopard"), + e("🐴", "horse", "face"), + e("🫎", "moose", "canada"), + e("🫏", "donkey", "mule"), + e("🐎", "horse", "racehorse", "speed"), + e("🦄", "unicorn"), + e("🦓", "zebra"), + e("🦌", "deer"), + e("🦬", "bison"), + e("🐮", "cow", "face"), + e("🐂", "ox"), + e("🐃", "water", "buffalo"), + e("🐄", "cow", "cow2"), + e("🐷", "pig", "face"), + e("🐖", "pig", "pig2"), + e("🐗", "boar"), + e("🐽", "pig", "nose"), + e("🐏", "ram"), + e("🐑", "ewe", "sheep"), + e("🐐", "goat"), + e("🐪", "camel", "dromedary", "desert"), + e("🐫", "two", "hump", "camel"), + e("🦙", "llama"), + e("🦒", "giraffe"), + e("🐘", "elephant"), + e("🦣", "mammoth"), + e("🦏", "rhinoceros"), + e("🦛", "hippopotamus"), + e("🐭", "mouse", "face"), + e("🐁", "mouse", "mouse2"), + e("🐀", "rat"), + e("🐹", "hamster", "pet"), + e("🐰", "rabbit", "face", "bunny"), + e("🐇", "rabbit", "rabbit2"), + e("🐿️", "chipmunk"), + e("🦫", "beaver"), + e("🦔", "hedgehog"), + e("🦇", "bat"), + e("🐻", "bear"), + e("🐻‍❄️", "polar", "bear"), + e("🐨", "koala"), + e("🐼", "panda", "face"), + e("🦥", "sloth"), + e("🦦", "otter"), + e("🦨", "skunk"), + e("🦘", "kangaroo"), + e("🦡", "badger"), + e("🐾", "paw", "prints", "feet"), + e("🦃", "turkey", "thanksgiving"), + e("🐔", "chicken"), e("🐓", "rooster"), - e("🦃", "turkey"), + e("🐣", "hatching", "chick"), + e("🐤", "baby", "chick"), + e("🐥", "front", "facing", "baby", "chick", "hatched"), + e("🐦", "bird"), + e("🐧", "penguin"), + e("🕊️", "dove", "peace"), + e("🦅", "eagle"), + e("🦆", "duck"), + e("🦢", "swan"), + e("🦉", "owl"), e("🦤", "dodo"), + e("🪶", "feather"), + e("🦩", "flamingo"), e("🦚", "peacock"), e("🦜", "parrot"), - e("🦢", "swan"), - e("🦩", "flamingo"), - e("🕊️", "dove", "peace"), - e("🐇", "rabbit"), - e("🦝", "raccoon"), - e("🦨", "skunk"), - e("🦡", "badger"), - e("🦫", "beaver"), - e("🦦", "otter"), - e("🦥", "sloth"), - e("🐁", "mouse"), - e("🐀", "rat"), - e("🐿️", "chipmunk"), - e("🦔", "hedgehog"), - e("🌵", "cactus"), - e("🎄", "christmas", "tree"), - e("🌲", "evergreen", "tree"), - e("🌳", "deciduous", "tree"), + e("🪽", "wing", "fly"), + e("🐦‍⬛", "black", "bird"), + e("🪿", "goose", "honk"), + e("🐸", "frog"), + e("🐊", "crocodile"), + e("🐢", "turtle", "slow"), + e("🦎", "lizard"), + e("🐍", "snake"), + e("🐲", "dragon", "face"), + e("🐉", "dragon"), + e("🦕", "sauropod", "dinosaur"), + e("🦖", "t", "rex", "dinosaur"), + e("🐳", "spouting", "whale", "sea"), + e("🐋", "whale", "whale2"), + e("🐬", "dolphin", "flipper"), + e("🦭", "seal"), + e("🐟", "fish"), + e("🐠", "tropical", "fish"), + e("🐡", "blowfish"), + e("🦈", "shark"), + e("🐙", "octopus"), + e("🐚", "spiral", "shell", "sea", "beach"), + e("🪸", "coral"), + e("🪼", "jellyfish"), + e("🐌", "snail", "slow"), + e("🦋", "butterfly"), + e("🐛", "bug"), + e("🐜", "ant"), + e("🐝", "honeybee", "bee"), + e("🪲", "beetle"), + e("🐞", "lady", "beetle", "bug"), + e("🦗", "cricket"), + e("🪳", "cockroach"), + e("🕷️", "spider"), + e("🕸️", "spider", "web"), + e("🦂", "scorpion"), + e("🦟", "mosquito"), + e("🪰", "fly"), + e("🪱", "worm"), + e("🦠", "microbe", "germ"), + e("💐", "bouquet", "flowers"), + e("🌸", "cherry", "blossom", "flower", "spring"), + e("💮", "white", "flower"), + e("🪷", "lotus"), + e("🏵️", "rosette"), + e("🌹", "rose", "flower"), + e("🥀", "wilted", "flower"), + e("🌺", "hibiscus"), + e("🌻", "sunflower"), + e("🌼", "blossom"), + e("🌷", "tulip", "flower"), + e("🪻", "hyacinth"), + e("🌱", "seedling", "plant"), + e("🪴", "potted", "plant"), + e("🌲", "evergreen", "tree", "wood"), + e("🌳", "deciduous", "tree", "wood"), e("🌴", "palm", "tree"), - e("🪵", "wood", "log"), - e("🌱", "seedling", "sprout"), + e("🌵", "cactus"), + e("🌾", "sheaf", "of", "rice", "ear"), e("🌿", "herb"), e("☘️", "shamrock"), - e("🍀", "four", "leaf", "clover"), - e("🎍", "bamboo"), - e("🪴", "potted", "plant"), - e("🎋", "tanabata", "tree"), - e("🍃", "leaf", "wind"), - e("🍂", "fallen", "leaf"), - e("🍁", "maple", "leaf"), - e("🪺", "nest", "eggs"), - e("🪹", "nest"), - e("🍄", "mushroom"), - e("🌾", "rice", "sheaf"), - e("💐", "bouquet", "flowers"), - e("🌷", "tulip"), - e("🌹", "rose"), - e("🥀", "wilted", "flower"), - e("🪻", "hyacinth"), - e("🌺", "hibiscus"), - e("🌸", "cherry", "blossom"), - e("🌼", "blossom"), - e("🌻", "sunflower"), - e("🌞", "sun", "face"), - e("🌝", "moon", "face"), - e("🌛", "moon", "quarter"), - e("🌜", "moon", "quarter"), - e("🌚", "new", "moon"), - e("🌕", "full", "moon"), - e("🌖", "waning", "moon"), - e("🌗", "last", "quarter"), - e("🌘", "waning", "crescent"), - e("🌑", "new", "moon"), - e("🌒", "waxing", "crescent"), - e("🌓", "first", "quarter"), - e("🌔", "waxing", "moon"), - e("🌙", "crescent", "moon"), - e("🌎", "earth", "americas"), - e("🌍", "earth", "africa"), - e("🌏", "earth", "asia"), - e("🪐", "saturn", "planet"), - e("💫", "dizzy", "star"), - e("⭐", "star"), - e("🌟", "glowing", "star"), - e("✨", "sparkles"), - e("⚡", "lightning", "zap"), - e("☄️", "comet"), - e("💥", "collision", "boom"), - e("🔥", "fire", "hot"), - e("🌪️", "tornado"), - e("🌈", "rainbow"), - e("☀️", "sun"), - e("🌤️", "sun", "cloud"), - e("⛅", "partly", "cloudy"), - e("🌥️", "mostly", "cloudy"), - e("☁️", "cloud"), - e("🌦️", "rain", "sun"), - e("🌧️", "rain"), - e("⛈️", "thunderstorm"), - e("🌩️", "lightning"), - e("🌨️", "snow"), - e("❄️", "snowflake"), - e("☃️", "snowman"), - e("⛄", "snowman"), - e("🌬️", "wind"), - e("💨", "dash", "wind"), - e("🌫️", "fog"), - e("🌊", "wave", "ocean"), - e("💧", "droplet"), - e("💦", "sweat", "splash"), - e("☔", "umbrella", "rain"), + e("🍀", "four", "leaf", "clover", "luck"), + e("🍁", "maple", "leaf", "canada"), + e("🍂", "fallen", "leaf", "autumn"), + e("🍃", "leaf", "fluttering", "in", "wind", "leaves"), + e("🪹", "empty", "nest"), + e("🪺", "nest", "with", "eggs"), + e("🍄", "mushroom", "fungus"), ), ) @@ -524,28 +778,28 @@ internal object EmojiData { e("🍇", "grapes"), e("🍈", "melon"), e("🍉", "watermelon"), - e("🍊", "orange", "tangerine"), + e("🍊", "tangerine", "orange", "mandarin"), e("🍋", "lemon"), - e("🍌", "banana"), + e("🍌", "banana", "fruit"), e("🍍", "pineapple"), e("🥭", "mango"), - e("🍎", "apple", "red"), - e("🍏", "apple", "green"), + e("🍎", "red", "apple"), + e("🍏", "green", "apple", "fruit"), e("🍐", "pear"), e("🍑", "peach"), - e("🍒", "cherries"), - e("🍓", "strawberry"), + e("🍒", "cherries", "fruit"), + e("🍓", "strawberry", "fruit"), e("🫐", "blueberries"), - e("🥝", "kiwi"), + e("🥝", "kiwi", "fruit"), e("🍅", "tomato"), e("🫒", "olive"), e("🥥", "coconut"), e("🥑", "avocado"), - e("🍆", "eggplant"), + e("🍆", "eggplant", "aubergine"), e("🥔", "potato"), e("🥕", "carrot"), - e("🌽", "corn"), - e("🌶️", "hot", "pepper"), + e("🌽", "ear", "of", "corn"), + e("🌶️", "hot", "pepper", "spicy"), e("🫑", "bell", "pepper"), e("🥒", "cucumber"), e("🥬", "leafy", "green"), @@ -555,38 +809,38 @@ internal object EmojiData { e("🥜", "peanuts"), e("🫘", "beans"), e("🌰", "chestnut"), - e("🫚", "ginger"), + e("🫚", "ginger", "root"), e("🫛", "pea", "pod"), - e("🍞", "bread"), + e("🍞", "bread", "toast"), e("🥐", "croissant"), - e("🥖", "baguette"), + e("🥖", "baguette", "bread"), e("🫓", "flatbread"), e("🥨", "pretzel"), e("🥯", "bagel"), e("🥞", "pancakes"), e("🧇", "waffle"), - e("🧀", "cheese"), - e("🍖", "meat", "bone"), - e("🍗", "poultry", "leg"), - e("🥩", "steak", "cut", "meat"), + e("🧀", "cheese", "wedge"), + e("🍖", "meat", "on", "bone"), + e("🍗", "poultry", "leg", "meat", "chicken"), + e("🥩", "cut", "of", "meat"), e("🥓", "bacon"), - e("🍔", "burger", "hamburger"), - e("🍟", "fries"), + e("🍔", "hamburger", "burger"), + e("🍟", "french", "fries"), e("🍕", "pizza"), - e("🌭", "hotdog"), + e("🌭", "hot", "dog", "hotdog"), e("🥪", "sandwich"), e("🌮", "taco"), e("🌯", "burrito"), e("🫔", "tamale"), - e("🥙", "pita"), + e("🥙", "stuffed", "flatbread"), e("🧆", "falafel"), e("🥚", "egg"), - e("🍳", "cooking", "fried", "egg"), - e("🥘", "pan", "food"), - e("🍲", "pot", "stew"), + e("🍳", "cooking", "fried", "egg", "breakfast"), + e("🥘", "shallow", "pan", "of", "food", "paella", "curry"), + e("🍲", "pot", "of", "food", "stew"), e("🫕", "fondue"), - e("🥣", "cereal", "bowl"), - e("🥗", "salad"), + e("🥣", "bowl", "with", "spoon"), + e("🥗", "green", "salad"), e("🍿", "popcorn"), e("🧈", "butter"), e("🧂", "salt"), @@ -594,59 +848,66 @@ internal object EmojiData { e("🍱", "bento", "box"), e("🍘", "rice", "cracker"), e("🍙", "rice", "ball"), - e("🍚", "rice"), - e("🍛", "curry"), - e("🍜", "noodles", "ramen"), + e("🍚", "cooked", "rice"), + e("🍛", "curry", "rice"), + e("🍜", "steaming", "bowl", "ramen", "noodle"), e("🍝", "spaghetti", "pasta"), - e("🍠", "sweet", "potato"), + e("🍠", "roasted", "sweet", "potato"), e("🍢", "oden"), e("🍣", "sushi"), - e("🍤", "shrimp", "fried"), - e("🍥", "fish", "cake"), + e("🍤", "fried", "shrimp", "tempura"), + e("🍥", "fish", "cake", "with", "swirl"), e("🥮", "moon", "cake"), e("🍡", "dango"), e("🥟", "dumpling"), e("🥠", "fortune", "cookie"), - e("🥡", "takeout"), + e("🥡", "takeout", "box"), e("🦀", "crab"), e("🦞", "lobster"), e("🦐", "shrimp"), e("🦑", "squid"), e("🦪", "oyster"), - e("🍦", "ice", "cream"), + e("🍦", "soft", "ice", "cream", "icecream"), e("🍧", "shaved", "ice"), - e("🍨", "ice", "cream", "sundae"), - e("🍩", "donut", "doughnut"), + e("🍨", "ice", "cream"), + e("🍩", "doughnut"), e("🍪", "cookie"), - e("🎂", "birthday", "cake"), - e("🍰", "cake", "shortcake"), + e("🎂", "birthday", "cake", "party"), + e("🍰", "shortcake", "cake", "dessert"), e("🧁", "cupcake"), e("🥧", "pie"), - e("🍫", "chocolate"), - e("🍬", "candy"), + e("🍫", "chocolate", "bar"), + e("🍬", "candy", "sweet"), e("🍭", "lollipop"), - e("🍮", "custard", "pudding"), - e("🍯", "honey"), - e("🍼", "baby", "bottle"), - e("🥛", "milk"), - e("☕", "coffee", "tea"), + e("🍮", "custard"), + e("🍯", "honey", "pot"), + e("🍼", "baby", "bottle", "milk"), + e("🥛", "glass", "of", "milk"), + e("☕", "hot", "beverage", "coffee", "cafe", "espresso"), e("🫖", "teapot"), - e("🍵", "tea"), + e("🍵", "teacup", "without", "handle", "tea", "green", "breakfast"), e("🍶", "sake"), - e("🍾", "champagne"), - e("🍷", "wine"), - e("🍸", "cocktail", "martini"), - e("🍹", "tropical", "drink"), - e("🍺", "beer"), - e("🍻", "beers", "cheers"), - e("🥂", "clinking", "glasses"), - e("🥃", "whisky", "tumbler"), + e("🍾", "bottle", "with", "popping", "cork", "champagne", "bubbly", "celebration"), + e("🍷", "wine", "glass"), + e("🍸", "cocktail", "glass", "drink"), + e("🍹", "tropical", "drink", "summer", "vacation"), + e("🍺", "beer", "mug", "drink"), + e("🍻", "clinking", "beer", "mugs", "beers", "drinks"), + e("🥂", "clinking", "glasses", "cheers", "toast"), + e("🥃", "tumbler", "glass", "whisky"), e("🫗", "pouring", "liquid"), - e("🥤", "cup", "straw"), + e("🥤", "cup", "with", "straw"), e("🧋", "bubble", "tea"), - e("🧃", "juice", "box"), + e("🧃", "beverage", "box"), e("🧉", "mate"), e("🧊", "ice", "cube"), + e("🥢", "chopsticks"), + e("🍽️", "fork", "and", "knife", "with", "plate", "cutlery", "dining", "dinner"), + e("🍴", "fork", "and", "knife", "cutlery"), + e("🥄", "spoon"), + e("🔪", "kitchen", "knife", "hocho", "cut", "chop"), + e("🫙", "jar"), + e("🏺", "amphora"), ), ) @@ -655,75 +916,36 @@ internal object EmojiData { icon = "✈️", emojis = listOf( - e("🚗", "car", "automobile"), - e("🚕", "taxi"), - e("🚙", "suv"), - e("🚌", "bus"), - e("🚎", "trolleybus"), - e("🏎️", "racing", "car"), - e("🚓", "police", "car"), - e("🚑", "ambulance"), - e("🚒", "fire", "truck"), - e("🚐", "minibus"), - e("🛻", "pickup", "truck"), - e("🚚", "truck"), - e("🚛", "articulated", "lorry"), - e("🚜", "tractor"), - e("🛵", "motor", "scooter"), - e("🏍️", "motorcycle"), - e("🚲", "bicycle", "bike"), - e("🛴", "kick", "scooter"), - e("🛹", "skateboard"), - e("🛼", "roller", "skate"), - e("🚁", "helicopter"), - e("✈️", "airplane"), - e("🛩️", "small", "airplane"), - e("🛫", "departure"), - e("🛬", "arrival"), - e("🪂", "parachute"), - e("💺", "seat"), - e("🚀", "rocket"), - e("🛸", "ufo", "flying", "saucer"), - e("🚁", "helicopter"), - e("⛵", "sailboat"), - e("🚤", "speedboat"), - e("🛥️", "motor", "boat"), - e("🛳️", "passenger", "ship"), - e("⛴️", "ferry"), - e("🚢", "ship"), - e("⚓", "anchor"), - e("🛟", "ring", "buoy"), - e("⛽", "fuel", "gas"), - e("🚧", "construction"), - e("🚦", "traffic", "light"), - e("🚥", "traffic", "signal"), - e("🗺️", "world", "map"), - e("🗿", "moai", "statue"), - e("🗽", "statue", "liberty"), - e("🗼", "tokyo", "tower"), - e("🏰", "castle"), - e("🏯", "japanese", "castle"), - e("🏟️", "stadium"), - e("🎡", "ferris", "wheel"), - e("🎢", "roller", "coaster"), - e("🎠", "carousel"), - e("⛲", "fountain"), - e("⛱️", "umbrella", "beach"), - e("🏖️", "beach"), - e("🏝️", "island"), - e("🏜️", "desert"), - e("🌋", "volcano"), + e("🌍", "globe", "showing", "europe", "africa", "earth", "world", "international"), + e("🌎", "globe", "showing", "americas", "earth", "world", "international"), + e("🌏", "globe", "showing", "asia", "australia", "earth", "world", "international"), + e("🌐", "globe", "with", "meridians", "world", "global", "international"), + e("🗺️", "world", "map", "travel"), + e("🗾", "map", "of", "japan"), + e("🧭", "compass"), + e("🏔️", "snow", "capped", "mountain"), e("⛰️", "mountain"), - e("🏔️", "snow", "mountain"), + e("🌋", "volcano"), e("🗻", "mount", "fuji"), e("🏕️", "camping"), - e("⛺", "tent"), + e("🏖️", "beach", "with", "umbrella"), + e("🏜️", "desert"), + e("🏝️", "desert", "island"), + e("🏞️", "national", "park"), + e("🏟️", "stadium"), + e("🏛️", "classical", "building"), + e("🏗️", "building", "construction"), + e("🧱", "brick", "bricks"), + e("🪨", "rock"), + e("🪵", "wood"), e("🛖", "hut"), + e("🏘️", "houses"), + e("🏚️", "derelict", "house"), e("🏠", "house"), - e("🏡", "garden", "house"), + e("🏡", "house", "with", "garden"), e("🏢", "office", "building"), - e("🏣", "post", "office"), - e("🏤", "european", "post"), + e("🏣", "japanese", "post", "office"), + e("🏤", "post", "office", "european"), e("🏥", "hospital"), e("🏦", "bank"), e("🏨", "hotel"), @@ -732,24 +954,186 @@ internal object EmojiData { e("🏫", "school"), e("🏬", "department", "store"), e("🏭", "factory"), - e("🏗️", "construction", "building"), - e("🧱", "brick"), - e("🪨", "rock"), - e("🪵", "wood"), - e("🛤️", "railway", "track"), - e("🛣️", "motorway"), + e("🏯", "japanese", "castle"), + e("🏰", "castle", "european"), + e("💒", "wedding", "marriage"), + e("🗼", "tokyo", "tower"), + e("🗽", "statue", "of", "liberty"), + e("⛪", "church"), + e("🕌", "mosque"), + e("🛕", "hindu", "temple"), + e("🕍", "synagogue"), + e("⛩️", "shinto", "shrine"), + e("🕋", "kaaba"), + e("⛲", "fountain"), + e("⛺", "tent", "camping"), + e("🌁", "foggy", "karl"), + e("🌃", "night", "with", "stars"), + e("🏙️", "cityscape", "skyline"), + e("🌄", "sunrise", "over", "mountains"), e("🌅", "sunrise"), - e("🌄", "sunrise", "mountains"), - e("🌠", "shooting", "star"), - e("🎇", "sparkler"), - e("🎆", "fireworks"), - e("🌇", "sunset", "city"), - e("🌆", "cityscape", "dusk"), - e("🏙️", "cityscape"), - e("🌃", "night", "stars"), + e("🌆", "cityscape", "at", "dusk", "city", "sunset"), + e("🌇", "sunset", "city", "sunrise"), + e("🌉", "bridge", "at", "night"), + e("♨️", "hot", "springs", "hotsprings"), + e("🎠", "carousel", "horse"), + e("🛝", "playground", "slide"), + e("🎡", "ferris", "wheel"), + e("🎢", "roller", "coaster"), + e("💈", "barber", "pole"), + e("🎪", "circus", "tent"), + e("🚂", "locomotive", "steam", "train"), + e("🚃", "railway", "car"), + e("🚄", "high", "speed", "train", "bullettrain", "side"), + e("🚅", "bullet", "train", "bullettrain", "front"), + e("🚆", "train", "train2"), + e("🚇", "metro"), + e("🚈", "light", "rail"), + e("🚉", "station"), + e("🚊", "tram"), + e("🚝", "monorail"), + e("🚞", "mountain", "railway"), + e("🚋", "tram", "car", "train"), + e("🚌", "bus"), + e("🚍", "oncoming", "bus"), + e("🚎", "trolleybus"), + e("🚐", "minibus"), + e("🚑", "ambulance"), + e("🚒", "fire", "engine"), + e("🚓", "police", "car"), + e("🚔", "oncoming", "police", "car"), + e("🚕", "taxi"), + e("🚖", "oncoming", "taxi"), + e("🚗", "automobile", "car", "red"), + e("🚘", "oncoming", "automobile"), + e("🚙", "sport", "utility", "vehicle", "blue", "car"), + e("🛻", "pickup", "truck"), + e("🚚", "delivery", "truck"), + e("🚛", "articulated", "lorry"), + e("🚜", "tractor"), + e("🏎️", "racing", "car"), + e("🏍️", "motorcycle"), + e("🛵", "motor", "scooter"), + e("🦽", "manual", "wheelchair"), + e("🦼", "motorized", "wheelchair"), + e("🛺", "auto", "rickshaw"), + e("🚲", "bicycle", "bike"), + e("🛴", "kick", "scooter"), + e("🛹", "skateboard"), + e("🛼", "roller", "skate"), + e("🚏", "bus", "stop", "busstop"), + e("🛣️", "motorway"), + e("🛤️", "railway", "track"), + e("🛢️", "oil", "drum"), + e("⛽", "fuel", "pump", "fuelpump"), + e("🛞", "wheel"), + e("🚨", "police", "car", "light", "rotating", "911", "emergency"), + e("🚥", "horizontal", "traffic", "light"), + e("🚦", "vertical", "traffic", "light", "semaphore"), + e("🛑", "stop", "sign"), + e("🚧", "construction", "wip"), + e("⚓", "anchor", "ship"), + e("🛟", "ring", "buoy", "lifepreserver"), + e("⛵", "sailboat", "boat"), + e("🛶", "canoe"), + e("🚤", "speedboat", "ship"), + e("🛳️", "passenger", "ship", "cruise"), + e("⛴️", "ferry"), + e("🛥️", "motor", "boat"), + e("🚢", "ship"), + e("✈️", "airplane", "flight"), + e("🛩️", "small", "airplane", "flight"), + e("🛫", "airplane", "departure", "flight"), + e("🛬", "airplane", "arrival", "flight"), + e("🪂", "parachute"), + e("💺", "seat"), + e("🚁", "helicopter"), + e("🚟", "suspension", "railway"), + e("🚠", "mountain", "cableway"), + e("🚡", "aerial", "tramway"), + e("🛰️", "satellite", "artificial", "orbit", "space"), + e("🚀", "rocket", "ship", "launch"), + e("🛸", "flying", "saucer", "ufo"), + e("🛎️", "bellhop", "bell"), + e("🧳", "luggage"), + e("⌛", "hourglass", "done", "time"), + e("⏳", "hourglass", "not", "done", "flowing", "sand", "time"), + e("⌚", "watch", "time"), + e("⏰", "alarm", "clock", "morning"), + e("⏱️", "stopwatch"), + e("⏲️", "timer", "clock"), + e("🕰️", "mantelpiece", "clock"), + e("🕛", "twelve", "clock12"), + e("🕧", "twelve", "thirty", "clock1230"), + e("🕐", "one", "clock1"), + e("🕜", "one", "thirty", "clock130"), + e("🕑", "two", "clock2"), + e("🕝", "two", "thirty", "clock230"), + e("🕒", "three", "clock3"), + e("🕞", "three", "thirty", "clock330"), + e("🕓", "four", "clock4"), + e("🕟", "four", "thirty", "clock430"), + e("🕔", "five", "clock5"), + e("🕠", "five", "thirty", "clock530"), + e("🕕", "six", "clock6"), + e("🕡", "six", "thirty", "clock630"), + e("🕖", "seven", "clock7"), + e("🕢", "seven", "thirty", "clock730"), + e("🕗", "eight", "clock8"), + e("🕣", "eight", "thirty", "clock830"), + e("🕘", "nine", "clock9"), + e("🕤", "nine", "thirty", "clock930"), + e("🕙", "ten", "clock10"), + e("🕥", "ten", "thirty", "clock1030"), + e("🕚", "eleven", "clock11"), + e("🕦", "eleven", "thirty", "clock1130"), + e("🌑", "new", "moon"), + e("🌒", "waxing", "crescent", "moon"), + e("🌓", "first", "quarter", "moon"), + e("🌔", "waxing", "gibbous", "moon"), + e("🌕", "full", "moon"), + e("🌖", "waning", "gibbous", "moon"), + e("🌗", "last", "quarter", "moon"), + e("🌘", "waning", "crescent", "moon"), + e("🌙", "crescent", "moon", "night"), + e("🌚", "new", "moon", "face", "with"), + e("🌛", "first", "quarter", "moon", "face", "with"), + e("🌜", "last", "quarter", "moon", "face", "with"), + e("🌡️", "thermometer"), + e("☀️", "sun", "sunny", "weather"), + e("🌝", "full", "moon", "face", "with"), + e("🌞", "sun", "with", "face", "summer"), + e("🪐", "ringed", "planet"), + e("⭐", "star"), + e("🌟", "glowing", "star", "star2"), + e("🌠", "shooting", "star", "stars"), e("🌌", "milky", "way"), - e("🌉", "bridge", "night"), - e("🌁", "foggy"), + e("☁️", "cloud"), + e("⛅", "sun", "behind", "cloud", "partly", "sunny", "weather"), + e("⛈️", "cloud", "with", "lightning", "and", "rain"), + e("🌤️", "sun", "behind", "small", "cloud"), + e("🌥️", "sun", "behind", "large", "cloud"), + e("🌦️", "sun", "behind", "rain", "cloud"), + e("🌧️", "cloud", "with", "rain"), + e("🌨️", "cloud", "with", "snow"), + e("🌩️", "cloud", "with", "lightning"), + e("🌪️", "tornado"), + e("🌫️", "fog"), + e("🌬️", "wind", "face"), + e("🌀", "cyclone", "swirl"), + e("🌈", "rainbow"), + e("🌂", "closed", "umbrella", "weather", "rain"), + e("☂️", "umbrella", "open"), + e("☔", "umbrella", "with", "rain", "drops", "weather"), + e("⛱️", "umbrella", "on", "ground", "parasol", "beachumbrella"), + e("⚡", "high", "voltage", "zap", "lightning", "thunder"), + e("❄️", "snowflake", "winter", "cold", "weather"), + e("☃️", "snowman", "with", "snow", "winter", "christmas"), + e("⛄", "snowman", "without", "snow", "winter"), + e("☄️", "comet"), + e("🔥", "fire", "burn"), + e("💧", "droplet", "water"), + e("🌊", "water", "wave", "ocean", "sea"), ), ) @@ -758,90 +1142,91 @@ internal object EmojiData { icon = "⚽", emojis = listOf( - e("⚽", "soccer"), - e("🏀", "basketball"), - e("🏈", "football"), - e("⚾", "baseball"), + e("🎃", "jack", "o", "lantern", "halloween"), + e("🎄", "christmas", "tree"), + e("🎆", "fireworks", "festival", "celebration"), + e("🎇", "sparkler"), + e("🧨", "firecracker"), + e("✨", "sparkles", "shiny"), + e("🎈", "balloon", "party", "birthday"), + e("🎉", "party", "popper", "tada", "hooray"), + e("🎊", "confetti", "ball"), + e("🎋", "tanabata", "tree"), + e("🎍", "pine", "decoration", "bamboo"), + e("🎎", "japanese", "dolls"), + e("🎏", "carp", "streamer", "flags"), + e("🎐", "wind", "chime"), + e("🎑", "moon", "viewing", "ceremony", "rice", "scene"), + e("🧧", "red", "envelope"), + e("🎀", "ribbon"), + e("🎁", "wrapped", "gift", "present", "birthday", "christmas"), + e("🎗️", "reminder", "ribbon"), + e("🎟️", "admission", "tickets"), + e("🎫", "ticket"), + e("🎖️", "military", "medal"), + e("🏆", "trophy", "award", "contest", "winner"), + e("🏅", "sports", "medal", "gold", "winner"), + e("🥇", "1st", "place", "medal", "gold"), + e("🥈", "2nd", "place", "medal", "silver"), + e("🥉", "3rd", "place", "medal", "bronze"), + e("⚽", "soccer", "ball", "sports"), + e("⚾", "baseball", "sports"), e("🥎", "softball"), - e("🎾", "tennis"), + e("🏀", "basketball", "sports"), e("🏐", "volleyball"), - e("🏉", "rugby"), - e("🥏", "frisbee"), - e("🎱", "pool", "billiards"), - e("🪀", "yoyo"), + e("🏈", "american", "football", "sports"), + e("🏉", "rugby", "football"), + e("🎾", "tennis", "sports"), + e("🥏", "flying", "disc"), + e("🎳", "bowling"), + e("🏏", "cricket", "game"), + e("🏑", "field", "hockey"), + e("🏒", "ice", "hockey"), + e("🥍", "lacrosse"), e("🏓", "ping", "pong"), e("🏸", "badminton"), - e("🏒", "ice", "hockey"), - e("🏑", "field", "hockey"), - e("🥍", "lacrosse"), - e("🏏", "cricket"), - e("🪃", "boomerang"), + e("🥊", "boxing", "glove"), + e("🥋", "martial", "arts", "uniform"), e("🥅", "goal", "net"), - e("⛳", "golf"), - e("🪁", "kite"), - e("🏹", "archery"), - e("🎣", "fishing"), - e("🤿", "diving"), - e("🥊", "boxing"), - e("🥋", "martial", "arts"), - e("🎽", "running", "shirt"), - e("🛹", "skateboard"), - e("🛼", "roller", "skate"), + e("⛳", "flag", "in", "hole", "golf"), + e("⛸️", "ice", "skate", "skating"), + e("🎣", "fishing", "pole", "and", "fish"), + e("🤿", "diving", "mask"), + e("🎽", "running", "shirt", "with", "sash", "marathon"), + e("🎿", "skis", "ski"), e("🛷", "sled"), - e("⛸️", "ice", "skate"), - e("🥌", "curling"), - e("🎿", "skiing"), - e("⛷️", "skier"), - e("🏂", "snowboard"), - e("🪂", "parachute"), - e("🏋️", "weightlifting"), - e("🤺", "fencing"), - e("🤸", "cartwheel"), - e("🤼", "wrestling"), - e("🤽", "water", "polo"), - e("🤾", "handball"), - e("🏌️", "golf"), - e("🏇", "horse", "racing"), - e("🧘", "yoga", "meditation"), - e("🏄", "surfing"), - e("🏊", "swimming"), - e("🚣", "rowing"), - e("🧗", "climbing"), - e("🚵", "mountain", "biking"), - e("🚴", "biking"), - e("🏆", "trophy"), - e("🥇", "gold", "medal"), - e("🥈", "silver", "medal"), - e("🥉", "bronze", "medal"), - e("🏅", "medal"), - e("🎖️", "military", "medal"), - e("🎗️", "reminder", "ribbon"), - e("🎪", "circus", "tent"), - e("🤹", "juggling"), - e("🎭", "performing", "arts"), - e("🩰", "ballet"), - e("🎨", "art", "palette"), - e("🎬", "clapper", "movie"), - e("🎤", "microphone", "karaoke"), - e("🎧", "headphone"), - e("🎼", "musical", "score"), - e("🎹", "piano"), - e("🥁", "drum"), - e("🪘", "long", "drum"), - e("🎷", "saxophone"), - e("🎺", "trumpet"), - e("🪗", "accordion"), - e("🎸", "guitar"), - e("🪕", "banjo"), - e("🎻", "violin"), - e("🎲", "dice", "game"), - e("♟️", "chess"), - e("🎯", "dart", "bullseye"), - e("🎳", "bowling"), - e("🎮", "video", "game"), + e("🥌", "curling", "stone"), + e("🎯", "bullseye", "dart", "target"), + e("🪀", "yo"), + e("🪁", "kite"), + e("🔫", "water", "pistol", "gun", "shoot", "weapon"), + e("🎱", "pool", "8", "ball", "8ball", "billiards"), + e("🔮", "crystal", "ball", "fortune"), + e("🪄", "magic", "wand"), + e("🎮", "video", "game", "play", "controller", "console"), e("🕹️", "joystick"), e("🎰", "slot", "machine"), - e("🧩", "puzzle"), + e("🎲", "game", "die", "dice", "gambling"), + e("🧩", "puzzle", "piece", "jigsaw"), + e("🧸", "teddy", "bear"), + e("🪅", "piñata", "pinata"), + e("🪩", "mirror", "ball", "disco", "party"), + e("🪆", "nesting", "dolls"), + e("♠️", "spade", "suit", "spades"), + e("♥️", "heart", "suit", "hearts"), + e("♦️", "diamond", "suit", "diamonds"), + e("♣️", "club", "suit", "clubs"), + e("♟️", "chess", "pawn"), + e("🃏", "joker", "black"), + e("🀄", "mahjong", "red", "dragon"), + e("🎴", "flower", "playing", "cards"), + e("🎭", "performing", "arts", "theater", "drama"), + e("🖼️", "framed", "picture"), + e("🎨", "artist", "palette", "art", "design", "paint"), + e("🧵", "thread"), + e("🪡", "sewing", "needle"), + e("🧶", "yarn"), + e("🪢", "knot"), ), ) @@ -850,142 +1235,267 @@ internal object EmojiData { icon = "💡", emojis = listOf( - e("⌚", "watch"), - e("📱", "phone", "mobile"), - e("📲", "call", "phone"), - e("💻", "laptop", "computer"), - e("⌨️", "keyboard"), + e("👓", "glasses", "eyeglasses"), + e("🕶️", "sunglasses", "dark"), + e("🥽", "goggles"), + e("🥼", "lab", "coat"), + e("🦺", "safety", "vest"), + e("👔", "necktie", "shirt", "formal"), + e("👕", "t", "shirt", "tshirt"), + e("👖", "jeans", "pants"), + e("🧣", "scarf"), + e("🧤", "gloves"), + e("🧥", "coat"), + e("🧦", "socks"), + e("👗", "dress"), + e("👘", "kimono"), + e("🥻", "sari"), + e("🩱", "one", "piece", "swimsuit"), + e("🩲", "briefs", "swim", "brief"), + e("🩳", "shorts"), + e("👙", "bikini", "beach"), + e("👚", "clothes", "womans"), + e("🪭", "folding", "hand", "fan", "sensu"), + e("👛", "purse"), + e("👜", "handbag", "bag"), + e("👝", "clutch", "bag", "pouch"), + e("🛍️", "shopping", "bags"), + e("🎒", "backpack", "school", "satchel"), + e("🩴", "thong", "sandal"), + e("👞", "shoe", "mans"), + e("👟", "running", "shoe", "athletic", "sneaker", "sport"), + e("🥾", "hiking", "boot"), + e("🥿", "flat", "shoe"), + e("👠", "high", "heeled", "shoe", "heel"), + e("👡", "sandal", "shoe"), + e("🩰", "ballet", "shoes"), + e("👢", "boot"), + e("🪮", "hair", "pick"), + e("👑", "crown", "king", "queen", "royal"), + e("👒", "hat", "womans"), + e("🎩", "top", "hat", "tophat", "classy"), + e("🎓", "graduation", "cap", "mortar", "board", "education", "college", "university"), + e("🧢", "billed", "cap"), + e("🪖", "military", "helmet"), + e("⛑️", "rescue", "helmet", "worker"), + e("📿", "prayer", "beads"), + e("💄", "lipstick", "makeup"), + e("💍", "ring", "wedding", "marriage", "engaged"), + e("💎", "gem", "stone", "diamond"), + e("🔇", "muted", "speaker", "mute", "sound", "volume"), + e("🔈", "speaker", "low", "volume"), + e("🔉", "speaker", "medium", "volume", "sound"), + e("🔊", "speaker", "high", "volume", "loud", "sound"), + e("📢", "loudspeaker", "announcement"), + e("📣", "megaphone", "mega"), + e("📯", "postal", "horn"), + e("🔔", "bell", "sound", "notification"), + e("🔕", "bell", "with", "slash", "no", "volume", "off"), + e("🎼", "musical", "score"), + e("🎵", "musical", "note"), + e("🎶", "musical", "notes", "music"), + e("🎙️", "studio", "microphone", "podcast"), + e("🎚️", "level", "slider"), + e("🎛️", "control", "knobs"), + e("🎤", "microphone", "sing"), + e("🎧", "headphone", "headphones", "music", "earphones"), + e("📻", "radio", "podcast"), + e("🎷", "saxophone"), + e("🪗", "accordion"), + e("🎸", "guitar", "rock"), + e("🎹", "musical", "keyboard", "piano"), + e("🎺", "trumpet"), + e("🎻", "violin"), + e("🪕", "banjo"), + e("🥁", "drum"), + e("🪘", "long", "drum"), + e("🪇", "maracas", "shaker"), + e("🪈", "flute", "recorder"), + e("📱", "mobile", "phone", "iphone", "smartphone"), + e("📲", "mobile", "phone", "with", "arrow", "calling", "call", "incoming"), + e("☎️", "telephone", "phone"), + e("📞", "telephone", "receiver", "phone", "call"), + e("📟", "pager"), + e("📠", "fax", "machine"), + e("🔋", "battery", "power"), + e("🪫", "low", "battery"), + e("🔌", "electric", "plug"), + e("💻", "laptop", "computer", "desktop", "screen"), e("🖥️", "desktop", "computer"), e("🖨️", "printer"), - e("🖱️", "mouse"), + e("⌨️", "keyboard"), + e("🖱️", "computer", "mouse"), e("🖲️", "trackball"), - e("💾", "floppy", "disk"), - e("💿", "cd"), + e("💽", "computer", "disk", "minidisc"), + e("💾", "floppy", "disk", "save"), + e("💿", "optical", "disk", "cd"), e("📀", "dvd"), - e("🎥", "movie", "camera"), - e("🎞️", "film"), - e("📽️", "projector"), - e("📺", "tv", "television"), - e("📷", "camera"), - e("📸", "camera", "flash"), + e("🧮", "abacus"), + e("🎥", "movie", "camera", "film", "video"), + e("🎞️", "film", "frames", "strip"), + e("📽️", "film", "projector"), + e("🎬", "clapper", "board", "film"), + e("📺", "television", "tv"), + e("📷", "camera", "photo"), + e("📸", "camera", "with", "flash", "photo"), e("📹", "video", "camera"), - e("📼", "vhs"), - e("🔍", "magnify", "search"), - e("🔎", "magnify", "right"), + e("📼", "videocassette", "vhs"), + e("🔍", "magnifying", "glass", "tilted", "left", "mag", "search", "zoom"), + e("🔎", "magnifying", "glass", "tilted", "right", "mag"), e("🕯️", "candle"), - e("💡", "bulb", "idea"), + e("💡", "light", "bulb", "idea"), e("🔦", "flashlight"), - e("🏮", "lantern"), + e("🏮", "red", "paper", "lantern", "izakaya"), e("🪔", "diya", "lamp"), - e("📔", "notebook"), - e("📕", "book", "closed"), - e("📖", "book", "open"), + e("📔", "notebook", "with", "decorative", "cover"), + e("📕", "closed", "book"), + e("📖", "open", "book"), e("📗", "green", "book"), e("📘", "blue", "book"), e("📙", "orange", "book"), - e("📚", "books"), + e("📚", "books", "library"), e("📓", "notebook"), e("📒", "ledger"), - e("📃", "page", "curl"), - e("📜", "scroll"), - e("📄", "document"), - e("📰", "newspaper"), - e("🗞️", "rolled", "newspaper"), + e("📃", "page", "with", "curl"), + e("📜", "scroll", "document"), + e("📄", "page", "facing", "up", "document"), + e("📰", "newspaper", "press"), + e("🗞️", "rolled", "up", "newspaper", "roll", "press"), e("📑", "bookmark", "tabs"), e("🔖", "bookmark"), e("🏷️", "label", "tag"), - e("💰", "money", "bag"), + e("💰", "money", "bag", "moneybag", "dollar", "cream"), e("🪙", "coin"), - e("💴", "yen"), - e("💵", "dollar"), - e("💶", "euro"), - e("💷", "pound"), - e("💸", "money", "wings"), - e("💳", "credit", "card"), + e("💴", "yen", "banknote"), + e("💵", "dollar", "banknote", "money"), + e("💶", "euro", "banknote"), + e("💷", "pound", "banknote"), + e("💸", "money", "with", "wings", "dollar"), + e("💳", "credit", "card", "subscription"), e("🧾", "receipt"), - e("✉️", "envelope", "mail"), - e("📧", "email"), - e("📨", "incoming", "mail"), - e("📩", "envelope", "arrow"), - e("📤", "outbox"), - e("📥", "inbox"), - e("📦", "package"), - e("📫", "mailbox"), - e("📪", "mailbox", "empty"), - e("📬", "mailbox", "flag"), - e("📭", "mailbox", "empty"), + e("💹", "chart", "increasing", "with", "yen"), + e("✉️", "envelope", "letter", "email"), + e("📧", "e", "mail", "email"), + e("📨", "incoming", "envelope"), + e("📩", "envelope", "with", "arrow"), + e("📤", "outbox", "tray"), + e("📥", "inbox", "tray"), + e("📦", "package", "shipping"), + e("📫", "closed", "mailbox", "with", "raised", "flag"), + e("📪", "closed", "mailbox", "with", "lowered", "flag"), + e("📬", "open", "mailbox", "with", "raised", "flag", "mail"), + e("📭", "open", "mailbox", "with", "lowered", "flag", "no", "mail"), e("📮", "postbox"), - e("✏️", "pencil"), - e("✒️", "pen", "nib"), - e("🖊️", "pen"), + e("🗳️", "ballot", "box", "with"), + e("✏️", "pencil", "pencil2"), + e("✒️", "black", "nib"), e("🖋️", "fountain", "pen"), + e("🖊️", "pen"), e("🖌️", "paintbrush"), e("🖍️", "crayon"), - e("📝", "memo", "note"), - e("📁", "folder"), - e("📂", "folder", "open"), - e("🗂️", "card", "index"), - e("📅", "calendar"), - e("📆", "calendar", "tear"), + e("📝", "memo", "pencil", "document", "note"), + e("💼", "briefcase", "business"), + e("📁", "file", "folder", "directory"), + e("📂", "open", "file", "folder"), + e("🗂️", "card", "index", "dividers"), + e("📅", "calendar", "date", "schedule"), + e("📆", "tear", "off", "calendar", "schedule"), e("🗒️", "spiral", "notepad"), e("🗓️", "spiral", "calendar"), e("📇", "card", "index"), - e("📈", "chart", "up"), - e("📉", "chart", "down"), - e("📊", "bar", "chart"), + e("📈", "chart", "increasing", "with", "upwards", "trend", "graph", "metrics"), + e("📉", "chart", "decreasing", "with", "downwards", "trend", "graph", "metrics"), + e("📊", "bar", "chart", "stats", "metrics"), e("📋", "clipboard"), - e("📌", "pushpin"), - e("📍", "pin"), + e("📌", "pushpin", "location"), + e("📍", "round", "pushpin", "location"), e("📎", "paperclip"), - e("🖇️", "paperclips"), - e("📏", "ruler"), + e("🖇️", "linked", "paperclips"), + e("📏", "straight", "ruler"), e("📐", "triangular", "ruler"), - e("✂️", "scissors"), - e("🗃️", "card", "file"), + e("✂️", "scissors", "cut"), + e("🗃️", "card", "file", "box"), e("🗄️", "file", "cabinet"), - e("🗑️", "trash"), - e("🔒", "lock"), - e("🔓", "unlock"), - e("🔏", "lock", "pen"), - e("🔐", "lock", "key"), - e("🔑", "key"), + e("🗑️", "wastebasket", "trash"), + e("🔒", "locked", "lock", "security", "private"), + e("🔓", "unlocked", "unlock", "security"), + e("🔏", "locked", "with", "pen", "lock", "ink"), + e("🔐", "locked", "with", "key", "closed", "lock", "security"), + e("🔑", "key", "lock", "password"), e("🗝️", "old", "key"), - e("🔨", "hammer"), + e("🔨", "hammer", "tool"), e("🪓", "axe"), e("⛏️", "pick"), - e("⚒️", "hammer", "pick"), - e("🛠️", "tools"), + e("⚒️", "hammer", "and", "pick"), + e("🛠️", "hammer", "and", "wrench"), e("🗡️", "dagger"), - e("⚔️", "swords"), - e("💣", "bomb"), + e("⚔️", "crossed", "swords"), + e("💣", "bomb", "boom"), e("🪃", "boomerang"), - e("🏹", "bow", "arrow"), + e("🏹", "bow", "and", "arrow", "archery"), e("🛡️", "shield"), - e("🪚", "saw"), - e("🔧", "wrench"), + e("🪚", "carpentry", "saw"), + e("🔧", "wrench", "tool"), e("🪛", "screwdriver"), - e("🔩", "nut", "bolt"), + e("🔩", "nut", "and", "bolt"), e("⚙️", "gear"), e("🗜️", "clamp"), e("⚖️", "balance", "scale"), - e("🦯", "probing", "cane"), - e("🔗", "link", "chain"), + e("🦯", "white", "cane", "probing"), + e("🔗", "link"), e("⛓️", "chains"), e("🪝", "hook"), e("🧰", "toolbox"), e("🧲", "magnet"), e("🪜", "ladder"), + e("⚗️", "alembic"), e("🧪", "test", "tube"), e("🧫", "petri", "dish"), e("🧬", "dna"), - e("🔬", "microscope"), + e("🔬", "microscope", "science", "laboratory", "investigate"), e("🔭", "telescope"), - e("📡", "satellite", "antenna", "radio"), - e("📻", "radio"), - e("🔋", "battery"), - e("🪫", "low", "battery"), - e("🔌", "plug", "electric"), - e("🧭", "compass"), + e("📡", "satellite", "antenna", "signal"), + e("💉", "syringe", "health", "hospital", "needle"), + e("🩸", "drop", "of", "blood"), + e("💊", "pill", "health", "medicine"), + e("🩹", "adhesive", "bandage"), + e("🩼", "crutch"), + e("🩺", "stethoscope"), + e("🩻", "x", "ray"), + e("🚪", "door"), + e("🛗", "elevator"), + e("🪞", "mirror"), + e("🪟", "window"), + e("🛏️", "bed"), + e("🛋️", "couch", "and", "lamp"), + e("🪑", "chair"), + e("🚽", "toilet", "wc"), + e("🪠", "plunger"), + e("🚿", "shower", "bath"), + e("🛁", "bathtub"), + e("🪤", "mouse", "trap"), + e("🪒", "razor"), + e("🧴", "lotion", "bottle"), + e("🧷", "safety", "pin"), + e("🧹", "broom"), + e("🧺", "basket"), + e("🧻", "roll", "of", "paper", "toilet"), + e("🪣", "bucket"), + e("🧼", "soap"), + e("🫧", "bubbles"), + e("🪥", "toothbrush"), + e("🧽", "sponge"), + e("🧯", "fire", "extinguisher"), + e("🛒", "shopping", "cart"), + e("🚬", "cigarette", "smoking"), + e("⚰️", "coffin", "funeral"), + e("🪦", "headstone"), + e("⚱️", "funeral", "urn"), + e("🧿", "nazar", "amulet"), + e("🪬", "hamsa"), + e("🗿", "moai", "moyai", "stone"), + e("🪧", "placard"), + e("🪪", "identification", "card"), ), ) @@ -994,37 +1504,66 @@ internal object EmojiData { icon = "🔣", emojis = listOf( - e("❤️", "red", "heart"), - e("🧡", "orange", "heart"), - e("💛", "yellow", "heart"), - e("💚", "green", "heart"), - e("💙", "blue", "heart"), - e("💜", "purple", "heart"), - e("🖤", "black", "heart"), - e("🤍", "white", "heart"), - e("🤎", "brown", "heart"), - e("💔", "broken", "heart"), - e("❣️", "heart", "exclamation"), - e("💕", "two", "hearts"), - e("💞", "revolving", "hearts"), - e("💓", "heartbeat"), - e("💗", "growing", "heart"), - e("💖", "sparkling", "heart"), - e("💘", "cupid"), - e("💝", "ribbon", "heart"), - e("💟", "heart", "decoration"), - e("☮️", "peace"), - e("✝️", "cross"), - e("☪️", "star", "crescent"), + e("🏧", "atm", "sign"), + e("🚮", "litter", "in", "bin", "sign", "put", "its", "place"), + e("🚰", "potable", "water"), + e("♿", "wheelchair", "symbol", "accessibility"), + e("🚹", "room", "mens"), + e("🚺", "room", "womens"), + e("🚻", "restroom", "toilet"), + e("🚼", "baby", "symbol"), + e("🚾", "water", "closet", "wc", "toilet", "restroom"), + e("🛂", "passport", "control"), + e("🛃", "customs"), + e("🛄", "baggage", "claim", "airport"), + e("🛅", "left", "luggage"), + e("⚠️", "warning", "wip"), + e("🚸", "children", "crossing"), + e("⛔", "no", "entry", "limit"), + e("🚫", "prohibited", "no", "entry", "sign", "block", "forbidden"), + e("🚳", "no", "bicycles"), + e("🚭", "no", "smoking"), + e("🚯", "no", "littering", "do", "not", "litter"), + e("🚱", "non", "potable", "water"), + e("🚷", "no", "pedestrians"), + e("📵", "no", "mobile", "phones"), + e("🔞", "no", "one", "under", "eighteen", "underage"), + e("☢️", "radioactive"), + e("☣️", "biohazard"), + e("⬆️", "up", "arrow"), + e("↗️", "up", "right", "arrow", "upper"), + e("➡️", "right", "arrow"), + e("↘️", "down", "right", "arrow", "lower"), + e("⬇️", "down", "arrow"), + e("↙️", "down", "left", "arrow", "lower"), + e("⬅️", "left", "arrow"), + e("↖️", "up", "left", "arrow", "upper"), + e("↕️", "up", "down", "arrow"), + e("↔️", "left", "right", "arrow"), + e("↩️", "right", "arrow", "curving", "left", "leftwards", "with", "hook", "return"), + e("↪️", "left", "arrow", "curving", "right", "hook"), + e("⤴️", "right", "arrow", "curving", "up", "heading"), + e("⤵️", "right", "arrow", "curving", "down", "heading"), + e("🔃", "clockwise", "vertical", "arrows"), + e("🔄", "counterclockwise", "arrows", "button", "sync"), + e("🔙", "back", "arrow"), + e("🔚", "end", "arrow"), + e("🔛", "arrow", "on"), + e("🔜", "soon", "arrow"), + e("🔝", "top", "arrow"), + e("🛐", "place", "of", "worship"), + e("⚛️", "atom", "symbol"), e("🕉️", "om"), - e("☸️", "wheel", "dharma"), - e("✡️", "star", "david"), - e("🔯", "six", "pointed", "star"), - e("🕎", "menorah"), + e("✡️", "star", "of", "david"), + e("☸️", "wheel", "of", "dharma"), e("☯️", "yin", "yang"), + e("✝️", "latin", "cross"), e("☦️", "orthodox", "cross"), - e("🛐", "worship"), - e("⛎", "ophiuchus"), + e("☪️", "star", "and", "crescent"), + e("☮️", "peace", "symbol"), + e("🕎", "menorah"), + e("🔯", "dotted", "six", "pointed", "star"), + e("🪯", "khanda"), e("♈", "aries"), e("♉", "taurus"), e("♊", "gemini"), @@ -1032,180 +1571,133 @@ internal object EmojiData { e("♌", "leo"), e("♍", "virgo"), e("♎", "libra"), - e("♏", "scorpio"), + e("♏", "scorpio", "scorpius"), e("♐", "sagittarius"), e("♑", "capricorn"), e("♒", "aquarius"), e("♓", "pisces"), - e("🆔", "id"), - e("⚛️", "atom"), - e("🉑", "accept"), - e("☢️", "radioactive"), - e("☣️", "biohazard"), - e("📴", "phone", "off"), - e("📳", "vibration"), - e("🈶", "ideograph"), - e("🈚", "ideograph"), - e("🈸", "application"), - e("🈺", "open"), - e("🈷️", "monthly"), - e("✴️", "eight", "pointed", "star"), - e("🆚", "versus"), - e("💮", "white", "flower"), - e("🉐", "bargain"), - e("㊙️", "secret"), - e("㊗️", "congratulations"), - e("🈴", "passing"), - e("🈵", "full"), - e("🈹", "discount"), - e("🈲", "prohibited"), - e("🅰️", "a", "blood"), - e("🅱️", "b", "blood"), - e("🆎", "ab", "blood"), - e("🆑", "cl"), - e("🅾️", "o", "blood"), - e("🆘", "sos"), - e("❌", "x", "cross"), - e("⭕", "circle"), - e("🛑", "stop"), - e("⛔", "prohibited"), - e("📛", "name", "badge"), - e("🚫", "prohibited"), - e("💯", "hundred"), - e("💢", "anger"), - e("♨️", "hot", "springs"), - e("🚷", "no", "pedestrians"), - e("🚯", "no", "littering"), - e("🚳", "no", "bicycles"), - e("🚱", "non", "potable"), - e("🔞", "eighteen"), - e("📵", "no", "phones"), - e("🚭", "no", "smoking"), - e("❗", "exclamation"), - e("❕", "exclamation"), - e("❓", "question"), - e("❔", "question"), - e("‼️", "double", "exclamation"), - e("⁉️", "exclamation", "question"), - e("🔅", "dim"), - e("🔆", "bright"), - e("〽️", "part", "alternation"), - e("⚠️", "warning"), - e("🚸", "children", "crossing"), - e("🔱", "trident"), - e("⚜️", "fleur", "de", "lis"), - e("🔰", "beginner"), - e("♻️", "recycle"), - e("✅", "check", "mark"), - e("🈯", "reserved"), - e("💹", "chart"), - e("❇️", "sparkle"), - e("✳️", "eight", "spoked"), - e("❎", "cross", "mark"), - e("🌐", "globe", "meridians"), - e("💠", "diamond", "dot"), - e("Ⓜ️", "m", "circled"), - e("🌀", "cyclone"), - e("💤", "zzz", "sleep"), - e("🏧", "atm"), - e("🚾", "wc"), - e("♿", "wheelchair"), - e("🅿️", "parking"), - e("🛗", "elevator"), - e("🈳", "vacant"), - e("🈂️", "service"), - e("🛂", "passport", "control"), - e("🛃", "customs"), - e("🛄", "baggage", "claim"), - e("🛅", "left", "luggage"), - e("🔣", "symbols"), - e("ℹ️", "info"), - e("🔤", "abc"), - e("🔡", "abcd"), - e("🔠", "abcd", "upper"), - e("🆖", "ng"), - e("🆗", "ok"), - e("🆙", "up"), - e("🆒", "cool"), - e("🆕", "new"), - e("🆓", "free"), - e("0️⃣", "zero"), - e("1️⃣", "one"), - e("2️⃣", "two"), - e("3️⃣", "three"), - e("4️⃣", "four"), - e("5️⃣", "five"), - e("6️⃣", "six"), - e("7️⃣", "seven"), - e("8️⃣", "eight"), - e("9️⃣", "nine"), - e("🔟", "ten"), - e("🔢", "numbers"), - e("#️⃣", "hash"), - e("*️⃣", "asterisk"), - e("⏏️", "eject"), - e("▶️", "play"), - e("⏸️", "pause"), - e("⏯️", "play", "pause"), - e("⏹️", "stop"), - e("⏺️", "record"), - e("⏭️", "next", "track"), - e("⏮️", "previous", "track"), - e("⏩", "fast", "forward"), - e("⏪", "rewind"), - e("⏫", "fast", "up"), - e("⏬", "fast", "down"), - e("◀️", "reverse"), - e("🔼", "up", "triangle"), - e("🔽", "down", "triangle"), - e("➡️", "right", "arrow"), - e("⬅️", "left", "arrow"), - e("⬆️", "up", "arrow"), - e("⬇️", "down", "arrow"), - e("↗️", "upper", "right"), - e("↘️", "lower", "right"), - e("↙️", "lower", "left"), - e("↖️", "upper", "left"), - e("↕️", "up", "down"), - e("↔️", "left", "right"), - e("↩️", "leftwards"), - e("↪️", "rightwards"), - e("⤴️", "right", "curve"), - e("⤵️", "left", "curve"), - e("🔀", "shuffle"), - e("🔁", "repeat"), - e("🔂", "repeat", "one"), - e("🔄", "counterclockwise"), - e("🔃", "clockwise"), - e("🎵", "musical", "note"), - e("🎶", "notes", "music"), - e("➕", "plus"), - e("➖", "minus"), - e("➗", "divide"), - e("✖️", "multiply"), - e("🟰", "equals"), + e("⛎", "ophiuchus"), + e("🔀", "shuffle", "tracks", "button", "twisted", "rightwards", "arrows"), + e("🔁", "repeat", "button", "loop"), + e("🔂", "repeat", "single", "button", "one"), + e("▶️", "play", "button", "arrow", "forward"), + e("⏩", "fast", "forward", "button"), + e("⏭️", "next", "track", "button"), + e("⏯️", "play", "or", "pause", "button"), + e("◀️", "reverse", "button", "arrow", "backward"), + e("⏪", "fast", "reverse", "button", "rewind"), + e("⏮️", "last", "track", "button", "previous"), + e("🔼", "upwards", "button", "arrow", "up", "small"), + e("⏫", "fast", "up", "button", "arrow", "double"), + e("🔽", "downwards", "button", "arrow", "down", "small"), + e("⏬", "fast", "down", "button", "arrow", "double"), + e("⏸️", "pause", "button"), + e("⏹️", "stop", "button"), + e("⏺️", "record", "button"), + e("⏏️", "eject", "button"), + e("🎦", "cinema", "film", "movie"), + e("🔅", "dim", "button", "low", "brightness"), + e("🔆", "bright", "button", "high", "brightness"), + e("📶", "antenna", "bars", "signal", "strength", "wifi"), + e("🛜", "wireless", "wifi"), + e("📳", "vibration", "mode"), + e("📴", "mobile", "phone", "off", "mute"), + e("♀️", "female", "sign"), + e("♂️", "male", "sign"), + e("⚧️", "transgender", "symbol"), + e("✖️", "multiply", "heavy", "multiplication", "x"), + e("➕", "plus", "heavy", "sign"), + e("➖", "minus", "heavy", "sign"), + e("➗", "divide", "heavy", "division", "sign"), + e("🟰", "heavy", "equals", "sign"), e("♾️", "infinity"), - e("💲", "dollar", "sign"), + e("‼️", "double", "exclamation", "mark", "bangbang"), + e("⁉️", "exclamation", "question", "mark", "interrobang"), + e("❓", "red", "question", "mark", "confused"), + e("❔", "white", "question", "mark", "grey"), + e("❕", "white", "exclamation", "mark", "grey"), + e("❗", "red", "exclamation", "mark", "heavy", "bang"), + e("〰️", "wavy", "dash"), e("💱", "currency", "exchange"), - e("™️", "trademark"), + e("💲", "heavy", "dollar", "sign"), + e("⚕️", "medical", "symbol"), + e("♻️", "recycling", "symbol", "recycle", "environment", "green"), + e("⚜️", "fleur", "de", "lis"), + e("🔱", "trident", "emblem"), + e("📛", "name", "badge"), + e("🔰", "japanese", "symbol", "for", "beginner"), + e("⭕", "hollow", "red", "circle", "o"), + e("✅", "check", "mark", "button", "white"), + e("☑️", "check", "box", "with", "ballot"), + e("✔️", "check", "mark", "heavy"), + e("❌", "cross", "mark", "x"), + e("❎", "cross", "mark", "button", "negative", "squared"), + e("➰", "curly", "loop"), + e("➿", "double", "curly", "loop"), + e("〽️", "part", "alternation", "mark"), + e("✳️", "eight", "spoked", "asterisk"), + e("✴️", "eight", "pointed", "star", "black"), + e("❇️", "sparkle"), e("©️", "copyright"), e("®️", "registered"), - e("〰️", "wavy", "dash"), - e("➰", "curly", "loop"), - e("➿", "double", "curly"), - e("🔚", "end"), - e("🔙", "back"), - e("🔛", "on"), - e("🔝", "top"), - e("🔜", "soon"), - e("✔️", "check"), - e("☑️", "ballot", "check"), - e("🔘", "radio", "button"), + e("™️", "trade", "mark", "tm", "trademark"), + e("#️⃣", "hash", "number"), + e("*️⃣", "asterisk"), + e("0️⃣", "0", "zero"), + e("1️⃣", "1", "one"), + e("2️⃣", "2", "two"), + e("3️⃣", "3", "three"), + e("4️⃣", "4", "four"), + e("5️⃣", "5", "five"), + e("6️⃣", "6", "six"), + e("7️⃣", "7", "seven"), + e("8️⃣", "8", "eight"), + e("9️⃣", "9", "nine"), + e("🔟", "10", "keycap", "ten"), + e("🔠", "input", "latin", "uppercase", "capital", "abcd", "letters"), + e("🔡", "input", "latin", "lowercase", "abcd"), + e("🔢", "input", "numbers", "1234"), + e("🔣", "input", "symbols"), + e("🔤", "input", "latin", "letters", "abc", "alphabet"), + e("🅰️", "a", "button"), + e("🆎", "ab", "button"), + e("🅱️", "b", "button"), + e("🆑", "cl", "button"), + e("🆒", "cool", "button"), + e("🆓", "free", "button"), + e("ℹ️", "information", "source"), + e("🆔", "id", "button"), + e("Ⓜ️", "circled", "m"), + e("🆕", "new", "button", "fresh"), + e("🆖", "ng", "button"), + e("🅾️", "o", "button", "o2"), + e("🆗", "ok", "button", "yes"), + e("🅿️", "p", "button", "parking"), + e("🆘", "sos", "button", "help", "emergency"), + e("🆙", "button", "up"), + e("🆚", "vs", "button"), + e("🈁", "japanese", "button", "koko"), + e("🈂️", "japanese", "button", "sa"), + e("🈷️", "japanese", "button", "u6708"), + e("🈶", "japanese", "free", "of", "button", "u6709"), + e("🈯", "japanese", "button", "u6307"), + e("🉐", "japanese", "button", "ideograph", "advantage"), + e("🈹", "japanese", "button", "u5272"), + e("🈚", "japanese", "of", "button", "u7121"), + e("🈲", "japanese", "button", "u7981"), + e("🉑", "japanese", "button", "accept"), + e("🈸", "japanese", "button", "u7533"), + e("🈴", "japanese", "button", "u5408"), + e("🈳", "japanese", "button", "u7a7a"), + e("㊗️", "japanese", "button", "congratulations"), + e("㊙️", "japanese", "button", "secret"), + e("🈺", "japanese", "for", "button", "u55b6"), + e("🈵", "japanese", "button", "u6e80"), e("🔴", "red", "circle"), e("🟠", "orange", "circle"), e("🟡", "yellow", "circle"), e("🟢", "green", "circle"), - e("🔵", "blue", "circle"), + e("🔵", "blue", "circle", "large"), e("🟣", "purple", "circle"), e("🟤", "brown", "circle"), e("⚫", "black", "circle"), @@ -1221,20 +1713,20 @@ internal object EmojiData { e("⬜", "white", "large", "square"), e("◼️", "black", "medium", "square"), e("◻️", "white", "medium", "square"), - e("◾", "black", "small", "square"), - e("◽", "white", "small", "square"), - e("▪️", "black", "smallest", "square"), - e("▫️", "white", "smallest", "square"), + e("◾", "black", "medium", "small", "square"), + e("◽", "white", "medium", "small", "square"), + e("▪️", "black", "small", "square"), + e("▫️", "white", "small", "square"), e("🔶", "large", "orange", "diamond"), e("🔷", "large", "blue", "diamond"), e("🔸", "small", "orange", "diamond"), e("🔹", "small", "blue", "diamond"), - e("🔺", "red", "triangle", "up"), - e("🔻", "red", "triangle", "down"), - e("💠", "diamond", "shape"), - e("🔘", "radio"), - e("🔳", "white", "square"), - e("🔲", "black", "square"), + e("🔺", "red", "triangle", "pointed", "up", "small"), + e("🔻", "red", "triangle", "pointed", "down", "small"), + e("💠", "diamond", "with", "a", "dot", "shape", "inside"), + e("🔘", "radio", "button"), + e("🔳", "white", "square", "button"), + e("🔲", "black", "square", "button"), ), ) @@ -1243,63 +1735,275 @@ internal object EmojiData { icon = "🏁", emojis = listOf( - e("🏁", "checkered", "flag"), - e("🚩", "triangular", "flag"), + e("🏁", "chequered", "flag", "checkered", "milestone", "finish"), + e("🚩", "triangular", "flag", "on", "post"), e("🎌", "crossed", "flags"), e("🏴", "black", "flag"), e("🏳️", "white", "flag"), e("🏳️‍🌈", "rainbow", "flag", "pride"), e("🏳️‍⚧️", "transgender", "flag"), e("🏴‍☠️", "pirate", "flag"), - e("🇺🇸", "us", "usa", "america"), - e("🇬🇧", "uk", "britain"), - e("🇨🇦", "canada"), - e("🇦🇺", "australia"), - e("🇩🇪", "germany"), - e("🇫🇷", "france"), - e("🇪🇸", "spain"), - e("🇮🇹", "italy"), - e("🇯🇵", "japan"), - e("🇰🇷", "korea", "south"), - e("🇨🇳", "china"), - e("🇮🇳", "india"), - e("🇧🇷", "brazil"), - e("🇲🇽", "mexico"), - e("🇷🇺", "russia"), - e("🇿🇦", "south", "africa"), - e("🇳🇬", "nigeria"), - e("🇪🇬", "egypt"), - e("🇸🇦", "saudi", "arabia"), - e("🇦🇪", "uae", "emirates"), - e("🇮🇱", "israel"), - e("🇹🇷", "turkey"), - e("🇳🇱", "netherlands"), - e("🇧🇪", "belgium"), - e("🇨🇭", "switzerland"), - e("🇦🇹", "austria"), - e("🇸🇪", "sweden"), - e("🇳🇴", "norway"), - e("🇩🇰", "denmark"), - e("🇫🇮", "finland"), - e("🇵🇱", "poland"), - e("🇵🇹", "portugal"), - e("🇬🇷", "greece"), - e("🇮🇪", "ireland"), - e("🇳🇿", "new", "zealand"), - e("🇸🇬", "singapore"), - e("🇹🇭", "thailand"), - e("🇻🇳", "vietnam"), - e("🇮🇩", "indonesia"), - e("🇵🇭", "philippines"), - e("🇲🇾", "malaysia"), + e("🇦🇨", "ascension", "island"), + e("🇦🇩", "andorra"), + e("🇦🇪", "united", "arab", "emirates"), + e("🇦🇫", "afghanistan"), + e("🇦🇬", "antigua", "barbuda"), + e("🇦🇮", "anguilla"), + e("🇦🇱", "albania"), + e("🇦🇲", "armenia"), + e("🇦🇴", "angola"), + e("🇦🇶", "antarctica"), e("🇦🇷", "argentina"), - e("🇨🇴", "colombia"), + e("🇦🇸", "american", "samoa"), + e("🇦🇹", "austria"), + e("🇦🇺", "australia"), + e("🇦🇼", "aruba"), + e("🇦🇽", "åland", "islands", "aland"), + e("🇦🇿", "azerbaijan"), + e("🇧🇦", "bosnia", "herzegovina"), + e("🇧🇧", "barbados"), + e("🇧🇩", "bangladesh"), + e("🇧🇪", "belgium"), + e("🇧🇫", "burkina", "faso"), + e("🇧🇬", "bulgaria"), + e("🇧🇭", "bahrain"), + e("🇧🇮", "burundi"), + e("🇧🇯", "benin"), + e("🇧🇱", "barthélemy", "st", "barthelemy"), + e("🇧🇲", "bermuda"), + e("🇧🇳", "brunei"), + e("🇧🇴", "bolivia"), + e("🇧🇶", "caribbean", "netherlands"), + e("🇧🇷", "brazil"), + e("🇧🇸", "bahamas"), + e("🇧🇹", "bhutan"), + e("🇧🇻", "bouvet", "island"), + e("🇧🇼", "botswana"), + e("🇧🇾", "belarus"), + e("🇧🇿", "belize"), + e("🇨🇦", "canada"), + e("🇨🇨", "cocos", "islands", "keeling"), + e("🇨🇩", "congo", "kinshasa"), + e("🇨🇫", "central", "african", "republic"), + e("🇨🇬", "congo", "brazzaville"), + e("🇨🇭", "switzerland"), + e("🇨🇮", "côte", "cote", "divoire", "ivory"), + e("🇨🇰", "cook", "islands"), e("🇨🇱", "chile"), - e("🇵🇪", "peru"), - e("🇺🇦", "ukraine"), - e("🇷🇴", "romania"), + e("🇨🇲", "cameroon"), + e("🇨🇳", "china", "cn"), + e("🇨🇴", "colombia"), + e("🇨🇵", "clipperton", "island"), + e("🇨🇷", "costa", "rica"), + e("🇨🇺", "cuba"), + e("🇨🇻", "cape", "verde"), + e("🇨🇼", "curaçao", "curacao"), + e("🇨🇽", "christmas", "island"), + e("🇨🇾", "cyprus"), + e("🇨🇿", "czechia", "czech", "republic"), + e("🇩🇪", "germany", "de", "flag"), + e("🇩🇬", "diego", "garcia"), + e("🇩🇯", "djibouti"), + e("🇩🇰", "denmark"), + e("🇩🇲", "dominica"), + e("🇩🇴", "dominican", "republic"), + e("🇩🇿", "algeria"), + e("🇪🇦", "ceuta", "melilla"), + e("🇪🇨", "ecuador"), + e("🇪🇪", "estonia"), + e("🇪🇬", "egypt"), + e("🇪🇭", "western", "sahara"), + e("🇪🇷", "eritrea"), + e("🇪🇸", "spain", "es"), + e("🇪🇹", "ethiopia"), + e("🇪🇺", "european", "union", "eu"), + e("🇫🇮", "finland"), + e("🇫🇯", "fiji"), + e("🇫🇰", "falkland", "islands"), + e("🇫🇲", "micronesia"), + e("🇫🇴", "faroe", "islands"), + e("🇫🇷", "france", "fr", "french"), + e("🇬🇦", "gabon"), + e("🇬🇧", "united", "kingdom", "gb", "uk", "flag", "british"), + e("🇬🇩", "grenada"), + e("🇬🇪", "georgia"), + e("🇬🇫", "french", "guiana"), + e("🇬🇬", "guernsey"), + e("🇬🇭", "ghana"), + e("🇬🇮", "gibraltar"), + e("🇬🇱", "greenland"), + e("🇬🇲", "gambia"), + e("🇬🇳", "guinea"), + e("🇬🇵", "guadeloupe"), + e("🇬🇶", "equatorial", "guinea"), + e("🇬🇷", "greece"), + e("🇬🇸", "south", "georgia", "sandwich", "islands"), + e("🇬🇹", "guatemala"), + e("🇬🇺", "guam"), + e("🇬🇼", "guinea", "bissau"), + e("🇬🇾", "guyana"), + e("🇭🇰", "hong", "kong", "sar", "china"), + e("🇭🇲", "heard", "mcdonald", "islands"), + e("🇭🇳", "honduras"), + e("🇭🇷", "croatia"), + e("🇭🇹", "haiti"), e("🇭🇺", "hungary"), - e("🇨🇿", "czech"), + e("🇮🇨", "canary", "islands"), + e("🇮🇩", "indonesia"), + e("🇮🇪", "ireland"), + e("🇮🇱", "israel"), + e("🇮🇲", "isle", "of", "man"), + e("🇮🇳", "india"), + e("🇮🇴", "british", "indian", "ocean", "territory"), + e("🇮🇶", "iraq"), + e("🇮🇷", "iran"), + e("🇮🇸", "iceland"), + e("🇮🇹", "italy", "it"), + e("🇯🇪", "jersey"), + e("🇯🇲", "jamaica"), + e("🇯🇴", "jordan"), + e("🇯🇵", "japan", "jp"), + e("🇰🇪", "kenya"), + e("🇰🇬", "kyrgyzstan"), + e("🇰🇭", "cambodia"), + e("🇰🇮", "kiribati"), + e("🇰🇲", "comoros"), + e("🇰🇳", "kitts", "nevis", "st"), + e("🇰🇵", "north", "korea"), + e("🇰🇷", "south", "korea", "kr"), + e("🇰🇼", "kuwait"), + e("🇰🇾", "cayman", "islands"), + e("🇰🇿", "kazakhstan"), + e("🇱🇦", "laos"), + e("🇱🇧", "lebanon"), + e("🇱🇨", "lucia", "st"), + e("🇱🇮", "liechtenstein"), + e("🇱🇰", "sri", "lanka"), + e("🇱🇷", "liberia"), + e("🇱🇸", "lesotho"), + e("🇱🇹", "lithuania"), + e("🇱🇺", "luxembourg"), + e("🇱🇻", "latvia"), + e("🇱🇾", "libya"), + e("🇲🇦", "morocco"), + e("🇲🇨", "monaco"), + e("🇲🇩", "moldova"), + e("🇲🇪", "montenegro"), + e("🇲🇫", "martin", "st"), + e("🇲🇬", "madagascar"), + e("🇲🇭", "marshall", "islands"), + e("🇲🇰", "north", "macedonia"), + e("🇲🇱", "mali"), + e("🇲🇲", "myanmar", "burma"), + e("🇲🇳", "mongolia"), + e("🇲🇴", "macao", "sar", "china", "macau"), + e("🇲🇵", "northern", "mariana", "islands"), + e("🇲🇶", "martinique"), + e("🇲🇷", "mauritania"), + e("🇲🇸", "montserrat"), + e("🇲🇹", "malta"), + e("🇲🇺", "mauritius"), + e("🇲🇻", "maldives"), + e("🇲🇼", "malawi"), + e("🇲🇽", "mexico"), + e("🇲🇾", "malaysia"), + e("🇲🇿", "mozambique"), + e("🇳🇦", "namibia"), + e("🇳🇨", "new", "caledonia"), + e("🇳🇪", "niger"), + e("🇳🇫", "norfolk", "island"), + e("🇳🇬", "nigeria"), + e("🇳🇮", "nicaragua"), + e("🇳🇱", "netherlands"), + e("🇳🇴", "norway"), + e("🇳🇵", "nepal"), + e("🇳🇷", "nauru"), + e("🇳🇺", "niue"), + e("🇳🇿", "new", "zealand"), + e("🇴🇲", "oman"), + e("🇵🇦", "panama"), + e("🇵🇪", "peru"), + e("🇵🇫", "french", "polynesia"), + e("🇵🇬", "papua", "new", "guinea"), + e("🇵🇭", "philippines"), + e("🇵🇰", "pakistan"), + e("🇵🇱", "poland"), + e("🇵🇲", "pierre", "miquelon", "st"), + e("🇵🇳", "pitcairn", "islands"), + e("🇵🇷", "puerto", "rico"), + e("🇵🇸", "palestinian", "territories"), + e("🇵🇹", "portugal"), + e("🇵🇼", "palau"), + e("🇵🇾", "paraguay"), + e("🇶🇦", "qatar"), + e("🇷🇪", "réunion", "reunion"), + e("🇷🇴", "romania"), + e("🇷🇸", "serbia"), + e("🇷🇺", "russia", "ru"), + e("🇷🇼", "rwanda"), + e("🇸🇦", "saudi", "arabia"), + e("🇸🇧", "solomon", "islands"), + e("🇸🇨", "seychelles"), + e("🇸🇩", "sudan"), + e("🇸🇪", "sweden"), + e("🇸🇬", "singapore"), + e("🇸🇭", "helena", "st"), + e("🇸🇮", "slovenia"), + e("🇸🇯", "svalbard", "jan", "mayen"), + e("🇸🇰", "slovakia"), + e("🇸🇱", "sierra", "leone"), + e("🇸🇲", "san", "marino"), + e("🇸🇳", "senegal"), + e("🇸🇴", "somalia"), + e("🇸🇷", "suriname"), + e("🇸🇸", "south", "sudan"), + e("🇸🇹", "são", "tomé", "príncipe", "sao", "tome", "principe"), + e("🇸🇻", "el", "salvador"), + e("🇸🇽", "sint", "maarten"), + e("🇸🇾", "syria"), + e("🇸🇿", "eswatini", "swaziland"), + e("🇹🇦", "tristan", "da", "cunha"), + e("🇹🇨", "turks", "caicos", "islands"), + e("🇹🇩", "chad"), + e("🇹🇫", "french", "southern", "territories"), + e("🇹🇬", "togo"), + e("🇹🇭", "thailand"), + e("🇹🇯", "tajikistan"), + e("🇹🇰", "tokelau"), + e("🇹🇱", "timor", "leste"), + e("🇹🇲", "turkmenistan"), + e("🇹🇳", "tunisia"), + e("🇹🇴", "tonga"), + e("🇹🇷", "turkey", "tr"), + e("🇹🇹", "trinidad", "tobago"), + e("🇹🇻", "tuvalu"), + e("🇹🇼", "taiwan"), + e("🇹🇿", "tanzania"), + e("🇺🇦", "ukraine"), + e("🇺🇬", "uganda"), + e("🇺🇲", "outlying", "islands", "us"), + e("🇺🇳", "united", "nations"), + e("🇺🇸", "united", "states", "us", "flag", "america"), + e("🇺🇾", "uruguay"), + e("🇺🇿", "uzbekistan"), + e("🇻🇦", "vatican", "city"), + e("🇻🇨", "vincent", "grenadines", "st"), + e("🇻🇪", "venezuela"), + e("🇻🇬", "british", "virgin", "islands"), + e("🇻🇮", "virgin", "islands", "us"), + e("🇻🇳", "vietnam"), + e("🇻🇺", "vanuatu"), + e("🇼🇫", "wallis", "futuna"), + e("🇼🇸", "samoa"), + e("🇽🇰", "kosovo"), + e("🇾🇪", "yemen"), + e("🇾🇹", "mayotte"), + e("🇿🇦", "south", "africa"), + e("🇿🇲", "zambia"), + e("🇿🇼", "zimbabwe"), + e("🏴󠁧󠁢󠁥󠁮󠁧󠁿", "england"), + e("🏴󠁧󠁢󠁳󠁣󠁴󠁿", "scotland"), + e("🏴󠁧󠁢󠁷󠁬󠁳󠁿", "wales"), ), ) } diff --git a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerDialog.kt b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerDialog.kt index 4a710b0b3..89deefe6d 100644 --- a/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerDialog.kt +++ b/core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/emoji/EmojiPickerDialog.kt @@ -58,7 +58,6 @@ import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.runtime.snapshotFlow @@ -71,7 +70,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.compose.ui.window.Popup -import kotlinx.coroutines.launch import org.jetbrains.compose.resources.stringResource import org.koin.compose.viewmodel.koinViewModel import org.meshtastic.core.resources.Res @@ -288,15 +286,17 @@ private fun EmojiGrid( onEmojiSelected: (String) -> Unit, ) { val gridState = rememberLazyGridState() - val scope = rememberCoroutineScope() val hasRecents = recentEmojis.isNotEmpty() val tabOffset = if (hasRecents) 1 else 0 val gridItems: List = remember(searchQuery, recentEmojis) { buildGridItems(searchQuery, recentEmojis) } + var animationTargetIndex by remember { mutableStateOf(null) } // Scroll to category when tab changes LaunchedEffect(selectedCategoryIndex) { if (searchQuery.isNotBlank()) return@LaunchedEffect + if (selectedCategoryIndex == animationTargetIndex) return@LaunchedEffect + val targetKey = if (hasRecents && selectedCategoryIndex == 0) { RECENTS_HEADER_KEY @@ -311,7 +311,12 @@ private fun EmojiGrid( targetKey?.let { key -> val itemIndex = gridItems.indexOfFirst { it is GridItem.Header && it.key == key } if (itemIndex >= 0) { - scope.launch { gridState.animateScrollToItem(itemIndex) } + try { + animationTargetIndex = selectedCategoryIndex + gridState.animateScrollToItem(itemIndex) + } finally { + animationTargetIndex = null + } } } } @@ -321,6 +326,7 @@ private fun EmojiGrid( if (searchQuery.isNotBlank()) return@LaunchedEffect snapshotFlow { gridState.firstVisibleItemIndex } .collect { firstVisible -> + if (animationTargetIndex != null) return@collect for (i in firstVisible downTo 0) { val item = gridItems.getOrNull(i) if (item is GridItem.Header) {