From 36c96a8a88e28f500fafcff9e0fbd4fb58e696cd Mon Sep 17 00:00:00 2001 From: pliny <133052465+elder-plinius@users.noreply.github.com> Date: Thu, 13 Mar 2025 23:24:49 -0400 Subject: [PATCH] Update emojiLibrary.js --- js/emojiLibrary.js | 742 +++++++++++++++++++++++++++++++++------------ 1 file changed, 548 insertions(+), 194 deletions(-) diff --git a/js/emojiLibrary.js b/js/emojiLibrary.js index 15dd38c..00ba9b2 100644 --- a/js/emojiLibrary.js +++ b/js/emojiLibrary.js @@ -1,12 +1,14 @@ // Emoji Library for P4RS3LT0NGV3 +// Create namespace for emoji library window.emojiLibrary = {}; -// Polyfill for Intl.Segmenter +// Polyfill for Intl.Segmenter if not available if (!Intl.Segmenter) { console.warn('Intl.Segmenter not available, falling back to basic character splitting'); } +// Helper function to properly split text into grapheme clusters (emojis) window.emojiLibrary.splitEmojis = function(text) { if (Intl.Segmenter) { const segmenter = new Intl.Segmenter('en', { granularity: 'grapheme' }); @@ -15,240 +17,592 @@ window.emojiLibrary.splitEmojis = function(text) { return Array.from(text); }; +// Helper function to properly join emojis window.emojiLibrary.joinEmojis = function(emojis) { return emojis.join(''); }; -// Complete Emoji Categories -window.emojiLibrary.EMOJIS = { - smileys_emotions: [ - "๐Ÿ˜€", "๐Ÿ˜", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜…", "๐Ÿ˜†", "๐Ÿ˜‰", "๐Ÿ˜Š", "๐Ÿ˜‹", "๐Ÿ˜Ž", "๐Ÿ˜", "๐Ÿ˜˜", "๐Ÿฅฐ", - "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ™‚", "๐Ÿค—", "๐Ÿคฉ", "๐Ÿค”", "๐Ÿคจ", "๐Ÿ˜", "๐Ÿ˜‘", "๐Ÿ˜ถ", "๐Ÿ™„", "๐Ÿ˜", "๐Ÿ˜ฃ", "๐Ÿ˜ฅ", - "๐Ÿ˜ฎ", "๐Ÿค", "๐Ÿ˜ฏ", "๐Ÿ˜ช", "๐Ÿ˜ซ", "๐Ÿ˜ด", "๐Ÿ˜Œ", "๐Ÿ˜›", "๐Ÿ˜œ", "๐Ÿ˜", "๐Ÿคค", "๐Ÿ˜’", "๐Ÿ˜“", "๐Ÿ˜”", "๐Ÿ˜•", - "๐Ÿ™ƒ", "๐Ÿค‘", "๐Ÿ˜ฒ", "๐Ÿ™", "๐Ÿ˜–", "๐Ÿ˜ž", "๐Ÿ˜Ÿ", "๐Ÿ˜ค", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ง", "๐Ÿ˜จ", "๐Ÿ˜ฉ", "๐Ÿคฏ", "๐Ÿ˜ฑ", - "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ก", "๐Ÿ˜ ", "๐Ÿคฌ", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜‡", "๐Ÿฅณ", "๐Ÿฅด", - "๐Ÿฅบ", "๐Ÿง", "๐Ÿฅฑ", "๐Ÿค“", "๐Ÿค ", "๐Ÿคก", "๐Ÿคฅ", "๐Ÿคซ", "๐Ÿคญ", "๐Ÿซ ", "๐Ÿซก", "๐Ÿซข", "๐Ÿซฃ", "๐Ÿซค", "๐Ÿซฅ" - ], +// Additional emojis for expanded library +window.emojiLibrary.ADDITIONAL_EMOJIS = [ + // Animals & Nature + "๐ŸฆŠ", "๐Ÿฆ", "๐Ÿฏ", "๐Ÿฎ", "๐Ÿท", "๐Ÿธ", "๐Ÿต", "๐Ÿ”", "๐Ÿง", "๐Ÿฆ", "๐Ÿค", "๐Ÿฆ†", "๐Ÿฆ…", "๐Ÿฆ‰", "๐Ÿฆ‡", "๐Ÿบ", "๐Ÿ—", "๐Ÿด", "๐Ÿฆ„", "๐Ÿ", "๐Ÿ›", "๐Ÿฆ‹", "๐ŸŒ", "๐Ÿž", "๐Ÿœ", "๐Ÿ•ท๏ธ", "๐Ÿฆ‚", "๐ŸฆŸ", "๐Ÿฆ ", "๐Ÿฆจ", "๐Ÿฆฉ", "๐Ÿฆซ", "๐Ÿฆฌ", "๐Ÿปโ€โ„๏ธ", "๐Ÿผ", "๐Ÿจ", "๐Ÿ•", "๐Ÿถ", "๐Ÿฉ", "๐Ÿˆ", "๐Ÿฑ", "๐Ÿชฑ", - people_body: [ - "๐Ÿ‘ถ", "๐Ÿง’", "๐Ÿ‘ฆ", "๐Ÿ‘ง", "๐Ÿง‘", "๐Ÿ‘จ", "๐Ÿ‘ฉ", "๐Ÿง“", "๐Ÿ‘ด", "๐Ÿ‘ต", "๐Ÿ‘จโ€โš•๏ธ", "๐Ÿ‘ฉโ€โš•๏ธ", "๐Ÿ‘จโ€๐ŸŽ“", "๐Ÿ‘ฉโ€๐ŸŽ“", - "๐Ÿ‘จโ€๐Ÿซ", "๐Ÿ‘ฉโ€๐Ÿซ", "๐Ÿ‘จโ€โš–๏ธ", "๐Ÿ‘ฉโ€โš–๏ธ", "๐Ÿ‘จโ€๐ŸŒพ", "๐Ÿ‘ฉโ€๐ŸŒพ", "๐Ÿ‘จโ€๐Ÿณ", "๐Ÿ‘ฉโ€๐Ÿณ", "๐Ÿ‘จโ€๐Ÿ”ง", "๐Ÿ‘ฉโ€๐Ÿ”ง", "๐Ÿ‘จโ€๐Ÿญ", - "๐Ÿ‘ฉโ€๐Ÿญ", "๐Ÿ‘จโ€๐Ÿ’ผ", "๐Ÿ‘ฉโ€๐Ÿ’ผ", "๐Ÿ‘จโ€๐Ÿ”ฌ", "๐Ÿ‘ฉโ€๐Ÿ”ฌ", "๐Ÿ‘จโ€๐Ÿ’ป", "๐Ÿ‘ฉโ€๐Ÿ’ป", "๐Ÿ‘จโ€๐ŸŽค", "๐Ÿ‘ฉโ€๐ŸŽค", "๐Ÿ‘จโ€๐ŸŽจ", "๐Ÿ‘ฉโ€๐ŸŽจ", - "๐Ÿ‘จโ€โœˆ๏ธ", "๐Ÿ‘ฉโ€โœˆ๏ธ", "๐Ÿ‘จโ€๐Ÿš€", "๐Ÿ‘ฉโ€๐Ÿš€", "๐Ÿ‘จโ€๐Ÿš’", "๐Ÿ‘ฉโ€๐Ÿš’", "๐Ÿ•ต๏ธโ€โ™‚๏ธ", "๐Ÿ•ต๏ธโ€โ™€๏ธ", "๐Ÿ’‚โ€โ™‚๏ธ", "๐Ÿ’‚โ€โ™€๏ธ", "๐Ÿ‘ฎโ€โ™‚๏ธ", - "๐Ÿ‘ฎโ€โ™€๏ธ", "๐Ÿคด", "๐Ÿ‘ธ", "๐Ÿ‘ณโ€โ™‚๏ธ", "๐Ÿ‘ณโ€โ™€๏ธ", "๐Ÿ‘ฒ", "๐Ÿง•", "๐Ÿง”", "๐Ÿ‘ฑโ€โ™‚๏ธ", "๐Ÿ‘ฑโ€โ™€๏ธ", "๐Ÿ™โ€โ™‚๏ธ", "๐Ÿ™โ€โ™€๏ธ", - "๐Ÿ™Žโ€โ™‚๏ธ", "๐Ÿ™Žโ€โ™€๏ธ", "๐Ÿ™…โ€โ™‚๏ธ", "๐Ÿ™…โ€โ™€๏ธ", "๐Ÿ™†โ€โ™‚๏ธ", "๐Ÿ™†โ€โ™€๏ธ", "๐Ÿ’โ€โ™‚๏ธ", "๐Ÿ’โ€โ™€๏ธ", "๐Ÿ™‹โ€โ™‚๏ธ", "๐Ÿ™‹โ€โ™€๏ธ", - "๐Ÿงโ€โ™‚๏ธ", "๐Ÿงโ€โ™€๏ธ", "๐Ÿ™‡โ€โ™‚๏ธ", "๐Ÿ™‡โ€โ™€๏ธ", "๐Ÿคฆโ€โ™‚๏ธ", "๐Ÿคฆโ€โ™€๏ธ", "๐Ÿคทโ€โ™‚๏ธ", "๐Ÿคทโ€โ™€๏ธ", "๐Ÿ’†โ€โ™‚๏ธ", "๐Ÿ’†โ€โ™€๏ธ", - "๐Ÿ’‡โ€โ™‚๏ธ", "๐Ÿ’‡โ€โ™€๏ธ", "๐Ÿšถโ€โ™‚๏ธ", "๐Ÿšถโ€โ™€๏ธ", "๐Ÿƒโ€โ™‚๏ธ", "๐Ÿƒโ€โ™€๏ธ", "๐Ÿ’ƒ", "๐Ÿ•บ", "๐Ÿ‘ฏโ€โ™‚๏ธ", "๐Ÿ‘ฏโ€โ™€๏ธ", "๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘", - "๐Ÿ‘จโ€๐Ÿคโ€๐Ÿ‘จ", "๐Ÿ‘ฉโ€๐Ÿคโ€๐Ÿ‘ฉ", "๐Ÿ‘ช", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ", - "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง", "๐Ÿ—ฃ๏ธ", "๐Ÿ‘ค", "๐Ÿ‘ฅ", "๐Ÿซ‚", "๐Ÿ‘ฃ" - ], + // Food & Drink + "๐Ÿ", "๐ŸŽ", "๐Ÿ", "๐ŸŠ", "๐Ÿ‹", "๐ŸŒ", "๐Ÿ‰", "๐Ÿ‡", "๐Ÿ“", "๐Ÿˆ", "๐Ÿ’", "๐Ÿ‘", "๐Ÿฅญ", "๐Ÿ", "๐Ÿฅฅ", "๐Ÿฅ", "๐Ÿ…", "๐Ÿ†", "๐Ÿฅ‘", "๐Ÿฅฆ", "๐Ÿฅฌ", "๐Ÿฅ’", "๐ŸŒถ๏ธ", "๐ŸŒฝ", "๐Ÿฅ•", "๐Ÿง„", "๐Ÿง…", "๐Ÿฅ”", "๐Ÿ ", "๐Ÿฅ", "๐Ÿ”", "๐Ÿ•", "๐Ÿ–", "๐Ÿ—", "๐Ÿค", "๐Ÿฃ", "๐Ÿฑ", "๐Ÿœ", "๐Ÿฒ", "๐Ÿฅ", - gestures: [ - "๐Ÿ‘‹", "๐Ÿคš", "๐Ÿ–๏ธ", "โœ‹", "๐Ÿ––", "๐Ÿ‘Œ", "๐ŸคŒ", "๐Ÿค", "โœŒ๏ธ", "๐Ÿคž", "๐ŸคŸ", "๐Ÿค˜", "๐Ÿค™", "๐Ÿ‘ˆ", "๐Ÿ‘‰", - "๐Ÿ‘†", "๐Ÿ–•", "๐Ÿ‘‡", "โ˜๏ธ", "๐Ÿ‘", "๐Ÿ‘Ž", "โœŠ", "๐Ÿ‘Š", "๐Ÿค›", "๐Ÿคœ", "๐Ÿ‘", "๐Ÿ™Œ", "๐Ÿ‘", "๐Ÿคฒ", "๐Ÿค", - "๐Ÿ™", "โœ๏ธ", "๐Ÿ’…", "๐Ÿคณ", "๐Ÿ’ช", "๐Ÿฆพ", "๐Ÿฆฟ", "๐Ÿฆต", "๐Ÿฆถ", "๐Ÿ‘‚", "๐Ÿฆป", "๐Ÿ‘ƒ", "๐Ÿง ", "๐Ÿซ€", - "๐Ÿซ", "๐Ÿฆท", "๐Ÿฆด", "๐Ÿ‘€", "๐Ÿ‘๏ธ", "๐Ÿ‘…", "๐Ÿ‘„", "๐Ÿซฆ" - ], + // Travel & Places + "๐Ÿš—", "๐Ÿš•", "๐Ÿš™", "๐ŸšŒ", "๐ŸšŽ", "๐Ÿš’", "๐Ÿš‘", "๐Ÿšš", "๐Ÿš›", "๐Ÿšœ", "๐Ÿšฒ", "๐Ÿš", "๐ŸšŸ", "๐Ÿšก", "๐Ÿš€", "๐Ÿ›ธ", "๐Ÿ›ฅ๏ธ", "๐ŸŽ๏ธ", "๐Ÿ๏ธ", "๐Ÿšค", "๐Ÿšข", "๐Ÿš", "๐Ÿš‚", "๐Ÿš†", "๐Ÿšˆ", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐Ÿ”๏ธ", "๐Ÿ•๏ธ", - animals_nature: [ - "๐Ÿต", "๐Ÿ’", "๐Ÿฆ", "๐Ÿฆง", "๐Ÿถ", "๐Ÿ•", "๐Ÿฆฎ", "๐Ÿ•โ€๐Ÿฆบ", "๐Ÿฉ", "๐Ÿบ", "๐ŸฆŠ", "๐Ÿฆ", "๐Ÿฑ", "๐Ÿˆ", - "๐Ÿˆโ€โฌ›", "๐Ÿฆ", "๐Ÿฏ", "๐Ÿ…", "๐Ÿ†", "๐Ÿด", "๐ŸŽ", "๐Ÿฆ„", "๐Ÿฆ“", "๐ŸฆŒ", "๐Ÿฆฌ", "๐Ÿฎ", "๐Ÿ‚", "๐Ÿƒ", - "๐Ÿ„", "๐Ÿท", "๐Ÿ–", "๐Ÿ—", "๐Ÿฝ", "๐Ÿ", "๐Ÿ‘", "๐Ÿ", "๐Ÿช", "๐Ÿซ", "๐Ÿฆ™", "๐Ÿฆ’", "๐Ÿ˜", "๐Ÿฆฃ", - "๐Ÿฆ", "๐Ÿฆ›", "๐Ÿญ", "๐Ÿ", "๐Ÿ€", "๐Ÿฆซ", "๐Ÿฆ”", "๐Ÿฐ", "๐Ÿ‡", "๐Ÿฟ๏ธ", "๐Ÿฆจ", "๐Ÿฆก", "๐Ÿฆฆ", "๐Ÿฆฅ", - "๐Ÿป", "๐Ÿปโ€โ„๏ธ", "๐Ÿจ", "๐Ÿผ", "๐Ÿฆ˜", "๐Ÿฆƒ", "๐Ÿ”", "๐Ÿ“", "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿง", "๐Ÿ•Š๏ธ", - "๐Ÿฆ…", "๐Ÿฆ†", "๐Ÿฆข", "๐Ÿฆ‰", "๐Ÿฆค", "๐Ÿชถ", "๐Ÿฆฉ", "๐Ÿฆš", "๐Ÿฆœ", "๐Ÿธ", "๐ŸŠ", "๐Ÿข", "๐ŸฆŽ", "๐Ÿ", - "๐Ÿฒ", "๐Ÿ‰", "๐Ÿฆ•", "๐Ÿฆ–", "๐Ÿณ", "๐Ÿ‹", "๐Ÿฌ", "๐Ÿฆญ", "๐ŸŸ", "๐Ÿ ", "๐Ÿก", "๐Ÿฆˆ", "๐Ÿ™", "๐Ÿฆ‘", - "๐Ÿฆช", "๐Ÿฆ€", "๐Ÿฆž", "๐Ÿฆ", "๐Ÿฆ—", "๐Ÿชณ", "๐Ÿ•ท๏ธ", "๐Ÿ•ธ๏ธ", "๐Ÿฆ‚", "๐Ÿ", "๐Ÿชฐ", "๐Ÿฆ‹", "๐Ÿž", "๐ŸฆŸ", - "๐Ÿœ", "๐Ÿชฒ", "๐ŸŒ", "๐Ÿชด", "๐ŸŒฒ", "๐ŸŒณ", "๐ŸŒด", "๐ŸŒต", "๐ŸŒพ", "๐ŸŒฟ", "โ˜˜๏ธ", "๐Ÿ€", "๐Ÿ", "๐Ÿ‚", - "๐Ÿƒ", "๐Ÿชธ", "๐Ÿชน", "๐Ÿชบ" - ], + // Activities & Sports + "โšฝ", "๐Ÿ€", "๐Ÿˆ", "๐Ÿ", "๐Ÿ‰", "๐ŸŽพ", "๐ŸŽณ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿธ", "๐ŸฅŠ", "๐Ÿฅ‹", "๐Ÿฅ…", "๐Ÿคพ", "๐ŸŽฟ", "๐Ÿ„", "๐Ÿ‚", "๐ŸŠ", "๐Ÿ‹๏ธ", "๐Ÿคผ", "๐Ÿคธ", "๐Ÿคบ", "๐Ÿคฝ", "๐Ÿคน", "๐ŸŽฏ", "๐ŸŽฑ", "๐ŸŽฝ", "๐Ÿšด", "๐Ÿšต", - food_drink: [ - "๐Ÿ‡", "๐Ÿˆ", "๐Ÿ‰", "๐ŸŠ", "๐Ÿ‹", "๐ŸŒ", "๐Ÿ", "๐Ÿฅญ", "๐ŸŽ", "๐Ÿ", "๐Ÿ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", - "๐Ÿซ", "๐Ÿฅ", "๐Ÿ…", "๐Ÿซ’", "๐Ÿฅฅ", "๐Ÿฅ‘", "๐Ÿ†", "๐Ÿฅ”", "๐Ÿฅ•", "๐ŸŒฝ", "๐ŸŒถ๏ธ", "๐Ÿซ‘", "๐Ÿฅ’", "๐Ÿฅฌ", - "๐Ÿฅฆ", "๐Ÿง„", "๐Ÿง…", "๐Ÿ„", "๐Ÿฅœ", "๐Ÿซ˜", "๐ŸŒฐ", "๐Ÿซš", "๐Ÿซ›", "๐Ÿž", "๐Ÿฅ", "๐Ÿฅ–", "๐Ÿซ“", "๐Ÿฅจ", - "๐Ÿฅฏ", "๐Ÿฅž", "๐Ÿง‡", "๐Ÿง€", "๐Ÿ–", "๐Ÿ—", "๐Ÿฅฉ", "๐Ÿฅ“", "๐Ÿ”", "๐ŸŸ", "๐Ÿ•", "๐ŸŒญ", "๐Ÿฅช", "๐ŸŒฎ", - "๐ŸŒฏ", "๐Ÿซ”", "๐Ÿฅ™", "๐Ÿง†", "๐Ÿฅš", "๐Ÿณ", "๐Ÿฅ˜", "๐Ÿฒ", "๐Ÿซ•", "๐Ÿฅฃ", "๐Ÿฅ—", "๐Ÿฟ", "๐Ÿงˆ", "๐Ÿง‚", - "๐Ÿฅซ", "๐Ÿฑ", "๐Ÿ˜", "๐Ÿ™", "๐Ÿš", "๐Ÿ›", "๐Ÿœ", "๐Ÿ", "๐Ÿ ", "๐Ÿข", "๐Ÿฃ", "๐Ÿค", "๐Ÿฅ", "๐Ÿฅฎ", - "๐Ÿก", "๐ŸฅŸ", "๐Ÿฅ ", "๐Ÿฅก", "๐Ÿฆช", "๐Ÿฆ€", "๐Ÿฆž", "๐Ÿฆ", "๐Ÿฆ‘", "๐Ÿฆ", "๐Ÿง", "๐Ÿจ", "๐Ÿฉ", "๐Ÿช", - "๐ŸŽ‚", "๐Ÿฐ", "๐Ÿง", "๐Ÿฅง", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฎ", "๐Ÿฏ", "๐Ÿผ", "๐Ÿฅ›", "โ˜•", "๐Ÿซ–", "๐Ÿต", - "๐Ÿถ", "๐Ÿพ", "๐Ÿท", "๐Ÿธ", "๐Ÿน", "๐Ÿบ", "๐Ÿป", "๐Ÿฅ‚", "๐Ÿฅƒ", "๐Ÿง‰", "๐ŸงŠ" - ], + // Tech & Objects + "๐Ÿ’ป", "โŒจ๏ธ", "๐Ÿ–ฅ๏ธ", "๐Ÿ–ฑ๏ธ", "๐Ÿ–จ๏ธ", "๐Ÿ“ฑ", "โ˜Ž๏ธ", "๐Ÿ“ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™๏ธ", "๐ŸŽš๏ธ", "๐ŸŽ›๏ธ", "๐Ÿงญ", "โฑ๏ธ", "โฒ๏ธ", "โฐ", "๐Ÿ•ฐ๏ธ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿฎ", "๐Ÿช”", "๐Ÿงฏ", "๐Ÿ›ข๏ธ", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ณ", "๐Ÿ’ด", "๐Ÿ’ถ", "๐Ÿ’ท", "๐Ÿ’ฐ", "๐Ÿ’ฑ", "๐Ÿ’ฒ", "๐Ÿ’ผ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", - travel_places: [ - "๐ŸŒ", "๐ŸŒŽ", "๐ŸŒ", "๐ŸŒ", "๐Ÿ—บ๏ธ", "๐Ÿ—พ", "๐Ÿงญ", "๐Ÿ”๏ธ", "โ›ฐ๏ธ", "๐ŸŒ‹", "๐Ÿ—ป", "๐Ÿ•๏ธ", "๐Ÿ–๏ธ", "๐Ÿœ๏ธ", - "๐Ÿ๏ธ", "๐Ÿž๏ธ", "๐ŸŸ๏ธ", "๐Ÿ›๏ธ", "๐Ÿ—๏ธ", "๐Ÿชจ", "๐Ÿชต", "๐Ÿ›–", "๐Ÿ˜๏ธ", "๐Ÿš๏ธ", "๐Ÿ ", "๐Ÿก", "๐Ÿข", "๐Ÿฃ", - "๐Ÿค", "๐Ÿฅ", "๐Ÿฆ", "๐Ÿจ", "๐Ÿฉ", "๐Ÿช", "๐Ÿซ", "๐Ÿฌ", "๐Ÿญ", "๐Ÿฏ", "๐Ÿฐ", "๐Ÿ’’", "๐Ÿ—ผ", "๐Ÿ—ฝ", "โ›ช", - "๐Ÿ•Œ", "๐Ÿ›•", "๐Ÿ•", "โ›ฉ๏ธ", "๐Ÿ•‹", "โ›ฒ", "โ›บ", "๐ŸŒ", "๐ŸŒƒ", "๐Ÿ™๏ธ", "๐ŸŒ„", "๐ŸŒ…", "๐ŸŒ†", "๐ŸŒ‡", - "๐ŸŒ‰", "โ™จ๏ธ", "๐ŸŽ ", "๐Ÿ›", "๐ŸŽก", "๐ŸŽข", "๐Ÿ’ˆ", "๐ŸŽช", "๐Ÿš‚", "๐Ÿšƒ", "๐Ÿš„", "๐Ÿš…", "๐Ÿš†", "๐Ÿš‡", - "๐Ÿšˆ", "๐Ÿš‰", "๐ŸšŠ", "๐Ÿš", "๐Ÿšž", "๐Ÿš‹", "๐ŸšŒ", "๐Ÿš", "๐ŸšŽ", "๐Ÿš", "๐Ÿš‘", "๐Ÿš’", "๐Ÿš“", "๐Ÿš”", - "๐Ÿš•", "๐Ÿš–", "๐Ÿš—", "๐Ÿš˜", "๐Ÿš™", "๐Ÿ›ป", "๐Ÿšš", "๐Ÿš›", "๐Ÿšœ", "๐ŸŽ๏ธ", "๐Ÿ๏ธ", "๐Ÿ›ต", "๐Ÿฆฝ", "๐Ÿฆผ", - "๐Ÿ›บ", "๐Ÿšฒ", "๐Ÿ›ด", "๐Ÿ›น", "๐Ÿ›ผ", "๐Ÿš", "๐Ÿ›ฃ๏ธ", "๐Ÿ›ค๏ธ", "๐Ÿ›ข๏ธ", "โ›ฝ", "๐Ÿ›ž", "๐Ÿšจ", "๐Ÿšฅ", "๐Ÿšฆ", - "๐Ÿ›‘", "๐Ÿšง", "โš“", "๐Ÿ›Ÿ", "โ›ต", "๐Ÿ›ถ", "๐Ÿšค", "๐Ÿ›ณ๏ธ", "โ›ด๏ธ", "๐Ÿ›ฅ๏ธ", "๐Ÿšข", "โœˆ๏ธ", "๐Ÿ›ฉ๏ธ", "๐Ÿ›ซ", - "๐Ÿ›ฌ", "๐Ÿช‚", "๐Ÿ’บ", "๐Ÿš", "๐ŸšŸ", "๐Ÿš ", "๐Ÿšก", "๐Ÿ›ฐ๏ธ", "๐Ÿš€", "๐Ÿ›ธ", "๐Ÿช" - ], + // Symbols + "โค๏ธ", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ’”", "๐Ÿ’•", "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "๐Ÿ’Ÿ", "๐Ÿ’ค", "๐Ÿ’ข", "๐Ÿ’ฃ", "๐Ÿ’ฅ", "๐Ÿ’ฆ", "๐Ÿ’จ", "๐Ÿ’ฉ", "๐Ÿ’ซ", "๐Ÿ’ฌ", "๐Ÿ”ฅ", "๐Ÿ’ ", "๐Ÿ‘พ", "๐Ÿ‘ป", "๐Ÿ’€", "๐Ÿ‘ฝ", "๐Ÿ‘ฟ", "๐Ÿฉธ", - activities: [ - "โšฝ", "๐Ÿ€", "๐Ÿˆ", "โšพ", "๐ŸฅŽ", "๐ŸŽพ", "๐Ÿ", "๐Ÿ‰", "๐Ÿฅ", "๐ŸŽณ", "๐Ÿ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿฅ", "๐Ÿ“", - "๐Ÿธ", "๐ŸฅŠ", "๐Ÿฅ‹", "๐Ÿฅ…", "โ›ณ", "โ›ธ๏ธ", "๐ŸŽฃ", "๐Ÿคฟ", "๐ŸŽฝ", "๐ŸŽฟ", "๐Ÿ›ท", "๐ŸฅŒ", "๐ŸŽฏ", "๐Ÿช€", - "๐Ÿช", "๐ŸŽฑ", "๐Ÿ”ฎ", "๐Ÿช„", "๐ŸŽฒ", "๐Ÿงฉ", "๐Ÿช…", "๐Ÿช†", "๐ŸŽฐ", "๐ŸŽฎ", "๐ŸŽณ", "๐ŸŽญ", "๐ŸŽจ", "๐ŸŽฌ", - "๐ŸŽค", "๐ŸŽง", "๐ŸŽผ", "๐ŸŽน", "๐Ÿฅ", "๐Ÿช˜", "๐ŸŽท", "๐ŸŽบ", "๐Ÿช—", "๐ŸŽธ", "๐Ÿช•", "๐ŸŽป", "๐Ÿชฉ", "๐ŸŽช", - "๐ŸŽŸ๏ธ", "๐ŸŽซ", "๐Ÿ…", "๐Ÿฅ‡", "๐Ÿฅˆ", "๐Ÿฅ‰", "๐Ÿ†", "๐Ÿ’", "๐Ÿธ" - ], + // Mystical & Fantasy + "๐Ÿง™", "๐Ÿง™โ€โ™‚๏ธ", "๐Ÿง™โ€โ™€๏ธ", "๐Ÿงš", "๐Ÿงšโ€โ™‚๏ธ", "๐Ÿงšโ€โ™€๏ธ", "๐Ÿง›", "๐Ÿง›โ€โ™‚๏ธ", "๐Ÿง›โ€โ™€๏ธ", "๐Ÿงœ", "๐Ÿงœโ€โ™‚๏ธ", "๐Ÿงœโ€โ™€๏ธ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿ‘ป", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿฒ", "๐Ÿ”ฎ", "๐Ÿ", "๐Ÿ‰", "๐Ÿฆ„", "๐Ÿ‘ธ", "๐Ÿฅท", "๐Ÿ‘ฐ", "๐Ÿง”", "โš—๏ธ", "๐Ÿ”ฏ", "๐Ÿ”ฑ", "โšœ๏ธ", "โœจ", "๐ŸŒ ", "๐ŸŒ‹", "๐Ÿ’Ž", "๐Ÿ’", "๐Ÿ„", "๐ŸŒบ", "๐ŸŒน", "๐Ÿญ", "๐Ÿš", "๐ŸŠ", "๐Ÿข", "๐Ÿ‡", "๐Ÿฐ", "๐Ÿ”ฅ", "๐Ÿ’ฅ", "๐ŸŒ€", "๐ŸŒˆ", "๐ŸŒช๏ธ", "๐Ÿฉธ", "๐Ÿชฑ", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜", - objects: [ - "โŒš", "๐Ÿ“ฑ", "๐Ÿ“ฒ", "๐Ÿ’ป", "๐Ÿ–ฅ๏ธ", "๐Ÿ–จ๏ธ", "โŒจ๏ธ", "๐Ÿ–ฑ๏ธ", "๐Ÿ–ฒ๏ธ", "๐Ÿ’ฝ", "๐Ÿ’พ", "๐Ÿ’ฟ", "๐Ÿ“€", "๐Ÿงฎ", - "๐Ÿ“ž", "โ˜Ž๏ธ", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“ก", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™๏ธ", "๐ŸŽš๏ธ", "๐ŸŽ›๏ธ", "๐ŸŽค", "๐ŸŽง", "๐Ÿ“ฃ", "๐Ÿ“ข", - "๐Ÿ””", "๐Ÿ”•", "๐ŸŽต", "๐ŸŽถ", "๐ŸŽผ", "๐ŸŽน", "๐Ÿฅ", "๐ŸŽท", "๐ŸŽบ", "๐ŸŽธ", "๐ŸŽป", "๐Ÿช•", "๐ŸŽฌ", "๐ŸŽฎ", - "๐Ÿ•น๏ธ", "๐ŸŽฒ", "๐Ÿงฉ", "๐Ÿƒ", "๐Ÿ€„", "๐ŸŽด", "๐ŸŽจ", "๐Ÿงต", "๐Ÿชก", "๐Ÿงถ", "๐Ÿชข", "๐Ÿ‘“", "๐Ÿ•ถ๏ธ", "๐Ÿฅฝ", - "๐Ÿฅผ", "๐Ÿฆบ", "๐Ÿ‘”", "๐Ÿ‘•", "๐Ÿ‘–", "๐Ÿงฃ", "๐Ÿงค", "๐Ÿงฅ", "๐Ÿงฆ", "๐Ÿ‘—", "๐Ÿ‘˜", "๐Ÿฅป", "๐Ÿฉฑ", "๐Ÿฉฒ", - "๐Ÿฉณ", "๐Ÿ‘™", "๐Ÿ‘š", "๐Ÿ‘›", "๐Ÿ‘œ", "๐Ÿ‘", "๐Ÿ›๏ธ", "๐ŸŽ’", "๐Ÿฉด", "๐Ÿ‘ž", "๐Ÿ‘Ÿ", "๐Ÿฅพ", "๐Ÿฅฟ", "๐Ÿ‘ ", - "๐Ÿ‘ก", "๐Ÿฉฐ", "๐Ÿ‘ข", "๐Ÿ‘‘", "๐Ÿ‘’", "๐ŸŽฉ", "๐ŸŽ“", "๐Ÿงข", "๐Ÿช–", "โ›‘๏ธ", "๐Ÿ“ฟ", "๐Ÿ’„", "๐Ÿ’", "๐Ÿ’Ž", - "๐Ÿ”‡", "๐Ÿ”ˆ", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ“ค", "๐Ÿ“ฅ", "๐Ÿ“ฆ", "๐Ÿ“ซ", "๐Ÿ“ช", "๐Ÿ“ฌ", "๐Ÿ“ญ", "๐Ÿ“ฎ", "๐Ÿ—ณ๏ธ", "โœ๏ธ", - "โœ’๏ธ", "๐Ÿ–‹๏ธ", "๐Ÿ–Œ๏ธ", "๐Ÿ–๏ธ", "๐Ÿ“", "๐Ÿ’ผ", "๐Ÿ“", "๐Ÿ“‚", "๐Ÿ—‚๏ธ", "๐Ÿ“…", "๐Ÿ“†", "๐Ÿ—’๏ธ", "๐Ÿ—“๏ธ", - "๐Ÿ“‡", "๐Ÿ“ˆ", "๐Ÿ“‰", "๐Ÿ“Š", "๐Ÿ“‹", "๐Ÿ“Œ", "๐Ÿ“", "๐Ÿ“Ž", "๐Ÿ–‡๏ธ", "๐Ÿ“", "๐Ÿ“", "โœ‚๏ธ", "๐Ÿ—ƒ๏ธ", "๐Ÿ—„๏ธ", - "๐Ÿ—‘๏ธ", "๐Ÿ”’", "๐Ÿ”“", "๐Ÿ”", "๐Ÿ”", "๐Ÿ”‘", "๐Ÿ—๏ธ", "๐Ÿ”จ", "๐Ÿช“", "โ›๏ธ", "โš’๏ธ", "๐Ÿ› ๏ธ", "๐Ÿ—ก๏ธ", "โš”๏ธ", - "๐Ÿ”ซ", "๐Ÿชƒ", "๐Ÿน", "๐Ÿ›ก๏ธ", "๐Ÿชš", "๐Ÿ”ง", "๐Ÿช›", "๐Ÿ”ฉ", "โš™๏ธ", "๐Ÿชค", "๐Ÿงฑ", "โ›“๏ธ", "๐Ÿงฒ", "๐Ÿ’ฃ", - "๐Ÿงจ", "๐Ÿช”", "๐Ÿ”ฅ", "๐Ÿงฐ", "๐Ÿงช", "๐Ÿงซ", "๐Ÿงฌ", "๐Ÿ”ฌ", "๐Ÿ”ญ", "๐Ÿ“ก", "๐Ÿ’‰", "๐Ÿฉบ", "๐Ÿ’Š", "๐Ÿฉน", - "๐Ÿฉผ", "๐Ÿšช", "๐Ÿ›—", "๐Ÿชž", "๐ŸชŸ", "๐Ÿ›๏ธ", "๐Ÿ›‹๏ธ", "๐Ÿช‘", "๐Ÿšฝ", "๐Ÿช ", "๐Ÿšฟ", "๐Ÿ›", "๐Ÿชค", "๐Ÿช’", - "๐Ÿงด", "๐Ÿงท", "๐Ÿงน", "๐Ÿงบ", "๐Ÿงป", "๐Ÿชฃ", "๐Ÿงผ", "๐Ÿซง", "๐Ÿชฅ", "๐Ÿงฝ", "๐Ÿงฏ", "๐Ÿ›’", "๐Ÿšฌ", "โšฐ๏ธ", - "๐Ÿชฆ", "โšฑ๏ธ", "๐Ÿ—ฟ", "๐Ÿชง", "๐Ÿชช" - ], - - symbols: [ - "โค๏ธ", "๐Ÿฉท", "๐Ÿงก", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿ’™", "๐Ÿฉต", "๐Ÿ’œ", "๐ŸคŽ", "๐Ÿ–ค", "๐Ÿค", "๐Ÿ’”", "โฃ๏ธ", "๐Ÿ’•", - "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "๐Ÿ’Ÿ", "โ˜ฎ๏ธ", "โœ๏ธ", "โ˜ฏ๏ธ", "๐Ÿ•‰๏ธ", "โ˜ธ๏ธ", "โœก๏ธ", "๐Ÿ”ฏ", - "๐Ÿ•Ž", "โ˜ช๏ธ", "โ™ˆ", "โ™‰", "โ™Š", "โ™‹", "โ™Œ", "โ™", "โ™Ž", "โ™", "โ™", "โ™‘", "โ™’", "โ™“", "โ›Ž", - "๐Ÿ”€", "๐Ÿ”", "๐Ÿ”‚", "โ–ถ๏ธ", "โธ๏ธ", "โน๏ธ", "โบ๏ธ", "โญ๏ธ", "โฎ๏ธ", "โซ", "โฌ", "โฏ๏ธ", "๐Ÿ”…", "๐Ÿ”†", - "๐Ÿ”‡", "๐Ÿ”ˆ", "๐Ÿ”‰", "๐Ÿ”Š", "๐Ÿ“ถ", "๐Ÿ”‹", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ”ฆ", "๐Ÿ•ฏ๏ธ", "๐Ÿชซ", "๐Ÿชฌ", "๐Ÿ’ฒ", "ยฉ๏ธ", - "ยฎ๏ธ", "โ„ข๏ธ", "โœ…", "โŒ", "โŽ", "โž•", "โž–", "โž—", "โœ–๏ธ", "๐Ÿ’ฏ", "๐Ÿ’ข", "๐Ÿ’ฅ", "๐Ÿ’ซ", "๐Ÿ’ฆ", - "๐Ÿ’จ", "๐Ÿ•ณ๏ธ", "๐Ÿ’ฌ", "๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ", "๐Ÿ—จ๏ธ", "๐Ÿ—ฏ๏ธ", "๐Ÿ’ญ", "๐ŸŒ€", "๐ŸŒก๏ธ", "โ˜€๏ธ", "๐ŸŒค๏ธ", "โ›…", "๐ŸŒฅ๏ธ", - "โ˜๏ธ", "๐ŸŒฆ๏ธ", "๐ŸŒง๏ธ", "โ›ˆ๏ธ", "๐ŸŒฉ๏ธ", "๐ŸŒจ๏ธ", "โ„๏ธ", "โ˜ƒ๏ธ", "โ›„", "๐ŸŒฌ๏ธ", "๐Ÿ’ง", "๐ŸŒŠ", "๐ŸŒซ๏ธ", - "๐ŸŒช๏ธ", "๐ŸŒˆ", "โ˜‚๏ธ", "โ˜”", "โ›ฑ๏ธ", "โšก", "๐Ÿ”ฎ", "โœจ", "๐ŸŒŸ", "โญ", "๐Ÿ’ซ", "๐ŸŒ ", "โ™ ๏ธ", "โ™ฅ๏ธ", - "โ™ฆ๏ธ", "โ™ฃ๏ธ", "๐Ÿฉถ", "๐Ÿช", "๐Ÿชจ" - ], - - flags: [ - "๐Ÿดโ€โ˜ ๏ธ", "๐Ÿณ๏ธโ€๐ŸŒˆ", "๐Ÿณ๏ธโ€โšง๏ธ", "๐Ÿ‡ฆ๐Ÿ‡จ", "๐Ÿ‡ฆ๐Ÿ‡ฉ", "๐Ÿ‡ฆ๐Ÿ‡ช", "๐Ÿ‡ฆ๐Ÿ‡ซ", "๐Ÿ‡ฆ๐Ÿ‡ฌ", "๐Ÿ‡ฆ๐Ÿ‡ฎ", "๐Ÿ‡ฆ๐Ÿ‡ฑ", "๐Ÿ‡ฆ๐Ÿ‡ฒ", "๐Ÿ‡ฆ๐Ÿ‡ด", - "๐Ÿ‡ฆ๐Ÿ‡ถ", "๐Ÿ‡ฆ๐Ÿ‡ท", "๐Ÿ‡ฆ๐Ÿ‡ธ", "๐Ÿ‡ฆ๐Ÿ‡น", "๐Ÿ‡ฆ๐Ÿ‡บ", "๐Ÿ‡ฆ๐Ÿ‡ผ", "๐Ÿ‡ฆ๐Ÿ‡ฝ", "๐Ÿ‡ฆ๐Ÿ‡ฟ", "๐Ÿ‡ง๐Ÿ‡ฆ", "๐Ÿ‡ง๐Ÿ‡ง", "๐Ÿ‡ง๐Ÿ‡ฉ", "๐Ÿ‡ง๐Ÿ‡ช", "๐Ÿ‡ง๐Ÿ‡ซ", - "๐Ÿ‡ง๐Ÿ‡ฌ", "๐Ÿ‡ง๐Ÿ‡ญ", "๐Ÿ‡ง๐Ÿ‡ฎ", "๐Ÿ‡ง๐Ÿ‡ฏ", "๐Ÿ‡ง๐Ÿ‡ฑ", "๐Ÿ‡ง๐Ÿ‡ฒ", "๐Ÿ‡ง๐Ÿ‡ณ", "๐Ÿ‡ง๐Ÿ‡ด", "๐Ÿ‡ง๐Ÿ‡ถ", "๐Ÿ‡ง๐Ÿ‡ท", "๐Ÿ‡ง๐Ÿ‡ธ", "๐Ÿ‡ง๐Ÿ‡น", "๐Ÿ‡ง๐Ÿ‡ป", - "๐Ÿ‡ง๐Ÿ‡ผ", "๐Ÿ‡ง๐Ÿ‡พ", "๐Ÿ‡ง๐Ÿ‡ฟ", "๐Ÿ‡จ๐Ÿ‡ฆ", "๐Ÿ‡จ๐Ÿ‡จ", "๐Ÿ‡จ๐Ÿ‡ฉ", "๐Ÿ‡จ๐Ÿ‡ซ", "๐Ÿ‡จ๐Ÿ‡ฌ", "๐Ÿ‡จ๐Ÿ‡ญ", "๐Ÿ‡จ๐Ÿ‡ฎ", "๐Ÿ‡จ๐Ÿ‡ฐ", "๐Ÿ‡จ๐Ÿ‡ฑ", "๐Ÿ‡จ๐Ÿ‡ฒ", - "๐Ÿ‡จ๐Ÿ‡ณ", "๐Ÿ‡จ๐Ÿ‡ด", "๐Ÿ‡จ๐Ÿ‡ต", "๐Ÿ‡จ๐Ÿ‡ท", "๐Ÿ‡จ๐Ÿ‡บ", "๐Ÿ‡จ๐Ÿ‡ป", "๐Ÿ‡จ๐Ÿ‡ผ", "๐Ÿ‡จ๐Ÿ‡ฝ", "๐Ÿ‡จ๐Ÿ‡พ", "๐Ÿ‡จ๐Ÿ‡ฟ", "๐Ÿ‡ฉ๐Ÿ‡ช", "๐Ÿ‡ฉ๐Ÿ‡ฌ", "๐Ÿ‡ฉ๐Ÿ‡ฏ", - "๐Ÿ‡ฉ๐Ÿ‡ฐ", "๐Ÿ‡ฉ๐Ÿ‡ฒ", "๐Ÿ‡ฉ๐Ÿ‡ด", "๐Ÿ‡ฉ๐Ÿ‡ฟ", "๐Ÿ‡ช๐Ÿ‡ฆ", "๐Ÿ‡ช๐Ÿ‡จ", "๐Ÿ‡ช๐Ÿ‡ช", "๐Ÿ‡ช๐Ÿ‡ฌ", "๐Ÿ‡ช๐Ÿ‡ญ", "๐Ÿ‡ช๐Ÿ‡ท", "๐Ÿ‡ช๐Ÿ‡ธ", "๐Ÿ‡ช๐Ÿ‡น", "๐Ÿ‡ช๐Ÿ‡บ", - "๐Ÿ‡ซ๐Ÿ‡ฎ", "๐Ÿ‡ซ๐Ÿ‡ฏ", "๐Ÿ‡ซ๐Ÿ‡ฐ", "๐Ÿ‡ซ๐Ÿ‡ฒ", "๐Ÿ‡ซ๐Ÿ‡ด", "๐Ÿ‡ซ๐Ÿ‡ท", "๐Ÿ‡ฌ๐Ÿ‡ฆ", "๐Ÿ‡ฌ๐Ÿ‡ง", "๐Ÿ‡ฌ๐Ÿ‡ฉ", "๐Ÿ‡ฌ๐Ÿ‡ช", "๐Ÿ‡ฌ๐Ÿ‡ซ", "๐Ÿ‡ฌ๐Ÿ‡ฌ", "๐Ÿ‡ฌ๐Ÿ‡ญ", - "๐Ÿ‡ฌ๐Ÿ‡ฎ", "๐Ÿ‡ฌ๐Ÿ‡ฑ", "๐Ÿ‡ฌ๐Ÿ‡ฒ", "๐Ÿ‡ฌ๐Ÿ‡ณ", "๐Ÿ‡ฌ๐Ÿ‡ต", "๐Ÿ‡ฌ๐Ÿ‡ถ", "๐Ÿ‡ฌ๐Ÿ‡ท", "๐Ÿ‡ฌ๐Ÿ‡ธ", "๐Ÿ‡ฌ๐Ÿ‡น", "๐Ÿ‡ฌ๐Ÿ‡บ", "๐Ÿ‡ฌ๐Ÿ‡ผ", "๐Ÿ‡ฌ๐Ÿ‡พ", "๐Ÿ‡ญ๐Ÿ‡ฐ", - "๐Ÿ‡ญ๐Ÿ‡ฒ", "๐Ÿ‡ญ๐Ÿ‡ณ", "๐Ÿ‡ญ๐Ÿ‡ท", "๐Ÿ‡ญ๐Ÿ‡น", "๐Ÿ‡ญ๐Ÿ‡บ", "๐Ÿ‡ฎ๐Ÿ‡จ", "๐Ÿ‡ฎ๐Ÿ‡ฉ", "๐Ÿ‡ฎ๐Ÿ‡ช", "๐Ÿ‡ฎ๐Ÿ‡ฑ", "๐Ÿ‡ฎ๐Ÿ‡ฒ", "๐Ÿ‡ฎ๐Ÿ‡ณ", "๐Ÿ‡ฎ๐Ÿ‡ด", "๐Ÿ‡ฎ๐Ÿ‡ถ", - "๐Ÿ‡ฎ๐Ÿ‡ท", "๐Ÿ‡ฎ๐Ÿ‡ธ", "๐Ÿ‡ฎ๐Ÿ‡น", "๐Ÿ‡ฏ๐Ÿ‡ช", "๐Ÿ‡ฏ๐Ÿ‡ฒ", "๐Ÿ‡ฏ๐Ÿ‡ด", "๐Ÿ‡ฏ๐Ÿ‡ต", "๐Ÿ‡ฐ๐Ÿ‡ช", "๐Ÿ‡ฐ๐Ÿ‡ฌ", "๐Ÿ‡ฐ๐Ÿ‡ญ", "๐Ÿ‡ฐ๐Ÿ‡ฎ", "๐Ÿ‡ฐ๐Ÿ‡ฒ", "๐Ÿ‡ฐ๐Ÿ‡ณ", - "๐Ÿ‡ฐ๐Ÿ‡ต", "๐Ÿ‡ฐ๐Ÿ‡ท", "๐Ÿ‡ฐ๐Ÿ‡ผ", "๐Ÿ‡ฐ๐Ÿ‡พ", "๐Ÿ‡ฐ๐Ÿ‡ฟ", "๐Ÿ‡ฑ๐Ÿ‡ฆ", "๐Ÿ‡ฑ๐Ÿ‡ง", "๐Ÿ‡ฑ๐Ÿ‡จ", "๐Ÿ‡ฑ๐Ÿ‡ฎ", "๐Ÿ‡ฑ๐Ÿ‡ฐ", "๐Ÿ‡ฑ๐Ÿ‡ท", "๐Ÿ‡ฑ๐Ÿ‡ธ", "๐Ÿ‡ฑ๐Ÿ‡น", - "๐Ÿ‡ฑ๐Ÿ‡บ", "๐Ÿ‡ฑ๐Ÿ‡ป", "๐Ÿ‡ฑ๐Ÿ‡พ", "๐Ÿ‡ฒ๐Ÿ‡ฆ", "๐Ÿ‡ฒ๐Ÿ‡จ", "๐Ÿ‡ฒ๐Ÿ‡ฉ", "๐Ÿ‡ฒ๐Ÿ‡ช", "๐Ÿ‡ฒ๐Ÿ‡ซ", "๐Ÿ‡ฒ๐Ÿ‡ฌ", "๐Ÿ‡ฒ๐Ÿ‡ญ", "๐Ÿ‡ฒ๐Ÿ‡ฐ", "๐Ÿ‡ฒ๐Ÿ‡ฑ", "๐Ÿ‡ฒ๐Ÿ‡ฒ", - "๐Ÿ‡ฒ๐Ÿ‡ณ", "๐Ÿ‡ฒ๐Ÿ‡ด", "๐Ÿ‡ฒ๐Ÿ‡ต", "๐Ÿ‡ฒ๐Ÿ‡ถ", "๐Ÿ‡ฒ๐Ÿ‡ท", "๐Ÿ‡ฒ๐Ÿ‡ธ", "๐Ÿ‡ฒ๐Ÿ‡น", "๐Ÿ‡ฒ๐Ÿ‡บ", "๐Ÿ‡ฒ๐Ÿ‡ป", "๐Ÿ‡ฒ๐Ÿ‡ผ", "๐Ÿ‡ฒ๐Ÿ‡ฝ", "๐Ÿ‡ฒ๐Ÿ‡พ", "๐Ÿ‡ฒ๐Ÿ‡ฟ", - "๐Ÿ‡ณ๐Ÿ‡ฆ", "๐Ÿ‡ณ๐Ÿ‡จ", "๐Ÿ‡ณ๐Ÿ‡ช", "๐Ÿ‡ณ๐Ÿ‡ซ", "๐Ÿ‡ณ๐Ÿ‡ฌ", "๐Ÿ‡ณ๐Ÿ‡ฎ", "๐Ÿ‡ณ๐Ÿ‡ฑ", "๐Ÿ‡ณ๐Ÿ‡ด", "๐Ÿ‡ณ๐Ÿ‡ต", "๐Ÿ‡ณ๐Ÿ‡ท", "๐Ÿ‡ณ๐Ÿ‡บ", "๐Ÿ‡ณ๐Ÿ‡ฟ", "๐Ÿ‡ด๐Ÿ‡ฒ", - "๐Ÿ‡ต๐Ÿ‡ฆ", "๐Ÿ‡ต๐Ÿ‡ช", "๐Ÿ‡ต๐Ÿ‡ซ", "๐Ÿ‡ต๐Ÿ‡ฌ", "๐Ÿ‡ต๐Ÿ‡ญ", "๐Ÿ‡ต๐Ÿ‡ฐ", "๐Ÿ‡ต๐Ÿ‡ฑ", "๐Ÿ‡ต๐Ÿ‡ฒ", "๐Ÿ‡ต๐Ÿ‡ณ", "๐Ÿ‡ต๐Ÿ‡ท", "๐Ÿ‡ต๐Ÿ‡ธ", "๐Ÿ‡ต๐Ÿ‡น", "๐Ÿ‡ต๐Ÿ‡ผ", - "๐Ÿ‡ต๐Ÿ‡พ", "๐Ÿ‡ถ๐Ÿ‡ฆ", "๐Ÿ‡ท๐Ÿ‡ช", "๐Ÿ‡ท๐Ÿ‡ด", "๐Ÿ‡ท๐Ÿ‡ธ", "๐Ÿ‡ท๐Ÿ‡บ", "๐Ÿ‡ท๐Ÿ‡ผ", "๐Ÿ‡ธ๐Ÿ‡ฆ", "๐Ÿ‡ธ๐Ÿ‡ง", "๐Ÿ‡ธ๐Ÿ‡จ", "๐Ÿ‡ธ๐Ÿ‡ฉ", "๐Ÿ‡ธ๐Ÿ‡ช", "๐Ÿ‡ธ๐Ÿ‡ฌ", - "๐Ÿ‡ธ๐Ÿ‡ญ", "๐Ÿ‡ธ๐Ÿ‡ฎ", "๐Ÿ‡ธ๐Ÿ‡ฏ", "๐Ÿ‡ธ๐Ÿ‡ฐ", "๐Ÿ‡ธ๐Ÿ‡ฑ", "๐Ÿ‡ธ๐Ÿ‡ฒ", "๐Ÿ‡ธ๐Ÿ‡ณ", "๐Ÿ‡ธ๐Ÿ‡ด", "๐Ÿ‡ธ๐Ÿ‡ท", "๐Ÿ‡ธ๐Ÿ‡ธ", "๐Ÿ‡ธ๐Ÿ‡น", "๐Ÿ‡ธ๐Ÿ‡ป", "๐Ÿ‡ธ๐Ÿ‡ฝ", - "๐Ÿ‡ธ๐Ÿ‡พ", "๐Ÿ‡ธ๐Ÿ‡ฟ", "๐Ÿ‡น๐Ÿ‡ฆ", "๐Ÿ‡น๐Ÿ‡จ", "๐Ÿ‡น๐Ÿ‡ฉ", "๐Ÿ‡น๐Ÿ‡ซ", "๐Ÿ‡น๐Ÿ‡ฌ", "๐Ÿ‡น๐Ÿ‡ญ", "๐Ÿ‡น๐Ÿ‡ฏ", "๐Ÿ‡น๐Ÿ‡ฐ", "๐Ÿ‡น๐Ÿ‡ฑ", "๐Ÿ‡น๐Ÿ‡ฒ", "๐Ÿ‡น๐Ÿ‡ณ", - "๐Ÿ‡น๐Ÿ‡ด", "๐Ÿ‡น๐Ÿ‡ท", "๐Ÿ‡น๐Ÿ‡น", "๐Ÿ‡น๐Ÿ‡ป", "๐Ÿ‡น๐Ÿ‡ผ", "๐Ÿ‡น๐Ÿ‡ฟ", "๐Ÿ‡บ๐Ÿ‡ฆ", "๐Ÿ‡บ๐Ÿ‡ฌ", "๐Ÿ‡บ๐Ÿ‡ฒ", "๐Ÿ‡บ๐Ÿ‡ณ", "๐Ÿ‡บ๐Ÿ‡ธ", "๐Ÿ‡บ๐Ÿ‡พ", "๐Ÿ‡บ๐Ÿ‡ฟ", - "๐Ÿ‡ป๐Ÿ‡ฆ", "๐Ÿ‡ป๐Ÿ‡จ", "๐Ÿ‡ป๐Ÿ‡ช", "๐Ÿ‡ป๐Ÿ‡ฌ", "๐Ÿ‡ป๐Ÿ‡ฎ", "๐Ÿ‡ป๐Ÿ‡ณ", "๐Ÿ‡ป๐Ÿ‡บ", "๐Ÿ‡ผ๐Ÿ‡ซ", "๐Ÿ‡ผ๐Ÿ‡ธ", "๐Ÿ‡ฝ๐Ÿ‡ฐ", "๐Ÿ‡พ๐Ÿ‡ช", "๐Ÿ‡พ๐Ÿ‡น", "๐Ÿ‡ฟ๐Ÿ‡ฆ", - "๐Ÿ‡ฟ๐Ÿ‡ฒ", "๐Ÿ‡ฟ๐Ÿ‡ผ" - ] -}; - -// Categories Definition -window.emojiLibrary.CATEGORIES = [ - { id: 'all', name: 'All Emojis', icon: '๐Ÿ”' }, - { id: 'smileys_emotions', name: 'Smileys & Emotions', icon: '๐Ÿ˜€' }, - { id: 'people_body', name: 'People & Body', icon: '๐Ÿง‘' }, - { id: 'gestures', name: 'Gestures', icon: '๐Ÿ‘' }, - { id: 'animals_nature', name: 'Animals & Nature', icon: '๐Ÿถ' }, - { id: 'food_drink', name: 'Food & Drink', icon: '๐ŸŽ' }, - { id: 'travel_places', name: 'Travel & Places', icon: 'โœˆ๏ธ' }, - { id: 'activities', name: 'Activities', icon: 'โšฝ' }, - { id: 'objects', name: 'Objects', icon: '๐Ÿ“ฑ' }, - { id: 'symbols', name: 'Symbols', icon: 'โค๏ธ' }, - { id: 'flags', name: 'Flags', icon: '๐Ÿณ๏ธ' } + // Flags + "๐Ÿ", "๐Ÿšฉ", "๐ŸŽŒ", "๐Ÿด", "๐Ÿณ๏ธ", "๐Ÿณ๏ธโ€๐ŸŒˆ", "๐Ÿณ๏ธโ€โšง๏ธ", "๐Ÿดโ€โ˜ ๏ธ", "๐Ÿ‡บ๐Ÿ‡ธ", "๐Ÿ‡จ๐Ÿ‡ฆ", "๐Ÿ‡ฌ๐Ÿ‡ง", "๐Ÿ‡ฉ๐Ÿ‡ช", "๐Ÿ‡ซ๐Ÿ‡ท", "๐Ÿ‡ฎ๐Ÿ‡น", "๐Ÿ‡ฏ๐Ÿ‡ต", "๐Ÿ‡ฐ๐Ÿ‡ท", "๐Ÿ‡ท๐Ÿ‡บ", "๐Ÿ‡จ๐Ÿ‡ณ", "๐Ÿ‡ฎ๐Ÿ‡ณ", "๐Ÿ‡ฆ๐Ÿ‡บ", "๐Ÿ‡ง๐Ÿ‡ท", "๐Ÿ‡ช๐Ÿ‡ธ", "๐Ÿ‡ณ๐Ÿ‡ฑ", "๐Ÿ‡ต๐Ÿ‡น", "๐Ÿ‡ธ๐Ÿ‡ช", "๐Ÿ‡ฆ๐Ÿ‡ท", "๐Ÿ‡ฆ๐Ÿ‡บ", "๐Ÿ‡ฆ๐Ÿ‡น", "๐Ÿ‡ง๐Ÿ‡ช", "๐Ÿ‡ง๐Ÿ‡ด" ]; -// Render Emoji Grid Function +// Make emoji list globally available +window.emojiLibrary.EMOJI_LIST = [ + // Faces and People + "๐Ÿ˜€", // Grinning Face + "๐Ÿ˜", // Beaming Face with Smiling Eyes + "๐Ÿ˜‚", // Face with Tears of Joy + "๐Ÿคฃ", // Rolling on the Floor Laughing + "๐Ÿ˜ƒ", // Grinning Face with Big Eyes + "๐Ÿ˜„", // Grinning Face with Smiling Eyes + "๐Ÿ˜…", // Grinning Face with Sweat + "๐Ÿ˜†", // Grinning Squinting Face + "๐Ÿ˜‰", // Winking Face + "๐Ÿ˜Š", // Smiling Face with Smiling Eyes + "๐Ÿ˜‹", // Face Savoring Food + "๐Ÿ˜Ž", // Smiling Face with Sunglasses + "๐Ÿ˜", // Smiling Face with Heart-Eyes + "๐Ÿ˜˜", // Face Blowing a Kiss + "๐Ÿฅฐ", // Smiling Face with Hearts + "๐Ÿ˜—", // Kissing Face + "๐Ÿ˜™", // Kissing Face with Smiling Eyes + "๐Ÿ˜š", // Kissing Face with Closed Eyes + "๐Ÿ™‚", // Slightly Smiling Face + "๐Ÿค—", // Hugging Face + "๐Ÿคฉ", // Star-Struck + "๐Ÿค”", // Thinking Face + "๐Ÿคจ", // Face with Raised Eyebrow + "๐Ÿ˜", // Neutral Face + "๐Ÿ˜‘", // Expressionless Face + "๐Ÿ˜ถ", // Face Without Mouth + "๐Ÿ™„", // Face with Rolling Eyes + "๐Ÿ˜", // Smirking Face + "๐Ÿ˜ฃ", // Persevering Face + "๐Ÿ˜ฅ", // Sad but Relieved Face + "๐Ÿ˜ฎ", // Face with Open Mouth + "๐Ÿค", // Zipper-Mouth Face + "๐Ÿ˜ฏ", // Hushed Face + "๐Ÿ˜ช", // Sleepy Face + "๐Ÿ˜ซ", // Tired Face + "๐Ÿ˜ด", // Sleeping Face + "๐Ÿ˜Œ", // Relieved Face + "๐Ÿ˜›", // Face with Tongue + "๐Ÿ˜œ", // Winking Face with Tongue + "๐Ÿ˜", // Squinting Face with Tongue + "๐Ÿคค", // Drooling Face + "๐Ÿ˜’", // Unamused Face + "๐Ÿ˜“", // Downcast Face with Sweat + "๐Ÿ˜”", // Pensive Face + "๐Ÿ˜•", // Confused Face + "๐Ÿ™ƒ", // Upside-Down Face + "๐Ÿค‘", // Money-Mouth Face + "๐Ÿ˜ฒ", // Astonished Face + "๐Ÿ™", // Slightly Frowning Face + "๐Ÿ˜–", // Confounded Face + "๐Ÿ˜ž", // Disappointed Face + "๐Ÿ˜Ÿ", // Worried Face + "๐Ÿ˜ค", // Face with Steam From Nose + "๐Ÿ˜ข", // Crying Face + "๐Ÿ˜ญ", // Loudly Crying Face + "๐Ÿ˜ง", // Anguished Face + "๐Ÿ˜จ", // Fearful Face + "๐Ÿ˜ฉ", // Weary Face + "๐Ÿคฏ", // Exploding Head + "๐Ÿ˜ฑ", // Face Screaming in Fear + "๐Ÿ˜ณ", // Flushed Face + "๐Ÿฅต", // Hot Face + "๐Ÿฅถ", // Cold Face + "๐Ÿ˜ก", // Pouting Face + "๐Ÿ˜ ", // Angry Face + "๐Ÿคฌ", // Face with Symbols on Mouth + "๐Ÿ˜ท", // Face with Medical Mask + "๐Ÿค’", // Face with Thermometer + "๐Ÿค•", // Face with Head-Bandage + "๐Ÿคข", // Nauseated Face + "๐Ÿคฎ", // Face Vomiting + "๐Ÿคง", // Sneezing Face + "๐Ÿ˜‡", // Smiling Face with Halo + "๐Ÿฅณ", // Partying Face + "๐Ÿฅด", // Woozy Face + "๐Ÿฅบ", // Pleading Face + "๐Ÿง", // Face with Monocle + "๐Ÿฅฑ", // Yawning Face + "๐Ÿง ", // Brain + + // Gestures and Body Parts + "๐Ÿ‘", // Thumbs Up + "๐Ÿ‘Ž", // Thumbs Down + "๐Ÿ‘", // Clapping Hands + "๐Ÿ™Œ", // Raising Hands + "๐Ÿค", // Handshake + "๐Ÿ‘‹", // Waving Hand + "โœŒ๏ธ", // Victory Hand + "๐ŸคŸ", // Love-You Gesture + "๐Ÿค˜", // Sign of the Horns + "๐Ÿ‘Š", // Oncoming Fist + "โœŠ", // Raised Fist + "๐Ÿ‘†", // Backhand Index Pointing Up + "๐Ÿ‘‡", // Backhand Index Pointing Down + "๐Ÿ‘ˆ", // Backhand Index Pointing Left + "๐Ÿ‘‰", // Backhand Index Pointing Right + "๐Ÿ‘Œ", // OK Hand + "๐ŸคŒ", // Pinched Fingers + "๐Ÿค", // Pinching Hand + "โœ‹", // Raised Hand + "๐Ÿคš", // Raised Back of Hand + "๐Ÿ–๏ธ", // Hand with Fingers Splayed + "๐Ÿ––", // Vulcan Salute + "๐Ÿ‘€", // Eyes + "๐Ÿ‘๏ธ", // Eye + "๐Ÿ‘„", // Mouth + "๐Ÿงฟ", // Nazar Amulet + + // Celebration & Objects + "๐ŸŽ‰", // Party Popper + "๐ŸŽŠ", // Confetti Ball + "๐ŸŽ‚", // Birthday Cake + "๐ŸŽ", // Wrapped Gift + "๐ŸŽˆ", // Balloon + "๐ŸŽ„", // Christmas Tree + "๐ŸŽƒ", // Jack-O-Lantern + "๐Ÿ†", // Trophy + "๐Ÿ…", // Sports Medal + "๐Ÿฅ‡", // 1st Place Medal + "๐Ÿฅˆ", // 2nd Place Medal + "๐Ÿฅ‰", // 3rd Place Medal + "๐Ÿ’ฐ", // Money Bag + "๐Ÿ’ธ", // Money with Wings + "๐Ÿ’ต", // Dollar Banknote + "๐Ÿ’ด", // Yen Banknote + "๐Ÿ’ถ", // Euro Banknote + "๐Ÿ’ท", // Pound Banknote + "๐Ÿ’ฏ", // Hundred Points + "๐Ÿ“ฑ", // Mobile Phone + "๐Ÿ’ป", // Laptop + "โŒจ๏ธ", // Keyboard + "๐Ÿ–ฅ๏ธ", // Desktop Computer + "๐Ÿ”’", // Locked + "๐Ÿ”“", // Unlocked + + // Food & Drink + "๐Ÿ•", // Pizza + "๐Ÿ”", // Hamburger + "๐Ÿฆ", // Ice Cream + "๐Ÿฉ", // Doughnut + "๐Ÿบ", // Beer Mug + "๐Ÿท", // Wine Glass + "โ˜•", // Hot Beverage + + // Nature & Weather + "๐ŸŒˆ", // Rainbow + "๐ŸŒž", // Sun with Face + "๐ŸŒ‘", // New Moon + "๐ŸŒ’", // Waxing Crescent Moon + "๐ŸŒ“", // First Quarter Moon + "๐ŸŒ”", // Waxing Gibbous Moon + "๐ŸŒ•", // Full Moon + "๐ŸŒ–", // Waning Gibbous Moon + "๐ŸŒ—", // Last Quarter Moon + "๐ŸŒ˜", // Waning Crescent Moon + "๐ŸŒ™", // Crescent Moon + "โญ", // Star + "๐ŸŒŸ", // Glowing Star + "โšก", // High Voltage + "โ„๏ธ", // Snowflake + "๐Ÿ”ฅ", // Fire + "๐Ÿ’ง", // Droplet + "๐ŸŒŠ", // Water Wave + + // Animals + "๐Ÿฑ", // Cat Face + "๐Ÿถ", // Dog Face + "๐ŸฆŠ", // Fox + "๐Ÿผ", // Panda + "๐Ÿฆ", // Lion + "๐Ÿฌ", // Dolphin + "๐Ÿฆ„", // Unicorn + + // Symbols & Special + "โค๏ธ", // Red Heart + "๐Ÿงก", // Orange Heart + "๐Ÿ’š", // Green Heart + "๐Ÿ’™", // Blue Heart + "๐Ÿ’œ", // Purple Heart + "๐Ÿš€", // Rocket + "๐Ÿ‘€", // Eyes + "๐Ÿ’€", // Skull + "๐Ÿฅน", // Face Holding Back Tears + "๐Ÿ", // Snake + "๐Ÿ‰", // Dragon + "๐Ÿฒ", // Dragon Face + "๐Ÿง™โ€โ™‚๏ธ", // Wizard + "๐Ÿช„", // Magic Wand + "๐Ÿดโ€โ˜ ๏ธ", // Pirate Flag + "๐Ÿฆ…", // Eagle (often associated with pirates) + "๐Ÿฆœ", // Parrot (pirate symbol) + "๐Ÿ’ป", // Laptop (hacker symbol) + "๐Ÿ•ถ๏ธ", // Sunglasses (cool guy symbol) + "๐Ÿง‘โ€๐Ÿ’ป", // Technologist + "๐Ÿ‘จโ€๐Ÿ’ป", // Man Technologist + "๐Ÿ‘ฉโ€๐Ÿ’ป", // Woman Technologist + "๐Ÿ•ต๏ธ", // Detective + "๐Ÿ•ต๏ธโ€โ™‚๏ธ", // Man Detective + "๐Ÿ•ต๏ธโ€โ™€๏ธ", // Woman Detective + "๐Ÿ–ฅ๏ธ", // Desktop Computer + "โŒจ๏ธ", // Keyboard + "๐Ÿ–ฑ๏ธ", // Computer Mouse + "๐Ÿ•น๏ธ", // Joystick + "๐Ÿ“ฑ", // Mobile Phone + "๐Ÿ“ฒ", // Mobile Phone with Arrow + "๐Ÿ”“", // Unlocked (hacker symbol) + "๐Ÿ”‘", // Key (hacker symbol) + "๐Ÿ—๏ธ", // Old Key (hacker symbol) + "๐Ÿ›ก๏ธ", // Shield (hacker symbol) + "โš”๏ธ", // Crossed Swords (hacker symbol) + "๐Ÿงฌ", // DNA (hacker symbol) + "๐Ÿงซ", // Petri Dish (hacker symbol) + "๐Ÿงช", // Test Tube (hacker symbol) + "๐Ÿ› ๏ธ", // Hammer and Wrench (hacker symbol) + "โš™๏ธ", // Gear (hacker symbol) + "๐Ÿงฐ", // Toolbox (hacker symbol) + "๐Ÿงฒ", // Magnet (hacker symbol) + "๐Ÿ’ฃ", // Bomb (hacker symbol) + "๐Ÿ•ณ๏ธ", // Hole (hacker symbol) + "๐Ÿ“ก", // Satellite Antenna (hacker symbol) + "๐Ÿ›ฐ๏ธ", // Satellite (hacker symbol) + "๐Ÿ“ž", // Telephone Receiver (hacker symbol) + "โ˜Ž๏ธ", // Telephone (hacker symbol) + "๐Ÿ“Ÿ", // Pager (hacker symbol) + "๐Ÿ“ ", // Fax Machine (hacker symbol) + "๐Ÿ”Œ", // Electric Plug (hacker symbol) + "๐Ÿ’ก", // Light Bulb (hacker symbol) + "๐Ÿ”ฆ", // Flashlight (hacker symbol) + "๐Ÿ•ฏ๏ธ", // Candle (hacker symbol) + "๐Ÿ—ž๏ธ", // Rolled-Up Newspaper (hacker symbol) + "๐Ÿ“œ", // Scroll (hacker symbol) + "๐Ÿ“ƒ", // Page with Curl (hacker symbol) + "๐Ÿ“„", // Page Facing Up (hacker symbol) + "๐Ÿ“‘", // Bookmark Tabs (hacker symbol) + "๐Ÿ“Š", // Bar Chart (hacker symbol) + "๐Ÿ“ˆ", // Chart Increasing (hacker symbol) + "๐Ÿ“‰", // Chart Decreasing (hacker symbol) + "๐Ÿ—‚๏ธ", // Card Index Dividers (hacker symbol) + "๐Ÿ—ƒ๏ธ", // Card File Box (hacker symbol) + "๐Ÿ—„๏ธ", // File Cabinet (hacker symbol) + "๐Ÿ—‘๏ธ", // Wastebasket (hacker symbol) + "๐Ÿ›ข๏ธ", // Oil Drum (hacker symbol) + "๐Ÿ›Ž๏ธ", // Bellhop Bell (hacker symbol) + "๐Ÿงณ", // Luggage (hacker symbol) + "๐Ÿ›Œ", // Person in Bed (hacker symbol) + "๐Ÿ›๏ธ", // Bed (hacker symbol) + "๐Ÿ›‹๏ธ", // Couch and Lamp (hacker symbol) + "๐Ÿช‘", // Chair (hacker symbol) + "๐Ÿšช", // Door (hacker symbol) + "๐Ÿงด", // Lotion Bottle (hacker symbol) + "๐Ÿงท", // Safety Pin (hacker symbol) + "๐Ÿงน", // Broom (hacker symbol) + "๐Ÿงบ", // Basket (hacker symbol) + "๐Ÿงป", // Roll of Paper (hacker symbol) + "๐Ÿงผ", // Soap (hacker symbol) + "๐Ÿงฝ", // Sponge (hacker symbol) + "๐Ÿงฏ", // Fire Extinguisher (hacker symbol) + "๐Ÿ›’", // Shopping Cart (hacker symbol) + "๐Ÿšฌ", // Cigarette (hacker symbol) + "โšฐ๏ธ", // Coffin (hacker symbol) + "โšฑ๏ธ", // Funeral Urn (hacker symbol) + "๐Ÿ—ฟ", // Moai (hacker symbol) + "๐Ÿ›‚", // Passport Control (hacker symbol) + "๐Ÿ›ƒ", // Customs (hacker symbol) + "๐Ÿ›„", // Baggage Claim (hacker symbol) + "๐Ÿ›…", // Left Luggage (hacker symbol) + "๐Ÿšน", // Men's Room (hacker symbol) + "๐Ÿšบ", // Women's Room (hacker symbol) + "๐Ÿšผ", // Baby Symbol (hacker symbol) + "๐Ÿšป", // Restroom (hacker symbol) + "๐Ÿšฎ", // Litter in Bin Sign (hacker symbol) + "๐Ÿšฐ", // Potable Water (hacker symbol) + "๐Ÿšพ", // Water Closet (hacker symbol) + "๐Ÿšญ", // No Smoking (hacker symbol) + "๐Ÿšฏ", // No Littering (hacker symbol) + "๐Ÿšฑ", // Non-Potable Water (hacker symbol) + + // Additional Smileys & Emotion + "๐Ÿ˜Š", // Smiling Face with Smiling Eyes + "๐Ÿ˜‡", // Smiling Face with Halo + "๐Ÿ™‚", // Slightly Smiling Face + "๐Ÿ™ƒ", // Upside-Down Face + "๐Ÿ˜‰", // Winking Face + "๐Ÿ˜Œ", // Relieved Face + "๐Ÿ˜", // Smiling Face with Heart-Eyes + "๐Ÿฅฐ", // Smiling Face with Hearts + "๐Ÿ˜˜", // Face Blowing a Kiss + "๐Ÿ˜—", // Kissing Face + "๐Ÿ˜™", // Kissing Face with Smiling Eyes + "๐Ÿ˜š", // Kissing Face with Closed Eyes + "๐Ÿ˜‹", // Face Savoring Food + "๐Ÿ˜›", // Face with Tongue + "๐Ÿ˜", // Squinting Face with Tongue + "๐Ÿ˜œ", // Winking Face with Tongue + "๐Ÿคช", // Zany Face + + // Additional People & Body + "๐Ÿง‘โ€๐Ÿš€", // Astronaut + "๐Ÿ‘จโ€๐Ÿš€", // Man Astronaut + "๐Ÿ‘ฉโ€๐Ÿš€", // Woman Astronaut + "๐Ÿง‘โ€๐Ÿ”ฌ", // Scientist + "๐Ÿ‘จโ€๐Ÿ”ฌ", // Man Scientist + "๐Ÿ‘ฉโ€๐Ÿ”ฌ", // Woman Scientist + "๐Ÿง‘โ€โš•๏ธ", // Health Worker + "๐Ÿ‘จโ€โš•๏ธ", // Man Health Worker + "๐Ÿ‘ฉโ€โš•๏ธ", // Woman Health Worker + "๐Ÿง‘โ€๐Ÿ”ง", // Mechanic + "๐Ÿ‘จโ€๐Ÿ”ง", // Man Mechanic + "๐Ÿ‘ฉโ€๐Ÿ”ง", // Woman Mechanic + "๐Ÿง‘โ€๐Ÿš’", // Firefighter + "๐Ÿ‘จโ€๐Ÿš’", // Man Firefighter + "๐Ÿ‘ฉโ€๐Ÿš’", // Woman Firefighter + + // Additional Animals & Nature + "๐Ÿฆ’", // Giraffe + "๐Ÿฆ“", // Zebra + "๐Ÿฆฌ", // Bison + "๐Ÿฆ™", // Llama + "๐Ÿฆ˜", // Kangaroo + "๐Ÿฆฅ", // Sloth + "๐Ÿฆฆ", // Otter + "๐Ÿฆก", // Badger + "๐Ÿฆ”", // Hedgehog + "๐Ÿฆ", // Raccoon + "๐Ÿฟ๏ธ", // Chipmunk + "๐Ÿฆซ", // Beaver + "๐ŸฆŽ", // Lizard + "๐ŸŠ", // Crocodile + "๐Ÿข", // Turtle + "๐Ÿฆ•", // Sauropod + "๐Ÿฆ–", // T-Rex + "๐Ÿ‹", // Whale + "๐Ÿฌ", // Dolphin + "๐Ÿฆญ", // Seal + + // Additional Food & Drink + "๐Ÿฅž", // Pancakes + "๐Ÿง‡", // Waffle + "๐Ÿง€", // Cheese Wedge + "๐Ÿ–", // Meat on Bone + "๐Ÿ—", // Poultry Leg + "๐Ÿฅฉ", // Cut of Meat + "๐Ÿฅ“", // Bacon + "๐Ÿ”", // Hamburger + "๐ŸŸ", // French Fries + "๐Ÿ•", // Pizza + "๐ŸŒญ", // Hot Dog + "๐Ÿฅช", // Sandwich + "๐ŸŒฎ", // Taco + "๐ŸŒฏ", // Burrito + "๐Ÿฅ™", // Stuffed Flatbread + "๐Ÿง†", // Falafel + "๐Ÿฅš", // Egg + "๐Ÿณ", // Cooking + "๐Ÿฅ˜", // Shallow Pan of Food + "๐Ÿฒ", // Pot of Food + + // Additional Travel & Places + "๐Ÿ™๏ธ", // Cityscape + "๐ŸŒ†", // Cityscape at Dusk + "๐ŸŒ‡", // Sunset + "๐ŸŒƒ", // Night with Stars + "๐ŸŒ‰", // Bridge at Night + "๐Ÿž๏ธ", // National Park + "๐Ÿœ๏ธ", // Desert + "๐Ÿ๏ธ", // Desert Island + "๐Ÿ–๏ธ", // Beach with Umbrella + "โ›ฐ๏ธ", // Mountain + "๐Ÿ”๏ธ", // Snow-Capped Mountain + "๐ŸŒ‹", // Volcano + "๐Ÿ—ป", // Mount Fuji + "๐Ÿ ", // House + "๐Ÿก", // House with Garden + "๐Ÿข", // Office Building + "๐Ÿฃ", // Japanese Post Office + "๐Ÿค", // Post Office + "๐Ÿฅ", // Hospital + "๐Ÿฆ", // Bank + + // Additional Flags + "๐Ÿ‡บ๐Ÿ‡ธ", // United States + "๐Ÿ‡ฌ๐Ÿ‡ง", // United Kingdom + "๐Ÿ‡จ๐Ÿ‡ฆ", // Canada + "๐Ÿ‡ฏ๐Ÿ‡ต", // Japan + "๐Ÿ‡ฉ๐Ÿ‡ช", // Germany + "๐Ÿ‡ซ๐Ÿ‡ท", // France + "๐Ÿ‡ฎ๐Ÿ‡น", // Italy + "๐Ÿ‡ช๐Ÿ‡ธ", // Spain + "๐Ÿ‡ท๐Ÿ‡บ", // Russia + "๐Ÿ‡จ๐Ÿ‡ณ", // China + "๐Ÿ‡ฎ๐Ÿ‡ณ", // India + "๐Ÿ‡ง๐Ÿ‡ท", // Brazil + "๐Ÿ‡ฆ๐Ÿ‡บ", // Australia + "๐Ÿ‡ฒ๐Ÿ‡ฝ", // Mexico + "๐Ÿ‡ฐ๐Ÿ‡ท", // South Korea + "๐Ÿ‡ฟ๐Ÿ‡ฆ", // South Africa + "๐Ÿ‡ธ๐Ÿ‡ช", // Sweden + "๐Ÿ‡ณ๐Ÿ‡ด", // Norway + "๐Ÿ‡ณ๐Ÿ‡ฟ", // New Zealand + "๐Ÿ‡ฎ๐Ÿ‡ช", // Ireland +]; + +// Define emoji categories with specific emojis for each category +window.emojiLibrary.EMOJIS = { + nature: ["๐ŸŒˆ", "๐ŸŒž", "๐ŸŒ‘", "๐ŸŒ’", "๐ŸŒ“", "๐ŸŒ”", "๐ŸŒ•", "๐ŸŒ–", "๐ŸŒ—", "๐ŸŒ˜", "๐ŸฆŠ", "๐Ÿฆ", "๐Ÿฏ", "๐Ÿฎ", "๐Ÿท", "๐Ÿธ", "๐Ÿต", "๐Ÿ”", "๐Ÿง", "๐Ÿฆ", "๐Ÿค", "๐Ÿฆ†", "๐Ÿฆ…", "๐Ÿฆ‰", "๐Ÿฆ‡", "๐Ÿบ", "๐Ÿ—", "๐Ÿด", "๐Ÿฆ„", "๐Ÿ", "๐Ÿ›", "๐Ÿฆ‹", "๐ŸŒ", "๐Ÿž", "๐Ÿœ", "๐Ÿ•ท๏ธ", "๐Ÿฆ‚", "๐ŸฆŸ", "๐Ÿฆ ", "๐Ÿชฑ"], + mystical: ["๐Ÿง™", "๐Ÿง™โ€โ™‚๏ธ", "๐Ÿง™โ€โ™€๏ธ", "๐Ÿงš", "๐Ÿงšโ€โ™‚๏ธ", "๐Ÿงšโ€โ™€๏ธ", "๐Ÿง›", "๐Ÿง›โ€โ™‚๏ธ", "๐Ÿง›โ€โ™€๏ธ", "๐Ÿงœ", "๐Ÿงœโ€โ™‚๏ธ", "๐Ÿงœโ€โ™€๏ธ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿ‘ป", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿฒ", "๐Ÿ”ฎ", "๐Ÿ", "๐Ÿ‰", "๐Ÿฆ„", "โš—๏ธ", "๐Ÿ”ฏ", "๐Ÿ”ฑ", "โšœ๏ธ", "โœจ", "๐ŸŒ ", "๐ŸŒ‹", "๐Ÿ’Ž", "๐Ÿฉธ"], + faces_people: ["๐Ÿ˜€", "๐Ÿ˜", "๐Ÿ˜‚", "๐Ÿคฃ", "๐Ÿ˜ƒ", "๐Ÿ˜„", "๐Ÿ˜…", "๐Ÿ˜†", "๐Ÿ˜‰", "๐Ÿ˜Š", "๐Ÿ˜‹", "๐Ÿ˜Ž", "๐Ÿ˜", "๐Ÿ˜˜", "๐Ÿฅฐ", "๐Ÿ˜—", "๐Ÿ˜™", "๐Ÿ˜š", "๐Ÿ™‚", "๐Ÿค—", "๐Ÿคฉ", "๐Ÿค”", "๐Ÿคจ", "๐Ÿ˜", "๐Ÿ˜‘", "๐Ÿ˜ถ", "๐Ÿ™„", "๐Ÿ˜", "๐Ÿ˜ฃ", "๐Ÿ˜ฅ", "๐Ÿ˜ฎ", "๐Ÿค", "๐Ÿ˜ฏ", "๐Ÿ˜ช", "๐Ÿ˜ซ", "๐Ÿ˜ด", "๐Ÿ˜Œ", "๐Ÿ˜›", "๐Ÿ˜œ", "๐Ÿ˜", "๐Ÿคค", "๐Ÿ˜’", "๐Ÿ˜“", "๐Ÿ˜”", "๐Ÿ˜•", "๐Ÿ™ƒ", "๐Ÿค‘", "๐Ÿ˜ฒ", "๐Ÿ™", "๐Ÿ˜–", "๐Ÿ˜ž", "๐Ÿ˜Ÿ", "๐Ÿ˜ค", "๐Ÿ˜ข", "๐Ÿ˜ญ", "๐Ÿ˜ง", "๐Ÿ˜จ", "๐Ÿ˜ฉ", "๐Ÿคฏ", "๐Ÿ˜ฑ", "๐Ÿ˜ณ", "๐Ÿฅต", "๐Ÿฅถ", "๐Ÿ˜ก", "๐Ÿ˜ ", "๐Ÿคฌ", "๐Ÿ˜ท", "๐Ÿค’", "๐Ÿค•", "๐Ÿคข", "๐Ÿคฎ", "๐Ÿคง", "๐Ÿ˜‡", "๐Ÿฅณ", "๐Ÿฅด", "๐Ÿฅบ", "๐Ÿง", "๐Ÿฅฑ", "๐Ÿง "], + + gestures: ["๐Ÿ‘", "๐Ÿ‘Ž", "๐Ÿ‘Œ", "โœŒ๏ธ", "๐Ÿคž", "๐ŸคŸ", "๐Ÿค˜", "๐Ÿค™", "๐Ÿ‘ˆ", "๐Ÿ‘‰", "๐Ÿ‘†", "๐Ÿ‘‡", "๐Ÿ–•", "โ˜๏ธ", "โœ‹", "๐Ÿคš", "๐Ÿ–๏ธ", "๐Ÿ––", "๐Ÿ‘‹", "๐Ÿค", "๐Ÿ‘", "๐Ÿ™Œ", "๐Ÿ‘", "๐Ÿค", "๐Ÿ™"], + + animals_nature: ["๐ŸฆŠ", "๐Ÿฆ", "๐Ÿฏ", "๐Ÿฎ", "๐Ÿท", "๐Ÿธ", "๐Ÿต", "๐Ÿ”", "๐Ÿง", "๐Ÿฆ", "๐Ÿค", "๐Ÿฆ†", "๐Ÿฆ…", "๐Ÿฆ‰", "๐Ÿฆ‡", "๐Ÿบ", "๐Ÿ—", "๐Ÿด", "๐Ÿ", "๐Ÿ›", "๐Ÿฆ‹", "๐ŸŒ", "๐Ÿž", "๐Ÿœ", "๐Ÿ•ท๏ธ", "๐Ÿฆ‚", "๐Ÿ", "๐Ÿฆจ", "๐Ÿฆฉ", "๐Ÿฆซ", "๐Ÿฆฌ", "๐Ÿปโ€โ„๏ธ", "๐Ÿผ", "๐Ÿจ", "๐Ÿ•", "๐Ÿถ", "๐Ÿฉ", "๐Ÿˆ", "๐Ÿฑ"], + + activities_sports: ["โšฝ", "๐Ÿ€", "๐Ÿˆ", "๐Ÿ", "๐Ÿ‰", "๐ŸŽพ", "๐ŸŽณ", "๐Ÿ‘", "๐Ÿ’", "๐Ÿ“", "๐Ÿธ", "๐ŸฅŠ", "๐Ÿฅ‹", "๐Ÿฅ…", "๐Ÿคพ", "๐ŸŽฟ", "๐Ÿ„", "๐Ÿ‚", "๐ŸŠ", "๐Ÿ‹๏ธ", "๐Ÿคผ", "๐Ÿคธ", "๐Ÿคบ", "๐Ÿคฝ", "๐Ÿคน", "๐ŸŽฏ", "๐ŸŽฑ", "๐ŸŽฝ", "๐Ÿšด", "๐Ÿšต"], + + technology_objects: ["๐Ÿ’ป", "โŒจ๏ธ", "๐Ÿ–ฅ๏ธ", "๐Ÿ–ฑ๏ธ", "๐Ÿ–จ๏ธ", "๐Ÿ“ฑ", "โ˜Ž๏ธ", "๐Ÿ“ž", "๐Ÿ“Ÿ", "๐Ÿ“ ", "๐Ÿ“บ", "๐Ÿ“ป", "๐ŸŽ™๏ธ", "๐ŸŽš๏ธ", "๐ŸŽ›๏ธ", "๐Ÿงญ", "๐Ÿ“ก", "๐Ÿ”‹", "๐Ÿ”Œ", "๐Ÿ’ก", "๐Ÿ›ข๏ธ", "๐Ÿ’ธ", "๐Ÿ’ต", "๐Ÿ’ณ", "๐Ÿ”‘", "๐Ÿ”“", "๐Ÿ”’"], + + mystical_fantasy: ["๐Ÿง™", "๐Ÿงš", "๐Ÿง›", "๐Ÿงœ", "๐Ÿ‘น", "๐Ÿ‘บ", "๐Ÿ‘ป", "๐Ÿ‘ฝ", "๐Ÿ‘พ", "๐Ÿ”ฎ", "๐Ÿช„", "๐Ÿ‰", "๐Ÿฒ", "๐Ÿฆ„"], + + nature_weather: ["๐ŸŒˆ", "๐ŸŒž", "๐ŸŒ™", "โญ", "๐ŸŒŸ", "โšก", "โ„๏ธ", "๐Ÿ”ฅ", "๐Ÿ’ง", "๐ŸŒŠ", "๐ŸŒช๏ธ", "๐ŸŒ‹"], + + symbols: ["โค๏ธ", "๐Ÿ’›", "๐Ÿ’š", "๐Ÿ’™", "๐Ÿ’œ", "๐Ÿ’”", "๐Ÿ’•", "๐Ÿ’ž", "๐Ÿ’“", "๐Ÿ’—", "๐Ÿ’–", "๐Ÿ’˜", "๐Ÿ’", "๐Ÿ’Ÿ", "๐Ÿ’ข", "๐Ÿ’ฃ", "๐Ÿ’ฅ", "๐Ÿ’ฆ", "๐Ÿ’จ", "๐Ÿ’ฉ", "๐Ÿ’ซ", "๐Ÿ’ฌ", "๐Ÿ’ ", "๐Ÿ’ฎ"], + + flags: ["๐Ÿ", "๐Ÿšฉ", "๐ŸŽŒ", "๐Ÿด", "๐Ÿณ๏ธ", "๐Ÿณ๏ธโ€๐ŸŒˆ", "๐Ÿณ๏ธโ€โšง๏ธ", "๐Ÿดโ€โ˜ ๏ธ", "๐Ÿ‡บ๐Ÿ‡ธ", "๐Ÿ‡จ๐Ÿ‡ฆ", "๐Ÿ‡ฌ๐Ÿ‡ง", "๐Ÿ‡ฉ๐Ÿ‡ช", "๐Ÿ‡ซ๐Ÿ‡ท", "๐Ÿ‡ฎ๐Ÿ‡น", "๐Ÿ‡ฏ๐Ÿ‡ต", "๐Ÿ‡ฐ๐Ÿ‡ท", "๐Ÿ‡ท๐Ÿ‡บ", "๐Ÿ‡จ๐Ÿ‡ณ", "๐Ÿ‡ฎ๐Ÿ‡ณ", "๐Ÿ‡ง๐Ÿ‡ท", "๐Ÿ‡ฆ๐Ÿ‡บ", "๐Ÿ‡ช๐Ÿ‡ธ", "๐Ÿ‡ณ๐Ÿ‡ฑ", "๐Ÿ‡ธ๐Ÿ‡ช"] +}; + +// Define standard emoji categories +window.emojiLibrary.CATEGORIES = [ + { id: 'all', name: 'All Emojis', icon: '๐Ÿ”' }, + { id: 'faces_people', name: 'Faces & People', icon: '๐Ÿ˜€' }, + { id: 'gestures', name: 'Gestures', icon: '๐Ÿ‘' }, + { id: 'animals_nature', name: 'Animals & Nature', icon: '๐ŸฆŠ' }, + { id: 'activities_sports', name: 'Activities & Sports', icon: 'โšฝ' }, + { id: 'technology_objects', name: 'Tech & Objects', icon: '๐Ÿ’ป' }, + { id: 'mystical_fantasy', name: 'Mystical & Fantasy', icon: '๐Ÿง™' }, + { id: 'nature_weather', name: 'Nature & Weather', icon: '๐ŸŒˆ' }, + { id: 'symbols', name: 'Symbols', icon: 'โค๏ธ' }, + { id: 'flags', name: 'Flags', icon: '๐Ÿ' } +]; + +// Function to render emoji grid with categories window.emojiLibrary.renderEmojiGrid = function(containerId, onEmojiSelect, filteredList) { + console.log('Rendering emoji grid to:', containerId); + + // Get container by ID const container = document.getElementById(containerId); if (!container) { console.error('Container not found:', containerId); return; } - + + // Clear container container.innerHTML = ''; - - // Header + + // Add header with instruction message const emojiHeader = document.createElement('div'); emojiHeader.className = 'emoji-header'; emojiHeader.innerHTML = '

