@underverse-ui/underverse 1.0.203 โ 1.0.205
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -2
- package/api-reference.json +1 -1
- package/dist/EmojiPicker-BAWP2RAS.js +14 -0
- package/dist/EmojiPicker-BAWP2RAS.js.map +1 -0
- package/dist/chunk-2V6A6PGI.js +14614 -0
- package/dist/chunk-2V6A6PGI.js.map +1 -0
- package/dist/chunk-4TYW5K4J.js +769 -0
- package/dist/chunk-4TYW5K4J.js.map +1 -0
- package/dist/chunk-7U3Y7R7U.js +199 -0
- package/dist/chunk-7U3Y7R7U.js.map +1 -0
- package/dist/chunk-IXEFOLUD.js +74 -0
- package/dist/chunk-IXEFOLUD.js.map +1 -0
- package/dist/chunk-MJV7ETJM.js +4501 -0
- package/dist/chunk-MJV7ETJM.js.map +1 -0
- package/dist/chunk-NSBPE2FW.js +17 -0
- package/dist/chunk-NSBPE2FW.js.map +1 -0
- package/dist/chunk-XJR7E6QB.js +2467 -0
- package/dist/chunk-XJR7E6QB.js.map +1 -0
- package/dist/chunk-Z63YNF3N.js +206 -0
- package/dist/chunk-Z63YNF3N.js.map +1 -0
- package/dist/emojis-I5AMZ3EE.js +8 -0
- package/dist/emojis-I5AMZ3EE.js.map +1 -0
- package/dist/index.cjs +36711 -35405
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -134
- package/dist/index.d.ts +3 -134
- package/dist/index.js +2801 -25581
- package/dist/index.js.map +1 -1
- package/dist/lowlight-runtime-Y43Y7YTW.js +11 -0
- package/dist/lowlight-runtime-Y43Y7YTW.js.map +1 -0
- package/dist/menu-bar-NDAP3SOR.js +947 -0
- package/dist/menu-bar-NDAP3SOR.js.map +1 -0
- package/dist/ueditor.cjs +23631 -0
- package/dist/ueditor.cjs.map +1 -0
- package/dist/ueditor.d.cts +142 -0
- package/dist/ueditor.d.ts +142 -0
- package/dist/ueditor.js +20 -0
- package/dist/ueditor.js.map +1 -0
- package/package.json +54 -46
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/UEditor/emojis.ts"],"sourcesContent":["export interface EmojiData {\n emoji: string;\n name: string; // Short name for search/id\n}\n\nexport interface EmojiCategory {\n id: string;\n name: string;\n emojis: EmojiData[];\n}\n\nexport const EMOJI_LIST: EmojiCategory[] = [\n {\n id: \"smileys_people\",\n name: \"Smileys & People\",\n emojis: [\n { emoji: \"๐\", name: \"grinning_face\" },\n { emoji: \"๐\", name: \"big_eyes_grin\" },\n { emoji: \"๐\", name: \"smiling_eyes_grin\" },\n { emoji: \"๐\", name: \"beaming_smile\" },\n { emoji: \"๐\", name: \"squinting_laugh\" },\n { emoji: \"๐
\", name: \"sweat_grin\" },\n { emoji: \"๐\", name: \"joy_tears\" },\n { emoji: \"๐คฃ\", name: \"rofl_laugh\" },\n { emoji: \"๐ฅฒ\", name: \"tear_smile\" },\n { emoji: \"โบ๏ธ\", name: \"warm_smile\" },\n { emoji: \"๐\", name: \"blush_smile\" },\n { emoji: \"๐\", name: \"halo_smile\" },\n { emoji: \"๐\", name: \"slight_smile\" },\n { emoji: \"๐\", name: \"upside_down\" },\n { emoji: \"๐\", name: \"wink_face\" },\n { emoji: \"๐\", name: \"relieved_face\" },\n { emoji: \"๐\", name: \"heart_eyes\" },\n { emoji: \"๐ฅฐ\", name: \"hearts_face\" },\n { emoji: \"๐\", name: \"blow_kiss\" },\n { emoji: \"๐\", name: \"kissing_face\" },\n { emoji: \"๐\", name: \"smiling_kiss\" },\n { emoji: \"๐\", name: \"closed_eyes_kiss\" },\n { emoji: \"๐\", name: \"yummy_face\" },\n { emoji: \"๐\", name: \"tongue_out\" },\n { emoji: \"๐\", name: \"squinting_tongue\" },\n { emoji: \"๐\", name: \"wink_tongue\" },\n { emoji: \"๐คช\", name: \"zany_face\" },\n { emoji: \"๐คจ\", name: \"raised_eyebrow\" },\n { emoji: \"๐ง\", name: \"monocle_face\" },\n { emoji: \"๐ค\", name: \"nerd_face\" },\n { emoji: \"๐\", name: \"sunglasses_face\" },\n { emoji: \"๐ฅธ\", name: \"disguised_face\" },\n { emoji: \"๐คฉ\", name: \"star_struck\" },\n { emoji: \"๐ฅณ\", name: \"partying_face\" },\n { emoji: \"๐\", name: \"smirking_face\" },\n { emoji: \"๐\", name: \"unamused_face\" },\n { emoji: \"๐\", name: \"disappointed_face\" },\n { emoji: \"๐\", name: \"pensive_face\" },\n { emoji: \"๐\", name: \"worried_face\" },\n { emoji: \"๐\", name: \"confused_face\" },\n { emoji: \"๐\", name: \"slight_frown\" },\n { emoji: \"โน๏ธ\", name: \"frowning_face\" },\n { emoji: \"๐ฃ\", name: \"persevering_face\" },\n { emoji: \"๐\", name: \"confounded_face\" },\n { emoji: \"๐ซ\", name: \"tired_face\" },\n { emoji: \"๐ฉ\", name: \"weary_face\" },\n { emoji: \"๐ฅบ\", name: \"pleading_face\" },\n { emoji: \"๐ข\", name: \"crying_face\" },\n { emoji: \"๐ญ\", name: \"loudly_crying\" },\n { emoji: \"๐ค\", name: \"steam_nose\" },\n { emoji: \"๐ก\", name: \"pouting_face\" },\n { emoji: \"๐คฌ\", name: \"cursing_face\" },\n { emoji: \"๐คฏ\", name: \"exploding_head\" },\n { emoji: \"๐ณ\", name: \"flushed_face\" },\n { emoji: \"๐ฅต\", name: \"hot_face\" },\n { emoji: \"๐ฅถ\", name: \"cold_face\" },\n { emoji: \"๐ฑ\", name: \"screaming_fear\" },\n { emoji: \"๐จ\", name: \"fearful_face\" },\n { emoji: \"๐ฐ\", name: \"anxious_sweat\" },\n { emoji: \"๐ฅ\", name: \"relieved_sad\" },\n { emoji: \"๐\", name: \"downcast_sweat\" },\n { emoji: \"๐ค\", name: \"hugging_face\" },\n { emoji: \"๐ค\", name: \"thinking_face\" },\n { emoji: \"๐คญ\", name: \"hand_over_mouth\" },\n { emoji: \"๐คซ\", name: \"shushing_face\" },\n { emoji: \"๐คฅ\", name: \"lying_face\" },\n { emoji: \"๐ถ\", name: \"no_mouth\" },\n { emoji: \"๐\", name: \"neutral_face\" },\n { emoji: \"๐\", name: \"expressionless_face\" },\n { emoji: \"๐ฌ\", name: \"grimacing_face\" },\n { emoji: \"๐\", name: \"rolling_eyes\" },\n { emoji: \"๐ฏ\", name: \"hushed_face\" },\n { emoji: \"๐ฆ\", name: \"frowning_open\" },\n { emoji: \"๐ง\", name: \"anguished_face\" },\n { emoji: \"๐ฎ\", name: \"open_mouth\" },\n { emoji: \"๐ฒ\", name: \"astonished_face\" },\n { emoji: \"๐ฅฑ\", name: \"yawning_face\" },\n { emoji: \"๐ด\", name: \"sleeping_face\" },\n { emoji: \"๐คค\", name: \"drooling_face\" },\n { emoji: \"๐ช\", name: \"sleepy_face\" },\n { emoji: \"๐ต\", name: \"dizzy_face\" },\n { emoji: \"๐ค\", name: \"zipper_mouth\" },\n { emoji: \"๐ฅด\", name: \"woozy_face\" },\n { emoji: \"๐คข\", name: \"nauseated_face\" },\n { emoji: \"๐คฎ\", name: \"face_vomiting\" },\n { emoji: \"๐คง\", name: \"sneezing_face\" },\n { emoji: \"๐ท\", name: \"medical_mask\" },\n { emoji: \"๐ค\", name: \"thermometer_face\" },\n { emoji: \"๐ค\", name: \"bandage_head\" },\n { emoji: \"๐ค\", name: \"money_mouth\" },\n { emoji: \"๐ค \", name: \"cowboy_hat\" },\n { emoji: \"๐\", name: \"devil_smile\" },\n { emoji: \"๐ฟ\", name: \"devil_angry\" },\n { emoji: \"๐น\", name: \"ogre_mask\" },\n { emoji: \"๐บ\", name: \"goblin_mask\" },\n { emoji: \"๐คก\", name: \"clown_face\" },\n { emoji: \"๐ฉ\", name: \"poop_pile\" },\n { emoji: \"๐ป\", name: \"ghost_spooky\" },\n { emoji: \"๐\", name: \"skull_head\" },\n { emoji: \"โ ๏ธ\", name: \"skull_crossbones\" },\n { emoji: \"๐ฝ\", name: \"alien_face\" },\n { emoji: \"๐พ\", name: \"alien_monster\" },\n { emoji: \"๐ค\", name: \"robot_face\" },\n { emoji: \"๐\", name: \"pumpkin_jack\" },\n { emoji: \"๐บ\", name: \"cat_grin\" },\n { emoji: \"๐ธ\", name: \"cat_smile\" },\n { emoji: \"๐น\", name: \"cat_joy\" },\n { emoji: \"๐ป\", name: \"cat_heart_eyes\" },\n { emoji: \"๐ผ\", name: \"cat_smirk\" },\n { emoji: \"๐ฝ\", name: \"cat_kiss\" },\n { emoji: \"๐\", name: \"cat_weary\" },\n { emoji: \"๐ฟ\", name: \"cat_crying\" },\n { emoji: \"๐พ\", name: \"cat_pouting\" },\n { emoji: \"๐\", name: \"waving_hand\" },\n { emoji: \"๐ค\", name: \"raised_back_hand\" },\n { emoji: \"๐๏ธ\", name: \"splayed_fingers\" },\n { emoji: \"โ\", name: \"raised_hand\" },\n { emoji: \"๐\", name: \"vulcan_salute\" },\n { emoji: \"๐\", name: \"ok_hand\" },\n { emoji: \"๐ค\", name: \"pinched_fingers\" },\n { emoji: \"๐ค\", name: \"pinching_hand\" },\n { emoji: \"โ๏ธ\", name: \"victory_hand\" },\n { emoji: \"๐ค\", name: \"crossed_fingers\" },\n { emoji: \"๐ค\", name: \"love_you\" },\n { emoji: \"๐ค\", name: \"rock_on\" },\n { emoji: \"๐ค\", name: \"call_me\" },\n { emoji: \"๐\", name: \"point_left\" },\n { emoji: \"๐\", name: \"point_right\" },\n { emoji: \"๐\", name: \"point_up\" },\n { emoji: \"๐\", name: \"middle_finger\" },\n { emoji: \"๐\", name: \"point_down\" },\n { emoji: \"โ๏ธ\", name: \"index_up\" },\n { emoji: \"๐\", name: \"thumbs_up\" },\n { emoji: \"๐\", name: \"thumbs_down\" },\n { emoji: \"โ\", name: \"raised_fist\" },\n { emoji: \"๐\", name: \"oncoming_fist\" },\n { emoji: \"๐ค\", name: \"left_fist\" },\n { emoji: \"๐ค\", name: \"right_fist\" },\n { emoji: \"๐\", name: \"clapping_hands\" },\n { emoji: \"๐\", name: \"raising_hands\" },\n { emoji: \"๐\", name: \"open_hands\" },\n { emoji: \"๐คฒ\", name: \"palms_up\" },\n { emoji: \"๐ค\", name: \"handshake\" },\n { emoji: \"๐\", name: \"folded_hands\" },\n { emoji: \"โ๏ธ\", name: \"writing_hand\" },\n { emoji: \"๐
\", name: \"nail_polish\" },\n { emoji: \"๐คณ\", name: \"selfie_hand\" },\n { emoji: \"๐ช\", name: \"flex_biceps\" },\n { emoji: \"๐ฆพ\", name: \"robot_arm\" },\n { emoji: \"๐ฆฟ\", name: \"robot_leg\" },\n { emoji: \"๐ฆต\", name: \"leg_foot\" },\n { emoji: \"๐ฆถ\", name: \"foot_leg\" },\n { emoji: \"๐\", name: \"ear_listen\" },\n { emoji: \"๐ฆป\", name: \"ear_hearing_aid\" },\n { emoji: \"๐\", name: \"nose_smell\" },\n { emoji: \"๐ง \", name: \"brain_mind\" },\n { emoji: \"๐ซ\", name: \"anatomical_heart\" },\n { emoji: \"๐ซ\", name: \"lungs_organ\" },\n { emoji: \"๐ฆท\", name: \"tooth_dentist\" },\n { emoji: \"๐ฆด\", name: \"bone_skeleton\" },\n { emoji: \"๐\", name: \"eyes_look\" },\n { emoji: \"๐๏ธ\", name: \"eye_look\" },\n { emoji: \"๐
\", name: \"tongue_lick\" },\n { emoji: \"๐\", name: \"mouth_lips\" },\n { emoji: \"๐\", name: \"kiss_mark\" },\n { emoji: \"๐ฉธ\", name: \"blood_drop\" },\n { emoji: \"๐ถ\", name: \"baby_face\" },\n { emoji: \"๐ง\", name: \"child_face\" },\n { emoji: \"๐ฆ\", name: \"boy_face\" },\n { emoji: \"๐ง\", name: \"girl_face\" },\n { emoji: \"๐ง\", name: \"person_face\" },\n { emoji: \"๐ฑ\", name: \"blond_person\" },\n { emoji: \"๐จ\", name: \"man_face\" },\n { emoji: \"๐ง\", name: \"beard_person\" },\n { emoji: \"๐ฉ\", name: \"woman_face\" },\n { emoji: \"๐ง\", name: \"older_person\" },\n { emoji: \"๐ด\", name: \"old_man\" },\n { emoji: \"๐ต\", name: \"old_woman\" },\n { emoji: \"๐ฒ\", name: \"skullcap_person\" },\n { emoji: \"๐ณ\", name: \"turban_person\" },\n { emoji: \"๐ง\", name: \"headscarf_woman\" },\n { emoji: \"๐ฎ\", name: \"police_officer\" },\n { emoji: \"๐ท\", name: \"construction_worker\" },\n { emoji: \"๐\", name: \"guard_person\" },\n { emoji: \"๐ต๏ธ\", name: \"detective_spy\" },\n { emoji: \"๐ฉโโ๏ธ\", name: \"woman_doctor\" },\n { emoji: \"๐จโโ๏ธ\", name: \"man_doctor\" },\n { emoji: \"๐ฉโ๐พ\", name: \"woman_farmer\" },\n { emoji: \"๐จโ๐พ\", name: \"man_farmer\" },\n { emoji: \"๐ฉโ๐ณ\", name: \"woman_cook\" },\n { emoji: \"๐จโ๐ณ\", name: \"man_cook\" },\n { emoji: \"๐ฉโ๐\", name: \"woman_student\" },\n { emoji: \"๐จโ๐\", name: \"man_student\" },\n { emoji: \"๐ฉโ๐ค\", name: \"woman_singer\" },\n { emoji: \"๐จโ๐ค\", name: \"man_singer\" },\n { emoji: \"๐ฉโ๐ซ\", name: \"woman_teacher\" },\n { emoji: \"๐จโ๐ซ\", name: \"man_teacher\" },\n { emoji: \"๐ฉโ\", name: \"woman_factory\" },\n { emoji: \"๐จโ\", name: \"man_factory\" },\n { emoji: \"๐ฉโ๐ป\", name: \"woman_tech\" },\n { emoji: \"๐จโ๐ป\", name: \"man_tech\" },\n { emoji: \"๐ฉโ๐ผ\", name: \"woman_office\" },\n { emoji: \"๐จโ๐ผ\", name: \"man_office\" },\n { emoji: \"๐ฉโ๐ง\", name: \"woman_mechanic\" },\n { emoji: \"๐จโ๐ง\", name: \"man_mechanic\" },\n { emoji: \"๐ฉโ๐ฌ\", name: \"woman_scientist\" },\n { emoji: \"๐จโ๐ฌ\", name: \"man_scientist\" },\n { emoji: \"๐ฉโ๐จ\", name: \"woman_artist\" },\n { emoji: \"๐จโ๐จ\", name: \"man_artist\" },\n { emoji: \"๐ฉโ๐\", name: \"woman_firefighter\" },\n { emoji: \"๐จโ๐\", name: \"man_firefighter\" },\n { emoji: \"๐ฉโโ๏ธ\", name: \"woman_pilot\" },\n { emoji: \"๐จโโ๏ธ\", name: \"man_pilot\" },\n { emoji: \"๐ฉโ๐\", name: \"woman_astronaut\" },\n { emoji: \"๐จโ๐\", name: \"man_astronaut\" },\n { emoji: \"๐ฉโโ๏ธ\", name: \"woman_judge\" },\n { emoji: \"๐จโโ๏ธ\", name: \"man_judge\" },\n { emoji: \"๐ฐ\", name: \"bride_wedding\" },\n { emoji: \"๐คต\", name: \"groom_tuxedo\" },\n { emoji: \"๐ธ\", name: \"princess_crown\" },\n { emoji: \"๐คด\", name: \"prince_crown\" },\n { emoji: \"๐ฆธ\", name: \"superhero_person\" },\n { emoji: \"๐ฆน\", name: \"supervillain_person\" },\n { emoji: \"๐คถ\", name: \"mrs_claus\" },\n { emoji: \"๐
\", name: \"santa_claus\" },\n { emoji: \"๐ง\", name: \"mage_wizard\" },\n { emoji: \"๐ง\", name: \"elf_fantasy\" },\n { emoji: \"๐ง\", name: \"vampire_dracula\" },\n { emoji: \"๐ง\", name: \"zombie_undead\" },\n { emoji: \"๐ง\", name: \"genie_magic\" },\n { emoji: \"๐ง\", name: \"mermaid_person\" },\n { emoji: \"๐ง\", name: \"fairy_magic\" },\n { emoji: \"๐ผ\", name: \"angel_baby\" },\n { emoji: \"๐คฐ\", name: \"pregnant_woman\" },\n { emoji: \"๐คฑ\", name: \"breast_feeding\" },\n { emoji: \"๐\", name: \"bowing_person\" },\n { emoji: \"๐\", name: \"tipping_hand\" },\n { emoji: \"๐
\", name: \"gesturing_no\" },\n { emoji: \"๐\", name: \"gesturing_ok\" },\n { emoji: \"๐\", name: \"raising_hand\" },\n { emoji: \"๐ง\", name: \"deaf_person\" },\n { emoji: \"๐คฆ\", name: \"face_palm\" },\n { emoji: \"๐คท\", name: \"shrugging_person\" },\n { emoji: \"๐\", name: \"pouting_person\" },\n { emoji: \"๐\", name: \"frowning_person\" },\n { emoji: \"๐\", name: \"haircut_person\" },\n { emoji: \"๐\", name: \"massage_person\" },\n { emoji: \"๐ง\", name: \"sauna_person\" },\n { emoji: \"๐\", name: \"woman_dancing\" },\n { emoji: \"๐บ\", name: \"man_dancing\" },\n { emoji: \"๐ฏ\", name: \"bunny_friends\" },\n { emoji: \"๐ด๏ธ\", name: \"levitating_suit\" },\n { emoji: \"๐ถ\", name: \"walking_person\" },\n { emoji: \"๐\", name: \"running_person\" },\n { emoji: \"๐ง\", name: \"standing_person\" },\n { emoji: \"๐ง\", name: \"kneeling_person\" },\n { emoji: \"๐จโ๐ฆฏ\", name: \"blind_cane\" },\n { emoji: \"๐จโ๐ฆผ\", name: \"motor_wheelchair\" },\n { emoji: \"๐จโ๐ฆฝ\", name: \"manual_wheelchair\" },\n { emoji: \"๐ง\", name: \"climbing_person\" },\n { emoji: \"๐คบ\", name: \"fencing_person\" },\n { emoji: \"๐\", name: \"horse_racing\" },\n { emoji: \"โท๏ธ\", name: \"skier_snow\" },\n { emoji: \"๐\", name: \"snowboarder_snow\" },\n { emoji: \"๐๏ธ\", name: \"golfing_person\" },\n { emoji: \"๐\", name: \"surfing_person\" },\n { emoji: \"๐ฃ\", name: \"rowing_person\" },\n { emoji: \"๐\", name: \"swimming_person\" },\n { emoji: \"โน๏ธ\", name: \"basketball_person\" },\n { emoji: \"๐๏ธ\", name: \"lifting_weights\" },\n { emoji: \"๐ด\", name: \"biking_person\" },\n { emoji: \"๐ต\", name: \"mountain_biking\" },\n { emoji: \"๐คธ\", name: \"cartwheel_person\" },\n { emoji: \"๐คผ\", name: \"wrestling_people\" },\n { emoji: \"๐คฝ\", name: \"water_polo\" },\n { emoji: \"๐คพ\", name: \"handball_person\" },\n { emoji: \"๐คน\", name: \"juggling_person\" },\n { emoji: \"๐ง\", name: \"yoga_lotus\" },\n { emoji: \"๐\", name: \"bath_person\" },\n { emoji: \"๐\", name: \"bed_person\" }\n ]\n },\n {\n id: \"animals_nature\",\n name: \"Animals & Nature\",\n emojis: [\n { emoji: \"๐ต\", name: \"monkey_face\" },\n { emoji: \"๐ถ\", name: \"dog_face\" },\n { emoji: \"๐บ\", name: \"wolf_face\" },\n { emoji: \"๐ฑ\", name: \"cat_face\" },\n { emoji: \"๐ฆ\", name: \"lion_face\" },\n { emoji: \"๐ฏ\", name: \"tiger_face\" },\n { emoji: \"๐ด\", name: \"horse_face\" },\n { emoji: \"๐ฆ\", name: \"unicorn_face\" },\n { emoji: \"๐ฎ\", name: \"cow_face\" },\n { emoji: \"๐ท\", name: \"pig_face\" },\n { emoji: \"๐ญ\", name: \"mouse_face\" },\n { emoji: \"๐ฐ\", name: \"rabbit_face\" },\n { emoji: \"๐ป\", name: \"bear_face\" },\n { emoji: \"๐จ\", name: \"koala_bear\" },\n { emoji: \"๐ผ\", name: \"panda_face\" },\n { emoji: \"๐\", name: \"chicken_bird\" },\n { emoji: \"๐ง\", name: \"penguin_bird\" },\n { emoji: \"๐ฆ\", name: \"bird_fly\" },\n { emoji: \"๐ฆ\", name: \"duck_bird\" },\n { emoji: \"๐ฆ
\", name: \"eagle_bird\" },\n { emoji: \"๐ฆ\", name: \"owl_bird\" },\n { emoji: \"๐ธ\", name: \"frog_face\" },\n { emoji: \"๐ข\", name: \"turtle_slow\" },\n { emoji: \"๐\", name: \"snake_hiss\" },\n { emoji: \"๐ณ\", name: \"whale_sprout\" },\n { emoji: \"๐ฌ\", name: \"dolphin_jump\" },\n { emoji: \"๐\", name: \"fish_swim\" },\n { emoji: \"๐\", name: \"octopus_legs\" },\n { emoji: \"๐ฆ\", name: \"butterfly_fly\" },\n { emoji: \"๐\", name: \"flower_bouquet\" },\n { emoji: \"๐ธ\", name: \"cherry_blossom\" },\n { emoji: \"๐น\", name: \"rose_flower\" },\n { emoji: \"๐ป\", name: \"sunflower_yellow\" },\n { emoji: \"๐ฒ\", name: \"evergreen_tree\" },\n { emoji: \"๐ณ\", name: \"deciduous_tree\" },\n { emoji: \"๐ด\", name: \"palm_tree\" },\n { emoji: \"๐ต\", name: \"cactus_plant\" },\n { emoji: \"๐ฅ\", name: \"fire_flame\" },\n { emoji: \"๐ง\", name: \"water_drop\" },\n { emoji: \"โญ\", name: \"star_shine\" }\n ]\n },\n {\n id: \"food_drink\",\n name: \"Food & Drink\",\n emojis: [\n { emoji: \"๐\", name: \"grapes_fruit\" },\n { emoji: \"๐\", name: \"melon_fruit\" },\n { emoji: \"๐\", name: \"watermelon_slice\" },\n { emoji: \"๐\", name: \"tangerine_orange\" },\n { emoji: \"๐\", name: \"lemon_sour\" },\n { emoji: \"๐\", name: \"banana_fruit\" },\n { emoji: \"๐\", name: \"pineapple_fruit\" },\n { emoji: \"๐\", name: \"red_apple\" },\n { emoji: \"๐\", name: \"green_apple\" },\n { emoji: \"๐\", name: \"pear_fruit\" },\n { emoji: \"๐\", name: \"peach_fruit\" },\n { emoji: \"๐\", name: \"cherries_red\" },\n { emoji: \"๐\", name: \"strawberry_red\" },\n { emoji: \"๐ฅ\", name: \"kiwi_fruit\" },\n { emoji: \"๐
\", name: \"tomato_red\" },\n { emoji: \"๐ฅ\", name: \"avocado_green\" },\n { emoji: \"๐\", name: \"eggplant_purple\" },\n { emoji: \"๐ฅ\", name: \"potato_spud\" },\n { emoji: \"๐ฅ\", name: \"carrot_veg\" },\n { emoji: \"๐ฝ\", name: \"corn_cob\" },\n { emoji: \"๐\", name: \"bread_loaf\" },\n { emoji: \"๐ง\", name: \"cheese_wedge\" },\n { emoji: \"๐\", name: \"meat_bone\" },\n { emoji: \"๐\", name: \"poultry_leg\" },\n { emoji: \"๐ฅฉ\", name: \"meat_cut\" },\n { emoji: \"๐ฅ\", name: \"bacon_strips\" },\n { emoji: \"๐\", name: \"hamburger_fast\" },\n { emoji: \"๐\", name: \"french_fries\" },\n { emoji: \"๐\", name: \"pizza_slice\" },\n { emoji: \"๐ญ\", name: \"hot_dog\" },\n { emoji: \"๐ฅช\", name: \"sandwich_lunch\" },\n { emoji: \"๐ฎ\", name: \"taco_mexican\" },\n { emoji: \"๐ฏ\", name: \"burrito_wrap\" },\n { emoji: \"๐ฅ\", name: \"egg_white\" },\n { emoji: \"๐ณ\", name: \"cooking_egg\" },\n { emoji: \"๐ฟ\", name: \"popcorn_box\" },\n { emoji: \"๐\", name: \"rice_bowl\" },\n { emoji: \"๐\", name: \"spaghetti_pasta\" },\n { emoji: \"๐ฃ\", name: \"sushi_roll\" },\n { emoji: \"๐ค\", name: \"fried_shrimp\" },\n { emoji: \"๐ฆ\", name: \"ice_cream\" },\n { emoji: \"๐ฉ\", name: \"doughnut_sweet\" },\n { emoji: \"๐ช\", name: \"cookie_sweet\" },\n { emoji: \"๐\", name: \"birthday_cake\" },\n { emoji: \"๐ฐ\", name: \"shortcake_slice\" },\n { emoji: \"๐ซ\", name: \"chocolate_bar\" },\n { emoji: \"๐ฌ\", name: \"candy_sweet\" },\n { emoji: \"๐ญ\", name: \"lollipop_candy\" },\n { emoji: \"โ\", name: \"coffee_hot\" },\n { emoji: \"๐บ\", name: \"beer_mug\" },\n { emoji: \"๐ป\", name: \"beer_cheers\" },\n { emoji: \"๐ฅ\", name: \"champagne_cheers\" },\n { emoji: \"๐ท\", name: \"wine_glass\" },\n { emoji: \"๐ฅ\", name: \"whiskey_glass\" },\n { emoji: \"๐น\", name: \"tropical_drink\" }\n ]\n },\n {\n id: \"activity\",\n name: \"Activity\",\n emojis: [\n { emoji: \"โฝ\", name: \"soccer_ball\" },\n { emoji: \"๐\", name: \"basketball_hoop\" },\n { emoji: \"๐\", name: \"football_american\" },\n { emoji: \"โพ\", name: \"baseball_game\" },\n { emoji: \"๐พ\", name: \"tennis_ball\" },\n { emoji: \"๐\", name: \"volleyball_game\" },\n { emoji: \"๐ฑ\", name: \"pool_8ball\" },\n { emoji: \"๐\", name: \"ping_pong\" },\n { emoji: \"๐ธ\", name: \"badminton_game\" },\n { emoji: \"๐ฅ\", name: \"boxing_glove\" },\n { emoji: \"๐ฅ
\", name: \"goal_net\" },\n { emoji: \"๐ฃ\", name: \"fishing_pole\" },\n { emoji: \"๐ฎ\", name: \"video_game\" },\n { emoji: \"๐ฒ\", name: \"game_die\" },\n { emoji: \"๐ญ\", name: \"theater_masks\" },\n { emoji: \"๐จ\", name: \"artist_palette\" },\n { emoji: \"๐ฌ\", name: \"clapper_board\" },\n { emoji: \"๐ค\", name: \"microphone_sing\" },\n { emoji: \"๐ง\", name: \"headphone_music\" },\n { emoji: \"๐ท\", name: \"saxophone_jazz\" },\n { emoji: \"๐ธ\", name: \"guitar_rock\" },\n { emoji: \"๐น\", name: \"piano_keys\" },\n { emoji: \"๐บ\", name: \"trumpet_horn\" },\n { emoji: \"๐ป\", name: \"violin_music\" },\n { emoji: \"๐ฅ\", name: \"drum_beat\" }\n ]\n },\n {\n id: \"objects\",\n name: \"Objects\",\n emojis: [\n { emoji: \"๐ฑ\", name: \"mobile_phone\" },\n { emoji: \"๐ป\", name: \"laptop_computer\" },\n { emoji: \"๐ฅ๏ธ\", name: \"desktop_computer\" },\n { emoji: \"โ\", name: \"watch_wrist\" },\n { emoji: \"๐ท\", name: \"camera_photo\" },\n { emoji: \"๐ก\", name: \"light_bulb\" },\n { emoji: \"๐\", name: \"books_pile\" },\n { emoji: \"๐ฐ\", name: \"money_bag\" },\n { emoji: \"๐\", name: \"gift_box\" },\n { emoji: \"๐\", name: \"balloon_red\" },\n { emoji: \"๐\", name: \"party_popper\" },\n { emoji: \"๐\", name: \"confetti_ball\" },\n { emoji: \"โ๏ธ\", name: \"envelope_mail\" },\n { emoji: \"๐ฆ\", name: \"package_box\" },\n { emoji: \"โ๏ธ\", name: \"pencil_write\" },\n { emoji: \"๐\", name: \"lock_closed\" },\n { emoji: \"๐\", name: \"key_gold\" },\n { emoji: \"๐จ\", name: \"hammer_tool\" },\n { emoji: \"๐ฃ\", name: \"bomb_explode\" },\n { emoji: \"๐ซ\", name: \"pistol_toy\" },\n { emoji: \"๐\", name: \"pill_capsule\" },\n { emoji: \"๐\", name: \"shopping_cart\" }\n ]\n },\n {\n id: \"symbols\",\n name: \"Symbols\",\n emojis: [\n { emoji: \"โค๏ธ\", name: \"red_heart\" },\n { emoji: \"๐งก\", name: \"orange_heart\" },\n { emoji: \"๐\", name: \"yellow_heart\" },\n { emoji: \"๐\", name: \"green_heart\" },\n { emoji: \"๐\", name: \"blue_heart\" },\n { emoji: \"๐\", name: \"purple_heart\" },\n { emoji: \"๐ค\", name: \"black_heart\" },\n { emoji: \"๐ค\", name: \"white_heart\" },\n { emoji: \"๐ค\", name: \"brown_heart\" },\n { emoji: \"๐\", name: \"broken_heart\" },\n { emoji: \"โฃ๏ธ\", name: \"heart_exclamation\" },\n { emoji: \"๐\", name: \"two_hearts\" },\n { emoji: \"๐\", name: \"revolving_hearts\" },\n { emoji: \"๐\", name: \"beating_heart\" },\n { emoji: \"๐\", name: \"growing_heart\" },\n { emoji: \"๐\", name: \"sparkling_heart\" },\n { emoji: \"๐\", name: \"cupid_heart\" },\n { emoji: \"๐\", name: \"gift_heart\" },\n { emoji: \"๐ฏ\", name: \"hundred_points\" },\n { emoji: \"๐ข\", name: \"anger_symbol\" },\n { emoji: \"๐ฅ\", name: \"collision_boom\" },\n { emoji: \"๐ซ\", name: \"dizzy_star\" },\n { emoji: \"๐ฆ\", name: \"sweat_drops\" },\n { emoji: \"๐จ\", name: \"dash_away\" },\n { emoji: \"๐ค\", name: \"sleeping_zzz\" },\n { emoji: \"โ
\", name: \"check_mark\" },\n { emoji: \"โ\", name: \"cross_mark\" },\n { emoji: \"โ ๏ธ\", name: \"warning_sign\" },\n { emoji: \"โ\", name: \"no_entry\" },\n { emoji: \"๐ซ\", name: \"prohibited_sign\" },\n { emoji: \"โฌ๏ธ\", name: \"arrow_up\" },\n { emoji: \"โฌ๏ธ\", name: \"arrow_down\" },\n { emoji: \"โฌ
๏ธ\", name: \"arrow_left\" },\n { emoji: \"โก๏ธ\", name: \"arrow_right\" },\n { emoji: \"โป๏ธ\", name: \"recycling_symbol\" }\n ]\n },\n {\n id: \"flags\",\n name: \"Flags\",\n emojis: [\n { emoji: \"๐\", name: \"checkered_flag\" },\n { emoji: \"๐ณ๏ธ\", name: \"white_flag\" },\n { emoji: \"๐ณ๏ธโ๐\", name: \"rainbow_flag\" },\n { emoji: \"๐ณ๏ธโโง๏ธ\", name: \"transgender_flag\" },\n { emoji: \"๐ดโโ ๏ธ\", name: \"pirate_flag\" },\n { emoji: \"๐ฆ๐จ\", name: \"flag_ascension\" },\n { emoji: \"๐ฆ๐ฉ\", name: \"flag_andorra\" },\n { emoji: \"๐ฆ๐ช\", name: \"flag_uae\" },\n { emoji: \"๐ฆ๐ซ\", name: \"flag_afghanistan\" },\n { emoji: \"๐ฆ๐ฌ\", name: \"flag_antigua\" },\n { emoji: \"๐ฆ๐ฎ\", name: \"flag_anguilla\" },\n { emoji: \"๐ฆ๐ฑ\", name: \"flag_albania\" },\n { emoji: \"๐ฆ๐ฒ\", name: \"flag_armenia\" },\n { emoji: \"๐ฆ๐ด\", name: \"flag_angola\" },\n { emoji: \"๐ฆ๐ถ\", name: \"flag_antarctica\" },\n { emoji: \"๐ฆ๐ท\", name: \"flag_argentina\" },\n { emoji: \"๐ฆ๐ธ\", name: \"flag_american_samoa\" },\n { emoji: \"๐ฆ๐น\", name: \"flag_austria\" },\n { emoji: \"๐ฆ๐บ\", name: \"flag_australia\" },\n { emoji: \"๐ฆ๐ผ\", name: \"flag_aruba\" },\n { emoji: \"๐ฆ๐ฝ\", name: \"flag_aland\" },\n { emoji: \"๐ฆ๐ฟ\", name: \"flag_azerbaijan\" },\n { emoji: \"๐ง๐ฆ\", name: \"flag_bosnia\" },\n { emoji: \"๐ง๐ง\", name: \"flag_barbados\" },\n { emoji: \"๐ง๐ฉ\", name: \"flag_bangladesh\" },\n { emoji: \"๐ง๐ช\", name: \"flag_belgium\" },\n { emoji: \"๐ง๐ซ\", name: \"flag_burkina\" },\n { emoji: \"๐ง๐ฌ\", name: \"flag_bulgaria\" },\n { emoji: \"๐ง๐ญ\", name: \"flag_bahrain\" },\n { emoji: \"๐ง๐ฎ\", name: \"flag_burundi\" },\n { emoji: \"๐ง๐ฏ\", name: \"flag_benin\" },\n { emoji: \"๐ง๐ฑ\", name: \"flag_st_barthelemy\" },\n { emoji: \"๐ง๐ฒ\", name: \"flag_bermuda\" },\n { emoji: \"๐ง๐ณ\", name: \"flag_brunei\" },\n { emoji: \"๐ง๐ด\", name: \"flag_bolivia\" },\n { emoji: \"๐ง๐ถ\", name: \"flag_bonaire\" },\n { emoji: \"๐ง๐ท\", name: \"flag_brazil\" },\n { emoji: \"๐ง๐ธ\", name: \"flag_bahamas\" },\n { emoji: \"๐ง๐น\", name: \"flag_bhutan\" },\n { emoji: \"๐ง๐ป\", name: \"flag_bouvet\" },\n { emoji: \"๐ง๐ผ\", name: \"flag_botswana\" },\n { emoji: \"๐ง๐พ\", name: \"flag_belarus\" },\n { emoji: \"๐ง๐ฟ\", name: \"flag_belize\" },\n { emoji: \"๐จ๐ฆ\", name: \"flag_canada\" },\n { emoji: \"๐จ๐จ\", name: \"flag_cocos\" },\n { emoji: \"๐จ๐ฉ\", name: \"flag_congo_dr\" },\n { emoji: \"๐จ๐ซ\", name: \"flag_central_africa\" },\n { emoji: \"๐จ๐ฌ\", name: \"flag_congo\" },\n { emoji: \"๐จ๐ญ\", name: \"flag_switzerland\" },\n { emoji: \"๐จ๐ฎ\", name: \"flag_cote_divoire\" },\n { emoji: \"๐จ๐ฐ\", name: \"flag_cook_islands\" },\n { emoji: \"๐จ๐ฑ\", name: \"flag_chile\" },\n { emoji: \"๐จ๐ฒ\", name: \"flag_cameroon\" },\n { emoji: \"๐จ๐ณ\", name: \"flag_china\" },\n { emoji: \"๐จ๐ด\", name: \"flag_colombia\" },\n { emoji: \"๐จ๐ต\", name: \"flag_clipperton\" },\n { emoji: \"๐จ๐ท\", name: \"flag_costa_rica\" },\n { emoji: \"๐จ๐บ\", name: \"flag_cuba\" },\n { emoji: \"๐จ๐ป\", name: \"flag_cape_verde\" },\n { emoji: \"๐จ๐ผ\", name: \"flag_curacao\" },\n { emoji: \"๐จ๐ฝ\", name: \"flag_christmas_island\" },\n { emoji: \"๐จ๐พ\", name: \"flag_cyprus\" },\n { emoji: \"๐จ๐ฟ\", name: \"flag_czechia\" },\n { emoji: \"๐ฉ๐ช\", name: \"flag_germany\" },\n { emoji: \"๐ฉ๐ฌ\", name: \"flag_diego_garcia\" },\n { emoji: \"๐ฉ๐ฏ\", name: \"flag_djibouti\" },\n { emoji: \"๐ฉ๐ฐ\", name: \"flag_denmark\" },\n { emoji: \"๐ฉ๐ฒ\", name: \"flag_dominica\" },\n { emoji: \"๐ฉ๐ด\", name: \"flag_dominican_rep\" },\n { emoji: \"๐ฉ๐ฟ\", name: \"flag_algeria\" },\n { emoji: \"๐ช๐จ\", name: \"flag_ecuador\" },\n { emoji: \"๐ช๐ช\", name: \"flag_estonia\" },\n { emoji: \"๐ช๐ฌ\", name: \"flag_egypt\" },\n { emoji: \"๐ช๐ญ\", name: \"flag_western_sahara\" },\n { emoji: \"๐ช๐ท\", name: \"flag_eritrea\" },\n { emoji: \"๐ช๐ธ\", name: \"flag_spain\" },\n { emoji: \"๐ช๐น\", name: \"flag_ethiopia\" },\n { emoji: \"๐ช๐บ\", name: \"flag_eu\" },\n { emoji: \"๐ซ๐ฎ\", name: \"flag_finland\" },\n { emoji: \"๐ซ๐ฏ\", name: \"flag_fiji\" },\n { emoji: \"๐ซ๐ฐ\", name: \"flag_falkland\" },\n { emoji: \"๐ซ๐ฒ\", name: \"flag_micronesia\" },\n { emoji: \"๐ซ๐ด\", name: \"flag_faroe\" },\n { emoji: \"๐ซ๐ท\", name: \"flag_france\" },\n { emoji: \"๐ฌ๐ฆ\", name: \"flag_gabon\" },\n { emoji: \"๐ฌ๐ง\", name: \"flag_uk\" },\n { emoji: \"๐ฌ๐ฉ\", name: \"flag_grenada\" },\n { emoji: \"๐ฌ๐ช\", name: \"flag_georgia\" },\n { emoji: \"๐ฌ๐ซ\", name: \"flag_french_guiana\" },\n { emoji: \"๐ฌ๐ฌ\", name: \"flag_guernsey\" },\n { emoji: \"๐ฌ๐ญ\", name: \"flag_ghana\" },\n { emoji: \"๐ฌ๐ฎ\", name: \"flag_gibraltar\" },\n { emoji: \"๐ฌ๐ฑ\", name: \"flag_greenland\" },\n { emoji: \"๐ฌ๐ฒ\", name: \"flag_gambia\" },\n { emoji: \"๐ฌ๐ณ\", name: \"flag_guinea\" },\n { emoji: \"๐ฌ๐ต\", name: \"flag_guadeloupe\" },\n { emoji: \"๐ฌ๐ถ\", name: \"flag_equatorial_guinea\" },\n { emoji: \"๐ฌ๐ท\", name: \"flag_greece\" },\n { emoji: \"๐ฌ๐ธ\", name: \"flag_south_georgia\" },\n { emoji: \"๐ฌ๐น\", name: \"flag_guatemala\" },\n { emoji: \"๐ฌ๐บ\", name: \"flag_guam\" },\n { emoji: \"๐ฌ๐ผ\", name: \"flag_guinea_bissau\" },\n { emoji: \"๐ฌ๐พ\", name: \"flag_guyana\" },\n { emoji: \"๐ญ๐ฐ\", name: \"flag_hong_kong\" },\n { emoji: \"๐ญ๐ฒ\", name: \"flag_heard_island\" },\n { emoji: \"๐ญ๐ณ\", name: \"flag_honduras\" },\n { emoji: \"๐ญ๐ท\", name: \"flag_croatia\" },\n { emoji: \"๐ญ๐น\", name: \"flag_haiti\" },\n { emoji: \"๐ญ๐บ\", name: \"flag_hungary\" },\n { emoji: \"๐ฎ๐จ\", name: \"flag_canary_islands\" },\n { emoji: \"๐ฎ๐ฉ\", name: \"flag_indonesia\" },\n { emoji: \"๐ฎ๐ช\", name: \"flag_ireland\" },\n { emoji: \"๐ฎ๐ฑ\", name: \"flag_israel\" },\n { emoji: \"๐ฎ๐ฒ\", name: \"flag_isle_of_man\" },\n { emoji: \"๐ฎ๐ณ\", name: \"flag_india\" },\n { emoji: \"๐ฎ๐ด\", name: \"flag_british_indian_ocean\" },\n { emoji: \"๐ฎ๐ถ\", name: \"flag_iraq\" },\n { emoji: \"๐ฎ๐ท\", name: \"flag_iran\" },\n { emoji: \"๐ฎ๐ธ\", name: \"flag_iceland\" },\n { emoji: \"๐ฎ๐น\", name: \"flag_italy\" },\n { emoji: \"๐ฏ๐ช\", name: \"flag_jersey\" },\n { emoji: \"๐ฏ๐ฒ\", name: \"flag_jamaica\" },\n { emoji: \"๐ฏ๐ด\", name: \"flag_jordan\" },\n { emoji: \"๐ฏ๐ต\", name: \"flag_japan\" },\n { emoji: \"๐ฐ๐ช\", name: \"flag_kenya\" },\n { emoji: \"๐ฐ๐ฌ\", name: \"flag_kyrgyzstan\" },\n { emoji: \"๐ฐ๐ญ\", name: \"flag_cambodia\" },\n { emoji: \"๐ฐ๐ฎ\", name: \"flag_kiribati\" },\n { emoji: \"๐ฐ๐ฒ\", name: \"flag_comoros\" },\n { emoji: \"๐ฐ๐ณ\", name: \"flag_st_kitts\" },\n { emoji: \"๐ฐ๐ต\", name: \"flag_north_korea\" },\n { emoji: \"๐ฐ๐ท\", name: \"flag_south_korea\" },\n { emoji: \"๐ฐ๐ผ\", name: \"flag_kuwait\" },\n { emoji: \"๐ฐ๐พ\", name: \"flag_cayman\" },\n { emoji: \"๐ฐ๐ฟ\", name: \"flag_kazakhstan\" },\n { emoji: \"๐ฑ๐ฆ\", name: \"flag_laos\" },\n { emoji: \"๐ฑ๐ง\", name: \"flag_lebanon\" },\n { emoji: \"๐ฑ๐จ\", name: \"flag_st_lucia\" },\n { emoji: \"๐ฑ๐ฎ\", name: \"flag_liechtenstein\" },\n { emoji: \"๐ฑ๐ฐ\", name: \"flag_sri_lanka\" },\n { emoji: \"๐ฑ๐ท\", name: \"flag_liberia\" },\n { emoji: \"๐ฑ๐ธ\", name: \"flag_lesotho\" },\n { emoji: \"๐ฑ๐น\", name: \"flag_lithuania\" },\n { emoji: \"๐ฑ๐บ\", name: \"flag_luxembourg\" },\n { emoji: \"๐ฑ๐ป\", name: \"flag_latvia\" },\n { emoji: \"๐ฑ๐พ\", name: \"flag_libya\" },\n { emoji: \"๐ฒ๐ฆ\", name: \"flag_morocco\" },\n { emoji: \"๐ฒ๐จ\", name: \"flag_monaco\" },\n { emoji: \"๐ฒ๐ฉ\", name: \"flag_moldova\" },\n { emoji: \"๐ฒ๐ช\", name: \"flag_montenegro\" },\n { emoji: \"๐ฒ๐ซ\", name: \"flag_st_martin\" },\n { emoji: \"๐ฒ๐ฌ\", name: \"flag_madagascar\" },\n { emoji: \"๐ฒ๐ญ\", name: \"flag_marshall_islands\" },\n { emoji: \"๐ฒ๐ฐ\", name: \"flag_north_macedonia\" },\n { emoji: \"๐ฒ๐ฑ\", name: \"flag_mali\" },\n { emoji: \"๐ฒ๐ฒ\", name: \"flag_myanmar\" },\n { emoji: \"๐ฒ๐ณ\", name: \"flag_mongolia\" },\n { emoji: \"๐ฒ๐ด\", name: \"flag_macau\" },\n { emoji: \"๐ฒ๐ต\", name: \"flag_northern_mariana\" },\n { emoji: \"๐ฒ๐ถ\", name: \"flag_martinique\" },\n { emoji: \"๐ฒ๐ท\", name: \"flag_mauritania\" },\n { emoji: \"๐ฒ๐ธ\", name: \"flag_montserrat\" },\n { emoji: \"๐ฒ๐น\", name: \"flag_malta\" },\n { emoji: \"๐ฒ๐บ\", name: \"flag_mauritius\" },\n { emoji: \"๐ฒ๐ป\", name: \"flag_maldives\" },\n { emoji: \"๐ฒ๐ผ\", name: \"flag_malawi\" },\n { emoji: \"๐ฒ๐ฝ\", name: \"flag_mexico\" },\n { emoji: \"๐ฒ๐พ\", name: \"flag_malaysia\" },\n { emoji: \"๐ฒ๐ฟ\", name: \"flag_mozambique\" },\n { emoji: \"๐ณ๐ฆ\", name: \"flag_namibia\" },\n { emoji: \"๐ณ๐จ\", name: \"flag_new_caledonia\" },\n { emoji: \"๐ณ๐ช\", name: \"flag_niger\" },\n { emoji: \"๐ณ๐ซ\", name: \"flag_norfolk\" },\n { emoji: \"๐ณ๐ฌ\", name: \"flag_nigeria\" },\n { emoji: \"๐ณ๐ฎ\", name: \"flag_nicaragua\" },\n { emoji: \"๐ณ๐ฑ\", name: \"flag_netherlands\" },\n { emoji: \"๐ณ๐ด\", name: \"flag_norway\" },\n { emoji: \"๐ณ๐ต\", name: \"flag_nepal\" },\n { emoji: \"๐ณ๐ท\", name: \"flag_nauru\" },\n { emoji: \"๐ณ๐บ\", name: \"flag_niue\" },\n { emoji: \"๐ณ๐ฟ\", name: \"flag_new_zealand\" },\n { emoji: \"๐ด๐ฒ\", name: \"flag_oman\" },\n { emoji: \"๐ต๐ฆ\", name: \"flag_panama\" },\n { emoji: \"๐ต๐ช\", name: \"flag_peru\" },\n { emoji: \"๐ต๐ซ\", name: \"flag_french_polynesia\" },\n { emoji: \"๐ต๐ฌ\", name: \"flag_papua_new_guinea\" },\n { emoji: \"๐ต๐ญ\", name: \"flag_philippines\" },\n { emoji: \"๐ต๐ฐ\", name: \"flag_pakistan\" },\n { emoji: \"๐ต๐ฑ\", name: \"flag_poland\" },\n { emoji: \"๐ต๐ฒ\", name: \"flag_st_pierre\" },\n { emoji: \"๐ต๐ณ\", name: \"flag_pitcairn\" },\n { emoji: \"๐ต๐ท\", name: \"flag_puerto_rico\" },\n { emoji: \"๐ต๐ธ\", name: \"flag_palestine\" },\n { emoji: \"๐ต๐น\", name: \"flag_portugal\" },\n { emoji: \"๐ต๐ผ\", name: \"flag_palau\" },\n { emoji: \"๐ต๐พ\", name: \"flag_paraguay\" },\n { emoji: \"๐ถ๐ฆ\", name: \"flag_qatar\" },\n { emoji: \"๐ท๐ช\", name: \"flag_reunion\" },\n { emoji: \"๐ท๐ด\", name: \"flag_romania\" },\n { emoji: \"๐ท๐ธ\", name: \"flag_serbia\" },\n { emoji: \"๐ท๐บ\", name: \"flag_russia\" },\n { emoji: \"๐ท๐ผ\", name: \"flag_rwanda\" },\n { emoji: \"๐ธ๐ฆ\", name: \"flag_saudi_arabia\" },\n { emoji: \"๐ธ๐ง\", name: \"flag_solomon_islands\" },\n { emoji: \"๐ธ๐จ\", name: \"flag_seychelles\" },\n { emoji: \"๐ธ๐ฉ\", name: \"flag_sudan\" },\n { emoji: \"๐ธ๐ช\", name: \"flag_sweden\" },\n { emoji: \"๐ธ๐ฌ\", name: \"flag_singapore\" },\n { emoji: \"๐ธ๐ญ\", name: \"flag_st_helena\" },\n { emoji: \"๐ธ๐ฎ\", name: \"flag_slovenia\" },\n { emoji: \"๐ธ๐ฏ\", name: \"flag_svalbard\" },\n { emoji: \"๐ธ๐ฐ\", name: \"flag_slovakia\" },\n { emoji: \"๐ธ๐ฑ\", name: \"flag_sierra_leone\" },\n { emoji: \"๐ธ๐ฒ\", name: \"flag_san_marino\" },\n { emoji: \"๐ธ๐ณ\", name: \"flag_senegal\" },\n { emoji: \"๐ธ๐ด\", name: \"flag_somalia\" },\n { emoji: \"๐ธ๐ท\", name: \"flag_suriname\" },\n { emoji: \"๐ธ๐ธ\", name: \"flag_south_sudan\" },\n { emoji: \"๐ธ๐น\", name: \"flag_sao_tome\" },\n { emoji: \"๐ธ๐ป\", name: \"flag_el_salvador\" },\n { emoji: \"๐ธ๐ฝ\", name: \"flag_sint_maarten\" },\n { emoji: \"๐ธ๐พ\", name: \"flag_syria\" },\n { emoji: \"๐ธ๐ฟ\", name: \"flag_eswatini\" },\n { emoji: \"๐น๐ฆ\", name: \"flag_tristan\" },\n { emoji: \"๐น๐จ\", name: \"flag_turks_caicos\" },\n { emoji: \"๐น๐ฉ\", name: \"flag_chad\" },\n { emoji: \"๐น๐ซ\", name: \"flag_french_southern\" },\n { emoji: \"๐น๐ฌ\", name: \"flag_togo\" },\n { emoji: \"๐น๐ญ\", name: \"flag_thailand\" },\n { emoji: \"๐น๐ฏ\", name: \"flag_tajikistan\" },\n { emoji: \"๐น๐ฐ\", name: \"flag_tokelau\" },\n { emoji: \"๐น๐ฑ\", name: \"flag_timor_leste\" },\n { emoji: \"๐น๐ฒ\", name: \"flag_turkmenistan\" },\n { emoji: \"๐น๐ณ\", name: \"flag_tunisia\" },\n { emoji: \"๐น๐ด\", name: \"flag_tonga\" },\n { emoji: \"๐น๐ท\", name: \"flag_turkey\" },\n { emoji: \"๐น๐น\", name: \"flag_trinidad\" },\n { emoji: \"๐น๐ป\", name: \"flag_tuvalu\" },\n { emoji: \"๐น๐ผ\", name: \"flag_taiwan\" },\n { emoji: \"๐น๐ฟ\", name: \"flag_tanzania\" },\n { emoji: \"๐บ๐ฆ\", name: \"flag_ukraine\" },\n { emoji: \"๐บ๐ฌ\", name: \"flag_uganda\" },\n { emoji: \"๐บ๐ฒ\", name: \"flag_us_outlying\" },\n { emoji: \"๐บ๐ณ\", name: \"flag_un\" },\n { emoji: \"๐บ๐ธ\", name: \"flag_usa\" },\n { emoji: \"๐บ๐พ\", name: \"flag_uruguay\" },\n { emoji: \"๐บ๐ฟ\", name: \"flag_uzbekistan\" },\n { emoji: \"๐ป๐ฆ\", name: \"flag_vatican\" },\n { emoji: \"๐ป๐จ\", name: \"flag_st_vincent\" },\n { emoji: \"๐ป๐ช\", name: \"flag_venezuela\" },\n { emoji: \"๐ป๐ฌ\", name: \"flag_bvi\" },\n { emoji: \"๐ป๐ฎ\", name: \"flag_usvi\" },\n { emoji: \"๐ป๐ณ\", name: \"flag_vietnam\" },\n { emoji: \"๐ป๐บ\", name: \"flag_vanuatu\" },\n { emoji: \"๐ผ๐ซ\", name: \"flag_wallis\" },\n { emoji: \"๐ผ๐ธ\", name: \"flag_samoa\" },\n { emoji: \"๐ฝ๐ฐ\", name: \"flag_kosovo\" },\n { emoji: \"๐พ๐ช\", name: \"flag_yemen\" },\n { emoji: \"๐พ๐น\", name: \"flag_mayotte\" },\n { emoji: \"๐ฟ๐ฆ\", name: \"flag_south_africa\" },\n { emoji: \"๐ฟ๐ฒ\", name: \"flag_zambia\" },\n { emoji: \"๐ฟ๐ผ\", name: \"flag_zimbabwe\" }\n ]\n }\n];\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getPanelBorderRadiusClass,
|
|
3
|
+
useUnderverseUIConfig
|
|
4
|
+
} from "./chunk-MJV7ETJM.js";
|
|
5
|
+
import {
|
|
6
|
+
cn,
|
|
7
|
+
useGlobalI18n
|
|
8
|
+
} from "./chunk-XJR7E6QB.js";
|
|
9
|
+
|
|
10
|
+
// src/components/Modal.tsx
|
|
11
|
+
import * as React from "react";
|
|
12
|
+
import { createPortal } from "react-dom";
|
|
13
|
+
import { X } from "lucide-react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
var sizeStyles = {
|
|
16
|
+
sm: "max-w-md",
|
|
17
|
+
md: "max-w-2xl",
|
|
18
|
+
lg: "max-w-4xl",
|
|
19
|
+
xl: "max-w-6xl",
|
|
20
|
+
full: "max-w-full"
|
|
21
|
+
};
|
|
22
|
+
var Modal = ({
|
|
23
|
+
isOpen,
|
|
24
|
+
onClose,
|
|
25
|
+
children,
|
|
26
|
+
title,
|
|
27
|
+
description,
|
|
28
|
+
className,
|
|
29
|
+
contentClassName,
|
|
30
|
+
overlayClassName,
|
|
31
|
+
showCloseButton = true,
|
|
32
|
+
closeOnOverlayClick = true,
|
|
33
|
+
closeOnEsc = true,
|
|
34
|
+
size = "md",
|
|
35
|
+
noPadding = false,
|
|
36
|
+
fullWidth = false,
|
|
37
|
+
width,
|
|
38
|
+
height,
|
|
39
|
+
borderMode
|
|
40
|
+
}) => {
|
|
41
|
+
const gi18n = useGlobalI18n();
|
|
42
|
+
const globalConfig = useUnderverseUIConfig();
|
|
43
|
+
const resolvedBorderMode = borderMode ?? globalConfig.borderMode;
|
|
44
|
+
const [isMounted, setIsMounted] = React.useState(false);
|
|
45
|
+
const [isVisible, setIsVisible] = React.useState(false);
|
|
46
|
+
const [isAnimating, setIsAnimating] = React.useState(true);
|
|
47
|
+
const mouseDownTarget = React.useRef(null);
|
|
48
|
+
const modalContentRef = React.useRef(null);
|
|
49
|
+
React.useEffect(() => {
|
|
50
|
+
setIsMounted(true);
|
|
51
|
+
return () => setIsMounted(false);
|
|
52
|
+
}, []);
|
|
53
|
+
const animationRef = React.useRef(false);
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (isOpen) {
|
|
56
|
+
if (animationRef.current) return;
|
|
57
|
+
animationRef.current = true;
|
|
58
|
+
setIsVisible(true);
|
|
59
|
+
setIsAnimating(true);
|
|
60
|
+
requestAnimationFrame(() => {
|
|
61
|
+
setIsAnimating(false);
|
|
62
|
+
});
|
|
63
|
+
} else {
|
|
64
|
+
animationRef.current = false;
|
|
65
|
+
if (isVisible) {
|
|
66
|
+
setIsAnimating(true);
|
|
67
|
+
const hideTimer = setTimeout(() => {
|
|
68
|
+
setIsVisible(false);
|
|
69
|
+
}, 200);
|
|
70
|
+
return () => clearTimeout(hideTimer);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, [isOpen, isVisible]);
|
|
74
|
+
React.useEffect(() => {
|
|
75
|
+
if (!isOpen || !closeOnEsc) return;
|
|
76
|
+
const handleEscape = (event) => {
|
|
77
|
+
if (event.key === "Escape") {
|
|
78
|
+
onClose();
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
document.addEventListener("keydown", handleEscape);
|
|
82
|
+
return () => document.removeEventListener("keydown", handleEscape);
|
|
83
|
+
}, [isOpen, closeOnEsc, onClose]);
|
|
84
|
+
React.useEffect(() => {
|
|
85
|
+
if (isOpen) {
|
|
86
|
+
document.body.style.overflow = "hidden";
|
|
87
|
+
} else {
|
|
88
|
+
document.body.style.overflow = "unset";
|
|
89
|
+
}
|
|
90
|
+
return () => {
|
|
91
|
+
document.body.style.overflow = "unset";
|
|
92
|
+
};
|
|
93
|
+
}, [isOpen]);
|
|
94
|
+
const isInsidePortal = (element) => {
|
|
95
|
+
if (!element) return false;
|
|
96
|
+
let current = element;
|
|
97
|
+
while (current) {
|
|
98
|
+
if (current.hasAttribute?.("data-datepicker") || current.hasAttribute?.("data-popover") || current.hasAttribute?.("data-dropdown") || current.hasAttribute?.("data-dropdown-menu") || current.hasAttribute?.("data-radix-popper-content-wrapper") || current.hasAttribute?.("data-radix-portal") || current.hasAttribute?.("data-tippy-root") || current.getAttribute?.("role") === "listbox" || current.getAttribute?.("role") === "dialog" || current.classList?.contains("datepicker-portal") || current.classList?.contains("popover-portal") || current.classList?.contains("tippy-box") || current.classList?.contains("tippy-content")) {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
current = current.parentElement;
|
|
102
|
+
}
|
|
103
|
+
return false;
|
|
104
|
+
};
|
|
105
|
+
const handleOverlayMouseDown = (event) => {
|
|
106
|
+
mouseDownTarget.current = event.target;
|
|
107
|
+
};
|
|
108
|
+
const handleOverlayMouseUp = (event) => {
|
|
109
|
+
const modalContent2 = modalContentRef.current;
|
|
110
|
+
const mouseDownTarget_ = mouseDownTarget.current;
|
|
111
|
+
const mouseUpTarget = event.target;
|
|
112
|
+
if (isInsidePortal(mouseDownTarget_) || isInsidePortal(mouseUpTarget)) {
|
|
113
|
+
mouseDownTarget.current = null;
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const mouseDownOutside = modalContent2 && !modalContent2.contains(mouseDownTarget_);
|
|
117
|
+
const mouseUpOutside = modalContent2 && !modalContent2.contains(mouseUpTarget);
|
|
118
|
+
if (closeOnOverlayClick && mouseDownOutside && mouseUpOutside) {
|
|
119
|
+
onClose();
|
|
120
|
+
}
|
|
121
|
+
mouseDownTarget.current = null;
|
|
122
|
+
};
|
|
123
|
+
if (!isMounted || !isOpen && !isVisible) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const maxWidthClass = width ? "max-w-none" : fullWidth ? "max-w-full" : sizeStyles[size];
|
|
127
|
+
const modalContent = /* @__PURE__ */ jsxs(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
className: cn("fixed inset-0 z-[9999] flex items-center justify-center p-4 md:p-6", overlayClassName),
|
|
131
|
+
style: { overscrollBehavior: "contain" },
|
|
132
|
+
onMouseDown: handleOverlayMouseDown,
|
|
133
|
+
onMouseUp: handleOverlayMouseUp,
|
|
134
|
+
children: [
|
|
135
|
+
/* @__PURE__ */ jsx(
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
className: "absolute inset-0 bg-background/80 backdrop-blur-sm transition-opacity duration-200 ease-out",
|
|
139
|
+
style: {
|
|
140
|
+
opacity: isOpen && !isAnimating ? 1 : 0
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
/* @__PURE__ */ jsxs(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
ref: modalContentRef,
|
|
148
|
+
className: cn(
|
|
149
|
+
"relative w-full border border-border/40 bg-card text-card-foreground shadow-xl",
|
|
150
|
+
resolvedBorderMode ? getPanelBorderRadiusClass(resolvedBorderMode) : "rounded-2xl md:rounded-3xl",
|
|
151
|
+
"transition-all duration-200 ease-out",
|
|
152
|
+
maxWidthClass,
|
|
153
|
+
fullWidth && "mx-0",
|
|
154
|
+
className
|
|
155
|
+
),
|
|
156
|
+
style: {
|
|
157
|
+
opacity: isOpen && !isAnimating ? 1 : 0,
|
|
158
|
+
transform: isOpen && !isAnimating ? "scale(1)" : "scale(0.9)",
|
|
159
|
+
// Thรชm dรฒng nร y ฤแป tแบกo hiแปu แปฉng nแบฃy
|
|
160
|
+
transition: "all 300ms cubic-bezier(0.34, 1.76, 0.64, 1)",
|
|
161
|
+
width,
|
|
162
|
+
height
|
|
163
|
+
},
|
|
164
|
+
onClick: (e) => e.stopPropagation(),
|
|
165
|
+
children: [
|
|
166
|
+
(title || description || showCloseButton) && /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between p-6 pb-0", children: [
|
|
167
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
|
|
168
|
+
title && /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold leading-none tracking-tight", children: title }),
|
|
169
|
+
description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
|
|
170
|
+
] }),
|
|
171
|
+
showCloseButton && /* @__PURE__ */ jsx(
|
|
172
|
+
"button",
|
|
173
|
+
{
|
|
174
|
+
onClick: onClose,
|
|
175
|
+
"aria-label": gi18n.closeModal ?? "Close modal",
|
|
176
|
+
className: cn(
|
|
177
|
+
"rounded-lg opacity-70 ring-offset-background transition-opacity",
|
|
178
|
+
"hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
|
|
179
|
+
"disabled:pointer-events-none "
|
|
180
|
+
),
|
|
181
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4 cursor-pointer", "aria-hidden": "true" })
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
] }),
|
|
185
|
+
/* @__PURE__ */ jsx("div", { className: cn("p-6", noPadding && "p-0", contentClassName), children })
|
|
186
|
+
]
|
|
187
|
+
}
|
|
188
|
+
)
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
return typeof window !== "undefined" ? createPortal(modalContent, document.body) : null;
|
|
193
|
+
};
|
|
194
|
+
var Modal_default = Modal;
|
|
195
|
+
|
|
196
|
+
export {
|
|
197
|
+
Modal_default
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=chunk-7U3Y7R7U.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Modal.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { cn } from \"../utils/cn\";\nimport { X } from \"lucide-react\";\nimport { useGlobalI18n } from \"../contexts/GlobalI18nContext\";\nimport { getBorderRadiusClass, getPanelBorderRadiusClass, type BorderMode } from \"../utils/radius\";\nimport { useUnderverseUIConfig } from \"../contexts/UnderverseConfigContext\";\n\n/** Public props for the `Modal` component. */\ninterface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n children: React.ReactNode;\n title?: string;\n description?: string;\n className?: string;\n contentClassName?: string;\n overlayClassName?: string;\n showCloseButton?: boolean;\n closeOnOverlayClick?: boolean;\n closeOnEsc?: boolean;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n noPadding?: boolean;\n fullWidth?: boolean;\n width?: string | number;\n height?: string | number;\n borderMode?: BorderMode;\n}\n\nconst sizeStyles = {\n sm: \"max-w-md\",\n md: \"max-w-2xl\",\n lg: \"max-w-4xl\",\n xl: \"max-w-6xl\",\n full: \"max-w-full\",\n};\n\nconst Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n children,\n title,\n description,\n className,\n contentClassName,\n overlayClassName,\n showCloseButton = true,\n closeOnOverlayClick = true,\n closeOnEsc = true,\n size = \"md\",\n noPadding = false,\n fullWidth = false,\n width,\n height,\n borderMode,\n}) => {\n const gi18n = useGlobalI18n();\n const globalConfig = useUnderverseUIConfig();\n const resolvedBorderMode = borderMode ?? globalConfig.borderMode;\n const [isMounted, setIsMounted] = React.useState(false);\n const [isVisible, setIsVisible] = React.useState(false);\n const [isAnimating, setIsAnimating] = React.useState(true);\n // Track if mousedown started outside modal content\n const mouseDownTarget = React.useRef<EventTarget | null>(null);\n const modalContentRef = React.useRef<HTMLDivElement>(null);\n\n React.useEffect(() => {\n setIsMounted(true);\n return () => setIsMounted(false);\n }, []);\n\n // Ref to prevent double animation trigger in React StrictMode\n const animationRef = React.useRef(false);\n\n // Animation handling\n React.useEffect(() => {\n if (isOpen) {\n if (animationRef.current) return; // Prevent double animation in StrictMode\n animationRef.current = true;\n setIsVisible(true);\n setIsAnimating(true);\n // Start animation on next frame\n requestAnimationFrame(() => {\n setIsAnimating(false);\n });\n } else {\n animationRef.current = false;\n if (isVisible) {\n setIsAnimating(true);\n // Hide after animation completes\n const hideTimer = setTimeout(() => {\n setIsVisible(false);\n }, 200);\n return () => clearTimeout(hideTimer);\n }\n }\n }, [isOpen, isVisible]);\n\n // Handle escape key\n React.useEffect(() => {\n if (!isOpen || !closeOnEsc) return;\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n onClose();\n }\n };\n\n document.addEventListener(\"keydown\", handleEscape);\n return () => document.removeEventListener(\"keydown\", handleEscape);\n }, [isOpen, closeOnEsc, onClose]);\n\n // Prevent body scroll when modal is open\n React.useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"unset\";\n }\n\n return () => {\n document.body.style.overflow = \"unset\";\n };\n }, [isOpen]);\n\n // Check if an element is inside a portal (datepicker, popover, dropdown, etc.)\n const isInsidePortal = (element: Node | null): boolean => {\n if (!element) return false;\n let current = element as HTMLElement | null;\n while (current) {\n // Check for common portal indicators (data attributes, z-index patterns)\n if (\n current.hasAttribute?.(\"data-datepicker\") ||\n current.hasAttribute?.(\"data-popover\") ||\n current.hasAttribute?.(\"data-dropdown\") ||\n current.hasAttribute?.(\"data-dropdown-menu\") ||\n current.hasAttribute?.(\"data-radix-popper-content-wrapper\") ||\n current.hasAttribute?.(\"data-radix-portal\") ||\n current.hasAttribute?.(\"data-tippy-root\") ||\n current.getAttribute?.(\"role\") === \"listbox\" ||\n current.getAttribute?.(\"role\") === \"dialog\" ||\n current.classList?.contains(\"datepicker-portal\") ||\n current.classList?.contains(\"popover-portal\") ||\n current.classList?.contains(\"tippy-box\") ||\n current.classList?.contains(\"tippy-content\")\n ) {\n return true;\n }\n current = current.parentElement;\n }\n return false;\n };\n\n const handleOverlayMouseDown = (event: React.MouseEvent) => {\n // Store the mousedown target\n mouseDownTarget.current = event.target;\n };\n\n const handleOverlayMouseUp = (event: React.MouseEvent) => {\n // Check if both mousedown and mouseup occurred outside modal content\n const modalContent = modalContentRef.current;\n const mouseDownTarget_ = mouseDownTarget.current as Node;\n const mouseUpTarget = event.target as Node;\n\n // Don't close if clicking inside a portal element (datepicker, popover, etc.)\n if (isInsidePortal(mouseDownTarget_) || isInsidePortal(mouseUpTarget)) {\n mouseDownTarget.current = null;\n return;\n }\n\n const mouseDownOutside = modalContent && !modalContent.contains(mouseDownTarget_);\n const mouseUpOutside = modalContent && !modalContent.contains(mouseUpTarget);\n\n if (closeOnOverlayClick && mouseDownOutside && mouseUpOutside) {\n onClose();\n }\n mouseDownTarget.current = null;\n };\n\n if (!isMounted || (!isOpen && !isVisible)) {\n return null;\n }\n\n const maxWidthClass = width ? \"max-w-none\" : fullWidth ? \"max-w-full\" : sizeStyles[size];\n\n const modalContent = (\n <div\n className={cn(\"fixed inset-0 z-[9999] flex items-center justify-center p-4 md:p-6\", overlayClassName)}\n style={{ overscrollBehavior: \"contain\" }}\n onMouseDown={handleOverlayMouseDown}\n onMouseUp={handleOverlayMouseUp}\n >\n {/* Overlay */}\n <div\n className=\"absolute inset-0 bg-background/80 backdrop-blur-sm transition-opacity duration-200 ease-out\"\n style={{\n opacity: isOpen && !isAnimating ? 1 : 0,\n }}\n />\n\n {/* Modal */}\n <div\n ref={modalContentRef}\n className={cn(\n \"relative w-full border border-border/40 bg-card text-card-foreground shadow-xl\",\n resolvedBorderMode ? getPanelBorderRadiusClass(resolvedBorderMode) : \"rounded-2xl md:rounded-3xl\",\n \"transition-all duration-200 ease-out\",\n maxWidthClass,\n fullWidth && \"mx-0\",\n className,\n )}\n style={{\n opacity: isOpen && !isAnimating ? 1 : 0,\n transform: isOpen && !isAnimating ? \"scale(1)\" : \"scale(0.9)\",\n // Thรชm dรฒng nร y ฤแป tแบกo hiแปu แปฉng nแบฃy\n transition: \"all 300ms cubic-bezier(0.34, 1.76, 0.64, 1)\",\n width,\n height,\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Header */}\n {(title || description || showCloseButton) && (\n <div className=\"flex items-start justify-between p-6 pb-0\">\n <div className=\"space-y-1.5\">\n {title && <h2 className=\"text-lg font-semibold leading-none tracking-tight\">{title}</h2>}\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n {showCloseButton && (\n <button\n onClick={onClose}\n aria-label={gi18n.closeModal ?? \"Close modal\"}\n className={cn(\n \"rounded-lg opacity-70 ring-offset-background transition-opacity\",\n \"hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"disabled:pointer-events-none \",\n )}\n >\n <X className=\"h-4 w-4 cursor-pointer\" aria-hidden=\"true\" />\n </button>\n )}\n </div>\n )}\n\n {/* Content */}\n <div className={cn(\"p-6\", noPadding && \"p-0\", contentClassName)}>{children}</div>\n </div>\n </div>\n );\n\n return typeof window !== \"undefined\" ? createPortal(modalContent, document.body) : null;\n};\n\nexport default Modal;\n"],"mappings":"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","names":["modalContent"]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "./chunk-XJR7E6QB.js";
|
|
4
|
+
|
|
5
|
+
// src/components/emoji-ui.tsx
|
|
6
|
+
import React from "react";
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
function formatEmojiName(name) {
|
|
9
|
+
return name.replaceAll("_", " ");
|
|
10
|
+
}
|
|
11
|
+
function formatEmojiCountLabel(template, shown, total) {
|
|
12
|
+
return template.replace("{shown}", String(shown)).replace("{total}", String(total));
|
|
13
|
+
}
|
|
14
|
+
function getEmojiUnifiedCode(emoji) {
|
|
15
|
+
const codePoints = [];
|
|
16
|
+
for (let i = 0; i < emoji.length; ) {
|
|
17
|
+
const codePoint = emoji.codePointAt(i);
|
|
18
|
+
if (codePoint === void 0) break;
|
|
19
|
+
let hex = codePoint.toString(16).toLowerCase();
|
|
20
|
+
if (hex.length < 4) {
|
|
21
|
+
hex = hex.padStart(4, "0");
|
|
22
|
+
}
|
|
23
|
+
codePoints.push(hex);
|
|
24
|
+
i += codePoint > 65535 ? 2 : 1;
|
|
25
|
+
}
|
|
26
|
+
return codePoints.join("-");
|
|
27
|
+
}
|
|
28
|
+
var globalEmojiBaseUrl = "/emojis";
|
|
29
|
+
function setEmojiBaseUrl(url) {
|
|
30
|
+
globalEmojiBaseUrl = url.endsWith("/") ? url.slice(0, -1) : url;
|
|
31
|
+
}
|
|
32
|
+
function getEmojiImageUrl(unified) {
|
|
33
|
+
return `${globalEmojiBaseUrl}/${unified}.png`;
|
|
34
|
+
}
|
|
35
|
+
var EmojiGridButton = ({ emoji, name, onClick, className, active = false }) => {
|
|
36
|
+
const [hasError, setHasError] = React.useState(false);
|
|
37
|
+
const unified = React.useMemo(() => getEmojiUnifiedCode(emoji), [emoji]);
|
|
38
|
+
return /* @__PURE__ */ jsx(
|
|
39
|
+
"button",
|
|
40
|
+
{
|
|
41
|
+
type: "button",
|
|
42
|
+
"aria-label": formatEmojiName(name),
|
|
43
|
+
title: formatEmojiName(name),
|
|
44
|
+
onClick,
|
|
45
|
+
className: cn(
|
|
46
|
+
"group flex h-9 w-9 items-center justify-center rounded-xl transition-all duration-300",
|
|
47
|
+
"bg-transparent hover:bg-primary/10 border border-transparent hover:border-primary/20",
|
|
48
|
+
"focus:outline-none focus:ring-2 focus:ring-primary/20",
|
|
49
|
+
"scale-100 hover:scale-110 active:scale-95",
|
|
50
|
+
active ? "bg-primary/15 border-primary/30 ring-2 ring-primary/20" : "",
|
|
51
|
+
className
|
|
52
|
+
),
|
|
53
|
+
children: hasError ? /* @__PURE__ */ jsx("span", { className: "text-2xl transition-transform duration-300 group-hover:rotate-6", children: emoji }) : /* @__PURE__ */ jsx(
|
|
54
|
+
"img",
|
|
55
|
+
{
|
|
56
|
+
src: getEmojiImageUrl(unified),
|
|
57
|
+
alt: emoji,
|
|
58
|
+
onError: () => setHasError(true),
|
|
59
|
+
className: "h-6.5 w-6.5 object-contain transition-all duration-300 group-hover:rotate-6 group-hover:drop-shadow-[0_2px_5px_rgba(0,0,0,0.15)]",
|
|
60
|
+
loading: "lazy"
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export {
|
|
68
|
+
formatEmojiCountLabel,
|
|
69
|
+
getEmojiUnifiedCode,
|
|
70
|
+
setEmojiBaseUrl,
|
|
71
|
+
getEmojiImageUrl,
|
|
72
|
+
EmojiGridButton
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=chunk-IXEFOLUD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/emoji-ui.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport function formatEmojiName(name: string) {\n return name.replaceAll(\"_\", \" \");\n}\n\nexport function formatEmojiCountLabel(template: string, shown: number, total: number) {\n return template\n .replace(\"{shown}\", String(shown))\n .replace(\"{total}\", String(total));\n}\n\n/**\n * Converts a Unicode emoji string into a lowercase hyphenated hex code point format\n * used by emoji CDNs (e.g. \"๐\" -> \"1f600\", \"#๏ธโฃ\" -> \"0023-fe0f-20e3\").\n */\nexport function getEmojiUnifiedCode(emoji: string): string {\n const codePoints = [];\n for (let i = 0; i < emoji.length; ) {\n const codePoint = emoji.codePointAt(i);\n if (codePoint === undefined) break;\n let hex = codePoint.toString(16).toLowerCase();\n if (hex.length < 4) {\n hex = hex.padStart(4, \"0\");\n }\n codePoints.push(hex);\n i += codePoint > 0xffff ? 2 : 1;\n }\n return codePoints.join(\"-\");\n}\n\nlet globalEmojiBaseUrl = \"/emojis\";\n\n/**\n * Configure a custom base URL for loading emoji image assets (e.g. `/emojis` for local offline storage).\n * If not set, defaults to jsDelivr CDN.\n */\nexport function setEmojiBaseUrl(url: string) {\n globalEmojiBaseUrl = url.endsWith(\"/\") ? url.slice(0, -1) : url;\n}\n\n/**\n * Resolves the final image URL for a given unified emoji code.\n */\nexport function getEmojiImageUrl(unified: string): string {\n return `${globalEmojiBaseUrl}/${unified}.png`;\n}\n\nexport const EmojiGridButton: React.FC<{\n emoji: string;\n name: string;\n onClick: () => void;\n className?: string;\n active?: boolean;\n}> = ({ emoji, name, onClick, className, active = false }) => {\n const [hasError, setHasError] = React.useState(false);\n const unified = React.useMemo(() => getEmojiUnifiedCode(emoji), [emoji]);\n\n return (\n <button\n type=\"button\"\n aria-label={formatEmojiName(name)}\n title={formatEmojiName(name)}\n onClick={onClick}\n className={cn(\n \"group flex h-9 w-9 items-center justify-center rounded-xl transition-all duration-300\",\n \"bg-transparent hover:bg-primary/10 border border-transparent hover:border-primary/20\",\n \"focus:outline-none focus:ring-2 focus:ring-primary/20\",\n \"scale-100 hover:scale-110 active:scale-95\",\n active ? \"bg-primary/15 border-primary/30 ring-2 ring-primary/20\" : \"\",\n className,\n )}\n >\n {hasError ? (\n <span className=\"text-2xl transition-transform duration-300 group-hover:rotate-6\">{emoji}</span>\n ) : (\n <img\n src={getEmojiImageUrl(unified)}\n alt={emoji}\n onError={() => setHasError(true)}\n className=\"h-6.5 w-6.5 object-contain transition-all duration-300 group-hover:rotate-6 group-hover:drop-shadow-[0_2px_5px_rgba(0,0,0,0.15)]\"\n loading=\"lazy\"\n />\n )}\n </button>\n );\n};\n"],"mappings":";;;;;AAEA,OAAO,WAAW;AA2EV;AAxED,SAAS,gBAAgB,MAAc;AAC5C,SAAO,KAAK,WAAW,KAAK,GAAG;AACjC;AAEO,SAAS,sBAAsB,UAAkB,OAAe,OAAe;AACpF,SAAO,SACJ,QAAQ,WAAW,OAAO,KAAK,CAAC,EAChC,QAAQ,WAAW,OAAO,KAAK,CAAC;AACrC;AAMO,SAAS,oBAAoB,OAAuB;AACzD,QAAM,aAAa,CAAC;AACpB,WAAS,IAAI,GAAG,IAAI,MAAM,UAAU;AAClC,UAAM,YAAY,MAAM,YAAY,CAAC;AACrC,QAAI,cAAc,OAAW;AAC7B,QAAI,MAAM,UAAU,SAAS,EAAE,EAAE,YAAY;AAC7C,QAAI,IAAI,SAAS,GAAG;AAClB,YAAM,IAAI,SAAS,GAAG,GAAG;AAAA,IAC3B;AACA,eAAW,KAAK,GAAG;AACnB,SAAK,YAAY,QAAS,IAAI;AAAA,EAChC;AACA,SAAO,WAAW,KAAK,GAAG;AAC5B;AAEA,IAAI,qBAAqB;AAMlB,SAAS,gBAAgB,KAAa;AAC3C,uBAAqB,IAAI,SAAS,GAAG,IAAI,IAAI,MAAM,GAAG,EAAE,IAAI;AAC9D;AAKO,SAAS,iBAAiB,SAAyB;AACxD,SAAO,GAAG,kBAAkB,IAAI,OAAO;AACzC;AAEO,IAAM,kBAMR,CAAC,EAAE,OAAO,MAAM,SAAS,WAAW,SAAS,MAAM,MAAM;AAC5D,QAAM,CAAC,UAAU,WAAW,IAAI,MAAM,SAAS,KAAK;AACpD,QAAM,UAAU,MAAM,QAAQ,MAAM,oBAAoB,KAAK,GAAG,CAAC,KAAK,CAAC;AAEvE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY,gBAAgB,IAAI;AAAA,MAChC,OAAO,gBAAgB,IAAI;AAAA,MAC3B;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,2DAA2D;AAAA,QACpE;AAAA,MACF;AAAA,MAEC,qBACC,oBAAC,UAAK,WAAU,mEAAmE,iBAAM,IAEzF;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,iBAAiB,OAAO;AAAA,UAC7B,KAAK;AAAA,UACL,SAAS,MAAM,YAAY,IAAI;AAAA,UAC/B,WAAU;AAAA,UACV,SAAQ;AAAA;AAAA,MACV;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|