diff --git a/frontend/src/components/EmojiPicker.css b/frontend/src/components/EmojiPicker.css index 2dfddf8..c0f57d7 100644 --- a/frontend/src/components/EmojiPicker.css +++ b/frontend/src/components/EmojiPicker.css @@ -35,6 +35,31 @@ right: 0; } +.emoji-picker-search { + position: sticky; + top: 0; + z-index: 1; + background: var(--ds-surface-2); + border: 1px solid var(--ds-border); + border-radius: var(--radius); + padding: 6px 10px; + color: var(--ds-text); + font-size: 0.82rem; + outline: none; + flex: none; +} + +.emoji-picker-search:focus { + border-color: var(--ds-accent); +} + +.emoji-picker-no-results { + font-size: 0.82rem; + color: var(--ds-muted); + padding: var(--sp-3) var(--sp-2); + text-align: center; +} + .emoji-picker-category-label { font-size: 0.7rem; font-weight: 700; diff --git a/frontend/src/components/EmojiPicker.tsx b/frontend/src/components/EmojiPicker.tsx index b77d160..0bf9324 100644 --- a/frontend/src/components/EmojiPicker.tsx +++ b/frontend/src/components/EmojiPicker.tsx @@ -1,5 +1,7 @@ +import { useMemo, useState } from 'react' import { useEscapeKey } from '../hooks/useEscapeKey' -import { EMOJI_CATEGORIES } from '../lib/emoji' +import { ALL_EMOJI, EMOJI_CATEGORIES } from '../lib/emoji' +import { EMOJI_NAMES } from '../lib/emojiNames' import './EmojiPicker.css' interface EmojiPickerProps { @@ -9,8 +11,29 @@ interface EmojiPickerProps { align?: 'left' | 'right' } +function searchEmoji(query: string): string[] { + const q = query.trim().toLowerCase() + if (!q) return [] + const seen = new Set() + const results: string[] = [] + for (const emoji of ALL_EMOJI) { + if (seen.has(emoji)) continue + const entry = EMOJI_NAMES[emoji] + if (!entry) continue + const matches = entry.name.toLowerCase().includes(q) || entry.keywords.some((k) => k.toLowerCase().includes(q)) + if (matches) { + seen.add(emoji) + results.push(emoji) + } + } + return results +} + export function EmojiPicker({ onPick, onClose, placement = 'below', align = 'left' }: EmojiPickerProps) { useEscapeKey(onClose) + const [query, setQuery] = useState('') + const searchResults = useMemo(() => searchEmoji(query), [query]) + const searching = query.trim().length > 0 return ( <> @@ -19,24 +42,54 @@ export function EmojiPicker({ onPick, onClose, placement = 'below', align = 'lef className={`emoji-picker emoji-picker-${placement} emoji-picker-${align}`} role="menu" > - {EMOJI_CATEGORIES.map((category) => ( -
-
{category.label}
+ setQuery(e.target.value)} + autoFocus + /> + {searching ? ( + searchResults.length > 0 ? (
- {category.emoji.map((emoji) => ( + {searchResults.map((emoji) => ( ))}
-
- ))} + ) : ( +
No emoji found
+ ) + ) : ( + EMOJI_CATEGORIES.map((category) => ( +
+
{category.label}
+
+ {category.emoji.map((emoji) => ( + + ))} +
+
+ )) + )} ) diff --git a/frontend/src/lib/emojiNames.ts b/frontend/src/lib/emojiNames.ts new file mode 100644 index 0000000..c814d49 --- /dev/null +++ b/frontend/src/lib/emojiNames.ts @@ -0,0 +1,942 @@ +// Names/keywords for search, generated once from emojibase-data (MIT +// licensed, https://github.com/milesj/emojibase -- en/data.json), matched +// against the emoji actually used in emoji.ts. Not a runtime dependency: +// emojibase-data was only ever a dev-time tool to produce this static +// lookup, never added to package.json. Keys use whichever exact codepoint +// sequence emoji.ts uses (with or without a trailing variation selector); +// if emoji.ts ever adds a new entry, this needs regenerating to match. +export interface EmojiNameEntry { + name: string + keywords: string[] +} + +export const EMOJI_NAMES: Record = { + '‼️': { name: 'double exclamation mark', keywords: ['!', '!!', 'bangbang', 'double', 'exclamation', 'mark', 'punctuation'] }, + '⁉️': { name: 'exclamation question mark', keywords: ['!', '!?', '?', 'exclamation', 'interrobang', 'mark', 'punctuation', 'question'] }, + '⌚': { name: 'watch', keywords: ['clock', 'time'] }, + '⌛': { name: 'hourglass done', keywords: ['done', 'hourglass', 'sand', 'time', 'timer'] }, + '⌨️': { name: 'keyboard', keywords: ['computer'] }, + '⏰': { name: 'alarm clock', keywords: ['alarm', 'clock', 'hours', 'hrs', 'late', 'time', 'waiting'] }, + '⏱️': { name: 'stopwatch', keywords: ['clock', 'time'] }, + '⏲️': { name: 'timer clock', keywords: ['clock', 'timer'] }, + '⏳': { name: 'hourglass not done', keywords: ['done', 'flowing', 'hourglass', 'hours', 'not', 'sand', 'timer', 'waiting', 'yolo'] }, + '◻️': { name: 'white medium square', keywords: ['geometric', 'medium', 'square', 'white'] }, + '◼️': { name: 'black medium square', keywords: ['black', 'geometric', 'medium', 'square'] }, + '☀️': { name: 'sun', keywords: ['bright', 'rays', 'space', 'sunny', 'weather'] }, + '☁️': { name: 'cloud', keywords: ['weather'] }, + '☃️': { name: 'snowman', keywords: ['cold', 'man', 'snow'] }, + '☄️': { name: 'comet', keywords: ['space'] }, + '☎️': { name: 'telephone', keywords: ['phone'] }, + '☑️': { name: 'check box with check', keywords: ['ballot', 'box', 'check', 'checked', 'done', 'off', 'tick', '✓'] }, + '☔': { name: 'umbrella with rain drops', keywords: ['clothing', 'drop', 'drops', 'rain', 'umbrella', 'weather'] }, + '☕': { name: 'hot beverage', keywords: ['beverage', 'cafe', 'caffeine', 'chai', 'coffee', 'drink', 'hot', 'morning', 'steaming', 'tea'] }, + '☘️': { name: 'shamrock', keywords: ['irish', 'plant'] }, + '☝️': { name: 'index pointing up', keywords: ['finger', 'hand', 'index', 'point', 'pointing', 'this', 'up'] }, + '☠️': { name: 'skull and crossbones', keywords: ['bone', 'crossbones', 'dead', 'death', 'face', 'monster', 'skull'] }, + '☢️': { name: 'radioactive', keywords: ['sign'] }, + '☣️': { name: 'biohazard', keywords: ['sign'] }, + '☹️': { name: 'frowning face', keywords: ['face', 'frown', 'frowning', 'sad'] }, + '♟️': { name: 'chess pawn', keywords: ['chess', 'dupe', 'expendable', 'pawn'] }, + '♥️': { name: 'heart suit', keywords: ['card', 'emotion', 'game', 'heart', 'hearts', 'suit'] }, + '♻️': { name: 'recycling symbol', keywords: ['recycle', 'recycling', 'symbol'] }, + '♾️': { name: 'infinity', keywords: ['forever', 'unbounded', 'universal'] }, + '⚒️': { name: 'hammer and pick', keywords: ['hammer', 'pick', 'tool'] }, + '⚓': { name: 'anchor', keywords: ['ship', 'tool'] }, + '⚔️': { name: 'crossed swords', keywords: ['crossed', 'swords', 'weapon'] }, + '⚕️': { name: 'medical symbol', keywords: ['aesculapius', 'medical', 'medicine', 'staff', 'symbol'] }, + '⚖️': { name: 'balance scale', keywords: ['balance', 'justice', 'libra', 'scale', 'scales', 'tool', 'weight', 'zodiac'] }, + '⚗️': { name: 'alembic', keywords: ['chemistry', 'tool'] }, + '⚙️': { name: 'gear', keywords: ['cog', 'cogwheel', 'tool'] }, + '⚜️': { name: 'fleur-de-lis', keywords: ['knights'] }, + '⚡': { name: 'high voltage', keywords: ['danger', 'electric', 'electricity', 'high', 'lightning', 'nature', 'thunder', 'thunderbolt', 'voltage', 'zap'] }, + '⚪': { name: 'white circle', keywords: ['circle', 'geometric', 'white'] }, + '⚫': { name: 'black circle', keywords: ['black', 'circle', 'geometric'] }, + '⚰️': { name: 'coffin', keywords: ['dead', 'death', 'vampire'] }, + '⚽': { name: 'soccer ball', keywords: ['ball', 'football', 'futbol', 'soccer', 'sport'] }, + '⚾': { name: 'baseball', keywords: ['ball', 'sport'] }, + '⛄': { name: 'snowman without snow', keywords: ['cold', 'man', 'snow', 'snowman'] }, + '⛅': { name: 'sun behind cloud', keywords: ['behind', 'cloud', 'cloudy', 'sun', 'weather'] }, + '⛈️': { name: 'cloud with lightning and rain', keywords: ['cloud', 'lightning', 'rain', 'thunder', 'thunderstorm'] }, + '⛏️': { name: 'pick', keywords: ['hammer', 'mining', 'tool'] }, + '⛓️': { name: 'chains', keywords: ['chain'] }, + '⛔': { name: 'no entry', keywords: ['do', 'entry', 'fail', 'forbidden', 'no', 'not', 'pass', 'prohibited', 'traffic'] }, + '⛩️': { name: 'shinto shrine', keywords: ['religion', 'shinto', 'shrine'] }, + '⛪': { name: 'church', keywords: ['bless', 'chapel', 'christian', 'cross', 'religion'] }, + '⛰️': { name: 'mountain', keywords: ['mountain'] }, + '⛲': { name: 'fountain', keywords: ['fountain'] }, + '⛳': { name: 'flag in hole', keywords: ['flag', 'golf', 'hole', 'sport'] }, + '⛵': { name: 'sailboat', keywords: ['boat', 'resort', 'sailing', 'sea', 'yacht'] }, + '⛷️': { name: 'skier', keywords: ['ski', 'snow'] }, + '⛸️': { name: 'ice skate', keywords: ['ice', 'skate', 'skating'] }, + '⛹️': { name: 'person bouncing ball', keywords: ['athletic', 'ball', 'basketball', 'bouncing', 'championship', 'dribble', 'net', 'person', 'player', 'throw'] }, + '⛺': { name: 'tent', keywords: ['camping'] }, + '✂️': { name: 'scissors', keywords: ['cut', 'cutting', 'paper', 'tool'] }, + '✅': { name: 'check mark button', keywords: ['button', 'check', 'checked', 'checkmark', 'complete', 'completed', 'done', 'fixed', 'mark', 'tick', '✓'] }, + '✈️': { name: 'airplane', keywords: ['aeroplane', 'fly', 'flying', 'jet', 'plane', 'travel'] }, + '✊': { name: 'raised fist', keywords: ['clenched', 'fist', 'hand', 'punch', 'raised', 'solidarity'] }, + '✋': { name: 'raised hand', keywords: ['5', 'five', 'hand', 'high', 'raised', 'stop'] }, + '✌️': { name: 'victory hand', keywords: ['hand', 'peace', 'v', 'victory'] }, + '✍️': { name: 'writing hand', keywords: ['hand', 'write', 'writing'] }, + '✏️': { name: 'pencil', keywords: ['pencil'] }, + '✔️': { name: 'check mark', keywords: ['check', 'checked', 'checkmark', 'done', 'heavy', 'mark', 'tick', '✓'] }, + '✖️': { name: 'multiply', keywords: ['cancel', 'multiplication', 'sign', 'x', '×'] }, + '✨': { name: 'sparkles', keywords: ['*', 'magic', 'sparkle', 'star'] }, + '✳️': { name: 'eight-spoked asterisk', keywords: ['*', 'asterisk', 'eight-spoked'] }, + '✴️': { name: 'eight-pointed star', keywords: ['*', 'eight-pointed', 'star'] }, + '❄️': { name: 'snowflake', keywords: ['cold', 'snow', 'weather'] }, + '❇️': { name: 'sparkle', keywords: ['*'] }, + '❌': { name: 'cross mark', keywords: ['cancel', 'cross', 'mark', 'multiplication', 'multiply', 'x', '×'] }, + '❎': { name: 'cross mark button', keywords: ['button', 'cross', 'mark', 'multiplication', 'multiply', 'square', 'x', '×'] }, + '❓': { name: 'red question mark', keywords: ['?', 'mark', 'punctuation', 'question', 'red'] }, + '❔': { name: 'white question mark', keywords: ['?', 'mark', 'outlined', 'punctuation', 'question', 'white'] }, + '❕': { name: 'white exclamation mark', keywords: ['!', 'exclamation', 'mark', 'outlined', 'punctuation', 'white'] }, + '❗': { name: 'red exclamation mark', keywords: ['!', 'exclamation', 'mark', 'punctuation', 'red'] }, + '❤️': { name: 'red heart', keywords: ['emotion', 'heart', 'love', 'red'] }, + '❤️‍🔥': { name: 'heart on fire', keywords: ['burn', 'fire', 'heart', 'love', 'lust', 'sacred'] }, + '➕': { name: 'plus', keywords: ['+'] }, + '➖': { name: 'minus', keywords: ['-', 'heavy', 'math', 'sign', '−'] }, + '➗': { name: 'divide', keywords: ['division', 'heavy', 'math', 'sign', '÷'] }, + '⬛': { name: 'black large square', keywords: ['black', 'geometric', 'large', 'square'] }, + '⬜': { name: 'white large square', keywords: ['geometric', 'large', 'square', 'white'] }, + '⭐': { name: 'star', keywords: ['astronomy', 'medium', 'stars', 'white'] }, + '⭕': { name: 'hollow red circle', keywords: ['circle', 'heavy', 'hollow', 'large', 'o', 'red'] }, + '〰️': { name: 'wavy dash', keywords: ['dash', 'punctuation', 'wavy'] }, + '🀄': { name: 'mahjong red dragon', keywords: ['dragon', 'game', 'mahjong', 'red'] }, + '🃏': { name: 'joker', keywords: ['card', 'game', 'wildcard'] }, + '🅰️': { name: 'A button (blood type)', keywords: ['blood', 'button', 'type'] }, + '🅱️': { name: 'B button (blood type)', keywords: ['b', 'blood', 'button', 'type'] }, + '🅾️': { name: 'O button (blood type)', keywords: ['blood', 'button', 'o', 'type'] }, + '🆎': { name: 'AB button (blood type)', keywords: ['ab', 'blood', 'button', 'type'] }, + '🆒': { name: 'COOL button', keywords: ['button', 'cool'] }, + '🆓': { name: 'FREE button', keywords: ['button', 'free'] }, + '🆕': { name: 'NEW button', keywords: ['button', 'new'] }, + '🆗': { name: 'OK button', keywords: ['button', 'ok', 'okay'] }, + '🆙': { name: 'UP! button', keywords: ['button', 'mark', 'up', 'up!'] }, + '🇦🇺': { name: 'flag: Australia', keywords: ['AU', 'flag'] }, + '🇧🇷': { name: 'flag: Brazil', keywords: ['BR', 'flag'] }, + '🇨🇦': { name: 'flag: Canada', keywords: ['CA', 'flag'] }, + '🇨🇳': { name: 'flag: China', keywords: ['CN', 'flag'] }, + '🇩🇪': { name: 'flag: Germany', keywords: ['DE', 'flag'] }, + '🇪🇸': { name: 'flag: Spain', keywords: ['ES', 'flag'] }, + '🇫🇷': { name: 'flag: France', keywords: ['FR', 'flag'] }, + '🇬🇧': { name: 'flag: United Kingdom', keywords: ['GB', 'flag'] }, + '🇮🇪': { name: 'flag: Ireland', keywords: ['IE', 'flag'] }, + '🇮🇳': { name: 'flag: India', keywords: ['IN', 'flag'] }, + '🇮🇹': { name: 'flag: Italy', keywords: ['IT', 'flag'] }, + '🇯🇵': { name: 'flag: Japan', keywords: ['JP', 'flag'] }, + '🇰🇷': { name: 'flag: South Korea', keywords: ['KR', 'flag'] }, + '🇲🇽': { name: 'flag: Mexico', keywords: ['MX', 'flag'] }, + '🇳🇱': { name: 'flag: Netherlands', keywords: ['NL', 'flag'] }, + '🇳🇴': { name: 'flag: Norway', keywords: ['NO', 'flag'] }, + '🇵🇹': { name: 'flag: Portugal', keywords: ['PT', 'flag'] }, + '🇷🇺': { name: 'flag: Russia', keywords: ['RU', 'flag'] }, + '🇸🇪': { name: 'flag: Sweden', keywords: ['SE', 'flag'] }, + '🇺🇸': { name: 'flag: United States', keywords: ['US', 'flag'] }, + '🌀': { name: 'cyclone', keywords: ['dizzy', 'hurricane', 'twister', 'typhoon', 'weather'] }, + '🌁': { name: 'foggy', keywords: ['fog'] }, + '🌃': { name: 'night with stars', keywords: ['night', 'star', 'stars'] }, + '🌄': { name: 'sunrise over mountains', keywords: ['morning', 'mountains', 'over', 'sun', 'sunrise'] }, + '🌅': { name: 'sunrise', keywords: ['morning', 'nature', 'sun'] }, + '🌆': { name: 'cityscape at dusk', keywords: ['at', 'building', 'city', 'cityscape', 'dusk', 'evening', 'landscape', 'sun', 'sunset'] }, + '🌇': { name: 'sunset', keywords: ['building', 'dusk', 'sun'] }, + '🌈': { name: 'rainbow', keywords: ['gay', 'genderqueer', 'glbt', 'glbtq', 'lesbian', 'lgbt', 'lgbtq', 'lgbtqia', 'nature', 'pride', 'queer', 'rain', 'trans', 'transgender', 'weather'] }, + '🌉': { name: 'bridge at night', keywords: ['at', 'bridge', 'night'] }, + '🌋': { name: 'volcano', keywords: ['eruption', 'mountain', 'nature'] }, + '🌍': { name: 'globe showing Europe-Africa', keywords: ['africa', 'earth', 'europe', 'europe-africa', 'globe', 'showing', 'world'] }, + '🌎': { name: 'globe showing Americas', keywords: ['americas', 'earth', 'globe', 'showing', 'world'] }, + '🌏': { name: 'globe showing Asia-Australia', keywords: ['asia', 'asia-australia', 'australia', 'earth', 'globe', 'showing', 'world'] }, + '🌑': { name: 'new moon', keywords: ['dark', 'moon', 'new', 'space'] }, + '🌒': { name: 'waxing crescent moon', keywords: ['crescent', 'dreams', 'moon', 'space', 'waxing'] }, + '🌓': { name: 'first quarter moon', keywords: ['first', 'moon', 'quarter', 'space'] }, + '🌔': { name: 'waxing gibbous moon', keywords: ['gibbous', 'moon', 'space', 'waxing'] }, + '🌕': { name: 'full moon', keywords: ['full', 'moon', 'space'] }, + '🌖': { name: 'waning gibbous moon', keywords: ['gibbous', 'moon', 'space', 'waning'] }, + '🌗': { name: 'last quarter moon', keywords: ['last', 'moon', 'quarter', 'space'] }, + '🌘': { name: 'waning crescent moon', keywords: ['crescent', 'moon', 'space', 'waning'] }, + '🌙': { name: 'crescent moon', keywords: ['crescent', 'moon', 'ramadan', 'space'] }, + '🌚': { name: 'new moon face', keywords: ['face', 'moon', 'new', 'space'] }, + '🌛': { name: 'first quarter moon face', keywords: ['face', 'first', 'moon', 'quarter', 'space'] }, + '🌜': { name: 'last quarter moon face', keywords: ['dreams', 'face', 'last', 'moon', 'quarter'] }, + '🌝': { name: 'full moon face', keywords: ['bright', 'face', 'full', 'moon'] }, + '🌞': { name: 'sun with face', keywords: ['beach', 'bright', 'day', 'face', 'heat', 'shine', 'sun', 'sunny', 'sunshine', 'weather'] }, + '🌟': { name: 'glowing star', keywords: ['glittery', 'glow', 'glowing', 'night', 'shining', 'sparkle', 'star', 'win'] }, + '🌤️': { name: 'sun behind small cloud', keywords: ['behind', 'cloud', 'sun', 'weather'] }, + '🌥️': { name: 'sun behind large cloud', keywords: ['behind', 'cloud', 'sun', 'weather'] }, + '🌦️': { name: 'sun behind rain cloud', keywords: ['behind', 'cloud', 'rain', 'sun', 'weather'] }, + '🌧️': { name: 'cloud with rain', keywords: ['cloud', 'rain', 'weather'] }, + '🌪️': { name: 'tornado', keywords: ['cloud', 'weather', 'whirlwind'] }, + '🌭': { name: 'hot dog', keywords: ['dog', 'frankfurter', 'hot', 'hotdog', 'sausage'] }, + '🌮': { name: 'taco', keywords: ['mexican'] }, + '🌯': { name: 'burrito', keywords: ['mexican', 'wrap'] }, + '🌰': { name: 'chestnut', keywords: ['almond', 'plant'] }, + '🌱': { name: 'seedling', keywords: ['plant', 'sapling', 'sprout', 'young'] }, + '🌲': { name: 'evergreen tree', keywords: ['christmas', 'evergreen', 'forest', 'pine', 'tree'] }, + '🌳': { name: 'deciduous tree', keywords: ['deciduous', 'forest', 'green', 'habitat', 'shedding', 'tree'] }, + '🌴': { name: 'palm tree', keywords: ['beach', 'palm', 'plant', 'tree', 'tropical'] }, + '🌵': { name: 'cactus', keywords: ['desert', 'drought', 'nature', 'plant'] }, + '🌶️': { name: 'hot pepper', keywords: ['hot', 'pepper'] }, + '🌷': { name: 'tulip', keywords: ['blossom', 'flower', 'growth', 'plant'] }, + '🌸': { name: 'cherry blossom', keywords: ['blossom', 'cherry', 'flower', 'plant', 'spring', 'springtime'] }, + '🌹': { name: 'rose', keywords: ['beauty', 'elegant', 'flower', 'love', 'plant', 'red', 'valentine'] }, + '🌺': { name: 'hibiscus', keywords: ['flower', 'plant'] }, + '🌻': { name: 'sunflower', keywords: ['flower', 'outdoors', 'plant', 'sun'] }, + '🌼': { name: 'blossom', keywords: ['buttercup', 'dandelion', 'flower', 'plant'] }, + '🌽': { name: 'ear of corn', keywords: ['corn', 'crops', 'ear', 'farm', 'maize', 'maze'] }, + '🌾': { name: 'sheaf of rice', keywords: ['ear', 'grain', 'grains', 'plant', 'rice', 'sheaf'] }, + '🌿': { name: 'herb', keywords: ['leaf', 'plant'] }, + '🍀': { name: 'four leaf clover', keywords: ['4', 'clover', 'four', 'four-leaf', 'irish', 'leaf', 'lucky', 'plant'] }, + '🍁': { name: 'maple leaf', keywords: ['falling', 'leaf', 'maple'] }, + '🍂': { name: 'fallen leaf', keywords: ['autumn', 'fall', 'fallen', 'falling', 'leaf'] }, + '🍃': { name: 'leaf fluttering in wind', keywords: ['blow', 'flutter', 'fluttering', 'leaf', 'wind'] }, + '🍄': { name: 'mushroom', keywords: ['fungus', 'toadstool'] }, + '🍅': { name: 'tomato', keywords: ['food', 'fruit', 'vegetable'] }, + '🍆': { name: 'eggplant', keywords: ['aubergine', 'vegetable'] }, + '🍇': { name: 'grapes', keywords: ['dionysus', 'fruit', 'grape'] }, + '🍈': { name: 'melon', keywords: ['cantaloupe', 'fruit'] }, + '🍉': { name: 'watermelon', keywords: ['fruit'] }, + '🍊': { name: 'tangerine', keywords: ['c', 'citrus', 'fruit', 'nectarine', 'orange', 'vitamin'] }, + '🍋': { name: 'lemon', keywords: ['citrus', 'fruit', 'sour'] }, + '🍌': { name: 'banana', keywords: ['fruit', 'potassium'] }, + '🍍': { name: 'pineapple', keywords: ['colada', 'fruit', 'pina', 'tropical'] }, + '🍎': { name: 'red apple', keywords: ['apple', 'diet', 'food', 'fruit', 'health', 'red', 'ripe'] }, + '🍏': { name: 'green apple', keywords: ['apple', 'fruit', 'green'] }, + '🍐': { name: 'pear', keywords: ['fruit'] }, + '🍑': { name: 'peach', keywords: ['fruit'] }, + '🍒': { name: 'cherries', keywords: ['berries', 'cherry', 'fruit', 'red'] }, + '🍓': { name: 'strawberry', keywords: ['berry', 'fruit'] }, + '🍔': { name: 'hamburger', keywords: ['burger', 'eat', 'fast', 'food', 'hungry'] }, + '🍕': { name: 'pizza', keywords: ['cheese', 'food', 'hungry', 'pepperoni', 'slice'] }, + '🍖': { name: 'meat on bone', keywords: ['bone', 'meat'] }, + '🍗': { name: 'poultry leg', keywords: ['bone', 'chicken', 'drumstick', 'hungry', 'leg', 'poultry', 'turkey'] }, + '🍘': { name: 'rice cracker', keywords: ['cracker', 'food', 'rice'] }, + '🍙': { name: 'rice ball', keywords: ['ball', 'food', 'japanese', 'rice'] }, + '🍚': { name: 'cooked rice', keywords: ['cooked', 'food', 'rice'] }, + '🍛': { name: 'curry rice', keywords: ['curry', 'food', 'rice'] }, + '🍜': { name: 'steaming bowl', keywords: ['bowl', 'chopsticks', 'food', 'noodle', 'pho', 'ramen', 'soup', 'steaming'] }, + '🍝': { name: 'spaghetti', keywords: ['food', 'meatballs', 'pasta', 'restaurant'] }, + '🍞': { name: 'bread', keywords: ['carbs', 'food', 'grain', 'loaf', 'restaurant', 'toast', 'wheat'] }, + '🍟': { name: 'french fries', keywords: ['fast', 'food', 'french', 'fries'] }, + '🍠': { name: 'roasted sweet potato', keywords: ['food', 'potato', 'roasted', 'sweet'] }, + '🍡': { name: 'dango', keywords: ['dessert', 'japanese', 'skewer', 'stick', 'sweet'] }, + '🍢': { name: 'oden', keywords: ['food', 'kebab', 'restaurant', 'seafood', 'skewer', 'stick'] }, + '🍣': { name: 'sushi', keywords: ['food'] }, + '🍤': { name: 'fried shrimp', keywords: ['fried', 'prawn', 'shrimp', 'tempura'] }, + '🍥': { name: 'fish cake with swirl', keywords: ['cake', 'fish', 'food', 'pastry', 'restaurant', 'swirl'] }, + '🍦': { name: 'soft ice cream', keywords: ['cream', 'dessert', 'food', 'ice', 'icecream', 'restaurant', 'serve', 'soft', 'sweet'] }, + '🍧': { name: 'shaved ice', keywords: ['dessert', 'ice', 'restaurant', 'shaved', 'sweet'] }, + '🍨': { name: 'ice cream', keywords: ['cream', 'dessert', 'food', 'ice', 'restaurant', 'sweet'] }, + '🍩': { name: 'doughnut', keywords: ['breakfast', 'dessert', 'donut', 'food', 'sweet'] }, + '🍪': { name: 'cookie', keywords: ['chip', 'chocolate', 'dessert', 'sweet'] }, + '🍫': { name: 'chocolate bar', keywords: ['bar', 'candy', 'chocolate', 'dessert', 'halloween', 'sweet', 'tooth'] }, + '🍬': { name: 'candy', keywords: ['cavities', 'dessert', 'halloween', 'restaurant', 'sweet', 'tooth', 'wrapper'] }, + '🍭': { name: 'lollipop', keywords: ['candy', 'dessert', 'food', 'restaurant', 'sweet'] }, + '🍮': { name: 'custard', keywords: ['dessert', 'pudding', 'sweet'] }, + '🍯': { name: 'honey pot', keywords: ['barrel', 'bear', 'food', 'honey', 'honeypot', 'jar', 'pot', 'sweet'] }, + '🍰': { name: 'shortcake', keywords: ['cake', 'dessert', 'pastry', 'slice', 'sweet'] }, + '🍱': { name: 'bento box', keywords: ['bento', 'box', 'food'] }, + '🍲': { name: 'pot of food', keywords: ['food', 'pot', 'soup', 'stew'] }, + '🍳': { name: 'cooking', keywords: ['breakfast', 'easy', 'egg', 'fry', 'frying', 'over', 'pan', 'restaurant', 'side', 'sunny', 'up'] }, + '🍴': { name: 'fork and knife', keywords: ['breakfast', 'breaky', 'cooking', 'cutlery', 'delicious', 'dinner', 'eat', 'feed', 'food', 'fork', 'hungry', 'knife', 'lunch', 'restaurant', 'yum', 'yummy'] }, + '🍵': { name: 'teacup without handle', keywords: ['beverage', 'cup', 'drink', 'handle', 'oolong', 'tea', 'teacup'] }, + '🍶': { name: 'sake', keywords: ['bar', 'beverage', 'bottle', 'cup', 'drink', 'restaurant'] }, + '🍷': { name: 'wine glass', keywords: ['alcohol', 'bar', 'beverage', 'booze', 'club', 'drink', 'drinking', 'drinks', 'glass', 'restaurant', 'wine'] }, + '🍸': { name: 'cocktail glass', keywords: ['alcohol', 'bar', 'booze', 'club', 'cocktail', 'drink', 'drinking', 'drinks', 'glass', 'mad', 'martini', 'men'] }, + '🍹': { name: 'tropical drink', keywords: ['alcohol', 'bar', 'booze', 'club', 'cocktail', 'drink', 'drinking', 'drinks', 'drunk', 'mai', 'party', 'tai', 'tropical', 'tropics'] }, + '🍺': { name: 'beer mug', keywords: ['alcohol', 'ale', 'bar', 'beer', 'booze', 'drink', 'drinking', 'drinks', 'mug', 'octoberfest', 'oktoberfest', 'pint', 'stein', 'summer'] }, + '🍻': { name: 'clinking beer mugs', keywords: ['alcohol', 'bar', 'beer', 'booze', 'bottoms', 'cheers', 'clink', 'clinking', 'drinking', 'drinks', 'mugs'] }, + '🍼': { name: 'baby bottle', keywords: ['babies', 'baby', 'birth', 'born', 'bottle', 'drink', 'infant', 'milk', 'newborn'] }, + '🍽️': { name: 'fork and knife with plate', keywords: ['cooking', 'dinner', 'eat', 'fork', 'knife', 'plate'] }, + '🍾': { name: 'bottle with popping cork', keywords: ['bar', 'bottle', 'cork', 'drink', 'popping'] }, + '🍿': { name: 'popcorn', keywords: ['corn', 'movie', 'pop'] }, + '🎀': { name: 'ribbon', keywords: ['celebration'] }, + '🎁': { name: 'wrapped gift', keywords: ['birthday', 'bow', 'box', 'celebration', 'christmas', 'gift', 'present', 'surprise', 'wrapped'] }, + '🎂': { name: 'birthday cake', keywords: ['bday', 'birthday', 'cake', 'celebration', 'dessert', 'happy', 'pastry', 'sweet'] }, + '🎄': { name: 'Christmas tree', keywords: ['celebration', 'christmas', 'tree'] }, + '🎆': { name: 'fireworks', keywords: ['boom', 'celebration', 'entertainment', 'yolo'] }, + '🎇': { name: 'sparkler', keywords: ['boom', 'celebration', 'fireworks', 'sparkle'] }, + '🎈': { name: 'balloon', keywords: ['birthday', 'celebrate', 'celebration'] }, + '🎉': { name: 'party popper', keywords: ['awesome', 'birthday', 'celebrate', 'celebration', 'excited', 'hooray', 'party', 'popper', 'tada', 'woohoo'] }, + '🎊': { name: 'confetti ball', keywords: ['ball', 'celebrate', 'celebration', 'confetti', 'party', 'woohoo'] }, + '🎌': { name: 'crossed flags', keywords: ['celebration', 'cross', 'crossed', 'flags', 'japanese'] }, + '🎍': { name: 'pine decoration', keywords: ['bamboo', 'celebration', 'decoration', 'japanese', 'pine', 'plant'] }, + '🎖️': { name: 'military medal', keywords: ['award', 'celebration', 'medal', 'military'] }, + '🎗️': { name: 'reminder ribbon', keywords: ['celebration', 'reminder', 'ribbon'] }, + '🎠': { name: 'carousel horse', keywords: ['carousel', 'entertainment', 'horse'] }, + '🎡': { name: 'ferris wheel', keywords: ['amusement', 'ferris', 'park', 'theme', 'wheel'] }, + '🎢': { name: 'roller coaster', keywords: ['amusement', 'coaster', 'park', 'roller', 'theme'] }, + '🎣': { name: 'fishing pole', keywords: ['entertainment', 'fish', 'fishing', 'pole', 'sport'] }, + '🎤': { name: 'microphone', keywords: ['karaoke', 'mic', 'music', 'sing', 'sound'] }, + '🎥': { name: 'movie camera', keywords: ['bollywood', 'camera', 'cinema', 'film', 'hollywood', 'movie', 'record'] }, + '🎧': { name: 'headphone', keywords: ['earbud', 'sound'] }, + '🎨': { name: 'artist palette', keywords: ['art', 'artist', 'artsy', 'arty', 'colorful', 'creative', 'entertainment', 'museum', 'painter', 'painting', 'palette'] }, + '🎪': { name: 'circus tent', keywords: ['circus', 'tent'] }, + '🎫': { name: 'ticket', keywords: ['admission', 'stub'] }, + '🎬': { name: 'clapper board', keywords: ['action', 'board', 'clapper', 'movie'] }, + '🎭': { name: 'performing arts', keywords: ['actor', 'actress', 'art', 'arts', 'entertainment', 'mask', 'performing', 'theater', 'theatre', 'thespian'] }, + '🎮': { name: 'video game', keywords: ['controller', 'entertainment', 'game', 'video'] }, + '🎯': { name: 'bullseye', keywords: ['bull', 'dart', 'direct', 'entertainment', 'game', 'hit', 'target'] }, + '🎰': { name: 'slot machine', keywords: ['casino', 'gamble', 'gambling', 'game', 'machine', 'slot', 'slots'] }, + '🎱': { name: 'pool 8 ball', keywords: ['8', '8ball', 'ball', 'billiard', 'eight', 'game', 'pool'] }, + '🎲': { name: 'game die', keywords: ['dice', 'die', 'entertainment', 'game'] }, + '🎳': { name: 'bowling', keywords: ['ball', 'game', 'sport', 'strike'] }, + '🎴': { name: 'flower playing cards', keywords: ['card', 'cards', 'flower', 'game', 'japanese', 'playing'] }, + '🎷': { name: 'saxophone', keywords: ['instrument', 'music', 'sax'] }, + '🎸': { name: 'guitar', keywords: ['instrument', 'music', 'strat'] }, + '🎹': { name: 'musical keyboard', keywords: ['instrument', 'keyboard', 'music', 'musical', 'piano'] }, + '🎺': { name: 'trumpet', keywords: ['instrument', 'music'] }, + '🎻': { name: 'violin', keywords: ['instrument', 'music'] }, + '🎼': { name: 'musical score', keywords: ['music', 'musical', 'note', 'score'] }, + '🎽': { name: 'running shirt', keywords: ['athletics', 'running', 'sash', 'shirt'] }, + '🎾': { name: 'tennis', keywords: ['ball', 'racquet', 'sport'] }, + '🎿': { name: 'skis', keywords: ['ski', 'snow', 'sport'] }, + '🏀': { name: 'basketball', keywords: ['ball', 'hoop', 'sport'] }, + '🏁': { name: 'chequered flag', keywords: ['checkered', 'chequered', 'finish', 'flag', 'flags', 'game', 'race', 'racing', 'sport', 'win'] }, + '🏂': { name: 'snowboarder', keywords: ['ski', 'snow', 'snowboard', 'sport'] }, + '🏄': { name: 'person surfing', keywords: ['beach', 'ocean', 'person', 'sport', 'surf', 'surfer', 'surfing', 'swell', 'waves'] }, + '🏅': { name: 'sports medal', keywords: ['award', 'gold', 'medal', 'sports', 'winner'] }, + '🏆': { name: 'trophy', keywords: ['champion', 'champs', 'prize', 'slay', 'sport', 'victory', 'win', 'winning'] }, + '🏇': { name: 'horse racing', keywords: ['horse', 'jockey', 'racehorse', 'racing', 'riding', 'sport'] }, + '🏈': { name: 'american football', keywords: ['american', 'ball', 'bowl', 'football', 'sport', 'super'] }, + '🏉': { name: 'rugby football', keywords: ['ball', 'football', 'rugby', 'sport'] }, + '🏊': { name: 'person swimming', keywords: ['freestyle', 'person', 'sport', 'swim', 'swimmer', 'swimming', 'triathlon'] }, + '🏋️': { name: 'person lifting weights', keywords: ['barbell', 'bodybuilder', 'deadlift', 'lifter', 'lifting', 'person', 'powerlifting', 'weight', 'weightlifter', 'weights', 'workout'] }, + '🏍️': { name: 'motorcycle', keywords: ['racing'] }, + '🏎️': { name: 'racing car', keywords: ['car', 'racing', 'zoom'] }, + '🏏': { name: 'cricket game', keywords: ['ball', 'bat', 'cricket', 'game'] }, + '🏐': { name: 'volleyball', keywords: ['ball', 'game'] }, + '🏑': { name: 'field hockey', keywords: ['ball', 'field', 'game', 'hockey', 'stick'] }, + '🏒': { name: 'ice hockey', keywords: ['game', 'hockey', 'ice', 'puck', 'stick'] }, + '🏓': { name: 'ping pong', keywords: ['ball', 'bat', 'game', 'paddle', 'ping', 'pingpong', 'pong', 'table', 'tennis'] }, + '🏔️': { name: 'snow-capped mountain', keywords: ['cold', 'mountain', 'snow', 'snow-capped'] }, + '🏕️': { name: 'camping', keywords: ['camping'] }, + '🏖️': { name: 'beach with umbrella', keywords: ['beach', 'umbrella'] }, + '🏗️': { name: 'building construction', keywords: ['building', 'construction', 'crane'] }, + '🏙️': { name: 'cityscape', keywords: ['city'] }, + '🏛️': { name: 'classical building', keywords: ['building', 'classical'] }, + '🏜️': { name: 'desert', keywords: ['desert'] }, + '🏝️': { name: 'desert island', keywords: ['desert', 'island'] }, + '🏟️': { name: 'stadium', keywords: ['stadium'] }, + '🏠': { name: 'house', keywords: ['building', 'country', 'heart', 'home', 'ranch', 'settle', 'simple', 'suburban', 'suburbia', 'where'] }, + '🏡': { name: 'house with garden', keywords: ['building', 'country', 'garden', 'heart', 'home', 'house', 'ranch', 'settle', 'simple', 'suburban', 'suburbia', 'where'] }, + '🏢': { name: 'office building', keywords: ['building', 'city', 'cubical', 'job', 'office'] }, + '🏥': { name: 'hospital', keywords: ['building', 'doctor', 'medicine'] }, + '🏦': { name: 'bank', keywords: ['building'] }, + '🏨': { name: 'hotel', keywords: ['building'] }, + '🏫': { name: 'school', keywords: ['building'] }, + '🏬': { name: 'department store', keywords: ['building', 'department', 'store'] }, + '🏭': { name: 'factory', keywords: ['building'] }, + '🏰': { name: 'castle', keywords: ['building', 'european'] }, + '🏳️': { name: 'white flag', keywords: ['flag', 'waving', 'white'] }, + '🏳️‍🌈': { name: 'rainbow flag', keywords: ['bisexual', 'flag', 'gay', 'genderqueer', 'glbt', 'glbtq', 'lesbian', 'lgbt', 'lgbtq', 'lgbtqia', 'pride', 'queer', 'rainbow', 'trans', 'transgender'] }, + '🏴': { name: 'black flag', keywords: ['black', 'flag', 'waving'] }, + '🏴‍☠️': { name: 'pirate flag', keywords: ['flag', 'jolly', 'pirate', 'plunder', 'roger', 'treasure'] }, + '🏸': { name: 'badminton', keywords: ['birdie', 'game', 'racquet', 'shuttlecock'] }, + '🏹': { name: 'bow and arrow', keywords: ['archer', 'archery', 'arrow', 'bow', 'sagittarius', 'tool', 'weapon', 'zodiac'] }, + '🐀': { name: 'rat', keywords: ['animal'] }, + '🐁': { name: 'mouse', keywords: ['animal', 'animals'] }, + '🐂': { name: 'ox', keywords: ['animal', 'animals', 'bull', 'farm', 'taurus', 'zodiac'] }, + '🐃': { name: 'water buffalo', keywords: ['animal', 'buffalo', 'water', 'zoo'] }, + '🐄': { name: 'cow', keywords: ['animal', 'animals', 'farm', 'milk', 'moo'] }, + '🐅': { name: 'tiger', keywords: ['animal', 'big', 'cat', 'predator', 'zoo'] }, + '🐆': { name: 'leopard', keywords: ['animal', 'big', 'cat', 'predator', 'zoo'] }, + '🐇': { name: 'rabbit', keywords: ['animal', 'bunny', 'pet'] }, + '🐈': { name: 'cat', keywords: ['animal', 'animals', 'cats', 'kitten', 'pet'] }, + '🐉': { name: 'dragon', keywords: ['animal', 'fairy', 'fairytale', 'knights', 'tale'] }, + '🐊': { name: 'crocodile', keywords: ['animal', 'zoo'] }, + '🐋': { name: 'whale', keywords: ['animal', 'beach', 'ocean'] }, + '🐌': { name: 'snail', keywords: ['animal', 'escargot', 'garden', 'nature', 'slug'] }, + '🐍': { name: 'snake', keywords: ['animal', 'bearer', 'ophiuchus', 'serpent', 'zodiac'] }, + '🐎': { name: 'horse', keywords: ['animal', 'equestrian', 'farm', 'racehorse', 'racing'] }, + '🐐': { name: 'goat', keywords: ['animal', 'capricorn', 'farm', 'milk', 'zodiac'] }, + '🐑': { name: 'ewe', keywords: ['animal', 'baa', 'farm', 'female', 'fluffy', 'lamb', 'sheep', 'wool'] }, + '🐓': { name: 'rooster', keywords: ['animal', 'bird', 'ornithology'] }, + '🐔': { name: 'chicken', keywords: ['animal', 'bird', 'ornithology'] }, + '🐕': { name: 'dog', keywords: ['animal', 'animals', 'dogs', 'pet'] }, + '🐖': { name: 'pig', keywords: ['animal', 'bacon', 'farm', 'pork', 'sow'] }, + '🐗': { name: 'boar', keywords: ['animal', 'pig'] }, + '🐘': { name: 'elephant', keywords: ['animal'] }, + '🐙': { name: 'octopus', keywords: ['animal', 'creature', 'ocean'] }, + '🐚': { name: 'spiral shell', keywords: ['animal', 'beach', 'conch', 'sea', 'shell', 'spiral'] }, + '🐛': { name: 'bug', keywords: ['animal', 'garden', 'insect'] }, + '🐜': { name: 'ant', keywords: ['animal', 'garden', 'insect'] }, + '🐝': { name: 'honeybee', keywords: ['animal', 'bee', 'bumblebee', 'honey', 'insect', 'nature', 'spring'] }, + '🐞': { name: 'lady beetle', keywords: ['animal', 'beetle', 'garden', 'insect', 'lady', 'ladybird', 'ladybug', 'nature'] }, + '🐟': { name: 'fish', keywords: ['animal', 'dinner', 'fishes', 'fishing', 'pisces', 'zodiac'] }, + '🐠': { name: 'tropical fish', keywords: ['animal', 'fish', 'fishes', 'tropical'] }, + '🐡': { name: 'blowfish', keywords: ['animal', 'fish'] }, + '🐢': { name: 'turtle', keywords: ['animal', 'terrapin', 'tortoise'] }, + '🐤': { name: 'baby chick', keywords: ['animal', 'baby', 'bird', 'chick', 'ornithology'] }, + '🐥': { name: 'front-facing baby chick', keywords: ['animal', 'baby', 'bird', 'chick', 'front-facing', 'newborn', 'ornithology'] }, + '🐦': { name: 'bird', keywords: ['animal', 'ornithology'] }, + '🐧': { name: 'penguin', keywords: ['animal', 'antarctica', 'bird', 'ornithology'] }, + '🐨': { name: 'koala', keywords: ['animal', 'australia', 'bear', 'down', 'face', 'marsupial', 'under'] }, + '🐩': { name: 'poodle', keywords: ['animal', 'dog', 'fluffy'] }, + '🐪': { name: 'camel', keywords: ['animal', 'desert', 'dromedary', 'hump', 'one'] }, + '🐫': { name: 'two-hump camel', keywords: ['animal', 'bactrian', 'camel', 'desert', 'hump', 'two', 'two-hump'] }, + '🐬': { name: 'dolphin', keywords: ['animal', 'beach', 'flipper', 'ocean'] }, + '🐭': { name: 'mouse face', keywords: ['animal', 'face', 'mouse'] }, + '🐮': { name: 'cow face', keywords: ['animal', 'cow', 'face', 'farm', 'milk', 'moo'] }, + '🐯': { name: 'tiger face', keywords: ['animal', 'big', 'cat', 'face', 'predator', 'tiger'] }, + '🐰': { name: 'rabbit face', keywords: ['animal', 'bunny', 'face', 'pet', 'rabbit'] }, + '🐱': { name: 'cat face', keywords: ['animal', 'cat', 'face', 'kitten', 'kitty', 'pet'] }, + '🐳': { name: 'spouting whale', keywords: ['animal', 'beach', 'face', 'ocean', 'spouting', 'whale'] }, + '🐴': { name: 'horse face', keywords: ['animal', 'dressage', 'equine', 'face', 'farm', 'horse', 'horses'] }, + '🐵': { name: 'monkey face', keywords: ['animal', 'banana', 'face', 'monkey'] }, + '🐶': { name: 'dog face', keywords: ['adorbs', 'animal', 'dog', 'face', 'pet', 'puppies', 'puppy'] }, + '🐷': { name: 'pig face', keywords: ['animal', 'bacon', 'face', 'farm', 'pig', 'pork'] }, + '🐸': { name: 'frog', keywords: ['animal', 'face'] }, + '🐹': { name: 'hamster', keywords: ['animal', 'face', 'pet'] }, + '🐺': { name: 'wolf', keywords: ['animal', 'face'] }, + '🐻': { name: 'bear', keywords: ['animal', 'face', 'grizzly', 'growl', 'honey'] }, + '🐼': { name: 'panda', keywords: ['animal', 'bamboo', 'face'] }, + '🐽': { name: 'pig nose', keywords: ['animal', 'face', 'farm', 'nose', 'pig', 'smell', 'snout'] }, + '🐾': { name: 'paw prints', keywords: ['feet', 'paw', 'paws', 'print', 'prints'] }, + '🐿️': { name: 'chipmunk', keywords: ['animal', 'squirrel'] }, + '👀': { name: 'eyes', keywords: ['body', 'eye', 'face', 'googly', 'look', 'looking', 'omg', 'peep', 'see', 'seeing'] }, + '👁️': { name: 'eye', keywords: ['1', 'body', 'one'] }, + '👁️‍🗨️': { name: 'eye in speech bubble', keywords: ['balloon', 'bubble', 'eye', 'speech', 'witness'] }, + '👂': { name: 'ear', keywords: ['body', 'ears', 'hear', 'hearing', 'listen', 'listening', 'sound'] }, + '👃': { name: 'nose', keywords: ['body', 'noses', 'nosey', 'odor', 'smell', 'smells'] }, + '👄': { name: 'mouth', keywords: ['beauty', 'body', 'kiss', 'kissing', 'lips', 'lipstick'] }, + '👅': { name: 'tongue', keywords: ['body', 'lick', 'slurp'] }, + '👆': { name: 'backhand index pointing up', keywords: ['backhand', 'finger', 'hand', 'index', 'point', 'pointing', 'up'] }, + '👇': { name: 'backhand index pointing down', keywords: ['backhand', 'down', 'finger', 'hand', 'index', 'point', 'pointing'] }, + '👈': { name: 'backhand index pointing left', keywords: ['backhand', 'finger', 'hand', 'index', 'left', 'point', 'pointing'] }, + '👉': { name: 'backhand index pointing right', keywords: ['backhand', 'finger', 'hand', 'index', 'point', 'pointing', 'right'] }, + '👊': { name: 'oncoming fist', keywords: ['absolutely', 'agree', 'boom', 'bro', 'bruh', 'bump', 'clenched', 'correct', 'fist', 'hand', 'knuckle', 'oncoming', 'pound', 'punch', 'rock', 'ttyl'] }, + '👋': { name: 'waving hand', keywords: ['bye', 'cya', 'g2g', 'greetings', 'gtg', 'hand', 'hello', 'hey', 'hi', 'later', 'outtie', 'ttfn', 'ttyl', 'wave', 'yo', 'you'] }, + '👌': { name: 'OK hand', keywords: ['awesome', 'bet', 'dope', 'fleek', 'fosho', 'got', 'gotcha', 'hand', 'legit', 'ok', 'okay', 'pinch', 'rad', 'sure', 'sweet', 'three'] }, + '👍': { name: 'thumbs up', keywords: ['+1', 'good', 'hand', 'like', 'thumb', 'up', 'yes'] }, + '👎': { name: 'thumbs down', keywords: ['-1', 'bad', 'dislike', 'down', 'good', 'hand', 'no', 'nope', 'thumb', 'thumbs'] }, + '👏': { name: 'clapping hands', keywords: ['applause', 'approval', 'awesome', 'clap', 'congrats', 'congratulations', 'excited', 'good', 'great', 'hand', 'homie', 'job', 'nice', 'prayed', 'well', 'yay'] }, + '👐': { name: 'open hands', keywords: ['hand', 'hands', 'hug', 'jazz', 'open', 'swerve'] }, + '👤': { name: 'bust in silhouette', keywords: ['bust', 'mysterious', 'shadow', 'silhouette'] }, + '👥': { name: 'busts in silhouette', keywords: ['bff', 'bust', 'busts', 'everyone', 'friend', 'friends', 'people', 'silhouette'] }, + '👦': { name: 'boy', keywords: ['bright-eyed', 'child', 'grandson', 'kid', 'son', 'young', 'younger'] }, + '👧': { name: 'girl', keywords: ['bright-eyed', 'child', 'daughter', 'granddaughter', 'kid', 'virgo', 'young', 'younger', 'zodiac'] }, + '👨': { name: 'man', keywords: ['adult', 'bro'] }, + '👩': { name: 'woman', keywords: ['adult', 'lady'] }, + '👱': { name: 'person: blond hair', keywords: ['blond', 'blond-haired', 'human', 'person'] }, + '👴': { name: 'old man', keywords: ['adult', 'bald', 'elderly', 'gramps', 'grandfather', 'grandpa', 'man', 'old', 'wise'] }, + '👵': { name: 'old woman', keywords: ['adult', 'elderly', 'grandma', 'grandmother', 'granny', 'lady', 'old', 'wise', 'woman'] }, + '👶': { name: 'baby', keywords: ['babies', 'children', 'goo', 'infant', 'newborn', 'pregnant', 'young'] }, + '👹': { name: 'ogre', keywords: ['creature', 'devil', 'face', 'fairy', 'fairytale', 'fantasy', 'mask', 'monster', 'scary', 'tale'] }, + '👺': { name: 'goblin', keywords: ['angry', 'creature', 'face', 'fairy', 'fairytale', 'fantasy', 'mask', 'mean', 'monster', 'tale'] }, + '👻': { name: 'ghost', keywords: ['boo', 'creature', 'excited', 'face', 'fairy', 'fairytale', 'fantasy', 'halloween', 'haunting', 'monster', 'scary', 'silly', 'tale'] }, + '👽': { name: 'alien', keywords: ['creature', 'extraterrestrial', 'face', 'fairy', 'fairytale', 'fantasy', 'monster', 'space', 'tale', 'ufo'] }, + '👾': { name: 'alien monster', keywords: ['alien', 'creature', 'extraterrestrial', 'face', 'fairy', 'fairytale', 'fantasy', 'game', 'gamer', 'games', 'monster', 'pixelated', 'space', 'tale', 'ufo'] }, + '👿': { name: 'angry face with horns', keywords: ['angry', 'demon', 'devil', 'evil', 'face', 'fairy', 'fairytale', 'fantasy', 'horns', 'imp', 'mischievous', 'purple', 'shade', 'tale'] }, + '💀': { name: 'skull', keywords: ['body', 'dead', 'death', 'face', 'fairy', 'fairytale', 'i’m', 'lmao', 'monster', 'tale', 'yolo'] }, + '💁': { name: 'person tipping hand', keywords: ['fetch', 'flick', 'flip', 'gossip', 'hand', 'person', 'sarcasm', 'sarcastic', 'sassy', 'seriously', 'tipping', 'whatever'] }, + '💅': { name: 'nail polish', keywords: ['bored', 'care', 'cosmetics', 'done', 'makeup', 'manicure', 'nail', 'polish', 'whatever'] }, + '💉': { name: 'syringe', keywords: ['doctor', 'flu', 'medicine', 'needle', 'shot', 'sick', 'tool', 'vaccination'] }, + '💊': { name: 'pill', keywords: ['doctor', 'drugs', 'medicated', 'medicine', 'pills', 'sick', 'vitamin'] }, + '💋': { name: 'kiss mark', keywords: ['dating', 'emotion', 'heart', 'kiss', 'kissing', 'lips', 'mark', 'romance', 'sexy'] }, + '💌': { name: 'love letter', keywords: ['heart', 'letter', 'love', 'mail', 'romance', 'valentine'] }, + '💎': { name: 'gem stone', keywords: ['diamond', 'engagement', 'gem', 'jewel', 'money', 'romance', 'stone', 'wedding'] }, + '💐': { name: 'bouquet', keywords: ['anniversary', 'birthday', 'date', 'flower', 'love', 'plant', 'romance'] }, + '💒': { name: 'wedding', keywords: ['chapel', 'hitched', 'nuptials', 'romance'] }, + '💓': { name: 'beating heart', keywords: ['143', 'beating', 'cardio', 'emotion', 'heart', 'heartbeat', 'ily', 'love', 'pulsating', 'pulse'] }, + '💔': { name: 'broken heart', keywords: ['break', 'broken', 'crushed', 'emotion', 'heart', 'heartbroken', 'lonely', 'sad'] }, + '💕': { name: 'two hearts', keywords: ['143', 'anniversary', 'date', 'dating', 'emotion', 'heart', 'hearts', 'ily', 'kisses', 'love', 'loving', 'two', 'xoxo'] }, + '💖': { name: 'sparkling heart', keywords: ['143', 'emotion', 'excited', 'good', 'heart', 'ily', 'kisses', 'morning', 'night', 'sparkle', 'sparkling', 'xoxo'] }, + '💗': { name: 'growing heart', keywords: ['143', 'emotion', 'excited', 'growing', 'heart', 'heartpulse', 'ily', 'kisses', 'muah', 'nervous', 'pulse', 'xoxo'] }, + '💘': { name: 'heart with arrow', keywords: ['143', 'adorbs', 'arrow', 'cupid', 'date', 'emotion', 'heart', 'ily', 'love', 'romance', 'valentine'] }, + '💙': { name: 'blue heart', keywords: ['143', 'blue', 'emotion', 'heart', 'ily', 'love', 'romance'] }, + '💚': { name: 'green heart', keywords: ['143', 'emotion', 'green', 'heart', 'ily', 'love', 'romantic'] }, + '💛': { name: 'yellow heart', keywords: ['143', 'cardiac', 'emotion', 'heart', 'ily', 'love', 'yellow'] }, + '💜': { name: 'purple heart', keywords: ['143', 'bestest', 'emotion', 'heart', 'ily', 'love', 'purple'] }, + '💝': { name: 'heart with ribbon', keywords: ['143', 'anniversary', 'emotion', 'heart', 'ily', 'kisses', 'ribbon', 'valentine', 'xoxo'] }, + '💞': { name: 'revolving hearts', keywords: ['143', 'adorbs', 'anniversary', 'emotion', 'heart', 'hearts', 'revolving'] }, + '💟': { name: 'heart decoration', keywords: ['143', 'decoration', 'emotion', 'heart', 'hearth', 'purple', 'white'] }, + '💠': { name: 'diamond with a dot', keywords: ['comic', 'diamond', 'dot', 'geometric'] }, + '💡': { name: 'light bulb', keywords: ['bulb', 'comic', 'electric', 'idea', 'light'] }, + '💢': { name: 'anger symbol', keywords: ['anger', 'angry', 'comic', 'mad', 'symbol', 'upset'] }, + '💣': { name: 'bomb', keywords: ['boom', 'comic', 'dangerous', 'explosion', 'hot'] }, + '💥': { name: 'collision', keywords: ['bomb', 'boom', 'collide', 'comic', 'explode'] }, + '💦': { name: 'sweat droplets', keywords: ['comic', 'drip', 'droplet', 'droplets', 'drops', 'splashing', 'squirt', 'sweat', 'water', 'wet', 'work', 'workout'] }, + '💧': { name: 'droplet', keywords: ['cold', 'comic', 'drop', 'nature', 'sad', 'sweat', 'tear', 'water', 'weather'] }, + '💨': { name: 'dashing away', keywords: ['away', 'cloud', 'comic', 'dash', 'dashing', 'fart', 'fast', 'go', 'gone', 'gotta', 'running', 'smoke'] }, + '💩': { name: 'pile of poo', keywords: ['bs', 'comic', 'doo', 'dung', 'face', 'fml', 'monster', 'pile', 'poo', 'poop', 'smelly', 'smh', 'stink', 'stinks', 'stinky', 'turd'] }, + '💪': { name: 'flexed biceps', keywords: ['arm', 'beast', 'bench', 'biceps', 'bodybuilder', 'bro', 'curls', 'flex', 'gains', 'gym', 'jacked', 'muscle', 'press', 'ripped', 'strong', 'weightlift'] }, + '💫': { name: 'dizzy', keywords: ['comic', 'shining', 'shooting', 'star', 'stars'] }, + '💬': { name: 'speech balloon', keywords: ['balloon', 'bubble', 'comic', 'dialog', 'message', 'sms', 'speech', 'talk', 'text', 'typing'] }, + '💭': { name: 'thought balloon', keywords: ['balloon', 'bubble', 'cartoon', 'cloud', 'comic', 'daydream', 'decisions', 'dream', 'idea', 'invent', 'invention', 'realize', 'think', 'thoughts', 'wonder'] }, + '💯': { name: 'hundred points', keywords: ['100', 'a+', 'agree', 'clearly', 'definitely', 'faithful', 'fleek', 'full', 'hundred', 'keep', 'perfect', 'point', 'score', 'true', 'truth', 'yup'] }, + '💰': { name: 'money bag', keywords: ['bag', 'bank', 'bet', 'billion', 'cash', 'cost', 'dollar', 'gold', 'million', 'money', 'moneybag', 'paid', 'paying', 'pot', 'rich', 'win'] }, + '💱': { name: 'currency exchange', keywords: ['bank', 'currency', 'exchange', 'money'] }, + '💲': { name: 'heavy dollar sign', keywords: ['billion', 'cash', 'charge', 'currency', 'dollar', 'heavy', 'million', 'money', 'pay', 'sign'] }, + '💳': { name: 'credit card', keywords: ['bank', 'card', 'cash', 'charge', 'credit', 'money', 'pay'] }, + '💴': { name: 'yen banknote', keywords: ['bank', 'banknote', 'bill', 'currency', 'money', 'note', 'yen'] }, + '💵': { name: 'dollar banknote', keywords: ['bank', 'banknote', 'bill', 'currency', 'dollar', 'money', 'note'] }, + '💶': { name: 'euro banknote', keywords: ['100', 'bank', 'banknote', 'bill', 'currency', 'euro', 'money', 'note', 'rich'] }, + '💷': { name: 'pound banknote', keywords: ['bank', 'banknote', 'bill', 'billion', 'cash', 'currency', 'money', 'note', 'pound', 'pounds'] }, + '💸': { name: 'money with wings', keywords: ['bank', 'banknote', 'bill', 'billion', 'cash', 'dollar', 'fly', 'million', 'money', 'note', 'pay', 'wings'] }, + '💻': { name: 'laptop', keywords: ['computer', 'office', 'pc', 'personal'] }, + '💽': { name: 'computer disk', keywords: ['computer', 'disk', 'minidisk', 'optical'] }, + '💾': { name: 'floppy disk', keywords: ['computer', 'disk', 'floppy'] }, + '💿': { name: 'optical disk', keywords: ['blu-ray', 'cd', 'computer', 'disk', 'dvd', 'optical'] }, + '📀': { name: 'dvd', keywords: ['blu-ray', 'cd', 'computer', 'disk', 'optical'] }, + '📁': { name: 'file folder', keywords: ['file', 'folder'] }, + '📂': { name: 'open file folder', keywords: ['file', 'folder', 'open'] }, + '📃': { name: 'page with curl', keywords: ['curl', 'document', 'page', 'paper'] }, + '📄': { name: 'page facing up', keywords: ['document', 'facing', 'page', 'paper', 'up'] }, + '📅': { name: 'calendar', keywords: ['date'] }, + '📆': { name: 'tear-off calendar', keywords: ['calendar', 'tear-off'] }, + '📇': { name: 'card index', keywords: ['card', 'index', 'old', 'rolodex', 'school'] }, + '📋': { name: 'clipboard', keywords: ['do', 'list', 'notes'] }, + '📌': { name: 'pushpin', keywords: ['collage', 'pin'] }, + '📎': { name: 'paperclip', keywords: ['paperclip'] }, + '📏': { name: 'straight ruler', keywords: ['angle', 'edge', 'math', 'ruler', 'straight', 'straightedge'] }, + '📐': { name: 'triangular ruler', keywords: ['angle', 'math', 'rule', 'ruler', 'set', 'slide', 'triangle', 'triangular'] }, + '📒': { name: 'ledger', keywords: ['notebook'] }, + '📓': { name: 'notebook', keywords: ['notebook'] }, + '📔': { name: 'notebook with decorative cover', keywords: ['book', 'cover', 'decorated', 'decorative', 'education', 'notebook', 'school', 'writing'] }, + '📕': { name: 'closed book', keywords: ['book', 'closed', 'education'] }, + '📖': { name: 'open book', keywords: ['book', 'education', 'fantasy', 'knowledge', 'library', 'novels', 'open', 'reading'] }, + '📗': { name: 'green book', keywords: ['book', 'education', 'fantasy', 'green', 'library', 'reading'] }, + '📘': { name: 'blue book', keywords: ['blue', 'book', 'education', 'fantasy', 'library', 'reading'] }, + '📙': { name: 'orange book', keywords: ['book', 'education', 'fantasy', 'library', 'orange', 'reading'] }, + '📚': { name: 'books', keywords: ['book', 'education', 'fantasy', 'knowledge', 'library', 'novels', 'reading', 'school', 'study'] }, + '📛': { name: 'name badge', keywords: ['badge', 'name'] }, + '📜': { name: 'scroll', keywords: ['paper'] }, + '📝': { name: 'memo', keywords: ['communication', 'media', 'notes', 'pencil'] }, + '📞': { name: 'telephone receiver', keywords: ['communication', 'phone', 'receiver', 'telephone', 'voip'] }, + '📟': { name: 'pager', keywords: ['communication'] }, + '📡': { name: 'satellite antenna', keywords: ['aliens', 'antenna', 'contact', 'dish', 'satellite', 'science'] }, + '📢': { name: 'loudspeaker', keywords: ['address', 'communication', 'loud', 'public', 'sound'] }, + '📣': { name: 'megaphone', keywords: ['cheering', 'sound'] }, + '📤': { name: 'outbox tray', keywords: ['box', 'email', 'letter', 'mail', 'outbox', 'sent', 'tray'] }, + '📥': { name: 'inbox tray', keywords: ['box', 'email', 'inbox', 'letter', 'mail', 'receive', 'tray', 'zero'] }, + '📦': { name: 'package', keywords: ['box', 'communication', 'delivery', 'parcel', 'shipping'] }, + '📧': { name: 'e-mail', keywords: ['email', 'letter', 'mail'] }, + '📨': { name: 'incoming envelope', keywords: ['delivering', 'e-mail', 'email', 'envelope', 'incoming', 'letter', 'mail', 'receive', 'sent'] }, + '📩': { name: 'envelope with arrow', keywords: ['arrow', 'communication', 'down', 'e-mail', 'email', 'envelope', 'letter', 'mail', 'outgoing', 'send', 'sent'] }, + '📪': { name: 'closed mailbox with lowered flag', keywords: ['closed', 'flag', 'lowered', 'mail', 'mailbox', 'postbox'] }, + '📫': { name: 'closed mailbox with raised flag', keywords: ['closed', 'communication', 'flag', 'mail', 'mailbox', 'postbox', 'raised'] }, + '📬': { name: 'open mailbox with raised flag', keywords: ['flag', 'mail', 'mailbox', 'open', 'postbox', 'raised'] }, + '📭': { name: 'open mailbox with lowered flag', keywords: ['flag', 'lowered', 'mail', 'mailbox', 'open', 'postbox'] }, + '📮': { name: 'postbox', keywords: ['mail', 'mailbox'] }, + '📯': { name: 'postal horn', keywords: ['horn', 'post', 'postal'] }, + '📰': { name: 'newspaper', keywords: ['communication', 'news', 'paper'] }, + '📱': { name: 'mobile phone', keywords: ['cell', 'communication', 'mobile', 'phone', 'telephone'] }, + '📵': { name: 'no mobile phones', keywords: ['cell', 'forbidden', 'mobile', 'no', 'not', 'phone', 'phones', 'prohibited', 'telephone'] }, + '📷': { name: 'camera', keywords: ['photo', 'selfie', 'snap', 'tbt', 'trip', 'video'] }, + '📸': { name: 'camera with flash', keywords: ['camera', 'flash', 'video'] }, + '📹': { name: 'video camera', keywords: ['camcorder', 'camera', 'tbt', 'video'] }, + '📺': { name: 'television', keywords: ['tv', 'video'] }, + '📻': { name: 'radio', keywords: ['entertainment', 'tbt', 'video'] }, + '🔇': { name: 'muted speaker', keywords: ['mute', 'muted', 'quiet', 'silent', 'sound', 'speaker'] }, + '🔈': { name: 'speaker low volume', keywords: ['low', 'soft', 'sound', 'speaker', 'volume'] }, + '🔉': { name: 'speaker medium volume', keywords: ['medium', 'sound', 'speaker', 'volume'] }, + '🔊': { name: 'speaker high volume', keywords: ['high', 'loud', 'music', 'sound', 'speaker', 'volume'] }, + '🔋': { name: 'battery', keywords: ['battery'] }, + '🔌': { name: 'electric plug', keywords: ['electric', 'electricity', 'plug'] }, + '🔏': { name: 'locked with pen', keywords: ['ink', 'lock', 'locked', 'nib', 'pen', 'privacy'] }, + '🔐': { name: 'locked with key', keywords: ['bike', 'closed', 'key', 'lock', 'locked', 'secure'] }, + '🔑': { name: 'key', keywords: ['keys', 'lock', 'major', 'password', 'unlock'] }, + '🔒': { name: 'locked', keywords: ['closed', 'lock', 'private'] }, + '🔓': { name: 'unlocked', keywords: ['cracked', 'lock', 'open', 'unlock'] }, + '🔔': { name: 'bell', keywords: ['break', 'church', 'sound'] }, + '🔕': { name: 'bell with slash', keywords: ['bell', 'forbidden', 'mute', 'no', 'not', 'prohibited', 'quiet', 'silent', 'slash', 'sound'] }, + '🔖': { name: 'bookmark', keywords: ['mark'] }, + '🔞': { name: 'no one under eighteen', keywords: ['18', 'age', 'eighteen', 'forbidden', 'no', 'not', 'one', 'prohibited', 'restriction', 'underage'] }, + '🔟': { name: 'keycap: 10', keywords: ['keycap'] }, + '🔢': { name: 'input numbers', keywords: ['1234', 'input', 'numbers'] }, + '🔣': { name: 'input symbols', keywords: ['%', '&', 'input', 'symbols', '♪', '〒'] }, + '🔤': { name: 'input latin letters', keywords: ['abc', 'alphabet', 'input', 'latin', 'letters'] }, + '🔥': { name: 'fire', keywords: ['af', 'burn', 'flame', 'hot', 'lit', 'litaf', 'tool'] }, + '🔦': { name: 'flashlight', keywords: ['electric', 'light', 'tool', 'torch'] }, + '🔧': { name: 'wrench', keywords: ['home', 'improvement', 'spanner', 'tool'] }, + '🔨': { name: 'hammer', keywords: ['home', 'improvement', 'repairs', 'tool'] }, + '🔩': { name: 'nut and bolt', keywords: ['bolt', 'home', 'improvement', 'nut', 'tool'] }, + '🔪': { name: 'kitchen knife', keywords: ['chef', 'cooking', 'hocho', 'kitchen', 'knife', 'tool', 'weapon'] }, + '🔫': { name: 'water pistol', keywords: ['gun', 'handgun', 'pistol', 'revolver', 'tool', 'water', 'weapon'] }, + '🔬': { name: 'microscope', keywords: ['experiment', 'lab', 'science', 'tool'] }, + '🔭': { name: 'telescope', keywords: ['contact', 'extraterrestrial', 'science', 'tool'] }, + '🔰': { name: 'Japanese symbol for beginner', keywords: ['beginner', 'chevron', 'green', 'japanese', 'leaf', 'symbol', 'tool', 'yellow'] }, + '🔱': { name: 'trident emblem', keywords: ['anchor', 'emblem', 'poseidon', 'ship', 'tool', 'trident'] }, + '🔴': { name: 'red circle', keywords: ['circle', 'geometric', 'red'] }, + '🔵': { name: 'blue circle', keywords: ['blue', 'circle', 'geometric'] }, + '🔶': { name: 'large orange diamond', keywords: ['diamond', 'geometric', 'large', 'orange'] }, + '🔷': { name: 'large blue diamond', keywords: ['blue', 'diamond', 'geometric', 'large'] }, + '🔸': { name: 'small orange diamond', keywords: ['diamond', 'geometric', 'orange', 'small'] }, + '🔹': { name: 'small blue diamond', keywords: ['blue', 'diamond', 'geometric', 'small'] }, + '🔺': { name: 'red triangle pointed up', keywords: ['geometric', 'pointed', 'red', 'triangle', 'up'] }, + '🔻': { name: 'red triangle pointed down', keywords: ['down', 'geometric', 'pointed', 'red', 'triangle'] }, + '🕊️': { name: 'dove', keywords: ['bird', 'fly', 'ornithology', 'peace'] }, + '🕌': { name: 'mosque', keywords: ['islam', 'masjid', 'muslim', 'religion'] }, + '🕯️': { name: 'candle', keywords: ['light'] }, + '🕰️': { name: 'mantelpiece clock', keywords: ['clock', 'mantelpiece', 'time'] }, + '🕷️': { name: 'spider', keywords: ['animal', 'insect'] }, + '🖊️': { name: 'pen', keywords: ['ballpoint'] }, + '🖋️': { name: 'fountain pen', keywords: ['fountain', 'pen'] }, + '🖌️': { name: 'paintbrush', keywords: ['painting'] }, + '🖍️': { name: 'crayon', keywords: ['crayon'] }, + '🖐️': { name: 'hand with fingers splayed', keywords: ['finger', 'fingers', 'hand', 'raised', 'splayed', 'stop'] }, + '🖕': { name: 'middle finger', keywords: ['finger', 'hand', 'middle'] }, + '🖖': { name: 'vulcan salute', keywords: ['finger', 'hand', 'hands', 'salute', 'vulcan'] }, + '🖤': { name: 'black heart', keywords: ['black', 'evil', 'heart', 'wicked'] }, + '🖥️': { name: 'desktop computer', keywords: ['computer', 'desktop', 'monitor'] }, + '🖨️': { name: 'printer', keywords: ['computer'] }, + '🖱️': { name: 'computer mouse', keywords: ['computer', 'mouse'] }, + '🗃️': { name: 'card file box', keywords: ['box', 'card', 'file'] }, + '🗄️': { name: 'file cabinet', keywords: ['cabinet', 'file', 'filing', 'paper'] }, + '🗑️': { name: 'wastebasket', keywords: ['can', 'garbage', 'trash', 'waste'] }, + '🗝️': { name: 'old key', keywords: ['clue', 'key', 'lock', 'old'] }, + '🗡️': { name: 'dagger', keywords: ['knife', 'weapon'] }, + '🗣️': { name: 'speaking head', keywords: ['face', 'head', 'silhouette', 'speak', 'speaking'] }, + '🗯️': { name: 'right anger bubble', keywords: ['anger', 'angry', 'balloon', 'bubble', 'mad', 'right'] }, + '🗺️': { name: 'world map', keywords: ['map', 'world'] }, + '🗼': { name: 'Tokyo tower', keywords: ['tokyo', 'tower'] }, + '🗽': { name: 'Statue of Liberty', keywords: ['liberty', 'new', 'ny', 'nyc', 'statue', 'york'] }, + '🗿': { name: 'moai', keywords: ['face', 'moyai', 'statue', 'stoneface', 'travel'] }, + '😀': { name: 'grinning face', keywords: ['cheerful', 'cheery', 'face', 'grin', 'grinning', 'happy', 'laugh', 'nice', 'smile', 'smiling', 'teeth'] }, + '😁': { name: 'beaming face with smiling eyes', keywords: ['beaming', 'eye', 'eyes', 'face', 'grin', 'grinning', 'happy', 'nice', 'smile', 'smiling', 'teeth'] }, + '😂': { name: 'face with tears of joy', keywords: ['crying', 'face', 'feels', 'funny', 'haha', 'happy', 'hehe', 'hilarious', 'joy', 'laugh', 'lmao', 'lol', 'rofl', 'roflmao', 'tear'] }, + '😃': { name: 'grinning face with big eyes', keywords: ['awesome', 'big', 'eyes', 'face', 'grin', 'grinning', 'happy', 'mouth', 'open', 'smile', 'smiling', 'teeth', 'yay'] }, + '😄': { name: 'grinning face with smiling eyes', keywords: ['eye', 'eyes', 'face', 'grin', 'grinning', 'happy', 'laugh', 'lol', 'mouth', 'open', 'smile', 'smiling'] }, + '😅': { name: 'grinning face with sweat', keywords: ['cold', 'dejected', 'excited', 'face', 'grinning', 'mouth', 'nervous', 'open', 'smile', 'smiling', 'stress', 'stressed', 'sweat'] }, + '😆': { name: 'grinning squinting face', keywords: ['closed', 'eyes', 'face', 'grinning', 'haha', 'hahaha', 'happy', 'laugh', 'lol', 'mouth', 'open', 'rofl', 'smile', 'smiling', 'squinting'] }, + '😇': { name: 'smiling face with halo', keywords: ['angel', 'angelic', 'angels', 'blessed', 'face', 'fairy', 'fairytale', 'fantasy', 'halo', 'happy', 'innocent', 'peaceful', 'smile', 'smiling', 'spirit', 'tale'] }, + '😈': { name: 'smiling face with horns', keywords: ['demon', 'devil', 'evil', 'face', 'fairy', 'fairytale', 'fantasy', 'horns', 'purple', 'shade', 'smile', 'smiling', 'tale'] }, + '😉': { name: 'winking face', keywords: ['face', 'flirt', 'heartbreaker', 'sexy', 'slide', 'tease', 'wink', 'winking', 'winks'] }, + '😊': { name: 'smiling face with smiling eyes', keywords: ['blush', 'eye', 'eyes', 'face', 'glad', 'satisfied', 'smile', 'smiling'] }, + '😋': { name: 'face savoring food', keywords: ['delicious', 'eat', 'face', 'food', 'full', 'hungry', 'savor', 'smile', 'smiling', 'tasty', 'um', 'yum', 'yummy'] }, + '😌': { name: 'relieved face', keywords: ['calm', 'face', 'peace', 'relief', 'relieved', 'zen'] }, + '😍': { name: 'smiling face with heart-eyes', keywords: ['143', 'bae', 'eye', 'face', 'feels', 'heart-eyes', 'hearts', 'ily', 'kisses', 'love', 'romance', 'romantic', 'smile', 'xoxo'] }, + '😎': { name: 'smiling face with sunglasses', keywords: ['awesome', 'beach', 'bright', 'bro', 'chilling', 'cool', 'face', 'rad', 'relaxed', 'shades', 'slay', 'smile', 'style', 'sunglasses', 'swag', 'win'] }, + '😏': { name: 'smirking face', keywords: ['boss', 'dapper', 'face', 'flirt', 'homie', 'kidding', 'leer', 'shade', 'slick', 'sly', 'smirk', 'smug', 'snicker', 'suave', 'suspicious', 'swag'] }, + '😐': { name: 'neutral face', keywords: ['awkward', 'blank', 'deadpan', 'expressionless', 'face', 'fine', 'jealous', 'meh', 'neutral', 'oh', 'shade', 'straight', 'unamused', 'unhappy', 'unimpressed', 'whatever'] }, + '😑': { name: 'expressionless face', keywords: ['awkward', 'dead', 'expressionless', 'face', 'fine', 'inexpressive', 'jealous', 'meh', 'not', 'oh', 'omg', 'straight', 'uh', 'unhappy', 'unimpressed', 'whatever'] }, + '😒': { name: 'unamused face', keywords: ['...', 'bored', 'face', 'fine', 'jealous', 'jel', 'jelly', 'pissed', 'smh', 'ugh', 'uhh', 'unamused', 'unhappy', 'weird', 'whatever'] }, + '😓': { name: 'downcast face with sweat', keywords: ['close', 'cold', 'downcast', 'face', 'feels', 'headache', 'nervous', 'sad', 'scared', 'sweat', 'yikes'] }, + '😔': { name: 'pensive face', keywords: ['awful', 'bored', 'dejected', 'died', 'disappointed', 'face', 'losing', 'lost', 'pensive', 'sad', 'sucks'] }, + '😕': { name: 'confused face', keywords: ['befuddled', 'confused', 'confusing', 'dunno', 'face', 'frown', 'hm', 'meh', 'not', 'sad', 'sorry', 'sure'] }, + '😖': { name: 'confounded face', keywords: ['annoyed', 'confounded', 'confused', 'cringe', 'distraught', 'face', 'feels', 'frustrated', 'mad', 'sad'] }, + '😗': { name: 'kissing face', keywords: ['143', 'date', 'dating', 'face', 'flirt', 'ily', 'kiss', 'love', 'smooch', 'smooches', 'xoxo', 'you'] }, + '😘': { name: 'face blowing a kiss', keywords: ['adorbs', 'bae', 'blowing', 'face', 'flirt', 'heart', 'ily', 'kiss', 'love', 'lover', 'miss', 'muah', 'romantic', 'smooch', 'xoxo', 'you'] }, + '😙': { name: 'kissing face with smiling eyes', keywords: ['143', 'closed', 'date', 'dating', 'eye', 'eyes', 'face', 'flirt', 'ily', 'kiss', 'kisses', 'kissing', 'love', 'night', 'smile', 'smiling'] }, + '😚': { name: 'kissing face with closed eyes', keywords: ['143', 'bae', 'blush', 'closed', 'date', 'dating', 'eye', 'eyes', 'face', 'flirt', 'ily', 'kisses', 'kissing', 'smooches', 'xoxo'] }, + '😛': { name: 'face with tongue', keywords: ['awesome', 'cool', 'face', 'nice', 'party', 'stuck-out', 'sweet', 'tongue'] }, + '😜': { name: 'winking face with tongue', keywords: ['crazy', 'epic', 'eye', 'face', 'funny', 'joke', 'loopy', 'nutty', 'party', 'stuck-out', 'tongue', 'wacky', 'weirdo', 'wink', 'winking', 'yolo'] }, + '😝': { name: 'squinting face with tongue', keywords: ['closed', 'eye', 'eyes', 'face', 'gross', 'horrible', 'omg', 'squinting', 'stuck-out', 'taste', 'tongue', 'whatever', 'yolo'] }, + '😞': { name: 'disappointed face', keywords: ['awful', 'blame', 'dejected', 'disappointed', 'face', 'fail', 'losing', 'sad', 'unhappy'] }, + '😟': { name: 'worried face', keywords: ['anxious', 'butterflies', 'face', 'nerves', 'nervous', 'sad', 'stress', 'stressed', 'surprised', 'worried', 'worry'] }, + '😠': { name: 'angry face', keywords: ['anger', 'angry', 'blame', 'face', 'feels', 'frustrated', 'mad', 'maddening', 'rage', 'shade', 'unhappy', 'upset'] }, + '😡': { name: 'enraged face', keywords: ['anger', 'angry', 'enraged', 'face', 'feels', 'mad', 'maddening', 'pouting', 'rage', 'red', 'shade', 'unhappy', 'upset'] }, + '😢': { name: 'crying face', keywords: ['awful', 'cry', 'crying', 'face', 'feels', 'miss', 'sad', 'tear', 'triste', 'unhappy'] }, + '😣': { name: 'persevering face', keywords: ['concentrate', 'concentration', 'face', 'focus', 'headache', 'persevere', 'persevering'] }, + '😤': { name: 'face with steam from nose', keywords: ['anger', 'angry', 'face', 'feels', 'fume', 'fuming', 'furious', 'fury', 'mad', 'nose', 'steam', 'triumph', 'unhappy', 'won'] }, + '😥': { name: 'sad but relieved face', keywords: ['anxious', 'call', 'close', 'complicated', 'disappointed', 'face', 'not', 'relieved', 'sad', 'sweat', 'time', 'whew'] }, + '😦': { name: 'frowning face with open mouth', keywords: ['caught', 'face', 'frown', 'frowning', 'guard', 'mouth', 'open', 'scared', 'scary', 'surprise', 'what', 'wow'] }, + '😧': { name: 'anguished face', keywords: ['anguished', 'face', 'forgot', 'scared', 'scary', 'stressed', 'surprise', 'unhappy', 'what', 'wow'] }, + '😨': { name: 'fearful face', keywords: ['afraid', 'anxious', 'blame', 'face', 'fear', 'fearful', 'scared', 'worried'] }, + '😩': { name: 'weary face', keywords: ['crying', 'face', 'fail', 'feels', 'hungry', 'mad', 'nooo', 'sad', 'sleepy', 'tired', 'unhappy', 'weary'] }, + '😪': { name: 'sleepy face', keywords: ['crying', 'face', 'good', 'night', 'sad', 'sleep', 'sleeping', 'sleepy', 'tired'] }, + '😫': { name: 'tired face', keywords: ['cost', 'face', 'feels', 'nap', 'sad', 'sneeze', 'tired'] }, + '😬': { name: 'grimacing face', keywords: ['awk', 'awkward', 'dentist', 'face', 'grimace', 'grimacing', 'grinning', 'smile', 'smiling'] }, + '😭': { name: 'loudly crying face', keywords: ['bawling', 'cry', 'crying', 'face', 'loudly', 'sad', 'sob', 'tear', 'tears', 'unhappy'] }, + '😮': { name: 'face with open mouth', keywords: ['believe', 'face', 'forgot', 'mouth', 'omg', 'open', 'shocked', 'surprised', 'sympathy', 'unbelievable', 'unreal', 'whoa', 'wow', 'you'] }, + '😯': { name: 'hushed face', keywords: ['epic', 'face', 'hushed', 'omg', 'stunned', 'surprised', 'whoa', 'woah'] }, + '😰': { name: 'anxious face with sweat', keywords: ['anxious', 'blue', 'cold', 'eek', 'face', 'mouth', 'nervous', 'open', 'rushed', 'scared', 'sweat', 'yikes'] }, + '😱': { name: 'face screaming in fear', keywords: ['epic', 'face', 'fear', 'fearful', 'munch', 'scared', 'scream', 'screamer', 'screaming', 'shocked', 'surprised', 'woah'] }, + '😲': { name: 'astonished face', keywords: ['astonished', 'cost', 'face', 'no', 'omg', 'shocked', 'totally', 'way'] }, + '😳': { name: 'flushed face', keywords: ['amazed', 'awkward', 'crazy', 'dazed', 'dead', 'disbelief', 'embarrassed', 'face', 'flushed', 'geez', 'heat', 'hot', 'impressed', 'jeez', 'what', 'wow'] }, + '😴': { name: 'sleeping face', keywords: ['bed', 'bedtime', 'face', 'good', 'goodnight', 'nap', 'night', 'sleep', 'sleeping', 'tired', 'whatever', 'yawn', 'zzz'] }, + '😵': { name: 'face with crossed-out eyes', keywords: ['crossed-out', 'dead', 'dizzy', 'eyes', 'face', 'feels', 'knocked', 'out', 'sick', 'tired'] }, + '😶': { name: 'face without mouth', keywords: ['awkward', 'blank', 'expressionless', 'face', 'mouth', 'mouthless', 'mute', 'quiet', 'secret', 'silence', 'silent', 'speechless'] }, + '😷': { name: 'face with medical mask', keywords: ['cold', 'dentist', 'dermatologist', 'doctor', 'dr', 'face', 'germs', 'mask', 'medical', 'medicine', 'sick'] }, + '😸': { name: 'grinning cat with smiling eyes', keywords: ['animal', 'cat', 'eye', 'eyes', 'face', 'grin', 'grinning', 'smile', 'smiling'] }, + '😹': { name: 'cat with tears of joy', keywords: ['animal', 'cat', 'face', 'joy', 'laugh', 'laughing', 'lol', 'tear', 'tears'] }, + '😺': { name: 'grinning cat', keywords: ['animal', 'cat', 'face', 'grinning', 'mouth', 'open', 'smile', 'smiling'] }, + '😻': { name: 'smiling cat with heart-eyes', keywords: ['animal', 'cat', 'eye', 'face', 'heart', 'heart-eyes', 'love', 'smile', 'smiling'] }, + '😼': { name: 'cat with wry smile', keywords: ['animal', 'cat', 'face', 'ironic', 'smile', 'wry'] }, + '😽': { name: 'kissing cat', keywords: ['animal', 'cat', 'closed', 'eye', 'eyes', 'face', 'kiss', 'kissing'] }, + '😾': { name: 'pouting cat', keywords: ['animal', 'cat', 'face', 'pouting'] }, + '😿': { name: 'crying cat', keywords: ['animal', 'cat', 'cry', 'crying', 'face', 'sad', 'tear'] }, + '🙀': { name: 'weary cat', keywords: ['animal', 'cat', 'face', 'oh', 'surprised', 'weary'] }, + '🙁': { name: 'slightly frowning face', keywords: ['face', 'frown', 'frowning', 'sad', 'slightly'] }, + '🙂': { name: 'slightly smiling face', keywords: ['face', 'happy', 'slightly', 'smile', 'smiling'] }, + '🙃': { name: 'upside-down face', keywords: ['face', 'hehe', 'smile', 'upside-down'] }, + '🙄': { name: 'face with rolling eyes', keywords: ['eyeroll', 'eyes', 'face', 'rolling', 'shade', 'ugh', 'whatever'] }, + '🙅': { name: 'person gesturing NO', keywords: ['forbidden', 'gesture', 'hand', 'no', 'not', 'person', 'prohibit'] }, + '🙆': { name: 'person gesturing OK', keywords: ['exercise', 'gesture', 'gesturing', 'hand', 'ok', 'omg', 'person'] }, + '🙇': { name: 'person bowing', keywords: ['apology', 'ask', 'beg', 'bow', 'bowing', 'favor', 'forgive', 'gesture', 'meditate', 'meditation', 'person', 'pity', 'regret', 'sorry'] }, + '🙈': { name: 'see-no-evil monkey', keywords: ['embarrassed', 'evil', 'face', 'forbidden', 'forgot', 'gesture', 'hide', 'monkey', 'no', 'omg', 'prohibited', 'scared', 'secret', 'smh', 'watch'] }, + '🙉': { name: 'hear-no-evil monkey', keywords: ['animal', 'ears', 'evil', 'face', 'forbidden', 'gesture', 'hear', 'listen', 'monkey', 'no', 'not', 'prohibited', 'secret', 'shh', 'tmi'] }, + '🙊': { name: 'speak-no-evil monkey', keywords: ['animal', 'evil', 'face', 'forbidden', 'gesture', 'monkey', 'no', 'not', 'oops', 'prohibited', 'quiet', 'secret', 'speak', 'stealth'] }, + '🙋': { name: 'person raising hand', keywords: ['gesture', 'hand', 'here', 'know', 'me', 'person', 'pick', 'question', 'raise', 'raising'] }, + '🙌': { name: 'raising hands', keywords: ['celebration', 'gesture', 'hand', 'hands', 'hooray', 'praise', 'raised', 'raising'] }, + '🙏': { name: 'folded hands', keywords: ['appreciate', 'ask', 'beg', 'blessed', 'bow', 'cmon', 'five', 'folded', 'gesture', 'hand', 'high', 'please', 'pray', 'thanks', 'thx'] }, + '🚀': { name: 'rocket', keywords: ['launch', 'rockets', 'space', 'travel'] }, + '🚁': { name: 'helicopter', keywords: ['copter', 'roflcopter', 'travel', 'vehicle'] }, + '🚂': { name: 'locomotive', keywords: ['caboose', 'engine', 'railway', 'steam', 'train', 'trains', 'travel'] }, + '🚆': { name: 'train', keywords: ['arrived', 'choo', 'railway'] }, + '🚇': { name: 'metro', keywords: ['subway', 'travel'] }, + '🚌': { name: 'bus', keywords: ['school', 'vehicle'] }, + '🚑': { name: 'ambulance', keywords: ['emergency', 'vehicle'] }, + '🚒': { name: 'fire engine', keywords: ['engine', 'fire', 'truck'] }, + '🚓': { name: 'police car', keywords: ['5–0', 'car', 'cops', 'patrol', 'police'] }, + '🚕': { name: 'taxi', keywords: ['cab', 'cabbie', 'car', 'drive', 'vehicle', 'yellow'] }, + '🚗': { name: 'automobile', keywords: ['car', 'driving', 'vehicle'] }, + '🚙': { name: 'sport utility vehicle', keywords: ['car', 'drive', 'recreational', 'sport', 'sportutility', 'utility', 'vehicle'] }, + '🚚': { name: 'delivery truck', keywords: ['car', 'delivery', 'drive', 'truck', 'vehicle'] }, + '🚢': { name: 'ship', keywords: ['boat', 'passenger', 'travel'] }, + '🚣': { name: 'person rowing boat', keywords: ['boat', 'canoe', 'cruise', 'fishing', 'lake', 'oar', 'paddle', 'person', 'raft', 'river', 'row', 'rowboat', 'rowing'] }, + '🚦': { name: 'vertical traffic light', keywords: ['drove', 'intersection', 'light', 'signal', 'stop', 'stoplight', 'traffic', 'vertical'] }, + '🚧': { name: 'construction', keywords: ['barrier'] }, + '🚩': { name: 'triangular flag', keywords: ['construction', 'flag', 'golf', 'post', 'triangular'] }, + '🚪': { name: 'door', keywords: ['back', 'closet', 'front'] }, + '🚫': { name: 'prohibited', keywords: ['entry', 'forbidden', 'no', 'not', 'smoke'] }, + '🚬': { name: 'cigarette', keywords: ['smoking'] }, + '🚲': { name: 'bicycle', keywords: ['bike', 'class', 'cycle', 'cycling', 'cyclist', 'gang', 'ride', 'spin', 'spinning'] }, + '🚴': { name: 'person biking', keywords: ['bicycle', 'bicyclist', 'bike', 'biking', 'cycle', 'cyclist', 'person', 'riding', 'sport'] }, + '🚵': { name: 'person mountain biking', keywords: ['bicycle', 'bicyclist', 'bike', 'biking', 'cycle', 'cyclist', 'mountain', 'person', 'riding', 'sport'] }, + '🚽': { name: 'toilet', keywords: ['bathroom'] }, + '🚿': { name: 'shower', keywords: ['water'] }, + '🛁': { name: 'bathtub', keywords: ['bath'] }, + '🛋️': { name: 'couch and lamp', keywords: ['couch', 'hotel', 'lamp'] }, + '🛎️': { name: 'bellhop bell', keywords: ['bell', 'bellhop', 'hotel'] }, + '🛏️': { name: 'bed', keywords: ['hotel', 'sleep'] }, + '🛒': { name: 'shopping cart', keywords: ['cart', 'shopping', 'trolley'] }, + '🛕': { name: 'hindu temple', keywords: ['hindu', 'temple'] }, + '🛠️': { name: 'hammer and wrench', keywords: ['hammer', 'spanner', 'tool', 'wrench'] }, + '🛡️': { name: 'shield', keywords: ['weapon'] }, + '🛢️': { name: 'oil drum', keywords: ['drum', 'oil'] }, + '🛫': { name: 'airplane departure', keywords: ['aeroplane', 'airplane', 'check-in', 'departure', 'departures', 'plane'] }, + '🛬': { name: 'airplane arrival', keywords: ['aeroplane', 'airplane', 'arrival', 'arrivals', 'arriving', 'landing', 'plane'] }, + '🛴': { name: 'kick scooter', keywords: ['kick', 'scooter'] }, + '🛵': { name: 'motor scooter', keywords: ['motor', 'scooter'] }, + '🛶': { name: 'canoe', keywords: ['boat'] }, + '🛷': { name: 'sled', keywords: ['luge', 'sledge', 'sleigh', 'snow', 'toboggan'] }, + '🛸': { name: 'flying saucer', keywords: ['aliens', 'extra', 'flying', 'saucer', 'terrestrial', 'ufo'] }, + '🛹': { name: 'skateboard', keywords: ['board', 'skate', 'skater', 'wheels'] }, + '🛼': { name: 'roller skate', keywords: ['blades', 'roller', 'skate', 'skates', 'sport'] }, + '🟠': { name: 'orange circle', keywords: ['circle', 'orange'] }, + '🟡': { name: 'yellow circle', keywords: ['circle', 'yellow'] }, + '🟢': { name: 'green circle', keywords: ['circle', 'green'] }, + '🟣': { name: 'purple circle', keywords: ['circle', 'purple'] }, + '🟤': { name: 'brown circle', keywords: ['brown', 'circle'] }, + '🟥': { name: 'red square', keywords: ['card', 'penalty', 'red', 'square'] }, + '🟦': { name: 'blue square', keywords: ['blue', 'square'] }, + '🟧': { name: 'orange square', keywords: ['orange', 'square'] }, + '🟨': { name: 'yellow square', keywords: ['card', 'penalty', 'square', 'yellow'] }, + '🟩': { name: 'green square', keywords: ['green', 'square'] }, + '🟪': { name: 'purple square', keywords: ['purple', 'square'] }, + '🟫': { name: 'brown square', keywords: ['brown', 'square'] }, + '🤌': { name: 'pinched fingers', keywords: ['fingers', 'gesture', 'hand', 'hold', 'huh', 'interrogation', 'patience', 'pinched', 'relax', 'sarcastic', 'ugh', 'what', 'zip'] }, + '🤍': { name: 'white heart', keywords: ['143', 'heart', 'white'] }, + '🤎': { name: 'brown heart', keywords: ['143', 'brown', 'heart'] }, + '🤏': { name: 'pinching hand', keywords: ['amount', 'bit', 'fingers', 'hand', 'little', 'pinching', 'small', 'sort'] }, + '🤐': { name: 'zipper-mouth face', keywords: ['face', 'keep', 'mouth', 'quiet', 'secret', 'shut', 'zip', 'zipper', 'zipper-mouth'] }, + '🤑': { name: 'money-mouth face', keywords: ['face', 'money', 'money-mouth', 'mouth', 'paid'] }, + '🤒': { name: 'face with thermometer', keywords: ['face', 'ill', 'sick', 'thermometer'] }, + '🤓': { name: 'nerd face', keywords: ['brainy', 'clever', 'expert', 'face', 'geek', 'gifted', 'glasses', 'intelligent', 'nerd', 'smart'] }, + '🤔': { name: 'thinking face', keywords: ['chin', 'consider', 'face', 'hmm', 'ponder', 'pondering', 'thinking', 'wondering'] }, + '🤕': { name: 'face with head-bandage', keywords: ['bandage', 'face', 'head-bandage', 'hurt', 'injury', 'ouch'] }, + '🤖': { name: 'robot', keywords: ['face', 'monster'] }, + '🤗': { name: 'smiling face with open hands', keywords: ['face', 'hands', 'hug', 'hugging', 'open', 'smiling'] }, + '🤘': { name: 'sign of the horns', keywords: ['finger', 'hand', 'horns', 'rock-on', 'sign'] }, + '🤙': { name: 'call me hand', keywords: ['call', 'hand', 'hang', 'loose', 'me', 'shaka'] }, + '🤚': { name: 'raised back of hand', keywords: ['back', 'backhand', 'hand', 'raised'] }, + '🤛': { name: 'left-facing fist', keywords: ['fist', 'left-facing', 'leftwards'] }, + '🤜': { name: 'right-facing fist', keywords: ['fist', 'right-facing', 'rightwards'] }, + '🤝': { name: 'handshake', keywords: ['agreement', 'deal', 'hand', 'meeting', 'shake'] }, + '🤞': { name: 'crossed fingers', keywords: ['cross', 'crossed', 'finger', 'fingers', 'hand', 'luck'] }, + '🤟': { name: 'love-you gesture', keywords: ['fingers', 'gesture', 'hand', 'ily', 'love', 'love-you', 'three', 'you'] }, + '🤠': { name: 'cowboy hat face', keywords: ['cowboy', 'cowgirl', 'face', 'hat'] }, + '🤡': { name: 'clown face', keywords: ['clown', 'face'] }, + '🤢': { name: 'nauseated face', keywords: ['face', 'gross', 'nasty', 'nauseated', 'sick', 'vomit'] }, + '🤣': { name: 'rolling on the floor laughing', keywords: ['crying', 'face', 'floor', 'funny', 'haha', 'happy', 'hehe', 'hilarious', 'joy', 'laugh', 'lmao', 'lol', 'rofl', 'roflmao', 'rolling', 'tear'] }, + '🤤': { name: 'drooling face', keywords: ['drooling', 'face'] }, + '🤥': { name: 'lying face', keywords: ['face', 'liar', 'lie', 'lying', 'pinocchio'] }, + '🤦': { name: 'person facepalming', keywords: ['again', 'bewilder', 'disbelief', 'exasperation', 'facepalm', 'no', 'not', 'oh', 'omg', 'person', 'shock', 'smh'] }, + '🤧': { name: 'sneezing face', keywords: ['face', 'fever', 'flu', 'gesundheit', 'sick', 'sneeze', 'sneezing'] }, + '🤨': { name: 'face with raised eyebrow', keywords: ['disapproval', 'disbelief', 'distrust', 'emoji', 'eyebrow', 'face', 'hmm', 'mild', 'raised', 'skeptic', 'skeptical', 'skepticism', 'surprise', 'what'] }, + '🤩': { name: 'star-struck', keywords: ['excited', 'eyes', 'face', 'grinning', 'smile', 'star', 'starry-eyed', 'wow'] }, + '🤪': { name: 'zany face', keywords: ['crazy', 'eye', 'eyes', 'face', 'goofy', 'large', 'small', 'zany'] }, + '🤫': { name: 'shushing face', keywords: ['face', 'quiet', 'shh', 'shush', 'shushing'] }, + '🤬': { name: 'face with symbols on mouth', keywords: ['censor', 'cursing', 'cussing', 'face', 'mad', 'mouth', 'pissed', 'swearing', 'symbols'] }, + '🤭': { name: 'face with hand over mouth', keywords: ['face', 'giggle', 'giggling', 'hand', 'mouth', 'oops', 'realization', 'secret', 'shock', 'sudden', 'surprise', 'whoops'] }, + '🤮': { name: 'face vomiting', keywords: ['barf', 'ew', 'face', 'gross', 'puke', 'sick', 'spew', 'throw', 'up', 'vomit', 'vomiting'] }, + '🤯': { name: 'exploding head', keywords: ['blown', 'explode', 'exploding', 'head', 'mind', 'mindblown', 'no', 'shocked', 'way'] }, + '🤲': { name: 'palms up together', keywords: ['cupped', 'dua', 'hands', 'palms', 'pray', 'prayer', 'together', 'up', 'wish'] }, + '🤳': { name: 'selfie', keywords: ['camera', 'phone'] }, + '🤷': { name: 'person shrugging', keywords: ['doubt', 'dunno', 'guess', 'idk', 'ignorance', 'indifference', 'knows', 'maybe', 'person', 'shrug', 'shrugging', 'whatever', 'who'] }, + '🤸': { name: 'person cartwheeling', keywords: ['active', 'cartwheel', 'cartwheeling', 'excited', 'flip', 'gymnastics', 'happy', 'person', 'somersault'] }, + '🤹': { name: 'person juggling', keywords: ['act', 'balance', 'balancing', 'handle', 'juggle', 'juggling', 'manage', 'multitask', 'person', 'skill'] }, + '🤺': { name: 'person fencing', keywords: ['fencer', 'fencing', 'person', 'sword'] }, + '🤼': { name: 'people wrestling', keywords: ['combat', 'duel', 'grapple', 'people', 'ring', 'tournament', 'wrestle', 'wrestling'] }, + '🤾': { name: 'person playing handball', keywords: ['athletics', 'ball', 'catch', 'chuck', 'handball', 'hurl', 'lob', 'person', 'pitch', 'playing', 'sport', 'throw', 'toss'] }, + '🥀': { name: 'wilted flower', keywords: ['dying', 'flower', 'wilted'] }, + '🥁': { name: 'drum', keywords: ['drumsticks', 'music'] }, + '🥂': { name: 'clinking glasses', keywords: ['celebrate', 'clink', 'clinking', 'drink', 'glass', 'glasses'] }, + '🥃': { name: 'tumbler glass', keywords: ['glass', 'liquor', 'scotch', 'shot', 'tumbler', 'whiskey', 'whisky'] }, + '🥄': { name: 'spoon', keywords: ['eat', 'tableware'] }, + '🥅': { name: 'goal net', keywords: ['goal', 'net'] }, + '🥇': { name: '1st place medal', keywords: ['1st', 'first', 'gold', 'medal', 'place'] }, + '🥈': { name: '2nd place medal', keywords: ['2nd', 'medal', 'place', 'second', 'silver'] }, + '🥉': { name: '3rd place medal', keywords: ['3rd', 'bronze', 'medal', 'place', 'third'] }, + '🥊': { name: 'boxing glove', keywords: ['boxing', 'glove'] }, + '🥋': { name: 'martial arts uniform', keywords: ['arts', 'judo', 'karate', 'martial', 'taekwondo', 'uniform'] }, + '🥍': { name: 'lacrosse', keywords: ['ball', 'goal', 'sports', 'stick'] }, + '🥎': { name: 'softball', keywords: ['ball', 'glove', 'sports', 'underarm'] }, + '🥏': { name: 'flying disc', keywords: ['disc', 'flying', 'ultimate'] }, + '🥐': { name: 'croissant', keywords: ['bread', 'breakfast', 'crescent', 'food', 'french', 'roll'] }, + '🥑': { name: 'avocado', keywords: ['food', 'fruit'] }, + '🥒': { name: 'cucumber', keywords: ['food', 'pickle', 'vegetable'] }, + '🥓': { name: 'bacon', keywords: ['breakfast', 'food', 'meat'] }, + '🥔': { name: 'potato', keywords: ['food', 'vegetable'] }, + '🥕': { name: 'carrot', keywords: ['food', 'vegetable'] }, + '🥖': { name: 'baguette bread', keywords: ['baguette', 'bread', 'food', 'french'] }, + '🥗': { name: 'green salad', keywords: ['food', 'green', 'salad'] }, + '🥘': { name: 'shallow pan of food', keywords: ['casserole', 'food', 'paella', 'pan', 'shallow'] }, + '🥙': { name: 'stuffed flatbread', keywords: ['falafel', 'flatbread', 'food', 'gyro', 'kebab', 'stuffed'] }, + '🥚': { name: 'egg', keywords: ['breakfast', 'food'] }, + '🥛': { name: 'glass of milk', keywords: ['drink', 'glass', 'milk'] }, + '🥜': { name: 'peanuts', keywords: ['food', 'nut', 'peanut', 'vegetable'] }, + '🥝': { name: 'kiwi fruit', keywords: ['food', 'fruit', 'kiwi'] }, + '🥞': { name: 'pancakes', keywords: ['breakfast', 'crêpe', 'food', 'hotcake', 'pancake'] }, + '🥟': { name: 'dumpling', keywords: ['empanada', 'gyōza', 'jiaozi', 'pierogi', 'potsticker'] }, + '🥠': { name: 'fortune cookie', keywords: ['cookie', 'fortune', 'prophecy'] }, + '🥡': { name: 'takeout box', keywords: ['box', 'chopsticks', 'delivery', 'food', 'oyster', 'pail', 'takeout'] }, + '🥢': { name: 'chopsticks', keywords: ['hashi', 'jeotgarak', 'kuaizi'] }, + '🥣': { name: 'bowl with spoon', keywords: ['bowl', 'breakfast', 'cereal', 'congee', 'oatmeal', 'porridge', 'spoon'] }, + '🥤': { name: 'cup with straw', keywords: ['cup', 'drink', 'juice', 'malt', 'soda', 'soft', 'straw', 'water'] }, + '🥥': { name: 'coconut', keywords: ['colada', 'palm', 'piña'] }, + '🥦': { name: 'broccoli', keywords: ['cabbage', 'wild'] }, + '🥧': { name: 'pie', keywords: ['apple', 'filling', 'fruit', 'meat', 'pastry', 'pumpkin', 'slice'] }, + '🥨': { name: 'pretzel', keywords: ['convoluted', 'twisted'] }, + '🥩': { name: 'cut of meat', keywords: ['chop', 'cut', 'lambchop', 'meat', 'porkchop', 'red', 'steak'] }, + '🥪': { name: 'sandwich', keywords: ['bread'] }, + '🥫': { name: 'canned food', keywords: ['can', 'canned', 'food'] }, + '🥬': { name: 'leafy green', keywords: ['bok', 'burgers', 'cabbage', 'choy', 'green', 'kale', 'leafy', 'lettuce', 'salad'] }, + '🥭': { name: 'mango', keywords: ['food', 'fruit', 'tropical'] }, + '🥮': { name: 'moon cake', keywords: ['autumn', 'cake', 'festival', 'moon', 'yuèbǐng'] }, + '🥯': { name: 'bagel', keywords: ['bakery', 'bread', 'breakfast', 'schmear'] }, + '🥰': { name: 'smiling face with hearts', keywords: ['3', 'adore', 'crush', 'face', 'heart', 'hearts', 'ily', 'love', 'romance', 'smile', 'smiling', 'you'] }, + '🥱': { name: 'yawning face', keywords: ['bedtime', 'bored', 'face', 'goodnight', 'nap', 'night', 'sleep', 'sleepy', 'tired', 'whatever', 'yawn', 'yawning', 'zzz'] }, + '🥲': { name: 'smiling face with tear', keywords: ['face', 'glad', 'grateful', 'happy', 'joy', 'pain', 'proud', 'relieved', 'smile', 'smiley', 'smiling', 'tear', 'touched'] }, + '🥳': { name: 'partying face', keywords: ['bday', 'birthday', 'celebrate', 'celebration', 'excited', 'face', 'happy', 'hat', 'hooray', 'horn', 'party', 'partying'] }, + '🥴': { name: 'woozy face', keywords: ['dizzy', 'drunk', 'eyes', 'face', 'intoxicated', 'mouth', 'tipsy', 'uneven', 'wavy', 'woozy'] }, + '🥵': { name: 'hot face', keywords: ['dying', 'face', 'feverish', 'heat', 'hot', 'panting', 'red-faced', 'stroke', 'sweating', 'tongue'] }, + '🥶': { name: 'cold face', keywords: ['blue', 'blue-faced', 'cold', 'face', 'freezing', 'frostbite', 'icicles', 'subzero', 'teeth'] }, + '🥸': { name: 'disguised face', keywords: ['disguise', 'eyebrow', 'face', 'glasses', 'incognito', 'moustache', 'mustache', 'nose', 'person', 'spy', 'tache', 'tash'] }, + '🥹': { name: 'face holding back tears', keywords: ['admiration', 'aww', 'back', 'cry', 'embarrassed', 'face', 'feelings', 'grateful', 'gratitude', 'holding', 'joy', 'please', 'proud', 'resist', 'sad', 'tears'] }, + '🥺': { name: 'pleading face', keywords: ['begging', 'big', 'eyes', 'face', 'mercy', 'not', 'pleading', 'please', 'pretty', 'puppy', 'sad', 'why'] }, + '🦀': { name: 'crab', keywords: ['cancer', 'zodiac'] }, + '🦁': { name: 'lion', keywords: ['alpha', 'animal', 'face', 'leo', 'mane', 'order', 'rawr', 'roar', 'safari', 'strong', 'zodiac'] }, + '🦂': { name: 'scorpion', keywords: ['scorpio', 'scorpius', 'zodiac'] }, + '🦃': { name: 'turkey', keywords: ['bird', 'gobble', 'thanksgiving'] }, + '🦄': { name: 'unicorn', keywords: ['face'] }, + '🦅': { name: 'eagle', keywords: ['animal', 'bird', 'ornithology'] }, + '🦆': { name: 'duck', keywords: ['animal', 'bird', 'ornithology'] }, + '🦇': { name: 'bat', keywords: ['animal', 'vampire'] }, + '🦈': { name: 'shark', keywords: ['animal', 'fish'] }, + '🦉': { name: 'owl', keywords: ['animal', 'bird', 'ornithology', 'wise'] }, + '🦊': { name: 'fox', keywords: ['animal', 'face'] }, + '🦋': { name: 'butterfly', keywords: ['insect', 'pretty'] }, + '🦌': { name: 'deer', keywords: ['animal'] }, + '🦍': { name: 'gorilla', keywords: ['animal'] }, + '🦎': { name: 'lizard', keywords: ['animal', 'reptile'] }, + '🦏': { name: 'rhinoceros', keywords: ['animal'] }, + '🦐': { name: 'shrimp', keywords: ['food', 'shellfish', 'small'] }, + '🦑': { name: 'squid', keywords: ['animal', 'food', 'mollusk'] }, + '🦒': { name: 'giraffe', keywords: ['animal', 'spots'] }, + '🦓': { name: 'zebra', keywords: ['animal', 'stripe'] }, + '🦔': { name: 'hedgehog', keywords: ['animal', 'spiny'] }, + '🦕': { name: 'sauropod', keywords: ['brachiosaurus', 'brontosaurus', 'dinosaur', 'diplodocus'] }, + '🦖': { name: 'T-Rex', keywords: ['dinosaur', 'rex', 't', 't-rex', 'tyrannosaurus'] }, + '🦘': { name: 'kangaroo', keywords: ['animal', 'joey', 'jump', 'marsupial'] }, + '🦙': { name: 'llama', keywords: ['alpaca', 'animal', 'guanaco', 'vicuña', 'wool'] }, + '🦚': { name: 'peacock', keywords: ['animal', 'bird', 'colorful', 'ornithology', 'ostentatious', 'peahen', 'pretty', 'proud'] }, + '🦛': { name: 'hippopotamus', keywords: ['animal', 'hippo'] }, + '🦜': { name: 'parrot', keywords: ['animal', 'bird', 'ornithology', 'pirate', 'talk'] }, + '🦝': { name: 'raccoon', keywords: ['animal', 'curious', 'sly'] }, + '🦞': { name: 'lobster', keywords: ['animal', 'bisque', 'claws', 'seafood'] }, + '🦡': { name: 'badger', keywords: ['animal', 'honey', 'pester'] }, + '🦢': { name: 'swan', keywords: ['animal', 'bird', 'cygnet', 'duckling', 'ornithology', 'ugly'] }, + '🦥': { name: 'sloth', keywords: ['lazy', 'slow'] }, + '🦦': { name: 'otter', keywords: ['animal', 'fishing', 'playful'] }, + '🦨': { name: 'skunk', keywords: ['animal', 'stink'] }, + '🦩': { name: 'flamingo', keywords: ['animal', 'bird', 'flamboyant', 'ornithology', 'tropical'] }, + '🦪': { name: 'oyster', keywords: ['diving', 'pearl'] }, + '🦴': { name: 'bone', keywords: ['bones', 'dog', 'skeleton', 'wishbone'] }, + '🦵': { name: 'leg', keywords: ['bent', 'foot', 'kick', 'knee', 'limb'] }, + '🦶': { name: 'foot', keywords: ['ankle', 'feet', 'kick', 'stomp'] }, + '🦷': { name: 'tooth', keywords: ['dentist', 'pearly', 'teeth', 'white'] }, + '🦻': { name: 'ear with hearing aid', keywords: ['accessibility', 'aid', 'ear', 'hard', 'hearing'] }, + '🦾': { name: 'mechanical arm', keywords: ['accessibility', 'arm', 'mechanical', 'prosthetic'] }, + '🦿': { name: 'mechanical leg', keywords: ['accessibility', 'leg', 'mechanical', 'prosthetic'] }, + '🧀': { name: 'cheese wedge', keywords: ['cheese', 'wedge'] }, + '🧁': { name: 'cupcake', keywords: ['bakery', 'dessert', 'sprinkles', 'sugar', 'sweet', 'treat'] }, + '🧂': { name: 'salt', keywords: ['condiment', 'flavor', 'mad', 'salty', 'shaker', 'taste', 'upset'] }, + '🧃': { name: 'beverage box', keywords: ['beverage', 'box', 'juice', 'straw', 'sweet'] }, + '🧄': { name: 'garlic', keywords: ['flavoring'] }, + '🧅': { name: 'onion', keywords: ['flavoring'] }, + '🧆': { name: 'falafel', keywords: ['chickpea', 'meatball'] }, + '🧇': { name: 'waffle', keywords: ['breakfast', 'indecisive', 'iron'] }, + '🧈': { name: 'butter', keywords: ['dairy'] }, + '🧉': { name: 'mate', keywords: ['drink'] }, + '🧊': { name: 'ice', keywords: ['cold', 'cube', 'iceberg'] }, + '🧋': { name: 'bubble tea', keywords: ['boba', 'bubble', 'food', 'milk', 'pearl', 'tea'] }, + '🧏': { name: 'deaf person', keywords: ['accessibility', 'deaf', 'ear', 'gesture', 'hear', 'person'] }, + '🧐': { name: 'face with monocle', keywords: ['classy', 'face', 'fancy', 'monocle', 'rich', 'stuffy', 'wealthy'] }, + '🧑': { name: 'person', keywords: ['adult'] }, + '🧒': { name: 'child', keywords: ['bright-eyed', 'grandchild', 'kid', 'young', 'younger'] }, + '🧓': { name: 'older person', keywords: ['adult', 'elderly', 'grandparent', 'old', 'person', 'wise'] }, + '🧗': { name: 'person climbing', keywords: ['climb', 'climber', 'climbing', 'mountain', 'person', 'rock', 'scale', 'up'] }, + '🧘': { name: 'person in lotus position', keywords: ['cross', 'legged', 'legs', 'lotus', 'meditation', 'peace', 'person', 'position', 'relax', 'serenity', 'yoga', 'yogi', 'zen'] }, + '🧠': { name: 'brain', keywords: ['intelligent', 'smart'] }, + '🧡': { name: 'orange heart', keywords: ['143', 'heart', 'orange'] }, + '🧨': { name: 'firecracker', keywords: ['dynamite', 'explosive', 'fire', 'fireworks', 'light', 'pop', 'popping', 'spark'] }, + '🧩': { name: 'puzzle piece', keywords: ['clue', 'interlocking', 'jigsaw', 'piece', 'puzzle'] }, + '🧭': { name: 'compass', keywords: ['direction', 'magnetic', 'navigation', 'orienteering'] }, + '🧯': { name: 'fire extinguisher', keywords: ['extinguish', 'extinguisher', 'fire', 'quench'] }, + '🧰': { name: 'toolbox', keywords: ['box', 'chest', 'mechanic', 'red', 'tool'] }, + '🧱': { name: 'brick', keywords: ['bricks', 'clay', 'mortar', 'wall'] }, + '🧲': { name: 'magnet', keywords: ['attraction', 'horseshoe', 'magnetic', 'negative', 'positive', 'shape', 'u'] }, + '🧳': { name: 'luggage', keywords: ['bag', 'packing', 'roller', 'suitcase', 'travel'] }, + '🧴': { name: 'lotion bottle', keywords: ['bottle', 'lotion', 'moisturizer', 'shampoo', 'sunscreen'] }, + '🧷': { name: 'safety pin', keywords: ['diaper', 'pin', 'punk', 'rock', 'safety'] }, + '🧹': { name: 'broom', keywords: ['cleaning', 'sweeping', 'witch'] }, + '🧺': { name: 'basket', keywords: ['farming', 'laundry', 'picnic'] }, + '🧻': { name: 'roll of paper', keywords: ['paper', 'roll', 'toilet', 'towels'] }, + '🧼': { name: 'soap', keywords: ['bar', 'bathing', 'clean', 'cleaning', 'lather', 'soapdish'] }, + '🧽': { name: 'sponge', keywords: ['absorbing', 'cleaning', 'porous', 'soak'] }, + '🧾': { name: 'receipt', keywords: ['accounting', 'bookkeeping', 'evidence', 'invoice', 'proof'] }, + '🩸': { name: 'drop of blood', keywords: ['bleed', 'blood', 'donation', 'drop', 'injury', 'medicine', 'menstruation'] }, + '🩹': { name: 'adhesive bandage', keywords: ['adhesive', 'bandage'] }, + '🩺': { name: 'stethoscope', keywords: ['doctor', 'heart', 'medicine'] }, + '🪀': { name: 'yo-yo', keywords: ['fluctuate', 'toy'] }, + '🪁': { name: 'kite', keywords: ['fly', 'soar'] }, + '🪄': { name: 'magic wand', keywords: ['magic', 'magician', 'wand', 'witch', 'wizard'] }, + '🪅': { name: 'piñata', keywords: ['candy', 'celebrate', 'celebration', 'cinco', 'de', 'festive', 'mayo', 'party', 'pinada', 'pinata'] }, + '🪐': { name: 'ringed planet', keywords: ['planet', 'ringed', 'saturn', 'saturnine'] }, + '🪑': { name: 'chair', keywords: ['seat', 'sit'] }, + '🪒': { name: 'razor', keywords: ['sharp', 'shave'] }, + '🪓': { name: 'axe', keywords: ['ax', 'chop', 'hatchet', 'split', 'wood'] }, + '🪔': { name: 'diya lamp', keywords: ['diya', 'lamp', 'light', 'oil'] }, + '🪞': { name: 'mirror', keywords: ['makeup', 'reflection', 'reflector', 'speculum'] }, + '🪟': { name: 'window', keywords: ['air', 'frame', 'fresh', 'opening', 'transparent', 'view'] }, + '🪣': { name: 'bucket', keywords: ['cask', 'pail', 'vat'] }, + '🪥': { name: 'toothbrush', keywords: ['bathroom', 'brush', 'clean', 'dental', 'hygiene', 'teeth', 'toiletry'] }, + '🪦': { name: 'headstone', keywords: ['cemetery', 'dead', 'grave', 'graveyard', 'memorial', 'rip', 'tomb', 'tombstone'] }, + '🪴': { name: 'potted plant', keywords: ['decor', 'grow', 'house', 'nurturing', 'plant', 'pot', 'potted'] }, + '🫀': { name: 'anatomical heart', keywords: ['anatomical', 'beat', 'cardiology', 'heart', 'heartbeat', 'organ', 'pulse', 'real', 'red'] }, + '🫁': { name: 'lungs', keywords: ['breath', 'breathe', 'exhalation', 'inhalation', 'lung', 'organ', 'respiration'] }, + '🫂': { name: 'people hugging', keywords: ['comfort', 'embrace', 'farewell', 'friendship', 'goodbye', 'hello', 'hug', 'hugging', 'love', 'people', 'thanks'] }, + '🫐': { name: 'blueberries', keywords: ['berries', 'berry', 'bilberry', 'blue', 'blueberry', 'food', 'fruit'] }, + '🫑': { name: 'bell pepper', keywords: ['bell', 'capsicum', 'food', 'pepper', 'vegetable'] }, + '🫒': { name: 'olive', keywords: ['food'] }, + '🫖': { name: 'teapot', keywords: ['brew', 'drink', 'food', 'pot', 'tea'] }, + '🫠': { name: 'melting face', keywords: ['disappear', 'dissolve', 'embarrassed', 'face', 'haha', 'heat', 'hot', 'liquid', 'lol', 'melt', 'melting', 'sarcasm', 'sarcastic'] }, + '🫡': { name: 'saluting face', keywords: ['face', 'good', 'luck', 'ma’am', 'ok', 'respect', 'salute', 'saluting', 'sir', 'troops', 'yes'] }, + '🫢': { name: 'face with open eyes and hand over mouth', keywords: ['amazement', 'awe', 'disbelief', 'embarrass', 'eyes', 'face', 'gasp', 'hand', 'mouth', 'omg', 'open', 'over', 'quiet', 'scared', 'shock', 'surprise'] }, + '🫣': { name: 'face with peeking eye', keywords: ['captivated', 'embarrass', 'eye', 'face', 'hide', 'hiding', 'peek', 'peeking', 'peep', 'scared', 'shy', 'stare'] }, + '🫤': { name: 'face with diagonal mouth', keywords: ['confused', 'confusion', 'diagonal', 'disappointed', 'doubt', 'doubtful', 'face', 'frustrated', 'frustration', 'meh', 'mouth', 'skeptical', 'unsure', 'whatever', 'wtv'] }, + '🫥': { name: 'dotted line face', keywords: ['depressed', 'disappear', 'dotted', 'face', 'hidden', 'hide', 'introvert', 'invisible', 'line', 'meh', 'whatever', 'wtv'] }, + '🫰': { name: 'hand with index finger and thumb crossed', keywords: ['<3', 'crossed', 'expensive', 'finger', 'hand', 'heart', 'index', 'love', 'money', 'snap', 'thumb'] }, + '🫶': { name: 'heart hands', keywords: ['<3', 'hands', 'heart', 'love', 'you'] }, +}