Choose an Emoji

Click any emoji to copy your hidden message

'; container.appendChild(emojiHeader); - - // Category Tabs + + // Create category tabs const categoryTabs = document.createElement('div'); categoryTabs.className = 'emoji-category-tabs'; + + // Add category tabs window.emojiLibrary.CATEGORIES.forEach(category => { const tab = document.createElement('button'); tab.className = 'emoji-category-tab'; - tab.classList.toggle('active', category.id === 'all'); + if (category.id === 'all') { + tab.classList.add('active'); + } tab.setAttribute('data-category', category.id); tab.innerHTML = `${category.icon} ${category.name}`; categoryTabs.appendChild(tab); }); + container.appendChild(categoryTabs); - - // Emoji Grid + + // Create emoji grid with enforced styling const gridContainer = document.createElement('div'); gridContainer.className = 'emoji-grid'; - const getActiveCategory = () => { - const activeTab = container.querySelector('.emoji-category-tab.active'); - return activeTab ? activeTab.getAttribute('data-category') : 'all'; - }; - - const renderGrid = () => { - gridContainer.innerHTML = ''; - const activeCategory = getActiveCategory(); - let emojisToShow = []; - - if (filteredList?.length > 0) { - emojisToShow = filteredList; - } else if (activeCategory === 'all') { - emojisToShow = Object.values(window.emojiLibrary.EMOJIS).flat(); - } else { - emojisToShow = window.emojiLibrary.EMOJIS[activeCategory] || []; - } - - emojisToShow.forEach(emoji => { - const emojiButton = document.createElement('button'); - emojiButton.className = 'emoji-button'; - emojiButton.textContent = emoji; - emojiButton.title = 'Click to encode with this emoji'; - emojiButton.addEventListener('click', () => { - if (typeof onEmojiSelect === 'function') { - onEmojiSelect(emoji); - emojiButton.style.backgroundColor = '#e6f7ff'; - setTimeout(() => emojiButton.style.backgroundColor = '', 300); - } - }); - gridContainer.appendChild(emojiButton); + // Get the active category + let activeCategory = 'all'; + const activeCategoryTab = container.querySelector('.emoji-category-tab.active'); + if (activeCategoryTab) { + activeCategory = activeCategoryTab.getAttribute('data-category'); + } + + // Determine which emojis to show based on category and filter + let emojisToShow = []; + + if (filteredList && filteredList.length > 0) { + // If we have a filtered list (from search), use that + emojisToShow = filteredList; + } else if (activeCategory === 'all') { + // For 'all' category, combine all emojis from the categories + Object.values(window.emojiLibrary.EMOJIS).forEach(categoryEmojis => { + emojisToShow = [...emojisToShow, ...categoryEmojis]; }); - - const countDisplay = container.querySelector('.emoji-count') || document.createElement('div'); - countDisplay.className = 'emoji-count'; - countDisplay.textContent = `${emojisToShow.length} emojis available`; - container.appendChild(countDisplay); - }; - + } else if (window.emojiLibrary.EMOJIS[activeCategory]) { + // For specific category, use emojis from that category + emojisToShow = window.emojiLibrary.EMOJIS[activeCategory]; + } + + console.log(`Adding ${emojisToShow.length} emojis to grid for category: ${activeCategory}`); + + // Add emojis to grid with enforced styling + emojisToShow.forEach(emoji => { + const emojiButton = document.createElement('button'); + emojiButton.className = 'emoji-button'; + emojiButton.textContent = emoji; // Use textContent for better emoji handling + emojiButton.title = 'Click to encode with this emoji'; + + emojiButton.addEventListener('click', () => { + if (typeof onEmojiSelect === 'function') { + onEmojiSelect(emoji); + // Add visual feedback when clicked + emojiButton.style.backgroundColor = '#e6f7ff'; + setTimeout(() => { + emojiButton.style.backgroundColor = ''; + }, 300); + } + }); + + gridContainer.appendChild(emojiButton); + }); + container.appendChild(gridContainer); - renderGrid(); - - // Category Tab Event Listeners - container.querySelectorAll('.emoji-category-tab').forEach(tab => { + console.log('Emoji grid rendering complete'); + + // Add event listeners to category tabs + const categoryTabButtons = container.querySelectorAll('.emoji-category-tab'); + categoryTabButtons.forEach(tab => { tab.addEventListener('click', () => { - container.querySelectorAll('.emoji-category-tab').forEach(t => t.classList.remove('active')); + // Update active tab + categoryTabButtons.forEach(t => t.classList.remove('active')); tab.classList.add('active'); - renderGrid(); + + // Re-render the emoji grid with the selected category + const selectedCategory = tab.getAttribute('data-category'); + console.log('Category selected:', selectedCategory); + + // Clear and recreate the grid + container.removeChild(gridContainer); + window.emojiLibrary.renderEmojiGrid(containerId, onEmojiSelect); }); }); + + // Debug info - add count display + const countDisplay = document.createElement('div'); + countDisplay.className = 'emoji-count'; + countDisplay.textContent = `${emojisToShow.length} emojis available`; + container.appendChild(countDisplay); };